From 4d4ed174e917189382eb5cd1aa7ef78a21224e16 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Sun, 19 Jan 2020 16:18:01 -0700 Subject: [PATCH 01/14] Helper --- type-script-helper-0.0.1.vsix | Bin 0 -> 4904 bytes type-script-helper-1.0.0.vsix | Bin 0 -> 4627 bytes type-script-helper-1.0.1.vsix | Bin 0 -> 5410 bytes type-script-helper-1.1.0.vsix | Bin 0 -> 5527 bytes type-script-helper-1.1.1.vsix | Bin 0 -> 5547 bytes type-script-helper-1.1.2.vsix | Bin 0 -> 5600 bytes type-script-helper-1.1.3.vsix | Bin 0 -> 5611 bytes type-script-helper-1.1.4.vsix | Bin 0 -> 5631 bytes type-script-helper-1.1.5.vsix | Bin 0 -> 5712 bytes type-script-helper/.gitignore | 4 + type-script-helper/.vscode/extensions.json | 7 + type-script-helper/.vscode/launch.json | 36 + type-script-helper/.vscode/settings.json | 11 + type-script-helper/.vscode/tasks.json | 20 + type-script-helper/.vscodeignore | 10 + type-script-helper/CHANGELOG.md | 9 + type-script-helper/README.md | 50 + type-script-helper/package-lock.json | 1030 +++++++++++++++++ type-script-helper/package.json | 74 ++ type-script-helper/src/extension.ts | 44 + type-script-helper/src/helper.ts | 246 ++++ type-script-helper/src/test/runTest.ts | 23 + .../src/test/suite/extension.test.ts | 15 + type-script-helper/src/test/suite/index.ts | 37 + type-script-helper/tsconfig.json | 21 + type-script-helper/tslint.json | 15 + .../vsc-extension-quickstart.md | 42 + 27 files changed, 1694 insertions(+) create mode 100644 type-script-helper-0.0.1.vsix create mode 100644 type-script-helper-1.0.0.vsix create mode 100644 type-script-helper-1.0.1.vsix create mode 100644 type-script-helper-1.1.0.vsix create mode 100644 type-script-helper-1.1.1.vsix create mode 100644 type-script-helper-1.1.2.vsix create mode 100644 type-script-helper-1.1.3.vsix create mode 100644 type-script-helper-1.1.4.vsix create mode 100644 type-script-helper-1.1.5.vsix create mode 100644 type-script-helper/.gitignore create mode 100644 type-script-helper/.vscode/extensions.json create mode 100644 type-script-helper/.vscode/launch.json create mode 100644 type-script-helper/.vscode/settings.json create mode 100644 type-script-helper/.vscode/tasks.json create mode 100644 type-script-helper/.vscodeignore create mode 100644 type-script-helper/CHANGELOG.md create mode 100644 type-script-helper/README.md create mode 100644 type-script-helper/package-lock.json create mode 100644 type-script-helper/package.json create mode 100644 type-script-helper/src/extension.ts create mode 100644 type-script-helper/src/helper.ts create mode 100644 type-script-helper/src/test/runTest.ts create mode 100644 type-script-helper/src/test/suite/extension.test.ts create mode 100644 type-script-helper/src/test/suite/index.ts create mode 100644 type-script-helper/tsconfig.json create mode 100644 type-script-helper/tslint.json create mode 100644 type-script-helper/vsc-extension-quickstart.md diff --git a/type-script-helper-0.0.1.vsix b/type-script-helper-0.0.1.vsix new file mode 100644 index 0000000000000000000000000000000000000000..0d71039c411712a2b1fb8864428b8ebd7cb26622 GIT binary patch literal 4904 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 K2!6aDZ~p_c9j!Y6 literal 0 HcmV?d00001 diff --git a/type-script-helper-1.0.0.vsix b/type-script-helper-1.0.0.vsix new file mode 100644 index 0000000000000000000000000000000000000000..1e57053895bced2d7712dfbb17c6db4f577cf5de GIT binary patch literal 4627 zcmZ`-2{cr1+#V#x2-#aEB!sMyB)hT9*o#84LLHxs^iMQ;*@Z8=)$$(0_Mk>p_2F2q9dA+LwVl#bc9HAVq3+lkt3li>fEvUh)-Y#jTve&IzF4guP{ zZrPmPh}Vb+UD`aZqS{rb&KLhOlE{Nj9P^`mkLCQ9XO(-#NVr+Sg;VJ{&6iwZGywI^+{8o;c|n5cV6c8uLpsx|ANS^irP z*W>A2mplCpV8{HdcLN^oSEuxc0$PFu%epM0jBn}_bp5=p8>Q09-I!BJtxMJQ===jnyNOH`U!n^TP z@QT?o!$=%?M<8y=)-*v)1=l1PFR)TzFr+7cDIqydqwY|LLtgK!Y!IaB<2Gh*Ai&-$ z|6yP6ChB_v48#}rfwrlJaIO6?m-VRVyxV7&$d~Y8Xfn}7;|+F|A{W12&qc%Y+J|Fj z<&At|M7@wa(^n!KON#-anznr^>s}wea$`$hrQ-@`sYiCJ-vNwyONRjTt{_Zgd|CrE;+kn!gZ`_SlO&NWiph+ zECRFXBz^`fjKz^d!AwqijjQDSRU5$J^e#DVm& zw=1IeT`EmVOF9H{X~?$RLd+0pzUroP^g;aX6KSmHgv(OPR$t0BaUZi4wCHp}4$k8b z)zfiuA}^VX?4~^`j;Q`D`b({zT)|1PJ16HK{U)NUuBfdB(bQ2BMp_v}7CMlNF{ogC zKZe++-ptc^`bM`$pNl31b<>1B-+DcCZe6T9Q@zwHBd!!2Igu5&`(ij&`I&mU`?J9P zc@_a(9mF=@`~1AXoGP17*Dh?B#M$8kZQ%XSV@X2vyz_y0W3jtqN^=vj8QB%HUo{>N z^`Ez{cBryDVh_fEa`qcAd^n4z3CzqT6-aHv1VZ|7(0xHj-WH8K_2D-*D1Jwj=)@^^xHf>SuQB2l>LKT)h)%lXt~{gm|mJm zyk@(ZZ)17Tx4Vf8Acm;)d|1ZHHGH6(I2*)xHMf-|p@WtiVfoLb< zoZ)p7kQqnI7e%zyC=E`N=xL2B=a<$b#QTNkvpLu)f8b7{{A`WAtEY=zxI5cSyubGp zDfU4uFvZ1Rd0X1w(0C2a3ZJ*;DNyNo&xd1=jckM6nT@^>z9+%XA!wDP2W?l^d0qZ4 ztEE@8X9gg+c-7m#cjmOHze8%4elRkS$)n4)2a+(S$g*k4DazFmxJM{zW)%#Has2uu zJ>{NqW}lcCeU!OGQ^15-?3OEOsd&X;RJK~pN`~x6odq;No{?=uD@l2w*n`n6qF10N z!(&jV!8$9R#7s28rOSf4H)r14Q+kU~Dc7WUd*H5!?eK;)5(Ef#cSzjWD&HY0*>KWI zzPU$@4L_ZwCfuxNb3d2Uiz7bz?Qzpv3FFaAQ)jYbrp}ENEJn5hr{EZ%rO<_TB9?}# z7q)SvxKc>ow{CGCOb480f`yk2a`5kk5x(dr2zF>+)s=`_~g!ODrDY z482euqAj;3bSE~auGf$$@A4-X5@(z-J8Nw%yJ09z{ddbEx-cs02gVCLG!y_p9TfoZ z-yOyFe>w_ojc~MfK53^aHdEB-jg2aWV~V$D-k*}O>)jzFQ@u{WIy5)oOO})wnTf6? zaq8(x`tI1iV;?nWx^~G3dgF$y`kasNCi*LsQq#8O(ON``ob<6bMIjwi?B>Oz7wG`P zy3ejYHK9MmGeyq-7K=t)fRrUY;#?+AwiJ-8HC z_JjAkoJ$Lu%2-a%X*ORY4w)IdlY2j_`E*ZQ;QX4r$v4(->{9bS)}Fw{Td5XSW;O2h zVI=yM+AH-CQzhQ$4c>^aCiB_BeIK9jUfH_S^(=uJx48v+&ul^S{eeg$;^tiB$ZhXN zfpakjw@Br!2Yy<-OgGqFn?KzF>O)!|ZF~;_pPm&alfTJ{cPl1!#Dmhm* zCt}<@i`$DY2rB7ws4%OLB+g4Mzgu(i0gASpwq3m!8%k@n7@~)EvkdvJn311-uAjX^ z(H|_$_=54#VpHZT^b|snz4*!y<_XdROf)AYqL))w>W{trJt=T!Fs+*7nXEG6TFy*} z33(*9?5XoZxFm8SP^LDxc=_X@+qRkK*bW)2+>IlKqNrptnJDb>c}0s+DlB>1vKEJW zh=L~ba%w>s?B9k`3R*dwj=pHPv(5OB9j_x%%?YjPT}c2nxgXq8-?rq=D!XE|Q!JQf z3pkphkx6YEcpPC|KkIdm2k{6_9J6aznY61hysbkLc!qxhTn8)Wwmz8bG%l%j&|Bz7 z$GW1fyKI{lA##g0Zt*T`JmGe%2^Ak)^#ex|4r%n^S*-P+Yy03-v>)Oh2UV{RX$#r& z3-v8$1DzX70;w~sR@|fEW>OzXSWsz(-QXT`x)QisIB|#3C&{fi^JK8iCUiR4l zyVt&5>wnuaUSJaMwLT#$QS8wYO+2!HOmCW(iy|x|cQNq2=;W%RspsL2&@o0Ln|=;r zG#<+Tngj73rJZnGRBTw4eME&=VX&Vl9kee!w=l2|tITRbTMUIFvk8iOUmfL35#dUeA=cuM%w_{5(43K+m zCva|&u1pIt=x)w1GucE>twD{~8cuzX;^IB|@E`mkByo=6jGmPt<6gV~ua+-e+$k1Q zbf8+MX4|uzOQlnxlo^Fo88|IRPK7SZ02w7fnoU~QKVs)YnHgrATTVrt9)~qs#*4|8 zju=k$HgvK+YZ6lUye0{(CdH^ZUIKYH-h_vnu47H$c3|g&Nno`z%@Kmh^)i(9Q=nz? zH+!9Z%S6=CKH&v1QFI*?39+z5i`6D!c5x01A-WB$q|Bu!WMh5vuvb&u&ldx;8+2J| zMS7k@99ttbWE5bOjXCA%#kvc6ZxUUxY~F;BRe|b;fm9tKO@T5!gmLWSOgO{sPkrUL zT?q1;uhvkH#m#0hC`d=8;HE|tlw452tg5&IDp|-9*J)UvochU)#|tJwnJg|>q3{Z> zFtQVgWJC|HMMGr;V!UU4Y`%O!BsAl415&2DF9_aUmVmM!2KB%CE;?f3H7?i0cL3)b z!d%>ymcH?|+nMeOE0?wEn^15gl_CfXPL;C3h*Lf6tLRR^I(!$}$&6CD$Bg#MOvX&B45J$OKih)lXlFyP0=*>YYYs?lUSc z^0fMbDKP;T^tu)*L6U|VPWgI610BpJd!(a^Ak#Kwns9o~HE;6loDXqd#`X!bM!Z=^ zTpvCHwc~+90nUnxq>Q{xz+_3LdHCFXg+#4J4^3`8J;yty>A?q8a{k*(Rh?1;i*@J9 zve7B^D__v-n`f$*Ye5f?Qt89d z05k$X;v-&R?a|bWGksfm2CQtl?G96jrT5l4e9q@R?VTiQhaoLN%_JehJDD*$v&2Mj zo)Y{s>x8ZrFGC&#Q(1H~UY-TTHNqd?s=^Jy55(Mc{kq8lEtCk*E)bcLRIOiQ0Op^Y znwDGOp0o6vv>1u~3a2}D-M-M)L-MHrbfyDymSh@O6R;#vXM0P74l!)7%&N|Cs%HuYc?q{EhK<*!vd)bMk%upXm2Dz~8~?UjWAw%k=9Z{)kaO zF@6S<-woD}VDfX6_}@K|!hbRTjwyfR{4Sn9?AXsy;-7V5-TuV+WzK#F`JuDFGxvwi y{v0L#jI_Ul{I0q`G5(9=KQW5@N9caX_{Df#80E=E4*)=Qa*Uod$7O~etN#J>Tse6F literal 0 HcmV?d00001 diff --git a/type-script-helper-1.0.1.vsix b/type-script-helper-1.0.1.vsix new file mode 100644 index 0000000000000000000000000000000000000000..5deb1032debc2cee94c102abc01dacd1dab53802 GIT binary patch literal 5410 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 Ao&W#< literal 0 HcmV?d00001 diff --git a/type-script-helper-1.1.0.vsix b/type-script-helper-1.1.0.vsix new file mode 100644 index 0000000000000000000000000000000000000000..9a0ebc62b6a3814b7ade672d44980b77d8fc48bf GIT binary patch literal 5527 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 HwgUbKujtku literal 0 HcmV?d00001 diff --git a/type-script-helper-1.1.1.vsix b/type-script-helper-1.1.1.vsix new file mode 100644 index 0000000000000000000000000000000000000000..0bc265eaea818f707bebfc48ec6bbdf7004e84d0 GIT binary patch literal 5547 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 literal 0 HcmV?d00001 diff --git a/type-script-helper/.gitignore b/type-script-helper/.gitignore new file mode 100644 index 0000000..5fe00fe --- /dev/null +++ b/type-script-helper/.gitignore @@ -0,0 +1,4 @@ +out +node_modules +.vscode-test/ +*.vsix diff --git a/type-script-helper/.vscode/extensions.json b/type-script-helper/.vscode/extensions.json new file mode 100644 index 0000000..0a18b9c --- /dev/null +++ b/type-script-helper/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "ms-vscode.vscode-typescript-tslint-plugin" + ] +} \ No newline at end of file diff --git a/type-script-helper/.vscode/launch.json b/type-script-helper/.vscode/launch.json new file mode 100644 index 0000000..b1fbaf5 --- /dev/null +++ b/type-script-helper/.vscode/launch.json @@ -0,0 +1,36 @@ +// A launch configuration that compiles the extension and then opens it inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Run Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ], + "outFiles": [ + "${workspaceFolder}/out/**/*.js" + ], + "preLaunchTask": "${defaultBuildTask}" + }, + { + "name": "Extension Tests", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}", + "--extensionTestsPath=${workspaceFolder}/out/test/suite/index" + ], + "outFiles": [ + "${workspaceFolder}/out/test/**/*.js" + ], + "preLaunchTask": "${defaultBuildTask}" + } + ] +} diff --git a/type-script-helper/.vscode/settings.json b/type-script-helper/.vscode/settings.json new file mode 100644 index 0000000..30bf8c2 --- /dev/null +++ b/type-script-helper/.vscode/settings.json @@ -0,0 +1,11 @@ +// Place your settings in this file to overwrite default and user settings. +{ + "files.exclude": { + "out": false // set this to true to hide the "out" folder with the compiled JS files + }, + "search.exclude": { + "out": true // set this to false to include "out" folder in search results + }, + // Turn off tsc task auto detection since we have the necessary tasks as npm scripts + "typescript.tsc.autoDetect": "off" +} \ No newline at end of file diff --git a/type-script-helper/.vscode/tasks.json b/type-script-helper/.vscode/tasks.json new file mode 100644 index 0000000..3b17e53 --- /dev/null +++ b/type-script-helper/.vscode/tasks.json @@ -0,0 +1,20 @@ +// See https://go.microsoft.com/fwlink/?LinkId=733558 +// for the documentation about the tasks.json format +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "watch", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "presentation": { + "reveal": "never" + }, + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} diff --git a/type-script-helper/.vscodeignore b/type-script-helper/.vscodeignore new file mode 100644 index 0000000..ed3f9d3 --- /dev/null +++ b/type-script-helper/.vscodeignore @@ -0,0 +1,10 @@ +.vscode/** +.vscode-test/** +out/test/** +src/** +.gitignore +vsc-extension-quickstart.md +**/tsconfig.json +**/tslint.json +**/*.map +**/*.ts \ No newline at end of file diff --git a/type-script-helper/CHANGELOG.md b/type-script-helper/CHANGELOG.md new file mode 100644 index 0000000..4a94886 --- /dev/null +++ b/type-script-helper/CHANGELOG.md @@ -0,0 +1,9 @@ +# Change Log + +All notable changes to the "type-script-helper" extension will be documented in this file. + +Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. + +## [Unreleased] + +- Initial release \ No newline at end of file diff --git a/type-script-helper/README.md b/type-script-helper/README.md new file mode 100644 index 0000000..3f6ad48 --- /dev/null +++ b/type-script-helper/README.md @@ -0,0 +1,50 @@ +# type-script-helper README + +Helpers + +## Features + +See Contributions tab + +## Requirements + +None + +## Extension Settings + +None + +## Known Issues + +None + +## Release Notes + +cd "C:\Users\phares\source\yo_vscode" +yo code +Type Script Helper +(type-script-helper) +Modify .package +Add publisher +cd type-script-helper +vsce package + +F1 +Extensions: Install from VSIX + +### 1.0.0 + +Initial release of ... + +### 1.0.1 + +Fixed issue in replace function +https://stackoverflow.com/questions/37197311/in-typescript-string-replace-only-replaces-first-occurrence-of-matched-string +Added split(' group by ').join('\r\n GROUP BY '). + +### 1.1.0 +----------------------------------------------------------------------------------------------------------- + +## Working with Markdown + +### For more information diff --git a/type-script-helper/package-lock.json b/type-script-helper/package-lock.json new file mode 100644 index 0000000..677c572 --- /dev/null +++ b/type-script-helper/package-lock.json @@ -0,0 +1,1030 @@ +{ + "name": "type-script-helper", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/mocha": { + "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": "12.12.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz", + "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==", + "dev": true + }, + "@types/vscode": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.40.0.tgz", + "integrity": "sha512-5kEIxL3qVRkwhlMerxO7XuMffa+0LBl+iG2TcRa0NsdoeSFLkt/9hJ02jsi/Kvc6y8OVF2N2P2IHP5S4lWf/5w==", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "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", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "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" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "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 + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "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": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.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" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "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 + }, + "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 + }, + "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" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "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 + }, + "es-abstract": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.2.tgz", + "integrity": "sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "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" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.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 + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "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" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "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.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "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-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "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" + } + }, + "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.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "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" + } + }, + "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" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "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" + } + }, + "mocha": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", + "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "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.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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 + }, + "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" + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "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" + } + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "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 + }, + "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-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 + }, + "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.13.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "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" + } + }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "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-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": "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" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.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 + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "typescript": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", + "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", + "dev": true + }, + "vscode-test": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.2.3.tgz", + "integrity": "sha512-mKRTNso33NaUULiPBFg6zRjyntjcCpIgkrogyPQuKlvoQREQR8jLKN5UD4L5rkTSD+oBhcKtaLR2/g34FexURw==", + "dev": true, + "requires": { + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.4", + "rimraf": "^2.6.3" + } + }, + "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" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "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 + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "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.1.1" + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } + } + } +} diff --git a/type-script-helper/package.json b/type-script-helper/package.json new file mode 100644 index 0000000..06a1252 --- /dev/null +++ b/type-script-helper/package.json @@ -0,0 +1,74 @@ +{ + "name": "type-script-helper", + "displayName": "Type Script Helper", + "description": "Helper for VS Code in TypeScript", + "publisher": "IFX", + "version": "1.1.5", + "engines": { + "vscode": "^1.40.0" + }, + "categories": [ + "Other" + ], + "main": "./out/extension.js", + "activationEvents": [ + "onCommand:helper.addCSharpComment", + "onCommand:helper.addVBComment", + "onCommand:helper.convertToRegularExpression", + "onCommand:helper.expandSql", + "onCommand:helper.prettySql", + "onCommand:helper.removeComment", + "onCommand:helper.sortNormal", + "onCommand:helper.unwrapSql", + "onCommand:helper.wrapSqlCSharp", + "onCommand:helper.wrapSqlVB" + ], + "contributes": { + "commands": [ + { "command": "helper.addCSharpComment", "title": "Add C# Comment" }, + { "command": "helper.addVBComment", "title": "Add VB Comment" }, + { "command": "helper.expandSql", "title": "Expand Sql" }, + { "command": "helper.convertToRegularExpression", "title": "Convert to Regular Expression" }, + { "command": "helper.prettySql", "title": "Pretty Sql" }, + { "command": "helper.removeComment", "title": "Remove comment" }, + { "command": "helper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, + { "command": "helper.unwrapSql", "title": "Un-wrap Sql" }, + { "command": "helper.wrapSqlCSharp", "title": "Wrap Sql for C#" }, + { "command": "helper.wrapSqlVB", "title": "Wrap Sql for VB" } + ], + "keybindings": [ + { + "command": "helper.unwrapSql", + "key": "shift + f9", + "when": "editorTextFocus" + } + ], + "menus": { + "editor/context": [ + { + "command": "helper.unwrapSql", + "when": "editorTextFocus", + "group": "helper@1" + } + ] + } + }, + "scripts": { + "vscode:prepublish": "npm run compile", + "compile": "tsc -p ./", + "watch": "tsc -watch -p ./", + "pretest": "npm run compile", + "test": "node ./out/test/runTest.js" + }, + "devDependencies": { + "@types/glob": "^7.1.1", + "@types/mocha": "^5.2.7", + "@types/node": "^12.11.7", + "@types/vscode": "^1.40.0", + "glob": "^7.1.5", + "mocha": "^6.2.2", + "typescript": "^3.6.4", + "tslint": "^5.20.0", + "vscode-test": "^1.2.2" + } +} diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts new file mode 100644 index 0000000..08e7bfa --- /dev/null +++ b/type-script-helper/src/extension.ts @@ -0,0 +1,44 @@ +// The module 'vscode' contains the VS Code extensibility API +// Import the module and reference it with the alias vscode in your code below +import * as vscode from 'vscode'; +import * as helper from './helper'; + +// this method is called when your extension is activated +// your extension is activated the very first time the command is executed +export function activate(context: vscode.ExtensionContext) { + + // Use the console to output diagnostic information (console.log) and errors (console.error) + // This line of code will only be executed once when your extension is activated + console.log('Congratulations, your extension "type-script-helper" is now active!'); + + // The command has been defined in the package.json file + // Now provide the implementation of the command with registerCommand + // The commandId parameter must match the command field in package.json + // let disposable = vscode.commands.registerCommand('extension.helloWorld', () => { + // // The code you place here will be executed every time your command is executed + + // // Display a message box to the user + // vscode.window.showInformationMessage('Hello World!'); + // }); + + + // context.subscriptions.push(disposable); + + const commands = [ + vscode.commands.registerCommand('helper.addCSharpComment', helper.addCSharpComment), + vscode.commands.registerCommand('helper.addVBComment', helper.addVBComment), + vscode.commands.registerCommand('helper.convertToRegularExpression', helper.convertToRegularExpression), + vscode.commands.registerCommand('helper.expandSql', helper.expandSql), + vscode.commands.registerCommand('helper.prettySql', helper.prettySql), + vscode.commands.registerCommand('helper.removeComment', helper.removeComment), + vscode.commands.registerCommand('helper.sortNormal', helper.sortNormal), + vscode.commands.registerCommand('helper.unwrapSql', helper.unwrapSql), + vscode.commands.registerCommand('helper.wrapSqlCSharp', helper.wrapSqlCSharp), + vscode.commands.registerCommand('helper.wrapSqlVB', helper.wrapSqlVB) + ]; + + commands.forEach(command => context.subscriptions.push(command)); +} + +// this method is called when your extension is deactivated +export function deactivate() {} diff --git a/type-script-helper/src/helper.ts b/type-script-helper/src/helper.ts new file mode 100644 index 0000000..e5b73bc --- /dev/null +++ b/type-script-helper/src/helper.ts @@ -0,0 +1,246 @@ +import * as vscode from 'vscode'; +import { stringify } from 'querystring'; + +type ArrayTransformer = (lines: string[]) => string[]; +type SortingAlgorithm = (a: string, b: string) => number; + +enum LinesAction { + addCSharpComment, + addVBComment, + convertToRegularExpression, + expandSql, + prettySql, + removeComment, + sortNormal, + unwrapSql, + wrapSqlCSharp, + wrapSqlVB +} + +function removeBlanks(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + if (lines[i].trim() === '') { + lines.splice(i, 1); + i--; + } + } +} + +function getLines(textEditor: vscode.TextEditor, startLine: number, endLine: number) { + let results: string[] = []; + for (let i = startLine; i <= endLine; i++) { + results.push(textEditor.document.lineAt(i).text); + } + return results; +} + +function addCSharpCommentLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = '//' + lines[i].trim(); + } +} + +function addVBCommentLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = "'" + lines[i].trim(); + } +} + +function convertToRegularExpressionLogic(lines: string[]): string[] { + let results: string[]; + let result: string = ""; + let explicitLines = 50; + for (let i = 0; i < lines.length - 1 && i < explicitLines; ++i) { + result = result + lines[i].trim(). + split('\\').join('\\\\'). + split('(').join('\\('). + split(')').join('\\)'). + split('[').join('\\['). + split(']').join('\\]'). + split('.').join('\\.'). + split('*').join('\\*'). + split('+').join('\\+'). + split('?').join('\\?'). + split('|').join('\\|'). + split('$').join('\\$'). + split('^').join('\\^') + + '~'; + } + for (let i = explicitLines; i < lines.length - 1; ++i) { + result = result + '.*~'; + } + result = result. + substring(0, result.length - 1). + split('~').join('\\r\\n\?\\s\*'); + results = [result]; + return results; +} + +function expandSqlLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = ' ' + lines[i]; + lines[i] = lines[i]. + split(' select ').join(' SELECT\r\n'). + split(' from ').join('\r\n FROM '). + split(' where ').join('\r\n WHERE '). + split(' and ').join('\r\n and '). + split(' join ').join('\r\n join '). + split(' left join ').join('\r\n left join '). + split(' on ').join('\r\n ON '). + split(' group by ').join('\r\n GROUP BY '). + split(' order by ').join('\r\n ORDER BY '). + split(' SELECT ').join(' SELECT\r\n'). + split(' FROM ').join('\r\n FROM '). + split(' WHERE ').join('\r\n WHERE '). + split(' AND ').join('\r\n AND '). + split(' JOIN ').join('\r\n JOIN '). + split(' LEFT JOIN ').join('\r\n LEFT JOIN '). + split(' ON ').join('\r\n ON '). + split(' GROUP BY ').join('\r\n GROUP BY '). + split(' ORDER BY ').join('\r\n ORDER BY '). + split('\r\n\r\n').join('\r\n'). + trim(); + } + removeBlanks(lines); + prettySqlLogic(lines); +} + +function prettySqlLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = ' ' + lines[i]; + lines[i] = lines[i]. + split(' select ').join(' SELECT '). + split(' distinct ').join(' DISTINCT '). + split(' as ').join(' AS '). + split(' from ').join(' FROM '). + split(' where ').join(' WHERE '). + split(' and ').join(' AND '). + split(' join ').join(' JOIN '). + split(' left join ').join(' LEFT JOIN '). + split(' on ').join(' ON '). + split(' group by ').join(' GROUP BY '). + split(' order by ').join(' ORDER BY '). + split('\r\n\r\n').join('\r\n'). + trim(); + } + removeBlanks(lines); +} + +function makeSorter(algorithm?: SortingAlgorithm): ArrayTransformer { + return function (lines: string[]): string[] { + return lines.sort(algorithm); + }; +} + +function removeCommentLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = lines[i].trim(); + if(lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') { + lines[i] = lines[i].substr(2); + } + if(lines[i].length > 0 && lines[i][0] === "'") { + lines[i] = lines[i].substr(1); + } + } +} + +function sortNormalLogic(lines: string[]): void { + var transformers: ArrayTransformer[] = []; + transformers.push(makeSorter()); + + removeBlanks(lines); + + lines = transformers.reduce((currentLines, transform) => transform(currentLines), lines); +} + +function unwrapSqlLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = "//" + lines[i]. + split('sql = "').join(''). + split('sql = sql & "').join(''). + split('sql.Append("').join(''). + split('.Append("').join(''). + split('Append("').join(''). + split('");').join(''). + split('").').join(''). + split('")').join(''). + split('" & ').join('$'). + split(' & "').join('$'). + split('"').join(''). + trim(); + } +} + +function wrapSqlCSharpLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = lines[i].trim(); + if(lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') { + lines[i] = lines[i].substr(2); + } + lines[i] = 'Append(" ' + lines[i] + ' ").'; + } + if(lines.length > 0) { + lines[0] = 'sql.' + lines[0]; + lines[lines.length - 1] = lines[lines.length - 1].split(' ").').join(' ");'); + } +} + +function wrapSqlVBLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = lines[i].trim(); + if(lines[i].length > 0 && lines[i][0] === "'") { + lines[i] = lines[i].substr(1); + } + lines[i] = 'Append(" ' + lines[i] + ' ").'; + } + if(lines.length > 0) { + lines[0] = 'sql.' + lines[0]; + } +} + +function returnLines(textEditor: vscode.TextEditor, startLine: number, endLine: number, lines: string[]) { + return textEditor.edit(editBuilder => { + const range = new vscode.Range(startLine, 0, endLine, textEditor.document.lineAt(endLine).text.length); + editBuilder.replace(range, lines.join('\n')); + }); +} + +function linesFunction(linesAction: LinesAction): Thenable | undefined { + const textEditor = vscode.window.activeTextEditor; + if (!textEditor) { + return undefined; + } + var startLine = 0; + var endLine = textEditor.document.lineCount - 1; + const selection = textEditor.selection; + if (!selection.isEmpty) { + startLine = selection.start.line; + endLine = selection.end.line; + } + let lines: string[] = getLines(textEditor, startLine, endLine); + switch (linesAction) { + case LinesAction.addCSharpComment: { addCSharpCommentLogic(lines); break; } + case LinesAction.addVBComment: { addVBCommentLogic(lines); break; } + case LinesAction.convertToRegularExpression: { lines = convertToRegularExpressionLogic(lines); break; } + case LinesAction.expandSql: { expandSqlLogic(lines); break; } + case LinesAction.prettySql: { prettySqlLogic(lines); break; } + case LinesAction.removeComment: { removeCommentLogic(lines); break; } + case LinesAction.sortNormal: { sortNormalLogic(lines); break; } + case LinesAction.unwrapSql: { unwrapSqlLogic(lines); break; } + case LinesAction.wrapSqlCSharp: { wrapSqlCSharpLogic(lines); break; } + case LinesAction.wrapSqlVB: { wrapSqlVBLogic(lines); break; } + default: { throw new Error(); } + } + return returnLines(textEditor, startLine, endLine, lines); +} + +export const addCSharpComment = () => linesFunction(LinesAction.addCSharpComment); +export const addVBComment = () => linesFunction(LinesAction.addVBComment); +export const convertToRegularExpression = () => linesFunction(LinesAction.convertToRegularExpression); +export const expandSql = () => linesFunction(LinesAction.expandSql); +export const prettySql = () => linesFunction(LinesAction.prettySql); +export const removeComment = () => linesFunction(LinesAction.removeComment); +export const sortNormal = () => linesFunction(LinesAction.sortNormal); +export const unwrapSql = () => linesFunction(LinesAction.unwrapSql); +export const wrapSqlCSharp = () => linesFunction(LinesAction.wrapSqlCSharp); +export const wrapSqlVB = () => linesFunction(LinesAction.wrapSqlVB); \ No newline at end of file diff --git a/type-script-helper/src/test/runTest.ts b/type-script-helper/src/test/runTest.ts new file mode 100644 index 0000000..1eabfa3 --- /dev/null +++ b/type-script-helper/src/test/runTest.ts @@ -0,0 +1,23 @@ +import * as path from 'path'; + +import { runTests } from 'vscode-test'; + +async function main() { + try { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + const extensionDevelopmentPath = path.resolve(__dirname, '../../'); + + // The path to test runner + // Passed to --extensionTestsPath + const extensionTestsPath = path.resolve(__dirname, './suite/index'); + + // Download VS Code, unzip it and run the integration test + await runTests({ extensionDevelopmentPath, extensionTestsPath }); + } catch (err) { + console.error('Failed to run tests'); + process.exit(1); + } +} + +main(); diff --git a/type-script-helper/src/test/suite/extension.test.ts b/type-script-helper/src/test/suite/extension.test.ts new file mode 100644 index 0000000..d59ba91 --- /dev/null +++ b/type-script-helper/src/test/suite/extension.test.ts @@ -0,0 +1,15 @@ +import * as assert from 'assert'; + +// You can import and use all API from the 'vscode' module +// as well as import your extension to test it +import * as vscode from 'vscode'; +// import * as myExtension from '../extension'; + +suite('Extension Test Suite', () => { + vscode.window.showInformationMessage('Start all tests.'); + + test('Sample test', () => { + assert.equal(-1, [1, 2, 3].indexOf(5)); + assert.equal(-1, [1, 2, 3].indexOf(0)); + }); +}); diff --git a/type-script-helper/src/test/suite/index.ts b/type-script-helper/src/test/suite/index.ts new file mode 100644 index 0000000..2cd152c --- /dev/null +++ b/type-script-helper/src/test/suite/index.ts @@ -0,0 +1,37 @@ +import * as path from 'path'; +import * as Mocha from 'mocha'; +import * as glob from 'glob'; + +export function run(): Promise { + // Create the mocha test + const mocha = new Mocha({ + ui: 'tdd', + }); + mocha.useColors(true); + + const testsRoot = path.resolve(__dirname, '..'); + + return new Promise((c, e) => { + glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { + if (err) { + return e(err); + } + + // Add files to the test suite + files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); + + try { + // Run the mocha test + mocha.run(failures => { + if (failures > 0) { + e(new Error(`${failures} tests failed.`)); + } else { + c(); + } + }); + } catch (err) { + e(err); + } + }); + }); +} diff --git a/type-script-helper/tsconfig.json b/type-script-helper/tsconfig.json new file mode 100644 index 0000000..b65c745 --- /dev/null +++ b/type-script-helper/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "outDir": "out", + "lib": [ + "es6" + ], + "sourceMap": true, + "rootDir": "src", + "strict": true /* enable all strict type-checking options */ + /* Additional Checks */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + }, + "exclude": [ + "node_modules", + ".vscode-test" + ] +} diff --git a/type-script-helper/tslint.json b/type-script-helper/tslint.json new file mode 100644 index 0000000..c81ff28 --- /dev/null +++ b/type-script-helper/tslint.json @@ -0,0 +1,15 @@ +{ + "rules": { + "no-string-throw": true, + "no-unused-expression": true, + "no-duplicate-variable": true, + "curly": true, + "class-name": true, + "semicolon": [ + true, + "always" + ], + "triple-equals": true + }, + "defaultSeverity": "warning" +} diff --git a/type-script-helper/vsc-extension-quickstart.md b/type-script-helper/vsc-extension-quickstart.md new file mode 100644 index 0000000..b510bff --- /dev/null +++ b/type-script-helper/vsc-extension-quickstart.md @@ -0,0 +1,42 @@ +# Welcome to your VS Code Extension + +## What's in the folder + +* This folder contains all of the files necessary for your extension. +* `package.json` - this is the manifest file in which you declare your extension and command. + * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. +* `src/extension.ts` - this is the main file where you will provide the implementation of your command. + * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. + * We pass the function containing the implementation of the command as the second parameter to `registerCommand`. + +## Get up and running straight away + +* Press `F5` to open a new window with your extension loaded. +* Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`. +* Set breakpoints in your code inside `src/extension.ts` to debug your extension. +* Find output from your extension in the debug console. + +## Make changes + +* You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`. +* You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. + + +## Explore the API + +* You can open the full set of our API when you open the file `node_modules/@types/vscode/index.d.ts`. + +## Run tests + +* Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`. +* Press `F5` to run the tests in a new window with your extension loaded. +* See the output of the test result in the debug console. +* Make changes to `src/test/suite/extension.test.ts` or create new test files inside the `test/suite` folder. + * The provided test runner will only consider files matching the name pattern `**.test.ts`. + * You can create folders inside the `test` folder to structure your tests any way you want. + +## Go further + + * Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/bundling-extension). + * [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace. + * Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration). From 25d6cde0d2fc0df166f17d6036d6b53e0af74939 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Wed, 26 Feb 2020 11:48:52 -0700 Subject: [PATCH 02/14] Added listToListFamily --- type-script-helper-1.2.0.vsix | Bin 0 -> 6013 bytes type-script-helper/README.md | 11 ++++++++++- type-script-helper/package.json | 8 ++++++-- type-script-helper/src/extension.ts | 1 + type-script-helper/src/helper.ts | 9 +++++++++ 5 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 type-script-helper-1.2.0.vsix diff --git a/type-script-helper-1.2.0.vsix b/type-script-helper-1.2.0.vsix new file mode 100644 index 0000000000000000000000000000000000000000..576fb351b814ddb6011476a11dd18ad561cc4fd0 GIT binary patch literal 6013 zcmZ`-1yEI8yFPH}mQDfbI)tQfly0O!8tKkMNOzZXcStu#gES%_-JJ@DmWGRSuYP{s z|6hCdthHvZd1k${-{*}-K?Vqi3jiP?0nT(Z6>44$bf&`s02oLB06qW!Fm{C)+c=ur z+JKxL&0VeE+L)UdJ3`u2b!_L^a6JzzLrz|6mw;teC3}68sLe{h<{TKuhO&l+8%i{E z4|&~HY+&uqOesO>nR9~Z5g7QfpD4dWz*e3wF zC30|{Kj7Zp*+=rh0Cqp$vyY9V2r<=X$V+U72hpMBZ#k3577sH<cP0EcFKEBuwY$}ySSO{zP5Q{DM`Fa$y1QMV5uqS5X{!q8iZV7k(^9= zZ_C{2E^J3|+{9oW29ZWbI79f78-1Kl`Vo{Zi_dnz>`R(z_MY8!P>;<9~fpMGS)JnT*5;(Rofxr4hZ%L8gJPwPDh zc9g83S&?`);v1LpD11+SzA$B8%JQ(3;=-hIBSX6+B|wRL{H_Now1`1$kp1)Gp5?6n+;9W z#XB$?T$q+akFr2Cekln-kHi&squX!DW>(9WB`-6I@Jzl_tZnSL{m$TJW91Aur+4`FT#X`h}PE zG*7T}|43jzK#X)vn@XR~T`c|1_QtVQtFd8(u^a{F)G0*ID#u$=XA?7!;mdLkJ`w0+ z_Q(CWm;F=^1XY9bV`8_&F?W)=(Jxu!aO*7ATw3lC|7|q1Q}Jchqp|0Y@4raQDk3TL zT0%@#UIJuoq#9Li1Ivyj>h9eeVwufbAs_rfVO)t4CCipqi?Gu8Fm&^f{cC|_qg!4| zBU#jPVajFfT(U@nWUg~Wz|9sOqk_EE8C`8b7gmW>lBli4X^<93@ii+jQ#chs_*Zg;xqx4~(+xD74Vuhr6ubLUzG zR=ibN!Y2xjvOavb<16|ksl}%gxo0meTrm(ytPtQ!D!@xpccpjDD4H^Wk!l7}V*CQYM%23{fODjh?|M4z zw1rX;k``ZZN_@S1LrKS1z!`BSTEfJXDu7PK)KG;_Dn@VjMjMfK40F=Lcuw2ZUP7+O zx=!v;^}Q@Vtn#|-hpeFxk7mR{G>n&MXQw5l@h@n%g;2#Enav)0`7k9Sgj$5^54PP! z8-T0wD%JYvZ1d97O3G~NmaK{^ykug97dAJ=O~a}g^TJbfZD#U@5RSWbE#I-v(_@DS zqX)E7)?CrK$0gEE#^L#&u){_zpB{`9=+uz!ku5}qfo2imbG?E^MP2aL=mQ6@)ullDFDgWFiv{R}rt%Fi%_ zh~#oG>S7550IrY${}+q@6J-hhA7#yqt?Y~)9{IYZY3;bcjds8M7}rL=PdOYgzP`|9 zJ?Jg2t#@3{j5BGJsmU~8Zy?rCVqh?z&hPM~rctC2n|H`4Z_#==%W(#vK*ECS;v6T; zPksb!xeA^I5^b}2s%33d? zr(_UsWEpye?9VHdbW9ClpBIMfkO%vfi;J7H4HSrs#Yjgt(uEQr#2aK3!FY?~yM7fW zKU@(x!yJoRbL_TX%J5GS$<45P*)KHCTfo?|pLbo-s6DMnJ~YR?8NX@F@!>cL(vH#1 zo>|x~fYgCZ`)P{GKn-;U!M`_J%i^w)Uw-BiPr(dzo*@h}6A^TMpZ?G_awe zL7|qRYgUhzKFY(^kEPO|TMJCI3id*yZ=9pLYlipFS`W}NrMVR0uxq2HCQHpA{WM4x z089cSZ4DDPyD7a2Etcvp0!QZfWstP04rF)CTMve5$B-2qqoH*=cS{XD8#ke~p-Y^p znOpeOzKBhH$AFAN37!LSk)d}N^Jpya2b$8iH&uTXwa&jRDatTPo`8B#M4IG5d52RJ zcog>6lS*x z83GjKp&bJP-1K4ZkOj|(>Wx)Sm6df5mFO9&b5ToQJejN`FSfwNB6LsBtZrsW)?9jh z+@OM3KFo3p$4pH}*EM(=7njUejHr4nnhMSgBS2M3qZfp}ETT*vchih`splo#ptMu$5e4}#iI63U&eTS!WQsivtk4?F8*?gkjn8p7 zOt8YM(v+xTl`BXC_9((_Q`6WMn`X9D26$1aT-Fzo=EnDBy7;13>hiIJ(THc$2jMa9 zPh?vsQTluM&pcK*(=&*E8154;xBtjRiklD2aK3)n(DLJ}()lLF8uLcCRe;x{sUu`C z6vpGG6D{5)ZOS<{!8xV(N^+Sgks9|4REZ9=E5o=~XRFpZ-uu->rx=?H=txKsTb8*$ zE2u}t#PP}WJ2BNCZJS)M6j#-$D6j@$)%1)7_k$Ug;Ja~CZ>1y(R-r6o#9}{>VNH@U zd%@`9m{x{?>ma|}7p3pY=@f1bYJ4G1z?_{)RZbfVPDYJNEAU=nrV|)v9gh9Hixj6= z2WC&>0tQaLlzCKcAtQ_2k%kYhWe-kknwlmc5ZDcomPEA%GkHsWP(w7Q(&X%idX+BD z#&8oH7(}kzw00!L^K0BcEw=|p`ZcJ$4s zBR;?fv6P_YLw6t8MY=Q#L!J~DzSRNrkb(|*J^^B;IVUxI^V@6vd%noG%E8vA)!ZZAuVc4=V{ zl9r%fq+$ z(5^&5Y5%H4qlRzc!Ua$+c@Sm$N$en+xo7`@ivil!BRi{jG8GNKfyJ1 z_5_oS8stU&49If#`AW7*9f7jm;ka=md#IP4G1C0&W8&0FjHo^n$8b~hw%j&FMYC`G zo)xrvg6dyQ1fb#lY65)mb=(Hp<#>%QikYqN^=@tO_-%;W?UzE%;Uc2U8n9k zujhMl5ylcBS6(IxP*77R-nS05_gIgV7>hJiZa<)^3|4bCzPVLkIBX0b=ZHh<3Eh7q zAMYc=zI~=9@*#z&1k1cENYpnFcCt=IBx(q@H#A>aB&t&wM(JrWrRXOSA>*JAlm&1i zPYkwZVkoK3rXBv3rAhccJ}qnaHeHkl%y@nsgnn#GrE{N`?kDDZ^0f-+7!{!jc)lEzpNWb&VfOEJYg)^|3Z+p ztWSA@A1sd7$SqU<4Tg&iH;ixokmg`{Hss@B{~~;EJfF9K9(7-^I&iUh7yNzw%UEX> zdp&_87{Nwui-5js;aL;|rj|Lc0CCU(27;m{|H+U|S;S<^d@vSLR2P@dF`(N>bn3jc z$I`K@LO57GR4=0=Pugr4w7AD~zdV*4Nt+TKeWhH@NtY88QZ6>yGe9y{ok6<%k;*4z1BMlYaOR^Zu@Msll<_pvLRDW1AiJU)pK;`=90OXAC2MX?u9e0{6OMhIMy&vH#*pNj1%$wG- z|603Glx9)wu|g0E#7#*%xcmSdkLfx6teZe!;b-RSphwabrJsguR=W_0H|=N8{~3Z+ zLrcD=b8BmwlfWCmc8`Q@N$%Pi7Cl`+hFt%OG_*bKE2y<_h8ckZ*!wKxgGk02ud5=y zAKD-R)k^4$Rig0e(K(U*=VNtk@B&vH$n&K{mb`N(S?^VR)c3@T5&nzUOh-x;eKwZc z?DJl+Tn@xReYaj&sUsU_Aj{hMS3g<$EcUw7;IXD2Li@$iUwR#Gc&}jTqqYJ6`1Pm0 z@w@S5RT2{tl@ojH^V?$Olo!~rf(~z(oChe^^hq!g3!4;E1q;{vYo-Y=ox6(OLR+;!BI`5@aKvt}#r5NQ zqFZ&WhL@pkMe3%A#>M2eA72m@f$79!WhObA2__<7w3l0Es=f2LoH$xu{nQlovPeB& ziuV)A4|Z=bd<@M~9eJLlAw8$w?KSQuEj>Fa2>>_`jo)X*7k&na+Kz$Ac7@`KR<)_5 z3N9><;jcy?KdtF$V5)O)QVBHCa{|b}#%{OV=4-8OVgN;)3R{*j^SCzZ-bPYW4Nt_K z!Rfz^R~OC$$Jhs&r+US2uDv{$r778kXT)LDViE2rdCozMUVl-ZW};z6<#H?9Fy1Op z!!u`SXX_fif5!aa?3}uj!XZV?3;1}XZIVV>Av?Q!&tfN4Pi56?mp1!1#@`Cq zKNw?=I`4nb!~O>NTTS{0p!d<~eqZ8W+R`tKU#;JtP2o?q=GSQOEr$CO<8STeZ=65V z)z234*J$w7eiW?#xyw(S-woxTAU`wPpKSV>*?x@%UlgoALH^8hzcBtA?|xy_`BpvB b@SltPW}$)%Ji^aIh>y?0BVi-(e(wGU+StE! literal 0 HcmV?d00001 diff --git a/type-script-helper/README.md b/type-script-helper/README.md index 3f6ad48..baa030a 100644 --- a/type-script-helper/README.md +++ b/type-script-helper/README.md @@ -20,13 +20,22 @@ None ## Release Notes -cd "C:\Users\phares\source\yo_vscode" +L: + +cd "L:\GitHub\YO-VSCode" + yo code + Type Script Helper + (type-script-helper) + Modify .package + Add publisher + cd type-script-helper + vsce package F1 diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 06a1252..aa248f4 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -3,8 +3,9 @@ "displayName": "Type Script Helper", "description": "Helper for VS Code in TypeScript", "publisher": "IFX", - "version": "1.1.5", - "engines": { + "repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper", + "version": "1.2.0", + "engines": { "vscode": "^1.40.0" }, "categories": [ @@ -16,6 +17,7 @@ "onCommand:helper.addVBComment", "onCommand:helper.convertToRegularExpression", "onCommand:helper.expandSql", + "onCommand:helper.listToListFamily", "onCommand:helper.prettySql", "onCommand:helper.removeComment", "onCommand:helper.sortNormal", @@ -29,6 +31,8 @@ { "command": "helper.addVBComment", "title": "Add VB Comment" }, { "command": "helper.expandSql", "title": "Expand Sql" }, { "command": "helper.convertToRegularExpression", "title": "Convert to Regular Expression" }, + { "command": "helper.expandSql", "title": "Expand Sql" }, + { "command": "helper.listToListFamily", "title": "List to list family (Kristy, Mike ...)" }, { "command": "helper.prettySql", "title": "Pretty Sql" }, { "command": "helper.removeComment", "title": "Remove comment" }, { "command": "helper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index 08e7bfa..39bf076 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -29,6 +29,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('helper.addVBComment', helper.addVBComment), vscode.commands.registerCommand('helper.convertToRegularExpression', helper.convertToRegularExpression), vscode.commands.registerCommand('helper.expandSql', helper.expandSql), + vscode.commands.registerCommand('helper.listToListFamily', helper.listToListFamily), vscode.commands.registerCommand('helper.prettySql', helper.prettySql), vscode.commands.registerCommand('helper.removeComment', helper.removeComment), vscode.commands.registerCommand('helper.sortNormal', helper.sortNormal), diff --git a/type-script-helper/src/helper.ts b/type-script-helper/src/helper.ts index e5b73bc..5c07240 100644 --- a/type-script-helper/src/helper.ts +++ b/type-script-helper/src/helper.ts @@ -9,6 +9,7 @@ enum LinesAction { addVBComment, convertToRegularExpression, expandSql, + listToListFamily, prettySql, removeComment, sortNormal, @@ -105,6 +106,12 @@ function expandSqlLogic(lines: string[]): void { prettySqlLogic(lines); } +function listToListFamilyLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + lines[i] = "Kristy" + lines[i].trim() + "Mike" + lines[i].trim() + "Jason" + lines[i].trim() + "Mackenzie" + lines[i].trim() + "Logan" + lines[i].trim() + "Lilly" + lines[i].trim() + "Chelsea" + lines[i].trim() + "Pipper" + lines[i].trim(); + } +} + function prettySqlLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = ' ' + lines[i]; @@ -223,6 +230,7 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.addVBComment: { addVBCommentLogic(lines); break; } case LinesAction.convertToRegularExpression: { lines = convertToRegularExpressionLogic(lines); break; } case LinesAction.expandSql: { expandSqlLogic(lines); break; } + case LinesAction.listToListFamily: { listToListFamilyLogic(lines); break; } case LinesAction.prettySql: { prettySqlLogic(lines); break; } case LinesAction.removeComment: { removeCommentLogic(lines); break; } case LinesAction.sortNormal: { sortNormalLogic(lines); break; } @@ -238,6 +246,7 @@ export const addCSharpComment = () => linesFunction(LinesAction.addCSharpComment export const addVBComment = () => linesFunction(LinesAction.addVBComment); export const convertToRegularExpression = () => linesFunction(LinesAction.convertToRegularExpression); export const expandSql = () => linesFunction(LinesAction.expandSql); +export const listToListFamily = () => linesFunction(LinesAction.listToListFamily); export const prettySql = () => linesFunction(LinesAction.prettySql); export const removeComment = () => linesFunction(LinesAction.removeComment); export const sortNormal = () => linesFunction(LinesAction.sortNormal); From 615bbd23a770f08bc30c4e4d4074481be43d4a54 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Wed, 26 Feb 2020 11:50:22 -0700 Subject: [PATCH 03/14] Repo --- type-script-helper/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/type-script-helper/package.json b/type-script-helper/package.json index aa248f4..fcd2390 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -29,7 +29,6 @@ "commands": [ { "command": "helper.addCSharpComment", "title": "Add C# Comment" }, { "command": "helper.addVBComment", "title": "Add VB Comment" }, - { "command": "helper.expandSql", "title": "Expand Sql" }, { "command": "helper.convertToRegularExpression", "title": "Convert to Regular Expression" }, { "command": "helper.expandSql", "title": "Expand Sql" }, { "command": "helper.listToListFamily", "title": "List to list family (Kristy, Mike ...)" }, From b45f007134baaa354902baa17d5fdcdb8a112389 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Wed, 26 Feb 2020 12:01:45 -0700 Subject: [PATCH 04/14] listToListWrappedComma --- .gitignore | 4 ++++ type-script-helper-1.2.1.vsix | Bin 0 -> 6096 bytes type-script-helper/package.json | 4 +++- type-script-helper/src/extension.ts | 1 + type-script-helper/src/helper.ts | 9 +++++++++ 5 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 type-script-helper-1.2.1.vsix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fa53d17 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ + +type-script-helper-1.1.6.vsix +type-script-helper-1.1.7.vsix +type-script-helper-1.1.8.vsix diff --git a/type-script-helper-1.2.1.vsix b/type-script-helper-1.2.1.vsix new file mode 100644 index 0000000000000000000000000000000000000000..9b9ed57c53272d76c5c16f515bc1f38b29daa668 GIT binary patch literal 6096 zcmZ`-1yCJLv%R=Wkl-N%3wj|C+}+*XU4sO7w*VJ+cbAL1B@iUIySoGl`k-DVf4=X% zzqht_W_Rnj`3=KCF1@{bk zJ=mQu{C1|G&vFaYAs=#}P?BpdcUkb&!<-2`&W zgzgBcYRCh>zLE8aG!>SR94p}WG@22rdU06xS~8r_A1alE;*K)xR($)A$V;=qQM`hq zGA&E}_i4lsV{3ZCC0sHd7|=hE2{*o1Tlfwkz-of3s+h_vb z;mJ43z+zPQcv@+H5{X{4Zi?$R(Q{kdJhv1hSk0~qG+MAs5cCLU=xPl@sIW*1dGlyX z+vzTFO1U;GqB0L1?#eJm2$}7NxM)ba`z8mX&9FFfrb-)88GBfy zZuyKC?mK@;B!FP0vCP1!YU4{pa-1GGv8JX(Q2O1i*+k}DuS=N7D{G$nWLid)m6lDxCCQ)gMR0H>)br?wa%yMLc=caT z{L3_+JmnPA8K}G8CsSq!e0OFU-$6(g2$a($AB>aTX{mguDauu9EYq4^|JH{e z7NK9cL~wglP@AN>Si}Ut%HNh#28L$meDG=PdJ;H8sq6^v zbPz4Jse|A#G#S1`o9bVeLKtoNUYf`ge{%flM-LUgG}dc*31!`43K z)GJ?=kdv?InB;k$$CnpHylIhQBf9pkaSi-Iq|m^wpG_TI%1>@wDa#SMpVfD~6Sc}7 zHzc`ve!I(dMF|!U*p+n!RegBR}@i zqh=J2EITf?%?aw(XRd_yVgV&hM@#mI_!g5PC5SNX<@=MMEZ8rg5tgti{X8dH{ld$7 znn`nVl!^_#P@#q_~ z8V^A{1EfzlRo`UCgzxdAAH;IL@Bl$rbrx%%TOQ&5>GW}@JWtiLvzO2JKS&G|6yui> z6_%0}rMEUxj;gkSWJDKo_wEa^%wnsM4K9)!S0F*mv}M!8tu#If-8^CZkuTQZmYdu_ z6t!HCd=opDBp4x<;~Wuiw}nkDCu{YSvbM4!psdaGJ1xPfX0k=eFnyG@(LBW{p8QrTUPJLMPs;8ZLuaErB!N@{V=Tr1a# zw=!M$ME+@J(SaR%VYiqjyLRNBy#&91q}m$N|N033oT${E6VV5^e0gPZJiu} ze`fR+4*4o8wi68KUMAy@!MR+_@gi5K_!tC&QU*{*IB4)BtnDmsqSEJNCd}raM&@Kd zjuFy>w{qk=EhoqAcUGnf>d*%fUl%tYjz=1Pp_tHbHKHSS5NPMvOZy!t5SU);o!_y} zD-P3yg18&~u|e4FP^Q!YcX)j#Cq2eda?m(Q6;=i8G9(j&jM=no8m;X%yPZ()Z*S3dHj90pBgv zM`P5*qP$v}l7vl}xj=TE-*!zalo9Cw9sIG}KbU!;**%reV4s@u*msR;z!)q0~7fF5}7(FYT`O3`vr^KmP>3fM#nAi*`*WOM$ zE&deP#BL5|(H}QzB$R0i_#$rarm(T4GlF8aG}VxNKVY%ZRzQJv;VdMr=d|4HMWqX^ z>!gX5Vx%}B71yQqiRZ<5mi&!i;fP^xU8j_vIeH-{A>#1e{Hc!}O*DePg}?r2+g%6@ zwJNJrZG^%wFEOp4$S`9GlwV;Z5-zy5xhoD_Z$eUFzxrXYWpNj@%>G!#%S(E88o*U8xxNAm^w({087Y};887k2hEYDRxr`4%BIug~=%Cbvv*6wT5*95{c$<@ z5l*{ef=${Y>w1~c7#`*G(b+gc+z5&t5oWkhU$x>~(5Jx1E0B?<&Nqd1W-WK7f#6e!mT=xlBFv$jMQ2xZQJ+b9 zQS5U4d2%FyVrPnRV_3NhuP2B_^wYA2TyTHkmXn696b2X+#)#t+e%h0->zUmc))&Z$ z7Eili#v1(!0o2&tcyJGSfS6qdxS1Tef|s(&i*wCeeGw;j_l-zvkI&%nef z*we-x6GICr_5?;6WH!6Ft|xyj*;Z>pYfhjwG`G z4Mq5GFW6B-u(mAdwXe$Ci^Lr!hu%-W zg~9xAx$rv8YIj>C*#r6U4BS^(nwF{#yn+O_hNSxlZXt7jdH)GA?QJ)uUZUqi7<4y^ z9h*eI_M{DF=(hJJp)ujW=A`kQ>3ZGR?Jb7|3pVc4P{_JDU(hTGQQh=@3E=#OF?!MD z%i+OmX0HIuwRF%bn)nK(xDY4pk*iV&CwwrEcXWRfla)pRKL%4`lxz#EXnwPuOWUem z$Gml4c-q(Wf-_v^&dXf=!Qi|h?L{fV@lU@Nx;qvzS?(3_Uz2H10l7zygh)SVac~G5 z;kGx`j0;)k^_5s28YR)5w30-cR1d$O)a?O>ezy@`F z{E1th9gG&JMN)iAOSglDU8wDJbCDdwHVgup40+D3dWa%xC~Lr25Q-xdA1lik6u?an>H&uD5U*ZY=|WL4{bW#X zyg$rbZ3>TH`Z~r&1j-jYu!jeP?}@3Mr&>EIvIIM7P09fIwf|@e6t0uS0 z-m-PhQNpQaPadf{oDz?=`=)8vbXS&tJVYtXhCs0l!xLiWSG)m}8xm{871P53yc`7a zI7I=(+E+}4dfL9QAzShZ@jxjE9FgmDg^J11yi=iUsZ4BmyE(qcR4S*E@SF_BUKt;`^$Zk(e#Pl@lT^Pk6WrtA`h6v(+*Z2 zJuwP)X%yg+N=Wy7p+rY(Y+e?FKz{DxVg=%@*I|--^^kMq-1H!L4T! z^q9QcUwddcf1HWhC~x1t5Xc^J^@^FPr-n}JGQ8S4{h}iQsUur049QI2GHMjwAEIj- zbVJ>-;0UL+2?#Ik+>Ky*T+iW8`?;eH=}yQTNM|ZxvqGVVOO zSDpSfA8)a(GAFgIc|3!S@UT00iTj8_EWy`+yv>@QQtTnwb9g?h8VpehYh)W*EH`+; zvv$ywzX8r+mg?1~wDJa5f3qp|DZuIxk<6A{e>6(bqOlI9qlpoqKI{Q}>rddL@UL1l z<~ax#$UlBi96{HOF=7+xpGA0T!|fU3RqcRtD;d2}#}S_QoX6{14rE72Ivk`S21##t zj$vFKs&Zl<2+z#4plIYspJz3XLvOsg!btd;OYT27+WLiu{@xTd{v>1S27Cyun~t0~cs}R%BXRFl}~8 zS4}=F>A$Zh*3aCGVa%U79>THB&GZzjsvVv{KR2K81gAniT6@185?S87J*t7vMw$h} zYkm_SAc*fCR?css8bo14UEcM+I+{;5@}r9*HWSfzC!`nwVKKT3brhD+Kxm1u68@Z3 z68U5gi>f$1F%pmj3hc}4jH2h)C_ z)P(kilwpFG5z`aFz~@krN)bVXLZF^?f)AERN`T^MPVwP{r?7^j&>hs11yuGyH$bDk zLlcOxNv#ut46rvaZj}fnB;2Nh2|fsvglBmrVPy5N}V( zJ-LD1z^O*tAUO9moz>}n9h#70-*&n0KOS3uR74Jk+_lpX%84XjP(}#ZymMjfEDvAH zrO!l;L?KXcXV?*3HPP`3!e}M0i8$ZvEhNnoAGa{X$gd}@-0v+BTdI|YuU<{kns~)J zHVUVd-XX@tl6c7B=n``?^~hNi*uN0S={c~1!))mPBPdT(I6t7bd?v@>eSgHhTj5(w z!C5j_jrR`ZN+Ji=(HEu>Srwd^WgSqd49%upgf|s_;R7~U2U`VNWYvjUt$CHTA60)2 z9lyW&XaZX?$U}}`ZVlQSuN#|2cztXuUgi!?o-Jw7j<#{dW%QHs$@3|zSIkC6?A{rX zC~Ha>G;qc0Et_jL*1>3<0_EGvD$`L`y;+~wuCRx0lXK_AUm1AlOqy}1@ zgILR&yms@?fnrNCj*A=1^UGqW?mY@rTBIAv3dNStvJCr-iHZAghfZDVW;7Ry(p~Aa zT7`#Q(bt=68y{935RVapdQnM0`-lpNv|_OP+Qb69a3Z zmsQ^-+TIop*W23;FBJNJ$?T>M&c~$P_@-p`dHn+^^$vKStcO6U`JG}dk&TlSer$mJ zRL`Z9blQmAu_e{)D=Q`l>**GTffV_}(}MwK%dqI>t`28~)FDC0p3%3}SH1&f_w*U_ zzRIExzPn8b=WJH=5!s4z6zg#ulO(961IkoMZ+}_6?aKzMBhYo@P|jknjW)S8+8B6U z{DSvf)`j|vwF7!G?LOxT5MAR($=IJfPQ}nhd*b6yT(sG8e0fl}iEMa;c;W6@ zi`$6H^TFH<7Jilv+G3>@pNSiEa!2F* zm1Iqi01d97Nj`71#GpM9b!kycl7 zDK6bi9$q^4>&q7Mss%hzr&)jlMtd!m-^W)vRc9*L>8e(QZt}<OMIs1)AtO0c2$` z+AX))TWg!B=p!x!EX!zFT^e-mBgsg=Pk??x>*>d-3gmJ}+XtGbc*Sk5@mxxgm+Zn& zV^V9<33QY&eZWVlzb;QTQ8y#~d@lqZZY(0Hn4 zl1f-1HM{#rXD6Otc7Y%{r!GnHMpc}&wXB#6K9^gcdB$Rk(r{7ZScBG$kht(kE%}>^ zAuB9UwZYqK?K(Kg3ku0B`o80%M}|ANg@O4vzS5rRumaip&?$>u(`r`4n+6Q=;r13% zP7(r=7wW$YyuU@1I^UPkpS}Kv-1~2ge~W7W!5Dj%j{hHt?cV_Z7O4IM(Dxj4e-`l% zx#~B@Zvp7<&hkY7`fXs}V(7my{w)Xn8|UvL_R@#`Hn6Y7vj+a3wY=c`=}P|wd8v1Q zv+1SY{Wh?#DEi+Ze^ | undefined case LinesAction.convertToRegularExpression: { lines = convertToRegularExpressionLogic(lines); break; } case LinesAction.expandSql: { expandSqlLogic(lines); break; } case LinesAction.listToListFamily: { listToListFamilyLogic(lines); break; } + case LinesAction.listToListWrappedComma: { listToListWrappedCommaLogic(lines); break; } case LinesAction.prettySql: { prettySqlLogic(lines); break; } case LinesAction.removeComment: { removeCommentLogic(lines); break; } case LinesAction.sortNormal: { sortNormalLogic(lines); break; } @@ -247,6 +255,7 @@ export const addVBComment = () => linesFunction(LinesAction.addVBComment); export const convertToRegularExpression = () => linesFunction(LinesAction.convertToRegularExpression); export const expandSql = () => linesFunction(LinesAction.expandSql); export const listToListFamily = () => linesFunction(LinesAction.listToListFamily); +export const listToListWrappedComma = () => linesFunction(LinesAction.listToListWrappedComma); export const prettySql = () => linesFunction(LinesAction.prettySql); export const removeComment = () => linesFunction(LinesAction.removeComment); export const sortNormal = () => linesFunction(LinesAction.sortNormal); From ff449a9c5f8fecc00ae89f6518fe060575c7c1f0 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Sat, 13 Jun 2020 10:40:50 -0700 Subject: [PATCH 05/14] Create .sln --- .gitignore | 262 ++++++++++++++++++++++++++++++++++++++++++++++++++ YO-VSCode.sln | 13 +++ 2 files changed, 275 insertions(+) create mode 100644 YO-VSCode.sln diff --git a/.gitignore b/.gitignore index fa53d17..3777da2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,266 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +project.fragment.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +#*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Mike Phares type-script-helper-1.1.6.vsix type-script-helper-1.1.7.vsix type-script-helper-1.1.8.vsix diff --git a/YO-VSCode.sln b/YO-VSCode.sln new file mode 100644 index 0000000..3b610dd --- /dev/null +++ b/YO-VSCode.sln @@ -0,0 +1,13 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1169 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A47C35E0-F330-48D2-9FEE-B0B5C8396802} + EndGlobalSection +EndGlobal From 91cb50b18729d9d9acaaf36bfadaa508f127f288 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Sat, 11 Jul 2020 20:53:22 -0700 Subject: [PATCH 06/14] Sort by Length --- type-script-helper-1.2.2.vsix | Bin 0 -> 6261 bytes type-script-helper/package.json | 8 +++++--- type-script-helper/src/extension.ts | 3 ++- type-script-helper/src/helper.ts | 29 ++++++++++++++++++++-------- 4 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 type-script-helper-1.2.2.vsix diff --git a/type-script-helper-1.2.2.vsix b/type-script-helper-1.2.2.vsix new file mode 100644 index 0000000000000000000000000000000000000000..4328233f8a735b4c571113010a2d8646def58b9d GIT binary patch literal 6261 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 z z)5{~+GMvgk?dPxO$Q+99MrEL*@*>3%)H#WJL+|(2?serx=At*sS`R7l2^Y_x-ta?n z{7|v&4>PW5xFt(SUj)T@V;($iidS7d(FPp0`7k~??4Fjat!pww2J?jB+k{v4-UjRT z&WleZUs*d7$guX1u@n?0<)OhJw4ES5xi!s#=6@Qx@QYwHbR;FnaFUAGn+{8huMJ%bgMVuT z-!=~b}Wd?-wO)QG=4f>FtkfQ@;u{>*JlB1NlX-Wq|G3C&$Uh5uZU>j~L` z6`RRuizNe8DpNIpn79wZ_ zNpx*!44^XGSE@FLYL(faG}=@b&NebgGSaQpVl!yE&Dd3KJ@41|Sd}m#f`;MbOIe99 z-N&Ik#?QqMCCSK;#yzy?S-mxCn#KvmvVPA7CR~s7Qz%E6DW)WuOrG+9SE*s=q?mGr zmkbYn*2}5uUsRl16zJhXr&5emVs=>8NnI5yA`^-$4HTdpe69zdM1n?V3j4W}{OK`7 z=IL>3$W9|DW3v(TBZ@Ly?MGBQRHk-mrJ4jdMX_MQ=5{}^FY4GTKz4L=6AXc+-No;YgIo36*Vg?i|!H8$I*xvzw8(qS$Z! zz9OnFA9!7O<|~9oZL%$5&n2SIVIsQimAA6!2(wu0kG@MNxDW;;N&fJ_R)DIS zjjyn=A1mZ5nPuj4Kw)VHU&ES^>b2MrQ;Ruk*5m6Nj!|q5y%l#_m?t@8MB09NZ{AGP zjWUEkOgg*;8}u#FATOT)(rlh9fVrDp#wcYXpZm^r^E^ZAh1EMpw47Mj1e=O2sbnsv zLY5;SS(>6N3h5!xC(3s?VcfmNp{U{N_QQ;KyFmO;ZH|KMpZhXuXuXSOrEWylO@1cv z7Wwr@1?Ad{2vLo_NGji~s@5<_x|4M&`5*C6do>miZsaft!QnIBi}UtxaYdbO6;>+d zykq8F3aZfG@n1?@+i1s6Jg?T#nc1S~+G%#{p~mkIKVS%!_5>RC$WFq_1j#Sbm8MEx zO@hKXXi97~RVlv@k4hlE5svm7raz=arA$eaL-25>GTa&VC z822?L!e}~~XA$U)N*0Jz7&S7Jglby{!c3O-rFk z(eZK0qr>c^wyor_XjK8jp5Dgvr>c#+)%eH`bvu0@1dpmE- ztq#T*Y_e%Beh}_&V@M}GPDzULoc84qAh?7SzUO)ud|lxt&)*+CKALAwlVhDryoRFX z*ea62P|e;_wForLMjE*#>jIfaSVx^2@ONdd-rx{;%?G2;rmpuLvXZ}6js9tKw{PAP zC6HKog$}I8#)3Z*ssclcZBG|;74DzvDaLMPnjfCpP_8lAIc)!?=6gEJIAcMStckTs ze4_3Ki*3O*aO2JTc-h0w*-+5LvTCd1+6qDcZE$=3*mHM(n@Yze_2>(!Y6%Q0g0j&| zn=1>-^esp?#P=7av)bYsVxBa^I{I%)|Mn??5xpXxpFAD-r?;vUgX;jrnjtYJVqueVsz~9p*D|PP)cD%^{nn;m;!Fb`1>=!la6msN zxYkv;W@!@T9D!uhYfH~%-ZoQ3d|tSY*+N^jMk4LB406J0uK@;dVe40(Xy9gO+LCxG zqj52K{zxnciNti_v9**Q%M>KUr+0k2%usXheKmEwy!y2%TBt}fUxxQ9@dcZ&Abczp znVurgr$Gak-tTMNO&|jY87Y8Z9vZ*jia-1u9BMlTChIkdJ6h$Yin?IomstKP^vSd8 zo_dDbcP?td<_0bRMFpI8o9}$BHBEHPk!NByWsE%T4f=Ocl&^-T5`I22G)mMI%M*-s z47N)3N!(l$I+v#^-GQfnP7h)d>nP=5Cql2g{E}v_ZTZUW?oIttht z#z$Az)a?{@8A@J2vJwHLJV7JQIqNMN z6R6Ii4x=Z@i=s!Z6o|VC4+4v3gRjrpWoWVw9I9pPT?dzUrdNFnE9c?I3P-vhxE zQ^osFUw+~I5zK#s{3?Tgv*}kE{2lfFGgyCv{9P1(WBfPX{l=*EFMb-n|8(RJ3zg*H T5q^Dy_;f5i5jN=m{rP_YeDG*c literal 0 HcmV?d00001 diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 67a856a..ab9db72 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -4,7 +4,7 @@ "description": "Helper for VS Code in TypeScript", "publisher": "IFX", "repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper", - "version": "1.2.1", + "version": "1.2.2", "engines": { "vscode": "^1.40.0" }, @@ -24,7 +24,8 @@ "onCommand:helper.sortNormal", "onCommand:helper.unwrapSql", "onCommand:helper.wrapSqlCSharp", - "onCommand:helper.wrapSqlVB" + "onCommand:helper.wrapSqlVB", + "onCommand:helper.sortLength" ], "contributes": { "commands": [ @@ -39,7 +40,8 @@ { "command": "helper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, { "command": "helper.unwrapSql", "title": "Un-wrap Sql" }, { "command": "helper.wrapSqlCSharp", "title": "Wrap Sql for C#" }, - { "command": "helper.wrapSqlVB", "title": "Wrap Sql for VB" } + { "command": "helper.wrapSqlVB", "title": "Wrap Sql for VB" }, + { "command": "helper.sortLength", "title": "Sort by Length" } ], "keybindings": [ { diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index 5c37e5e..854999e 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -36,7 +36,8 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('helper.sortNormal', helper.sortNormal), vscode.commands.registerCommand('helper.unwrapSql', helper.unwrapSql), vscode.commands.registerCommand('helper.wrapSqlCSharp', helper.wrapSqlCSharp), - vscode.commands.registerCommand('helper.wrapSqlVB', helper.wrapSqlVB) + vscode.commands.registerCommand('helper.wrapSqlVB', helper.wrapSqlVB), + vscode.commands.registerCommand('helper.sortLength', helper.sortLength) ]; commands.forEach(command => context.subscriptions.push(command)); diff --git a/type-script-helper/src/helper.ts b/type-script-helper/src/helper.ts index 74e1252..45e2225 100644 --- a/type-script-helper/src/helper.ts +++ b/type-script-helper/src/helper.ts @@ -16,7 +16,8 @@ enum LinesAction { sortNormal, unwrapSql, wrapSqlCSharp, - wrapSqlVB + wrapSqlVB, + sortLength } function removeBlanks(lines: string[]): void { @@ -140,12 +141,6 @@ function prettySqlLogic(lines: string[]): void { removeBlanks(lines); } -function makeSorter(algorithm?: SortingAlgorithm): ArrayTransformer { - return function (lines: string[]): string[] { - return lines.sort(algorithm); - }; -} - function removeCommentLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = lines[i].trim(); @@ -158,6 +153,12 @@ function removeCommentLogic(lines: string[]): void { } } +function makeSorter(algorithm?: SortingAlgorithm): ArrayTransformer { + return function (lines: string[]): string[] { + return lines.sort(algorithm); + }; +} + function sortNormalLogic(lines: string[]): void { var transformers: ArrayTransformer[] = []; transformers.push(makeSorter()); @@ -212,6 +213,16 @@ function wrapSqlVBLogic(lines: string[]): void { } } +function sortLengthLogic(lines: string[]): void { + lines.sort(function(a, b) { + // ASC -> a.length - b.length + // DESC -> b.length - a.length + return a.length - b.length || // sort by length, if equal then + a.localeCompare(b); // sort by dictionary order + }); + removeBlanks(lines); +} + function returnLines(textEditor: vscode.TextEditor, startLine: number, endLine: number, lines: string[]) { return textEditor.edit(editBuilder => { const range = new vscode.Range(startLine, 0, endLine, textEditor.document.lineAt(endLine).text.length); @@ -245,6 +256,7 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.unwrapSql: { unwrapSqlLogic(lines); break; } case LinesAction.wrapSqlCSharp: { wrapSqlCSharpLogic(lines); break; } case LinesAction.wrapSqlVB: { wrapSqlVBLogic(lines); break; } + case LinesAction.sortLength: { sortLengthLogic(lines); break; } default: { throw new Error(); } } return returnLines(textEditor, startLine, endLine, lines); @@ -261,4 +273,5 @@ export const removeComment = () => linesFunction(LinesAction.removeComment); export const sortNormal = () => linesFunction(LinesAction.sortNormal); export const unwrapSql = () => linesFunction(LinesAction.unwrapSql); export const wrapSqlCSharp = () => linesFunction(LinesAction.wrapSqlCSharp); -export const wrapSqlVB = () => linesFunction(LinesAction.wrapSqlVB); \ No newline at end of file +export const wrapSqlVB = () => linesFunction(LinesAction.wrapSqlVB); +export const sortLength = () => linesFunction(LinesAction.sortLength); \ No newline at end of file From 63fe43adf00247fada953a6700f44782e4fe9a6f Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Sun, 12 Jul 2020 15:32:29 -0700 Subject: [PATCH 07/14] Cut each line after ||| --- type-script-helper-1.2.3.vsix | Bin 0 -> 6386 bytes type-script-helper/README.md | 4 ++-- type-script-helper/package.json | 8 +++++--- type-script-helper/src/extension.ts | 3 ++- type-script-helper/src/helper.ts | 17 +++++++++++++++-- 5 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 type-script-helper-1.2.3.vsix diff --git a/type-script-helper-1.2.3.vsix b/type-script-helper-1.2.3.vsix new file mode 100644 index 0000000000000000000000000000000000000000..f24837075520f7a928f0830e56341bdd24264141 GIT binary patch literal 6386 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 literal 0 HcmV?d00001 diff --git a/type-script-helper/README.md b/type-script-helper/README.md index baa030a..2518eb0 100644 --- a/type-script-helper/README.md +++ b/type-script-helper/README.md @@ -22,7 +22,7 @@ None L: -cd "L:\GitHub\YO-VSCode" +cd "L:\GitHub\YO-VSCode\type-script-helper" yo code @@ -34,7 +34,7 @@ Modify .package Add publisher -cd type-script-helper +cd "L:\GitHub\YO-VSCode\type-script-helper" vsce package diff --git a/type-script-helper/package.json b/type-script-helper/package.json index ab9db72..5233d4f 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -4,7 +4,7 @@ "description": "Helper for VS Code in TypeScript", "publisher": "IFX", "repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper", - "version": "1.2.2", + "version": "1.2.3", "engines": { "vscode": "^1.40.0" }, @@ -25,7 +25,8 @@ "onCommand:helper.unwrapSql", "onCommand:helper.wrapSqlCSharp", "onCommand:helper.wrapSqlVB", - "onCommand:helper.sortLength" + "onCommand:helper.sortLength", + "onCommand:helper.cutEachLine" ], "contributes": { "commands": [ @@ -41,7 +42,8 @@ { "command": "helper.unwrapSql", "title": "Un-wrap Sql" }, { "command": "helper.wrapSqlCSharp", "title": "Wrap Sql for C#" }, { "command": "helper.wrapSqlVB", "title": "Wrap Sql for VB" }, - { "command": "helper.sortLength", "title": "Sort by Length" } + { "command": "helper.sortLength", "title": "Sort by Length" }, + { "command": "helper.cutEachLine", "title": "Cut each line after |||" } ], "keybindings": [ { diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index 854999e..e7bb140 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -37,7 +37,8 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('helper.unwrapSql', helper.unwrapSql), vscode.commands.registerCommand('helper.wrapSqlCSharp', helper.wrapSqlCSharp), vscode.commands.registerCommand('helper.wrapSqlVB', helper.wrapSqlVB), - vscode.commands.registerCommand('helper.sortLength', helper.sortLength) + vscode.commands.registerCommand('helper.sortLength', helper.sortLength), + vscode.commands.registerCommand('helper.cutEachLine', helper.cutEachLine) ]; commands.forEach(command => context.subscriptions.push(command)); diff --git a/type-script-helper/src/helper.ts b/type-script-helper/src/helper.ts index 45e2225..715bfb6 100644 --- a/type-script-helper/src/helper.ts +++ b/type-script-helper/src/helper.ts @@ -17,7 +17,8 @@ enum LinesAction { unwrapSql, wrapSqlCSharp, wrapSqlVB, - sortLength + sortLength, + cutEachLine } function removeBlanks(lines: string[]): void { @@ -223,6 +224,16 @@ function sortLengthLogic(lines: string[]): void { removeBlanks(lines); } +function cutEachLineLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + if(lines[i].length > 0 && lines[i].indexOf("|||") > 0) { + lines[i] = lines[i].substr(0, lines[i].indexOf("|||")); + } + lines[i] = lines[i].trim(); + } + removeBlanks(lines); +} + function returnLines(textEditor: vscode.TextEditor, startLine: number, endLine: number, lines: string[]) { return textEditor.edit(editBuilder => { const range = new vscode.Range(startLine, 0, endLine, textEditor.document.lineAt(endLine).text.length); @@ -257,6 +268,7 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.wrapSqlCSharp: { wrapSqlCSharpLogic(lines); break; } case LinesAction.wrapSqlVB: { wrapSqlVBLogic(lines); break; } case LinesAction.sortLength: { sortLengthLogic(lines); break; } + case LinesAction.cutEachLine: { cutEachLineLogic(lines); break; } default: { throw new Error(); } } return returnLines(textEditor, startLine, endLine, lines); @@ -274,4 +286,5 @@ export const sortNormal = () => linesFunction(LinesAction.sortNormal); export const unwrapSql = () => linesFunction(LinesAction.unwrapSql); export const wrapSqlCSharp = () => linesFunction(LinesAction.wrapSqlCSharp); export const wrapSqlVB = () => linesFunction(LinesAction.wrapSqlVB); -export const sortLength = () => linesFunction(LinesAction.sortLength); \ No newline at end of file +export const sortLength = () => linesFunction(LinesAction.sortLength); +export const cutEachLine = () => linesFunction(LinesAction.cutEachLine); \ No newline at end of file From 9efe4e506b1e5fc7946a016c8c37c379e8ea6854 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Mon, 7 Jun 2021 17:48:09 -0700 Subject: [PATCH 08/14] wrapSqlVB sortLength cutEachLine --- type-script-helper/package.json | 12 ++++++------ type-script-helper/src/extension.ts | 6 +++--- type-script-helper/src/helper.ts | 22 +++++++++++++--------- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 5233d4f..2be87d1 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -16,34 +16,34 @@ "onCommand:helper.addCSharpComment", "onCommand:helper.addVBComment", "onCommand:helper.convertToRegularExpression", + "onCommand:helper.cutEachLine", "onCommand:helper.expandSql", "onCommand:helper.listToListFamily", "onCommand:helper.listToListWrappedComma", "onCommand:helper.prettySql", "onCommand:helper.removeComment", + "onCommand:helper.sortLength", "onCommand:helper.sortNormal", "onCommand:helper.unwrapSql", "onCommand:helper.wrapSqlCSharp", - "onCommand:helper.wrapSqlVB", - "onCommand:helper.sortLength", - "onCommand:helper.cutEachLine" + "onCommand:helper.wrapSqlVB" ], "contributes": { "commands": [ { "command": "helper.addCSharpComment", "title": "Add C# Comment" }, { "command": "helper.addVBComment", "title": "Add VB Comment" }, { "command": "helper.convertToRegularExpression", "title": "Convert to Regular Expression" }, + { "command": "helper.cutEachLine", "title": "Cut each line after |||" }, { "command": "helper.expandSql", "title": "Expand Sql" }, { "command": "helper.listToListFamily", "title": "List to list family (Kristy, Mike ...)" }, { "command": "helper.listToListWrappedComma", "title": "List to list wrapped comma" }, { "command": "helper.prettySql", "title": "Pretty Sql" }, { "command": "helper.removeComment", "title": "Remove comment" }, + { "command": "helper.sortLength", "title": "Sort by Length" }, { "command": "helper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, { "command": "helper.unwrapSql", "title": "Un-wrap Sql" }, { "command": "helper.wrapSqlCSharp", "title": "Wrap Sql for C#" }, - { "command": "helper.wrapSqlVB", "title": "Wrap Sql for VB" }, - { "command": "helper.sortLength", "title": "Sort by Length" }, - { "command": "helper.cutEachLine", "title": "Cut each line after |||" } + { "command": "helper.wrapSqlVB", "title": "Wrap Sql for VB" } ], "keybindings": [ { diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index e7bb140..eb3cb04 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -28,17 +28,17 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('helper.addCSharpComment', helper.addCSharpComment), vscode.commands.registerCommand('helper.addVBComment', helper.addVBComment), vscode.commands.registerCommand('helper.convertToRegularExpression', helper.convertToRegularExpression), + vscode.commands.registerCommand('helper.cutEachLine', helper.cutEachLine), vscode.commands.registerCommand('helper.expandSql', helper.expandSql), vscode.commands.registerCommand('helper.listToListFamily', helper.listToListFamily), vscode.commands.registerCommand('helper.listToListWrappedComma', helper.listToListWrappedComma), vscode.commands.registerCommand('helper.prettySql', helper.prettySql), vscode.commands.registerCommand('helper.removeComment', helper.removeComment), + vscode.commands.registerCommand('helper.sortLength', helper.sortLength), vscode.commands.registerCommand('helper.sortNormal', helper.sortNormal), vscode.commands.registerCommand('helper.unwrapSql', helper.unwrapSql), vscode.commands.registerCommand('helper.wrapSqlCSharp', helper.wrapSqlCSharp), - vscode.commands.registerCommand('helper.wrapSqlVB', helper.wrapSqlVB), - vscode.commands.registerCommand('helper.sortLength', helper.sortLength), - vscode.commands.registerCommand('helper.cutEachLine', helper.cutEachLine) + vscode.commands.registerCommand('helper.wrapSqlVB', helper.wrapSqlVB) ]; commands.forEach(command => context.subscriptions.push(command)); diff --git a/type-script-helper/src/helper.ts b/type-script-helper/src/helper.ts index 715bfb6..53c9dac 100644 --- a/type-script-helper/src/helper.ts +++ b/type-script-helper/src/helper.ts @@ -8,17 +8,18 @@ enum LinesAction { addCSharpComment, addVBComment, convertToRegularExpression, + cutEachLine, expandSql, listToListFamily, listToListWrappedComma, prettySql, + pdsfToFixedWidth, removeComment, + sortLength, sortNormal, unwrapSql, wrapSqlCSharp, - wrapSqlVB, - sortLength, - cutEachLine + wrapSqlVB } function removeBlanks(lines: string[]): void { @@ -61,6 +62,8 @@ function convertToRegularExpressionLogic(lines: string[]): string[] { split(')').join('\\)'). split('[').join('\\['). split(']').join('\\]'). + split('{').join('\\{'). + split('}').join('\\}'). split('.').join('\\.'). split('*').join('\\*'). split('+').join('\\+'). @@ -111,7 +114,7 @@ function expandSqlLogic(lines: string[]): void { function listToListFamilyLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { - lines[i] = "Kristy" + lines[i].trim() + "Mike" + lines[i].trim() + "Jason" + lines[i].trim() + "Mackenzie" + lines[i].trim() + "Logan" + lines[i].trim() + "Lilly" + lines[i].trim() + "Chelsea" + lines[i].trim() + "Pipper" + lines[i].trim(); + lines[i] = "Kristy" + lines[i].trim() + "Mike" + lines[i].trim() + "Jason" + lines[i].trim() + "Mackenzie" + lines[i].trim() + "Logan" + lines[i].trim() + "Lilly" + lines[i].trim() + "Chelsea" + lines[i].trim() + "Piper" + lines[i].trim(); } } @@ -258,17 +261,17 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.addCSharpComment: { addCSharpCommentLogic(lines); break; } case LinesAction.addVBComment: { addVBCommentLogic(lines); break; } case LinesAction.convertToRegularExpression: { lines = convertToRegularExpressionLogic(lines); break; } + case LinesAction.cutEachLine: { cutEachLineLogic(lines); break; } case LinesAction.expandSql: { expandSqlLogic(lines); break; } case LinesAction.listToListFamily: { listToListFamilyLogic(lines); break; } case LinesAction.listToListWrappedComma: { listToListWrappedCommaLogic(lines); break; } case LinesAction.prettySql: { prettySqlLogic(lines); break; } case LinesAction.removeComment: { removeCommentLogic(lines); break; } + case LinesAction.sortLength: { sortLengthLogic(lines); break; } case LinesAction.sortNormal: { sortNormalLogic(lines); break; } case LinesAction.unwrapSql: { unwrapSqlLogic(lines); break; } case LinesAction.wrapSqlCSharp: { wrapSqlCSharpLogic(lines); break; } case LinesAction.wrapSqlVB: { wrapSqlVBLogic(lines); break; } - case LinesAction.sortLength: { sortLengthLogic(lines); break; } - case LinesAction.cutEachLine: { cutEachLineLogic(lines); break; } default: { throw new Error(); } } return returnLines(textEditor, startLine, endLine, lines); @@ -277,14 +280,15 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined export const addCSharpComment = () => linesFunction(LinesAction.addCSharpComment); export const addVBComment = () => linesFunction(LinesAction.addVBComment); export const convertToRegularExpression = () => linesFunction(LinesAction.convertToRegularExpression); +export const cutEachLine = () => linesFunction(LinesAction.cutEachLine); export const expandSql = () => linesFunction(LinesAction.expandSql); export const listToListFamily = () => linesFunction(LinesAction.listToListFamily); export const listToListWrappedComma = () => linesFunction(LinesAction.listToListWrappedComma); export const prettySql = () => linesFunction(LinesAction.prettySql); +export const pdsfToFixedWidth = () => linesFunction(LinesAction.pdsfToFixedWidth); export const removeComment = () => linesFunction(LinesAction.removeComment); +export const sortLength = () => linesFunction(LinesAction.sortLength); export const sortNormal = () => linesFunction(LinesAction.sortNormal); export const unwrapSql = () => linesFunction(LinesAction.unwrapSql); export const wrapSqlCSharp = () => linesFunction(LinesAction.wrapSqlCSharp); -export const wrapSqlVB = () => linesFunction(LinesAction.wrapSqlVB); -export const sortLength = () => linesFunction(LinesAction.sortLength); -export const cutEachLine = () => linesFunction(LinesAction.cutEachLine); \ No newline at end of file +export const wrapSqlVB = () => linesFunction(LinesAction.wrapSqlVB); \ No newline at end of file From b7453ff4f1874b11028d2c88d29002d16c6fa792 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Wed, 20 Oct 2021 09:10:06 -0700 Subject: [PATCH 09/14] Search Google --- type-script-helper-1.2.4.vsix | Bin 0 -> 6604 bytes type-script-helper/package.json | 4 +- type-script-helper/src/extension.ts | 1 + type-script-helper/src/helper.ts | 155 +++++++++++++++------------- type-script-helper/tsconfig.json | 1 + 5 files changed, 88 insertions(+), 73 deletions(-) create mode 100644 type-script-helper-1.2.4.vsix diff --git a/type-script-helper-1.2.4.vsix b/type-script-helper-1.2.4.vsix new file mode 100644 index 0000000000000000000000000000000000000000..dc432c96e0014831f0bc55e377da2e754866b529 GIT binary patch literal 6604 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 DccA`a literal 0 HcmV?d00001 diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 2be87d1..02e6ed3 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -4,7 +4,7 @@ "description": "Helper for VS Code in TypeScript", "publisher": "IFX", "repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper", - "version": "1.2.3", + "version": "1.2.4", "engines": { "vscode": "^1.40.0" }, @@ -22,6 +22,7 @@ "onCommand:helper.listToListWrappedComma", "onCommand:helper.prettySql", "onCommand:helper.removeComment", + "onCommand:helper.searchGoogle", "onCommand:helper.sortLength", "onCommand:helper.sortNormal", "onCommand:helper.unwrapSql", @@ -39,6 +40,7 @@ { "command": "helper.listToListWrappedComma", "title": "List to list wrapped comma" }, { "command": "helper.prettySql", "title": "Pretty Sql" }, { "command": "helper.removeComment", "title": "Remove comment" }, + { "command": "helper.searchGoogle", "title": "Search Google" }, { "command": "helper.sortLength", "title": "Sort by Length" }, { "command": "helper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, { "command": "helper.unwrapSql", "title": "Un-wrap Sql" }, diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index eb3cb04..011d79c 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -34,6 +34,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('helper.listToListWrappedComma', helper.listToListWrappedComma), vscode.commands.registerCommand('helper.prettySql', helper.prettySql), vscode.commands.registerCommand('helper.removeComment', helper.removeComment), + vscode.commands.registerCommand('helper.searchGoogle', helper.searchGoogle), vscode.commands.registerCommand('helper.sortLength', helper.sortLength), vscode.commands.registerCommand('helper.sortNormal', helper.sortNormal), vscode.commands.registerCommand('helper.unwrapSql', helper.unwrapSql), diff --git a/type-script-helper/src/helper.ts b/type-script-helper/src/helper.ts index 53c9dac..91a8e14 100644 --- a/type-script-helper/src/helper.ts +++ b/type-script-helper/src/helper.ts @@ -15,6 +15,7 @@ enum LinesAction { prettySql, pdsfToFixedWidth, removeComment, + searchGoogle, sortLength, sortNormal, unwrapSql, @@ -57,28 +58,28 @@ function convertToRegularExpressionLogic(lines: string[]): string[] { let explicitLines = 50; for (let i = 0; i < lines.length - 1 && i < explicitLines; ++i) { result = result + lines[i].trim(). - split('\\').join('\\\\'). - split('(').join('\\('). - split(')').join('\\)'). - split('[').join('\\['). - split(']').join('\\]'). - split('{').join('\\{'). - split('}').join('\\}'). - split('.').join('\\.'). - split('*').join('\\*'). - split('+').join('\\+'). - split('?').join('\\?'). - split('|').join('\\|'). - split('$').join('\\$'). - split('^').join('\\^') + - '~'; + split('\\').join('\\\\'). + split('(').join('\\('). + split(')').join('\\)'). + split('[').join('\\['). + split(']').join('\\]'). + split('{').join('\\{'). + split('}').join('\\}'). + split('.').join('\\.'). + split('*').join('\\*'). + split('+').join('\\+'). + split('?').join('\\?'). + split('|').join('\\|'). + split('$').join('\\$'). + split('^').join('\\^') + + '~'; } for (let i = explicitLines; i < lines.length - 1; ++i) { result = result + '.*~'; } result = result. - substring(0, result.length - 1). - split('~').join('\\r\\n\?\\s\*'); + substring(0, result.length - 1). + split('~').join('\\r\\n\?\\s\*'); results = [result]; return results; } @@ -87,26 +88,26 @@ function expandSqlLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = ' ' + lines[i]; lines[i] = lines[i]. - split(' select ').join(' SELECT\r\n'). - split(' from ').join('\r\n FROM '). - split(' where ').join('\r\n WHERE '). - split(' and ').join('\r\n and '). - split(' join ').join('\r\n join '). - split(' left join ').join('\r\n left join '). - split(' on ').join('\r\n ON '). - split(' group by ').join('\r\n GROUP BY '). - split(' order by ').join('\r\n ORDER BY '). - split(' SELECT ').join(' SELECT\r\n'). - split(' FROM ').join('\r\n FROM '). - split(' WHERE ').join('\r\n WHERE '). - split(' AND ').join('\r\n AND '). - split(' JOIN ').join('\r\n JOIN '). - split(' LEFT JOIN ').join('\r\n LEFT JOIN '). - split(' ON ').join('\r\n ON '). - split(' GROUP BY ').join('\r\n GROUP BY '). - split(' ORDER BY ').join('\r\n ORDER BY '). - split('\r\n\r\n').join('\r\n'). - trim(); + split(' select ').join(' SELECT\r\n'). + split(' from ').join('\r\n FROM '). + split(' where ').join('\r\n WHERE '). + split(' and ').join('\r\n and '). + split(' join ').join('\r\n join '). + split(' left join ').join('\r\n left join '). + split(' on ').join('\r\n ON '). + split(' group by ').join('\r\n GROUP BY '). + split(' order by ').join('\r\n ORDER BY '). + split(' SELECT ').join(' SELECT\r\n'). + split(' FROM ').join('\r\n FROM '). + split(' WHERE ').join('\r\n WHERE '). + split(' AND ').join('\r\n AND '). + split(' JOIN ').join('\r\n JOIN '). + split(' LEFT JOIN ').join('\r\n LEFT JOIN '). + split(' ON ').join('\r\n ON '). + split(' GROUP BY ').join('\r\n GROUP BY '). + split(' ORDER BY ').join('\r\n ORDER BY '). + split('\r\n\r\n').join('\r\n'). + trim(); } removeBlanks(lines); prettySqlLogic(lines); @@ -128,19 +129,19 @@ function prettySqlLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = ' ' + lines[i]; lines[i] = lines[i]. - split(' select ').join(' SELECT '). - split(' distinct ').join(' DISTINCT '). - split(' as ').join(' AS '). - split(' from ').join(' FROM '). - split(' where ').join(' WHERE '). - split(' and ').join(' AND '). - split(' join ').join(' JOIN '). - split(' left join ').join(' LEFT JOIN '). - split(' on ').join(' ON '). - split(' group by ').join(' GROUP BY '). - split(' order by ').join(' ORDER BY '). - split('\r\n\r\n').join('\r\n'). - trim(); + split(' select ').join(' SELECT '). + split(' distinct ').join(' DISTINCT '). + split(' as ').join(' AS '). + split(' from ').join(' FROM '). + split(' where ').join(' WHERE '). + split(' and ').join(' AND '). + split(' join ').join(' JOIN '). + split(' left join ').join(' LEFT JOIN '). + split(' on ').join(' ON '). + split(' group by ').join(' GROUP BY '). + split(' order by ').join(' ORDER BY '). + split('\r\n\r\n').join('\r\n'). + trim(); } removeBlanks(lines); } @@ -148,15 +149,23 @@ function prettySqlLogic(lines: string[]): void { function removeCommentLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = lines[i].trim(); - if(lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') { + if (lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') { lines[i] = lines[i].substr(2); } - if(lines[i].length > 0 && lines[i][0] === "'") { + if (lines[i].length > 0 && lines[i][0] === "'") { lines[i] = lines[i].substr(1); } } } +function searchGoogleLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + vscode.env.openExternal( + vscode.Uri.parse(`https://www.google.com/search?q=${lines[i]}`) + ) + } +} + function makeSorter(algorithm?: SortingAlgorithm): ArrayTransformer { return function (lines: string[]): string[] { return lines.sort(algorithm); @@ -175,30 +184,30 @@ function sortNormalLogic(lines: string[]): void { function unwrapSqlLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = "//" + lines[i]. - split('sql = "').join(''). - split('sql = sql & "').join(''). - split('sql.Append("').join(''). - split('.Append("').join(''). - split('Append("').join(''). - split('");').join(''). - split('").').join(''). - split('")').join(''). - split('" & ').join('$'). - split(' & "').join('$'). - split('"').join(''). - trim(); + split('sql = "').join(''). + split('sql = sql & "').join(''). + split('sql.Append("').join(''). + split('.Append("').join(''). + split('Append("').join(''). + split('");').join(''). + split('").').join(''). + split('")').join(''). + split('" & ').join('$'). + split(' & "').join('$'). + split('"').join(''). + trim(); } } function wrapSqlCSharpLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = lines[i].trim(); - if(lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') { + if (lines[i].length > 1 && lines[i][0] === '/' && lines[i][1] === '/') { lines[i] = lines[i].substr(2); } lines[i] = 'Append(" ' + lines[i] + ' ").'; } - if(lines.length > 0) { + if (lines.length > 0) { lines[0] = 'sql.' + lines[0]; lines[lines.length - 1] = lines[lines.length - 1].split(' ").').join(' ");'); } @@ -207,29 +216,29 @@ function wrapSqlCSharpLogic(lines: string[]): void { function wrapSqlVBLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = lines[i].trim(); - if(lines[i].length > 0 && lines[i][0] === "'") { + if (lines[i].length > 0 && lines[i][0] === "'") { lines[i] = lines[i].substr(1); } lines[i] = 'Append(" ' + lines[i] + ' ").'; } - if(lines.length > 0) { + if (lines.length > 0) { lines[0] = 'sql.' + lines[0]; } } function sortLengthLogic(lines: string[]): void { - lines.sort(function(a, b) { + lines.sort(function (a, b) { // ASC -> a.length - b.length // DESC -> b.length - a.length return a.length - b.length || // sort by length, if equal then - a.localeCompare(b); // sort by dictionary order - }); + a.localeCompare(b); // sort by dictionary order + }); removeBlanks(lines); } function cutEachLineLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { - if(lines[i].length > 0 && lines[i].indexOf("|||") > 0) { + if (lines[i].length > 0 && lines[i].indexOf("|||") > 0) { lines[i] = lines[i].substr(0, lines[i].indexOf("|||")); } lines[i] = lines[i].trim(); @@ -267,6 +276,7 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.listToListWrappedComma: { listToListWrappedCommaLogic(lines); break; } case LinesAction.prettySql: { prettySqlLogic(lines); break; } case LinesAction.removeComment: { removeCommentLogic(lines); break; } + case LinesAction.searchGoogle: { searchGoogleLogic(lines); break; } case LinesAction.sortLength: { sortLengthLogic(lines); break; } case LinesAction.sortNormal: { sortNormalLogic(lines); break; } case LinesAction.unwrapSql: { unwrapSqlLogic(lines); break; } @@ -287,6 +297,7 @@ export const listToListWrappedComma = () => linesFunction(LinesAction.listToList export const prettySql = () => linesFunction(LinesAction.prettySql); export const pdsfToFixedWidth = () => linesFunction(LinesAction.pdsfToFixedWidth); export const removeComment = () => linesFunction(LinesAction.removeComment); +export const searchGoogle = () => linesFunction(LinesAction.searchGoogle); export const sortLength = () => linesFunction(LinesAction.sortLength); export const sortNormal = () => linesFunction(LinesAction.sortNormal); export const unwrapSql = () => linesFunction(LinesAction.unwrapSql); diff --git a/type-script-helper/tsconfig.json b/type-script-helper/tsconfig.json index b65c745..e275e0d 100644 --- a/type-script-helper/tsconfig.json +++ b/type-script-helper/tsconfig.json @@ -8,6 +8,7 @@ ], "sourceMap": true, "rootDir": "src", + "resolveJsonModule": true, "strict": true /* enable all strict type-checking options */ /* Additional Checks */ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ From 21324f6ab60f4a889afc323c4786ea94be626807 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Wed, 20 Oct 2021 09:47:27 -0700 Subject: [PATCH 10/14] Search Google - Selection --- type-script-helper-1.2.5.vsix | Bin 0 -> 9798 bytes type-script-helper-1.2.6.vsix | Bin 0 -> 9828 bytes type-script-helper-1.2.7.vsix | Bin 0 -> 9824 bytes type-script-helper-1.2.8.vsix | Bin 0 -> 9887 bytes type-script-helper/README.md | 10 +++ type-script-helper/package.json | 68 +++++++++--------- type-script-helper/src/extension.ts | 33 ++++----- type-script-helper/src/readOnlyLinesHelper.ts | 51 +++++++++++++ .../src/{helper.ts => replaceLinesHelper.ts} | 12 ---- 9 files changed, 112 insertions(+), 62 deletions(-) create mode 100644 type-script-helper-1.2.5.vsix create mode 100644 type-script-helper-1.2.6.vsix create mode 100644 type-script-helper-1.2.7.vsix create mode 100644 type-script-helper-1.2.8.vsix create mode 100644 type-script-helper/src/readOnlyLinesHelper.ts rename type-script-helper/src/{helper.ts => replaceLinesHelper.ts} (96%) diff --git a/type-script-helper-1.2.5.vsix b/type-script-helper-1.2.5.vsix new file mode 100644 index 0000000000000000000000000000000000000000..9af884a689cd907cafe21e3b8e9946b286407b75 GIT binary patch literal 9798 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 T3HAF=u$rSks(pMmi( literal 0 HcmV?d00001 diff --git a/type-script-helper-1.2.8.vsix b/type-script-helper-1.2.8.vsix new file mode 100644 index 0000000000000000000000000000000000000000..ae9cbb6e36098553929404612d9471a049310417 GIT binary patch literal 9887 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 afAfi=49u$$0{|erem=e0GD!dR=lnkytTOHZ literal 0 HcmV?d00001 diff --git a/type-script-helper/README.md b/type-script-helper/README.md index 2518eb0..9b72084 100644 --- a/type-script-helper/README.md +++ b/type-script-helper/README.md @@ -57,3 +57,13 @@ Added split(' group by ').join('\r\n GROUP BY '). ## Working with Markdown ### For more information + +### 1.2.4 +----------------------------------------------------------------------------------------------------------- + +## Search Google + +### 1.2.8 +----------------------------------------------------------------------------------------------------------- + +## Search Google (Read Only Lines Helper) diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 02e6ed3..b32bd50 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -4,7 +4,7 @@ "description": "Helper for VS Code in TypeScript", "publisher": "IFX", "repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper", - "version": "1.2.4", + "version": "1.2.8", "engines": { "vscode": "^1.40.0" }, @@ -13,43 +13,43 @@ ], "main": "./out/extension.js", "activationEvents": [ - "onCommand:helper.addCSharpComment", - "onCommand:helper.addVBComment", - "onCommand:helper.convertToRegularExpression", - "onCommand:helper.cutEachLine", - "onCommand:helper.expandSql", - "onCommand:helper.listToListFamily", - "onCommand:helper.listToListWrappedComma", - "onCommand:helper.prettySql", - "onCommand:helper.removeComment", - "onCommand:helper.searchGoogle", - "onCommand:helper.sortLength", - "onCommand:helper.sortNormal", - "onCommand:helper.unwrapSql", - "onCommand:helper.wrapSqlCSharp", - "onCommand:helper.wrapSqlVB" + "onCommand:readOnlyLinesHelper.searchGoogle", + "onCommand:replaceLinesHelper.addCSharpComment", + "onCommand:replaceLinesHelper.addVBComment", + "onCommand:replaceLinesHelper.convertToRegularExpression", + "onCommand:replaceLinesHelper.cutEachLine", + "onCommand:replaceLinesHelper.expandSql", + "onCommand:replaceLinesHelper.listToListFamily", + "onCommand:replaceLinesHelper.listToListWrappedComma", + "onCommand:replaceLinesHelper.prettySql", + "onCommand:replaceLinesHelper.removeComment", + "onCommand:replaceLinesHelper.sortLength", + "onCommand:replaceLinesHelper.sortNormal", + "onCommand:replaceLinesHelper.unwrapSql", + "onCommand:replaceLinesHelper.wrapSqlCSharp", + "onCommand:replaceLinesHelper.wrapSqlVB" ], "contributes": { "commands": [ - { "command": "helper.addCSharpComment", "title": "Add C# Comment" }, - { "command": "helper.addVBComment", "title": "Add VB Comment" }, - { "command": "helper.convertToRegularExpression", "title": "Convert to Regular Expression" }, - { "command": "helper.cutEachLine", "title": "Cut each line after |||" }, - { "command": "helper.expandSql", "title": "Expand Sql" }, - { "command": "helper.listToListFamily", "title": "List to list family (Kristy, Mike ...)" }, - { "command": "helper.listToListWrappedComma", "title": "List to list wrapped comma" }, - { "command": "helper.prettySql", "title": "Pretty Sql" }, - { "command": "helper.removeComment", "title": "Remove comment" }, - { "command": "helper.searchGoogle", "title": "Search Google" }, - { "command": "helper.sortLength", "title": "Sort by Length" }, - { "command": "helper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, - { "command": "helper.unwrapSql", "title": "Un-wrap Sql" }, - { "command": "helper.wrapSqlCSharp", "title": "Wrap Sql for C#" }, - { "command": "helper.wrapSqlVB", "title": "Wrap Sql for VB" } + { "command": "readOnlyLinesHelper.searchGoogle", "title": "Search Google" }, + { "command": "replaceLinesHelper.addCSharpComment", "title": "Add C# Comment" }, + { "command": "replaceLinesHelper.addVBComment", "title": "Add VB Comment" }, + { "command": "replaceLinesHelper.convertToRegularExpression", "title": "Convert to Regular Expression" }, + { "command": "replaceLinesHelper.cutEachLine", "title": "Cut each line after |||" }, + { "command": "replaceLinesHelper.expandSql", "title": "Expand Sql" }, + { "command": "replaceLinesHelper.listToListFamily", "title": "List to list family (Kristy, Mike ...)" }, + { "command": "replaceLinesHelper.listToListWrappedComma", "title": "List to list wrapped comma" }, + { "command": "replaceLinesHelper.prettySql", "title": "Pretty Sql" }, + { "command": "replaceLinesHelper.removeComment", "title": "Remove comment" }, + { "command": "replaceLinesHelper.sortLength", "title": "Sort by Length" }, + { "command": "replaceLinesHelper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, + { "command": "replaceLinesHelper.unwrapSql", "title": "Un-wrap Sql" }, + { "command": "replaceLinesHelper.wrapSqlCSharp", "title": "Wrap Sql for C#" }, + { "command": "replaceLinesHelper.wrapSqlVB", "title": "Wrap Sql for VB" } ], "keybindings": [ { - "command": "helper.unwrapSql", + "command": "replaceLinesHelper.unwrapSql", "key": "shift + f9", "when": "editorTextFocus" } @@ -57,9 +57,9 @@ "menus": { "editor/context": [ { - "command": "helper.unwrapSql", + "command": "replaceLinesHelper.unwrapSql", "when": "editorTextFocus", - "group": "helper@1" + "group": "replaceLinesHelper@1" } ] } diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index 011d79c..7993378 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -1,7 +1,8 @@ // The module 'vscode' contains the VS Code extensibility API // Import the module and reference it with the alias vscode in your code below import * as vscode from 'vscode'; -import * as helper from './helper'; +import * as replaceLinesHelper from './replaceLinesHelper'; +import * as readOnlyLinesHelper from './readOnlyLinesHelper'; // this method is called when your extension is activated // your extension is activated the very first time the command is executed @@ -25,21 +26,21 @@ export function activate(context: vscode.ExtensionContext) { // context.subscriptions.push(disposable); const commands = [ - vscode.commands.registerCommand('helper.addCSharpComment', helper.addCSharpComment), - vscode.commands.registerCommand('helper.addVBComment', helper.addVBComment), - vscode.commands.registerCommand('helper.convertToRegularExpression', helper.convertToRegularExpression), - vscode.commands.registerCommand('helper.cutEachLine', helper.cutEachLine), - vscode.commands.registerCommand('helper.expandSql', helper.expandSql), - vscode.commands.registerCommand('helper.listToListFamily', helper.listToListFamily), - vscode.commands.registerCommand('helper.listToListWrappedComma', helper.listToListWrappedComma), - vscode.commands.registerCommand('helper.prettySql', helper.prettySql), - vscode.commands.registerCommand('helper.removeComment', helper.removeComment), - vscode.commands.registerCommand('helper.searchGoogle', helper.searchGoogle), - vscode.commands.registerCommand('helper.sortLength', helper.sortLength), - vscode.commands.registerCommand('helper.sortNormal', helper.sortNormal), - vscode.commands.registerCommand('helper.unwrapSql', helper.unwrapSql), - vscode.commands.registerCommand('helper.wrapSqlCSharp', helper.wrapSqlCSharp), - vscode.commands.registerCommand('helper.wrapSqlVB', helper.wrapSqlVB) + vscode.commands.registerCommand('readOnlyLinesHelper.searchGoogle', readOnlyLinesHelper.searchGoogle), + vscode.commands.registerCommand('replaceLinesHelper.addCSharpComment', replaceLinesHelper.addCSharpComment), + vscode.commands.registerCommand('replaceLinesHelper.addVBComment', replaceLinesHelper.addVBComment), + vscode.commands.registerCommand('replaceLinesHelper.convertToRegularExpression', replaceLinesHelper.convertToRegularExpression), + vscode.commands.registerCommand('replaceLinesHelper.cutEachLine', replaceLinesHelper.cutEachLine), + vscode.commands.registerCommand('replaceLinesHelper.expandSql', replaceLinesHelper.expandSql), + vscode.commands.registerCommand('replaceLinesHelper.listToListFamily', replaceLinesHelper.listToListFamily), + vscode.commands.registerCommand('replaceLinesHelper.listToListWrappedComma', replaceLinesHelper.listToListWrappedComma), + vscode.commands.registerCommand('replaceLinesHelper.prettySql', replaceLinesHelper.prettySql), + vscode.commands.registerCommand('replaceLinesHelper.removeComment', replaceLinesHelper.removeComment), + vscode.commands.registerCommand('replaceLinesHelper.sortLength', replaceLinesHelper.sortLength), + vscode.commands.registerCommand('replaceLinesHelper.sortNormal', replaceLinesHelper.sortNormal), + vscode.commands.registerCommand('replaceLinesHelper.unwrapSql', replaceLinesHelper.unwrapSql), + vscode.commands.registerCommand('replaceLinesHelper.wrapSqlCSharp', replaceLinesHelper.wrapSqlCSharp), + vscode.commands.registerCommand('replaceLinesHelper.wrapSqlVB', replaceLinesHelper.wrapSqlVB) ]; commands.forEach(command => context.subscriptions.push(command)); diff --git a/type-script-helper/src/readOnlyLinesHelper.ts b/type-script-helper/src/readOnlyLinesHelper.ts new file mode 100644 index 0000000..d616fc1 --- /dev/null +++ b/type-script-helper/src/readOnlyLinesHelper.ts @@ -0,0 +1,51 @@ +import * as vscode from 'vscode'; + +enum LinesAction { + searchGoogle +} + +function searchGoogleLogic(text: string, lines: string[]): void { + if (text.length > 0) { + vscode.env.openExternal( + vscode.Uri.parse(`https://www.google.com/search?q=${text.trim()}`) + ) + } + else if (lines.length > 0) { + vscode.env.openExternal( + vscode.Uri.parse(`https://www.google.com/search?q=${lines[0].trim()}`) + ) + } +} + +function getLines(textEditor: vscode.TextEditor, startLine: number, endLine: number) { + let results: string[] = []; + for (let i = startLine; i <= endLine; i++) { + results.push(textEditor.document.lineAt(i).text); + } + return results; +} + +function linesFunction(linesAction: LinesAction): Thenable | undefined { + const textEditor = vscode.window.activeTextEditor; + if (!textEditor) { + return undefined; + } + let text = ''; + var startLine = 0; + var endLine = textEditor.document.lineCount - 1; + const selection = textEditor.selection; + if (!selection.isEmpty) { + startLine = selection.start.line; + endLine = selection.end.line; + let range = new vscode.Range(selection.start, selection.end) + text = textEditor.document.getText(range); + } + let lines: string[] = getLines(textEditor, startLine, endLine); + switch (linesAction) { + case LinesAction.searchGoogle: { searchGoogleLogic(text, lines); break; } + default: { throw new Error(); } + } + return undefined; +} + +export const searchGoogle = () => linesFunction(LinesAction.searchGoogle); \ No newline at end of file diff --git a/type-script-helper/src/helper.ts b/type-script-helper/src/replaceLinesHelper.ts similarity index 96% rename from type-script-helper/src/helper.ts rename to type-script-helper/src/replaceLinesHelper.ts index 91a8e14..c38291f 100644 --- a/type-script-helper/src/helper.ts +++ b/type-script-helper/src/replaceLinesHelper.ts @@ -1,5 +1,4 @@ import * as vscode from 'vscode'; -import { stringify } from 'querystring'; type ArrayTransformer = (lines: string[]) => string[]; type SortingAlgorithm = (a: string, b: string) => number; @@ -15,7 +14,6 @@ enum LinesAction { prettySql, pdsfToFixedWidth, removeComment, - searchGoogle, sortLength, sortNormal, unwrapSql, @@ -158,14 +156,6 @@ function removeCommentLogic(lines: string[]): void { } } -function searchGoogleLogic(lines: string[]): void { - for (let i = 0; i < lines.length; ++i) { - vscode.env.openExternal( - vscode.Uri.parse(`https://www.google.com/search?q=${lines[i]}`) - ) - } -} - function makeSorter(algorithm?: SortingAlgorithm): ArrayTransformer { return function (lines: string[]): string[] { return lines.sort(algorithm); @@ -276,7 +266,6 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.listToListWrappedComma: { listToListWrappedCommaLogic(lines); break; } case LinesAction.prettySql: { prettySqlLogic(lines); break; } case LinesAction.removeComment: { removeCommentLogic(lines); break; } - case LinesAction.searchGoogle: { searchGoogleLogic(lines); break; } case LinesAction.sortLength: { sortLengthLogic(lines); break; } case LinesAction.sortNormal: { sortNormalLogic(lines); break; } case LinesAction.unwrapSql: { unwrapSqlLogic(lines); break; } @@ -297,7 +286,6 @@ export const listToListWrappedComma = () => linesFunction(LinesAction.listToList export const prettySql = () => linesFunction(LinesAction.prettySql); export const pdsfToFixedWidth = () => linesFunction(LinesAction.pdsfToFixedWidth); export const removeComment = () => linesFunction(LinesAction.removeComment); -export const searchGoogle = () => linesFunction(LinesAction.searchGoogle); export const sortLength = () => linesFunction(LinesAction.sortLength); export const sortNormal = () => linesFunction(LinesAction.sortNormal); export const unwrapSql = () => linesFunction(LinesAction.unwrapSql); From 1950c22273db55e7689c188d4867564822b01a7e Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Wed, 20 Oct 2021 09:48:47 -0700 Subject: [PATCH 11/14] Clean up --- type-script-helper-0.0.1.vsix | Bin 4904 -> 0 bytes type-script-helper-1.1.0.vsix | Bin 5527 -> 0 bytes type-script-helper-1.1.1.vsix | Bin 5547 -> 0 bytes type-script-helper-1.1.2.vsix | Bin 5600 -> 0 bytes type-script-helper-1.1.3.vsix | Bin 5611 -> 0 bytes type-script-helper-1.1.4.vsix | Bin 5631 -> 0 bytes type-script-helper-1.2.0.vsix | Bin 6013 -> 0 bytes type-script-helper-1.2.4.vsix | Bin 6604 -> 0 bytes type-script-helper-1.2.5.vsix | Bin 9798 -> 0 bytes type-script-helper-1.2.6.vsix | Bin 9828 -> 0 bytes type-script-helper-1.2.7.vsix | Bin 9824 -> 0 bytes 11 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 type-script-helper-0.0.1.vsix delete mode 100644 type-script-helper-1.1.0.vsix delete mode 100644 type-script-helper-1.1.1.vsix delete mode 100644 type-script-helper-1.1.2.vsix delete mode 100644 type-script-helper-1.1.3.vsix delete mode 100644 type-script-helper-1.1.4.vsix delete mode 100644 type-script-helper-1.2.0.vsix delete mode 100644 type-script-helper-1.2.4.vsix delete mode 100644 type-script-helper-1.2.5.vsix delete mode 100644 type-script-helper-1.2.6.vsix delete mode 100644 type-script-helper-1.2.7.vsix diff --git a/type-script-helper-0.0.1.vsix b/type-script-helper-0.0.1.vsix deleted file mode 100644 index 0d71039c411712a2b1fb8864428b8ebd7cb26622..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4904 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 K2!6aDZ~p_c9j!Y6 diff --git a/type-script-helper-1.1.0.vsix b/type-script-helper-1.1.0.vsix deleted file mode 100644 index 9a0ebc62b6a3814b7ade672d44980b77d8fc48bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5527 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 HwgUbKujtku diff --git a/type-script-helper-1.1.1.vsix b/type-script-helper-1.1.1.vsix deleted file mode 100644 index 0bc265eaea818f707bebfc48ec6bbdf7004e84d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5547 zcmZ`-1yodByBcR*xj86K zbo+bcS1rHxd9iIxcqfoPn;mD;SC)C0jjq2=bKS2&sl3Os3emq?xh^b;$uVwP+^`05 zUi|h|GK8cvT9KZrJBj@r&Q9O^VV~m+MPi+#U7rYdy9^zAmMX|JDzeYE^wV(MakASC ze3G4}srvj$ZK#xxNxA%s3>1c~OBItoB`b`PIW^EKQ&eAKc`Y@_t!o|JrJK1zD|W9K zS>LFHEZ#VzhzBcd)8Q+FeT%AVVHZB&(BdGiQIXZGauB&zGM#1w>i41wg_q#Y=m(>CXM7QjS71(q-9tp{5hGThjTGBf+ zTHxzZ4B^y7>+<*x%9h0d=-ZkKW~Ph^jQPPjf&B=`E4_PRjNM*DqVtdv%YfC%AuQxdT55>xy|#IqgzJw9hU;UlCA} zUn4+k`if)|VzyKHGCR(ISAQB*T2<{YLBf?9(Rn$7u+PJMfln|TWmLXpOi;1cdYGFT z8!&HSVJy-=$Rcv(39&O?w7=3U9ZTWf5Q#`G|6C|uuYA`DZ5IODI2&UF?)pwu1~~_a z?blyKem1jj#r7qD_I_(Mhfey@528G?9lo-=v?1h3<0~h`SlLkCUTc{5$7vUP1-$fRG%?HyOEXx94fcFJuE=#@i`H zDB?4%H3e8S&PEnIa6Q`#cOY>{9g;JGeI9O`jCtI{O`KgcyyUUaIxBBci$F#6Q1GbQ zjJ(~tE3=S>sdAUxRU4U#WiNV!jlW3A8t6CC5*St1(=@@=efpYj7dOTyV=8kxZ=rOD z*U-Jiq`q#Lqx?3;k!QGtV{U-5*=Ldv_MxR*Dq8M_oQAK7QoRqZsjK=mM-?yV;xCo+ z;-q*IDQfIjyqmB7TJ&Crwp7*4Voz@Fe=&|nURhQ{Nl{HxiQ5UR7yHf`laExvH{e6K zLyky=W>~S-xDN0(0xDucQwc#wd`9z)6)M-i$WN=k8@u!-?OVcZs(iF^o>z46`8p+s zmZsw|YjtHsa9OL(ASeC4Nt%6pu#N51tJEGYl85WT@y2|*3v!>AQuB+N*AAar&rH!l z+MHYMuV_Mj3Chm9eOco`VHp$@b*+06ng#iNbwE@s5jVQJ1obs9DUG ztBPz;jNuBw|86Ya&8c#3`atVuX}^Q+X7u}1;emR3@ce$`ws$YoM`_OUlKS5xyY4Rc zwdIiYLG=`L#)k^h(2Yu}k-H^2Sbdp6dZp`!U;EjJtLyly7$H`VzBf0c+p5Liat3;a z+BhHEd2jT7r4mT_BCA2};Yv$&8W`Ok9}mm1u&DsWy`+_GB8K5y<3 zF0P9nV^ZfWq-sV9LvK9$7EKBjgOdi&N^055M`7cKwA2gbD+3?wMEs3^7nf`We2gY(6^Ajb=%IJlL2k!N9{e z!>^az=HiB=wASlLH%K5R>-hp(jbQnVzkuEYT(Zs8E;1^YhD#O6=xG=byA4z681)J; zIaH|iV;YY8ypiL22zL^ELObsid{PkOvR*>UOsaLH>^&3$VEK?94n1PQI@xgwm9Xat z0mI5ZckvoT#NY4V8#{Pq;;>MkwlcRXY<8HcGj)d=73cS9&O=;`V0?g(J->K=p%j@| zXmpyw#oJmNEWLp_Ke2)RHpci+V*H~jSCzuJJ7XNpX8j}OiRD0(urDHX2-VMmMe(7p zvXwm{idjY0;15*OnfZA5r-=@o*gryz%Q-XfdG?C8YDAqTl#H0yk~@+_$hTAYneL-y z`QhCol9w$G0)>$g&qo8b?-QiA&usWd@!1L&*U`4wfakHURA>q6aGvCYxhQW5)E<(Z zgiPpx#n5lE(+5naO1O0W<|0lxvo(+?7(1!`to;vpbTe(jq<%FUUFBO{gF0m~9O0`2 zshKL}maAB=Yv06GHe}NJ_X9|0^eH_vrRDdKto|j&EiL3`FQ)~uxd6>9R)0F#AQFzh)dsC*Ax#WqKdh|ABY6ISC5*Ve3TG2 zCzl=~X%-*4pW<;eH!1>^!fn|WJvA>s<=QLrNL-TVv9FhRZB`7wz~Ef5@j=#nadW*q zItO`6qvmSBKkjR(;^N7QY_u6*0RS2J0Kk8zC-wiKr!B$zY&2=Lu=)4f=m3huJ z{3z5|&Qx@3X{S&oQ_L((kUdkdJDw`UlCO@;NJp8&dGtqnTmkbon|89PjT4+!nG=EV zjpgZGTWn0!ie`Io73_&aa-YG%bOqmC0=5%fx4MyCqaw0cfkhP-I8&BB& z6vu2SVcn69)<2BU6j_@hS)*S&W4Z;ja|LUW6Yii;IE2rv^^A>?0KRHCkse7zSUy?K@WC~LrtU2 zubC7 zFjdRFbd z^X<>((3?wRM+tHd`MR&g{GaRo#OYeuT%If_?02w~H?odPb3li(v!N`?GmDX&udir3juB3IwX_wt1nhu%C#DPjBa9-ckU1Y ztA;@E73k3DnGpy*aG%r%@5|m}sg)_BhspG64_2#ZO&dLv{itdy{ht7s2PQ=C*KF#y7gD8Cr&d$Aiy!lE;jJmL~SixtB;Dfk|V}+K=8#^~y+IQJ9I|Fav zju|*zKLj@A2%4*bXW0$YPq zyr!9f3JpOW$G7o#2oaPB!K6j`Cvo~8PA?6Bmu>o?G$fB&@xh%5h^Z#|tks@trQOkC zbA}_1345G+r8*q1ud)Qu6POc(D+GBm(vvtk4feIgl;kFQW44RQ*H*!SjcR)jj5WIN zH!C|f_@j#PUshQg;>-eGOPRSi8yqp;^bm7R51y;clVD}tvKi|fac&ue;ZB(s;UN} z=!(subt1Xh+<|253K5#y?W3z5>%!@R2z3_Cd7tq&3-4e~PnTs++08D-;|RBEB0-0Z zkR#)7xztOFqu)h_4SWc;pT zxGooVphT}U_#3ir*+;o+6JrwA-g7f6eYXpeRL)(3CZ7>7rpOu!L0q?w6bhYCB33yB z2zBee25+}3?hjQq=%n*{%>h<_y`cI@+;+y9Rv}!BM6;>4k7or>U4^R*PzmLR&`+(4 z&p6*28SyzeS~)*^T1(B5yq!*taCrKtm}A<0pqz-4N>SlMW@Fn-NAkywM{lCju5glT zYAP+uh1eGsR%fe*)3XsZ^*!B<8Q6L@&jiT0KED=WVrEKiG^c=WrxbZs?jD;D_{UZD zh}_fXGMd~vTYOu^MuU+Rsj*v3!7x4j&sbx#Rg(R)TBOJ4sH5fNczpkL&w;0c`a+#pSmlL`xxmKQPjqDBGaB`8x37n1HH=x+=Z@hgppW0rr4S?D z8zx?)7q=K#1smkx<^?sS;oy?JVcSd{S_YF~MMbqjKJ$f*^y9ahUSLUBTc?l@Mo^aYr(N$5>9J-#pIpajab3IrQ4prGqW7hAr6<{2G+c zQZl-SC^5nauMMOn#PKyTo9o=fFgnvULcqzV?(*k(G0@ZVF#^57v=f%E5o%|fQEwI+ zsIT;=Xh3

l=0!|b0R-yf^&!p%@cEhWces#`AHs^@wmd^7BEa(Zrc|~zTg}bEv=ea=gHdJ zBrY1v*M_gM+)Kx88kFpquw_3^#@d)AIB=5Q--XPCN7{(h8C^?7jxOU-sw%Fc$&U|9 zn1tFy)dp3mG`FUWU-8xJ%)Wk?{k5Yro{9~ZiDcHEmB&nSrE+?138g~kt3u*+>y^Ca zW>Ev{2`xh)B}GPEm^nz1Esh3p??E7?;zvQ&O}S&wX0w)$`$FH5&B%qT&DRMB1#KH* zrzJEDcbRcdCfRN|*w*U5)ivG^<9;}ZENsK)spm|t6OcNgnCb7Bik7rH#*u7wz?2#( z_IqO6QxpHdM`;hcU$-j6e0LWZuVB>ZYgqlyUK%mh_VxD#^o7(<7g#QK4Em0_1p5f(lyJxXDZaO-*t?XRW1(uLARMPvnXJ0OcO zlkoVvsXXsxho*P}`(D8$b+bY*{kbN?pqe1@SPQok818tUu$0Biks{yaWJ^D{{F0Sc zBA%{lDv4gbQ76wk`HQTxOwGI=QRg9sG;xb&Uiw)9KRHxUWd06t)9BR^{Nm6rcSjJi{VA}2D=!`$MOg)P#T%j7nxGDy=Oqk9|DaTGSAJ1tmLF!>SZntFmV6V? z=nR8~h9WJtmMxE?U;PrT+Ssq3bGFT_Q}9iyQZR5vd@%5E?n9a4+Gw}E*QKi{`RWlV z4)Do?)coiyCF1FD7geDbty_5y=@~x`X;pWHY4|SW$C!F6QH33UWzQor#dnC-p5NW+ z=1C@|q5^t+6Kj%pB?*S`@1pZ?!>U(m;u(gn=3g~vANHJIsD;;>xSu;e|p&hV{TRs2P2l8b4xQG!Pa|*OB z(A|)n^H>1;(&|N>yyHvj9uE`{(?C|8Op4AN^Gc0eC)6dnu0J9`=v$!MJBQFoQgFWX zz9lFTYJ>Ir-Kfx@ST4>&)YQd*IrdP0cQ)*>9yk);|H(#66$4Wm>%V(VN*+qOJCsI{I!dP?0@84fG}1_ScS(atcXN>PDAHYrM!LIsc;D0O z@4I*HvBzF}tuf}<-`Hz@-#4df&f> z?O0)JQZE0re;Fuq;YBSA^_jUe?rKH6;35-kdpb)4c;Y*CIwPP6@64ljN zNjGCyq5N6?8MW0!DcAtL@%+8lm6tP)4Q>jpdxa9&EN;`WFm;wOU7pgV4^{Pq0zPo8JN4S7ry0u2-EUj^bTclhy#PT63(rqh`dr_ zUcCse4jbl3h5>}Z7514evy5iQ z&>+9AebFpPvaj0YTb#h<&tD@-M!6*omiXMrIv7Z$cUic}aEde9?#CJS#Fv6!OB6<# z-c2QySbE1Z3h#Q|Jx`rVe7!Y3x9<|S^1%H$Y++sc(z3FhY&Qa>a>0qIm&-Hpw9fnG ziqvUKS)cN^>1Cq+nxje9ma(Xv!PFV#>$~ehCRURHL&N6elT;svg|xY1{i2QY`kTJ| zfVf`I(B*lJ#2+W6vR=Y|tyunT&mBE-Gn$Wx3#)gea%1*3&?92MLp5%MAB7Ver-r=vN%kK^|`&7-~R{@8&L004sf zr>>NZ_5A^KG|+IhHFePAbg_Et8C_}J$&DrL>=lqD_AxD+`N0h7@U^6uceJHkhzthp za+8-q<5XxKo!!}PFa#Hp-1kh!W2L`!G~#g=Cr(B||C}QnIwfULn>ioSMaU&@K2Wql zDFIJGd_hTIrwU6(0t+1>W6TmU`Ff7D_=c5qHH~m|o+j|@phdW(jeQu;ffsLaYdf^) z*4Op3mOel@dKYZ)HrorNw}KnM(l?h)Ov>4i)vz5W{*~^Iq@r7SQ0AH}`UaE}CC(K` zSOZ>kZoWnPXVANCs^S&*!JgdT|KJ>#6i8A@PDVjlj?>CSGqTbekq1xO-Rny*BulVN zIp~whuo}&SOdCO6V7cjD$jTniP(G;MEjOi}GIH)?%6aTmvQ#)I$0^+Z>IV_4it^iI zrt0!C{}QNqFFX0ZZVEWs-`rv>Cb^3Pm+^;x^eY|>__LL{v*fDNohiyND2~~(_vU%so_4|zz?2xZDuROzz_x=(7U1zDg1*@dX zd{zMaC?FlY)T9`3(pc$cV)1xK|8B3$?1q%Pzc!P&OSmzv(==I zZ%2X2rxj9sjb_;ZCJ|FuDRC_(mw2-U4Ih${z)KfM; z4ai5Uuz~^K+XdV(PuI>;gNlR23nVm^UgFsI6RYWb<)ej^DRd)h z54(JP#=+=g#V<=bW95I67h(IO5RV>D zYyF?DAB>ISU}l4Z)T@E1e}#$cd{xSxhQYP_X`@ESYD7+lemSu%UXWljiIy+!8Y^{>R0EX?yr7IX#ilML>G@9QE2nS!-Ha2=u(i`H`dS?W~~z6RCjpp7_M%cjt&e(5R4Zi!>uoD>(hUdpanCiohGebL+nRVZwu z+G)M|1V$i3{JHV;<}8%2#U<+N=)rzI)zSogC{OkT@hzd8Kcn8L+Zhg1IV~5qZE=`* zE}H=8fI#|r=un5*hGWD+R}>;z!X-X|qy>%N6dk|$5mhqtO9Z=+eC(^MkjB(!>wJ~Tl|rp;`2 zih|w*B6nce3TBTy+H~{?S>?LJH>D`JZS3qn>8%>t-Q@(=69K(UrJqxr8^68Kt1&*) z@V;Ar7|mW4wQYrf`m|l6w?F5cfYL=g0+fV8n1pUevN*U*m1ieTy1H*ELGUDh(`rGDYfyfCFHu}};_K{p{*+d+=qcgo>Kb$D)~jmY(c(fbR9 z>eTb)2)JLru z@J#>JH{85sa9QG}wr-0*E$76hqDmVpKu%7G@me1Gt$X&H@G_ zFdV78che+n5Y~6_EfS2oA=~7~bny$`3^E`k97=2))T^)NEA0HG$W8P^C8G-}$42}f z0pSmhSQr~}4koDlhT2Lxv`TWK<&SM6ix)6s^l93XGz#*+ofN5Rn!8w_Dud!->q|{J zhgTNotB*JDpdAkmxOKEBA~SGh*@&vKU)#uq?Lb;`?axy8*5?+FLZ5LCb>305ikAEY zTYR&>r2Q|n&Z7Pz$^hN^@yL!+U2{1h)_JH}=@Y~Q0mZ`vBoliqV>Jf(L8I1#22*{{ z0p(9rtgHhDk0?KjzRq7^1hhJvpcc{CL2Vnfm|uHZjCyM=pQPeVu2i(`*PE?hf!lDYAhl)H`^NyhPP@( z#o-uYG9v5kNQI8yMete{j5fpw_du1cc*V&|!(smTTRb(bpUA(}SyQurHu$;}2{U5Q zWn*)i9X>+EWw1`J5KA`9iFZ}W(6nlE-R`IoVhrO7S6QT)l-EIlM5sS&5V2LL_pi7- zv%FB0oYKoXv6xbCxG{o2&>}7Nw(}BNqX=(DmP~W%%X20Q7KM#%_sfe=b5_k=@SwWW29%1)e zKYEbKDO8_yL?5uBIzIOJdWp~)Asr8+T(9v9(@l9R^iB(YH+|LcY3@=~)neG1eaVdh z6M^Gd?;QJWLFOgGK*1yf0&0@jw>L>J|EFKk4@A8_ErvIILnN;E86x8NmV?Vm7IP8X zMuaA1Nb-uJVOy49^{9~0l3ac|PeiMn1HmK4tB3gWAv;5wmXN}edJlbvr^h*s%e>b_ z;)&k+jVWg@9_w8u22QEdDZfL?!2ULdFP9y^2I<&y=YI6W@4G~K($~va$2+j8k0ff^k}+>DOeqcEJx}F^sI_A%R*ATXB#e|HSSESdyGKw zRNEq}O{Ot|&qYysmS+Zd+wTX_5YqLgV#cRN>xu;`%y&h(bZo}+=H9SZ=`@+n8iY8{PLQ{m9zOVlOTW)BNyaJalQLek~UG~mteI~J(O%kz{U4}ZS6O00az z2m!wzhT~(dS(CAgAf?AzaF%r;&^)X>KB4uB!<`(5)>XT6+|~Q#1HX0@F@y@AwCWNO z3(;l84Hc3m_)C#FBwI>=wE`JU1TEW`E2AZ3Lr{_NF)`x(=DnrcrE(5I0&iH_qn|w* zL&f^JJTh^=3<*}c?0c?s`QZ&@ON1D%#tSQl3!Zj%rwz655~A_QU(PZ0_eR_y{H$qo z0WVIX?!{^}-JdlrP(8$$3CqZLSFN0%|{m=J&$}dzuLZNVOuGb zk-g+4dkjn0=@ z>J_YLbX}IVrvM{?$HK3zpqUCA=$A%76J~|@bYEH57FB*SoR=1%8ICNFL?f7Y@fq=M zyX)ye@AUUg7aA=S7|P?CO!8@xd{4glD5WAbg$S-&?=`T5KB3{X*j;_e8hTJ@f2GpU z&IfMI1TNJN*siHY#ClW42X=(may-N-bx7qb&Wd^6eKh{je4rAtBQ)L~0(NTyUdg=Y zjwHga-3yRofen9D%Y0(JA>TX?B^(S{`|RCDkX=2t{VBWc_*gn3WMBmkwgM~mrXp{! z#dK`a)0j=S@_ViT}8|z{e2nrGUvcx<~ z#x}gF#M;a{9z*#Gs765~u|h4fvl3rScRi-ve5K1~EVt2KlC>XA(ZsL|@6T{Iz1zm6?_Oj<2EZ69i&7Zy>ozDE!MP|`>svN-U&~VJC}nEp3XTvu=Ln3Umzpl z3!DovWx*F3sprg9k*vknNjv#OFEu(4{nP?{I-nh37s6{$`bKK7&mUAfAMl_!Z(a3! zB-u1S;1YOyQlr`}CA~@oLUqoph#sGhg@|2ux3e#*^P%W<0EtEkRJ_$5!6vi%Z`ALq zSWr-66QsrpsgNU7NLs}LcF;dBZC>EyN!oa{0y3SkgBiY@o5-p6xo;Vqn^U?ZvSrT{ zy^C~`tCFd+TrVFWvCkH(GoR8ux&0T93~HeOZGvpm=dcDk_>B3L@YL#2_WOU?~Xm%|wk zwv~V42HnVEB&Yt~r&8S!q~s3Ijd<-WM;vs#&60!t8UqrpIYp!km5pB3v9hmJ=})V5zzftj(1>j>wiO zvoH{?@alvRCcXR-RNPa=Uekx)rs}nTRz0)rVk$d+TtICSaY|#Br?DnB?FctX&9Pba^?~nM0AMy+1mxTFK-28MHevLXGZR9^O{`MRG#`&|L z{FFk!MxDjoL=sB&mF-|cGgzz9>pmd&U4&&1Bf4lx=VFR&EaL3Wu)p++J^l4jc*hg zCGczd;~c^TE>B?eAtfFT5gmAL->z@YZucooA3GDy26;|w`HvTpAR&P$Xgw!z-8%RE zfz^eoLYvIPeiNUU%)8+Osl&S#09ajJshpvCtyaN2V%1bycKyJ?tV@2|t(sVZWMcft)}xZ34C#7W z{x?$Z2BrXPgQlASb#KOvr#DC+8W)2vRb#Zv!A`Wa{Yb@$$-9Rvvg zAh>%PNjp2;C7_3y_6rv)cN5O%jt(yq>YU)**fQP$q50w^*-&Q8d9sNsseo4rcJh(3 zz=x~v0?b-xql)NU&-WwjaqTlko*4M8jdpyF73k%}$$c}r?KPK(A|>M4yujIUXdqUD-^^_ za3vEqKvullZqWZZ>HRJZiQ2o#p5ER6;2f8qn87haXlo#kVkvr$=Xsz;hVPABSq_(Nph$QRdo!Qj$>eqL)?&=bF`9D2wNJw``& z(Vieut++?yt?`g0l z;o{a$WUbScrI&<*-@D=WC6ZwcxNxu!xMrSfT%=K`h>&7gB)Y7kV zt%qALGJ$$<|KqnrBm0Hs%$2#Xf+j~9nv)Mm5b-ak=R8D3uqKAESqe)J7b^Obiw(}w zIk;hsA&)na=Ra+tmd6?%iA{V^;;5CGaHokU-D+l2__Q2k6uu!uo~N|N|0W?UF;~IU zO7`^|Ys)_3shmO#;90VLH|j;0VHJBekZZqmyFu9Tle_`_YFbx{5W!A5??dVXDc(T% znD}+OJzsHD6pzDdl~ zDzx9kdENRZe_`%VS^x3PsypV4f}Y6YN9gOpC7P4%kM8fQJTX`&RbU=^J4~FmN5g|p zDIR8)?pU<%@zFnou{N}~6PUc3;zx~lb9I7+PG^NJld(_Y=i$MusDkXbUy7bT*=LxW z4WrS0`$*YYXX$QSK)z5@beQ8fU|BUj*IYF|Yja&qH0(Zc>=ke*%F?}l+~o9wn4l@a z;}P68(Glu&kK?&{KIk;H4-Eni>(9wNP2=8Vo z^9DV2m#|HpX&aWVBudNR4O5g3FKTTC+6{DLwg@!Q4M8)*ZvB%ShS=x=Sz7IF;&74D zZ1PeYDkiIQ-hM%$(iniJ`$r%WnEOMP^uKFSKFDg&SiSbmX^(5? z?}~kN5mUWL(>I34z#`|Ky&Ye`4c!tUlckbti&(Ds%rpbBOhOAcZbJp}o>@A}Tr*qZ z@ABU7v#|`Mb~yQQBi?H&>4o-K(0FYAac&F!QhbRP@R+oLXyrIOd-1j7oMoOYVgtc$J}#6#ikRGX~== zvU1{>bQ^rhUmAG@RfzJFB6_1?hs<$$KqPM*-|YhU(g!kY>+MYI< z>d{=CC~H^15vsz*to+#{^kC{|tkyOfSCMC8d2&S~_)$tBEwL_J-*6{{^02YK^XCJz zCuU#B^J$cEGPWDJ)H+wC@kZyokNjkbjJEvzBl9}a_94r@#!xfp#-69skCFYm7CtdO z$kTKZ+l@5#`eXkRix~WHq^gP$0*$H>nUf8(+Zsimuzj=>2hVBW_kV$B{5p=9ZlE%Z zBij;E4PhX*?6?fg`!en1CV~2RtEtMU^ed0f1ymasjqN zfgV_r&5YyH03Taq7)ri3<9GtL^eZ|zScsC*A@?F78GS*J6wKU>#Fn0rgCnvJIy+N4 zV%hQJROIIn5F!L&U(_UOfFE_E>ha%P6bf!->dZvx5V}QDjk*%~(N3_TeoxwIAZ#@i zDBn4WA718(oFFw>(AM^+K0$OyEq12s(^4@;M_qRhEt!{DY;>K98Mf3k$rqpR_<9^{ zS;^9-Z>_Es%*ddCK^UygSZMba(?;Uh4ISyWL;P@RYl!QW+R zkT4TSa9otsU+;|T1I6||ZPYzGdRM%u_c)~m+~ddHCu0YIitTPn9?pbXxvLVJkwSZ< zYt!E@O_3Le9J(xLcmct$za1ZC2fdwFp!j&yw6Z^6Tg6d~`^jl)jTH}MRHvtsEdu}6 z8NUO44HL37IP)??y#Mo3Bsau_W6HkUY#VZ@b zEO7sFMrL7U=LH=TU?R(!toMFx#CDRqZ=I@UMy};KEX*wDA-g%=!v~E@CVq3*JNwto zM>o@FtL;8J$4{W6vX+U{Y&sY%V!eAKUjp8hQ6Kt5f$+^;X6bOeY-4^9#Nmw{4S+^p zMYEf`QjnUs2^%aVM6rGFQ(TS;hSs8R;23)q0FQrYN4M}>W6JcIlewZP7rQ>MiK<^2Low8_*4m-@QLX-?2Ur^?*L`SBmg1e} zPmQ*n%@tWLi7UyXdqy~Ny;PV1}>tmyd(0){=j1+(J&|>>i_J)xfR^{tp zvuSvP3&awRE7nos_uP5W%+BE^C&^T=CC&;A=ilJh3jSP)t@7SOGg!ldHgFhU0E377|I(`20gzW-;W)HTpx~px@PK~;V zpQ_e>v!-?;U4;$maSc5!W3z7*ugu1LmRzFB8>!UJ&}1Xpfbp&KzyaOm3GxcKJwK=O z;CS(eUxzGuH;!E*GD@Qm**@(^!m$IaLyRt4+wQGrM0*&$ zb{eDD-GSo->9%4rC{zS8WW2np#ZQ{?ALbQlGvwb#&fE9@Y|ic^SH#-19e#c2h%#yc z%+{16G$+Ykwq`{R$G+8jEG7z6LvCyG5RnQI$aGWW__`T(CQE_XJ1UtCrrP{9l~y&r?DBs zk8av0)c0l#=k6Dj0$%CEL!XT&sk)hP%)M81A{nuOS(n$=Sugi%y`C!%pdPSw3DH%m z=s_@TO=`(H__=3f=&|QcR5d<)=2ZN)!a{sDFqn2k14)MJ?WC${t51(vRU@o3mG>-# zY7a9CXAo-kCHJ$93x=*bWRA)wR7XZ%dG>@VV?Nxp zl{feE`I7+&qTs^dwPgu`r`_a+)v2t49N(ok2q4Frh!7GZVx{@aJRi(G%Vk!m8aYf# z?I7#b7_e>(BeHD64fWvt-R@1~08RJx#URu$-KUz`OYtp%zq$yBYh%el`>uUt>~KASk0^0i`MUWK+1_lC%L)uNwUlqZoklh1t@H59Wv<^2Z-IR+wVwIsNvdiL=%5QBZn zH3Zct$c|BF` z!tXEj7eKnlys8nzu_GpSpKDiBoo3djROJ5UwP7hPBDcpY#LVr~4}GFQP{Qoh*c;#F zG>eyRg=H(S`&>Qs#9{+F6>e&Zu|C z#3rm?Jo@DhiN$uNR@_N*^t;iY^8B}M@80mezM0> zaNihcAEPn+xL#_9U2>W7Nt#lt~RM zeT(N*27{$j`XyKGa34=an?+ioTKOlMVbs-%KNq;ER;Wqg-Tc3nu*m0!0ids_142HhTgI_jNo@^1T3T1&+k3A zlAAhtLt`0xMr&Q9y(vEDv0&*-rW1Wy$CC-42;vh_?XNxkEIf0mUxK|M@Mr7yTK~fd{2SwM1Lxlu0e7zAf3b7^2Kd_y`8R;aUDEyjiGNrlzc7BO znLl;TPqX1yGzIFT{)zFo_3$^&p9SToD*6>of#>LdRuo2PQqPnc5cPf)}LRQE_mR#9`fusdkl=cCm1Ul~52a5$a0e7B&1Cmbh)3ik9^ z{5Ub(ZC&av?{q8-z{S()C|L={4@S{+j^gQ#B=e(&s;PW>uap|eBLeOQj$b@G?;$^Z zk%b%|C2#ZuDdOe6TV3+vk+`>IGOPfOnHs|%aJx4G{KWB+S^pMMN5D=1-k=YSdafif z^qGb`M?=cXWu;D8KX_IFSC3Qp0KuG8RtxGA+_uA$X3}V7c_yVA4s>fXr*xz>!PF)m zK&y$;qVesQEQjq4W}a9e5w^=4bW(|*Kk^| zktyZ9y?>(DS_r2|fTpV?jQBMY~8$!=3y*raqH~Q{IDq zQdNGcDlyc}Le8=a*PhZB&k7^$?^wFsROM4gY7R!->@1sbgQ4o48((UubbtO{!NK<4 za)XfSuAzz-=E!$fG`^*n0(~#tr*kx#X;=_bcU~jaa{R+KG48B+XHv3Woch8rK<0?O z);Op+q~7A%xPpJD1qVH0a@oCi^ls)w+3oDCnBN6Z?O(|PEp{o^Vf+c|NhJp)5>L_cKYGGWb9j9yCyzKXMxi;%&5yxI_G z^3QZ+!4sGBy>JLVBy~Va-*0WOWh|PngB>rcXmG)8u6Y`4Qk%UP(Lv0iXfsr@O)W8( zhWwnG$VI&?6=*MbjDk5&!WiWLwJGRrSx3WHw)V3muJ7p4UK!)>C-UY>cRBT-O@{S# zgUm22q+|DRlb5-H@7x3lByiLgQa#%r6V#IfwXU6XE-EBpjvJcYCmFapKGL0zTPK4t)4n&;X~R*{B$ZfN%nmbTv~HdYYVCQMUAUR3f5EO53O1po9%DO zLw&K!ezf~C#+rp?5EIumI;iMm6z5Ghi7WZ*IBR#A#W&X6us^8T=Gq{ z-ZJ+8BaPXra!c>MSQgz$3!Dc9^d%v!vHz zM?qU$C@=ZLVNoR_*93^g##EO_x=#3=zm2f6M!<9Z?3Lro#>V}YYT**rAooxk#}hlx z&F*icJSiIjn}i%uqqcKGZAm&^)1u__b2*}#-t^8j=;v_DJVfl0Qpf>k?lC&Lvo>vF z8)}zgMln@)+|zCH6jCY&6^`Z9vR5o&qem2EbFk&UPCJ1BgDbtZN=Y+r^fypmCLWZ% zoQ-k}JSAsq5E>G@8H^cd#s$vZnWv6~%y%uvsqHa4a#G0j_1I7uVG(QDFVc&K*QskJ zvwR96G|F|&sffaSEjWhy%q+t`@uZOz>eoxPvAo6dBR7gZov;6&ToEb`t|@NqnIogrkdK5cpCJHOFUs>b*Ovc*{c$r(3cA?(pUoTvF859Ug{5(@RtQrI|~ zYlFo%k!QbdqLf4%9Eps6QDlQlk3wl<$+zlR{2%KmT5K$5fw#{ouVMoC9vei@S4yFh!gJp%24xnnSoD>u98?l7|39`*M=r+l3D zamT#r8xP&%X6BlvCL*I(6TB#~t}c$vA(QE$OBAf*gxLhmR*!-p+y27mQhW3>)1kCF zRnL^1v={E@`Q-97g!|c!1D8}{vrJWD(>K>ug+p;kqpvahA}yiS!$zlHMEH$~#0T&j zg$HO-+>U341)Rjtn|1`xjA3VNdu4733t$fWdaz5QO!zet>#~hkSIvg2%gyl*Gf(lw znHtM08Z||93`v2_7F{3!kbwyR{AYTS{U3VTTD^3(a=qu~x`Bh!>@$K}YdmFk9KQG*TR^wNlo0>IX7|-Pxa@tlZ_FBX ztf!WNLX^5v1b;5<_Qp5A@7znufy~4kDFBSXAo8(TR#lg`odd%>_nohW+=yuEeYSWS zJg!m1WfJMg*@Tq>3DLM@CJ*V{xMsj8fl4AlFdb$)m!4YiFvueIoN){r$WU1xFCp>- z+iyfNdw&u94ZUY@3EJl}|7JA}ocG3AtQ*O}h%-U>dU8ki#;5!%(%STZHK)eSVFHT8wGns`jRSucqgPxMYz52HHbWb5T~RG z)VD3cd5uGn8fC{J%o#QE9Y#2TbL&05Oerbr-w+C1#1!jD9?IoDtB?v}rO{kF9Nw#r zHHnj$62tr8HX%1(&Ny=2-6-|6JI&Lq+F!I@$kxdTzjhWY>aIZAWzCo9rMGC!>~<+& z|ImU~|3mCI3rsZePObjIybB`ghDW#xvGl}Y7%uqBt?T%s0@*m&7ac`h8KcuOCOqoJ z>LiH*u zL!utw20<1@$q8c^HUV^Gsq4ycJrxwk9~`oH#^#QXrFtYCcXgImgS~#}aXyRRHa|IO zUeb=!Ic3vH7!Q@}Zf{?1!_0t~8Zf!ZAiQ(ia<|sKP99Q_kn$)wE3C#YhOXx7hrsj{ zKnYvRRJw@G$IU^p6(3a;-|cF*R}F6U;AF*fMhvejE38i*ZhfcZy{JZDxp3)gQ$?HL zbSFg?11FDd_gcChB`rYqMsD)S=tGq9!tTU;+_ipUA(ju;BmNsq&MK2RR%#NquD;da zF7ib^?HsF?#QCykl_oup71)zUu~DG0Flv6g>fP6LRZgbKp{8ZrBqZkTu2s0!0cZ() ziB|H|rP=M14s+Q8uf0@hgpV@T%PM`-D?^@BfAyIk=lmFRD9}xynDqcPL-MLBcx7bz zMX0-u9~ta(gB*YkqDlTBr?*>!ySOIbv*rARkNZx&p*#^&6x?VFQDn|M%)nd-udJep z^eog{%t=z}?zK{iI7KlqnZUJ_<0sHLudr~@wWu6>M4Z{=xP94)Pp?A2L(|WtJ|oVg z+9*gMk~vo;$hc`$fB?fY;DZzCbioJCOR2_4X8woOD;%if+aL$&zQ)i-Cq!MnVQsYX z^$6LGL5r?(hEV6>qT#^sSpab*!)ysUzuYslI-wgh@Z9LEZ^21~{w(qET2s?yfGS1tWLmRZTLr{(X_U<8F*3j-#5BXPZg&YD? zxm@e}{K!o`#vW4^>{YKisZDEE?72VFkdP%#$G4K8gU!$l)`Y)F6Kzx%uUS#D%vcH} z$Fd>$rQIa42W(R-3c<`%Uph`Vks2?BV$YggK>Qvf-5}ENvG|NGlTo&3>2z^{#<)G> zgoe3sHW0)Rv>ibmtRQi@_pSY~C|cR47mv4)9M1sDf#cEO6QBGj>XK(TxXKE>ymn0UR~LFck9kOr5FQW5PtI;W<<&~ z^45e^7dLk;v}Rq(`gHnK_wC|#J?3E1Rf1G-@x$pV$aGlK*cn^K;z!kBdOUT8lzOb` z;Uv(jTXUdcRh9`?A?$=7UXbX|G7%-Syg{mp&H%CZADtsq+*DbqKm%sJa|Xq9fIy(i zlbgqPaU2U1qIF-PY(G4Mlc>5!OX$;uPMb=fzkUB;xcA#w)N=$VT5y1umX8HY#GT1& zny4pFTP+PljtD{d(&Z$Pw**qJETn`Jo63Xg?SW`NKkq^AKl4c!z1g5E0;<59Z*UbI zG1HbNRfxUYPQG6_JB8kallbpj`0hyu-s=l=j2%Lvs_J_=`|-)2eQ)otW9h$--p*zg z5HlOA`=;mQSgWJ%bT4)THg)y3`#vP8HPnt@jV0C2Jep7msZ`KpOzWUuAe^nHHVD4h z7oJ6WA1C2O&cU>~|HIEyEZb>B@&KEBP~JHLS(L1x^sz$79s?bTG+H;QnL3yDeB}!99#mwJ~kqv~JGQ@R7gG zcu*YaaAhX$H~Fes5Ah-K0qRsI!>6>!R#5vL>Pf-@9UP)qL?o@3@HAy?G{DjJeCERX zGflIWRjPpr;?aCv7UIv9(1M6p5muE}*q56K?G4vfSBIFEu zSQhBUMteK*tGi%~2R3nfqAU28=|y@AO&AJ^%5IcG-VYA=t~2VS-qcJS*V!s?i#-WL z$^SIw`NI0sJer_yvR;jQQELN_U@%t;-t(pIhwM~ulHKBW?MGx)TpMjkclk6!qWOUQ zSvzAoH(>&@Z=Tc`7?9kGNmgVro3HM+cQlzFCOVdpP(WFdj7WBS@u+a@Vz6kB;$R*} zU&e`U?P1?7i$7d16PbJ)6R$hrO<%yS^qjzGdDR%SREI23p$n_jR9R4c}CW} z@%ptdIDsYn%9kA~l4P8+r=^%o5)`q7FV$_9?Yz`ef{=SBz~gpP`;$`s7iYwEPp;!j zZG_`Un-4Fk{KV#g^~Adgl*+jK4qh!#I4hLI&9M2)$ew&%4?FJs_@xwkRQDdMaNnT# zPZC`xV|_xpKRni9|02;Z$4Dglb5iNOU`M~7{VCdit2qu08A)knnS1ft9Ixy&%ZU@Z ze?=kY>e$h3RlFYfhPvsEj`L3;DSL`9b zSvoILM6qPQ;$bYil9?Geu}fmr4qtrYtx1FxidDcn6O2l@kiA_i&Gg6DB13m6iGJAu zh=*>jz?${vHgrP}q0;#Ayy%e-JM{zd+I+c_=v;8Qt%(RcupL62qPree+E>L|GeFp? z9=L>FJ^RheN_OI;h}JUt3}juPwJAE|HfQNeq5bx>k}Iu!G>At?r3-#KCOCD%DK>N$ zUzgyr&Vrq-W3vCbZD2o9>@`<<&w>-~;wIxI_1n-lF>I`bi{saQ#wY{5?OA?D^`N1+ z-bouZMI>Z#;D7c5f64fo*FQ(U*ZN=X;NKX3+dBV?;eYQm{y!$q-vEDGB>xNGdS7(E zf8t+;$uEpw7Q~Poc;v)*?9hB z)6d59E9zc<$NLlH&o=Z6<3I847e>u%Zo)q?ezQ44$bf&`s02oLB06qW!Fm{C)+c=ur z+JKxL&0VeE+L)UdJ3`u2b!_L^a6JzzLrz|6mw;teC3}68sLe{h<{TKuhO&l+8%i{E z4|&~HY+&uqOesO>nR9~Z5g7QfpD4dWz*e3wF zC30|{Kj7Zp*+=rh0Cqp$vyY9V2r<=X$V+U72hpMBZ#k3577sH<cP0EcFKEBuwY$}ySSO{zP5Q{DM`Fa$y1QMV5uqS5X{!q8iZV7k(^9= zZ_C{2E^J3|+{9oW29ZWbI79f78-1Kl`Vo{Zi_dnz>`R(z_MY8!P>;<9~fpMGS)JnT*5;(Rofxr4hZ%L8gJPwPDh zc9g83S&?`);v1LpD11+SzA$B8%JQ(3;=-hIBSX6+B|wRL{H_Now1`1$kp1)Gp5?6n+;9W z#XB$?T$q+akFr2Cekln-kHi&squX!DW>(9WB`-6I@Jzl_tZnSL{m$TJW91Aur+4`FT#X`h}PE zG*7T}|43jzK#X)vn@XR~T`c|1_QtVQtFd8(u^a{F)G0*ID#u$=XA?7!;mdLkJ`w0+ z_Q(CWm;F=^1XY9bV`8_&F?W)=(Jxu!aO*7ATw3lC|7|q1Q}Jchqp|0Y@4raQDk3TL zT0%@#UIJuoq#9Li1Ivyj>h9eeVwufbAs_rfVO)t4CCipqi?Gu8Fm&^f{cC|_qg!4| zBU#jPVajFfT(U@nWUg~Wz|9sOqk_EE8C`8b7gmW>lBli4X^<93@ii+jQ#chs_*Zg;xqx4~(+xD74Vuhr6ubLUzG zR=ibN!Y2xjvOavb<16|ksl}%gxo0meTrm(ytPtQ!D!@xpccpjDD4H^Wk!l7}V*CQYM%23{fODjh?|M4z zw1rX;k``ZZN_@S1LrKS1z!`BSTEfJXDu7PK)KG;_Dn@VjMjMfK40F=Lcuw2ZUP7+O zx=!v;^}Q@Vtn#|-hpeFxk7mR{G>n&MXQw5l@h@n%g;2#Enav)0`7k9Sgj$5^54PP! z8-T0wD%JYvZ1d97O3G~NmaK{^ykug97dAJ=O~a}g^TJbfZD#U@5RSWbE#I-v(_@DS zqX)E7)?CrK$0gEE#^L#&u){_zpB{`9=+uz!ku5}qfo2imbG?E^MP2aL=mQ6@)ullDFDgWFiv{R}rt%Fi%_ zh~#oG>S7550IrY${}+q@6J-hhA7#yqt?Y~)9{IYZY3;bcjds8M7}rL=PdOYgzP`|9 zJ?Jg2t#@3{j5BGJsmU~8Zy?rCVqh?z&hPM~rctC2n|H`4Z_#==%W(#vK*ECS;v6T; zPksb!xeA^I5^b}2s%33d? zr(_UsWEpye?9VHdbW9ClpBIMfkO%vfi;J7H4HSrs#Yjgt(uEQr#2aK3!FY?~yM7fW zKU@(x!yJoRbL_TX%J5GS$<45P*)KHCTfo?|pLbo-s6DMnJ~YR?8NX@F@!>cL(vH#1 zo>|x~fYgCZ`)P{GKn-;U!M`_J%i^w)Uw-BiPr(dzo*@h}6A^TMpZ?G_awe zL7|qRYgUhzKFY(^kEPO|TMJCI3id*yZ=9pLYlipFS`W}NrMVR0uxq2HCQHpA{WM4x z089cSZ4DDPyD7a2Etcvp0!QZfWstP04rF)CTMve5$B-2qqoH*=cS{XD8#ke~p-Y^p znOpeOzKBhH$AFAN37!LSk)d}N^Jpya2b$8iH&uTXwa&jRDatTPo`8B#M4IG5d52RJ zcog>6lS*x z83GjKp&bJP-1K4ZkOj|(>Wx)Sm6df5mFO9&b5ToQJejN`FSfwNB6LsBtZrsW)?9jh z+@OM3KFo3p$4pH}*EM(=7njUejHr4nnhMSgBS2M3qZfp}ETT*vchih`splo#ptMu$5e4}#iI63U&eTS!WQsivtk4?F8*?gkjn8p7 zOt8YM(v+xTl`BXC_9((_Q`6WMn`X9D26$1aT-Fzo=EnDBy7;13>hiIJ(THc$2jMa9 zPh?vsQTluM&pcK*(=&*E8154;xBtjRiklD2aK3)n(DLJ}()lLF8uLcCRe;x{sUu`C z6vpGG6D{5)ZOS<{!8xV(N^+Sgks9|4REZ9=E5o=~XRFpZ-uu->rx=?H=txKsTb8*$ zE2u}t#PP}WJ2BNCZJS)M6j#-$D6j@$)%1)7_k$Ug;Ja~CZ>1y(R-r6o#9}{>VNH@U zd%@`9m{x{?>ma|}7p3pY=@f1bYJ4G1z?_{)RZbfVPDYJNEAU=nrV|)v9gh9Hixj6= z2WC&>0tQaLlzCKcAtQ_2k%kYhWe-kknwlmc5ZDcomPEA%GkHsWP(w7Q(&X%idX+BD z#&8oH7(}kzw00!L^K0BcEw=|p`ZcJ$4s zBR;?fv6P_YLw6t8MY=Q#L!J~DzSRNrkb(|*J^^B;IVUxI^V@6vd%noG%E8vA)!ZZAuVc4=V{ zl9r%fq+$ z(5^&5Y5%H4qlRzc!Ua$+c@Sm$N$en+xo7`@ivil!BRi{jG8GNKfyJ1 z_5_oS8stU&49If#`AW7*9f7jm;ka=md#IP4G1C0&W8&0FjHo^n$8b~hw%j&FMYC`G zo)xrvg6dyQ1fb#lY65)mb=(Hp<#>%QikYqN^=@tO_-%;W?UzE%;Uc2U8n9k zujhMl5ylcBS6(IxP*77R-nS05_gIgV7>hJiZa<)^3|4bCzPVLkIBX0b=ZHh<3Eh7q zAMYc=zI~=9@*#z&1k1cENYpnFcCt=IBx(q@H#A>aB&t&wM(JrWrRXOSA>*JAlm&1i zPYkwZVkoK3rXBv3rAhccJ}qnaHeHkl%y@nsgnn#GrE{N`?kDDZ^0f-+7!{!jc)lEzpNWb&VfOEJYg)^|3Z+p ztWSA@A1sd7$SqU<4Tg&iH;ixokmg`{Hss@B{~~;EJfF9K9(7-^I&iUh7yNzw%UEX> zdp&_87{Nwui-5js;aL;|rj|Lc0CCU(27;m{|H+U|S;S<^d@vSLR2P@dF`(N>bn3jc z$I`K@LO57GR4=0=Pugr4w7AD~zdV*4Nt+TKeWhH@NtY88QZ6>yGe9y{ok6<%k;*4z1BMlYaOR^Zu@Msll<_pvLRDW1AiJU)pK;`=90OXAC2MX?u9e0{6OMhIMy&vH#*pNj1%$wG- z|603Glx9)wu|g0E#7#*%xcmSdkLfx6teZe!;b-RSphwabrJsguR=W_0H|=N8{~3Z+ zLrcD=b8BmwlfWCmc8`Q@N$%Pi7Cl`+hFt%OG_*bKE2y<_h8ckZ*!wKxgGk02ud5=y zAKD-R)k^4$Rig0e(K(U*=VNtk@B&vH$n&K{mb`N(S?^VR)c3@T5&nzUOh-x;eKwZc z?DJl+Tn@xReYaj&sUsU_Aj{hMS3g<$EcUw7;IXD2Li@$iUwR#Gc&}jTqqYJ6`1Pm0 z@w@S5RT2{tl@ojH^V?$Olo!~rf(~z(oChe^^hq!g3!4;E1q;{vYo-Y=ox6(OLR+;!BI`5@aKvt}#r5NQ zqFZ&WhL@pkMe3%A#>M2eA72m@f$79!WhObA2__<7w3l0Es=f2LoH$xu{nQlovPeB& ziuV)A4|Z=bd<@M~9eJLlAw8$w?KSQuEj>Fa2>>_`jo)X*7k&na+Kz$Ac7@`KR<)_5 z3N9><;jcy?KdtF$V5)O)QVBHCa{|b}#%{OV=4-8OVgN;)3R{*j^SCzZ-bPYW4Nt_K z!Rfz^R~OC$$Jhs&r+US2uDv{$r778kXT)LDViE2rdCozMUVl-ZW};z6<#H?9Fy1Op z!!u`SXX_fif5!aa?3}uj!XZV?3;1}XZIVV>Av?Q!&tfN4Pi56?mp1!1#@`Cq zKNw?=I`4nb!~O>NTTS{0p!d<~eqZ8W+R`tKU#;JtP2o?q=GSQOEr$CO<8STeZ=65V z)z234*J$w7eiW?#xyw(S-woxTAU`wPpKSV>*?x@%UlgoALH^8hzcBtA?|xy_`BpvB b@SltPW}$)%Ji^aIh>y?0BVi-(e(wGU+StE! diff --git a/type-script-helper-1.2.4.vsix b/type-script-helper-1.2.4.vsix deleted file mode 100644 index dc432c96e0014831f0bc55e377da2e754866b529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6604 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 DccA`a diff --git a/type-script-helper-1.2.5.vsix b/type-script-helper-1.2.5.vsix deleted file mode 100644 index 9af884a689cd907cafe21e3b8e9946b286407b75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9798 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 T3HAF=u$rSks(pMmi( From 21ac3edc22baffe1acbec693f35e589bcd5fb3c8 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Thu, 2 Dec 2021 15:51:59 -0700 Subject: [PATCH 12/14] Quick Fix CS0108 & Quick Fix Public --- type-script-helper-1.2.9.vsix | Bin 0 -> 10167 bytes type-script-helper-1.3.0.vsix | Bin 0 -> 10164 bytes type-script-helper-1.3.1.vsix | Bin 0 -> 10539 bytes type-script-helper/README.md | 5 ++ type-script-helper/package.json | 6 ++- type-script-helper/src/extension.ts | 2 + type-script-helper/src/replaceLinesHelper.ts | 51 +++++++++++++++++++ 7 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 type-script-helper-1.2.9.vsix create mode 100644 type-script-helper-1.3.0.vsix create mode 100644 type-script-helper-1.3.1.vsix diff --git a/type-script-helper-1.2.9.vsix b/type-script-helper-1.2.9.vsix new file mode 100644 index 0000000000000000000000000000000000000000..edd9f8db407d5c251a637cb6286111fa24817a3d GIT binary patch literal 10167 zcmaKSbyQs2mo)AW92y8N!5epn;O_438Z@{D2=49>9D=*M6TESEf(8A^%zAI~-u&j< zy?Wige{}Udz0Rq%t7JI=fV;NjonCQ9Jh4EizcthOVc~kN^llz+iG^rJ{D1j~ZVph@}Z7 zDW~+;Zy-e^W-09$3@W~_e|~gxXqF_`46G6U7QJvg$qPXiZAHaiM zsR5;2)Q4V9_A_&!**EE!IHLAFqZ>ne&Rhr+`Pf4^TvUVS;gbSYLN8u{T=&%XwfYgB z>!X zqRgbO6}aR^US8|VFU_yRWS^FV5%2>K-M7D;6Oz;i5W=NPHMASTyPTtijUf;_>4HID zU-%S)7t#k!`gBxNBgQINbp>b!F3_tEE8#O|$9C)q29a{Phezdjg&|yLi8ZtaoC=rl z+Op>a7kDq3qmbG{EuK|;aaMzkyBZ0Tgg5h|aIWZC0_MmE?Y2)wikDzc9pxr~QhCWL zLsq^thy@k9BJB5=$xP@B1m8L@Jmp3NK}2%K141^Dcs%{ZPn;XY0*q%FITH zxX=YH{0(I@H64L70C#-5O(}u(wR`31X9&+GgMgZzqlCEkW7{Ird@N{9zBje%3h)O^ z8V;OeBRqW8H6%3B{ke-MzC>89-=kV1n{jbA>>!IN&c`06(=MHG-Z-kpV6zq3vm7uNLNndq2{V(Vi- z$ts=zxvaJ?iRgdNUJviXWRy0aEIWKJxS9$f^&Z1faUccKit8s7{2CTjfX{4Oz?bsA zmRb7V+eD^Q*eLh(`HUZVtKW`+8qRInjSUkt6$s!zUBmQka(yLqcish4kArft0Srw! zO(*gEgJiEb)x+{rVo!K6&k}iG`5EIe>#a6FwZ6dqbJ1sAiu~1Yi@kY!|Krp%ibx2_ ziHpg|i!<1os7BY=K`^0;dinN;S?6$8%7>OH%qWo{WZQFU<5roThwq#-O&3ZudgiA# zzK;eKrQXLarHDjI)BD9GDfQ`J>f29>v)kI~^@Xs24m1esgR$ENhrzoXm@ ziqT?HSry&^rQ{d4ZeK~7EzaYacG$IBz2Js;A(lV(dQp8f3{A(xY-qKWQ%f(+TWaH7 z_f@6;GFy0&U2^QeRoo+?&7~W4=qM!=7^Sg^_}^=Udt)~AH)eZV+TVru_UUhCW3+d5 zVf_1!!OFQpUDkeu6P3^2?7oD#H(=F$y0d#Z{n-EB3IAggCgAfFjkxVMu!ZKC z9~oUc$Lg%=G&JOLavOwdGT8Sx8oI>1V?(dkn0Dwvb0P*U%sOJ6(3Q-iqGnxjm$!I( ztO!jFDS#SOr9}iipQej5oYL*9E=q(^(y1oVD1bOBwv-{pI|C&kBpZAf5{;_G1rcIG z881Jno-v0XOT<+>Dqf%@AG0H10X3@Ggn-fV#~!^@ni~;e){DiuliBp6jG9-QFPIG8 zcNM6$LbN8qkAofigA%WBmDXG+WNp=bJ zYygdX|HiOdd7B2j-S+G*rm*@;WUgbMeSwnfrr{0SQpMqG!G)@?V9Ad)Yz`GO_c~gd&q@~H(>P7 zG4Zh^7Z`7vyilZgt9^rDQul^CrTWn&&qQLDhUG8$K&QgkVn2_A4p;q4WchZ5<}j*3 zSwu!QXvRw=ALl;Ze)Q=}af5&M%(S+Gqd5lN**zV|AUvjB_936s#@0-&^li@Qzlm?+l}RxxTzAZxvWe z1)BbPRgi{->+xQpUW5b#i$ewj`yYM)msI%&Kj8c?ey}jLaWHjyBZpnBSLKxf^w)Nl zXQE0w%A`QD?duhOM6b-a6e=WZ@dQ8(|%vy9?ET=#Bx@vN5l1B{&; zJGv+4BzE=Fd@YwfNS&h8!@#u0k{4if9OfE%@8X~ZBARz5G!zdqi6w9-N_>jYRK6k9 z5>;GfOUDfDHIm>WC-_X@6=|A?m?td0gU zvosJE%Tu&+Vr}8_XD1JWbC|}(SKRx6REzG@H&W(AnFR&r*nlz3L%{a$Hhh!5fmgB&KXq8wiyf3QIw*c>mniACMBM(Ubl>^`#P>%0vOs z$Y30hfm-~*z_3*O^$FH72>(j;JU1#zFmFlTAslMZ(&20-h1XHb!rB^3Af72qE9Wd%;0|B*PVZg|Qd zG1yYL*u@jXBBN6F6W$(+;JPyk*%X^AmS;SU3D@s4c`%gn$a=Y1vA4JD_xym&dwcRo)S` z=Iav?*%jmPY?QFxEzY9WW=`9CNViF_>kr9Ax|h zHn8>ve?qW>ZWvDpL3x{;R|wSSNOl#KpLa!gTnVzJr`)qJ6?Hi2XDn-xFc8M_wTNmC z;$-G^y1ew`-I{wWPw&TKGBU-?t0pJV_X-GE`$cN+-5H4J;Noh}yq*ri3>;1XOjoCD z511631^cMvRMF8eUV)j$+|NS|@1`iisS05N^VWI;KMj=u@r?u6qP_|sp}@LfwHT!d zGcff6x9D?mE)60Ilc|FOmug==OuMy7sL6KHgXpVO9aY)nM5o{C5kWG>fTK6 z-V_$w?3(A*YN~1wFT6YQa`AeNDvFUFyC8Z8I$I{WdKcBd5d(?6H|x@Vi04~km{AkflSwjowl?@oW! z6PCZkX0vw>&R>T}XUGgTpIt-jnPSh#WI{RAoVvR90rnTT1zYetz4Ecq;@j4(0pE=^ z(Z38TCq4)NJcNLa&AZw=oxWUo7L(G0*jN#F%SnS)AN8X(?d*3{8aI@N$Rs(Q5C00> zu1Gn3Q7L+SG~Q~PvAq9=61NA|{W+mXRIj)LeZN82d&E^zD^wsX{s{Q*o9>$*D22GQhBkNh zgKCkhCXfZM8ZamzScAoEdy`IuW&>)h{Sw?2h1Kl>!e+;9BYqn`mWb2wJm0!z|ZR$PQfOg1ZPH?)Y@U^!%395B@*fKVX!-dyXuS9{|<^2(S zd2=S^tpO>$^WM}{V9fr8fO}K;^;wF2v+onLUi`aAH1exP+Fi0?_m#Q_Tk$UfXP{0R z)tA}NbIRY_7MR%^Mv>I^c&efpFu!G@(AR!K^?X6_D7<65`igKi?gv4Ame=QjrIW>v ztaB0_URw=bW26kXVxxQEx)=Q6{kFsn3PpIR-jI}#7O}y8-h3d^=Ps(ZZ>%Di%(s0$zpyFKJkz-vHV?jmUAMJ|4#CFP~H8WN#&^6Qs1aOs}ca_k&rTy&c3 zf`$~y-JNB6SQk(aQJ)OGoV-LHupCQS(m zmOj`n28nX^S`NTNpc%fSWJkm;fzkk_1PIzyHe<9=#9nB>9S6i|#-I!i9q{n`GIn1~ ztj$;H>mS))Hvu&V$IvuHHcDG-%(QldU^O%b6ZJEkgfmpzS!Y%I~A-j zM7vd`fw7fMc0C#1spvl-SC?N6wYt_h*o9nz{XG)lazI#0M$T(M8pmmCOjBQ z3bR5eZv$DB>iL13%ID+Mp|@nb%EyrV_iN!otPc)Njcfy(353uB6lZ&xpm_FiL0`5!X=+n(7 ziRCgDM-8y37O7XFdkWgn7rTrG8`TqB}VqNIT}Jg*0={}5S^G&=+*ivVc5>CWg|x*hq%$K7sKK- zbGlSaoeH6^m=G(!fJZJLQQdD(o^MKu6?BJKA??adsIDsJoSax>#ARpU?UCla*u?8D zF$yd@f3KOIYxk1VMOJS^(D^DfNYTQVdRnOBCAF86IVV?QIZz)%cG4iq?JnwP?lz4^ zFK9gZLD?dB--*XMeg`< zdDgTv8}{aY%u_nF<;l^0IsOzGZH3MGIsRf5 y#PG9@Osw5L$NJJa3BJ$CtJG#Lf zyM=E07{j66uj6(3mo1bkQzpX@NX==6igO!OA@sEiA^AkAq=kA02ywQRu$lrUttI}>I?acu_hWY>Pb+Z4k*BxvOjZOc# z)pxaQowpm%Ub0f3U`59>O6sDM7$nm_&aY`Stm+)q+1m_qyk8lgBBi^OiRF&DmbTq* z`~)7e5dcNb?G!&TM`Yvi>!c10dsUZiZUkK_E&)2ep6&kXOW+rIm$(-Gb|lgV|9-@g z8Jv$dcGeFbx8{*#9wE?l|^@_#MMU}pvXyl(&WCS zWMRMvT9*(e*X;+3z9xM=aQ<-JiS0*?w6TuH45=XQ+fLe`^k^tc{_(zpSk0^4jjyN#E6l=#Qcl+(QVv| zx!)2(2KcOsQuJVfg_HmDKFvy7`ONXTn(uY(C9i(wj7Iib3C6l7yrBC5L2uSVGA=lv)t(=<9oekfGi{>?E+yuZx@h zGGg?HVTuQ0>fsnpB@w#GOk{Er%IFtUtbPK%WDuJnM)R;H#$*Z>FBm%L!;W|vt*FWS za-m3}A~SZ@z!$RcI5AwA5)2o~PL?U~?r-W6S04m=vc*~Nsb%|5G7>;V#sU(?KZ1ic zm`Kjh@qRr8GEY!Jg3}_-LKV4q@&jd5O25FrLqxf^Hx@}3liOjaH3@;)c(^3rZe8A0 zUX{ws*}f|7f4WNTvd*k2AqE`$EHm?KcgK_YaVxh8=xXHPSTPAy@n!=uFw2om^2eyP z&btuY?ik}?Io;&YY`SSnAZS807!u#1%Omp54gh7M+DLt_wt{1<$#1x5M}LJb7wGyt z{^THYT{bsAjeev?A$?JNG7jQ`+g%iV4|TLCSPbW41(``U)r{=&Rq&2|iVT8pS&#vu znSDwc%F`0kmUt=z`5N0Fv@G}z?%Dv-CrVI%MetRa_+EzHMdfj!fsm_SR&&X<2zl9r zv0*J)l?4kG&nr&%B9AAHyWQ@xo;B1wb@D=;Rm9B=JF}gSN4hBKtKvR?=j8uum`?)u6cSn?y) zSovQ#`3Y834f<&in){IUn-DrsQ?Z0SQ`72Mn>E=gj|fgyx|Olb5uF^>6@NW$c25!w z9b`+F1G8&e-W0>cy+di9%f{?)#ZV)jc$enoV(nX;_ggV!qkvA;FM@~4t2sb??3R{J zbw@&~=BeT}$5}gyCoRS93HeUviB@b5-$^%pk=UG36pGmh;%OYed9HfDq#Y3<4V@ze zV@YV82hv)3T*oJONrLkBWGgMM&%25c>n?0syo7L1#UOo6UnRI;!K1>qmas)?ypT>wmzFm=>=?PzbS?+=BOLu!J zqUi1(Sf|I%df|=Sx=tUoCttW?_asH_!$M9G>6i}Uy+GIiKitoJKO!Df^=9y#CkZRZ z4BIXuJkz{(qj+_3jLtBoWtVNNw>r?%TV=3jukN?n&gNF6Z~d=jApJ!zFu(W&_DkiZ zc&T51Frzk&#*s6|E~sl}j?E4kL4;jnf{Wu=@PnJiV(+|=NX4PpxaBg{ zT0t5$#X&;uR3<#L=~qf=)Mh1Iyjcq3o**}lJQs{UOo~APbWp#}DqMhYKh+=2@cWWf zHv^w#E_D zW}~$l?n}Z-(n@}LW%{s1u6BY}afO*0%A+&MVFmFa4lhY)6+WC#*Xj0X-sXFq>O{`1 zXyNBJ`0&N=(z@Qv54~%T>r!mK^+ZI+9^xPnVCBvfhW2OX0tHUm{J1Qqlnut!5%Q(f zx&96j+v)_apI_?-M?K`^VtGiMs#m|@cVWqMN{hS45QS+taV{Up)_4Tb<=bMCl@Pxw z?&q;|A$=yM+^yl!EZMiN=e4$4AlaS&_0whv=C|6&2ED0`iZ`{f7&EV1ZKQtN!d^7L zGQSLF(V#U`C(D5Ng(gqQH5ZW|!I$90IsuwQz*tB!09)vD6qHl~HRGknE<>l_7NJvY zAl+@uGzCsrKYdZt$1%RZxBne_go;yN@R@wIOwIm9R*tJzC|J8-ZDF z0uAkcwb^wgUq&5+zoZe;cI6r9Zrw`D?eEyyQMmGPVX+>ip0L9_gm88^-IpX4}+Sw%O?QW<7(N z%-S^`%+$w^BTJD$--R?F9`Sz6$!d-#U82|`OV5KE41-U{&&_MT@N`O-ui*7rM+&id zSew~4LUhi@fh51B)^RNVs4l$;wxX=i&1a)af;Jk@Xm-UDf(8X$uZ~#*DUN*6!sg3Y@uN_j};bf>+ z?-SjJgwF+=5YeI8=%3E$U;e8TYmNTN!S$9yb29zeiNXCV%lT(sA0C z#L1Wy@ehfdc-i|y|MF|+0ekq#oRs$oB8$P9phV$H=be#^QvxVgOhctlHLLo{2f2e3 z7)g)&**bt0LQPA@Bt*gAfRbEh0EmtTG1)bwLWA6rIP}G`M^$E-{NncM96PdKax8dD zYiI_{xWd^L9m=_K+vq5i6j|wWl*br(86)%kz7r6T4iBY83PY`oXIkxigAc&@pxR!Y z>wEHA4{3dwGVT!)aq;OZg>FfVnIS9xyJsBnmsoS-cZo?j%u&uH&4tg860LJZq_@A~ z>x8Jc-S|HfBfQ_J7#Ne8e$7kc=@lNw8M7H%f?#Q9=oAjOA)iSwoemep)-{v#FicW7 z&990X2EM3U7TQ6VXqkFr@hy@ zxOm7|j~)>3%_riSr6@A;_qo%DFJ(LkoO5J6@*+|G;WI4eCi4AExjaqXhskFtUfDkC zzEmufABp}~{giAz0_`u^{3h-G$e$;7@Z2U%a^<^GwqQp?GuI990^Py{r`h>%A14g} zM`UM<(jx9o%lhugH=LFqv5@Nh@ZeBtz0?*8S6PE$3c$!Q!P)bTQP0lLTd5q%$6^KQ z@(n_GXzjEz$ZSGnZIR&2*ij~Zldn|>dw95yy6>LPJ17oY=Bq;yNxDsEcZe?pJ zH?({N8aElg!Ze8m1P=ZB*t$UalI%Wr~O$Q6W$XZD1@< zPf7Y$O9d1gv-bC>!54=`1lP@UpS|eaD%qRej*eT$i7JbUL9dM@qkWa{Pa$`KuOq&f zPw z68G4}AY@eyZx{~EFt1>qw5(iV#&1_KzOK7i%7RWoYot{f9slmSKaVv5od2o-C-<+7a57|8zmb2=mW{l4nV~Z{Crx3ZE2!a} zB$+Ss3w5|$Q9Kje`1*uqj7VL+!F8Ypkr;6PIGErE!eC7CbI9|LNzmNOcqmMaToctW zv$Y)PCHWqHcLZ=v`xZ#_&FEf~nL`9WOCM$-d0z;KIpd6}1rxGI^GWZqpx8vO6EGkh z%>F~!QO7cBCRn*@gM9*MiI`~tHJ;F1{Y-dLUnUi1b%6XNAT{*a{#zsZUi!`RyZeWO zRr|g$yq|J+Y}&WdhkX7afz^QWCJ4 zrB;Hkf|W0fs0a2jRMkcF{)I6X%lP;NXnNTMhK-1+5^!H)T$*}j_^~xauZ@r0e42{m zYXJd$kS8_#A7qmgS|ZFanrQQt3+Zoj1>nWI53IUgAQYs*Ap{`*?;)u-FW|qb-v9UI z?;Z7zk*R-U{Cm#izY)N|>ixmr_U(U|I{7!izh^f72jKP%;O~d{#{|b;7=O(~{F#RS zo{9LY8vK``{>1qAgv6gXzq8Xn{lVYa>0j00|M2D-{?D`g#`!x*{S)N3mH4Oe^4m)M zs~Y@)=>G=!&&J}v5&vu;ej7G_Rf9hP*8fKQ5BANUfWP~WKWXK6-|<%!_!klW3HWCh p@)yScML>UH)cbFe{)zE79VtjdzgbaWVDN9R&u`2{M)CXZ{{d&a#99CV literal 0 HcmV?d00001 diff --git a/type-script-helper-1.3.0.vsix b/type-script-helper-1.3.0.vsix new file mode 100644 index 0000000000000000000000000000000000000000..b55c01e07ab16acff6aa0719a728e6bc44013638 GIT binary patch literal 10164 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 Y$w@-K8&M!2Fz>Ig@61I&`up4e122KEdjJ3c literal 0 HcmV?d00001 diff --git a/type-script-helper-1.3.1.vsix b/type-script-helper-1.3.1.vsix new file mode 100644 index 0000000000000000000000000000000000000000..ecaefa4bd9b43945a6281bf11dec248ff7d44ace GIT binary patch literal 10539 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 3) + continue; + let leftPadding = lines[i].substring(0, lines[i].indexOf(segments[0])); + if (segments.length === 2) segments = ('protected ' + lines[i].trim()).split(' '); + let camelCased = camelCase(segments[2]); + let properCased = camelCased.substring(0, 1).toUpperCase() + camelCased.substring(1, camelCased.length - 1); + let capitalizedWords = toCapitalizedWords(properCased); + lines[i] = leftPadding + '[Display(Name = "' + capitalizedWords + '"), Required] public new ' + segments[1] + ' ' + properCased + ' { get; set; }'; + } + removeBlanks(lines); +} + +function quickFixPublicLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + let segments = lines[i].trim().split(' '); + if(segments.length < 2 || segments.length > 3) + continue; + let leftPadding = lines[i].substring(0, lines[i].indexOf(segments[0])); + if (segments.length === 2) segments = ('protected ' + lines[i].trim()).split(' '); + let camelCased = camelCase(segments[2]); + let properCased = camelCased.substring(0, 1).toUpperCase() + camelCased.substring(1, camelCased.length - 1); + lines[i] = leftPadding + 'public ' + segments[1] + ' ' + properCased + ' => ' + camelCased; + } + removeBlanks(lines); +} + function removeCommentLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { lines[i] = lines[i].trim(); @@ -265,6 +312,8 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.listToListFamily: { listToListFamilyLogic(lines); break; } case LinesAction.listToListWrappedComma: { listToListWrappedCommaLogic(lines); break; } case LinesAction.prettySql: { prettySqlLogic(lines); break; } + case LinesAction.quickFixCS0108: { quickFixCS0108Logic(lines); break; } + case LinesAction.quickFixPublic: { quickFixPublicLogic(lines); break; } case LinesAction.removeComment: { removeCommentLogic(lines); break; } case LinesAction.sortLength: { sortLengthLogic(lines); break; } case LinesAction.sortNormal: { sortNormalLogic(lines); break; } @@ -284,6 +333,8 @@ export const expandSql = () => linesFunction(LinesAction.expandSql); export const listToListFamily = () => linesFunction(LinesAction.listToListFamily); export const listToListWrappedComma = () => linesFunction(LinesAction.listToListWrappedComma); export const prettySql = () => linesFunction(LinesAction.prettySql); +export const quickFixCS0108 = () => linesFunction(LinesAction.quickFixCS0108); +export const quickFixPublic = () => linesFunction(LinesAction.quickFixPublic); export const pdsfToFixedWidth = () => linesFunction(LinesAction.pdsfToFixedWidth); export const removeComment = () => linesFunction(LinesAction.removeComment); export const sortLength = () => linesFunction(LinesAction.sortLength); From fe9a91d1cb2873ccd955654fc68c24b1654fcdab Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Sat, 4 Dec 2021 00:00:16 -0700 Subject: [PATCH 13/14] 1.3.2 --- type-script-helper-1.3.2.vsix | Bin 0 -> 10757 bytes type-script-helper/README.md | 7 ++-- type-script-helper/package.json | 10 ++++-- type-script-helper/src/extension.ts | 2 ++ type-script-helper/src/replaceLinesHelper.ts | 33 +++++++++++++++++++ 5 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 type-script-helper-1.3.2.vsix diff --git a/type-script-helper-1.3.2.vsix b/type-script-helper-1.3.2.vsix new file mode 100644 index 0000000000000000000000000000000000000000..508de34b935295330269eed681c717334a435b99 GIT binary patch literal 10757 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 3) + continue; + let leftPadding = lines[i].substring(0, lines[i].indexOf(segments[0])); + if (segments.length === 2) segments = ('protected ' + lines[i].trim()).split(' '); + let camelCased = camelCase(segments[2]); + lines[i] = leftPadding + segments[0] + ' ' + segments[1] + ' ' + camelCased; + } + removeBlanks(lines); +} + function quickFixCS0108Logic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { let segments = lines[i].trim().split(' '); @@ -177,6 +192,20 @@ function quickFixCS0108Logic(lines: string[]): void { removeBlanks(lines); } +function quickFixProperCasePropertiesLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + let segments = lines[i].trim().split(' '); + if(segments.length < 2 || segments.length > 3) + continue; + let leftPadding = lines[i].substring(0, lines[i].indexOf(segments[0])); + if (segments.length === 2) segments = ('protected ' + lines[i].trim()).split(' '); + let camelCased = camelCase(segments[2]); + let properCased = camelCased.substring(0, 1).toUpperCase() + camelCased.substring(1, camelCased.length - 1); + lines[i] = leftPadding + segments[0] + ' ' + segments[1] + ' ' + properCased + ';'; + } + removeBlanks(lines); +} + function quickFixPublicLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { let segments = lines[i].trim().split(' '); @@ -312,7 +341,9 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.listToListFamily: { listToListFamilyLogic(lines); break; } case LinesAction.listToListWrappedComma: { listToListWrappedCommaLogic(lines); break; } case LinesAction.prettySql: { prettySqlLogic(lines); break; } + case LinesAction.quickFixCamelCaseProperties: { quickFixCamelCasePropertiesLogic(lines); break; } case LinesAction.quickFixCS0108: { quickFixCS0108Logic(lines); break; } + case LinesAction.quickFixProperCaseProperties: { quickFixProperCasePropertiesLogic(lines); break; } case LinesAction.quickFixPublic: { quickFixPublicLogic(lines); break; } case LinesAction.removeComment: { removeCommentLogic(lines); break; } case LinesAction.sortLength: { sortLengthLogic(lines); break; } @@ -333,7 +364,9 @@ export const expandSql = () => linesFunction(LinesAction.expandSql); export const listToListFamily = () => linesFunction(LinesAction.listToListFamily); export const listToListWrappedComma = () => linesFunction(LinesAction.listToListWrappedComma); export const prettySql = () => linesFunction(LinesAction.prettySql); +export const quickFixCamelCaseProperties = () => linesFunction(LinesAction.quickFixCamelCaseProperties); export const quickFixCS0108 = () => linesFunction(LinesAction.quickFixCS0108); +export const quickFixProperCaseProperties = () => linesFunction(LinesAction.quickFixProperCaseProperties); export const quickFixPublic = () => linesFunction(LinesAction.quickFixPublic); export const pdsfToFixedWidth = () => linesFunction(LinesAction.pdsfToFixedWidth); export const removeComment = () => linesFunction(LinesAction.removeComment); From 90339198fbce469f24323b6a93992f4ebae854f0 Mon Sep 17 00:00:00 2001 From: mikepharesjr Date: Fri, 24 Dec 2021 21:42:32 -0700 Subject: [PATCH 14/14] 1.3.3, 1.3.4 - Quick Fix - Instance Field to Calisthenics --- type-script-helper-1.3.3.vsix | Bin 0 -> 8744 bytes type-script-helper-1.3.4.vsix | Bin 0 -> 8795 bytes type-script-helper/README.md | 17 + type-script-helper/package-lock.json | 3348 ++++++++++++------ type-script-helper/package.json | 198 +- type-script-helper/src/extension.ts | 1 + type-script-helper/src/replaceLinesHelper.ts | 37 + 7 files changed, 2505 insertions(+), 1096 deletions(-) create mode 100644 type-script-helper-1.3.3.vsix create mode 100644 type-script-helper-1.3.4.vsix diff --git a/type-script-helper-1.3.3.vsix b/type-script-helper-1.3.3.vsix new file mode 100644 index 0000000000000000000000000000000000000000..a23d15fe4dcd97c1fef8e1fc35ae9da712df0271 GIT binary patch literal 8744 zcmaKS1yCGYw>8cH0fM``26qi^6Fj)P26qVz1b26LcPDsoPjJ`49Rh(z-m826-21-w z@2Q^CUDdU!cg^Zm`>ZvJa?miC5D)+W1Xe|g%J+~+vL+}9h&})W1U3W&gsHo;shyLh zy&bcwlcl?@p`E3fsgv_SlJ19P7R=!4#p;k=7h}Zs6h$r7#zIwVNT!M53+iccBiJ6>TAoG(C z@E4p4`y7F+iQaI7aPf)54$eCfZz&WQ#wwXUAh24Zz;Y_}s8mLzEz+vN8rDGM%1)UW zo)X*;IeO382&H7#2|^&l1)JCHM14=%Gz#}XAmSNH6-pz+-7E;cZAqBdF%Q)<*E>Zaycll47 ztgMUAom~D}fJNpt6_pvxPC8E9DI~yhqbZ9DUkat@M^-?~8^U%;3a7x5RBjIT6JEw* zowm5tlzWU9?PRTQ33~=hAGzF^Z8Pr)py^=_c3VGj35{`3N29EA`rT-?cPu9!{xmq8 z<{XDEFk%=~+j$@IlWiNFrBYQD_q5vVdeQBT2m8TVfOF!ZC<6LuS{}Fcsh59M z>kHBWLy{qKn~LYDbqBmdfinHQy+L`E5B1a!3XJ1-SplJvIui;BC9=ioVJ)%jJWhDc z9-KFU>gT)(yaN**^E>-$#&Pb|=YwRxLKl_Gq!`z0c!S8oC8$Rcl9tYrB9h{4RnyW2 zpLS>vfl8~Z`)z{p+^bN?&dpN{bD)EHr_NpgGuXJAHnh9iMek zQwlXZ#pdkUowjxyl#}k#>fyFEgumOMP*`YWT!%j&K`(N6z6)_XJbY^MxPziLl~7m_F`~aoqFDaC1lq2#nWN zTg=|>mFv#>sve(AophPqZEbvFL>+rs-bmbK^ll3(Ey2zj#?@GO1?q`x)Aqa_C6+5V zJaI7i0htu{{P+@`)`w2bu7XX{+Gww4i(DJtxnJ9eL)1iaJ7t@e-7RhumQ>g%HQxaL z)~&!_c|cr;S!@ilF~S1`I*p*{@zOo}Dxq$)3I-dt?}fv4$Xj(K*LCfy(}dcL@9VY( zH)5-#b%-%RwPbFx@`dX|)saYFX9vyXDV7O}iM;>-DU&`=KKSl&9~B%V9TsVH9a?@> zF6%)4v*Qyj!?L>9PJg`~|9H3GiAjqBr6lA(NHN=*=tk8>^|HJb_o93@6vwB1@5v_~ z)N)HNZkR#V#G*I42DtYkgh5^fN1Cm1E%0K%Z+!@Uun}4g_NTR)_*`>VAOZ^x2@=9s zHmd)y#24J(0YNgN(ILL#Q<)X2ckFJgdV5}r?b9;=UsZgQncunPPKq%$L}vp{^D1!*1Uf3$}Z zx`+LrE&;C!hWV;sug(2k_^)SwE7&`G7w30>Uol%bRen^kU*>r$Xz%~@rS#4KPdf3s zX+Z+pVx@>Pra@x6=*vJ}PHF8x0=inNi{5O`U>!nesP{t1vAS2~B%%;MTixTh)}99X`QD*O;&k3HN{rH!a0) zsp1G(>;~dAL2@N<+G284 zhGTS8Z$FRXco6q&A0kXeFLb4hh*@Ep4$v#Mjyod78icFjG4SjfR5|x{)aQr?D>F$7 zg_bnV6s4Y@<);~f3t}kIN<3l*5@XOY5u_d}whJNY1N#tpt1I6IY-$uDjoUE$c&k27 zj={UeZ_4#Gemfp*`4)GTTBf#%qyI+tJNOd;uQ7cep0fA=FkFX~ua<4FyB;V zsDJ4vH1BwWR#-`l8f9ufjAgp}h4g3FHtzvz9e}Y?ba+pd2sN6LmE?^$Rmx6+hb&xl zv-dcxEQtYs%TlU%vSK`4pV^GPZMRzQ%o1oa4-nkwPi9Fy|FO`NLmMJHHzuflCiGSe0`o~Ax)?)sVrrmpF3C2Y@Tw5w*3ndm6>yLSMo6eMAINd69 zsu}6Z_Za2#1$0Zxy?nS`ZgP;_NtFe{jaj1#=xN^Sn33gWETam99Ej@oTLmSml)5i; zgR5sb{Y3jx7BQB@-6~dOu{%OAc$vS@*RN)oO_Vsg!c!**Lq_IQh{cIM-#mlg8b=W)ie z4$qf}pDfsbzZWcemp>@Z7<^wd%OE zb*;&+ZhrfvC6hCG=QgtpuQ2K!Ez4D>EFEX^i68fJ@*=5Aj9l0I!P{x^dJ&acUgMTT zQ4St(foKdOg@J%LLWO|%zjcQ4f9Z^)siDaSI~xyqOFL61X;Yg|rjDQ!niX30uY-1;jG&8GEE`^_0aXGbfA1bg2OvDhZlnS#M~2E^7v=v5H|;@O#?}S%ZY| zqRY$jQb%PmTJgC#x&(m2Haf%t{c5=LZc!EEirjuN+i2QcQR^=`+vuzEdtP+&S#fx{ zG>sTmNsbirfc98A_-H`L95Y`YFYYm(?w;g!>&n=22~ued-^zA~>nUrOZLf=YsZmi&O#IfFdafb@9rMW3%?%Iq za)#feF6nNqXJYzX9R(&)ZjlZ}Ms94>Quaj!h3eO4a+&>B(r-^LIz)FxbUWEiTIfJ%ia#SG59> z?)#gar=LAP4~T7h!5%k%ng50U7-4wV9cG^-s}9^qRaOp~w!YiMd|=Y>V~=kWB998YN6R^p4PH%6TB{bwq*(RN++h<-TqK zkl_D+l&AO)l>cO7Xl(jV#-Hfesw_*RKX<7;l9>5u*Afye*SLA5^H9R}ub4%PAOcGH zw^z|;3@}ZGr;$JqkIVLY1xk|^lIXSe+#hj-{0}{T9-gLV;fzPj%Nj>)QC?;gaQ?ha z53Ijikon0hbO-fBjfle|YsdKHfF>!kB38NX+jns^rQovy&ee7{eWddZi=!Pl=n}hT zH+kW!!;vC+innbD#ax`24kBXm7eKB~7b=-BOBeN?8=1nfxQSjXJimLL5?J^$nz;fsL{#6gw!3Z8@?WX38_zQp2 z*}yO?ih$IYHD3HGRKFRl1*cRb1P8o9NyYU3yu3(e$Zjx z^!Y!T3ehMGHaXQwEfLE0ZG^Qr5fX1{f|sZ7DK4m@I$0n{mt8(IjW&Mh@5l_#E1zqJE1SA8Fm$%RF@ zK4)u}QB=~g@)mTDNaTAmqcLo2PI@3Z5PfM?#@mK7u7H@o#8DUq_-%khw1!C0L5DAi zhd6b7wwzbE!|S**r6s&L@=k;I`MtD|V0VdRBUL|h)u0Msd)_izS2nIbR#`19ml4Yh z4IAA%ixCx8-~|V;F4f#EiH@oJ2vhm0*btrJY~mTr-%x)im7 zct)rjacfRgQOXVv{29N<63G8UX2yn;XpGDepx=A!#^Z$+ zqlpOsg#Pq_2f`kl0@LsTPq$rSG#IQ-=fMlNCmU={-iTONLms$fqeBRn2iGj*epzI} z2agrsrAn4>VA7u5_d}fIJ1ny+viH>CZSCyxT(twHNr0H|q-Bjpk8*D&q~YAHtwkIs zh2wJ`yjR=%UC^IT zBR7|`A&OYg$T75lu)Ze4hZc4DT`ta4^f3w37!>U&3>ZRj2qq0; zsvjl|YHALq4K_y`JF#4X=!>=`Y&`X2@P1mWC*jsS@}6AuN1? z$Uyy!tigs@$tg^NxQC%q+7evKfuCMC`4jAia;iy-6_d`7-X0n)a(~NX7%D9PfamUN8OvZNeQj<3z~1=y7{U{P2Nk{igmK zSZT+psh=Xx7lhMwVqk61>HhQR@MhJ-`ec2!eU|<5g5%T`uAZ2lt7G4FOXoTUr{&(* z5;bpBcJX^(4aH;DBF3bj$Y4tgy60zH31Ni0Uh6JAsh{^MWIpX0J2M@`bMEn8W)Su&?o&Idcq`t+R_TejZ({nzY=SED??IIkTJRRYar; zDd}iL)g*H2A~lXM#TYY|l{7&n-ee;2FUeLIN}$^iI)6o;v=w0I5X>0I z#?%$?@!$aEgJ*%6fgG^hnEE0c>RxC;2zd3i;T-Ke!D%^J;mil<_){cK>s&=deV9=1 zPs!gR`M8<@0gIkw3}b@M6*1g5-9?ixCO_Xs2Jwuv2UXqW5Zdr2JS7b2 z8fmfPLa*bS`gmQ=P^cNNYdrQNG@+P8(Ki8V<_~kld;^Yv(*fBf@b^m#N(P)ti%hGF z#Avh+F8WK!mP;P=6BS(*#5bALhA$x#VhHi+u(om#N)V9tHd8hp2KlbVZ=ypnoZa|F z(aI{tKS*G3ZQ|ew><&>nXrDBha`CDISYF4O_Z$l=kLHczc?42pofL9ct{%SbgC;EK zR!INS zL#7Q_f2kn(YtK3hJx`UAh96^cpy8!%06Enq$6Yt%#!U=!w!^d{66i6(#?Lm#J41eS z1+Ss=LqoO6ZU2@^2r(ZYQ_|YcHixz|6^WvdNj||aU7^$jM!NjUOOpX5^Y>0><}vkW&G1cHVAA2 z9g{Y_Wj7CQK7)t0e9>!1!>@1u%2bPLwZyW^^Yc-O-PtcZLh!Tod|)~S0kn3e6103b zWD)UudU5{UZHe5m3KOS95Wd3Hou!n zHF04P(U#%|R0>MDPX9DtltQ?3l=p{mQ{Om7XHFO5)NwwM*C-LYCXGPyYS26XGIxu% ziX5-~B?c6AGFv#;8&%`-9ZwYQhq375G_tVXD7eJ)dqR{!*gK*MYEuG}e2sVD%P%5O(W`*2js1hua`e2-9^(m12-{zY)!F-F$zf8t<=1YsVu6aO#^MsDq=6uT za*Q@l4%HQ43LHXvBjDHmN6dRz*BrY3DNC|ruM77sX*^|bGR3=Q;q(^}TG>Iyp_+CWq{l4(W3;~&4P8{w?| zD66q+``!pb-Lg_2t~g{~-`6T@AyKMZJ!c-E?=Yk}HiMUiKWC`XbYQV`F4#2OL+qH% zw7^|0U(( zq@3y~%Z-v!o1Ues4z>UyVv%urV@MFCe|;YS#?hNoQn#><+^Jr+7#qcOR-He4uo%(r z$z!*2hnG>Y=5wh`eIlZb3{4G4z}e-loGbd02X#1y(>CWI<1S6v$y^jw2vLr?#mS*S z%Y&=@wRw4t6;QFK#<$hT>q3dXb`8u5rleU;Fkrby(&Q+J4b+d1?LjiLN4?{!_aQ90 zX1|pQyIHS4T6}qRD&YaZYb1HvHxLlY(tmC|P|N=5>HX8W{A6fsZD?-#y0^Bs>(sEd zU*>xIte5k$x#2rpqY)P0sC!i!nQk*MLtS3)+!q7M;ZnOGT_CFrjG%n!l#+F|k#nt> z%Q9Se`yk+ks_!hYc5-DdlAUBi*L0g}DuvgC{DZvy1ULSTi*-9lyw?PQz=uB890bae z>OFIkW@H3V5!D?8$rWyP!0Td>0T80}r)WAD&uDu4O+qzDqMoyyEyfbi)DL5iLMz9| zd~s1gkypN7)$oh95bIMcIrLrbCuJTx_E$ja6v1@t*e)$5CSr3%b4v)f0i81NBcEd| zO17IU=r)4m9lktQV?5Pi95;kbJhDczheHK+h~?cEUi*$9zH{4}*L5MQzf^qn9|(Ifb21~iK^3F zSwuAEeg?XmFaCm2aDD`c&<5JgYoukAS=Y|tmz;V!+DF)Ds%4bsSc?vpzN(RXWvg@3 zxYKY2ncNB=7rb~(Kl1I(3!@SFBSa~m&Ey+8I^VuT3iBv)BL~Y(^A>NF@V25FumNss z+ce(V0>!|U?2Z--si)Ibt6YTryNaOGA~Ec8V_lXt5~8aaG^SqEhLL(tdwc#$`a|EQ z!>!E=->NP()oJjk(IaNaC|}kUQ$40Lvo6P2zs@hqmA#RuU@`tc(hNu)_R(#bX1_Ag z)&itRpRr|_ZE&$NI2i`qg^_I8L00rMXBZeu*5F#@jDi#0*|!ndNPzgd}a>& zcCC0p*wC1m9$b6R5no8g9EMvUu$Wk-k`EYYX3~*y=z0DU_H;G@49jh?8QR*5^c<21 z{Z4ipz%6QytrTJvy`Pl8i@GZyy1g6cU0Gq8S&q($LH?Ze{ZFeS4VXlh55Z|dMS?$1r<$;Vcr|( zTxL2vpq3T(w2eB2j2qx)!jL_ZOqy6LFzP>UXbN+h=Hsg7_%&sd!GyI+;J|Dnn>;u$ zz2{nX>Bxx7r_DTiI>soY3ukxZE|y^uzXI)r&_j$gW4YVc0T4nzk@&o}#)EaVK&HIjZ+PGcpnbvIXSV&LGZiwz8Wvqa&OKsqz5LNq6!$tH zYds>dA95VxS)nxD^+Yl&0(IvxB?m3Tj`K>hTFM#UZhDuOez#+BE$~q+#gXARBt#6n>%`jm>bS zG;0-V5-I`52r$W~V{%k;%H;P8>1#4*A8ntEe;ufT5uTCwSL(8k$U%$(}nxTdm5 zqc_*)kyoUHicSY6xW;Eu?GE8Ptq{t0El5^`ag-Uqa$>UJUQ(Hz9^#*g#&6pcW+(I0 z;!1YbxIvvD+3{x3Ni;Dc&U(OC<~^})1!nU?E#pz12e`EYRH2oh02#AKy z;8*JZhY0oG0RPS){~y2#^dArLk3{k>jK31TKRx;13EyAU^tt!-&HTHO|CRUs8|P1> z^S6WlS2ca6NBB3+fA;hLjrivT^V=Z(tC~I&z0NiNd@@JV|6rH?3HW>P`BQFw4?cfY z!RI90KLP(7gZ{$!>n|Pu7N);28b0$8{fY6nOexC2!u`Gp@cQ9>{aF`Deqa3;>T(rM literal 0 HcmV?d00001 diff --git a/type-script-helper-1.3.4.vsix b/type-script-helper-1.3.4.vsix new file mode 100644 index 0000000000000000000000000000000000000000..2e109ec2c68bc85c38466e88856a828fb27674a9 GIT binary patch literal 8795 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 4.0.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/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, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/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 + }, + "node_modules/es-abstract": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.2.tgz", + "integrity": "sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/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, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/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 + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/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, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", + "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "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.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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 + }, + "node_modules/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, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/resolve": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/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 + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "node_modules/tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" + } + }, + "node_modules/tslint/node_modules/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, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, + "node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/vscode-test": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.2.3.tgz", + "integrity": "sha512-mKRTNso33NaUULiPBFg6zRjyntjcCpIgkrogyPQuKlvoQREQR8jLKN5UD4L5rkTSD+oBhcKtaLR2/g34FexURw==", + "dev": true, + "dependencies": { + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.4", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=8.9.3" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/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 + }, + "node_modules/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, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/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, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/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 + }, + "node_modules/yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "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.1.1" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/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, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/mocha": { + "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": "12.12.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz", + "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==", + "dev": true + }, + "@types/vscode": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.40.0.tgz", + "integrity": "sha512-5kEIxL3qVRkwhlMerxO7XuMffa+0LBl+iG2TcRa0NsdoeSFLkt/9hJ02jsi/Kvc6y8OVF2N2P2IHP5S4lWf/5w==", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "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", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "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" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "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 + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "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": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.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" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "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 + }, + "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 + }, + "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" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "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 + }, + "es-abstract": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.2.tgz", + "integrity": "sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "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" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.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 + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "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" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "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.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "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-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "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" + } + }, + "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.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "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" + } + }, + "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" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "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" + } + }, + "mocha": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", + "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "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.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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 + }, + "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" + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "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" + } + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "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 + }, + "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-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 + }, + "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.13.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "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" + } + }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "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-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": "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" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.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 + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true + }, + "vscode-test": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.2.3.tgz", + "integrity": "sha512-mKRTNso33NaUULiPBFg6zRjyntjcCpIgkrogyPQuKlvoQREQR8jLKN5UD4L5rkTSD+oBhcKtaLR2/g34FexURw==", + "dev": true, + "requires": { + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.4", + "rimraf": "^2.6.3" + } + }, + "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" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "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 + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "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.1.1" + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } + } + } } diff --git a/type-script-helper/package.json b/type-script-helper/package.json index 152bd58..d7da878 100644 --- a/type-script-helper/package.json +++ b/type-script-helper/package.json @@ -1,68 +1,130 @@ { "name": "type-script-helper", - "displayName": "Type Script Helper", - "description": "Helper for VS Code in TypeScript", - "publisher": "IFX", - "repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper", - "version": "1.3.2", - "engines": { + "displayName": "Type Script Helper", + "description": "Helper for VS Code in TypeScript", + "publisher": "IFX", + "repository": "https://github.com/mikepharesjr/YO-VSCode/tree/master/type-script-helper", + "version": "1.3.4", + "engines": { "vscode": "^1.40.0" }, "categories": [ "Other" ], - "main": "./out/extension.js", - "activationEvents": [ - "onCommand:readOnlyLinesHelper.searchGoogle", - "onCommand:replaceLinesHelper.addCSharpComment", - "onCommand:replaceLinesHelper.addVBComment", - "onCommand:replaceLinesHelper.convertToRegularExpression", - "onCommand:replaceLinesHelper.cutEachLine", - "onCommand:replaceLinesHelper.expandSql", - "onCommand:replaceLinesHelper.listToListFamily", - "onCommand:replaceLinesHelper.listToListWrappedComma", - "onCommand:replaceLinesHelper.prettySql", - "onCommand:replaceLinesHelper.quickFixCamelCaseProperties", - "onCommand:replaceLinesHelper.quickFixCS0108", - "onCommand:replaceLinesHelper.quickFixProperCaseProperties", - "onCommand:replaceLinesHelper.quickFixPublic", - "onCommand:replaceLinesHelper.removeComment", - "onCommand:replaceLinesHelper.sortLength", - "onCommand:replaceLinesHelper.sortNormal", - "onCommand:replaceLinesHelper.unwrapSql", - "onCommand:replaceLinesHelper.wrapSqlCSharp", - "onCommand:replaceLinesHelper.wrapSqlVB" - ], - "contributes": { + "main": "./out/extension.js", + "activationEvents": [ + "onCommand:readOnlyLinesHelper.searchGoogle", + "onCommand:replaceLinesHelper.addCSharpComment", + "onCommand:replaceLinesHelper.addVBComment", + "onCommand:replaceLinesHelper.convertToRegularExpression", + "onCommand:replaceLinesHelper.cutEachLine", + "onCommand:replaceLinesHelper.expandSql", + "onCommand:replaceLinesHelper.listToListFamily", + "onCommand:replaceLinesHelper.listToListWrappedComma", + "onCommand:replaceLinesHelper.prettySql", + "onCommand:replaceLinesHelper.quickFixCamelCaseProperties", + "onCommand:replaceLinesHelper.quickFixCS0108", + "onCommand:replaceLinesHelper.quickFixInstanceFieldToCalisthenics", + "onCommand:replaceLinesHelper.quickFixProperCaseProperties", + "onCommand:replaceLinesHelper.quickFixPublic", + "onCommand:replaceLinesHelper.removeComment", + "onCommand:replaceLinesHelper.sortLength", + "onCommand:replaceLinesHelper.sortNormal", + "onCommand:replaceLinesHelper.unwrapSql", + "onCommand:replaceLinesHelper.wrapSqlCSharp", + "onCommand:replaceLinesHelper.wrapSqlVB" + ], + "contributes": { "commands": [ - { "command": "readOnlyLinesHelper.searchGoogle", "title": "Search Google" }, - { "command": "replaceLinesHelper.addCSharpComment", "title": "Add C# Comment" }, - { "command": "replaceLinesHelper.addVBComment", "title": "Add VB Comment" }, - { "command": "replaceLinesHelper.convertToRegularExpression", "title": "Convert to Regular Expression" }, - { "command": "replaceLinesHelper.cutEachLine", "title": "Cut each line after |||" }, - { "command": "replaceLinesHelper.expandSql", "title": "Expand Sql" }, - { "command": "replaceLinesHelper.listToListFamily", "title": "List to list family (Kristy, Mike ...)" }, - { "command": "replaceLinesHelper.listToListWrappedComma", "title": "List to list wrapped comma" }, - { "command": "replaceLinesHelper.prettySql", "title": "Pretty Sql" }, - { "command": "replaceLinesHelper.quickFixCamelCaseProperties", "title": "Quick Fix - Camel Case Properties" }, - { "command": "replaceLinesHelper.quickFixCS0108", "title": "Quick Fix - CS0108 (Data Annotations)" }, - { "command": "replaceLinesHelper.quickFixProperCaseProperties", "title": "Quick Fix - Proper Case Properties" }, - { "command": "replaceLinesHelper.quickFixPublic", "title": "Quick Fix - Public (Expression Body)" }, - { "command": "replaceLinesHelper.removeComment", "title": "Remove comment" }, - { "command": "replaceLinesHelper.sortLength", "title": "Sort by Length" }, - { "command": "replaceLinesHelper.sortNormal", "title": "My Sort lines (ascending, case sensitive)" }, - { "command": "replaceLinesHelper.unwrapSql", "title": "Un-wrap Sql" }, - { "command": "replaceLinesHelper.wrapSqlCSharp", "title": "Wrap Sql for C#" }, - { "command": "replaceLinesHelper.wrapSqlVB", "title": "Wrap Sql for VB" } + { + "command": "readOnlyLinesHelper.searchGoogle", + "title": "Search Google" + }, + { + "command": "replaceLinesHelper.addCSharpComment", + "title": "Add C# Comment" + }, + { + "command": "replaceLinesHelper.addVBComment", + "title": "Add VB Comment" + }, + { + "command": "replaceLinesHelper.convertToRegularExpression", + "title": "Convert to Regular Expression" + }, + { + "command": "replaceLinesHelper.cutEachLine", + "title": "Cut each line after |||" + }, + { + "command": "replaceLinesHelper.expandSql", + "title": "Expand Sql" + }, + { + "command": "replaceLinesHelper.listToListFamily", + "title": "List to list family (Kristy, Mike ...)" + }, + { + "command": "replaceLinesHelper.listToListWrappedComma", + "title": "List to list wrapped comma" + }, + { + "command": "replaceLinesHelper.prettySql", + "title": "Pretty Sql" + }, + { + "command": "replaceLinesHelper.quickFixCamelCaseProperties", + "title": "Quick Fix - Camel Case Properties" + }, + { + "command": "replaceLinesHelper.quickFixCS0108", + "title": "Quick Fix - CS0108 (Data Annotations)" + }, + { + "command": "replaceLinesHelper.quickFixInstanceFieldToCalisthenics", + "title": "Quick Fix - Instance Field to Calisthenics" + }, + { + "command": "replaceLinesHelper.quickFixProperCaseProperties", + "title": "Quick Fix - Proper Case Properties" + }, + { + "command": "replaceLinesHelper.quickFixPublic", + "title": "Quick Fix - Public (Expression Body)" + }, + { + "command": "replaceLinesHelper.removeComment", + "title": "Remove comment" + }, + { + "command": "replaceLinesHelper.sortLength", + "title": "Sort by Length" + }, + { + "command": "replaceLinesHelper.sortNormal", + "title": "My Sort lines (ascending, case sensitive)" + }, + { + "command": "replaceLinesHelper.unwrapSql", + "title": "Un-wrap Sql" + }, + { + "command": "replaceLinesHelper.wrapSqlCSharp", + "title": "Wrap Sql for C#" + }, + { + "command": "replaceLinesHelper.wrapSqlVB", + "title": "Wrap Sql for VB" + } ], - "keybindings": [ - { - "command": "replaceLinesHelper.unwrapSql", - "key": "shift + f9", - "when": "editorTextFocus" - } - ], - "menus": { + "keybindings": [ + { + "command": "replaceLinesHelper.unwrapSql", + "key": "shift + f9", + "when": "editorTextFocus" + } + ], + "menus": { "editor/context": [ { "command": "replaceLinesHelper.unwrapSql", @@ -74,20 +136,20 @@ }, "scripts": { "vscode:prepublish": "npm run compile", - "compile": "tsc -p ./", - "watch": "tsc -watch -p ./", - "pretest": "npm run compile", - "test": "node ./out/test/runTest.js" + "compile": "tsc -p ./", + "watch": "tsc -watch -p ./", + "pretest": "npm run compile", + "test": "node ./out/test/runTest.js" }, "devDependencies": { "@types/glob": "^7.1.1", - "@types/mocha": "^5.2.7", - "@types/node": "^12.11.7", - "@types/vscode": "^1.40.0", - "glob": "^7.1.5", - "mocha": "^6.2.2", - "typescript": "^3.6.4", - "tslint": "^5.20.0", - "vscode-test": "^1.2.2" + "@types/mocha": "^5.2.7", + "@types/node": "^12.11.7", + "@types/vscode": "^1.40.0", + "glob": "^7.1.5", + "mocha": "^6.2.2", + "tslint": "^5.20.0", + "typescript": "^3.9.10", + "vscode-test": "^1.2.2" } } diff --git a/type-script-helper/src/extension.ts b/type-script-helper/src/extension.ts index a3fb6d8..309478a 100644 --- a/type-script-helper/src/extension.ts +++ b/type-script-helper/src/extension.ts @@ -37,6 +37,7 @@ export function activate(context: vscode.ExtensionContext) { vscode.commands.registerCommand('replaceLinesHelper.prettySql', replaceLinesHelper.prettySql), vscode.commands.registerCommand('replaceLinesHelper.quickFixCamelCaseProperties', replaceLinesHelper.quickFixCamelCaseProperties), vscode.commands.registerCommand('replaceLinesHelper.quickFixCS0108', replaceLinesHelper.quickFixCS0108), + vscode.commands.registerCommand('replaceLinesHelper.quickFixInstanceFieldToCalisthenics', replaceLinesHelper.quickFixInstanceFieldToCalisthenics), vscode.commands.registerCommand('replaceLinesHelper.quickFixProperCaseProperties', replaceLinesHelper.quickFixProperCaseProperties), vscode.commands.registerCommand('replaceLinesHelper.quickFixPublic', replaceLinesHelper.quickFixPublic), vscode.commands.registerCommand('replaceLinesHelper.removeComment', replaceLinesHelper.removeComment), diff --git a/type-script-helper/src/replaceLinesHelper.ts b/type-script-helper/src/replaceLinesHelper.ts index 9a573a2..84c0106 100644 --- a/type-script-helper/src/replaceLinesHelper.ts +++ b/type-script-helper/src/replaceLinesHelper.ts @@ -14,6 +14,7 @@ enum LinesAction { prettySql, quickFixCamelCaseProperties, quickFixCS0108, + quickFixInstanceFieldToCalisthenics, quickFixProperCaseProperties, quickFixPublic, pdsfToFixedWidth, @@ -192,6 +193,40 @@ function quickFixCS0108Logic(lines: string[]): void { removeBlanks(lines); } +function quickFixInstanceFieldToCalisthenicsLogic(lines: string[]): void { + for (let i = 0; i < lines.length; ++i) { + let segments = lines[i].trim().split(' '); + if(segments.length !== 2) + continue; + let leftPadding = lines[i].substring(0, lines[i].indexOf(segments[0])); + let type = segments[0]; + let name = segments[1].split(';')[0]; + let singularName = name; + if(name[name.length - 1] === 's') { + if(name[name.length - 2] === 'e') { + if(name[name.length - 3] === 'i') { + singularName = name.substring(0, singularName.length - 3) + 'y'; + } + else + singularName = name.substring(0, singularName.length - 2); + } + else + singularName = name.substring(0, singularName.length - 1); + } + segments = type.split('<'); + if(segments.length === 2) + lines[i] = leftPadding + 'public ' + segments[0] + '<' + singularName + '> ' + name + ' { get; } //' + segments[1].split('>')[0]; + else { + segments = type.split('['); + if(segments.length === 2) + lines[i] = leftPadding + 'public ' + singularName + '[] ' + name + ' { get; } //' + segments[0]; + else + lines[i] = leftPadding + 'public ' + singularName + ' ' + name + ' { get; } //' + type; + } + } + removeBlanks(lines); +} + function quickFixProperCasePropertiesLogic(lines: string[]): void { for (let i = 0; i < lines.length; ++i) { let segments = lines[i].trim().split(' '); @@ -343,6 +378,7 @@ function linesFunction(linesAction: LinesAction): Thenable | undefined case LinesAction.prettySql: { prettySqlLogic(lines); break; } case LinesAction.quickFixCamelCaseProperties: { quickFixCamelCasePropertiesLogic(lines); break; } case LinesAction.quickFixCS0108: { quickFixCS0108Logic(lines); break; } + case LinesAction.quickFixInstanceFieldToCalisthenics: { quickFixInstanceFieldToCalisthenicsLogic(lines); break; } case LinesAction.quickFixProperCaseProperties: { quickFixProperCasePropertiesLogic(lines); break; } case LinesAction.quickFixPublic: { quickFixPublicLogic(lines); break; } case LinesAction.removeComment: { removeCommentLogic(lines); break; } @@ -366,6 +402,7 @@ export const listToListWrappedComma = () => linesFunction(LinesAction.listToList export const prettySql = () => linesFunction(LinesAction.prettySql); export const quickFixCamelCaseProperties = () => linesFunction(LinesAction.quickFixCamelCaseProperties); export const quickFixCS0108 = () => linesFunction(LinesAction.quickFixCS0108); +export const quickFixInstanceFieldToCalisthenics = () => linesFunction(LinesAction.quickFixInstanceFieldToCalisthenics); export const quickFixProperCaseProperties = () => linesFunction(LinesAction.quickFixProperCaseProperties); export const quickFixPublic = () => linesFunction(LinesAction.quickFixPublic); export const pdsfToFixedWidth = () => linesFunction(LinesAction.pdsfToFixedWidth);