From 65b730a0f77849b5792459ad578beb05738e9179 Mon Sep 17 00:00:00 2001 From: justinwilaby Date: Fri, 21 Jun 2019 05:39:26 -0700 Subject: [PATCH 1/4] Updated dependencies, Rust, added newly built wasm --- lib/sax-wasm.wasm | Bin 29742 -> 28905 bytes package-lock.json | 2911 ++++++++++++++++-------------- package.json | 13 +- src/js/__test__/largeXML.spec.js | 2 +- 4 files changed, 1545 insertions(+), 1381 deletions(-) diff --git a/lib/sax-wasm.wasm b/lib/sax-wasm.wasm index 893592d20d6614167cae711c37975b11aaa69213..a81751afcdf9c1cc1e16311a30b93f1123af0b37 100755 GIT binary patch delta 7338 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 TyB{9d`(W=tB)zD8Q6}?$rGOS5 delta 8210 zcmbtZdvIOFdEec0-{&6bNU~+wdhNNEkL+iGv;WXOwltaIOmR2TBwJcjpS;ccA3XO=TkjG#%_Ngt3hDUuZo&+F&rLCP z_TJgQ;hxxhW+t!rCXXrn&5GA)RLJlg^(0r$7LTWetJsEnrl+U3$#?$f&?W8z#%|8ZoK_e;T}Ma2Rk@+v?3Nn{U?PdAGs?ACQFw$@0d zKIYpi*-}jW6YS-5+ldrQ>>Ie1|yk zfPOgsq&P97M-n{?=BLt}h>X&lI}=9qpC-E3m5%2#Y}|uPD9k3OzNo|zb>e|=J)RX2 zb;pzxlYt|75RoAG#J>RgCv_^hj+Wb;+)K-SBiTNB0`@ynOjz|#VgxsA_c#fMl#G)T zAX=wBZod{Xk(_vZ=ArtQPBQt?nS8(`WK3ov%AcUAisguGJ6LFQYWvzJ5r>GHp1x}; zlPF}s0D=|!b)y2U=WJ=t2@FXrE#{1SN%ho>KAYuA;0sy|$jEGBDQ#s%s@BAJRi;6{W)pkgsV z6|v9oW`LH&qXTIfi(N0JAS+$xB8?Z=qykBR)rBn)(T2cd0B!7^O5z-2S zqFs*@DeV!HsC)-As){n-sJ>XY5;{UyB~=8XG3#P<0qG(9%UDV%j)WyFMS-QHieh3K ziWdn?(R7l$HxDKrL{$tNDKagDltg0ZM4CWjn`llXR2*DpGGJ!$hR{<+B=8{tdoaD0 zaFsL>LKAhBgC^pdxucG&k{F@_(t-dZO=K>nkm?4ihyfO*48#xv$^uHhuhsSgl=_9* zVgJ{`s?+ZPXFf>5c)y@nmw09-KMbHoWoj7e!|00<4$ed&M|@?p>)-RQ^K5P!rI6d7 z_*d0nO&QtfMXay&uDb2@l!z>dP(a`{N&@}uy0(>-;)Urj<$oz&onyut5=)>b6qr&+ zGc6d%hY(aLWd;x-BZ}I-`ei;eQFjA8&e3C2R3P-J`fZ^N!eT;yRNpWRHRmgefZkI0 zjb=L{xPD$PE#)uh%NjN!==xN{W-8i0ZOD-Wuq+@PE}M7to=k%tTTpA<lEF{I_oF3^ zMk_IopoPr`wqAfBd#s|IVZeFLEQ5?S7nmd z(lTrUj?d&=6L8vF4P4LDfeXuHy9Y?h+r5D?vhaqMm8MAWfFepo0*GPyv6dgu>F3tg zVnfNeh^ZFZP$+kC787mPFER(Iz_II;cXE6?);35iPq+QKc!2B4WvvleP-#8Y-mpA@ zPC=n~n8J}09Z1Z#rsuGtj~?i0H22@9pI+8keDuCK<}YUMYXb0C%2eNEMszT>+^$G4 zWZ1b*{1c;G0@cZ5ZW1*PyR^CsW&p7GdI)En51%dGQpm*AIgH|pA5m}IgCjvNV`~|< zP<3}f#$;SQ4yO5!Mf=r(DB5Y&`S1O(cN;2GG{6*(p(3F+;e=zH9EIr3aI#eZ0yEee zqw4&5XUZ(fNVtp^EagH407VjN1u>P}YUS*NC6rPyht98kg;B#$T>E0j{5n%`dZmteB9+pikLr{iPEYRshHwZnYfG;f&@SrQ<14ma-0s* zK?-Amt`q^357LNZN~U`lQ*(SuP4kTf?3HQUP=d5{$s;a~Zb)M6E;2P4;LzEPqw>p4 z#+w6ACY5lG;`F{JCiQKZhGI%4Q0A~;V#*T`oR|z;g~HXt`Z8&Vbv8CDXDXAX6LDH0 zm$7*U32bN3DozSQBe=hburEFIOcvmxP{)`@2Uuy$sOI9RaAm%tNY`;vLDLi`7&uR{V_BJUGA@#Yb5mbm;>aLTf2jO`kH;E1PLQSKDV-#CdPt zvw#|c7dp3C_HM*_*MWEA@UC9`GHCXO7GKerkj+%YoV!D%i&kr#b*&Jqv$#NqWLbw$XO=K3 zW2davwAPI3kE#!iR^>Tmy{#e8yG-zK5>L5BRSe)r

EPg5u)RS;1lyIgQAb!D@mD z%){C;ASv*(-#Rs2oDXEe1d@tvRs8L!>{VPhE|g-$R(X}~Hz`!1&vh#H z(6UpDp{1n0*)cxX9qdAP#3xX)LU&l1)$YKB1ZfNu0)e2MSNVT32Bq@QJz8Q#HY)1#Bfo3p=K)+P9xx+R-+-?YaZ zKjWU!6WMJzeLa@#+HpS$cN{SK5KjyVv~w6I(RNT-XKGymRiCN1@RjQ9Nqi-!ox_+O zi<$~SEt^jFtX&Nk6f2Nc^~@-(0y>yjaq*XYrU-?aOv8$VD%d8`2<` zXfGRqAyQTNM6+6lG)O0!l^)U{{Z8Xpc+_9D z<)$;$wv27^7E>6x-;LAz%Jdy!DB2*!YH+Ng0eYbZAq^T3&1w+RpaId~x4Bhq0w%q; z>hGy}qIVg+G``$>Iq%Vn`r4PiVAMDaUg{~w?;rOLmqD>AJ>^PYU(?sQ&^IXI79n3M zBjjXXH%a|o-@p5vP(NXIc}K~D->J{^=fta}hX$H?oo*TEUiq3?Ng~mxr{c7dgrKN; z!+b$OGClgDZyQ+7ef`)#SELR(t3O(^Sie88w5iT&k)90wLq#;E5c`(FX7G;;_LDl3 zgFh%*uN|m(4ZYB7Aq`$5n)O;pgV%^=;}+5ow*zLCivzZm0>=FA^np;B>oL_bwTnxk z7p2OW1?g{?KFOg0glpZ9Bg8uB=zJIM~WseR}97UaMtpC7iBzugJXzh9TU>v7@`4AXNMPxvnBn(ut8OP zhtzuuXV~l(m?~eV*QquKEcDUicj9E?v_Fb+@m%w4nkVbtfI! z4R)ShbIXcKvMcJLL;)`-K`QB}5aN}RZW>!L z5B=R^Uu;Ms5B#_*lhWyOe0uOo>bJ)}_)RPG`SlxC04afthp81+2-y6T{?{z?rmxmY2)0|KKf^cObV-{h+A5=a4A$$B|c z_Xs?$Hc5B(ryE*$`+N5RiBZ|$FJZ2#9)QUGw%N8zR&f35SergDekC&Yx$z(4|5F>U z4{81Mep;_uVVWzw*~>R|S?*JtYwIf}DC!wle`j;hjGBrcW+Dha&YyItWMu`r^hcXp zcvjbJS;XI*?c8#uv%M3S*Q}|*0`(Y=Vk`0ZN5sBr;_8q%QcYYJ5^=A`S~SpSF8#}$ zo%Gs7ga{nspo6nW`Dq+CV80WI6QR5WQ#y!Ydlpcm@mq^d7$bwj+Cc2lnh)y?1qP?}2^$h6i%{ z*9;Hl`t}YC53U{=9NM#IaHxN1|H$5vp^;ww(ZMEM@W>|j3>NoUD#4*($Okf`5O+eHKIeB-#wxWx{7o)IuoDe-ZRX zb}eIXq2pCCbcYN-1HBt`9}^d%y#|u0y%polXdeMzs%rcM#x)ot0LNj`Th8pWhu+|N z?oeF+?yV!M23PgTY{fTnps#;TPv1b#z(`m67=HKfx$)*h`)=BQDAu=XVAbH@{{YZe Ba|8eY diff --git a/package-lock.json b/package-lock.json index 3c40656..4956c72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,24 +14,16 @@ } }, "@babel/generator": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.0.tgz", - "integrity": "sha512-dZTwMvTgWfhmibq4V9X+LMf6Bgl7zAodRn9PvcPdhlzFMbvUutx74dbEv7Atz3ToeEpevYEJtAwfxq/bDCzHWg==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", "dev": true, "requires": { - "@babel/types": "^7.3.0", + "@babel/types": "^7.4.4", "jsesc": "^2.5.1", - "lodash": "^4.17.10", + "lodash": "^4.17.11", "source-map": "^0.5.0", "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - } } }, "@babel/helper-function-name": { @@ -55,12 +47,12 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.4.4" } }, "@babel/highlight": { @@ -72,48 +64,40 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" - }, - "dependencies": { - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - } } }, "@babel/parser": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.1.tgz", - "integrity": "sha512-ATz6yX/L8LEnC3dtLQnIx4ydcPxhLcoy9Vl6re00zb2w5lG6itY6Vhnr1KFRPq/FHNsgl/gh2mjNN20f9iJTTA==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", "dev": true }, "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.2.2", - "@babel/types": "^7.2.2" + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/traverse": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", - "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", + "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.2.2", + "@babel/generator": "^7.4.4", "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.2.3", - "@babel/types": "^7.2.2", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/types": "^7.4.4", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.10" + "lodash": "^4.17.11" }, "dependencies": { "debug": { @@ -124,70 +108,56 @@ "requires": { "ms": "^2.1.1" } - }, - "globals": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", - "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, "@babel/types": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.0.tgz", - "integrity": "sha512-QkFPw68QqWU1/RVPyBe8SO7lXbPfjtqAxRYQKpFpaB8yMq7X2qAqfwK5LKoQufEkSmO5NQ70O6Kc3Afk03RwXw==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.10", + "lodash": "^4.17.11", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } } }, "@types/mocha": { - "version": "2.2.48", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz", - "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", "dev": true }, "@types/node": { - "version": "10.12.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.19.tgz", - "integrity": "sha512-2NVovndCjJQj6fUUn9jCgpP4WSqr+u1SoUZMZyJkhGeBFsm6dE46l31S7lPUYt9uQ28XI+ibrJA1f5XyH5HNtA==", - "dev": true - }, - "@types/webassembly-js-api": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@types/webassembly-js-api/-/webassembly-js-api-0.0.2.tgz", - "integrity": "sha512-htlxJRag6RUiMYUkS8Fjup+TMHO0VarpiF9MrqYaGJ0wXtIraQFz40rfA8VIeCiWy8sgpv3RLmigpgicG8fqGA==", + "version": "12.0.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.8.tgz", + "integrity": "sha512-b8bbUOTwzIY3V5vDTY1fIJ+ePKDUBqt2hC2woVGotdQQhG/2Sh62HOKHrT7ab+VerXAcPyAiTEipPu/FsreUtg==", "dev": true }, "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -197,6 +167,21 @@ "color-convert": "^1.9.0" } }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -221,15 +206,6 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, - "requires": { - "lodash": "^4.17.11" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -243,9 +219,9 @@ "dev": true }, "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, "balanced-match": { @@ -259,7 +235,6 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, - "optional": true, "requires": { "tweetnacl": "^0.14.3" } @@ -280,6 +255,24 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "caching-transform": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", + "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "dev": true, + "requires": { + "hasha": "^3.0.0", + "make-dir": "^2.0.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.4.2" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -295,12 +288,34 @@ "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "color-convert": { @@ -319,27 +334,42 @@ "dev": true }, "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true, "optional": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -347,9 +377,9 @@ "dev": true }, "coveralls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.2.tgz", - "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.4.tgz", + "integrity": "sha512-eyqUWA/7RT0JagiL0tThVhjbIjoiEUyWCjtUJoOPcWoeofP5WK/jb2OJYoBFrR6DvplR+AxOyuBqk4JHkk5ykA==", "dev": true, "requires": { "growl": "~> 1.10.0", @@ -357,15 +387,33 @@ "lcov-parse": "^0.0.10", "log-driver": "^1.2.7", "minimist": "^1.2.0", - "request": "^2.85.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "request": "^2.86.0" + } + }, + "cp-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", + "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^2.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^4.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "dashdash": { @@ -377,6 +425,39 @@ "assert-plus": "^1.0.0" } }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -394,12 +475,66 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "optional": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -418,6 +553,21 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "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" + } + }, "expect.js": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/expect.js/-/expect.js-0.3.1.tgz", @@ -437,9 +587,9 @@ "dev": true }, "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "fast-json-stable-stringify": { @@ -448,6 +598,57 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + } + } + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -455,13 +656,13 @@ "dev": true }, "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "1.0.6", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -471,6 +672,27 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -480,6 +702,32 @@ "assert-plus": "^1.0.0" } }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -487,12 +735,12 @@ "dev": true }, "handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "dev": true, "requires": { - "async": "^2.5.0", + "neo-async": "^2.6.0", "optimist": "^0.6.1", "source-map": "^0.6.1", "uglify-js": "^3.1.4" @@ -513,25 +761,55 @@ "dev": true }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "^5.1.0", + "ajv": "^6.5.5", "har-schema": "^2.0.0" } }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "hasha": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", + "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", + "dev": true, + "requires": { + "is-stream": "^1.0.1" + } + }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "http-signature": { @@ -545,6 +823,12 @@ "sshpk": "^1.7.0" } }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -556,50 +840,232 @@ } }, "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "append-transform": "^1.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", + "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", + "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "dev": true, + "requires": { + "handlebars": "^4.1.2" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stringify-safe": { @@ -620,39 +1086,156 @@ "verror": "1.10.0" } }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, "lcov-parse": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", "dev": true }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, "log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": true }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "mime-db": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", "dev": true }, "mime-types": { - "version": "2.1.19", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", - "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, "requires": { - "mime-db": "~1.35.0" + "mime-db": "1.40.0" } }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -663,9 +1246,9 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, "mkdirp": { @@ -675,1214 +1258,371 @@ "dev": true, "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } } }, "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz", + "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==", "dev": true, "requires": { + "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", + "debug": "3.2.6", "diff": "3.5.0", "escape-string-regexp": "1.0.5", - "glob": "7.1.2", + "find-up": "3.0.0", + "glob": "7.1.3", "growl": "1.10.5", - "he": "1.1.1", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "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" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.2.2", + "yargs-parser": "13.0.0", + "yargs-unparser": "1.5.0" } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "nyc": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-13.1.0.tgz", - "integrity": "sha512-3GyY6TpQ58z9Frpv4GMExE1SV2tAgYqC7HSy2omEhNiCT3mhT9NyiOvIE8zkbuJVFzmvvNTnE4h/7/wQae7xLg==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", + "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", "dev": true, "requires": { "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^2.0.0", + "caching-transform": "^3.0.2", "convert-source-map": "^1.6.0", - "debug-log": "^1.0.1", - "find-cache-dir": "^2.0.0", + "cp-file": "^6.2.0", + "find-cache-dir": "^2.1.0", "find-up": "^3.0.0", "foreground-child": "^1.5.6", "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.1", - "istanbul-lib-hook": "^2.0.1", - "istanbul-lib-instrument": "^3.0.0", - "istanbul-lib-report": "^2.0.2", - "istanbul-lib-source-maps": "^2.0.1", - "istanbul-reports": "^2.0.1", - "make-dir": "^1.3.0", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.4", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", "merge-source-map": "^1.1.0", "resolve-from": "^4.0.0", - "rimraf": "^2.6.2", + "rimraf": "^2.6.3", "signal-exit": "^3.0.2", "spawn-wrap": "^1.4.2", - "test-exclude": "^5.0.0", + "test-exclude": "^5.2.3", "uuid": "^3.3.2", - "yargs": "11.1.0", - "yargs-parser": "^9.0.2" + "yargs": "^13.2.2", + "yargs-parser": "^13.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "dev": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "caching-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-2.0.0.tgz", - "integrity": "sha512-tTfemGmFWe7KZ3KN6VsSgQZbd9Bgo7A40wlp4PTsJJvFu4YAnEC5YnfdiKq6Vh2i9XJLnA9n8OXD46orVpnPMw==", - "dev": true, - "requires": { - "make-dir": "^1.0.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "write-file-atomic": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", - "dev": true, - "requires": { - "strip-bom": "^3.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", - "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "dev": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.1.tgz", - "integrity": "sha512-ufiZoiJ8CxY577JJWEeFuxXZoMqiKpq/RqZtOAYuQLvlkbJWscq9n3gc4xrCGH9n4pW0qnTxOz1oyMmVtk8E1w==", - "dev": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.0.0.tgz", - "integrity": "sha512-eQY9vN9elYjdgN9Iv6NS/00bptm02EBBk70lRMaVjeA6QYocQgenVrSgC28TJurdnZa80AGO3ASdFN+w/njGiQ==", - "dev": true, - "requires": { - "@babel/generator": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.2.tgz", - "integrity": "sha512-rJ8uR3peeIrwAxoDEbK4dJ7cqqtxBisZKCuwkMtMv0xYzaAnsAi3AHrHPAAtNXzG/bcCgZZ3OJVqm1DTi9ap2Q==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "supports-color": "^5.4.0" - } - }, - "istanbul-lib-source-maps": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-2.0.1.tgz", - "integrity": "sha512-30l40ySg+gvBLcxTrLzR4Z2XTRj3HgRCA/p2rnbs/3OiTaoj054gAbuP5DcLOtwqmy4XW8qXBHzrmP2/bQ9i3A==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^2.0.1", - "make-dir": "^1.3.0", - "rimraf": "^2.6.2", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.0.1.tgz", - "integrity": "sha512-CT0QgMBJqs6NJLF678ZHcquUAZIoBIUNzdJrRJfpkI9OnzG6MkUfHxbJC3ln981dMswC7/B1mfX3LNkhgJxsuw==", - "dev": true, - "requires": { - "handlebars": "^4.0.11" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "md5-hex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", - "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "package-hash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-2.0.0.tgz", - "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", + "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "spawn-wrap": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", - "dev": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "test-exclude": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.0.0.tgz", - "integrity": "sha512-bO3Lj5+qFa9YLfYW2ZcXMOV1pmQvw+KS/DpjqhyX6Y6UZ8zstpZJ+mA2ERkXfpOqhxsJlQiLeVXD3Smsrs6oLw==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^1.0.1" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.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", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } } } }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "wrappy": "1" + "find-up": "^3.0.0" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.33.tgz", + "integrity": "sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "qs": { @@ -1891,49 +1631,98 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "requires": { - "punycode": "^1.4.1" - } - } + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz", + "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" } }, "safe-buffer": { @@ -1948,12 +1737,91 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "spawn-wrap": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "dev": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "dev": true + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -1961,9 +1829,9 @@ "dev": true }, "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -1977,15 +1845,88 @@ "tweetnacl": "~0.14.0" } }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "dev": true, + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -2005,23 +1946,22 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true + "dev": true }, "typescript": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", - "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", + "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", "dev": true }, "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", + "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", "dev": true, "optional": true, "requires": { - "commander": "~2.17.1", + "commander": "~2.20.0", "source-map": "~0.6.1" }, "dependencies": { @@ -2034,12 +1974,31 @@ } } }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -2051,17 +2010,223 @@ "extsprintf": "^1.2.0" } }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", + "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", + "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.11", + "yargs": "^12.0.5" + }, + "dependencies": { + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "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" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } } } } diff --git a/package.json b/package.json index d92fb7e..5e4d9af 100644 --- a/package.json +++ b/package.json @@ -28,13 +28,12 @@ "author": "Justin Wilaby", "license": "MIT", "devDependencies": { - "@types/mocha": "^2.2.47", - "@types/node": "^10.12.19", - "@types/webassembly-js-api": "^0.0.2", - "coveralls": "^3.0.2", + "@types/mocha": "^5.2.7", + "@types/node": "^12.0.8", + "coveralls": "^3.0.4", "expect.js": "^0.3.1", - "mocha": "^5.2.0", - "nyc": "^13.1.0", - "typescript": "^3.2.4" + "mocha": "^6.1.4", + "nyc": "^14.1.1", + "typescript": "^3.5.2" } } diff --git a/src/js/__test__/largeXML.spec.js b/src/js/__test__/largeXML.spec.js index 756b224..5bbf7c8 100644 --- a/src/js/__test__/largeXML.spec.js +++ b/src/js/__test__/largeXML.spec.js @@ -49,7 +49,7 @@ describe('When parsing XML, the SaxWasm', () => { }); readable.on('end', () => { t = Date.now() - t; - debugger + console.log(t) resolve() }); }); From 08489ec34fca4d759b2da33be22e21f348118d44 Mon Sep 17 00:00:00 2001 From: justinwilaby Date: Sun, 1 Sep 2019 07:46:28 -0700 Subject: [PATCH 2/4] Converted unit tests to Typescript --- .mocharc.js | 7 ++ .nycrc | 13 +- lib/sax-wasm.js | 2 - package-lock.json | 113 +++++++++++++++--- package.json | 12 +- src/js/__test__/attribute.spec.js | 100 ---------------- src/js/__test__/attribute.spec.ts | 101 ++++++++++++++++ src/js/__test__/cdada.spec.js | 36 ------ src/js/__test__/cdada.spec.ts | 37 ++++++ src/js/__test__/{jsx.spec.js => jsx.spec.ts} | 45 +++---- .../{largeXML.spec.js => largeXML.spec.ts} | 18 +-- .../{procInst.spec.js => procInst.spec.ts} | 23 ++-- src/js/__test__/tag.spec.js | 105 ---------------- src/js/__test__/tag.spec.ts | 106 ++++++++++++++++ .../__test__/{text.spec.js => text.spec.ts} | 26 ++-- src/js/saxWasm.ts | 42 +++++-- tsconfig.json | 4 +- 17 files changed, 453 insertions(+), 337 deletions(-) create mode 100644 .mocharc.js delete mode 100644 lib/sax-wasm.js delete mode 100644 src/js/__test__/attribute.spec.js create mode 100644 src/js/__test__/attribute.spec.ts delete mode 100644 src/js/__test__/cdada.spec.js create mode 100644 src/js/__test__/cdada.spec.ts rename src/js/__test__/{jsx.spec.js => jsx.spec.ts} (53%) rename src/js/__test__/{largeXML.spec.js => largeXML.spec.ts} (67%) rename src/js/__test__/{procInst.spec.js => procInst.spec.ts} (51%) delete mode 100644 src/js/__test__/tag.spec.js create mode 100644 src/js/__test__/tag.spec.ts rename src/js/__test__/{text.spec.js => text.spec.ts} (54%) diff --git a/.mocharc.js b/.mocharc.js new file mode 100644 index 0000000..7ee1d1b --- /dev/null +++ b/.mocharc.js @@ -0,0 +1,7 @@ +module.exports = { + require: 'source-map-support/register', + 'full-trace': true, + bail: true, + extension: ['ts'], + spec: 'src/**/*.spec.ts' +}; \ No newline at end of file diff --git a/.nycrc b/.nycrc index 2302b33..9a3b347 100644 --- a/.nycrc +++ b/.nycrc @@ -1,20 +1,21 @@ { "extension": [ - ".js" + ".ts" ], "include": [ - "lib/**/*.js" + "src/**/*.ts" + ], + "require": [ + "ts-node/register" ], "exclude": [ "**/node_modules/**", "**/__test__/**", - "**/src/**", - "**/coverage/**", - "**/*.d.ts" + "**/coverage/**" ], "reporter": [ "html" ], - "all": true, + "all": false, "cache": true } diff --git a/lib/sax-wasm.js b/lib/sax-wasm.js deleted file mode 100644 index 7489263..0000000 --- a/lib/sax-wasm.js +++ /dev/null @@ -1,2 +0,0 @@ -/* tslint:disable */ - diff --git a/package-lock.json b/package-lock.json index 4956c72..046449d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -122,6 +122,18 @@ "to-fast-properties": "^2.0.0" } }, + "@istanbuljs/nyc-config-typescript": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-0.1.3.tgz", + "integrity": "sha512-EzRFg92bRSD1W/zeuNkeGwph0nkWf+pP2l/lYW4/5hav7RjKKBN5kV1Ix7Tvi0CMu3pC4Wi/U7rNisiJMR3ORg==", + "dev": true + }, + "@types/expect.js": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@types/expect.js/-/expect.js-0.3.29.tgz", + "integrity": "sha1-KN01kVW4S47LCUr8P0t0wyItyjs=", + "dev": true + }, "@types/mocha": { "version": "5.2.7", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", @@ -135,9 +147,9 @@ "dev": true }, "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -182,6 +194,12 @@ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, + "arg": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.1.tgz", + "integrity": "sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -255,6 +273,12 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, "caching-transform": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", @@ -377,13 +401,13 @@ "dev": true }, "coveralls": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.4.tgz", - "integrity": "sha512-eyqUWA/7RT0JagiL0tThVhjbIjoiEUyWCjtUJoOPcWoeofP5WK/jb2OJYoBFrR6DvplR+AxOyuBqk4JHkk5ykA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.6.tgz", + "integrity": "sha512-Pgh4v3gCI4T/9VijVrm8Ym5v0OgjvGLKj3zTUwkvsCiwqae/p6VLzpsFNjQS2i6ewV7ef+DjFJ5TSKxYt/mCrA==", "dev": true, "requires": { "growl": "~> 1.10.0", - "js-yaml": "^3.11.0", + "js-yaml": "^3.13.1", "lcov-parse": "^0.0.10", "log-driver": "^1.2.7", "minimist": "^1.2.0", @@ -1132,9 +1156,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "lodash.flattendeep": { @@ -1178,6 +1202,12 @@ "semver": "^5.6.0" } }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, "map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -1269,9 +1299,9 @@ } }, "mocha": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz", - "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", + "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -1604,9 +1634,9 @@ "dev": true }, "psl": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.33.tgz", - "integrity": "sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", + "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==", "dev": true }, "pump": { @@ -1776,6 +1806,24 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "spawn-wrap": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", @@ -1933,6 +1981,27 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "dependencies": { + "diff": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", + "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", + "dev": true + } + } + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -1949,9 +2018,9 @@ "dev": true }, "typescript": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", - "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.2.tgz", + "integrity": "sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw==", "dev": true }, "uglify-js": { @@ -2227,6 +2296,12 @@ } } } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true } } } diff --git a/package.json b/package.json index 5e4d9af..2a9e0b3 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "lib/sax-wasm.wasm" ], "scripts": { - "test": "nyc mocha src/js/__test__/", + "test": "nyc --reporter=text mocha", "test:coveralls": "npm run test && nyc report --reporter=text-lcov | coveralls", "build:wasm": "rustc ./src/lib.rs -Clto -O --crate-type cdylib --target wasm32-unknown-unknown -o ./lib/sax-wasm.wasm", "bindgen": "wasm-bindgen lib/sax-wasm.wasm --out-dir lib/ --remove-name-section --no-typescript --out-name sax-wasm.wasm", @@ -28,12 +28,16 @@ "author": "Justin Wilaby", "license": "MIT", "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^0.1.3", + "@types/expect.js": "^0.3.29", "@types/mocha": "^5.2.7", "@types/node": "^12.0.8", - "coveralls": "^3.0.4", + "coveralls": "^3.0.6", "expect.js": "^0.3.1", - "mocha": "^6.1.4", + "mocha": "^6.2.0", "nyc": "^14.1.1", - "typescript": "^3.5.2" + "source-map-support": "^0.5.13", + "ts-node": "^8.3.0", + "typescript": "^3.6.2" } } diff --git a/src/js/__test__/attribute.spec.js b/src/js/__test__/attribute.spec.js deleted file mode 100644 index 2ac40be..0000000 --- a/src/js/__test__/attribute.spec.js +++ /dev/null @@ -1,100 +0,0 @@ -const {SaxEventType, SAXParser} = require('../../../lib'); -const fs = require('fs'); -const path = require('path'); -const expect = require('expect.js'); -const saxWasm = fs.readFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.wasm')); - -describe('SaxWasm', () => { - let parser; - let _event; - let _data; - - before(async () => { - parser = new SAXParser(SaxEventType.Attribute); - - parser.eventHandler = function (event, data) { - _event = event; - _data.push(data); - }; - return parser.prepareWasm(saxWasm); - }); - - beforeEach(() => { - _data = []; - }); - - afterEach(() => { - parser.end(); - }); - - it('should recognize attribute names', () => { - parser.write(Buffer.from('')); - expect(_event).to.be(SaxEventType.Attribute); - expect(_data.length).to.be(1); - expect(_data[0].name).to.be('class'); - expect(_data[0].value).to.be('main'); - }); - - it('should recognize attribute names when no spaces separate them', () => { - parser.write(Buffer.from('')); - expect(_event).to.be(SaxEventType.Attribute); - expect(_data[0].name).to.be('data-id'); - expect(_data[0].value).to.be('user_1234'); - expect(_data[1].name).to.be('key'); - expect(_data[1].value).to.be('23'); - }); - - it('should preserve grapheme clusters as attribute values', () => { - parser.write(Buffer.from('

')); - expect(_event).to.be(SaxEventType.Attribute); - expect(_data[0].name).to.be('id'); - expect(_data[0].value).to.be('👅'); - }); - - it('should provide the attribute value when the value is not quoted', () => { - parser.write(Buffer.from('')); - expect(_event).to.be(SaxEventType.Attribute); - expect(_data[0].name).to.be('app'); - expect(_data[0].value).to.be('buggyAngularApp=19'); - }); - - it('should provide the attribute value when the value is a JSX expression', () => { - parser.write(Buffer.from(' { return this.props } }>')); - expect(_event).to.be(SaxEventType.Attribute); - expect(_data[0].name).to.be('props'); - expect(_data[0].value).to.be('() => { return this.props } '); - }); - - it('should report the correct start and end positions for attributes', () => { - const html = ` -
-
`; - - parser.write(Buffer.from(html)); - expect(_event).to.be(SaxEventType.Attribute); - expect(_data[0].nameStart).to.eql({line: 2, character: 2}); - expect(_data[0].nameEnd).to.eql({line: 2, character: 12}); - expect(_data[0].valueStart).to.eql({line: 2, character: 14}); - expect(_data[0].valueEnd).to.eql({line: 2, character: 15}); - - expect(_data[1].nameStart).to.eql({line: 3, character: 2}); - expect(_data[1].nameEnd).to.eql({line: 3, character: 7}); - expect(_data[1].valueStart).to.eql({line: 3, character: 9}); - expect(_data[1].valueEnd).to.eql({line: 3, character: 25}); - }); - - it('should report namespaces as attributes', () => { - parser.write(Buffer.from(``)); - expect(_event).to.be(SaxEventType.Attribute); - expect(_data[0].name).to.be('xmlns:edi'); - expect(_data[0].value).to.be('http://ecommerce.example.org/schema'); - }); - - it('should serialize to json as expected', () => { - parser.write(Buffer.from('
')); - expect(JSON.stringify(_data[0])).to.equal('{"nameStart":{"line":0,"character":5},"nameEnd":{"line":0,"character":10},' + - '"valueStart":{"line":0,"character":12},"valueEnd":{"line":0,"character":19},"name":"class","value":"testing"}'); - }); -}); diff --git a/src/js/__test__/attribute.spec.ts b/src/js/__test__/attribute.spec.ts new file mode 100644 index 0000000..668111b --- /dev/null +++ b/src/js/__test__/attribute.spec.ts @@ -0,0 +1,101 @@ +import { Attribute, Detail, SaxEventType, SAXParser } from '../saxWasm' +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import {deepStrictEqual, } from 'assert'; + +const saxWasm = readFileSync(resolve(__dirname, '../../../lib/sax-wasm.wasm')); + +describe('SaxWasm', () => { + let parser: SAXParser; + let _event: SaxEventType; + let _data: Attribute[]; + + before(async () => { + parser = new SAXParser(SaxEventType.Attribute); + + parser.eventHandler = function (event:SaxEventType, data:Attribute) { + _event = event; + _data.push(data as Attribute); + }; + return parser.prepareWasm(saxWasm); + }); + + beforeEach(() => { + _data = []; + }); + + afterEach(() => { + parser.end(); + }); + + it('should recognize attribute names', () => { + parser.write(Buffer.from('')); + deepStrictEqual(_event, SaxEventType.Attribute); + deepStrictEqual(_data.length,1); + deepStrictEqual(_data[0].name,'class'); + deepStrictEqual(_data[0].value,'main'); + }); + + it('should recognize attribute names when no spaces separate them', () => { + parser.write(Buffer.from('')); + deepStrictEqual(_event,SaxEventType.Attribute); + deepStrictEqual(_data[0].name,'data-id'); + deepStrictEqual(_data[0].value,'user_1234'); + deepStrictEqual(_data[1].name,'key'); + deepStrictEqual(_data[1].value,'23'); + }); + + it('should preserve grapheme clusters as attribute values', () => { + parser.write(Buffer.from('
')); + deepStrictEqual(_event,SaxEventType.Attribute); + deepStrictEqual(_data[0].name,'id'); + deepStrictEqual(_data[0].value,'👅'); + }); + + it('should provide the attribute value when the value is not quoted', () => { + parser.write(Buffer.from('')); + deepStrictEqual(_event,SaxEventType.Attribute); + deepStrictEqual(_data[0].name,'app'); + deepStrictEqual(_data[0].value,'buggyAngularApp=19'); + }); + + it('should provide the attribute value when the value is a JSX expression', () => { + parser.write(Buffer.from(' { return this.props } }>')); + deepStrictEqual(_event,SaxEventType.Attribute); + deepStrictEqual(_data[0].name,'props'); + deepStrictEqual(_data[0].value,'() => { return this.props } '); + }); + + it('should report the correct start and end positions for attributes', () => { + const html = ` +
+
`; + + parser.write(Buffer.from(html)); + deepStrictEqual(_event,SaxEventType.Attribute); + deepStrictEqual(JSON.parse(JSON.stringify(_data[0].nameStart)),{ line: 2, character: 2 }); + deepStrictEqual(JSON.parse(JSON.stringify(_data[0].nameEnd)),{ line: 2, character: 12 }); + deepStrictEqual(JSON.parse(JSON.stringify(_data[0].valueStart)),{ line: 2, character: 14 }); + deepStrictEqual(JSON.parse(JSON.stringify(_data[0].valueEnd)),{ line: 2, character: 15 }); + + deepStrictEqual(JSON.parse(JSON.stringify(_data[1].nameStart)),{ line: 3, character: 2 }); + deepStrictEqual(JSON.parse(JSON.stringify(_data[1].nameEnd)),{ line: 3, character: 7 }); + deepStrictEqual(JSON.parse(JSON.stringify(_data[1].valueStart)),{ line: 3, character: 9 }); + deepStrictEqual(JSON.parse(JSON.stringify(_data[1].valueEnd)),{ line: 3, character: 25 }); + }); + + it('should report namespaces as attributes', () => { + parser.write(Buffer.from(``)); + deepStrictEqual(_event,SaxEventType.Attribute); + deepStrictEqual(_data[0].name,'xmlns:edi'); + deepStrictEqual(_data[0].value,'http://ecommerce.example.org/schema'); + }); + + it('should serialize to json as deepStrictEqualed', () => { + parser.write(Buffer.from('
')); + deepStrictEqual(JSON.stringify(_data[0]),'{"nameStart":{"line":0,"character":5},"nameEnd":{"line":0,"character":10},' + + '"valueStart":{"line":0,"character":12},"valueEnd":{"line":0,"character":19},"name":"class","value":"testing"}'); + }); +}); diff --git a/src/js/__test__/cdada.spec.js b/src/js/__test__/cdada.spec.js deleted file mode 100644 index 73c16a5..0000000 --- a/src/js/__test__/cdada.spec.js +++ /dev/null @@ -1,36 +0,0 @@ -const { SaxEventType, SAXParser } = require('../../../lib/'); -const fs = require('fs'); -const path = require('path'); -const expect = require('expect.js'); - -const saxWasm = fs.readFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.wasm')); -describe('When parsing XML, the SaxWasm', () => { - let parser; - let _event; - let _data; - before(async () => { - parser = new SAXParser(SaxEventType.Cdata | SaxEventType.OpenCDATA); - _data = []; - _event = 0; - - parser.eventHandler = function (event, data) { - _event = event; - _data.push(data); - }; - return parser.prepareWasm(saxWasm); - }); - - beforeEach(() => { - _data = []; - }) - - afterEach(() => { - parser.end(); - }); - - it('should report CDATA correctly', () => { - parser.write(Buffer.from('
y"? so I guess that means that z > x ]]>
')); - expect(_data[ 0 ]).to.eql({ line: 0, character: 7 }); - expect(_data[ 1 ]).to.be(' did you know "x < y" & "z > y"? so I guess that means that z > x '); - }); -}); diff --git a/src/js/__test__/cdada.spec.ts b/src/js/__test__/cdada.spec.ts new file mode 100644 index 0000000..54e8fb0 --- /dev/null +++ b/src/js/__test__/cdada.spec.ts @@ -0,0 +1,37 @@ +import { Detail, SaxEventType, SAXParser, StringReader } from '../saxWasm'; +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import {strictEqual, deepStrictEqual} from 'assert'; + +const saxWasm = readFileSync(resolve(__dirname, '../../../lib/sax-wasm.wasm')); +describe('When parsing XML, the SaxWasm', () => { + let parser: SAXParser; + let _event: SaxEventType; + let _data: Detail[]; + + before(async () => { + parser = new SAXParser(SaxEventType.Cdata | SaxEventType.OpenCDATA); + _data = []; + _event = 0; + + parser.eventHandler = function (event, data) { + _event = event; + _data.push(data as StringReader); + }; + return parser.prepareWasm(saxWasm); + }); + + beforeEach(() => { + _data = []; + }); + + afterEach(() => { + parser.end(); + }); + + it('should report CDATA correctly', () => { + parser.write(Buffer.from('
y"? so I guess that means that z > x ]]>
')); + deepStrictEqual(JSON.parse(JSON.stringify(_data[0])), { line: 0, character: 7 }); + strictEqual('' + _data[1],' did you know "x < y" & "z > y"? so I guess that means that z > x '); + }); +}); diff --git a/src/js/__test__/jsx.spec.js b/src/js/__test__/jsx.spec.ts similarity index 53% rename from src/js/__test__/jsx.spec.js rename to src/js/__test__/jsx.spec.ts index 8190976..2ac4337 100644 --- a/src/js/__test__/jsx.spec.js +++ b/src/js/__test__/jsx.spec.ts @@ -1,13 +1,15 @@ -const {SaxEventType, SAXParser} = require('../../../lib/'); -const fs = require('fs'); -const path = require('path'); -const expect = require('expect.js'); +import { SaxEventType, SAXParser } from '../saxWasm'; +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import {deepStrictEqual} from 'assert'; +import { Detail, Tag } from '../saxWasm'; -const saxWasm = fs.readFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.wasm')); +const saxWasm = readFileSync(resolve(__dirname, '../../../lib/sax-wasm.wasm')); describe('When parsing JSX, the SaxWasm', () => { - let parser; - let _event; - let _data; + let parser: SAXParser; + let _event: SaxEventType; + let _data: Tag[]; + before(async () => { parser = new SAXParser(SaxEventType.CloseTag); _data = []; @@ -15,14 +17,14 @@ describe('When parsing JSX, the SaxWasm', () => { parser.eventHandler = function (event, data) { _event = event; - _data.push(data); + _data.push(data as Tag); }; return parser.prepareWasm(saxWasm); }); beforeEach(() => { _data = []; - }) + }); afterEach(() => { parser.end(); @@ -34,10 +36,10 @@ describe('When parsing JSX, the SaxWasm', () => { {this.authenticated ? : }
`)); - expect(_event).to.be(SaxEventType.CloseTag); - expect(_data[0].name).to.be('User'); - expect(_data[1].name).to.be('SignIn'); - expect(_data[2].name).to.be('Component'); + deepStrictEqual(_event,SaxEventType.CloseTag); + deepStrictEqual(_data[0].name,'User'); + deepStrictEqual(_data[1].name,'SignIn'); + deepStrictEqual(_data[2].name,'Component'); }); it('should recognize tags within javascript', () => { @@ -52,17 +54,16 @@ describe('When parsing JSX, the SaxWasm', () => { `)); - expect(_event).to.be(SaxEventType.CloseTag); - expect(_data[0].name).to.be('li'); - expect(_data[1].name).to.be('li'); - expect(_data[2].name).to.be('ul'); + deepStrictEqual(_event,SaxEventType.CloseTag); + deepStrictEqual(_data[0].name,'li'); + deepStrictEqual(_data[1].name,'li'); + deepStrictEqual(_data[2].name,'ul'); }); it('should recognize JSX Fragments', () => { parser.write(Buffer.from('<>

')); - expect(_data[0].name).to.be('div'); - expect(_data[1].name).to.be('p'); - expect(_data[2].name).to.be(''); + deepStrictEqual(_data[0].name,'div'); + deepStrictEqual(_data[1].name,'p'); + deepStrictEqual(_data[2].name,''); }); - }); diff --git a/src/js/__test__/largeXML.spec.js b/src/js/__test__/largeXML.spec.ts similarity index 67% rename from src/js/__test__/largeXML.spec.js rename to src/js/__test__/largeXML.spec.ts index 5bbf7c8..504e72b 100644 --- a/src/js/__test__/largeXML.spec.js +++ b/src/js/__test__/largeXML.spec.ts @@ -1,9 +1,9 @@ -const {SaxEventType, SAXParser} = require('../../../lib/'); -const fs = require('fs'); -const path = require('path'); -const expect = require('expect.js'); +import { SaxEventType, SAXParser } from '../../../lib/'; +import { readFileSync, createReadStream } from 'fs'; +import { resolve as pathResolve } from 'path'; +import {notStrictEqual} from 'assert'; -const saxWasm = fs.readFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.wasm')); +const saxWasm = readFileSync(pathResolve(__dirname, '../../../lib/sax-wasm.wasm')); // fs.writeFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.base64'), saxWasm.toString('base64')); const options = {highWaterMark: 64 * 1024}; describe('When parsing XML, the SaxWasm', () => { @@ -32,7 +32,7 @@ describe('When parsing XML, the SaxWasm', () => { it('should read', async () => { await new Promise(resolve => { - const readable = fs.createReadStream(path.resolve(__dirname + '/xml.xml'), options); + const readable = createReadStream(pathResolve(__dirname + '/xml.xml'), options); readable.on('data', (chunk) => { parser.write(chunk); }); @@ -42,17 +42,17 @@ describe('When parsing XML, the SaxWasm', () => { it('should process large XML files', async () => { await new Promise(resolve => { - const readable = fs.createReadStream(path.resolve(__dirname + '/xml.xml'), options); + const readable = createReadStream(pathResolve(__dirname + '/xml.xml'), options); let t = Date.now(); readable.on('data', (chunk) => { parser.write(chunk); }); readable.on('end', () => { t = Date.now() - t; - console.log(t) + console.log(t); resolve() }); }); - expect(_data.length).not.to.be(0); + notStrictEqual(_data.length, 0); }); }); diff --git a/src/js/__test__/procInst.spec.js b/src/js/__test__/procInst.spec.ts similarity index 51% rename from src/js/__test__/procInst.spec.js rename to src/js/__test__/procInst.spec.ts index 11b5d71..3e18a8b 100644 --- a/src/js/__test__/procInst.spec.js +++ b/src/js/__test__/procInst.spec.ts @@ -1,13 +1,14 @@ -const {SaxEventType, SAXParser} = require('../../../lib/'); -const fs = require('fs'); -const path = require('path'); -const expect = require('expect.js'); +import { Detail, SaxEventType, SAXParser } from '../saxWasm'; +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import { deepStrictEqual } from 'assert'; + +const saxWasm = readFileSync(resolve(__dirname, '../../../lib/sax-wasm.wasm')); -const saxWasm = fs.readFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.wasm')); describe('When parsing JSX, the SaxWasm', () => { - let parser; - let _event; - let _data; + let parser: SAXParser; + let _event: SaxEventType; + let _data: Detail; before(async () => { parser = new SAXParser(SaxEventType.ProcessingInstruction); @@ -20,7 +21,7 @@ describe('When parsing JSX, the SaxWasm', () => { }); beforeEach(() => { - _data = ''; + _data = null; }); afterEach(() => { @@ -29,7 +30,7 @@ describe('When parsing JSX, the SaxWasm', () => { it('should recognize Processing Instructions', () => { parser.write(Buffer.from('')); - expect(_event).to.be(SaxEventType.ProcessingInstruction); - expect(_data).to.be('version="1.0" encoding="utf-8"'); + deepStrictEqual(_event, SaxEventType.ProcessingInstruction); + deepStrictEqual('' + _data, 'version="1.0" encoding="utf-8"'); }); }); diff --git a/src/js/__test__/tag.spec.js b/src/js/__test__/tag.spec.js deleted file mode 100644 index 674f013..0000000 --- a/src/js/__test__/tag.spec.js +++ /dev/null @@ -1,105 +0,0 @@ -const {SaxEventType, SAXParser} = require('../../../lib/'); -const fs = require('fs'); -const path = require('path'); -const expect = require('expect.js'); - -const saxWasm = fs.readFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.wasm')); - -describe('SaxWasm', () => { - let parser; - let _event; - let _data; - beforeEach(async () => { - parser = new SAXParser(); - parser.events = SaxEventType.OpenTagStart | - SaxEventType.OpenTag | - SaxEventType.CloseTag; - - _data = []; - _event = 0; - - parser.eventHandler = function (event, data) { - _event |= event; - _data.push(data); - }; - return parser.prepareWasm(saxWasm); - }); - - afterEach(() => { - parser.end(); - }); - - it('should report the SaxEventType.OpenTagStart', () => { - parser.write(Buffer.from('
This is my div
')); - expect(_event & SaxEventType.OpenTagStart).to.be(32); - const [tag] = _data ; - expect(tag.name).to.be('div'); - expect(tag.attributes.length).to.be(0); - expect(tag.openStart).to.eql({line: 0, character: 0}); - }); - - it('should report the SaxEventType.OpenTag', () => { - parser.write(Buffer.from('
This is my div
')); - expect(_event & SaxEventType.OpenTag).to.be(128); - const [,tag] = _data ; - expect(tag.name).to.be('div'); - expect(tag.attributes.length).to.be(1); - expect(tag.openStart).to.eql({line: 0, character: 0}); - expect(tag.openEnd).to.eql({line: 0, character: 19}); - }); - - it('should report the SaxEventType.CloseTag', () => { - parser.write(Buffer.from('
This is my div
')); - expect(_event & SaxEventType.CloseTag).to.be(256); - const [,,tag] = _data ; - expect(tag.name).to.be('div'); - expect(tag.attributes.length).to.be(1); - expect(tag.attributes[0].name).to.be('class'); - expect(tag.attributes[0].value).to.be('myDiv'); - expect(tag.textNodes.length).to.be(1); - expect(tag.textNodes[0].value).to.be('This is my div'); - expect(tag.openStart).to.eql({line: 0, character: 0}); - expect(tag.openEnd).to.eql({line: 0, character: 19}); - expect(tag.closeStart).to.eql({line: 0, character: 33}); - expect(tag.closeEnd).to.eql({line: 0, character: 39}); - expect(JSON.stringify(tag)).to.equal('{"openStart":{"line":0,"character":0},"openEnd":{"line":0,"character":19}' + - ',"closeStart":{"line":0,"character":33},"closeEnd":{"line":0,"character":39},"name":"div","attributes":' + - '[{"nameStart":{"line":0,"character":5},"nameEnd":{"line":0,"character":10},"valueStart":{"line":0,"character":12}' + - ',"valueEnd":{"line":0,"character":17},"name":"class","value":"myDiv"}],"textNodes":[{"start":{"line":0,' + - '"character":19},"end":{"line":0,"character":0},"value":"This is my div"}],"selfClosing":false}'); - }); - - it('should report selfClosing tags correctly', () => { - parser.events = SaxEventType.CloseTag; - parser.write(Buffer.from('')); - const [path, g] = _data ; - expect(path.selfClosing).to.be(true); - expect(g.selfClosing).to.be(false); - }); - - it('should handle the BOM', () => { - parser.events = SaxEventType.OpenTag; - parser.write(Buffer.from('\uFEFF
')); - expect(_event).to.be(SaxEventType.OpenTag); - const [tag] = _data ; - expect(tag.name).to.be('div'); - }); - - it('should treat orphaned close tags as text', () => { - parser.events = SaxEventType.Text; - parser.write(Buffer.from('')); - expect(_event).to.be(SaxEventType.Text); - const [,text] = _data; - expect(text.value).to.be(''); - }); - - it('should treat empty self-closing tags as tags', () => { - parser.events = SaxEventType.OpenTag | SaxEventType.CloseTag; - parser.write(Buffer.from('
')); - expect(_event & SaxEventType.OpenTag).to.be(128); - expect(_event & SaxEventType.CloseTag).to.be(256); - const [, openTag, closeTag] = _data ; - expect(openTag.name).to.be(''); - expect(closeTag.name).to.be(''); - }); -}); diff --git a/src/js/__test__/tag.spec.ts b/src/js/__test__/tag.spec.ts new file mode 100644 index 0000000..b553353 --- /dev/null +++ b/src/js/__test__/tag.spec.ts @@ -0,0 +1,106 @@ +import { Detail, SaxEventType, SAXParser, Tag } from '../saxWasm'; +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import { deepStrictEqual } from 'assert'; + +const saxWasm = readFileSync(resolve(__dirname, '../../../lib/sax-wasm.wasm')); + +describe('SaxWasm', () => { + let parser: SAXParser; + let _event: number; + let _data: Tag[]; + + beforeEach(async () => { + parser = new SAXParser(); + parser.events = SaxEventType.OpenTagStart | + SaxEventType.OpenTag | + SaxEventType.CloseTag; + + _data = []; + _event = 0; + + parser.eventHandler = function (event, data) { + _event |= event as number; + _data.push(data as Tag); + }; + return parser.prepareWasm(saxWasm); + }); + + afterEach(() => { + parser.end(); + }); + + it('should report the SaxEventType.OpenTagStart', () => { + parser.write(Buffer.from('
This is my div
')); + deepStrictEqual(_event & SaxEventType.OpenTagStart, 32); + const [tag] = _data; + deepStrictEqual(tag.name, 'div'); + deepStrictEqual(tag.attributes.length, 0); + deepStrictEqual(JSON.parse(JSON.stringify(tag.openStart)), { line: 0, character: 0 }); + }); + + it('should report the SaxEventType.OpenTag', () => { + parser.write(Buffer.from('
This is my div
')); + deepStrictEqual(_event & SaxEventType.OpenTag, 128); + const [, tag] = _data; + deepStrictEqual(tag.name, 'div'); + deepStrictEqual(tag.attributes.length, 1); + deepStrictEqual(JSON.parse(JSON.stringify(tag.openStart)), { line: 0, character: 0 }); + deepStrictEqual(JSON.parse(JSON.stringify(tag.openEnd)), { line: 0, character: 19 }); + }); + + it('should report the SaxEventType.CloseTag', () => { + parser.write(Buffer.from('
This is my div
')); + deepStrictEqual(_event & SaxEventType.CloseTag, 256); + const [, , tag] = _data; + deepStrictEqual(tag.name, 'div'); + deepStrictEqual(tag.attributes.length, 1); + deepStrictEqual(tag.attributes[0].name, 'class'); + deepStrictEqual(tag.attributes[0].value, 'myDiv'); + deepStrictEqual(tag.textNodes.length, 1); + deepStrictEqual(tag.textNodes[0].value, 'This is my div'); + deepStrictEqual(JSON.parse(JSON.stringify(tag.openStart)), { line: 0, character: 0 }); + deepStrictEqual(JSON.parse(JSON.stringify(tag.openEnd)), { line: 0, character: 19 }); + deepStrictEqual(JSON.parse(JSON.stringify(tag.closeStart)), { line: 0, character: 33 }); + deepStrictEqual(JSON.parse(JSON.stringify(tag.closeEnd)), { line: 0, character: 39 }); + deepStrictEqual(JSON.stringify(tag), '{"openStart":{"line":0,"character":0},"openEnd":{"line":0,"character":19}' + + ',"closeStart":{"line":0,"character":33},"closeEnd":{"line":0,"character":39},"name":"div","attributes":' + + '[{"nameStart":{"line":0,"character":5},"nameEnd":{"line":0,"character":10},"valueStart":{"line":0,"character":12}' + + ',"valueEnd":{"line":0,"character":17},"name":"class","value":"myDiv"}],"textNodes":[{"start":{"line":0,' + + '"character":19},"end":{"line":0,"character":0},"value":"This is my div"}],"selfClosing":false}'); + }); + + it('should report selfClosing tags correctly', () => { + parser.events = SaxEventType.CloseTag; + parser.write(Buffer.from('')); + const [path, g] = _data; + deepStrictEqual(path.selfClosing, true); + deepStrictEqual(g.selfClosing, false); + }); + + it('should handle the BOM', () => { + parser.events = SaxEventType.OpenTag; + parser.write(Buffer.from('\uFEFF
')); + deepStrictEqual(_event, SaxEventType.OpenTag); + const [tag] = _data; + deepStrictEqual(tag.name, 'div'); + }); + + it('should treat orphaned close tags as text', () => { + parser.events = SaxEventType.Text; + parser.write(Buffer.from('')); + deepStrictEqual(_event, SaxEventType.Text); + const [, text] = _data; + deepStrictEqual(text.value, ''); + }); + + it('should treat empty self-closing tags as tags', () => { + parser.events = SaxEventType.OpenTag | SaxEventType.CloseTag; + parser.write(Buffer.from('
')); + deepStrictEqual(_event & SaxEventType.OpenTag, 128); + deepStrictEqual(_event & SaxEventType.CloseTag, 256); + const [, openTag, closeTag] = _data; + deepStrictEqual(openTag.name, ''); + deepStrictEqual(closeTag.name, ''); + }); +}); diff --git a/src/js/__test__/text.spec.js b/src/js/__test__/text.spec.ts similarity index 54% rename from src/js/__test__/text.spec.js rename to src/js/__test__/text.spec.ts index 8fce4c2..49033ef 100644 --- a/src/js/__test__/text.spec.js +++ b/src/js/__test__/text.spec.ts @@ -1,9 +1,9 @@ -const {SaxEventType, SAXParser} = require('../../../lib/'); -const fs = require('fs'); -const path = require('path'); -const expect = require('expect.js'); +import { SaxEventType, SAXParser } from '../../../lib/'; +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import { deepStrictEqual } from 'assert'; -const saxWasm = fs.readFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.wasm')); +const saxWasm = readFileSync(resolve(__dirname, '../../../lib/sax-wasm.wasm')); describe('SaxWasm', () => { let parser; let _event; @@ -29,16 +29,16 @@ describe('SaxWasm', () => { it('should report text that occurs outside of an element', () => { parser.write(Buffer.from('this is just plain text
')); - expect(_data[0].value).to.be('this is just plain text '); + deepStrictEqual(_data[0].value,'this is just plain text '); }); it('should report multiple text blocks when child nodes exist between them', () => { parser.write(Buffer.from('
I like to use bold text to emphasize
')); - expect(_data.length).to.be(3); - expect(_data[0].value).to.be('I like to use '); - expect(_data[1].value).to.be('bold text'); - expect(_data[2].value).to.be(' to emphasize'); + deepStrictEqual(_data.length,3); + deepStrictEqual(_data[0].value,'I like to use '); + deepStrictEqual(_data[1].value,'bold text'); + deepStrictEqual(_data[2].value,' to emphasize'); }); it('should capture control chars properly', () => { @@ -48,11 +48,11 @@ describe('SaxWasm', () => { `; parser.write(Buffer.from(str)); - expect(_data[0].value).to.be('\n\n\n'); + deepStrictEqual(_data[0].value,'\n\n\n'); }); - it('should serialize to JSON as expected', () => { + it('should serialize to JSON as deepStrictEqualed', () => { parser.write(Buffer.from('a happy little parser')); - expect(JSON.stringify(_data[0])).to.equal('{"start":{"line":0,"character":1},"end":{"line":0,"character":21},"value":"a happy little parser"}'); + deepStrictEqual(JSON.stringify(_data[0]),'{"start":{"line":0,"character":1},"end":{"line":0,"character":21},"value":"a happy little parser"}'); }); }); diff --git a/src/js/saxWasm.ts b/src/js/saxWasm.ts index 3a746de..3bf25af 100644 --- a/src/js/saxWasm.ts +++ b/src/js/saxWasm.ts @@ -24,8 +24,9 @@ export class SaxEventType { // 2048 public static CloseCDATA = 0b100000000000; } +export type Detail = Position | Attribute | Text | Tag | StringReader; -abstract class Reader { +export abstract class Reader { protected data: Uint8Array; protected cache = {} as { [prop: string]: T }; protected ptr: number; @@ -36,8 +37,11 @@ abstract class Reader { } public abstract toJSON(): { [prop: string]: T }; + + public abstract get value() } + export class Position { public line: number; public character: number; @@ -111,6 +115,22 @@ export class Text extends Reader { } } +export class StringReader extends Reader { + get value(): string { + if (this.cache.value) { + return this.cache.value as string; + } + return (this.cache.value = readString(this.data.buffer, this.ptr, this.data.length)); + } + public toJSON(): { [p: string]: string } { + return {value: this.value} + } + + public toString() { + return this.value + } +} + export class Tag extends Reader { get openStart(): Position { return this.cache.openStart as Position || (this.cache.openStart = readPosition(this.data, 0)); @@ -180,6 +200,10 @@ export class Tag extends Reader | Position | string) => void; + public eventHandler: (type: SaxEventType, detail: Detail) => void; private readonly options: SaxParserOptions; private wasmSaxParser: WasmSaxParser; @@ -265,32 +289,32 @@ export class SAXParser { protected eventTrap = (event: number, ptr: number, len: number): void => { const uint8array = new Uint8Array(this.wasmSaxParser.memory.buffer.slice(ptr, ptr + len)); - let payload: Reader | string | Position; + let detail: Detail; switch (event) { case SaxEventType.Attribute: - payload = new Attribute(uint8array); + detail = new Attribute(uint8array); break; case SaxEventType.OpenTag: case SaxEventType.CloseTag: case SaxEventType.OpenTagStart: - payload = new Tag(uint8array); + detail = new Tag(uint8array); break; case SaxEventType.Text: - payload = new Text(uint8array); + detail = new Text(uint8array); break; case SaxEventType.OpenCDATA: - payload = readPosition(uint8array); + detail = readPosition(uint8array); break; default: - payload = readString(this.wasmSaxParser.memory.buffer, ptr, len); + detail = new StringReader(uint8array); break; } - this.eventHandler(event, payload); + this.eventHandler(event, detail); } } diff --git a/tsconfig.json b/tsconfig.json index 894ddbf..2c8202b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,9 @@ "target": "esnext", "outDir": "lib", "sourceMap": true, - "declaration": true + "declaration": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true }, "lib": [ "es2017", From f7b199c3b711c77f72894cc94f0f362446735e7c Mon Sep 17 00:00:00 2001 From: justinwilaby Date: Sun, 1 Sep 2019 07:54:29 -0700 Subject: [PATCH 3/4] Updated readme --- README.md | 28 ++++++++++++++-------------- src/js/saxWasm.ts | 11 ++++++----- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index b7a5ffa..9332f77 100644 --- a/README.md +++ b/README.md @@ -122,20 +122,20 @@ parser.events = SaxEventType.Text | SaxEventType.OpenTag | SaxEventType.Attribut ``` Complete list of event/argument pairs: -|Event |Mask |Argument passed to handler | -|----------------------------------|--------------|---------------------------------------------| -|SaxEventType.Text |0b000000000001|text: [Text](src/js/saxWasm.ts#L91) | -|SaxEventType.ProcessingInstruction|0b000000000010|procInst: string | -|SaxEventType.SGMLDeclaration |0b000000000100|sgmlDecl: string | -|SaxEventType.Doctype |0b000000001000|doctype: string | -|SaxEventType.Comment |0b000000010000|comment: string | -|SaxEventType.OpenTagStart |0b000000100000|tag: [Tag](src/js/saxWasm.ts#L114) | -|SaxEventType.Attribute |0b000001000000|attribute: [Attribute](src/js/saxWasm.ts#L51)| -|SaxEventType.OpenTag |0b000010000000|tag: [Tag](src/js/saxWasm.ts#L48) | -|SaxEventType.CloseTag |0b000100000000|tag: [Tag](src/js/saxWasm.ts#L48) | -|SaxEventType.OpenCDATA |0b001000000000|start: [Position](src/js/saxWasm.ts#L41) | -|SaxEventType.CDATA |0b010000000000|cdata: string | -|SaxEventType.CloseCDATA |0b100000000000|end: [Position](src/js/saxWasm.ts#L41) | +|Event |Mask |Argument passed to handler | +|----------------------------------|--------------|------------------------------------------------| +|SaxEventType.Text |0b000000000001|text: [Text](src/js/saxWasm.ts#L95) | +|SaxEventType.ProcessingInstruction|0b000000000010|procInst: [StringReader](src/js/saxWasm.ts#L118)| +|SaxEventType.SGMLDeclaration |0b000000000100|sgmlDecl: [StringReader](src/js/saxWasm.ts#L118)| +|SaxEventType.Doctype |0b000000001000|doctype: [StringReader](src/js/saxWasm.ts#L118) | +|SaxEventType.Comment |0b000000010000|comment: [StringReader](src/js/saxWasm.ts#L118) | +|SaxEventType.OpenTagStart |0b000000100000|tag: [Tag](src/js/saxWasm.ts#L135) | +|SaxEventType.Attribute |0b000001000000|attribute: [Attribute](src/js/saxWasm.ts#L55) | +|SaxEventType.OpenTag |0b000010000000|tag: [Tag](src/js/saxWasm.ts#L135) | +|SaxEventType.CloseTag |0b000100000000|tag: [Tag](src/js/saxWasm.ts#L135) | +|SaxEventType.OpenCDATA |0b001000000000|start: [Position](src/js/saxWasm.ts#L45) | +|SaxEventType.CDATA |0b010000000000|cdata: [StringReader](src/js/saxWasm.ts#L118) | +|SaxEventType.CloseCDATA |0b100000000000|end: [Position](src/js/saxWasm.ts#L45) | ## Speeding things up on large documents The speed of the sax-wasm parser is incredibly fast and can parse very large documents in a blink of an eye. Although diff --git a/src/js/saxWasm.ts b/src/js/saxWasm.ts index 3bf25af..f33bbcd 100644 --- a/src/js/saxWasm.ts +++ b/src/js/saxWasm.ts @@ -24,6 +24,7 @@ export class SaxEventType { // 2048 public static CloseCDATA = 0b100000000000; } + export type Detail = Position | Attribute | Text | Tag | StringReader; export abstract class Reader { @@ -41,7 +42,6 @@ export abstract class Reader { public abstract get value() } - export class Position { public line: number; public character: number; @@ -122,8 +122,9 @@ export class StringReader extends Reader { } return (this.cache.value = readString(this.data.buffer, this.ptr, this.data.length)); } + public toJSON(): { [p: string]: string } { - return {value: this.value} + return { value: this.value } } public toString() { @@ -256,7 +257,7 @@ export class SAXParser { // if they become excessive. Consider adjusting the // highWaterMark in the options up or down to find the optimal // memory allocation to prevent too many new Uint8Array instances. - if (!this.writeBuffer || this.writeBuffer.buffer !== buffer) { + if (!this.writeBuffer || this.writeBuffer.buffer!==buffer) { this.writeBuffer = new Uint8Array(buffer, 0, this.options.highWaterMark); } this.writeBuffer.set(chunk); @@ -321,12 +322,12 @@ export class SAXParser { function readString(data: ArrayBuffer, byteOffset: number, length: number): string { const env = (global || window); // Node - if ((env as any).Buffer !== undefined) { + if ((env as any).Buffer!==undefined) { return Buffer.from(data, byteOffset, length).toString(); } // Web return (SAXParser.textDecoder || (SAXParser.textDecoder = new TextDecoder())) - .decode(new Uint8Array(data, byteOffset, length)); + .decode(new Uint8Array(data, byteOffset, length)); } function readU32(uint8Array: Uint8Array, ptr: number): number { From 83f26e35a05e8c3fba4093b36482ade5d1d7fc17 Mon Sep 17 00:00:00 2001 From: justinwilaby Date: Sun, 1 Sep 2019 08:14:19 -0700 Subject: [PATCH 4/4] Updated wasm binary --- lib/sax-wasm.js | 2 ++ lib/sax-wasm.wasm | Bin 28905 -> 29068 bytes lib/saxWasm.d.ts | 15 ++++++++++++--- lib/saxWasm.js | 35 +++++++++++++++++++++++++++-------- lib/saxWasm.js.map | 2 +- src/sax/names.rs | 34 +++++++++++++++++----------------- 6 files changed, 59 insertions(+), 29 deletions(-) create mode 100644 lib/sax-wasm.js diff --git a/lib/sax-wasm.js b/lib/sax-wasm.js new file mode 100644 index 0000000..2668a59 --- /dev/null +++ b/lib/sax-wasm.js @@ -0,0 +1,2 @@ +import * as wasm from './sax-wasm.wasm_bg.wasm'; + diff --git a/lib/sax-wasm.wasm b/lib/sax-wasm.wasm index a81751afcdf9c1cc1e16311a30b93f1123af0b37..b1c22b1ad9e86ff5fc0803266de50c256f5afcc8 100755 GIT binary patch delta 11702 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 NaWIkZ9q1h#{6A>ZE?58n diff --git a/lib/saxWasm.d.ts b/lib/saxWasm.d.ts index 6420eb9..fd07013 100644 --- a/lib/saxWasm.d.ts +++ b/lib/saxWasm.d.ts @@ -12,7 +12,8 @@ export declare class SaxEventType { static Cdata: number; static CloseCDATA: number; } -declare abstract class Reader { +export declare type Detail = Position | Attribute | Text | Tag | StringReader; +export declare abstract class Reader { protected data: Uint8Array; protected cache: { [prop: string]: T; @@ -22,6 +23,7 @@ declare abstract class Reader { abstract toJSON(): { [prop: string]: T; }; + abstract readonly value: any; } export declare class Position { line: number; @@ -47,6 +49,13 @@ export declare class Text extends Reader { [prop: string]: string | Position; }; } +export declare class StringReader extends Reader { + readonly value: string; + toJSON(): { + [p: string]: string; + }; + toString(): string; +} export declare class Tag extends Reader { readonly openStart: Position; readonly openEnd: Position; @@ -59,6 +68,7 @@ export declare class Tag extends Reader | Position | string) => void; + eventHandler: (type: SaxEventType, detail: Detail) => void; private readonly options; private wasmSaxParser; private writeBuffer; @@ -76,4 +86,3 @@ export declare class SAXParser { prepareWasm(saxWasm: Uint8Array): Promise; protected eventTrap: (event: number, ptr: number, len: number) => void; } -export {}; diff --git a/lib/saxWasm.js b/lib/saxWasm.js index 7fa2f53..54ac94c 100644 --- a/lib/saxWasm.js +++ b/lib/saxWasm.js @@ -2,6 +2,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); class SaxEventType { } +exports.SaxEventType = SaxEventType; // 1 SaxEventType.Text = 0b1; // 2 @@ -26,7 +27,6 @@ SaxEventType.OpenCDATA = 0b1000000000; SaxEventType.Cdata = 0b10000000000; // 2048 SaxEventType.CloseCDATA = 0b100000000000; -exports.SaxEventType = SaxEventType; class Reader { constructor(data, ptr = 0) { this.cache = {}; @@ -34,6 +34,7 @@ class Reader { this.ptr = ptr; } } +exports.Reader = Reader; class Position { constructor(line, character) { this.line = line; @@ -95,6 +96,21 @@ class Text extends Reader { } } exports.Text = Text; +class StringReader extends Reader { + get value() { + if (this.cache.value) { + return this.cache.value; + } + return (this.cache.value = readString(this.data.buffer, this.ptr, this.data.length)); + } + toJSON() { + return { value: this.value }; + } + toString() { + return this.value; + } +} +exports.StringReader = StringReader; class Tag extends Reader { get openStart() { return this.cache.openStart || (this.cache.openStart = readPosition(this.data, 0)); @@ -156,33 +172,36 @@ class Tag extends Reader { const { openStart, openEnd, closeStart, closeEnd, name, attributes, textNodes, selfClosing } = this; return { openStart, openEnd, closeStart, closeEnd, name, attributes, textNodes, selfClosing }; } + get value() { + return this.name; + } } exports.Tag = Tag; class SAXParser { constructor(events = 0, options = { highWaterMark: 32 * 1024 }) { this.eventTrap = (event, ptr, len) => { const uint8array = new Uint8Array(this.wasmSaxParser.memory.buffer.slice(ptr, ptr + len)); - let payload; + let detail; switch (event) { case SaxEventType.Attribute: - payload = new Attribute(uint8array); + detail = new Attribute(uint8array); break; case SaxEventType.OpenTag: case SaxEventType.CloseTag: case SaxEventType.OpenTagStart: - payload = new Tag(uint8array); + detail = new Tag(uint8array); break; case SaxEventType.Text: - payload = new Text(uint8array); + detail = new Text(uint8array); break; case SaxEventType.OpenCDATA: - payload = readPosition(uint8array); + detail = readPosition(uint8array); break; default: - payload = readString(this.wasmSaxParser.memory.buffer, ptr, len); + detail = new StringReader(uint8array); break; } - this.eventHandler(event, payload); + this.eventHandler(event, detail); }; this.options = options; const self = this; diff --git a/lib/saxWasm.js.map b/lib/saxWasm.js.map index ef7b118..76c0871 100644 --- a/lib/saxWasm.js.map +++ b/lib/saxWasm.js.map @@ -1 +1 @@ -{"version":3,"file":"saxWasm.js","sourceRoot":"","sources":["../src/js/saxWasm.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"saxWasm.js","sourceRoot":"","sources":["../src/js/saxWasm.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/sax/names.rs b/src/sax/names.rs index 4ce24a2..3daefaa 100644 --- a/src/sax/names.rs +++ b/src/sax/names.rs @@ -5,21 +5,21 @@ pub fn is_name_start_char(grapheme: &str) -> bool { // https://www.w3.org/TR/REC-xml/#NT-NameStartChar match c { 0x3A => true, // : - 0x41...0x5A => true, // A-Z + 0x41..=0x5A => true, // A-Z 0x5F => true, // _ - 0x61...0x7A => true, // a-z - 0xC0...0xD6 => true, // À-Ö - 0xD8...0xF6 => true, // Ø-ö - 0xF8...0x02FF => true, // ø-˿ - 0x0370...0x037D => true, - 0x037F...0x1FFF => true, - 0x200C...0x200D => true, - 0x2070...0x218F => true, - 0x2C00...0x2FEF => true, - 0x3001...0xD7FF => true, - 0xF900...0xFDCF => true, - 0xFDF0...0xFFFD => true, - 0x10000...0xEFFFF => true, + 0x61..=0x7A => true, // a-z + 0xC0..=0xD6 => true, // À-Ö + 0xD8..=0xF6 => true, // Ø-ö + 0xF8..=0x02FF => true, // ø-˿ + 0x0370..=0x037D => true, + 0x037F..=0x1FFF => true, + 0x200C..=0x200D => true, + 0x2070..=0x218F => true, + 0x2C00..=0x2FEF => true, + 0x3001..=0xD7FF => true, + 0xF900..=0xFDCF => true, + 0xFDF0..=0xFFFD => true, + 0x10000..=0xEFFFF => true, _ => false, } } @@ -34,9 +34,9 @@ pub fn is_name_char(grapheme: &str) -> bool { 0x2D => true, 0x2E => true, 0xB7 => true, - 0x30...0x39 => true, - 0x0300...0x036F => true, - 0x203F...0x2040 => true, + 0x30..=0x39 => true, + 0x0300..=0x036F => true, + 0x203F..=0x2040 => true, _ => false } }