From 4dd77a24ab557be320bcc6462b05e20293ee0cf8 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 20 Feb 2019 22:15:40 +0000 Subject: [PATCH 01/22] added package.json with yarn init --- package.json | 7 +++++++ yarn.lock | 4 ++++ 2 files changed, 11 insertions(+) create mode 100644 package.json create mode 100644 yarn.lock diff --git a/package.json b/package.json new file mode 100644 index 0000000000..2d7e1a92e5 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "name": "jellyfin-web", + "version": "10.2.1", + "description": "Web interface for Jellyfin", + "repository": "https://github.com/jellyfin/jellyfin-web", + "license": "GPL-2" +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..fb57ccd13a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + From 7f407f96915e425f814260aaefa3973ece4f8acd Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 20 Feb 2019 22:17:26 +0000 Subject: [PATCH 02/22] added weback and webpack-cli as dev dependencies --- package.json | 6 +- yarn.lock | 2841 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2846 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 2d7e1a92e5..b4deb41d86 100644 --- a/package.json +++ b/package.json @@ -3,5 +3,9 @@ "version": "10.2.1", "description": "Web interface for Jellyfin", "repository": "https://github.com/jellyfin/jellyfin-web", - "license": "GPL-2" + "license": "GPL-2", + "devDependencies": { + "webpack": "^4.29.5", + "webpack-cli": "^3.2.3" + } } diff --git a/yarn.lock b/yarn.lock index fb57ccd13a..a5cd7a677b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,3 +2,2844 @@ # yarn lockfile v1 +"@webassemblyjs/ast@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.3.tgz#63a741bd715a6b6783f2ea5c6ab707516aa215eb" + integrity sha512-xy3m06+Iu4D32+6soz6zLnwznigXJRuFNTovBX2M4GqVqLb0dnyWLbPnpcXvUSdEN+9DVyDeaq2jyH1eIL2LZQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.3" + "@webassemblyjs/helper-wasm-bytecode" "1.8.3" + "@webassemblyjs/wast-parser" "1.8.3" + +"@webassemblyjs/floating-point-hex-parser@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.3.tgz#f198a2d203b3c50846a064f5addd6a133ef9bc0e" + integrity sha512-vq1TISG4sts4f0lDwMUM0f3kpe0on+G3YyV5P0IySHFeaLKRYZ++n2fCFfG4TcCMYkqFeTUYFxm75L3ddlk2xA== + +"@webassemblyjs/helper-api-error@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.3.tgz#3b708f6926accd64dcbaa7ba5b63db5660ff4f66" + integrity sha512-BmWEynI4FnZbjk8CaYZXwcv9a6gIiu+rllRRouQUo73hglanXD3AGFJE7Q4JZCoVE0p5/jeX6kf5eKa3D4JxwQ== + +"@webassemblyjs/helper-buffer@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.3.tgz#f3150a23ffaba68621e1f094c8a14bebfd53dd48" + integrity sha512-iVIMhWnNHoFB94+/2l7LpswfCsXeMRnWfExKtqsZ/E2NxZyUx9nTeKK/MEMKTQNEpyfznIUX06OchBHQ+VKi/Q== + +"@webassemblyjs/helper-code-frame@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.3.tgz#f43ac605789b519d95784ef350fd2968aebdd3ef" + integrity sha512-K1UxoJML7GKr1QXR+BG7eXqQkvu+eEeTjlSl5wUFQ6W6vaOc5OwSxTcb3oE9x/3+w4NHhrIKD4JXXCZmLdL2cg== + dependencies: + "@webassemblyjs/wast-printer" "1.8.3" + +"@webassemblyjs/helper-fsm@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.3.tgz#46aaa03f41082a916850ebcb97e9fc198ef36a9c" + integrity sha512-387zipfrGyO77/qm7/SDUiZBjQ5KGk4qkrVIyuoubmRNIiqn3g+6ijY8BhnlGqsCCQX5bYKOnttJobT5xoyviA== + +"@webassemblyjs/helper-module-context@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.3.tgz#150da405d90c8ea81ae0b0e1965b7b64e585634f" + integrity sha512-lPLFdQfaRssfnGEJit5Sk785kbBPPPK4ZS6rR5W/8hlUO/5v3F+rN8XuUcMj/Ny9iZiyKhhuinWGTUuYL4VKeQ== + dependencies: + "@webassemblyjs/ast" "1.8.3" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.3.tgz#12f55bbafbbc7ddf9d8059a072cb7b0c17987901" + integrity sha512-R1nJW7bjyJLjsJQR5t3K/9LJ0QWuZezl8fGa49DZq4IVaejgvkbNlKEQxLYTC579zgT4IIIVHb5JA59uBPHXyw== + +"@webassemblyjs/helper-wasm-section@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.3.tgz#9e79456d9719e116f4f8998ee62ab54ba69a6cf3" + integrity sha512-P6F7D61SJY73Yz+fs49Q3+OzlYAZP86OfSpaSY448KzUy65NdfzDmo2NPVte+Rw4562MxEAacvq/mnDuvRWOcg== + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/helper-buffer" "1.8.3" + "@webassemblyjs/helper-wasm-bytecode" "1.8.3" + "@webassemblyjs/wasm-gen" "1.8.3" + +"@webassemblyjs/ieee754@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.3.tgz#0a89355b1f6c9d08d0605c2acbc2a6fe3141f5b4" + integrity sha512-UD4HuLU99hjIvWz1pD68b52qsepWQlYCxDYVFJQfHh3BHyeAyAlBJ+QzLR1nnS5J6hAzjki3I3AoJeobNNSZlg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.3.tgz#b7fd9d7c039e34e375c4473bd4dc89ce8228b920" + integrity sha512-XXd3s1BmkC1gpGABuCRLqCGOD6D2L+Ma2BpwpjrQEHeQATKWAQtxAyU9Z14/z8Ryx6IG+L4/NDkIGHrccEhRUg== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.3.tgz#75712db52cfdda868731569ddfe11046f1f1e7a2" + integrity sha512-Wv/WH9Zo5h5ZMyfCNpUrjFsLZ3X1amdfEuwdb7MLdG3cPAjRS6yc6ElULlpjLiiBTuzvmLhr3ENsuGyJ3wyCgg== + +"@webassemblyjs/wasm-edit@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.3.tgz#23c3c6206b096f9f6aa49623a5310a102ef0fb87" + integrity sha512-nB19eUx3Yhi1Vvv3yev5r+bqQixZprMtaoCs1brg9Efyl8Hto3tGaUoZ0Yb4Umn/gQCyoEGFfUxPLp1/8+Jvnw== + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/helper-buffer" "1.8.3" + "@webassemblyjs/helper-wasm-bytecode" "1.8.3" + "@webassemblyjs/helper-wasm-section" "1.8.3" + "@webassemblyjs/wasm-gen" "1.8.3" + "@webassemblyjs/wasm-opt" "1.8.3" + "@webassemblyjs/wasm-parser" "1.8.3" + "@webassemblyjs/wast-printer" "1.8.3" + +"@webassemblyjs/wasm-gen@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.3.tgz#1a433b8ab97e074e6ac2e25fcbc8cb6125400813" + integrity sha512-sDNmu2nLBJZ/huSzlJvd9IK8B1EjCsOl7VeMV9VJPmxKYgTJ47lbkSP+KAXMgZWGcArxmcrznqm7FrAPQ7vVGg== + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/helper-wasm-bytecode" "1.8.3" + "@webassemblyjs/ieee754" "1.8.3" + "@webassemblyjs/leb128" "1.8.3" + "@webassemblyjs/utf8" "1.8.3" + +"@webassemblyjs/wasm-opt@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.3.tgz#54754bcf88f88e92b909416a91125301cc81419c" + integrity sha512-j8lmQVFR+FR4/645VNgV4R/Jz8i50eaPAj93GZyd3EIJondVshE/D9pivpSDIXyaZt+IkCodlzOoZUE4LnQbeA== + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/helper-buffer" "1.8.3" + "@webassemblyjs/wasm-gen" "1.8.3" + "@webassemblyjs/wasm-parser" "1.8.3" + +"@webassemblyjs/wasm-parser@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.3.tgz#d12ed19d1b8e8667a7bee040d2245aaaf215340b" + integrity sha512-NBI3SNNtRoy4T/KBsRZCAWUzE9lI94RH2nneLwa1KKIrt/2zzcTavWg6oY05ArCbb/PZDk3OUi63CD1RYtN65w== + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/helper-api-error" "1.8.3" + "@webassemblyjs/helper-wasm-bytecode" "1.8.3" + "@webassemblyjs/ieee754" "1.8.3" + "@webassemblyjs/leb128" "1.8.3" + "@webassemblyjs/utf8" "1.8.3" + +"@webassemblyjs/wast-parser@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.3.tgz#44aa123e145503e995045dc3e5e2770069da117b" + integrity sha512-gZPst4CNcmGtKC1eYQmgCx6gwQvxk4h/nPjfPBbRoD+Raw3Hs+BS3yhrfgyRKtlYP+BJ8LcY9iFODEQofl2qbg== + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/floating-point-hex-parser" "1.8.3" + "@webassemblyjs/helper-api-error" "1.8.3" + "@webassemblyjs/helper-code-frame" "1.8.3" + "@webassemblyjs/helper-fsm" "1.8.3" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.3.tgz#b1177780b266b1305f2eeba87c4d6aa732352060" + integrity sha512-DTA6kpXuHK4PHu16yAD9QVuT1WZQRT7079oIFFmFSjqjLWGXS909I/7kiLTn931mcj7wGsaUNungjwNQ2lGQ3Q== + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/wast-parser" "1.8.3" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== + +acorn@^6.0.5: + version "6.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.0.tgz#b0a3be31752c97a0f7013c5f4903b71a05db6818" + integrity sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw== + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" + integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== + +ajv@^6.1.0: + version "6.9.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.9.1.tgz#a4d3683d74abc5670e75f0b16520f70a20ea8dc1" + integrity sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= + dependencies: + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + integrity sha1-GdOGodntxufByF04iu28xW0zYC0= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.0.tgz#9523e001306a32444b907423f1de2164222f6ab1" + integrity sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw== + +bluebird@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" + integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +cacache@^11.0.2: + version "11.3.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" + integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== + dependencies: + bluebird "^3.5.3" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.3" + graceful-fs "^4.1.15" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +camelcase@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== + +chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chokidar@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.2.tgz#9c23ea40b01638439e0513864d362aeacc5ad058" + integrity sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.0" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== + +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== + dependencies: + tslib "^1.9.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +commander@~2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +elliptic@^6.0.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + +events@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^3.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== + dependencies: + minipass "^2.2.1" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" + integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw== + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + integrity sha1-TCu8inWJmP7r9e1oWA921GdotLw= + dependencies: + parse-passwd "^1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +interpret@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= + dependencies: + is-extglob "^2.1.1" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +loader-runner@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mem@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.1.0.tgz#aeb9be2d21f47e78af29e4ac5978e8afa2ca5b8a" + integrity sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minipass@^2.2.1, minipass@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +nan@^2.9.2: + version "2.12.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" + integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +needle@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +neo-async@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-libs-browser@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" + integrity sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "0.0.4" + +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-packlist@^1.1.6: + version "1.4.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" + integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" + integrity sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg== + +p-limit@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" + integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== + +pako@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.8.tgz#6844890aab9c635af868ad5fecc62e8acbba3ea4" + integrity sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA== + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parse-asn1@^5.0.0: + version "5.1.4" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +semver@^5.3.0, semver@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + +serialize-javascript@^1.4.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" + integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@~0.5.9: + version "0.5.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" + integrity sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" + integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== + +tar@^4: + version "4.4.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.4" + minizlib "^1.1.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +terser-webpack-plugin@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz#9bff3a891ad614855a7dde0d707f7db5a927e3d9" + integrity sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg== + dependencies: + cacache "^11.0.2" + find-cache-dir "^2.0.0" + schema-utils "^1.0.0" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + terser "^3.16.1" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +terser@^3.16.1: + version "3.16.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.16.1.tgz#5b0dd4fa1ffd0b0b43c2493b2c364fd179160493" + integrity sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow== + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + source-map-support "~0.5.9" + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== + dependencies: + setimmediate "^1.0.4" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== + dependencies: + imurmurhash "^0.1.4" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +v8-compile-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" + integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw== + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= + dependencies: + indexof "0.0.1" + +watchpack@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +webpack-cli@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.2.3.tgz#13653549adfd8ccd920ad7be1ef868bacc22e346" + integrity sha512-Ik3SjV6uJtWIAN5jp5ZuBMWEAaP5E4V78XJ2nI+paFPh8v4HPSwo/myN0r29Xc/6ZKnd2IdrAlpSgNOu2CDQ6Q== + dependencies: + chalk "^2.4.1" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.0" + findup-sync "^2.0.0" + global-modules "^1.0.0" + import-local "^2.0.0" + interpret "^1.1.0" + loader-utils "^1.1.0" + supports-color "^5.5.0" + v8-compile-cache "^2.0.2" + yargs "^12.0.4" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.29.5: + version "4.29.5" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.5.tgz#52b60a7b0838427c3a894cd801a11dc0836bc79f" + integrity sha512-DuWlYUT982c7XVHodrLO9quFbNpVq5FNxLrMUfYUTlgKW0+yPimynYf1kttSQpEneAL1FH3P3OLNgkyImx8qIQ== + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/helper-module-context" "1.8.3" + "@webassemblyjs/wasm-edit" "1.8.3" + "@webassemblyjs/wasm-parser" "1.8.3" + acorn "^6.0.5" + acorn-dynamic-import "^4.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + micromatch "^3.1.8" + mkdirp "~0.5.0" + neo-async "^2.5.0" + node-libs-browser "^2.0.0" + schema-utils "^1.0.0" + tapable "^1.1.0" + terser-webpack-plugin "^1.1.0" + watchpack "^1.5.0" + webpack-sources "^1.3.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.14, which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +worker-farm@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^12.0.4: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" From f5c2a331b0f69c92202aa6c622e2885ed3e6e7ba Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Wed, 20 Feb 2019 22:18:56 +0000 Subject: [PATCH 03/22] changed package.json for initial version 0.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b4deb41d86..1816b6ea91 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jellyfin-web", - "version": "10.2.1", + "version": "0.0.0", "description": "Web interface for Jellyfin", "repository": "https://github.com/jellyfin/jellyfin-web", "license": "GPL-2", From 427c9d203685fbee2e7a92f8150f03bd9874a137 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Sat, 23 Feb 2019 16:38:53 +0000 Subject: [PATCH 04/22] deuglify and indent to 4 spaces site.js --- src/scripts/site.js | 1863 +++++++++++++++++++++++++++++-------------- 1 file changed, 1251 insertions(+), 612 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 573464ec2c..64b254ba13 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1,225 +1,337 @@ function getWindowLocationSearch(win) { "use strict"; + var search = (win || window).location.search; + if (!search) { - var index = window.location.href.indexOf("?"); - 1 != index && (search = window.location.href.substring(index)) + var index = window.location.href.indexOf("?"); + + if (-1 != index) { + search = window.location.href.substring(index); + } } - return search || "" + + return search || ""; } function getParameterByName(name, url) { "use strict"; + name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); - var regexS = "[\\?&]" + name + "=([^&#]*)", - regex = new RegExp(regexS, "i"), - results = regex.exec(url || getWindowLocationSearch()); - return null == results ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")) + var regexS = "[\\?&]" + name + "=([^&#]*)"; + var regex = new RegExp(regexS, "i"); + var results = regex.exec(url || getWindowLocationSearch()); + + if (null == results) { + return ""; + } + + return decodeURIComponent(results[1].replace(/\+/g, " ")); } function pageClassOn(eventName, className, fn) { "use strict"; - document.addEventListener(eventName, function(e) { - var target = e.target; - target.classList.contains(className) && fn.call(target, e) - }) + + document.addEventListener(eventName, function (e__q) { + var target = e__q.target; + + if (target.classList.contains(className)) { + fn.call(target, e__q); + } + }); } function pageIdOn(eventName, id, fn) { "use strict"; - document.addEventListener(eventName, function(e) { - var target = e.target; - target.id === id && fn.call(target, e) - }) + + document.addEventListener(eventName, function (e__w) { + var target = e__w.target; + + if (target.id === id) { + fn.call(target, e__w); + } + }); } + var Dashboard = { - allowPluginPages: function(pluginId) { - return true; - }, - getCurrentUser: function() { - return window.ApiClient.getCurrentUser(!1) - }, - serverAddress: function() { - if (AppInfo.isNativeApp) { - var apiClient = window.ApiClient; - return apiClient ? apiClient.serverAddress() : null - } - var urlLower = window.location.href.toLowerCase(), - index = urlLower.lastIndexOf("/web"); - if (-1 != index) return urlLower.substring(0, index); - var loc = window.location, - address = loc.protocol + "//" + loc.hostname; - return loc.port && (address += ":" + loc.port), address - }, - getCurrentUserId: function() { + allowPluginPages: function (pluginId) { + return true; + }, + getCurrentUser: function () { + return window.ApiClient.getCurrentUser(false); + }, + serverAddress: function () { + if (AppInfo.isNativeApp) { var apiClient = window.ApiClient; - return apiClient ? apiClient.getCurrentUserId() : null - }, - onServerChanged: function(userId, accessToken, apiClient) { - apiClient = apiClient || window.ApiClient, window.ApiClient = apiClient - }, - logout: function() { - ConnectionManager.logout().then(function() { - var loginPage; - if (AppInfo.isNativeApp) { - loginPage = "selectserver.html"; - window.ApiClient = null; - } else { - loginPage = "login.html"; - } - Dashboard.navigate(loginPage); - }) - }, - getConfigurationPageUrl: function(name) { - return "configurationpage?name=" + encodeURIComponent(name) - }, - getConfigurationResourceUrl: function(name) { - return AppInfo.isNativeApp ? ApiClient.getUrl("web/ConfigurationPage", { + + if (apiClient) { + return apiClient.serverAddress(); + } + + return null; + } + + var urlLower = window.location.href.toLowerCase(); + var index = urlLower.lastIndexOf("/web"); + + if (-1 != index) { + return urlLower.substring(0, index); + } + + var loc = window.location; + var address = loc.protocol + "//" + loc.hostname; + + if (loc.port) { + address += ":" + loc.port; + } + + return address; + }, + getCurrentUserId: function () { + var apiClient = window.ApiClient; + + if (apiClient) { + return apiClient.getCurrentUserId(); + } + + return null; + }, + onServerChanged: function (userId, accessToken, apiClient) { + apiClient = apiClient || window.ApiClient; + window.ApiClient = apiClient; + }, + logout: function () { + ConnectionManager.logout().then(function () { + var loginPage; + + if (AppInfo.isNativeApp) { + loginPage = "selectserver.html"; + window.ApiClient = null; + } else { + loginPage = "login.html"; + } + + Dashboard.navigate(loginPage); + }); + }, + getConfigurationPageUrl: function (name) { + return "configurationpage?name=" + encodeURIComponent(name); + }, + getConfigurationResourceUrl: function (name) { + if (AppInfo.isNativeApp) { + return ApiClient.getUrl("web/ConfigurationPage", { name: name - }) : Dashboard.getConfigurationPageUrl(name) - }, - navigate: function(url, preserveQueryString) { - if (!url) throw new Error("url cannot be null or empty"); - var queryString = getWindowLocationSearch(); - return preserveQueryString && queryString && (url += queryString), new Promise(function(resolve, reject) { - require(["appRouter"], function(appRouter) { - return appRouter.show(url).then(resolve, reject) - }) - }) - }, - navigate_direct: function(path) { - return new Promise(function(resolve, reject) { - require(["appRouter"], function(appRouter) { - return appRouter.showDirect(path).then(resolve, reject) - }) - }) - }, - processPluginConfigurationUpdateResult: function() { - require(["loading", "toast"], function(loading, toast) { - loading.hide(), toast(Globalize.translate("MessageSettingsSaved")) - }) - }, - processServerConfigurationUpdateResult: function(result) { - require(["loading", "toast"], function(loading, toast) { - loading.hide(), toast(Globalize.translate("MessageSettingsSaved")) - }) - }, - processErrorResponse: function(response) { - require(["loading"], function(loading) { - loading.hide() }); - var status = "" + response.status; - response.statusText && (status = response.statusText), Dashboard.alert({ - title: status, - message: response.headers ? response.headers.get("X-Application-Error-Code") : null - }) - }, - alert: function(options) { - if ("string" == typeof options) return void require(["toast"], function(toast) { + } + + return Dashboard.getConfigurationPageUrl(name); + }, + navigate: function (url, preserveQueryString) { + if (!url) { + throw new Error("url cannot be null or empty"); + } + + var queryString = getWindowLocationSearch(); + + if (preserveQueryString && queryString) { + url += queryString; + } + + return new Promise(function (resolve, reject) { + require(["appRouter"], function (appRouter) { + return appRouter.show(url).then(resolve, reject); + }); + }); + }, + navigate_direct: function (path) { + return new Promise(function (resolve, reject) { + require(["appRouter"], function (appRouter) { + return appRouter.showDirect(path).then(resolve, reject); + }); + }); + }, + processPluginConfigurationUpdateResult: function () { + require(["loading", "toast"], function (loading, toast) { + loading.hide(); + toast(Globalize.translate("MessageSettingsSaved")); + }); + }, + processServerConfigurationUpdateResult: function (result) { + require(["loading", "toast"], function (loading, toast) { + loading.hide(); + toast(Globalize.translate("MessageSettingsSaved")); + }); + }, + processErrorResponse: function (response) { + require(["loading"], function (loading) { + loading.hide(); + }); + + var status = "" + response.status; + + if (response.statusText) { + status = response.statusText; + } + + Dashboard.alert({ + title: status, + message: response.headers ? response.headers.get("X-Application-Error-Code") : null + }); + }, + alert: function (options) { + if ("string" == typeof options) { + return void require(["toast"], function (toast) { toast({ text: options - }) + }); }); - require(["alert"], function(alert) { - alert({ - title: options.title || Globalize.translate("HeaderAlert"), - text: options.message - }).then(options.callback || function() {}) - }) - }, - restartServer: function() { - var apiClient = window.ApiClient; - apiClient && require(["serverRestartDialog", "events"], function(ServerRestartDialog, events) { + } + + require(["alert"], function (alert) { + alert({ + title: options.title || Globalize.translate("HeaderAlert"), + text: options.message + }).then(options.callback || function () {}); + }); + }, + restartServer: function () { + var apiClient = window.ApiClient; + + if (apiClient) { + require(["serverRestartDialog", "events"], function (ServerRestartDialog, events) { var dialog = new ServerRestartDialog({ apiClient: apiClient }); - events.on(dialog, "restarted", function() { - AppInfo.isNativeApp ? apiClient.ensureWebSocket() : window.location.reload(!0) - }), dialog.show() - }) - }, - capabilities: function(appHost) { - var caps = { - PlayableMediaTypes: ["Audio", "Video"], - SupportedCommands: ["MoveUp", "MoveDown", "MoveLeft", "MoveRight", "PageUp", "PageDown", "PreviousLetter", "NextLetter", "ToggleOsd", "ToggleContextMenu", "Select", "Back", "SendKey", "SendString", "GoHome", "GoToSettings", "VolumeUp", "VolumeDown", "Mute", "Unmute", "ToggleMute", "SetVolume", "SetAudioStreamIndex", "SetSubtitleStreamIndex", "DisplayContent", "GoToSearch", "DisplayMessage", "SetRepeatMode", "ChannelUp", "ChannelDown", "PlayMediaSource", "PlayTrailers"], - SupportsPersistentIdentifier: "cordova" === self.appMode || "android" === self.appMode, - SupportsMediaControl: !0 - }; - caps.IconUrl = appHost.deviceIconUrl(), caps.SupportsSync = appHost.supports("sync"), caps.SupportsContentUploading = appHost.supports("cameraupload"); - appHost.getPushTokenInfo(); - return caps = Object.assign(caps, appHost.getPushTokenInfo()) + events.on(dialog, "restarted", function () { + if (AppInfo.isNativeApp) { + apiClient.ensureWebSocket(); + } else { + window.location.reload(true); + } + }); + dialog.show(); + }); } }, - AppInfo = {}; -! function() { + capabilities: function (appHost) { + var caps = { + PlayableMediaTypes: ["Audio", "Video"], + SupportedCommands: ["MoveUp", "MoveDown", "MoveLeft", "MoveRight", "PageUp", "PageDown", "PreviousLetter", "NextLetter", "ToggleOsd", "ToggleContextMenu", "Select", "Back", "SendKey", "SendString", "GoHome", "GoToSettings", "VolumeUp", "VolumeDown", "Mute", "Unmute", "ToggleMute", "SetVolume", "SetAudioStreamIndex", "SetSubtitleStreamIndex", "DisplayContent", "GoToSearch", "DisplayMessage", "SetRepeatMode", "ChannelUp", "ChannelDown", "PlayMediaSource", "PlayTrailers"], + SupportsPersistentIdentifier: "cordova" === self.appMode || "android" === self.appMode, + SupportsMediaControl: true + }; + caps.IconUrl = appHost.deviceIconUrl(); + caps.SupportsSync = appHost.supports("sync"); + caps.SupportsContentUploading = appHost.supports("cameraupload"); + appHost.getPushTokenInfo(); + return caps = Object.assign(caps, appHost.getPushTokenInfo()); + } +}; +var AppInfo = {}; +!function () { "use strict"; function initializeApiClient(apiClient) { - "cordova" !== self.appMode && "android" !== self.appMode || (apiClient.getAvailablePlugins = function() { - return Promise.resolve([]) - }) + if (!("cordova" !== self.appMode && "android" !== self.appMode)) { + apiClient.getAvailablePlugins = function () { + return Promise.resolve([]); + }; + } } - function onApiClientCreated(e, newApiClient) { - initializeApiClient(newApiClient), window.$ && ($.ajax = newApiClient.ajax) + function onApiClientCreated(e__e, newApiClient) { + initializeApiClient(newApiClient); + + if (window.$) { + $.ajax = newApiClient.ajax; + } } function defineConnectionManager(connectionManager) { - window.ConnectionManager = connectionManager, define("connectionManager", [], function() { - return connectionManager - }) + window.ConnectionManager = connectionManager; + define("connectionManager", [], function () { + return connectionManager; + }); } function bindConnectionManagerEvents(connectionManager, events, userSettings) { - window.Events = events, events.on(ConnectionManager, "apiclientcreated", onApiClientCreated), connectionManager.currentApiClient = function() { + window.Events = events; + events.on(ConnectionManager, "apiclientcreated", onApiClientCreated); + + connectionManager.currentApiClient = function () { if (!localApiClient) { var server = connectionManager.getLastUsedServer(); - server && (localApiClient = connectionManager.getApiClient(server.Id)) + + if (server) { + localApiClient = connectionManager.getApiClient(server.Id); + } } - return localApiClient - }, connectionManager.onLocalUserSignedIn = function(user) { - return localApiClient = connectionManager.getApiClient(user.ServerId), window.ApiClient = localApiClient, userSettings.setUserInfo(user.Id, localApiClient) - }, events.on(connectionManager, "localusersignedout", function() { - userSettings.setUserInfo(null, null) - }) + + return localApiClient; + }; + + connectionManager.onLocalUserSignedIn = function (user) { + localApiClient = connectionManager.getApiClient(user.ServerId); + window.ApiClient = localApiClient; + return userSettings.setUserInfo(user.Id, localApiClient); + }; + + events.on(connectionManager, "localusersignedout", function () { + userSettings.setUserInfo(null, null); + }); } function createConnectionManager() { - return new Promise(function(resolve, reject) { - require(["connectionManagerFactory", "apphost", "credentialprovider", "events", "userSettings"], function(ConnectionManager, apphost, credentialProvider, events, userSettings) { - var credentialProviderInstance = new credentialProvider; + return new Promise(function (resolve, reject) { + require(["connectionManagerFactory", "apphost", "credentialprovider", "events", "userSettings"], function (ConnectionManager, apphost, credentialProvider, events, userSettings) { + var credentialProviderInstance = new credentialProvider(); var promises = [apphost.getSyncProfile(), apphost.init()]; - Promise.all(promises).then(function(responses) { - var deviceProfile = responses[0], - capabilities = Dashboard.capabilities(apphost); + Promise.all(promises).then(function (responses) { + var deviceProfile = responses[0]; + var capabilities = Dashboard.capabilities(apphost); capabilities.DeviceProfile = deviceProfile; var connectionManager = new ConnectionManager(credentialProviderInstance, apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), capabilities, window.devicePixelRatio); - if (defineConnectionManager(connectionManager), bindConnectionManagerEvents(connectionManager, events, userSettings), !AppInfo.isNativeApp) return console.log("loading ApiClient singleton"), getRequirePromise(["apiclient"]).then(function(apiClientFactory) { - console.log("creating ApiClient singleton"); - var apiClient = new apiClientFactory(Dashboard.serverAddress(), apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), window.devicePixelRatio); - apiClient.enableAutomaticNetworking = !1, apiClient.manualAddressOnly = !0, connectionManager.addApiClient(apiClient), window.ApiClient = apiClient, localApiClient = apiClient, console.log("loaded ApiClient singleton"), resolve() - }); - resolve() + + if (defineConnectionManager(connectionManager), bindConnectionManagerEvents(connectionManager, events, userSettings), !AppInfo.isNativeApp) { + console.log("loading ApiClient singleton"); + return getRequirePromise(["apiclient"]).then(function (apiClientFactory) { + console.log("creating ApiClient singleton"); + var apiClient = new apiClientFactory(Dashboard.serverAddress(), apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), window.devicePixelRatio); + apiClient.enableAutomaticNetworking = false; + apiClient.manualAddressOnly = true; + connectionManager.addApiClient(apiClient); + window.ApiClient = apiClient; + localApiClient = apiClient; + console.log("loaded ApiClient singleton"); + resolve(); + }); + } + + resolve(); }); }); }); } function returnFirstDependency(obj) { - return obj + return obj; } function getSettingsBuilder(UserSettings, layoutManager, browser) { - UserSettings.prototype.enableThemeVideos = function(val) { + UserSettings.prototype.enableThemeVideos = function (val) { if (val != null) { return this.set('enableThemeVideos', val.toString(), false); } + val = this.get('enableThemeVideos', false); + if (val !== 'false') { return !layoutManager.mobile; } else { return !browser.slow; } }; + return UserSettings; } @@ -228,7 +340,7 @@ var Dashboard = { } function getPlaybackManager(playbackManager) { - window.addEventListener("beforeunload", function(e) { + window.addEventListener("beforeunload", function (e__r) { try { playbackManager.onAppClose(); } catch (err) { @@ -242,6 +354,7 @@ var Dashboard = { if (appHost.getDefaultLayout) { layoutManager.defaultLayout = appHost.getDefaultLayout(); } + layoutManager.init(); return layoutManager; } @@ -265,26 +378,34 @@ var Dashboard = { function getCastSenderApiLoader() { var ccLoaded = false; return { - load: function() { - return ccLoaded ? Promise.resolve() : new Promise(function(resolve, reject) { + load: function () { + if (ccLoaded) { + return Promise.resolve(); + } + + return new Promise(function (resolve, reject) { var fileref = document.createElement("script"); fileref.setAttribute("type", "text/javascript"); - fileref.onload = function() { - ccLoaded = !0, resolve() + + fileref.onload = function () { + ccLoaded = true; + resolve(); }; + fileref.setAttribute("src", "https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"); document.querySelector("head").appendChild(fileref); - }) + }); } - } + }; } function getDummyCastSenderApiLoader() { return { - load: function() { - return window.chrome = window.chrome || {}, Promise.resolve() + load: function () { + window.chrome = window.chrome || {}; + return Promise.resolve(); } - } + }; } function createSharedAppFooter(appFooter) { @@ -296,9 +417,13 @@ var Dashboard = { } function defineResizeObserver() { - self.ResizeObserver ? define("ResizeObserver", [], function() { - return self.ResizeObserver - }) : define("ResizeObserver", ["bower_components/emby-webcomponents/resize-observer-polyfill/ResizeObserver"], returnFirstDependency) + if (self.ResizeObserver) { + define("ResizeObserver", [], function () { + return self.ResizeObserver; + }); + } else { + define("ResizeObserver", ["bower_components/emby-webcomponents/resize-observer-polyfill/ResizeObserver"], returnFirstDependency); + } } function initRequireWithBrowser(browser) { @@ -306,93 +431,183 @@ var Dashboard = { var apiClientBowerPath = bowerPath + "/emby-apiclient"; var embyWebComponentsBowerPath = bowerPath + "/emby-webcomponents"; - "android" === self.appMode - ? define("filesystem", ["cordova/filesystem"], returnFirstDependency) - : define("filesystem", [embyWebComponentsBowerPath + "/filesystem"], returnFirstDependency); - window.IntersectionObserver && !browser.edge - ? define("lazyLoader", [embyWebComponentsBowerPath + "/lazyloader/lazyloader-intersectionobserver"], returnFirstDependency) - : define("lazyLoader", [embyWebComponentsBowerPath + "/lazyloader/lazyloader-scroll"], returnFirstDependency); - "android" === self.appMode - ? define("shell", ["cordova/shell"], returnFirstDependency) - : define("shell", [embyWebComponentsBowerPath + "/shell"], returnFirstDependency); - "cordova" === self.appMode || "android" === self.appMode - ? (define("apiclientcore", ["bower_components/emby-apiclient/apiclient"], returnFirstDependency), define("apiclient", ["bower_components/emby-apiclient/apiclientex"], returnFirstDependency)) - : define("apiclient", ["bower_components/emby-apiclient/apiclient"], returnFirstDependency) + if ("android" === self.appMode) { + define("filesystem", ["cordova/filesystem"], returnFirstDependency); + } else { + define("filesystem", [embyWebComponentsBowerPath + "/filesystem"], returnFirstDependency); + } + + if (window.IntersectionObserver && !browser.edge) { + define("lazyLoader", [embyWebComponentsBowerPath + "/lazyloader/lazyloader-intersectionobserver"], returnFirstDependency); + } else { + define("lazyLoader", [embyWebComponentsBowerPath + "/lazyloader/lazyloader-scroll"], returnFirstDependency); + } + + if ("android" === self.appMode) { + define("shell", ["cordova/shell"], returnFirstDependency); + } else { + define("shell", [embyWebComponentsBowerPath + "/shell"], returnFirstDependency); + } + + if ("cordova" === self.appMode || "android" === self.appMode) { + define("apiclientcore", ["bower_components/emby-apiclient/apiclient"], returnFirstDependency); + define("apiclient", ["bower_components/emby-apiclient/apiclientex"], returnFirstDependency); + } else { + define("apiclient", ["bower_components/emby-apiclient/apiclient"], returnFirstDependency); + } + define("actionsheet", ["webActionSheet"], returnFirstDependency); - "registerElement" in document - ? define("registerElement", []) - : browser.msie - ? define("registerElement", [bowerPath + "/webcomponentsjs/webcomponents-lite.min.js"], returnFirstDependency) - : define("registerElement", [bowerPath + "/document-register-element/build/document-register-element"], returnFirstDependency); - "cordova" === self.appMode || "android" === self.appMode - ? define("serverdiscovery", ["cordova/serverdiscovery"], returnFirstDependency) - : define("serverdiscovery", [apiClientBowerPath + "/serverdiscovery"], returnFirstDependency); - "cordova" === self.appMode && browser.iOSVersion && browser.iOSVersion < 11 - ? define("imageFetcher", ["cordova/imagestore"], returnFirstDependency) - : define("imageFetcher", [embyWebComponentsBowerPath + "/images/basicimagefetcher"], returnFirstDependency); + + if ("registerElement" in document) { + define("registerElement", []); + } else { + if (browser.msie) { + define("registerElement", [bowerPath + "/webcomponentsjs/webcomponents-lite.min.js"], returnFirstDependency); + } else { + define("registerElement", [bowerPath + "/document-register-element/build/document-register-element"], returnFirstDependency); + } + } + + if ("cordova" === self.appMode || "android" === self.appMode) { + define("serverdiscovery", ["cordova/serverdiscovery"], returnFirstDependency); + } else { + define("serverdiscovery", [apiClientBowerPath + "/serverdiscovery"], returnFirstDependency); + } + + if ("cordova" === self.appMode && browser.iOSVersion && browser.iOSVersion < 11) { + define("imageFetcher", ["cordova/imagestore"], returnFirstDependency); + } else { + define("imageFetcher", [embyWebComponentsBowerPath + "/images/basicimagefetcher"], returnFirstDependency); + } var preferNativeAlerts = browser.tv; - preferNativeAlerts && window.alert - ? define("alert", [embyWebComponentsBowerPath + "/alert/nativealert"], returnFirstDependency) - : define("alert", [embyWebComponentsBowerPath + "/alert/alert"], returnFirstDependency); + + if (preferNativeAlerts && window.alert) { + define("alert", [embyWebComponentsBowerPath + "/alert/nativealert"], returnFirstDependency); + } else { + define("alert", [embyWebComponentsBowerPath + "/alert/alert"], returnFirstDependency); + } + defineResizeObserver(); define("dialog", [embyWebComponentsBowerPath + "/dialog/dialog"], returnFirstDependency); - preferNativeAlerts && window.confirm - ? define("confirm", [embyWebComponentsBowerPath + "/confirm/nativeconfirm"], returnFirstDependency) - : define("confirm", [embyWebComponentsBowerPath + "/confirm/confirm"], returnFirstDependency); - (preferNativeAlerts || browser.xboxOne) && window.confirm - ? define("prompt", [embyWebComponentsBowerPath + "/prompt/nativeprompt"], returnFirstDependency) - : define("prompt", [embyWebComponentsBowerPath + "/prompt/prompt"], returnFirstDependency); - browser.tizen || browser.operaTv || browser.chromecast || browser.orsay || browser.web0s || browser.ps4 - ? define("loading", [embyWebComponentsBowerPath + "/loading/loading-legacy"], returnFirstDependency) - : define("loading", [embyWebComponentsBowerPath + "/loading/loading-lite"], returnFirstDependency); + + if (preferNativeAlerts && window.confirm) { + define("confirm", [embyWebComponentsBowerPath + "/confirm/nativeconfirm"], returnFirstDependency); + } else { + define("confirm", [embyWebComponentsBowerPath + "/confirm/confirm"], returnFirstDependency); + } + + if ((preferNativeAlerts || browser.xboxOne) && window.confirm) { + define("prompt", [embyWebComponentsBowerPath + "/prompt/nativeprompt"], returnFirstDependency); + } else { + define("prompt", [embyWebComponentsBowerPath + "/prompt/prompt"], returnFirstDependency); + } + + if (browser.tizen || browser.operaTv || browser.chromecast || browser.orsay || browser.web0s || browser.ps4) { + define("loading", [embyWebComponentsBowerPath + "/loading/loading-legacy"], returnFirstDependency); + } else { + define("loading", [embyWebComponentsBowerPath + "/loading/loading-lite"], returnFirstDependency); + } + define("multi-download", [embyWebComponentsBowerPath + "/multidownload"], returnFirstDependency); - "android" === self.appMode - ? define("fileDownloader", ["cordova/filedownloader"], returnFirstDependency) - : define("fileDownloader", [embyWebComponentsBowerPath + "/filedownloader"], returnFirstDependency); + + if ("android" === self.appMode) { + define("fileDownloader", ["cordova/filedownloader"], returnFirstDependency); + } else { + define("fileDownloader", [embyWebComponentsBowerPath + "/filedownloader"], returnFirstDependency); + } + define("localassetmanager", [apiClientBowerPath + "/localassetmanager"], returnFirstDependency); - "cordova" === self.appMode || "android" === self.appMode - ? define("castSenderApiLoader", [], getDummyCastSenderApiLoader) - : define("castSenderApiLoader", [], getCastSenderApiLoader); - self.Windows - ? (define("bgtaskregister", ["environments/windows-uwp/bgtaskregister"], returnFirstDependency), define("transfermanager", ["environments/windows-uwp/transfermanager"], returnFirstDependency), define("filerepository", ["environments/windows-uwp/filerepository"], returnFirstDependency)) - : "cordova" === self.appMode - ? (define("filerepository", ["cordova/filerepository"], returnFirstDependency), define("transfermanager", ["filerepository"], returnFirstDependency)) - : "android" === self.appMode - ? (define("transfermanager", ["cordova/transfermanager"], returnFirstDependency), define("filerepository", ["cordova/filerepository"], returnFirstDependency)) - : (define("transfermanager", [apiClientBowerPath + "/sync/transfermanager"], returnFirstDependency), define("filerepository", [apiClientBowerPath + "/sync/filerepository"], returnFirstDependency)); - "android" === self.appMode - ? define("localsync", ["cordova/localsync"], returnFirstDependency) - : define("localsync", [apiClientBowerPath + "/sync/localsync"], returnFirstDependency); + + if ("cordova" === self.appMode || "android" === self.appMode) { + define("castSenderApiLoader", [], getDummyCastSenderApiLoader); + } else { + define("castSenderApiLoader", [], getCastSenderApiLoader); + } + + if (self.Windows) { + define("bgtaskregister", ["environments/windows-uwp/bgtaskregister"], returnFirstDependency); + define("transfermanager", ["environments/windows-uwp/transfermanager"], returnFirstDependency); + define("filerepository", ["environments/windows-uwp/filerepository"], returnFirstDependency); + } else { + if ("cordova" === self.appMode) { + define("filerepository", ["cordova/filerepository"], returnFirstDependency); + define("transfermanager", ["filerepository"], returnFirstDependency); + } else { + if ("android" === self.appMode) { + define("transfermanager", ["cordova/transfermanager"], returnFirstDependency); + define("filerepository", ["cordova/filerepository"], returnFirstDependency); + } else { + define("transfermanager", [apiClientBowerPath + "/sync/transfermanager"], returnFirstDependency); + define("filerepository", [apiClientBowerPath + "/sync/filerepository"], returnFirstDependency); + } + } + } + + if ("android" === self.appMode) { + define("localsync", ["cordova/localsync"], returnFirstDependency); + } else { + define("localsync", [apiClientBowerPath + "/sync/localsync"], returnFirstDependency); + } } function getRequirePromise(deps) { - return new Promise(function(resolve, reject) { - require(deps, resolve) - }) + return new Promise(function (resolve, reject) { + require(deps, resolve); + }); } function init() { - "android" === self.appMode && define("nativedirectorychooser", ["cordova/nativedirectorychooser"], returnFirstDependency), define("livetvcss", ["css!css/livetv.css"], returnFirstDependency), define("detailtablecss", ["css!css/detailtable.css"], returnFirstDependency), define("buttonenabled", ["legacy/buttonenabled"], returnFirstDependency); + if ("android" === self.appMode) { + define("nativedirectorychooser", ["cordova/nativedirectorychooser"], returnFirstDependency); + } + + define("livetvcss", ["css!css/livetv.css"], returnFirstDependency); + define("detailtablecss", ["css!css/detailtable.css"], returnFirstDependency); + define("buttonenabled", ["legacy/buttonenabled"], returnFirstDependency); var list = []; - window.fetch || list.push("fetch"), "function" != typeof Object.assign && list.push("objectassign"), Array.prototype.filter || list.push("arraypolyfills"), Function.prototype.bind || list.push("functionbind"), window.requestAnimationFrame || list.push("raf"), require(list, function() { - createConnectionManager().then(function() { - console.log("initAfterDependencies promises resolved"), require(["globalize", "browser"], function(globalize, browser) { - window.Globalize = globalize, loadCoreDictionary(globalize).then(function() { - onGlobalizeInit(browser) - }) - }) - }) - }) + + if (!window.fetch) { + list.push("fetch"); + } + + if ("function" != typeof Object.assign) { + list.push("objectassign"); + } + + if (!Array.prototype.filter) { + list.push("arraypolyfills"); + } + + if (!Function.prototype.bind) { + list.push("functionbind"); + } + + if (!window.requestAnimationFrame) { + list.push("raf"); + } + + require(list, function () { + createConnectionManager().then(function () { + console.log("initAfterDependencies promises resolved"); + + require(["globalize", "browser"], function (globalize, browser) { + window.Globalize = globalize; + loadCoreDictionary(globalize).then(function () { + onGlobalizeInit(browser); + }); + }); + }); + }); } function loadCoreDictionary(globalize) { var languages = ["ar", "be-by", "bg-bg", "ca", "cs", "da", "de", "el", "en-gb", "en-us", "es", "es-ar", "es-mx", "fa", "fi", "fr", "fr-ca", "gsw", "he", "hi-in", "hr", "hu", "id", "it", "kk", "ko", "lt-lt", "ms", "nb", "nl", "pl", "pt-br", "pt-pt", "ro", "ru", "sk", "sl-si", "sv", "tr", "uk", "vi", "zh-cn", "zh-hk", "zh-tw"]; - var translations = languages.map(function(i) { + var translations = languages.map(function (i__t) { return { - lang: i, - path: "strings/" + i + ".json" - } + lang: i__t, + path: "strings/" + i__t + ".json" + }; }); globalize.defaultModule("core"); return globalize.loadStrings({ @@ -403,21 +618,34 @@ var Dashboard = { function onGlobalizeInit(browser) { if ("android" === self.appMode) { - if (-1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync")) return onAppReady(browser) + if (-1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync")) { + return onAppReady(browser); + } } + document.title = Globalize.translateDocument(document.title, "core"); var deps = ["apphost"]; - browser.tv && !browser.android ? (console.log("Using system fonts with explicit sizes"), deps.push("systemFontsSizedCss")) : (console.log("Using default fonts"), deps.push("systemFontsCss")), deps.push("css!css/librarybrowser"), require(deps, function(appHost) { - loadPlugins([], appHost, browser).then(function() { + + if (browser.tv && !browser.android) { + console.log("Using system fonts with explicit sizes"); + deps.push("systemFontsSizedCss"); + } else { + console.log("Using default fonts"); + deps.push("systemFontsCss"); + } + + deps.push("css!css/librarybrowser"); + + require(deps, function (appHost) { + loadPlugins([], appHost, browser).then(function () { onAppReady(browser); - }) - }) + }); + }); } function defineRoute(newRoute, dictionary) { var baseRoute = Emby.Page.baseUrl(); var path = newRoute.path; - path = path.replace(baseRoute, ""); console.log("Defining route: " + path); newRoute.dictionary = newRoute.dictionary || dictionary || "core"; @@ -429,586 +657,765 @@ var Dashboard = { defineRoute({ path: "/addplugin.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "scripts/addpluginpage" - }), defineRoute({ + }); + defineRoute({ path: "/appservices.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/autoorganizelog.html", dependencies: [], roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/channelsettings.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/addserver.html", dependencies: ["emby-button", "emby-input"], - autoFocus: !1, - anonymous: !0, - startup: !0, + autoFocus: false, + anonymous: true, + startup: true, controller: "scripts/addserver" - }), defineRoute({ + }); + defineRoute({ path: "/dashboard.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "scripts/dashboardpage" - }), defineRoute({ + }); + defineRoute({ path: "/dashboardgeneral.html", controller: "dashboard/dashboardgeneral", - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/dashboardhosting.html", dependencies: ["emby-input", "emby-button"], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "dashboard/dashboardhosting" - }), defineRoute({ + }); + defineRoute({ path: "/devices/devices.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "devices/devices" - }), defineRoute({ + }); + defineRoute({ path: "/devices/device.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "devices/device" - }), defineRoute({ + }); + defineRoute({ path: "/dlnaprofile.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/dlnaprofiles.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/dlnaserversettings.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/dlnasettings.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/edititemmetadata.html", dependencies: [], controller: "scripts/edititemmetadata", - autoFocus: !1 - }), defineRoute({ + autoFocus: false + }); + defineRoute({ path: "/encodingsettings.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/opensubtitles.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/forgotpassword.html", dependencies: ["emby-input", "emby-button"], - anonymous: !0, - startup: !0, + anonymous: true, + startup: true, controller: "scripts/forgotpassword" - }), defineRoute({ + }); + defineRoute({ path: "/forgotpasswordpin.html", dependencies: ["emby-input", "emby-button"], - autoFocus: !1, - anonymous: !0, - startup: !0, + autoFocus: false, + anonymous: true, + startup: true, controller: "scripts/forgotpasswordpin" - }), defineRoute({ + }); + defineRoute({ path: "/home.html", dependencies: [], - autoFocus: !1, + autoFocus: false, controller: "home/home", transition: "fade", type: "home" - }), defineRoute({ + }); + defineRoute({ path: "/list/list.html", dependencies: [], - autoFocus: !1, + autoFocus: false, controller: "list/list", transition: "fade" - }), defineRoute({ + }); + defineRoute({ path: "/index.html", dependencies: [], - autoFocus: !1, - isDefaultRoute: !0 - }), defineRoute({ + autoFocus: false, + isDefaultRoute: true + }); + defineRoute({ path: "/itemdetails.html", dependencies: ["emby-button", "scripts/livetvcomponents", "paper-icon-button-light", "emby-itemscontainer"], controller: "scripts/itemdetailpage", - autoFocus: !1, + autoFocus: false, transition: "fade" - }), defineRoute({ + }); + defineRoute({ path: "/library.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/librarydisplay.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "dashboard/librarydisplay" - }), defineRoute({ + }); + defineRoute({ path: "/librarysettings.html", dependencies: ["emby-collapse", "emby-input", "emby-button", "emby-select"], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "dashboard/librarysettings" - }), defineRoute({ + }); + defineRoute({ path: "/livetv.html", dependencies: ["emby-button", "livetvcss"], controller: "scripts/livetvsuggested", - autoFocus: !1, + autoFocus: false, transition: "fade" - }), defineRoute({ + }); + defineRoute({ path: "/livetvguideprovider.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/livetvseriestimer.html", dependencies: ["emby-checkbox", "emby-input", "emby-button", "emby-collapse", "scripts/livetvcomponents", "scripts/livetvseriestimer", "livetvcss"], - autoFocus: !1, + autoFocus: false, controller: "scripts/livetvseriestimer" - }), defineRoute({ + }); + defineRoute({ path: "/livetvsettings.html", dependencies: [], - autoFocus: !1 - }), defineRoute({ + autoFocus: false + }); + defineRoute({ path: "/livetvstatus.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/livetvtuner.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "dashboard/livetvtuner" - }), defineRoute({ + }); + defineRoute({ path: "/log.html", dependencies: ["emby-checkbox"], roles: "admin", controller: "dashboard/logpage" - }), defineRoute({ + }); + defineRoute({ path: "/login.html", dependencies: ["emby-button", "emby-input"], - autoFocus: !1, - anonymous: !0, - startup: !0, + autoFocus: false, + anonymous: true, + startup: true, controller: "scripts/loginpage" - }), defineRoute({ + }); + defineRoute({ path: "/metadataadvanced.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/metadataimages.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/metadatanfo.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/movies.html", dependencies: ["emby-button"], - autoFocus: !1, + autoFocus: false, controller: "scripts/moviesrecommended", transition: "fade" - }), defineRoute({ + }); + defineRoute({ path: "/music.html", dependencies: [], controller: "scripts/musicrecommended", - autoFocus: !1, + autoFocus: false, transition: "fade" - }), defineRoute({ + }); + defineRoute({ path: "/mypreferencesdisplay.html", dependencies: ["emby-checkbox", "emby-button", "emby-select"], - autoFocus: !1, + autoFocus: false, transition: "fade", controller: "scripts/mypreferencesdisplay" - }), defineRoute({ + }); + defineRoute({ path: "/mypreferenceshome.html", dependencies: [], - autoFocus: !1, + autoFocus: false, transition: "fade", controller: "scripts/mypreferenceshome" - }), defineRoute({ + }); + defineRoute({ path: "/mypreferencessubtitles.html", dependencies: [], - autoFocus: !1, + autoFocus: false, transition: "fade", controller: "scripts/mypreferencessubtitles" - }), defineRoute({ + }); + defineRoute({ path: "/mypreferenceslanguages.html", dependencies: ["emby-button", "emby-checkbox", "emby-select"], - autoFocus: !1, + autoFocus: false, transition: "fade", controller: "scripts/mypreferenceslanguages" - }), defineRoute({ + }); + defineRoute({ path: "/mypreferencesmenu.html", dependencies: ["emby-button"], - autoFocus: !1, + autoFocus: false, transition: "fade", controller: "scripts/mypreferencescommon" - }), defineRoute({ + }); + defineRoute({ path: "/myprofile.html", dependencies: ["emby-button", "emby-collapse", "emby-checkbox", "emby-input"], - autoFocus: !1, + autoFocus: false, transition: "fade", controller: "scripts/myprofile" - }), defineRoute({ + }); + defineRoute({ path: "/notificationsetting.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/notificationsettings.html", controller: "scripts/notificationsettings", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/nowplaying.html", dependencies: ["paper-icon-button-light", "emby-slider", "emby-button", "emby-input", "emby-itemscontainer"], controller: "scripts/nowplayingpage", - autoFocus: !1, + autoFocus: false, transition: "fade", - fullscreen: !0, - supportsThemeMedia: !0, - enableMediaControl: !1 - }), defineRoute({ + fullscreen: true, + supportsThemeMedia: true, + enableMediaControl: false + }); + defineRoute({ path: "/playbackconfiguration.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/plugincatalog.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "scripts/plugincatalogpage" - }), defineRoute({ + }); + defineRoute({ path: "/plugins.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/scheduledtask.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "scripts/scheduledtaskpage" - }), defineRoute({ + }); + defineRoute({ path: "/scheduledtasks.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "scripts/scheduledtaskspage" - }), defineRoute({ + }); + defineRoute({ path: "/search.html", dependencies: [], controller: "scripts/searchpage" - }), defineRoute({ + }); + defineRoute({ path: "/selectserver.html", dependencies: ["listViewStyle", "emby-button"], - autoFocus: !1, - anonymous: !0, - startup: !0, + autoFocus: false, + anonymous: true, + startup: true, controller: "scripts/selectserver" - }), defineRoute({ + }); + defineRoute({ path: "/serveractivity.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin", controller: "dashboard/serveractivity" - }), defineRoute({ + }); + defineRoute({ path: "/serversecurity.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/streamingsettings.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/support.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/tv.html", dependencies: ["paper-icon-button-light", "emby-button"], - autoFocus: !1, + autoFocus: false, controller: "scripts/tvrecommended", transition: "fade" - }), defineRoute({ + }); + defineRoute({ path: "/useredit.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/userlibraryaccess.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/usernew.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/userparentalcontrol.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/userpassword.html", dependencies: ["emby-input", "emby-button", "emby-checkbox"], - autoFocus: !1, + autoFocus: false, controller: "scripts/userpasswordpage" - }), defineRoute({ + }); + defineRoute({ path: "/userprofiles.html", dependencies: [], - autoFocus: !1, + autoFocus: false, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/wizardremoteaccess.html", dependencies: ["dashboardcss"], - autoFocus: !1, - anonymous: !0, + autoFocus: false, + anonymous: true, controller: "dashboard/wizardremoteaccess" - }), defineRoute({ + }); + defineRoute({ path: "/wizardfinish.html", dependencies: ["emby-button", "dashboardcss"], - autoFocus: !1, - anonymous: !0, + autoFocus: false, + anonymous: true, controller: "dashboard/wizardfinishpage" - }), defineRoute({ + }); + defineRoute({ path: "/wizardlibrary.html", dependencies: ["dashboardcss"], - autoFocus: !1, - anonymous: !0 - }), defineRoute({ + autoFocus: false, + anonymous: true + }); + defineRoute({ path: "/wizardsettings.html", dependencies: ["dashboardcss"], - autoFocus: !1, - anonymous: !0, + autoFocus: false, + anonymous: true, controller: "dashboard/wizardsettings" - }), defineRoute({ + }); + defineRoute({ path: "/wizardstart.html", dependencies: ["dashboardcss"], - autoFocus: !1, - anonymous: !0, + autoFocus: false, + anonymous: true, controller: "dashboard/wizardstart" - }), defineRoute({ + }); + defineRoute({ path: "/wizarduser.html", dependencies: ["dashboardcss", "emby-input"], controller: "scripts/wizarduserpage", - autoFocus: !1, - anonymous: !0 - }), defineRoute({ + autoFocus: false, + anonymous: true + }); + defineRoute({ path: "/videoosd.html", dependencies: [], transition: "fade", controller: "scripts/videoosd", - autoFocus: !1, + autoFocus: false, type: "video-osd", - supportsThemeMedia: !0, - fullscreen: !0, - enableMediaControl: !1 - }), defineRoute({ + supportsThemeMedia: true, + fullscreen: true, + enableMediaControl: false + }); + defineRoute({ path: "/configurationpage", dependencies: [], - autoFocus: !1, - enableCache: !1, - enableContentQueryString: !0, + autoFocus: false, + enableCache: false, + enableContentQueryString: true, roles: "admin" - }), defineRoute({ + }); + defineRoute({ path: "/", - isDefaultRoute: !0, - autoFocus: !1, + isDefaultRoute: true, + autoFocus: false, dependencies: [] - }) + }); } function getPluginPageContentPath() { - return window.ApiClient ? ApiClient.getUrl("web/ConfigurationPage") : null + if (window.ApiClient) { + return ApiClient.getUrl("web/ConfigurationPage"); + } + + return null; } function loadPlugins(externalPlugins, appHost, browser, shell) { console.log("Loading installed plugins"); - var list = [ - "bower_components/emby-webcomponents/playback/playbackvalidation", - "bower_components/emby-webcomponents/playback/playaccessvalidation", - "bower_components/emby-webcomponents/playback/experimentalwarnings", - "bower_components/emby-webcomponents/htmlaudioplayer/plugin", - "bower_components/emby-webcomponents/htmlvideoplayer/plugin", - "bower_components/emby-webcomponents/photoplayer/plugin", - "bower_components/emby-webcomponents/youtubeplayer/plugin" - ]; + var list = ["bower_components/emby-webcomponents/playback/playbackvalidation", "bower_components/emby-webcomponents/playback/playaccessvalidation", "bower_components/emby-webcomponents/playback/experimentalwarnings", "bower_components/emby-webcomponents/htmlaudioplayer/plugin", "bower_components/emby-webcomponents/htmlvideoplayer/plugin", "bower_components/emby-webcomponents/photoplayer/plugin", "bower_components/emby-webcomponents/youtubeplayer/plugin"]; + if ("cordova" === self.appMode) { list.push("cordova/chromecast"); } + if ("android" === self.appMode) { list.push("cordova/externalplayer"); } + if (appHost.supports("remotecontrol")) { list.push("bower_components/emby-webcomponents/sessionplayer"); + if (browser.chrome || browser.opera) { list.push("bower_components/emby-webcomponents/chromecast/chromecastplayer"); } } - for (var i = 0, length = externalPlugins.length; i < length; i++) list.push(externalPlugins[i]); - return new Promise(function(resolve, reject) { - Promise.all(list.map(loadPlugin)).then(function() { - require(["packageManager"], function(packageManager) { - packageManager.init().then(resolve, reject) - }) - }, reject) - }) + + for (var i__y = 0, length = externalPlugins.length; i__y < length; i__y++) { + list.push(externalPlugins[i__y]); + } + + return new Promise(function (resolve, reject) { + Promise.all(list.map(loadPlugin)).then(function () { + require(["packageManager"], function (packageManager) { + packageManager.init().then(resolve, reject); + }); + }, reject); + }); } function loadPlugin(url) { - return new Promise(function(resolve, reject) { - require(["pluginManager"], function(pluginManager) { - pluginManager.loadPlugin(url).then(resolve, reject) - }) - }) + return new Promise(function (resolve, reject) { + require(["pluginManager"], function (pluginManager) { + pluginManager.loadPlugin(url).then(resolve, reject); + }); + }); } function enableNativeGamepadKeyMapping() { - return !(!window.navigator || "string" != typeof window.navigator.gamepadInputEmulation) && (window.navigator.gamepadInputEmulation = "keyboard", !0) + if (!(!window.navigator || "string" != typeof window.navigator.gamepadInputEmulation)) { + window.navigator.gamepadInputEmulation = "keyboard"; + return true; + } + + return false; } function isGamepadSupported() { - return "ongamepadconnected" in window || navigator.getGamepads || navigator.webkitGetGamepads + return "ongamepadconnected" in window || navigator.getGamepads || navigator.webkitGetGamepads; } function onAppReady(browser) { console.log("Begin onAppReady"); - var deps = [], - isBackgroundSync = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync"), - isInBackground = isBackgroundSync; - deps.push("apphost"), isInBackground || (deps.push("appRouter"), deps.push("scripts/themeloader"), browser.iOS && deps.push("css!devices/ios/ios.css"), deps.push("libraryMenu")), console.log("onAppReady - loading dependencies"), require(deps, function(appHost, pageObjects) { - if (console.log("Loaded dependencies in onAppReady"), window.Emby = {}, isBackgroundSync) return void syncNow(); - window.Emby.Page = pageObjects, defineCoreRoutes(appHost), Emby.Page.start({ - click: !1, - hashbang: !0 + var deps = []; + var isBackgroundSync = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync"); + var isInBackground = isBackgroundSync; + deps.push("apphost"); + + if (!isInBackground) { + deps.push("appRouter"); + deps.push("scripts/themeloader"); + + if (browser.iOS) { + deps.push("css!devices/ios/ios.css"); + } + + deps.push("libraryMenu"); + } + + console.log("onAppReady - loading dependencies"); + + require(deps, function (appHost, pageObjects) { + if (console.log("Loaded dependencies in onAppReady"), window.Emby = {}, isBackgroundSync) { + return void syncNow(); + } + + window.Emby.Page = pageObjects; + defineCoreRoutes(appHost); + Emby.Page.start({ + click: false, + hashbang: true }); var postInitDependencies = []; - !enableNativeGamepadKeyMapping() && isGamepadSupported() && postInitDependencies.push("bower_components/emby-webcomponents/input/gamepadtokey"), postInitDependencies.push("bower_components/emby-webcomponents/thememediaplayer"), postInitDependencies.push("scripts/autobackdrops"), "cordova" !== self.appMode && "android" !== self.appMode || (browser.android ? (postInitDependencies.push("cordova/mediasession"), postInitDependencies.push("cordova/chromecast"), postInitDependencies.push("cordova/appshortcuts")) : browser.safari && (postInitDependencies.push("cordova/mediasession"), postInitDependencies.push("cordova/volume"), postInitDependencies.push("cordova/statusbar"), postInitDependencies.push("cordova/backgroundfetch"))), browser.tv || browser.xboxOne || browser.ps4 || postInitDependencies.push("bower_components/emby-webcomponents/nowplayingbar/nowplayingbar"), appHost.supports("remotecontrol") && (postInitDependencies.push("playerSelectionMenu"), postInitDependencies.push("bower_components/emby-webcomponents/playback/remotecontrolautoplay")), appHost.supports("physicalvolumecontrol") && !browser.touch || browser.edge || postInitDependencies.push("bower_components/emby-webcomponents/playback/volumeosd"), navigator.mediaSession && postInitDependencies.push("mediaSession"), postInitDependencies.push("apiInput"), postInitDependencies.push("mouseManager"), browser.tv || browser.xboxOne || (postInitDependencies.push("bower_components/emby-webcomponents/playback/playbackorientation"), registerServiceWorker(), window.Notification && postInitDependencies.push("bower_components/emby-webcomponents/notifications/notifications")), postInitDependencies.push("playerSelectionMenu"), appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron")) && require(["fullscreen-doubleclick"]), require(postInitDependencies), appHost.supports("sync") && initLocalSyncEvents(), AppInfo.isNativeApp || window.ApiClient && require(["css!" + ApiClient.getUrl("Branding/Css")]) - }) + + if (!enableNativeGamepadKeyMapping() && isGamepadSupported()) { + postInitDependencies.push("bower_components/emby-webcomponents/input/gamepadtokey"); + } + + postInitDependencies.push("bower_components/emby-webcomponents/thememediaplayer"); + postInitDependencies.push("scripts/autobackdrops"); + + if (!("cordova" !== self.appMode && "android" !== self.appMode)) { + if (browser.android) { + postInitDependencies.push("cordova/mediasession"); + postInitDependencies.push("cordova/chromecast"); + postInitDependencies.push("cordova/appshortcuts"); + } else { + if (browser.safari) { + postInitDependencies.push("cordova/mediasession"); + postInitDependencies.push("cordova/volume"); + postInitDependencies.push("cordova/statusbar"); + postInitDependencies.push("cordova/backgroundfetch"); + } + } + } + + if (!(browser.tv || browser.xboxOne || browser.ps4)) { + postInitDependencies.push("bower_components/emby-webcomponents/nowplayingbar/nowplayingbar"); + } + + if (appHost.supports("remotecontrol")) { + postInitDependencies.push("playerSelectionMenu"); + postInitDependencies.push("bower_components/emby-webcomponents/playback/remotecontrolautoplay"); + } + + if (!(appHost.supports("physicalvolumecontrol") && !browser.touch || browser.edge)) { + postInitDependencies.push("bower_components/emby-webcomponents/playback/volumeosd"); + } + + if (navigator.mediaSession) { + postInitDependencies.push("mediaSession"); + } + + postInitDependencies.push("apiInput"); + postInitDependencies.push("mouseManager"); + + if (!(browser.tv || browser.xboxOne)) { + postInitDependencies.push("bower_components/emby-webcomponents/playback/playbackorientation"); + registerServiceWorker(); + + if (window.Notification) { + postInitDependencies.push("bower_components/emby-webcomponents/notifications/notifications"); + } + } + + postInitDependencies.push("playerSelectionMenu"); + + if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) { + require(["fullscreen-doubleclick"]); + } + + require(postInitDependencies); + + if (appHost.supports("sync")) { + initLocalSyncEvents(); + } + + if (!AppInfo.isNativeApp) { + if (window.ApiClient) { + require(["css!" + ApiClient.getUrl("Branding/Css")]); + } + } + }); } function registerServiceWorker() { - if (navigator.serviceWorker && "cordova" !== self.appMode && "android" !== self.appMode) try { - navigator.serviceWorker.register("serviceworker.js").then(function() { - return navigator.serviceWorker.ready - }).then(function(reg) { - if (reg && reg.sync) return reg.sync.register("emby-sync").then(function() { - // TODO cvium: the sync serviceworker is a noop? - //window.SyncRegistered = Dashboard.isConnectMode() - }) - }) - } catch (err) { - console.log("Error registering serviceWorker: " + err) + if (navigator.serviceWorker && "cordova" !== self.appMode && "android" !== self.appMode) { + try { + navigator.serviceWorker.register("serviceworker.js").then(function () { + return navigator.serviceWorker.ready; + }).then(function (reg) { + if (reg && reg.sync) { + return reg.sync.register("emby-sync").then(function () {// TODO cvium: the sync serviceworker is a noop? + //window.SyncRegistered = Dashboard.isConnectMode() + }); + } + }); + } catch (err) { + console.log("Error registering serviceWorker: " + err); + } } } function syncNow() { - require(["localsync"], function(localSync) { - localSync.sync() - }) + require(["localsync"], function (localSync) { + localSync.sync(); + }); } function initLocalSyncEvents() { - require(["serverNotifications", "events"], function(serverNotifications, events) { - events.on(serverNotifications, "SyncJobItemReady", syncNow), events.on(serverNotifications, "SyncJobCancelled", syncNow), events.on(serverNotifications, "SyncJobItemCancelled", syncNow) - }) + require(["serverNotifications", "events"], function (serverNotifications, events) { + events.on(serverNotifications, "SyncJobItemReady", syncNow); + events.on(serverNotifications, "SyncJobCancelled", syncNow); + events.on(serverNotifications, "SyncJobItemCancelled", syncNow); + }); } function onWebComponentsReady(browser) { var initialDependencies = []; + if (!window.Promise || browser.web0s) { initialDependencies.push("bower_components/emby-webcomponents/native-promise-only/lib/npo.src"); } + initRequireWithBrowser(browser); + if (self.appMode === 'cordova' || self.appMode === 'android' || self.appMode === 'standalone') { AppInfo.isNativeApp = true; } + require(initialDependencies, init); } var localApiClient; - return function() { - var urlArgs = "v=" + (window.dashboardVersion || (new Date).getDate()); + + (function () { + var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate()); var bowerPath = getBowerPath(); var apiClientBowerPath = bowerPath + "/emby-apiclient"; var embyWebComponentsBowerPath = bowerPath + "/emby-webcomponents"; var paths = { - velocity: bowerPath + "/velocity/velocity.min", - vibrant: bowerPath + "/vibrant/dist/vibrant", - staticBackdrops: embyWebComponentsBowerPath + "/staticbackdrops", - ironCardList: "components/ironcardlist/ironcardlist", - scrollThreshold: "components/scrollthreshold", - playlisteditor: "components/playlisteditor/playlisteditor", - medialibrarycreator: "components/medialibrarycreator/medialibrarycreator", - medialibraryeditor: "components/medialibraryeditor/medialibraryeditor", - imageoptionseditor: "components/imageoptionseditor/imageoptionseditor", - howler: bowerPath + "/howlerjs/dist/howler.min", - sortable: bowerPath + "/Sortable/Sortable.min", - isMobile: bowerPath + "/isMobile/isMobile.min", - masonry: bowerPath + "/masonry/dist/masonry.pkgd.min", - humanedate: "components/humanedate", - libraryBrowser: "scripts/librarybrowser", - events: apiClientBowerPath + "/events", - credentialprovider: apiClientBowerPath + "/credentials", - connectionManagerFactory: bowerPath + "/emby-apiclient/connectionmanager", - visibleinviewport: embyWebComponentsBowerPath + "/visibleinviewport", - browserdeviceprofile: embyWebComponentsBowerPath + "/browserdeviceprofile", - browser: embyWebComponentsBowerPath + "/browser", - inputManager: embyWebComponentsBowerPath + "/inputmanager", - qualityoptions: embyWebComponentsBowerPath + "/qualityoptions", - hammer: bowerPath + "/hammerjs/hammer.min", - pageJs: embyWebComponentsBowerPath + "/pagejs/page", - focusManager: embyWebComponentsBowerPath + "/focusmanager", - datetime: embyWebComponentsBowerPath + "/datetime", - globalize: embyWebComponentsBowerPath + "/globalize", - itemHelper: embyWebComponentsBowerPath + "/itemhelper", - itemShortcuts: embyWebComponentsBowerPath + "/shortcuts", - playQueueManager: embyWebComponentsBowerPath + "/playback/playqueuemanager", - autoPlayDetect: embyWebComponentsBowerPath + "/playback/autoplaydetect", - nowPlayingHelper: embyWebComponentsBowerPath + "/playback/nowplayinghelper", - pluginManager: embyWebComponentsBowerPath + "/pluginmanager", - packageManager: embyWebComponentsBowerPath + "/packagemanager" + velocity: bowerPath + "/velocity/velocity.min", + vibrant: bowerPath + "/vibrant/dist/vibrant", + staticBackdrops: embyWebComponentsBowerPath + "/staticbackdrops", + ironCardList: "components/ironcardlist/ironcardlist", + scrollThreshold: "components/scrollthreshold", + playlisteditor: "components/playlisteditor/playlisteditor", + medialibrarycreator: "components/medialibrarycreator/medialibrarycreator", + medialibraryeditor: "components/medialibraryeditor/medialibraryeditor", + imageoptionseditor: "components/imageoptionseditor/imageoptionseditor", + howler: bowerPath + "/howlerjs/dist/howler.min", + sortable: bowerPath + "/Sortable/Sortable.min", + isMobile: bowerPath + "/isMobile/isMobile.min", + masonry: bowerPath + "/masonry/dist/masonry.pkgd.min", + humanedate: "components/humanedate", + libraryBrowser: "scripts/librarybrowser", + events: apiClientBowerPath + "/events", + credentialprovider: apiClientBowerPath + "/credentials", + connectionManagerFactory: bowerPath + "/emby-apiclient/connectionmanager", + visibleinviewport: embyWebComponentsBowerPath + "/visibleinviewport", + browserdeviceprofile: embyWebComponentsBowerPath + "/browserdeviceprofile", + browser: embyWebComponentsBowerPath + "/browser", + inputManager: embyWebComponentsBowerPath + "/inputmanager", + qualityoptions: embyWebComponentsBowerPath + "/qualityoptions", + hammer: bowerPath + "/hammerjs/hammer.min", + pageJs: embyWebComponentsBowerPath + "/pagejs/page", + focusManager: embyWebComponentsBowerPath + "/focusmanager", + datetime: embyWebComponentsBowerPath + "/datetime", + globalize: embyWebComponentsBowerPath + "/globalize", + itemHelper: embyWebComponentsBowerPath + "/itemhelper", + itemShortcuts: embyWebComponentsBowerPath + "/shortcuts", + playQueueManager: embyWebComponentsBowerPath + "/playback/playqueuemanager", + autoPlayDetect: embyWebComponentsBowerPath + "/playback/autoplaydetect", + nowPlayingHelper: embyWebComponentsBowerPath + "/playback/nowplayinghelper", + pluginManager: embyWebComponentsBowerPath + "/pluginmanager", + packageManager: embyWebComponentsBowerPath + "/packagemanager" }; - paths.hlsjs = bowerPath + "/hlsjs/dist/hls.min"; paths.flvjs = embyWebComponentsBowerPath + "/flvjs/flv.min"; paths.shaka = embyWebComponentsBowerPath + "/shaka/shaka-player.compiled"; - define("chromecastHelper", [embyWebComponentsBowerPath + "/chromecast/chromecasthelpers"], returnFirstDependency); define("mediaSession", [embyWebComponentsBowerPath + "/playback/mediasession"], returnFirstDependency); define("webActionSheet", [embyWebComponentsBowerPath + "/actionsheet/actionsheet"], returnFirstDependency); @@ -1096,14 +1503,20 @@ var Dashboard = { define("guide-settings-dialog", [embyWebComponentsBowerPath + "/guide/guide-settings"], returnFirstDependency); define("loadingDialog", [embyWebComponentsBowerPath + "/loadingdialog/loadingdialog"], returnFirstDependency); define("syncDialog", [embyWebComponentsBowerPath + "/sync/sync"], returnFirstDependency); - define("viewManager", [embyWebComponentsBowerPath + "/viewmanager/viewmanager"], function(viewManager) { - return window.ViewManager = viewManager, viewManager.dispatchPageEvents(!0), viewManager + define("viewManager", [embyWebComponentsBowerPath + "/viewmanager/viewmanager"], function (viewManager) { + window.ViewManager = viewManager; + viewManager.dispatchPageEvents(true); + return viewManager; }); - "cordova" === self.appMode || "android" === self.appMode - ? paths.apphost = "cordova/apphost" - : paths.apphost = "components/apphost"; - paths.appStorage = getAppStorage(apiClientBowerPath), requirejs.config({ + if ("cordova" === self.appMode || "android" === self.appMode) { + paths.apphost = "cordova/apphost"; + } else { + paths.apphost = "components/apphost"; + } + + paths.appStorage = getAppStorage(apiClientBowerPath); + requirejs.config({ waitSeconds: 0, map: { "*": { @@ -1138,9 +1551,12 @@ var Dashboard = { define("sortMenu", [embyWebComponentsBowerPath + "/sortmenu/sortmenu"], returnFirstDependency); define("registrationServices", [embyWebComponentsBowerPath + "/registrationservices/registrationservices"], returnFirstDependency); - "cordova" === self.appMode || "android" === self.appMode - ? define("fileupload", ["cordova/fileupload"], returnFirstDependency) - : define("fileupload", [apiClientBowerPath + "/fileupload"], returnFirstDependency); + if ("cordova" === self.appMode || "android" === self.appMode) { + define("fileupload", ["cordova/fileupload"], returnFirstDependency); + } else { + define("fileupload", [apiClientBowerPath + "/fileupload"], returnFirstDependency); + } + define("connectionmanager", [apiClientBowerPath + "/connectionmanager"]); define("serversync", [apiClientBowerPath + "/sync/serversync"], returnFirstDependency); define("multiserversync", [apiClientBowerPath + "/sync/multiserversync"], returnFirstDependency); @@ -1165,11 +1581,15 @@ var Dashboard = { define("navdrawer", ["components/navdrawer/navdrawer"], returnFirstDependency); define("htmlMediaHelper", [embyWebComponentsBowerPath + "/htmlvideoplayer/htmlmediahelper"], returnFirstDependency); define("viewcontainer", ["components/viewcontainer-lite", "css!" + embyWebComponentsBowerPath + "/viewmanager/viewcontainer-lite"], returnFirstDependency); - define("queryString", [bowerPath + "/query-string/index"], function() { - return queryString + define("queryString", [bowerPath + "/query-string/index"], function () { + return queryString; }); - define("jQuery", [bowerPath + "/jquery/dist/jquery.slim.min"], function() { - return window.ApiClient && (jQuery.ajax = ApiClient.ajax), jQuery + define("jQuery", [bowerPath + "/jquery/dist/jquery.slim.min"], function () { + if (window.ApiClient) { + jQuery.ajax = ApiClient.ajax; + } + + return jQuery; }); define("fnchecked", ["legacy/fnchecked"], returnFirstDependency); define("dialogHelper", [embyWebComponentsBowerPath + "/dialoghelper/dialoghelper"], returnFirstDependency); @@ -1178,12 +1598,20 @@ var Dashboard = { define("serverNotifications", ["apiInput"], returnFirstDependency); define("headroom-window", ["headroom"], createWindowHeadroom); define("appFooter-shared", ["appFooter"], createSharedAppFooter); - define("skinManager", [embyWebComponentsBowerPath + "/skinmanager"], function(skinManager) { - return skinManager.loadUserSkin = function(options) { - require(["appRouter"], function(appRouter) { - options = options || {}, options.start ? appRouter.invokeShortcut(options.start) : appRouter.goHome() - }) - }, skinManager.getThemes = function() { + define("skinManager", [embyWebComponentsBowerPath + "/skinmanager"], function (skinManager) { + skinManager.loadUserSkin = function (options) { + require(["appRouter"], function (appRouter) { + options = options || {}; + + if (options.start) { + appRouter.invokeShortcut(options.start); + } else { + appRouter.goHome(); + } + }); + }; + + skinManager.getThemes = function () { return [{ name: "Apple TV", id: "appletv" @@ -1193,8 +1621,8 @@ var Dashboard = { }, { name: "Dark", id: "dark", - isDefault: !0, - isDefaultServerDashboard: !0 + isDefault: true, + isDefaultServerDashboard: true }, { name: "Dark (green accent)", id: "dark-green" @@ -1203,7 +1631,7 @@ var Dashboard = { id: "dark-red" }, { name: "Light", - id: "light", + id: "light" }, { name: "Light (blue accent)", id: "light-blue" @@ -1222,103 +1650,314 @@ var Dashboard = { }, { name: "Windows Media Center", id: "wmc" - }] - }, skinManager + }]; + }; + + return skinManager; }); - define("connectionManager", [], function() { - return ConnectionManager + define("connectionManager", [], function () { + return ConnectionManager; }); - define("apiClientResolver", [], function() { - return function() { - return window.ApiClient - } + define("apiClientResolver", [], function () { + return function () { + return window.ApiClient; + }; }); - define("appRouter", [embyWebComponentsBowerPath + "/router", "itemHelper"], function(appRouter, itemHelper) { + define("appRouter", [embyWebComponentsBowerPath + "/router", "itemHelper"], function (appRouter, itemHelper) { function showItem(item, serverId, options) { - "string" == typeof item ? require(["connectionManager"], function(connectionManager) { - var apiClient = connectionManager.currentApiClient(); - apiClient.getItem(apiClient.getCurrentUserId(), item).then(function(item) { - appRouter.showItem(item, options) - }) - }) : (2 == arguments.length && (options = arguments[1]), appRouter.show("/" + appRouter.getRouteUrl(item, options), { - item: item - })) + if ("string" == typeof item) { + require(["connectionManager"], function (connectionManager) { + var apiClient = connectionManager.currentApiClient(); + apiClient.getItem(apiClient.getCurrentUserId(), item).then(function (item) { + appRouter.showItem(item, options); + }); + }); + } else { + if (2 == arguments.length) { + options = arguments[1]; + } + + appRouter.show("/" + appRouter.getRouteUrl(item, options), { + item: item + }); + } } - return appRouter.showLocalLogin = function(serverId, manualLogin) { - Dashboard.navigate("login.html?serverid=" + serverId) - }, appRouter.showVideoOsd = function() { - return Dashboard.navigate("videoosd.html") - }, appRouter.showSelectServer = function() { - Dashboard.navigate(AppInfo.isNativeApp ? "selectserver.html" : "login.html") - }, appRouter.showWelcome = function() { - Dashboard.navigate(AppInfo.isNativeApp ? "selectserver.html" : "login.html") - }, appRouter.showSettings = function() { - Dashboard.navigate("mypreferencesmenu.html") - }, appRouter.showGuide = function() { - Dashboard.navigate("livetv.html?tab=1") - }, appRouter.goHome = function() { - Dashboard.navigate("home.html") - }, appRouter.showSearch = function() { - Dashboard.navigate("search.html") - }, appRouter.showLiveTV = function() { - Dashboard.navigate("livetv.html") - }, appRouter.showRecordedTV = function() { - Dashboard.navigate("livetv.html?tab=3") - }, appRouter.showFavorites = function() { - Dashboard.navigate("home.html?tab=1") - }, appRouter.showSettings = function() { - Dashboard.navigate("mypreferencesmenu.html") - }, appRouter.showNowPlaying = function() { - Dashboard.navigate("nowplaying.html") - }, appRouter.setTitle = function(title) { - LibraryMenu.setTitle(title) - }, appRouter.getRouteUrl = function(item, options) { - if (!item) throw new Error("item cannot be null"); - if (item.url) return item.url; - var context = options ? options.context : null, - id = item.Id || item.ItemId; - options || (options = {}); - var url, itemType = item.Type || (options ? options.itemType : null), - serverId = item.ServerId || options.serverId; - if ("settings" === item) return "mypreferencesmenu.html"; - if ("wizard" === item) return "wizardstart.html"; - if ("manageserver" === item) return "dashboard.html"; - if ("recordedtv" === item) return "livetv.html?tab=3&serverId=" + options.serverId; - if ("nextup" === item) return "list/list.html?type=nextup&serverId=" + options.serverId; + + appRouter.showLocalLogin = function (serverId, manualLogin) { + Dashboard.navigate("login.html?serverid=" + serverId); + }; + + appRouter.showVideoOsd = function () { + return Dashboard.navigate("videoosd.html"); + }; + + appRouter.showSelectServer = function () { + Dashboard.navigate(AppInfo.isNativeApp ? "selectserver.html" : "login.html"); + }; + + appRouter.showWelcome = function () { + Dashboard.navigate(AppInfo.isNativeApp ? "selectserver.html" : "login.html"); + }; + + appRouter.showSettings = function () { + Dashboard.navigate("mypreferencesmenu.html"); + }; + + appRouter.showGuide = function () { + Dashboard.navigate("livetv.html?tab=1"); + }; + + appRouter.goHome = function () { + Dashboard.navigate("home.html"); + }; + + appRouter.showSearch = function () { + Dashboard.navigate("search.html"); + }; + + appRouter.showLiveTV = function () { + Dashboard.navigate("livetv.html"); + }; + + appRouter.showRecordedTV = function () { + Dashboard.navigate("livetv.html?tab=3"); + }; + + appRouter.showFavorites = function () { + Dashboard.navigate("home.html?tab=1"); + }; + + appRouter.showSettings = function () { + Dashboard.navigate("mypreferencesmenu.html"); + }; + + appRouter.showNowPlaying = function () { + Dashboard.navigate("nowplaying.html"); + }; + + appRouter.setTitle = function (title) { + LibraryMenu.setTitle(title); + }; + + appRouter.getRouteUrl = function (item, options) { + if (!item) { + throw new Error("item cannot be null"); + } + + if (item.url) { + return item.url; + } + + var context = options ? options.context : null; + var id = item.Id || item.ItemId; + + if (!options) { + options = {}; + } + + var url; + var itemType = item.Type || (options ? options.itemType : null); + var serverId = item.ServerId || options.serverId; + + if ("settings" === item) { + return "mypreferencesmenu.html"; + } + + if ("wizard" === item) { + return "wizardstart.html"; + } + + if ("manageserver" === item) { + return "dashboard.html"; + } + + if ("recordedtv" === item) { + return "livetv.html?tab=3&serverId=" + options.serverId; + } + + if ("nextup" === item) { + return "list/list.html?type=nextup&serverId=" + options.serverId; + } + if ("list" === item) { var url = "list/list.html?serverId=" + options.serverId + "&type=" + options.itemTypes; - return options.isFavorite && (url += "&IsFavorite=true"), url - } - if ("livetv" === item) return "guide" === options.section ? "livetv.html?tab=1&serverId=" + options.serverId : "movies" === options.section ? "list/list.html?type=Programs&IsMovie=true&serverId=" + options.serverId : "shows" === options.section ? "list/list.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId=" + options.serverId : "sports" === options.section ? "list/list.html?type=Programs&IsSports=true&serverId=" + options.serverId : "kids" === options.section ? "list/list.html?type=Programs&IsKids=true&serverId=" + options.serverId : "news" === options.section ? "list/list.html?type=Programs&IsNews=true&serverId=" + options.serverId : "onnow" === options.section ? "list/list.html?type=Programs&IsAiring=true&serverId=" + options.serverId : "dvrschedule" === options.section ? "livetv.html?tab=4&serverId=" + options.serverId : "livetv.html?serverId=" + options.serverId; - if ("SeriesTimer" == itemType) return "itemdetails.html?seriesTimerId=" + id + "&serverId=" + serverId; - if ("livetv" == item.CollectionType) return "livetv.html"; - if ("Genre" === item.Type) return url = "list/list.html?genreId=" + item.Id + "&serverId=" + serverId, "livetv" === context && (url += "&type=Programs"), options.parentId && (url += "&parentId=" + options.parentId), url; - if ("MusicGenre" === item.Type) return url = "list/list.html?musicGenreId=" + item.Id + "&serverId=" + serverId, options.parentId && (url += "&parentId=" + options.parentId), url; - if ("Studio" === item.Type) return url = "list/list.html?studioId=" + item.Id + "&serverId=" + serverId, options.parentId && (url += "&parentId=" + options.parentId), url; - if ("folders" !== context && !itemHelper.isLocalItem(item)) { - if ("movies" == item.CollectionType) return url = "movies.html?topParentId=" + item.Id, options && "latest" === options.section && (url += "&tab=1"), url; - if ("tvshows" == item.CollectionType) return url = "tv.html?topParentId=" + item.Id, options && "latest" === options.section && (url += "&tab=2"), url; - if ("music" == item.CollectionType) return "music.html?topParentId=" + item.Id - } - if ("Playlist" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - if ("TvChannel" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - if ("Program" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - if ("BoxSet" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - if ("MusicAlbum" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - if ("MusicGenre" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - if ("Person" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - if ("Recording" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - if ("MusicArtist" == itemType) return "itemdetails.html?id=" + id + "&serverId=" + serverId; - var contextSuffix = context ? "&context=" + context : ""; - return "Series" == itemType || "Season" == itemType || "Episode" == itemType ? "itemdetails.html?id=" + id + contextSuffix + "&serverId=" + serverId : item.IsFolder ? id ? "list/list.html?parentId=" + id + "&serverId=" + serverId : "#" : "itemdetails.html?id=" + id + "&serverId=" + serverId - }, appRouter.showItem = showItem, appRouter - }) - }(), require(["css!css/site"]), require(["browser"], onWebComponentsReady) -}(); -pageClassOn("viewshow", "standalonePage", function() { + if (options.isFavorite) { + url += "&IsFavorite=true"; + } + + return url; + } + + if ("livetv" === item) { + if ("guide" === options.section) { + return "livetv.html?tab=1&serverId=" + options.serverId; + } + + if ("movies" === options.section) { + return "list/list.html?type=Programs&IsMovie=true&serverId=" + options.serverId; + } + + if ("shows" === options.section) { + return "list/list.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId=" + options.serverId; + } + + if ("sports" === options.section) { + return "list/list.html?type=Programs&IsSports=true&serverId=" + options.serverId; + } + + if ("kids" === options.section) { + return "list/list.html?type=Programs&IsKids=true&serverId=" + options.serverId; + } + + if ("news" === options.section) { + return "list/list.html?type=Programs&IsNews=true&serverId=" + options.serverId; + } + + if ("onnow" === options.section) { + return "list/list.html?type=Programs&IsAiring=true&serverId=" + options.serverId; + } + + if ("dvrschedule" === options.section) { + return "livetv.html?tab=4&serverId=" + options.serverId; + } + + return "livetv.html?serverId=" + options.serverId; + } + + if ("SeriesTimer" == itemType) { + return "itemdetails.html?seriesTimerId=" + id + "&serverId=" + serverId; + } + + if ("livetv" == item.CollectionType) { + return "livetv.html"; + } + + if ("Genre" === item.Type) { + url = "list/list.html?genreId=" + item.Id + "&serverId=" + serverId; + + if ("livetv" === context) { + url += "&type=Programs"; + } + + if (options.parentId) { + url += "&parentId=" + options.parentId; + } + + return url; + } + + if ("MusicGenre" === item.Type) { + url = "list/list.html?musicGenreId=" + item.Id + "&serverId=" + serverId; + + if (options.parentId) { + url += "&parentId=" + options.parentId; + } + + return url; + } + + if ("Studio" === item.Type) { + url = "list/list.html?studioId=" + item.Id + "&serverId=" + serverId; + + if (options.parentId) { + url += "&parentId=" + options.parentId; + } + + return url; + } + + if ("folders" !== context && !itemHelper.isLocalItem(item)) { + if ("movies" == item.CollectionType) { + url = "movies.html?topParentId=" + item.Id; + + if (options && "latest" === options.section) { + url += "&tab=1"; + } + + return url; + } + + if ("tvshows" == item.CollectionType) { + url = "tv.html?topParentId=" + item.Id; + + if (options && "latest" === options.section) { + url += "&tab=2"; + } + + return url; + } + + if ("music" == item.CollectionType) { + return "music.html?topParentId=" + item.Id; + } + } + + if ("Playlist" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + if ("TvChannel" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + if ("Program" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + if ("BoxSet" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + if ("MusicAlbum" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + if ("MusicGenre" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + if ("Person" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + if ("Recording" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + if ("MusicArtist" == itemType) { + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + } + + var contextSuffix = context ? "&context=" + context : ""; + + if ("Series" == itemType || "Season" == itemType || "Episode" == itemType) { + return "itemdetails.html?id=" + id + contextSuffix + "&serverId=" + serverId; + } + + if (item.IsFolder) { + if (id) { + return "list/list.html?parentId=" + id + "&serverId=" + serverId; + } + + return "#"; + } + + return "itemdetails.html?id=" + id + "&serverId=" + serverId; + }; + + appRouter.showItem = showItem; + return appRouter; + }); + })(); + + require(["css!css/site"]); + + return require(["browser"], onWebComponentsReady); +}(); +pageClassOn("viewshow", "standalonePage", function () { document.querySelector(".skinHeader").classList.add("noHeaderRight"); }); -pageClassOn("viewhide", "standalonePage", function() { +pageClassOn("viewhide", "standalonePage", function () { document.querySelector(".skinHeader").classList.remove("noHeaderRight"); }); From e272b12755e300d28ce5d7788cf86843e36429f3 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Sat, 23 Feb 2019 17:12:14 +0000 Subject: [PATCH 05/22] refactor dynamic require dependencies for webpack --- src/scripts/site.js | 252 ++++++++++++++++++++------------------------ 1 file changed, 117 insertions(+), 135 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 64b254ba13..d30d27f9ea 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -282,33 +282,42 @@ var AppInfo = {}; } function createConnectionManager() { - return new Promise(function (resolve, reject) { - require(["connectionManagerFactory", "apphost", "credentialprovider", "events", "userSettings"], function (ConnectionManager, apphost, credentialProvider, events, userSettings) { - var credentialProviderInstance = new credentialProvider(); - var promises = [apphost.getSyncProfile(), apphost.init()]; - Promise.all(promises).then(function (responses) { - var deviceProfile = responses[0]; - var capabilities = Dashboard.capabilities(apphost); - capabilities.DeviceProfile = deviceProfile; - var connectionManager = new ConnectionManager(credentialProviderInstance, apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), capabilities, window.devicePixelRatio); + return require(["connectionManagerFactory", "apphost", "credentialprovider", "events", "userSettings"], function (ConnectionManager, apphost, credentialProvider, events, userSettings) { + var credentialProviderInstance = new credentialProvider(), + promises = [apphost.getSyncProfile(), apphost.init()]; - if (defineConnectionManager(connectionManager), bindConnectionManagerEvents(connectionManager, events, userSettings), !AppInfo.isNativeApp) { - console.log("loading ApiClient singleton"); - return getRequirePromise(["apiclient"]).then(function (apiClientFactory) { - console.log("creating ApiClient singleton"); - var apiClient = new apiClientFactory(Dashboard.serverAddress(), apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), window.devicePixelRatio); - apiClient.enableAutomaticNetworking = false; - apiClient.manualAddressOnly = true; - connectionManager.addApiClient(apiClient); - window.ApiClient = apiClient; - localApiClient = apiClient; - console.log("loaded ApiClient singleton"); - resolve(); - }); - } + Promise.all(promises).then(function (responses) { + var deviceProfile = responses[0], + capabilities = Dashboard.capabilities(apphost); - resolve(); - }); + capabilities.DeviceProfile = deviceProfile; + + var connectionManager = new ConnectionManager(credentialProviderInstance, apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), capabilities, window.devicePixelRatio); + + defineConnectionManager(connectionManager); + bindConnectionManagerEvents(connectionManager, events, userSettings); + + if (!AppInfo.isNativeApp) { + console.log("loading ApiClient singleton"); + + return require(["apiclient"], function (apiClientFactory) { + console.log("creating ApiClient singleton"); + + var apiClient = new apiClientFactory(Dashboard.serverAddress(), apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), window.devicePixelRatio); + + apiClient.enableAutomaticNetworking = false; + apiClient.manualAddressOnly = true; + + connectionManager.addApiClient(apiClient); + + window.ApiClient = apiClient; + localApiClient = apiClient; + + console.log("loaded ApiClient singleton"); + }); + } + + return Promise.resolve(); }); }); } @@ -551,12 +560,6 @@ var AppInfo = {}; } } - function getRequirePromise(deps) { - return new Promise(function (resolve, reject) { - require(deps, resolve); - }); - } - function init() { if ("android" === self.appMode) { define("nativedirectorychooser", ["cordova/nativedirectorychooser"], returnFirstDependency); @@ -565,29 +568,29 @@ var AppInfo = {}; define("livetvcss", ["css!css/livetv.css"], returnFirstDependency); define("detailtablecss", ["css!css/detailtable.css"], returnFirstDependency); define("buttonenabled", ["legacy/buttonenabled"], returnFirstDependency); - var list = []; + var promises = []; if (!window.fetch) { - list.push("fetch"); + promises.push(require(["fetch"])); } if ("function" != typeof Object.assign) { - list.push("objectassign"); + promises.push(require(["objectassign"])); } if (!Array.prototype.filter) { - list.push("arraypolyfills"); + promises.push(require(["arraypolyfills"])); } if (!Function.prototype.bind) { - list.push("functionbind"); + promises.push(require(["functionbind"])); } if (!window.requestAnimationFrame) { - list.push("raf"); + promises.push(require(["raf"])); } - require(list, function () { + Promise.all(promises).then(function () { createConnectionManager().then(function () { console.log("initAfterDependencies promises resolved"); @@ -624,19 +627,16 @@ var AppInfo = {}; } document.title = Globalize.translateDocument(document.title, "core"); - var deps = ["apphost"]; if (browser.tv && !browser.android) { console.log("Using system fonts with explicit sizes"); - deps.push("systemFontsSizedCss"); + require(["systemFontsSizedCss"]); } else { console.log("Using default fonts"); - deps.push("systemFontsCss"); + require(["systemFontsCss"]); } - deps.push("css!css/librarybrowser"); - - require(deps, function (appHost) { + require(["apphost", "css!css/librarybrowser"], function (appHost) { loadPlugins([], appHost, browser).then(function () { onAppReady(browser); }); @@ -1219,106 +1219,89 @@ var AppInfo = {}; function onAppReady(browser) { console.log("Begin onAppReady"); - var deps = []; - var isBackgroundSync = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync"); - var isInBackground = isBackgroundSync; - deps.push("apphost"); - if (!isInBackground) { - deps.push("appRouter"); - deps.push("scripts/themeloader"); + var isInBackground = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync"); - if (browser.iOS) { - deps.push("css!devices/ios/ios.css"); - } - - deps.push("libraryMenu"); - } + window.Emby = {}; console.log("onAppReady - loading dependencies"); - require(deps, function (appHost, pageObjects) { - if (console.log("Loaded dependencies in onAppReady"), window.Emby = {}, isBackgroundSync) { - return void syncNow(); + if (isInBackground) { + syncNow(); + } else { + + if (browser.iOS) { + require(['css!devices/ios/ios.css']); } - window.Emby.Page = pageObjects; - defineCoreRoutes(appHost); - Emby.Page.start({ - click: false, - hashbang: true - }); - var postInitDependencies = []; + require(['apphost', 'appRouter', 'scripts/themeloader', 'libraryMenu'], function (appHost, pageObjects) { + window.Emby.Page = pageObjects; - if (!enableNativeGamepadKeyMapping() && isGamepadSupported()) { - postInitDependencies.push("bower_components/emby-webcomponents/input/gamepadtokey"); - } + defineCoreRoutes(appHost); - postInitDependencies.push("bower_components/emby-webcomponents/thememediaplayer"); - postInitDependencies.push("scripts/autobackdrops"); + Emby.Page.start({ + click: false, + hashbang: true + }); - if (!("cordova" !== self.appMode && "android" !== self.appMode)) { - if (browser.android) { - postInitDependencies.push("cordova/mediasession"); - postInitDependencies.push("cordova/chromecast"); - postInitDependencies.push("cordova/appshortcuts"); - } else { - if (browser.safari) { - postInitDependencies.push("cordova/mediasession"); - postInitDependencies.push("cordova/volume"); - postInitDependencies.push("cordova/statusbar"); - postInitDependencies.push("cordova/backgroundfetch"); + if (!enableNativeGamepadKeyMapping() && isGamepadSupported()) { + require(["bower_components/emby-webcomponents/input/gamepadtokey"]); + } + + require(["bower_components/emby-webcomponents/thememediaplayer", "scripts/autobackdrops"]); + + if (!("cordova" !== self.appMode && "android" !== self.appMode)) { + if (browser.android) { + require(["cordova/mediasession", "cordova/chromecast", "cordova/appshortcuts"]); + } else if (browser.safari) { + require(["cordova/mediasession", "cordova/volume", "cordova/statusbar", "cordova/backgroundfetch"]); } } - } - if (!(browser.tv || browser.xboxOne || browser.ps4)) { - postInitDependencies.push("bower_components/emby-webcomponents/nowplayingbar/nowplayingbar"); - } - - if (appHost.supports("remotecontrol")) { - postInitDependencies.push("playerSelectionMenu"); - postInitDependencies.push("bower_components/emby-webcomponents/playback/remotecontrolautoplay"); - } - - if (!(appHost.supports("physicalvolumecontrol") && !browser.touch || browser.edge)) { - postInitDependencies.push("bower_components/emby-webcomponents/playback/volumeosd"); - } - - if (navigator.mediaSession) { - postInitDependencies.push("mediaSession"); - } - - postInitDependencies.push("apiInput"); - postInitDependencies.push("mouseManager"); - - if (!(browser.tv || browser.xboxOne)) { - postInitDependencies.push("bower_components/emby-webcomponents/playback/playbackorientation"); - registerServiceWorker(); - - if (window.Notification) { - postInitDependencies.push("bower_components/emby-webcomponents/notifications/notifications"); + if (!(browser.tv || browser.xboxOne || browser.ps4)) { + require(["bower_components/emby-webcomponents/nowplayingbar/nowplayingbar"]); } - } - postInitDependencies.push("playerSelectionMenu"); - - if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) { - require(["fullscreen-doubleclick"]); - } - - require(postInitDependencies); - - if (appHost.supports("sync")) { - initLocalSyncEvents(); - } - - if (!AppInfo.isNativeApp) { - if (window.ApiClient) { - require(["css!" + ApiClient.getUrl("Branding/Css")]); + if (appHost.supports("remotecontrol")) { + require(["playerSelectionMenu", "bower_components/emby-webcomponents/playback/remotecontrolautoplay"]); } - } - }); + + if (!(appHost.supports("physicalvolumecontrol") && !browser.touch || browser.edge)) { + require(["bower_components/emby-webcomponents/playback/volumeosd"]); + } + + if (navigator.mediaSession) { + require(["mediaSession"]); + } + + require(["apiInput", "mouseManager"]); + + if (!(browser.tv || browser.xboxOne)) { + require(["bower_components/emby-webcomponents/playback/playbackorientation"]); + registerServiceWorker(); + + if (window.Notification) { + require(["bower_components/emby-webcomponents/notifications/notifications"]); + } + } + + require(["playerSelectionMenu"]); + + if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) { + require(["fullscreen-doubleclick"]); + } + + if (appHost.supports("sync")) { + initLocalSyncEvents(); + } + + if (!AppInfo.isNativeApp) { + if (window.ApiClient) { + require(["css!" + ApiClient.getUrl("Branding/Css")]); + } + } + }); + } } function registerServiceWorker() { @@ -1354,19 +1337,18 @@ var AppInfo = {}; } function onWebComponentsReady(browser) { - var initialDependencies = []; - - if (!window.Promise || browser.web0s) { - initialDependencies.push("bower_components/emby-webcomponents/native-promise-only/lib/npo.src"); - } - initRequireWithBrowser(browser); if (self.appMode === 'cordova' || self.appMode === 'android' || self.appMode === 'standalone') { AppInfo.isNativeApp = true; } - require(initialDependencies, init); + if (!window.Promise || browser.web0s) { + initialDependencies.push(); + require(["bower_components/emby-webcomponents/native-promise-only/lib/npo.src"], init); + } else { + init(); + } } var localApiClient; From e91cbf843869905a08cd48a4627d113051ab8e24 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Sat, 23 Feb 2019 17:12:41 +0000 Subject: [PATCH 06/22] add directory dist to .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index ac62bd07a1..cb9b773756 100644 --- a/.gitignore +++ b/.gitignore @@ -573,3 +573,6 @@ ASALocalRun/ healthchecksdb # End of https://www.gitignore.io/api/node,rider,macos,linux,windows,visualstudio,visualstudiocode + +# dist for webpack output +dist \ No newline at end of file From 0b099806a7acab1ae62dadb1312605bb776d461b Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Thu, 28 Feb 2019 21:41:24 +0000 Subject: [PATCH 07/22] fix merge conflicts --- src/scripts/site.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 4752d59235..3f40ae07df 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -54,9 +54,6 @@ function pageIdOn(eventName, id, fn) { } var Dashboard = { - allowPluginPages: function (pluginId) { - return true; - }, getCurrentUser: function () { return window.ApiClient.getCurrentUser(false); }, From 9878cfc012660688472454e66e812b903714fc52 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 4 Mar 2019 20:25:42 +0000 Subject: [PATCH 08/22] Update src/scripts/site.js It's really a matter of preference, but if you want it this way, np. Co-Authored-By: vitorsemeano --- src/scripts/site.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 3f40ae07df..f810f8c0e1 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -271,7 +271,7 @@ var AppInfo = {}; function createConnectionManager() { return require(["connectionManagerFactory", "apphost", "credentialprovider", "events", "userSettings"], function (ConnectionManager, apphost, credentialProvider, events, userSettings) { var credentialProviderInstance = new credentialProvider(), - promises = [apphost.getSyncProfile(), apphost.init()]; + var promises = [apphost.getSyncProfile(), apphost.init()]; Promise.all(promises).then(function (responses) { var deviceProfile = responses[0], From 24ae3a9c4904a72d62f14327f3735778637d9e5a Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 4 Mar 2019 20:27:29 +0000 Subject: [PATCH 09/22] Update src/scripts/site.js updating as suggested Co-Authored-By: vitorsemeano --- src/scripts/site.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index f810f8c0e1..a9868d05f8 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -293,7 +293,7 @@ var AppInfo = {}; var apiClient = new apiClientFactory(Dashboard.serverAddress(), apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), window.devicePixelRatio); apiClient.enableAutomaticNetworking = false; - apiClient.manualAddressOnly = true; + apiClient.manualAddressOnly = true; connectionManager.addApiClient(apiClient); From 5a258d65228198c7593d08391762248b7be1a1c2 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Mon, 4 Mar 2019 20:30:42 +0000 Subject: [PATCH 10/22] adjust var declarations for some specific cases --- src/scripts/site.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index f810f8c0e1..fbc7804af1 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -270,12 +270,12 @@ var AppInfo = {}; function createConnectionManager() { return require(["connectionManagerFactory", "apphost", "credentialprovider", "events", "userSettings"], function (ConnectionManager, apphost, credentialProvider, events, userSettings) { - var credentialProviderInstance = new credentialProvider(), + var credentialProviderInstance = new credentialProvider(); var promises = [apphost.getSyncProfile(), apphost.init()]; Promise.all(promises).then(function (responses) { - var deviceProfile = responses[0], - capabilities = Dashboard.capabilities(apphost); + var deviceProfile = responses[0]; + var capabilities = Dashboard.capabilities(apphost); capabilities.DeviceProfile = deviceProfile; From b50647f101954d23beaeeaaf3f6330a03d5b5580 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Mon, 4 Mar 2019 20:36:51 +0000 Subject: [PATCH 11/22] fix nested if else not done properly with deuglify --- src/scripts/site.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index a6f34e9769..a56e1883b6 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -456,12 +456,10 @@ var AppInfo = {}; if ("registerElement" in document) { define("registerElement", []); + } else if (browser.msie) { + define("registerElement", [bowerPath + "/webcomponentsjs/webcomponents-lite.min.js"], returnFirstDependency); } else { - if (browser.msie) { - define("registerElement", [bowerPath + "/webcomponentsjs/webcomponents-lite.min.js"], returnFirstDependency); - } else { - define("registerElement", [bowerPath + "/document-register-element/build/document-register-element"], returnFirstDependency); - } + define("registerElement", [bowerPath + "/document-register-element/build/document-register-element"], returnFirstDependency); } if ("cordova" === self.appMode || "android" === self.appMode) { From e60da6b54551be1b29915975df3a72f1fa2c8235 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Mon, 4 Mar 2019 20:38:39 +0000 Subject: [PATCH 12/22] renamed strange variable names --- src/scripts/site.js | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index a56e1883b6..f02e63a221 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -32,11 +32,11 @@ function getParameterByName(name, url) { function pageClassOn(eventName, className, fn) { "use strict"; - document.addEventListener(eventName, function (e__q) { - var target = e__q.target; + document.addEventListener(eventName, function (event) { + var target = event.target; if (target.classList.contains(className)) { - fn.call(target, e__q); + fn.call(target, event); } }); } @@ -44,11 +44,11 @@ function pageClassOn(eventName, className, fn) { function pageIdOn(eventName, id, fn) { "use strict"; - document.addEventListener(eventName, function (e__w) { - var target = e__w.target; + document.addEventListener(eventName, function (event) { + var target = event.target; if (target.id === id) { - fn.call(target, e__w); + fn.call(target, event); } }); } @@ -336,7 +336,7 @@ var AppInfo = {}; } function getPlaybackManager(playbackManager) { - window.addEventListener("beforeunload", function (e__r) { + window.addEventListener("beforeunload", function () { try { playbackManager.onAppClose(); } catch (err) { @@ -523,19 +523,15 @@ var AppInfo = {}; define("bgtaskregister", ["environments/windows-uwp/bgtaskregister"], returnFirstDependency); define("transfermanager", ["environments/windows-uwp/transfermanager"], returnFirstDependency); define("filerepository", ["environments/windows-uwp/filerepository"], returnFirstDependency); + } else if ("cordova" === self.appMode) { + define("filerepository", ["cordova/filerepository"], returnFirstDependency); + define("transfermanager", ["filerepository"], returnFirstDependency); + } else if ("android" === self.appMode) { + define("transfermanager", ["cordova/transfermanager"], returnFirstDependency); + define("filerepository", ["cordova/filerepository"], returnFirstDependency); } else { - if ("cordova" === self.appMode) { - define("filerepository", ["cordova/filerepository"], returnFirstDependency); - define("transfermanager", ["filerepository"], returnFirstDependency); - } else { - if ("android" === self.appMode) { - define("transfermanager", ["cordova/transfermanager"], returnFirstDependency); - define("filerepository", ["cordova/filerepository"], returnFirstDependency); - } else { - define("transfermanager", [apiClientBowerPath + "/sync/transfermanager"], returnFirstDependency); - define("filerepository", [apiClientBowerPath + "/sync/filerepository"], returnFirstDependency); - } - } + define("transfermanager", [apiClientBowerPath + "/sync/transfermanager"], returnFirstDependency); + define("filerepository", [apiClientBowerPath + "/sync/filerepository"], returnFirstDependency); } if ("android" === self.appMode) { @@ -591,10 +587,10 @@ var AppInfo = {}; function loadCoreDictionary(globalize) { var languages = ["ar", "be-by", "bg-bg", "ca", "cs", "da", "de", "el", "en-gb", "en-us", "es", "es-ar", "es-mx", "fa", "fi", "fr", "fr-ca", "gsw", "he", "hi-in", "hr", "hu", "id", "it", "kk", "ko", "lt-lt", "ms", "nb", "nl", "pl", "pt-br", "pt-pt", "ro", "ru", "sk", "sl-si", "sv", "tr", "uk", "vi", "zh-cn", "zh-hk", "zh-tw"]; - var translations = languages.map(function (i__t) { + var translations = languages.map(function (language) { return { - lang: i__t, - path: "strings/" + i__t + ".json" + lang: language, + path: "strings/" + language + ".json" }; }); globalize.defaultModule("core"); @@ -1168,8 +1164,8 @@ var AppInfo = {}; } } - for (var i__y = 0, length = externalPlugins.length; i__y < length; i__y++) { - list.push(externalPlugins[i__y]); + for (var index = 0, length = externalPlugins.length; index < length; index++) { + list.push(externalPlugins[index]); } return new Promise(function (resolve, reject) { From 1dd3096f377f04b9a8c84163a54a9aa9b6d3f909 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 4 Mar 2019 20:40:13 +0000 Subject: [PATCH 13/22] Update src/scripts/site.js i agree, definitely more readable Co-Authored-By: vitorsemeano --- src/scripts/site.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index f02e63a221..3773e8896b 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1146,7 +1146,15 @@ var AppInfo = {}; function loadPlugins(externalPlugins, appHost, browser, shell) { console.log("Loading installed plugins"); - var list = ["bower_components/emby-webcomponents/playback/playbackvalidation", "bower_components/emby-webcomponents/playback/playaccessvalidation", "bower_components/emby-webcomponents/playback/experimentalwarnings", "bower_components/emby-webcomponents/htmlaudioplayer/plugin", "bower_components/emby-webcomponents/htmlvideoplayer/plugin", "bower_components/emby-webcomponents/photoplayer/plugin", "bower_components/emby-webcomponents/youtubeplayer/plugin"]; + var list = [ + "bower_components/emby-webcomponents/playback/playbackvalidation", + "bower_components/emby-webcomponents/playback/playaccessvalidation", + "bower_components/emby-webcomponents/playback/experimentalwarnings", + "bower_components/emby-webcomponents/htmlaudioplayer/plugin", + "bower_components/emby-webcomponents/htmlvideoplayer/plugin", + "bower_components/emby-webcomponents/photoplayer/plugin", + "bower_components/emby-webcomponents/youtubeplayer/plugin" + ]; if ("cordova" === self.appMode) { list.push("cordova/chromecast"); From 6a15acb310a503cfc4081c56bf6b85b45650659e Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 4 Mar 2019 20:43:37 +0000 Subject: [PATCH 14/22] Update src/scripts/site.js well the tool can't make all the coding, am i right? Co-Authored-By: vitorsemeano --- src/scripts/site.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 3773e8896b..69dfe6703d 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1194,7 +1194,7 @@ var AppInfo = {}; } function enableNativeGamepadKeyMapping() { - if (!(!window.navigator || "string" != typeof window.navigator.gamepadInputEmulation)) { + if (window.navigator && "string" == typeof window.navigator.gamepadInputEmulation) { window.navigator.gamepadInputEmulation = "keyboard"; return true; } From ff07a77133848af8faf79fea84dfbae42c96cfa5 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 4 Mar 2019 20:44:27 +0000 Subject: [PATCH 15/22] Update src/scripts/site.js Co-Authored-By: vitorsemeano --- src/scripts/site.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 69dfe6703d..527b71175d 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1239,7 +1239,7 @@ var AppInfo = {}; require(["bower_components/emby-webcomponents/thememediaplayer", "scripts/autobackdrops"]); - if (!("cordova" !== self.appMode && "android" !== self.appMode)) { + if ("cordova" === self.appMode || "android" === self.appMode) { if (browser.android) { require(["cordova/mediasession", "cordova/chromecast", "cordova/appshortcuts"]); } else if (browser.safari) { From 8d7fa1557f66d4cd9aab8d3a7d86efc83a9d94f2 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 4 Mar 2019 20:45:19 +0000 Subject: [PATCH 16/22] Update src/scripts/site.js Co-Authored-By: vitorsemeano --- src/scripts/site.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 527b71175d..5ce5328139 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1247,7 +1247,7 @@ var AppInfo = {}; } } - if (!(browser.tv || browser.xboxOne || browser.ps4)) { + if (!browser.tv && !browser.xboxOne && !browser.ps4) { require(["bower_components/emby-webcomponents/nowplayingbar/nowplayingbar"]); } From 64c3c15af4605e5e740edac6287874e86b72fee4 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 4 Mar 2019 20:45:44 +0000 Subject: [PATCH 17/22] Update src/scripts/site.js Co-Authored-By: vitorsemeano --- src/scripts/site.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 5ce5328139..e9843f90f2 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1265,7 +1265,7 @@ var AppInfo = {}; require(["apiInput", "mouseManager"]); - if (!(browser.tv || browser.xboxOne)) { + if (!browser.tv && !browser.xboxOne) { require(["bower_components/emby-webcomponents/playback/playbackorientation"]); registerServiceWorker(); From 7e22a64238453ea6d97965d35c8759eb12a85f5d Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Mon, 4 Mar 2019 20:47:00 +0000 Subject: [PATCH 18/22] merging ifs --- src/scripts/site.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index f02e63a221..61f3a36c83 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1276,10 +1276,8 @@ var AppInfo = {}; initLocalSyncEvents(); } - if (!AppInfo.isNativeApp) { - if (window.ApiClient) { - require(["css!" + ApiClient.getUrl("Branding/Css")]); - } + if (!AppInfo.isNativeApp && window.ApiClient) { + require(["css!" + ApiClient.getUrl("Branding/Css")]); } }); } From ec183609589e8f77fb0b8844336b6ecbe1f34089 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Tue, 5 Mar 2019 18:52:53 +0000 Subject: [PATCH 19/22] removed deadcode for registerServiceWorker --- src/scripts/site.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index 1d8ee1431a..d48fcc4e8b 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1294,15 +1294,7 @@ var AppInfo = {}; function registerServiceWorker() { if (navigator.serviceWorker && "cordova" !== self.appMode && "android" !== self.appMode) { try { - navigator.serviceWorker.register("serviceworker.js").then(function () { - return navigator.serviceWorker.ready; - }).then(function (reg) { - if (reg && reg.sync) { - return reg.sync.register("emby-sync").then(function () {// TODO cvium: the sync serviceworker is a noop? - //window.SyncRegistered = Dashboard.isConnectMode() - }); - } - }); + navigator.serviceWorker.register("serviceworker.js"); } catch (err) { console.log("Error registering serviceWorker: " + err); } From 6046ad3daccf817b539ba7700bfe7d0c834a3900 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Tue, 5 Mar 2019 19:10:03 +0000 Subject: [PATCH 20/22] optimization added to resolve specific urls --- src/scripts/site.js | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index d48fcc4e8b..e7e06cfd46 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1854,39 +1854,9 @@ var AppInfo = {}; } } - if ("Playlist" == itemType) { - return "itemdetails.html?id=" + id + "&serverId=" + serverId; - } + var itemTypes = ["Playlist", "TvChannel", "Program", "BoxSet", "MusicAlbum", "MusicGenre", "Person", "Recording", "MusicArtist"]; - if ("TvChannel" == itemType) { - return "itemdetails.html?id=" + id + "&serverId=" + serverId; - } - - if ("Program" == itemType) { - return "itemdetails.html?id=" + id + "&serverId=" + serverId; - } - - if ("BoxSet" == itemType) { - return "itemdetails.html?id=" + id + "&serverId=" + serverId; - } - - if ("MusicAlbum" == itemType) { - return "itemdetails.html?id=" + id + "&serverId=" + serverId; - } - - if ("MusicGenre" == itemType) { - return "itemdetails.html?id=" + id + "&serverId=" + serverId; - } - - if ("Person" == itemType) { - return "itemdetails.html?id=" + id + "&serverId=" + serverId; - } - - if ("Recording" == itemType) { - return "itemdetails.html?id=" + id + "&serverId=" + serverId; - } - - if ("MusicArtist" == itemType) { + if (itemTypes.indexOf(itemType) >= 0) { return "itemdetails.html?id=" + id + "&serverId=" + serverId; } From a0e45f780968986f5abbc3e0cb1560a2aae18622 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Sat, 9 Mar 2019 17:35:38 +0000 Subject: [PATCH 21/22] ensure that appHost is loaded on onAppReady for all function --- src/scripts/site.js | 147 ++++++++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 72 deletions(-) diff --git a/src/scripts/site.js b/src/scripts/site.js index e7e06cfd46..4dfb67d73a 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -1209,86 +1209,89 @@ var AppInfo = {}; function onAppReady(browser) { console.log("Begin onAppReady"); - var isInBackground = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync"); + // ensure that appHost is loaded in this point + require(['appHost'], function (appHost) { + var isInBackground = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync"); - window.Emby = {}; + window.Emby = {}; - console.log("onAppReady - loading dependencies"); + console.log("onAppReady - loading dependencies"); - if (isInBackground) { - syncNow(); - } else { + if (isInBackground) { + syncNow(); + } else { - if (browser.iOS) { - require(['css!devices/ios/ios.css']); - } + if (browser.iOS) { + require(['css!devices/ios/ios.css']); + } - require(['apphost', 'appRouter', 'scripts/themeloader', 'libraryMenu'], function (appHost, pageObjects) { - window.Emby.Page = pageObjects; + require(['appRouter', 'scripts/themeloader', 'libraryMenu'], function (pageObjects) { + window.Emby.Page = pageObjects; - defineCoreRoutes(appHost); + defineCoreRoutes(appHost); - Emby.Page.start({ - click: false, - hashbang: true + Emby.Page.start({ + click: false, + hashbang: true + }); + + if (!enableNativeGamepadKeyMapping() && isGamepadSupported()) { + require(["bower_components/emby-webcomponents/input/gamepadtokey"]); + } + + require(["bower_components/emby-webcomponents/thememediaplayer", "scripts/autobackdrops"]); + + if ("cordova" === self.appMode || "android" === self.appMode) { + if (browser.android) { + require(["cordova/mediasession", "cordova/chromecast", "cordova/appshortcuts"]); + } else if (browser.safari) { + require(["cordova/mediasession", "cordova/volume", "cordova/statusbar", "cordova/backgroundfetch"]); + } + } + + if (!browser.tv && !browser.xboxOne && !browser.ps4) { + require(["bower_components/emby-webcomponents/nowplayingbar/nowplayingbar"]); + } + + if (appHost.supports("remotecontrol")) { + require(["playerSelectionMenu", "bower_components/emby-webcomponents/playback/remotecontrolautoplay"]); + } + + if (!(appHost.supports("physicalvolumecontrol") && !browser.touch || browser.edge)) { + require(["bower_components/emby-webcomponents/playback/volumeosd"]); + } + + if (navigator.mediaSession) { + require(["mediaSession"]); + } + + require(["apiInput", "mouseManager"]); + + if (!browser.tv && !browser.xboxOne) { + require(["bower_components/emby-webcomponents/playback/playbackorientation"]); + registerServiceWorker(); + + if (window.Notification) { + require(["bower_components/emby-webcomponents/notifications/notifications"]); + } + } + + require(["playerSelectionMenu"]); + + if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) { + require(["fullscreen-doubleclick"]); + } + + if (appHost.supports("sync")) { + initLocalSyncEvents(); + } + + if (!AppInfo.isNativeApp && window.ApiClient) { + require(["css!" + ApiClient.getUrl("Branding/Css")]); + } }); - - if (!enableNativeGamepadKeyMapping() && isGamepadSupported()) { - require(["bower_components/emby-webcomponents/input/gamepadtokey"]); - } - - require(["bower_components/emby-webcomponents/thememediaplayer", "scripts/autobackdrops"]); - - if ("cordova" === self.appMode || "android" === self.appMode) { - if (browser.android) { - require(["cordova/mediasession", "cordova/chromecast", "cordova/appshortcuts"]); - } else if (browser.safari) { - require(["cordova/mediasession", "cordova/volume", "cordova/statusbar", "cordova/backgroundfetch"]); - } - } - - if (!browser.tv && !browser.xboxOne && !browser.ps4) { - require(["bower_components/emby-webcomponents/nowplayingbar/nowplayingbar"]); - } - - if (appHost.supports("remotecontrol")) { - require(["playerSelectionMenu", "bower_components/emby-webcomponents/playback/remotecontrolautoplay"]); - } - - if (!(appHost.supports("physicalvolumecontrol") && !browser.touch || browser.edge)) { - require(["bower_components/emby-webcomponents/playback/volumeosd"]); - } - - if (navigator.mediaSession) { - require(["mediaSession"]); - } - - require(["apiInput", "mouseManager"]); - - if (!browser.tv && !browser.xboxOne) { - require(["bower_components/emby-webcomponents/playback/playbackorientation"]); - registerServiceWorker(); - - if (window.Notification) { - require(["bower_components/emby-webcomponents/notifications/notifications"]); - } - } - - require(["playerSelectionMenu"]); - - if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) { - require(["fullscreen-doubleclick"]); - } - - if (appHost.supports("sync")) { - initLocalSyncEvents(); - } - - if (!AppInfo.isNativeApp && window.ApiClient) { - require(["css!" + ApiClient.getUrl("Branding/Css")]); - } - }); - } + } + }); } function registerServiceWorker() { From 023a1ed72f4145fb0af518b4496b051a28918775 Mon Sep 17 00:00:00 2001 From: vitorsemeano Date: Mon, 11 Mar 2019 20:52:12 +0000 Subject: [PATCH 22/22] TODO for url prefix support investigation --- src/scripts/site.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/scripts/site.js b/src/scripts/site.js index 4dfb67d73a..c407d23b7c 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -57,6 +57,8 @@ var Dashboard = { getCurrentUser: function () { return window.ApiClient.getCurrentUser(false); }, + + //TODO: investigate url prefix support for serverAddress function serverAddress: function () { if (AppInfo.isNativeApp) { var apiClient = window.ApiClient;