From b5b16f544137418674dd6e1ce0042ea10d4d86c3 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 5 Apr 2021 13:02:38 +0000 Subject: [PATCH] chore(release): 1.11.1 [skip ci] --- CHANGELOG.md | 10 ++ dist/compat-shim.d.ts | 6 +- dist/tsconfig.tsbuildinfo | 201 +++----------------------------------- dist/worker.js | 2 +- dist/worker.js.map | 2 +- package.json | 2 +- 6 files changed, 31 insertions(+), 192 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d1002cf..3a17361c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## [1.11.1](https://github.com/AtomLinter/linter-tslint/compare/v1.11.0...v1.11.1) (2021-04-05) + + +### Bug Fixes + +* accessing failure private property ([dd4d646](https://github.com/AtomLinter/linter-tslint/commit/dd4d6464b0c34dee21f163ef252561acec83cb82)) +* add extends manually if Tslint fails to do so ([f20ac36](https://github.com/AtomLinter/linter-tslint/commit/f20ac3659e27f79f6ba46fdd0d0709c731edf332)) +* fix the null-ness, types, and bugs in worker ([290dd0e](https://github.com/AtomLinter/linter-tslint/commit/290dd0ece787eaf897c637a9f83605252379e668)) +* load tslint dynamically ([c2189f7](https://github.com/AtomLinter/linter-tslint/commit/c2189f74d8873fab023cd82a3aa63923406fcd99)) + # [1.11.0](https://github.com/AtomLinter/linter-tslint/compare/v1.10.43...v1.11.0) (2021-04-05) diff --git a/dist/compat-shim.d.ts b/dist/compat-shim.d.ts index 6e5a824d..cfaa9915 100644 --- a/dist/compat-shim.d.ts +++ b/dist/compat-shim.d.ts @@ -1,2 +1,6 @@ import type * as Tslint from "tslint"; -export declare function shim(Linter: Function): typeof Tslint.Linter; +declare type LinterTslintV3 = (filePath: string, text: string, configuration: Tslint.ILinterOptions) => { + lint: () => Tslint.LintResult[]; +}; +export declare function shim(Linter: LinterTslintV3): typeof Tslint.Linter; +export {}; diff --git a/dist/tsconfig.tsbuildinfo b/dist/tsconfig.tsbuildinfo index 674aa679..bbd4702e 100644 --- a/dist/tsconfig.tsbuildinfo +++ b/dist/tsconfig.tsbuildinfo @@ -642,8 +642,8 @@ "affectsGlobalScope": false }, "../lib/compat-shim.ts": { - "version": "9beed7934c1be9de6795b18c1f46a041ca13cdd18c4f04a00003ed5ac3f154d3", - "signature": "4fbb92b73948713415014fd8727b22f4007275b2ef13f64d79bcf6bca1a4c6ee", + "version": "9f65bb058759a30e643980435ee2a013c877e0b0b4ab6f76f675d81ac5c89a12", + "signature": "ff909562273d0877e7a960d72948e2be40895597ae24a9a93bba93c265251017", "affectsGlobalScope": false }, "../lib/config.ts": { @@ -1067,7 +1067,7 @@ "affectsGlobalScope": false }, "../lib/worker.ts": { - "version": "213678b5832967bea6fdca5dabc83f384bbd218616abd9395c189acba4fd1c32", + "version": "dd29d3a4212eeced8a50be8f2d6e24bebf15caf237f4b7cf00302043522f210a", "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881", "affectsGlobalScope": false }, @@ -2549,15 +2549,7 @@ [ { "file": "../lib/compat-shim.ts", - "start": 267, - "length": 7, - "messageText": "Parameter 'options' implicitly has an 'any' type.", - "category": 1, - "code": 7006 - }, - { - "file": "../lib/compat-shim.ts", - "start": 282, + "start": 444, "length": 4, "messageText": "'this' implicitly has type 'any' because it does not have a type annotation.", "category": 1, @@ -2565,7 +2557,7 @@ }, { "file": "../lib/compat-shim.ts", - "start": 310, + "start": 472, "length": 4, "messageText": "'this' implicitly has type 'any' because it does not have a type annotation.", "category": 1, @@ -2573,54 +2565,19 @@ }, { "file": "../lib/compat-shim.ts", - "start": 491, - "length": 8, - "messageText": "Parameter 'filePath' implicitly has an 'any' type.", - "category": 1, - "code": 7006 - }, - { - "file": "../lib/compat-shim.ts", - "start": 501, - "length": 4, - "messageText": "Parameter 'text' implicitly has an 'any' type.", + "start": 828, + "length": 35, + "messageText": "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.", "category": 1, - "code": 7006 + "code": 7009 }, { "file": "../lib/compat-shim.ts", - "start": 507, - "length": 13, - "messageText": "Parameter 'configuration' implicitly has an 'any' type.", - "category": 1, - "code": 7006 - }, - { - "file": "../lib/compat-shim.ts", - "start": 607, - "length": 6, - "code": 2351, - "category": 1, - "messageText": { - "messageText": "This expression is not constructable.", - "category": 1, - "code": 2351, - "next": [ - { - "messageText": "Type 'Function' has no construct signatures.", - "category": 1, - "code": 2761 - } - ] - } - }, - { - "file": "../lib/compat-shim.ts", - "start": 743, + "start": 998, "length": 18, "code": 2740, "category": 1, - "messageText": "Type '(options: any) => void' is missing the following properties from type 'typeof Linter': VERSION, findConfiguration, findConfigurationPath, getRulesDirectories, and 3 more." + "messageText": "Type '(options: ILinterOptions) => void' is missing the following properties from type 'typeof Linter': VERSION, findConfiguration, findConfigurationPath, getRulesDirectories, and 3 more." } ] ], @@ -2634,120 +2591,7 @@ [ { "file": "../lib/worker.ts", - "start": 1499, - "length": 10, - "code": 2345, - "category": 1, - "messageText": { - "messageText": "Argument of type 'string | undefined' is not assignable to parameter of type 'string'.", - "category": 1, - "code": 2345, - "next": [ - { - "messageText": "Type 'undefined' is not assignable to type 'string'.", - "category": 1, - "code": 2322 - } - ] - } - }, - { - "file": "../lib/worker.ts", - "start": 1705, - "length": 10, - "code": 2345, - "category": 1, - "messageText": { - "messageText": "Argument of type 'string | undefined' is not assignable to parameter of type 'string'.", - "category": 1, - "code": 2345, - "next": [ - { - "messageText": "Type 'undefined' is not assignable to type 'string'.", - "category": 1, - "code": 2322 - } - ] - } - }, - { - "file": "../lib/worker.ts", - "start": 1836, - "length": 6, - "messageText": "Variable 'linter' is used before being assigned.", - "category": 1, - "code": 2454 - }, - { - "file": "../lib/worker.ts", - "start": 2492, - "length": 32, - "code": 2322, - "category": 1, - "messageText": { - "messageText": "Type 'typeof Linter | undefined' is not assignable to type 'typeof Linter'.", - "category": 1, - "code": 2322, - "next": [ - { - "messageText": "Type 'undefined' is not assignable to type 'typeof Linter'.", - "category": 1, - "code": 2322 - } - ] - } - }, - { - "file": "../lib/worker.ts", - "start": 3536, - "length": 6, - "messageText": "Variable 'prefix' is used before being assigned.", - "category": 1, - "code": 2454 - }, - { - "file": "../lib/worker.ts", - "start": 4641, - "length": 7, - "messageText": "Variable 'program' is used before being assigned.", - "category": 1, - "code": 2454 - }, - { - "file": "../lib/worker.ts", - "start": 4674, - "length": 7, - "messageText": "Parameter 'failure' implicitly has an 'any' type.", - "category": 1, - "code": 7006 - }, - { - "file": "../lib/worker.ts", - "start": 6278, - "length": 7, - "messageText": "Variable 'program' is used before being assigned.", - "category": 1, - "code": 2454 - }, - { - "file": "../lib/worker.ts", - "start": 6608, - "length": 12, - "code": 2339, - "category": 1, - "messageText": "Property 'failureCount' does not exist on type 'LintResult'." - }, - { - "file": "../lib/worker.ts", - "start": 6720, - "length": 9, - "code": 2339, - "category": 1, - "messageText": "Property 'infoCount' does not exist on type 'LintResult'." - }, - { - "file": "../lib/worker.ts", - "start": 7866, + "start": 9647, "length": 27, "code": 2322, "category": 1, @@ -2766,26 +2610,7 @@ }, { "file": "../lib/worker.ts", - "start": 8227, - "length": 8, - "code": 2345, - "category": 1, - "messageText": { - "messageText": "Argument of type 'string | undefined' is not assignable to parameter of type 'string'.", - "category": 1, - "code": 2345, - "next": [ - { - "messageText": "Type 'undefined' is not assignable to type 'string'.", - "category": 1, - "code": 2322 - } - ] - } - }, - { - "file": "../lib/worker.ts", - "start": 8253, + "start": 10034, "length": 4, "messageText": "'emit' cannot be used as a value because it was imported using 'import type'.", "category": 1, diff --git a/dist/worker.js b/dist/worker.js index 7db351b9..7df1e1af 100644 --- a/dist/worker.js +++ b/dist/worker.js @@ -1,2 +1,2 @@ -"use strict";var e=require("fs"),t=require("path"),n=require("child_process");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(t),i=r(n),s={__example:"https://github.com///blob/master/docs/RULENAME.md"};var a=function(e){const t=e.split("/");if(1===t.length)return{found:!0,uri:`https://palantir.github.io/tslint/rules/${e}`};const n=t[0],r=t[1],o=s[n];return o?{found:!0,uri:o.replace("RULENAME",r)}:{found:!1,uri:"https://github.com/Xapphire13/tslint-rule-documentation/blob/master/CONTRIBUTING.md"}},u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var l="[object GeneratorFunction]",c=/^\[object .+?Constructor\]$/,f="object"==typeof u&&u&&u.Object===Object&&u,p="object"==typeof self&&self&&self.Object===Object&&self,h=f||p||Function("return this")();function d(e,t){return!!(e?e.length:0)&&function(e,t,n){if(t!=t)return function(e,t,n,r){var o=e.length,i=n+(r?1:-1);for(;r?i--:++i-1}function v(e,t,n){for(var r=-1,o=e?e.length:0;++r-1},$.prototype.set=function(e,t){var n=this.__data__,r=K(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},R.prototype.clear=function(){this.__data__={hash:new N,map:new(x||$),string:new N}},R.prototype.delete=function(e){return q(this,e).delete(e)},R.prototype.get=function(e){return q(this,e).get(e)},R.prototype.has=function(e){return q(this,e).has(e)},R.prototype.set=function(e,t){return q(this,e).set(e,t),this},k.prototype.add=k.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},k.prototype.has=function(e){return this.__data__.has(e)};var F=H&&1/g(new H([,-0]))[1]==1/0?function(e){return new H(e)}:function(){};function q(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function D(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return U(n)?n:void 0}function M(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var Y,z=function(e){return e&&e.length?function(e,t,n){var r=-1,o=d,i=e.length,s=!0,a=[],u=a;if(n)s=!1,o=v;else if(i>=200){var l=t?null:F(e);if(l)return g(l);s=!1,o=y,u=new k}else u=t?[]:a;e:for(;++r{te||(te=require("resolve")),te("tslint",{basedir:n},((n,r,o)=>{let i;!n&&o&&/^3|4|5|6\./.test(o.version)&&(i=o.version.startsWith("3")?function(e){function t(e){this.options=e,this.results={}}return Object.assign(t,e),t.prototype={...e.prototype,lint(t,n,r){const o={...this.options,configuration:r},i=new e(t,n,o);this.results=i.lint()},getResult(){return this.results}},t}(require("loophole").allowUnsafeNewFunction((()=>require(r)))):require("loophole").allowUnsafeNewFunction((()=>require(r).Linter)),J.set(e,i)),t(i)}))}))}async function re(e){const t=o.default.dirname(e);if(J.has(t))return J.get(t);if(Q.useLocalTslint){const e=await ne(t);if(e)return e}if(ee)return J.set(t,ee),ee;if(Q.useGlobalTslint){if(Q.globalNodePath){const e=await ne(t,Q.globalNodePath);if(e)return ee=e,e}let e;try{e=await new Promise(((e,t)=>{const n="win32"===process.platform?"npm.cmd":"npm";i.default.exec(`${n} get prefix`,{env:{...process.env,PATH:V()}},((n,r,o)=>{n||o?t(n||new Error(o)):e(r.trim())}))}))}catch(e){console.warn(`Attempted to load global tslint, but "npm get prefix" failed. Falling back to the packaged version of tslint. You can specify your prefix manually in the settings or linter-tslint config file. If your prefix is specified in the settings, make sure that it is correct.\n\nThe error message encountered was:\n\n${e.message}`)}if(e){const n=await ne(t,e);if(n)return ee=n,n;console.warn(`Unable to find global installation of tslint at ${e}. Falling back to the packaged version of tslint. If you have not done so, install tslint by running "npm install -g tslint" from the command line.`)}}return ee=require("tslint").Linter,J.set(t,ee),ee}function oe(e){const t=e.ruleSeverity.toLowerCase();return["info","warning","error"].includes(t)?t:"warning"}async function ie(e,t,n){if(null==t)return null;let r;try{const i=await re(t),s=i.findConfigurationPath(null,t),a=i.loadConfigurationFromPath(s);let u,{rulesDirectory:l}=a;if(l&&s){const e=o.default.dirname(s);Array.isArray(l)||(l=[l]),l=l.map((t=>o.default.isAbsolute(t)?t:o.default.join(e,t))),Q.rulesDirectory&&l.push(Q.rulesDirectory)}Q.enableSemanticRules&&s&&(u=await async function(e,t){let n;const r=o.default.dirname(t),i=o.default.resolve(r,"tsconfig.json");try{(await X(i)).isFile()&&(n=e.createProgram(i,r))}catch(e){}return n}(i,s));const c=new i({formatter:"json",rulesDirectory:l,...n},u);c.lint(t,e,a),r=c.getResult()}catch(e){console.error(e.message,e.stack),r={errorCount:0,warningCount:0,failures:[],format:"",output:""}}return r.failureCount||r.errorCount||r.warningCount||r.infoCount?r.failures.map((e=>{const t=a(e.getRuleName()),n=e.getStartPosition().getLineAndCharacter(),r=e.getEndPosition().getLineAndCharacter();return{severity:oe(e),excerpt:`${e.getFailure()} (${e.getRuleName()})`,url:t.uri,location:{file:o.default.normalize(e.getFileName()),position:[[n.line,n.character],[r.line,r.character]]}}})):[]}module.exports=async function(e){Q.useLocalTslint=e.useLocalTslint,Q.enableSemanticRules=e.enableSemanticRules,Q.useGlobalTslint=e.useGlobalTslint,Q.globalNodePath=e.globalNodePath,process.on("message",(async e=>{if("config"===e.messageType)Q[e.message.key]=e.message.value,"useLocalTslint"===e.message.key&&J.clear();else{const{emitKey:t,jobType:n,content:r,filePath:o}=e.message,i="fix"===n?{fix:!0}:{fix:!1},s=await ie(r,o,i);emit(t,s)}}))}; +"use strict";var t=require("fs"),e=require("path"),n=require("child_process");function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var o=r(e),i=r(n),s={__example:"https://github.com///blob/master/docs/RULENAME.md"};var a=function(t){const e=t.split("/");if(1===e.length)return{found:!0,uri:`https://palantir.github.io/tslint/rules/${t}`};const n=e[0],r=e[1],o=s[n];return o?{found:!0,uri:o.replace("RULENAME",r)}:{found:!1,uri:"https://github.com/Xapphire13/tslint-rule-documentation/blob/master/CONTRIBUTING.md"}},u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var l="[object GeneratorFunction]",c=/^\[object .+?Constructor\]$/,f="object"==typeof u&&u&&u.Object===Object&&u,p="object"==typeof self&&self&&self.Object===Object&&self,h=f||p||Function("return this")();function d(t,e){return!!(t?t.length:0)&&function(t,e,n){if(e!=e)return function(t,e,n,r){var o=t.length,i=n+(r?1:-1);for(;r?i--:++i-1}function v(t,e,n){for(var r=-1,o=t?t.length:0;++r-1},$.prototype.set=function(t,e){var n=this.__data__,r=F(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},R.prototype.clear=function(){this.__data__={hash:new N,map:new(O||$),string:new N}},R.prototype.delete=function(t){return q(this,t).delete(t)},R.prototype.get=function(t){return q(this,t).get(t)},R.prototype.has=function(t){return q(this,t).has(t)},R.prototype.set=function(t,e){return q(this,t).set(t,e),this},k.prototype.add=k.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},k.prototype.has=function(t){return this.__data__.has(t)};var U=H&&1/y(new H([,-0]))[1]==1/0?function(t){return new H(t)}:function(){};function q(t,e){var n,r,o=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof e?"string":"hash"]:o.map}function D(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return K(n)?n:void 0}function M(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var Y,z=function(t){return t&&t.length?function(t,e,n){var r=-1,o=d,i=t.length,s=!0,a=[],u=a;if(n)s=!1,o=v;else if(i>=200){var l=e?null:U(t);if(l)return y(l);s=!1,o=g,u=new k}else u=e?[]:a;t:for(;++r{et||(et=require("resolve")),et("tslint",{basedir:n},((n,r,o)=>{let i;!n&&void 0!==r&&o&&/^3|4|5|6\./.test(o.version)&&(i=o.version.startsWith("3")?function(t){function e(t){this.options=t,this.results={}}return Object.assign(e,t),e.prototype={...t.prototype,lint(e,n,r){const o={...this.options,configuration:r},i=new t(e,n,o);this.results=i.lint()},getResult(){return this.results}},e}(require("loophole").allowUnsafeNewFunction((()=>require(r)))):require("loophole").allowUnsafeNewFunction((()=>require(r).Linter)),J.set(t,i)),e(i)}))}))}async function ot(t){const e=o.default.dirname(t);if(J.has(e))return J.get(e);if(Q.useLocalTslint){const t=await rt(e);if(t)return t}if(tt)return J.set(e,tt),tt;if(Q.useGlobalTslint){if(Q.globalNodePath){const t=await rt(e,Q.globalNodePath);if(t)return tt=t,t}let t;try{t=await new Promise(((t,e)=>{const n="win32"===process.platform?"npm.cmd":"npm";i.default.exec(`${n} get prefix`,{env:{...process.env,PATH:V()}},((n,r,o)=>{n||o?e(n||new Error(o)):t(r.trim())}))}))}catch(t){console.warn(`Attempted to load global tslint, but "npm get prefix" failed. Falling back to the packaged version of tslint. You can specify your prefix manually in the settings or linter-tslint config file. If your prefix is specified in the settings, make sure that it is correct.\n\nThe error message encountered was:\n\n${t.message}`)}if(t){const n=await rt(e,t);if(n)return tt=n,n;console.warn(`Unable to find global installation of tslint at ${t}. Falling back to the packaged version of tslint. If you have not done so, install tslint by running "npm install -g tslint" from the command line.`)}}return tt=require("tslint").Linter,J.set(e,tt),tt}function it(t){const e=t.ruleSeverity.toLowerCase();return["info","warning","error"].includes(e)?e:"warning"}async function st(t,e,n){if(null==e)return null;let r;try{const i=await ot(e);if(!i)throw new Error(`tslint was not found for ${e}`);const{configurationPath:s,configuration:a}=function(t,e){var n,r,o;let i,s;if("function"==typeof t.findConfiguration){const{path:n,results:r}=t.findConfiguration(null,e);i=n,s=r}else i=t.findConfigurationPath(null,e),s=t.loadConfigurationFromPath(i);let a=null!==(n=null==s?void 0:s.extends)&&void 0!==n?n:[];if(void 0!==i&&void 0!==a&&0===a.length)try{nt||(nt=require("tslint"));const t=(null===(o=(r=nt.Configuration).readConfigurationFile)||void 0===o?void 0:o.call(r,i)).extends;"string"==typeof t?a=[...a,t]:void 0!==t&&(a=[...a,...t])}catch(t){}return{configurationPath:i,configuration:void 0!==s?{...s,extends:a}:s}}(i,e);let u,l=null==a?void 0:a.rulesDirectory;if(l&&s){const t=o.default.dirname(s);Array.isArray(l)||(l=[l]),l=l.map((e=>o.default.isAbsolute(e)?e:o.default.join(t,e))),Q.rulesDirectory&&l.push(Q.rulesDirectory)}Q.enableSemanticRules&&s&&(u=await async function(t,e){let n;const r=o.default.dirname(e),i=o.default.resolve(r,"tsconfig.json");try{(await X(i)).isFile()&&(n=t.createProgram(i,r))}catch(t){}return n}(i,s));const c=new i({formatter:"json",rulesDirectory:l,...n},u);c.lint(e,t,a),r=c.getResult()}catch(t){console.error(t.message,t.stack),r={errorCount:0,warningCount:0,failures:[],format:"",output:""}}return r.failureCount||r.errorCount||r.warningCount||r.infoCount?r.failures.map((t=>{const e=a(t.getRuleName()),n=t.getStartPosition().getLineAndCharacter(),r=t.getEndPosition().getLineAndCharacter();return{severity:it(t),excerpt:`${t.getFailure()} (${t.getRuleName()})`,url:e.uri,location:{file:o.default.normalize(t.getFileName()),position:[[n.line,n.character],[r.line,r.character]]}}})):[]}module.exports=async function(t){Q.useLocalTslint=t.useLocalTslint,Q.enableSemanticRules=t.enableSemanticRules,Q.useGlobalTslint=t.useGlobalTslint,Q.globalNodePath=t.globalNodePath,process.on("message",(async t=>{if("config"===t.messageType)Q[t.message.key]=t.message.value,"useLocalTslint"===t.message.key&&J.clear();else{const{emitKey:e,jobType:n,content:r,filePath:o}=t.message,i="fix"===n?{fix:!0}:{fix:!1},s=await st(r,o,i);emit(e,s)}}))}; //# sourceMappingURL=worker.js.map diff --git a/dist/worker.js.map b/dist/worker.js.map index 0fa4421a..42495fb8 100644 --- a/dist/worker.js.map +++ b/dist/worker.js.map @@ -1 +1 @@ -{"version":3,"file":"worker.js","sources":["../node_modules/tslint-rule-documentation/dist/index.js","../node_modules/lodash.uniq/index.js","../node_modules/consistent-env/lib/index.js","../node_modules/consistent-env/lib/helpers.js","../node_modules/consistent-path/lib/index.js","../lib/config.ts","../lib/worker.ts","../lib/compat-shim.ts"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst plugins = require(\"./plugins.json\"); // tslint:disable-line:no-require-imports no-var-requires\r\n/**\r\n * Get the documentation URI for the given rule ID\r\n *\r\n * @param ruleId {string} The ID of a TSLint rule\r\n * @return {IRuleResult} with details on whether or not the rule was found,\r\n * and the URI to its documentation.\r\n */\r\nfunction getRuleUri(ruleId) {\r\n const ruleParts = ruleId.split(\"/\");\r\n if (ruleParts.length === 1) {\r\n return {\r\n found: true,\r\n uri: `https://palantir.github.io/tslint/rules/${ruleId}`\r\n };\r\n }\r\n const pluginName = ruleParts[0];\r\n const ruleName = ruleParts[1];\r\n const uri = plugins[pluginName];\r\n if (!uri) {\r\n return {\r\n found: false,\r\n uri: \"https://github.com/Xapphire13/tslint-rule-documentation/blob/master/CONTRIBUTING.md\"\r\n };\r\n }\r\n return {\r\n found: true,\r\n uri: uri.replace(\"RULENAME\", ruleName)\r\n };\r\n}\r\nexports.getRuleUri = getRuleUri;\r\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array ? array.length : 0;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * Checks if a cache value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n Set = getNative(root, 'Set'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each\n * element is kept.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length)\n ? baseUniq(array)\n : [];\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = uniq;\n","'use strict';\n\nvar _path = require('path');\n\nvar _path2 = _interopRequireDefault(_path);\n\nvar _helpers = require('./helpers');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function () {\n if (process.platform === 'win32' || !process.env.SHELL) {\n return (0, _helpers.assign)({}, process.env);\n }\n if (global[_helpers.CACHE_KEY]) {\n return (0, _helpers.assign)({}, global[_helpers.CACHE_KEY]);\n }\n var shellName = _path2.default.basename(process.env.SHELL);\n if (_helpers.KNOWN_SHELLS.indexOf(shellName) === -1) {\n return (0, _helpers.assign)({}, process.env);\n }\n try {\n var environment = (0, _helpers.applySugar)((0, _helpers.parse)((0, _helpers.identifyEnvironment)()));\n global[_helpers.CACHE_KEY] = environment;\n return environment;\n } catch (error) {\n console.error('[consistent-env] Unable to determine environment', error);\n return (0, _helpers.assign)({}, process.env);\n }\n};\n\nmodule.exports.async = function () {\n return new Promise(function (resolve) {\n if (process.platform === 'win32' || !process.env.SHELL) {\n resolve((0, _helpers.assign)({}, process.env));\n } else if (global[_helpers.CACHE_KEY]) {\n resolve((0, _helpers.assign)({}, global[_helpers.CACHE_KEY]));\n } else {\n var shellName = _path2.default.basename(process.env.SHELL);\n if (_helpers.KNOWN_SHELLS.indexOf(shellName) === -1) {\n resolve((0, _helpers.assign)({}, process.env));\n } else {\n resolve((0, _helpers.identifyEnvironmentAsync)().then(_helpers.parse).then(_helpers.applySugar).then(function (environment) {\n global[_helpers.CACHE_KEY] = environment;\n return environment;\n }));\n }\n }\n }).catch(function (error) {\n console.error('[consistent-env] Unable to determine environment', error);\n return (0, _helpers.assign)({}, process.env);\n });\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assign = exports.CACHE_KEY = exports.KNOWN_SHELLS = undefined;\nexports.identifyEnvironment = identifyEnvironment;\nexports.identifyEnvironmentAsync = identifyEnvironmentAsync;\nexports.parse = parse;\nexports.applySugar = applySugar;\nexports.getCommand = getCommand;\n\nvar _path = require('path');\n\nvar _path2 = _interopRequireDefault(_path);\n\nvar _lodash = require('lodash.uniq');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _child_process = require('child_process');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SPAWN_TIMEOUT = 4000;\n\nvar DEFAULT_PATHS = ['/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin'];\nvar KNOWN_SHELLS = exports.KNOWN_SHELLS = ['zsh', 'bash', 'fish'];\nvar CACHE_KEY = exports.CACHE_KEY = '__STEELBRAIN_CONSISTENT_ENV_V1';\nvar assign = exports.assign = Object.assign || function (target, source) {\n for (var key in source) {\n if ({}.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\nfunction identifyEnvironment() {\n var _getCommand = getCommand(),\n command = _getCommand.command,\n parameters = _getCommand.parameters,\n options = _getCommand.options;\n\n options.timeout = SPAWN_TIMEOUT;\n return (0, _child_process.spawnSync)(command, parameters, options).stdout.toString().split('\\0');\n}\n\nfunction identifyEnvironmentAsync() {\n return new Promise(function (resolve, reject) {\n var _getCommand2 = getCommand(),\n command = _getCommand2.command,\n parameters = _getCommand2.parameters,\n options = _getCommand2.options;\n\n var childProcess = (0, _child_process.spawn)(command, parameters, options);\n var stdout = [];\n var timer = setTimeout(function () {\n childProcess.kill();\n reject(new Error('Process execution timed out'));\n }, SPAWN_TIMEOUT);\n childProcess.stdout.on('data', function (chunk) {\n stdout.push(chunk);\n });\n childProcess.on('close', function () {\n clearTimeout(timer);\n resolve(stdout.join('').split('\\0'));\n });\n childProcess.on('error', function (error) {\n reject(error);\n });\n });\n}\n\nfunction parse(rawEnvironment) {\n var environment = {};\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = rawEnvironment[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var chunk = _step.value;\n\n var index = chunk.indexOf('=');\n if (index !== -1) {\n var key = chunk.slice(0, index);\n var value = chunk.slice(index + 1);\n environment[key] = value;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return environment;\n}\n\nfunction applySugar(environment) {\n var path = process.env.PATH ? process.env.PATH.split(':') : [];\n if (environment.PATH) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = environment.PATH.split(':')[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var chunk = _step2.value;\n\n if (chunk && path.indexOf(chunk) === -1) {\n path.push(chunk);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = DEFAULT_PATHS[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var entry = _step3.value;\n\n if (path.indexOf(entry) === -1) {\n path = [entry].concat(path);\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n if (!environment.USER) {\n if (process.env.USER) {\n environment.USER = process.env.USER;\n } else if (environment.HOME) {\n environment.USER = _path2.default.basename(environment.HOME);\n }\n }\n\n environment.PATH = (0, _lodash2.default)(path).join(':');\n environment.PWD = process.cwd();\n environment.OLDPWD = environment.PWD;\n return environment;\n}\n\nfunction getCommand() {\n // Print the environment separated by \\0\n var pyScript = 'import os;print(\\\\\"\\\\0\\\\\".join(map(\\\\\"=\\\\\".join, dict(os.environ).items()))+\\\\\"\\\\0\\\\\")';\n var shScript = 'python -c \"' + pyScript + '\"||' + 'python3 -c \"' + pyScript + '\"||' +\n // If python is not available, fallback to a POSIX compatible\n // way of retrieving the environment separated by \\0.\n 'env|' +\n // Find all names of potential environment variables.\n // This also returns variable assignments that are in the value\n // of another environment variable.\n 'sed -n -e \"s/^\\\\([A-Za-z_][A-Za-z0-9_]*\\\\)=.*/\\\\1/p\"|' + 'while read name;' + 'do ' +\n // Check if the variable name is defined in the shell, thus\n // weeding out names that are not real environment variables.\n '[ \"$name\" != \"_\" -a -n \"$(eval \"printf \\\\\"%s\\\\\" \\\\\"\\\\${$name+x}\\\\\"\")\" ]&&' + // eslint-disable-line no-template-curly-in-string\n // Retrieve the value with an indirect variable reference.\n // This method has the drawback, that we have to ignore all\n // environment variables, whose names are not valid identifier.\n // As POSIX compatible environment variable names are valid\n // identifiers, this shouldn't cause problems.\n // The shell defines some variables on its own (like RANDOM).\n // Environment variables with the same name will be overwritten.\n 'value=\"$(eval \"printf \\\\\"%s\\\\\" \\\\\"\\\\${$name}\\\\\"\")\"&&' + // eslint-disable-line no-template-curly-in-string\n // Output the environment variable separated by \\0.\n 'printf \"%s=%s\\\\0\" \"$name\" \"$value\";' + 'done;' + 'exit;';\n // Wrap the script with sh for incompatible shells.\n var wrappedShScript = 'sh -c \\'' + shScript + '\\';exit;';\n var command = process.env.SHELL || 'sh';\n var options = { encoding: 'utf8' };\n var parameters = ['-c', wrappedShScript];\n\n var shell = _path2.default.basename(command);\n if (shell === 'bash') {\n parameters = ['-c', 'source ~/.bashrc;source ~/.bash_profile;' + shScript];\n } else if (shell === 'zsh') {\n parameters = ['-c', 'source ~/.zshrc;' + shScript];\n } else if (shell === 'fish') {\n parameters = ['-c', 'source ~/.config/fish/config.fish;' + wrappedShScript];\n } else if (shell === 'sh' || shell === 'ksh') {\n parameters = ['-c', shScript];\n }\n\n return { command: command, parameters: parameters, options: options };\n}","'use strict'\n\nlet consistentEnv\n\nmodule.exports = function() {\n if (process.platform === 'win32') {\n return process.env.PATH || process.env.Path\n }\n if (!consistentEnv) {\n consistentEnv = require('consistent-env')\n }\n return consistentEnv().PATH || ''\n}\n\nmodule.exports.async = function() {\n if (process.platform === 'win32') {\n return Promise.resolve(process.env.PATH || process.env.Path)\n }\n if (!consistentEnv) {\n consistentEnv = require('consistent-env')\n }\n return consistentEnv.async().then(function(env) {\n return env.PATH || ''\n })\n}\n","export const config = {\n \"enableSemanticRules\": {\n \"type\": \"boolean\",\n \"title\": \"Enable semantic rules\",\n \"description\": \"Allow passing a TypeScript program object to the linter. May negatively affect performance. See this page for details: https://palantir.github.io/tslint/usage/type-checking/\",\n \"default\": false,\n \"order\": 1\n },\n \"rulesDirectory\": {\n \"type\": \"string\",\n \"title\": \"Custom rules directory (absolute path)\",\n \"default\": \"\",\n \"order\": 2\n },\n \"fixOnSave\": {\n \"title\": \"Fix errors on save\",\n \"description\": \"Have tslint attempt to fix some errors automatically when saving the file.\",\n \"type\": \"boolean\",\n \"default\": false,\n \"order\": 3\n },\n \"ignoreTypings\": {\n \"type\": \"boolean\",\n \"title\": \"Ignore typings files (.d.ts)\",\n \"default\": false,\n \"order\": 4\n },\n \"useLocalTslint\": {\n \"type\": \"boolean\",\n \"title\": \"Try to use the project's local tslint package, if it exists\",\n \"default\": true,\n \"order\": 5\n },\n \"useGlobalTslint\": {\n \"type\": \"boolean\",\n \"title\": \"Use the global tslint install\",\n \"description\": \"If enabled, the global tslint installation will be used as a fallback, instead of the version packaged with linter-tslint.\",\n \"default\": false,\n \"order\": 6\n },\n \"globalNodePath\": {\n \"type\": \"string\",\n \"title\": \"Global node installation path\",\n \"description\": \"The location of your global npm install. (Will default to `npm get prefix`.)\",\n \"default\": \"\",\n \"order\": 7\n }\n}\n\nexport interface ConfigSchema {\n enableSemanticRules: boolean,\n rulesDirectory: string | null,\n fixOnSave: boolean,\n ignoreTypings: boolean,\n useLocalTslint: boolean,\n useGlobalTslint: boolean,\n globalNodePath: string | null,\n}\n\nexport const defaultConfig = Object.freeze({\n enableSemanticRules: false,\n rulesDirectory: \"\",\n fixOnSave: false,\n ignoreTypings: false,\n useLocalTslint: true,\n useGlobalTslint: false,\n globalNodePath: \"\",\n} as const)\n","/* global emit */\n\nimport { promises } from 'fs';\nconst { stat } = promises;\nimport path from 'path';\nimport { getRuleUri } from 'tslint-rule-documentation';\nimport ChildProcess from 'child_process';\nimport getPath from 'consistent-path';\nimport { shim } from \"./compat-shim\";\nimport { defaultConfig } from \"./config\"\nimport type { ConfigSchema } from \"./config\"\nimport type { emit } from 'node:cluster';\nimport type * as Tslint from \"tslint\";\nimport type * as Ts from \"typescript\";\nimport type { JobMessage, ConfigMessage } from \"./workerHelper\"\n\nprocess.title = 'linter-tslint worker';\n\nconst tslintModuleName = 'tslint';\nconst tslintCache = new Map();\nconst config: ConfigSchema = { ...defaultConfig } // copy of default config\n\nlet fallbackLinter: typeof Tslint.Linter;\nlet requireResolve: typeof import(\"resolve\");\n\n\nfunction resolveAndCacheLinter(fileDir: string, moduleDir?: string): Promise {\n const basedir = moduleDir || fileDir;\n return new Promise((resolve) => {\n if (!requireResolve) {\n requireResolve = require('resolve');\n }\n requireResolve(\n tslintModuleName,\n { basedir },\n (err, linterPath, pkg) => {\n let linter: typeof Tslint.Linter;\n if (!err && pkg && /^3|4|5|6\\./.test(pkg.version)) {\n if (pkg.version.startsWith('3')) {\n // eslint-disable-next-line import/no-dynamic-require\n linter = shim(require('loophole').allowUnsafeNewFunction(() => require(linterPath) as typeof import(\"tslint\")));\n } else {\n // eslint-disable-next-line import/no-dynamic-require\n linter = require('loophole').allowUnsafeNewFunction(() => (require(linterPath) as typeof import(\"tslint\")).Linter);\n }\n tslintCache.set(fileDir, linter);\n }\n resolve(linter);\n },\n );\n });\n}\n\nfunction getNodePrefixPath(): Promise {\n return new Promise((resolve, reject) => {\n const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm';\n ChildProcess.exec(\n `${npmCommand} get prefix`,\n { env: { ...process.env, PATH: getPath() } },\n (err, stdout, stderr) => {\n if (err || stderr) {\n reject(err || new Error(stderr));\n } else {\n resolve(stdout.trim());\n }\n },\n );\n });\n}\n\nasync function getLinter(filePath: string): Promise {\n const basedir = path.dirname(filePath);\n if (tslintCache.has(basedir)) {\n return tslintCache.get(basedir);\n }\n\n if (config.useLocalTslint) {\n const localLint = await resolveAndCacheLinter(basedir);\n if (localLint) {\n return localLint;\n }\n }\n\n if (fallbackLinter) {\n tslintCache.set(basedir, fallbackLinter);\n return fallbackLinter;\n }\n\n if (config.useGlobalTslint) {\n if (config.globalNodePath) {\n const globalLint = await resolveAndCacheLinter(basedir, config.globalNodePath);\n if (globalLint) {\n fallbackLinter = globalLint;\n return globalLint;\n }\n }\n\n let prefix: string;\n try {\n prefix = await getNodePrefixPath();\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(`Attempted to load global tslint, but \"npm get prefix\" failed. Falling back to the packaged version of tslint. You can specify your prefix manually in the settings or linter-tslint config file. If your prefix is specified in the settings, make sure that it is correct.\\n\\nThe error message encountered was:\\n\\n${err.message}`);\n }\n\n if (prefix) {\n const globalLint = await resolveAndCacheLinter(basedir, prefix);\n if (globalLint) {\n fallbackLinter = globalLint;\n return globalLint;\n }\n // eslint-disable-next-line no-console\n console.warn(`Unable to find global installation of tslint at ${prefix}. Falling back to the packaged version of tslint. If you have not done so, install tslint by running \"npm install -g tslint\" from the command line.`);\n }\n }\n\n // eslint-disable-next-line import/no-dynamic-require\n fallbackLinter = require(tslintModuleName).Linter;\n tslintCache.set(basedir, fallbackLinter);\n return fallbackLinter;\n}\n\nasync function getProgram(Linter: typeof Tslint.Linter, configurationPath: string): Promise {\n let program: Ts.Program;\n const configurationDir = path.dirname(configurationPath);\n const tsconfigPath = path.resolve(configurationDir, 'tsconfig.json');\n try {\n const stats = await stat(tsconfigPath);\n if (stats.isFile()) {\n program = Linter.createProgram(tsconfigPath, configurationDir);\n }\n } catch (err) {\n // no-op\n }\n return program;\n}\n\nfunction getSeverity(failure) {\n const severity = failure.ruleSeverity.toLowerCase();\n return ['info', 'warning', 'error'].includes(severity) ? severity : 'warning';\n}\n\n/**\n * Lint the provided TypeScript content\n * @param content {string} The content of the TypeScript file\n * @param filePath {string} File path of the TypeScript filePath\n * @param options {Object} Linter options\n * @return Array of lint results\n */\nasync function lint(content: string, filePath: string, options: Tslint.ILinterOptions) {\n if (filePath === null || filePath === undefined) {\n return null;\n }\n\n let lintResult: Tslint.LintResult;\n try {\n const Linter = await getLinter(filePath);\n const configurationPath = Linter.findConfigurationPath(null, filePath);\n const configuration = Linter.loadConfigurationFromPath(configurationPath);\n\n let { rulesDirectory } = configuration;\n if (rulesDirectory && configurationPath) {\n const configurationDir = path.dirname(configurationPath);\n if (!Array.isArray(rulesDirectory)) {\n rulesDirectory = [rulesDirectory];\n }\n rulesDirectory = rulesDirectory.map((dir) => {\n if (path.isAbsolute(dir)) {\n return dir;\n }\n return path.join(configurationDir, dir);\n });\n\n if (config.rulesDirectory) {\n rulesDirectory.push(config.rulesDirectory);\n }\n }\n\n let program: Ts.Program;\n if (config.enableSemanticRules && configurationPath) {\n program = await getProgram(Linter, configurationPath);\n }\n\n const linter = new Linter({\n formatter: 'json',\n rulesDirectory,\n ...options,\n }, program);\n\n linter.lint(filePath, content, configuration);\n lintResult = linter.getResult();\n } catch (err) {\n console.error(err.message, err.stack); // eslint-disable-line no-console\n lintResult = { errorCount: 0, warningCount: 0, failures: [], format: \"\", output: \"\" };\n }\n\n if (\n // tslint@<5\n !lintResult.failureCount\n // tslint@>=5\n && !lintResult.errorCount\n && !lintResult.warningCount\n && !lintResult.infoCount\n ) {\n return [];\n }\n\n return lintResult.failures.map((failure: Tslint.RuleFailure) => {\n const ruleUri = getRuleUri(failure.getRuleName());\n const startPosition = failure.getStartPosition().getLineAndCharacter();\n const endPosition = failure.getEndPosition().getLineAndCharacter();\n return {\n severity: getSeverity(failure),\n excerpt: `${failure.getFailure()} (${failure.getRuleName()})`,\n url: ruleUri.uri,\n location: {\n file: path.normalize(failure.getFileName()),\n position: [\n [startPosition.line, startPosition.character],\n [endPosition.line, endPosition.character],\n ],\n },\n };\n });\n}\n\nasync function TsLintWorker(initialConfig: ConfigSchema) {\n config.useLocalTslint = initialConfig.useLocalTslint;\n config.enableSemanticRules = initialConfig.enableSemanticRules;\n config.useGlobalTslint = initialConfig.useGlobalTslint;\n config.globalNodePath = initialConfig.globalNodePath;\n\n process.on('message', async (message: JobMessage | ConfigMessage) => {\n if (message.messageType === 'config') {\n // set the config for the worker\n config[message.message.key] = message.message.value;\n\n if (message.message.key === 'useLocalTslint') {\n tslintCache.clear();\n }\n } else {\n const {\n emitKey, jobType, content, filePath,\n } = message.message;\n const options = jobType === 'fix' ? { fix: true } : { fix: false };\n\n const results = await lint(content, filePath, options);\n emit(emitKey, results);\n }\n });\n}\nmodule.exports = TsLintWorker; // Atom needs old style export\n","import type * as Tslint from \"tslint\";\n\n/**\n * Shim for TSLint v3 interoperability\n * @param {Function} Linter TSLint v3 linter\n * @return {Function} TSLint v4-compatible linter\n */\nexport function shim(Linter: Function): typeof Tslint.Linter {\n function LinterShim(options) {\n this.options = options;\n this.results = {};\n }\n\n // Assign class properties\n Object.assign(LinterShim, Linter);\n\n // Assign instance methods\n LinterShim.prototype = {\n ...Linter.prototype,\n lint(filePath, text, configuration) {\n const options = { ...this.options, configuration };\n const linter = new Linter(filePath, text, options);\n this.results = linter.lint();\n },\n getResult() {\n return this.results;\n },\n };\n\n return LinterShim;\n}\n"],"names":["ruleId","ruleParts","split","length","found","uri","pluginName","ruleName","plugins","replace","genTag","reIsHostCtor","freeGlobal","global","Object","freeSelf","self","root","Function","arrayIncludes","array","value","fromIndex","predicate","fromRight","index","baseFindIndex","baseIsNaN","baseIndexOf","arrayIncludesWith","comparator","cacheHas","cache","key","has","setToArray","set","result","Array","size","forEach","uid","arrayProto","prototype","funcProto","objectProto","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","toString","hasOwnProperty","objectToString","reIsNative","RegExp","call","splice","Map","getNative","Set","nativeCreate","Hash","entries","this","clear","entry","ListCache","MapCache","SetCache","values","__data__","add","assocIndexOf","other","baseIsNative","isObject","func","tag","isFunction","e","isHostObject","test","toSource","get","data","undefined","pop","push","hash","map","string","getMapData","createSet","type","object","getValue","obj","iteratee","includes","isCommon","seen","outer","computed","seenIndex","baseUniq","defineProperty","exports","_getCommand","getCommand","command","parameters","options","timeout","_child_process","spawnSync","stdout","Promise","resolve","reject","_getCommand2","childProcess","spawn","timer","setTimeout","kill","Error","on","chunk","clearTimeout","join","error","rawEnvironment","environment","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","indexOf","slice","err","return","path","process","env","PATH","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","DEFAULT_PATHS","concat","USER","HOME","_path2","default","basename","_lodash2","PWD","cwd","OLDPWD","_interopRequireDefault","_path","_lodash","__esModule","pyScript","shScript","wrappedShScript","SHELL","shell","encoding","assign","target","source","platform","_helpers","CACHE_KEY","shellName","KNOWN_SHELLS","applySugar","parse","identifyEnvironment","console","consistentEnv","identifyEnvironmentAsync","then","catch","Path","require$$0","async","defaultConfig","freeze","enableSemanticRules","rulesDirectory","fixOnSave","ignoreTypings","useLocalTslint","useGlobalTslint","globalNodePath","stat","promises","title","tslintCache","config","fallbackLinter","requireResolve","resolveAndCacheLinter","fileDir","moduleDir","basedir","require","linterPath","pkg","linter","version","startsWith","Linter","LinterShim","results","[object Object]","filePath","text","configuration","lint","shim","allowUnsafeNewFunction","getLinter","dirname","localLint","globalLint","prefix","npmCommand","ChildProcess","getPath","stderr","trim","warn","message","getSeverity","failure","severity","ruleSeverity","toLowerCase","content","lintResult","configurationPath","findConfigurationPath","loadConfigurationFromPath","program","configurationDir","isArray","dir","isAbsolute","tsconfigPath","isFile","createProgram","getProgram","formatter","getResult","stack","errorCount","warningCount","failures","format","output","failureCount","infoCount","ruleUri","getRuleUri","getRuleName","startPosition","getStartPosition","getLineAndCharacter","endPosition","getEndPosition","excerpt","getFailure","url","location","file","normalize","getFileName","position","line","character","module","initialConfig","messageType","emitKey","jobType","fix","emit"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"worker.js","sources":["../node_modules/tslint-rule-documentation/dist/index.js","../node_modules/lodash.uniq/index.js","../node_modules/consistent-env/lib/index.js","../node_modules/consistent-env/lib/helpers.js","../node_modules/consistent-path/lib/index.js","../lib/config.ts","../lib/worker.ts","../lib/compat-shim.ts"],"sourcesContent":["\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst plugins = require(\"./plugins.json\"); // tslint:disable-line:no-require-imports no-var-requires\r\n/**\r\n * Get the documentation URI for the given rule ID\r\n *\r\n * @param ruleId {string} The ID of a TSLint rule\r\n * @return {IRuleResult} with details on whether or not the rule was found,\r\n * and the URI to its documentation.\r\n */\r\nfunction getRuleUri(ruleId) {\r\n const ruleParts = ruleId.split(\"/\");\r\n if (ruleParts.length === 1) {\r\n return {\r\n found: true,\r\n uri: `https://palantir.github.io/tslint/rules/${ruleId}`\r\n };\r\n }\r\n const pluginName = ruleParts[0];\r\n const ruleName = ruleParts[1];\r\n const uri = plugins[pluginName];\r\n if (!uri) {\r\n return {\r\n found: false,\r\n uri: \"https://github.com/Xapphire13/tslint-rule-documentation/blob/master/CONTRIBUTING.md\"\r\n };\r\n }\r\n return {\r\n found: true,\r\n uri: uri.replace(\"RULENAME\", ruleName)\r\n };\r\n}\r\nexports.getRuleUri = getRuleUri;\r\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array ? array.length : 0;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * Checks if a cache value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n Set = getNative(root, 'Set'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each\n * element is kept.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length)\n ? baseUniq(array)\n : [];\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = uniq;\n","'use strict';\n\nvar _path = require('path');\n\nvar _path2 = _interopRequireDefault(_path);\n\nvar _helpers = require('./helpers');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function () {\n if (process.platform === 'win32' || !process.env.SHELL) {\n return (0, _helpers.assign)({}, process.env);\n }\n if (global[_helpers.CACHE_KEY]) {\n return (0, _helpers.assign)({}, global[_helpers.CACHE_KEY]);\n }\n var shellName = _path2.default.basename(process.env.SHELL);\n if (_helpers.KNOWN_SHELLS.indexOf(shellName) === -1) {\n return (0, _helpers.assign)({}, process.env);\n }\n try {\n var environment = (0, _helpers.applySugar)((0, _helpers.parse)((0, _helpers.identifyEnvironment)()));\n global[_helpers.CACHE_KEY] = environment;\n return environment;\n } catch (error) {\n console.error('[consistent-env] Unable to determine environment', error);\n return (0, _helpers.assign)({}, process.env);\n }\n};\n\nmodule.exports.async = function () {\n return new Promise(function (resolve) {\n if (process.platform === 'win32' || !process.env.SHELL) {\n resolve((0, _helpers.assign)({}, process.env));\n } else if (global[_helpers.CACHE_KEY]) {\n resolve((0, _helpers.assign)({}, global[_helpers.CACHE_KEY]));\n } else {\n var shellName = _path2.default.basename(process.env.SHELL);\n if (_helpers.KNOWN_SHELLS.indexOf(shellName) === -1) {\n resolve((0, _helpers.assign)({}, process.env));\n } else {\n resolve((0, _helpers.identifyEnvironmentAsync)().then(_helpers.parse).then(_helpers.applySugar).then(function (environment) {\n global[_helpers.CACHE_KEY] = environment;\n return environment;\n }));\n }\n }\n }).catch(function (error) {\n console.error('[consistent-env] Unable to determine environment', error);\n return (0, _helpers.assign)({}, process.env);\n });\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assign = exports.CACHE_KEY = exports.KNOWN_SHELLS = undefined;\nexports.identifyEnvironment = identifyEnvironment;\nexports.identifyEnvironmentAsync = identifyEnvironmentAsync;\nexports.parse = parse;\nexports.applySugar = applySugar;\nexports.getCommand = getCommand;\n\nvar _path = require('path');\n\nvar _path2 = _interopRequireDefault(_path);\n\nvar _lodash = require('lodash.uniq');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _child_process = require('child_process');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SPAWN_TIMEOUT = 4000;\n\nvar DEFAULT_PATHS = ['/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin'];\nvar KNOWN_SHELLS = exports.KNOWN_SHELLS = ['zsh', 'bash', 'fish'];\nvar CACHE_KEY = exports.CACHE_KEY = '__STEELBRAIN_CONSISTENT_ENV_V1';\nvar assign = exports.assign = Object.assign || function (target, source) {\n for (var key in source) {\n if ({}.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\nfunction identifyEnvironment() {\n var _getCommand = getCommand(),\n command = _getCommand.command,\n parameters = _getCommand.parameters,\n options = _getCommand.options;\n\n options.timeout = SPAWN_TIMEOUT;\n return (0, _child_process.spawnSync)(command, parameters, options).stdout.toString().split('\\0');\n}\n\nfunction identifyEnvironmentAsync() {\n return new Promise(function (resolve, reject) {\n var _getCommand2 = getCommand(),\n command = _getCommand2.command,\n parameters = _getCommand2.parameters,\n options = _getCommand2.options;\n\n var childProcess = (0, _child_process.spawn)(command, parameters, options);\n var stdout = [];\n var timer = setTimeout(function () {\n childProcess.kill();\n reject(new Error('Process execution timed out'));\n }, SPAWN_TIMEOUT);\n childProcess.stdout.on('data', function (chunk) {\n stdout.push(chunk);\n });\n childProcess.on('close', function () {\n clearTimeout(timer);\n resolve(stdout.join('').split('\\0'));\n });\n childProcess.on('error', function (error) {\n reject(error);\n });\n });\n}\n\nfunction parse(rawEnvironment) {\n var environment = {};\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = rawEnvironment[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var chunk = _step.value;\n\n var index = chunk.indexOf('=');\n if (index !== -1) {\n var key = chunk.slice(0, index);\n var value = chunk.slice(index + 1);\n environment[key] = value;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return environment;\n}\n\nfunction applySugar(environment) {\n var path = process.env.PATH ? process.env.PATH.split(':') : [];\n if (environment.PATH) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = environment.PATH.split(':')[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var chunk = _step2.value;\n\n if (chunk && path.indexOf(chunk) === -1) {\n path.push(chunk);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = DEFAULT_PATHS[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var entry = _step3.value;\n\n if (path.indexOf(entry) === -1) {\n path = [entry].concat(path);\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n if (!environment.USER) {\n if (process.env.USER) {\n environment.USER = process.env.USER;\n } else if (environment.HOME) {\n environment.USER = _path2.default.basename(environment.HOME);\n }\n }\n\n environment.PATH = (0, _lodash2.default)(path).join(':');\n environment.PWD = process.cwd();\n environment.OLDPWD = environment.PWD;\n return environment;\n}\n\nfunction getCommand() {\n // Print the environment separated by \\0\n var pyScript = 'import os;print(\\\\\"\\\\0\\\\\".join(map(\\\\\"=\\\\\".join, dict(os.environ).items()))+\\\\\"\\\\0\\\\\")';\n var shScript = 'python -c \"' + pyScript + '\"||' + 'python3 -c \"' + pyScript + '\"||' +\n // If python is not available, fallback to a POSIX compatible\n // way of retrieving the environment separated by \\0.\n 'env|' +\n // Find all names of potential environment variables.\n // This also returns variable assignments that are in the value\n // of another environment variable.\n 'sed -n -e \"s/^\\\\([A-Za-z_][A-Za-z0-9_]*\\\\)=.*/\\\\1/p\"|' + 'while read name;' + 'do ' +\n // Check if the variable name is defined in the shell, thus\n // weeding out names that are not real environment variables.\n '[ \"$name\" != \"_\" -a -n \"$(eval \"printf \\\\\"%s\\\\\" \\\\\"\\\\${$name+x}\\\\\"\")\" ]&&' + // eslint-disable-line no-template-curly-in-string\n // Retrieve the value with an indirect variable reference.\n // This method has the drawback, that we have to ignore all\n // environment variables, whose names are not valid identifier.\n // As POSIX compatible environment variable names are valid\n // identifiers, this shouldn't cause problems.\n // The shell defines some variables on its own (like RANDOM).\n // Environment variables with the same name will be overwritten.\n 'value=\"$(eval \"printf \\\\\"%s\\\\\" \\\\\"\\\\${$name}\\\\\"\")\"&&' + // eslint-disable-line no-template-curly-in-string\n // Output the environment variable separated by \\0.\n 'printf \"%s=%s\\\\0\" \"$name\" \"$value\";' + 'done;' + 'exit;';\n // Wrap the script with sh for incompatible shells.\n var wrappedShScript = 'sh -c \\'' + shScript + '\\';exit;';\n var command = process.env.SHELL || 'sh';\n var options = { encoding: 'utf8' };\n var parameters = ['-c', wrappedShScript];\n\n var shell = _path2.default.basename(command);\n if (shell === 'bash') {\n parameters = ['-c', 'source ~/.bashrc;source ~/.bash_profile;' + shScript];\n } else if (shell === 'zsh') {\n parameters = ['-c', 'source ~/.zshrc;' + shScript];\n } else if (shell === 'fish') {\n parameters = ['-c', 'source ~/.config/fish/config.fish;' + wrappedShScript];\n } else if (shell === 'sh' || shell === 'ksh') {\n parameters = ['-c', shScript];\n }\n\n return { command: command, parameters: parameters, options: options };\n}","'use strict'\n\nlet consistentEnv\n\nmodule.exports = function() {\n if (process.platform === 'win32') {\n return process.env.PATH || process.env.Path\n }\n if (!consistentEnv) {\n consistentEnv = require('consistent-env')\n }\n return consistentEnv().PATH || ''\n}\n\nmodule.exports.async = function() {\n if (process.platform === 'win32') {\n return Promise.resolve(process.env.PATH || process.env.Path)\n }\n if (!consistentEnv) {\n consistentEnv = require('consistent-env')\n }\n return consistentEnv.async().then(function(env) {\n return env.PATH || ''\n })\n}\n","export const config = {\n \"enableSemanticRules\": {\n \"type\": \"boolean\",\n \"title\": \"Enable semantic rules\",\n \"description\": \"Allow passing a TypeScript program object to the linter. May negatively affect performance. See this page for details: https://palantir.github.io/tslint/usage/type-checking/\",\n \"default\": false,\n \"order\": 1\n },\n \"rulesDirectory\": {\n \"type\": \"string\",\n \"title\": \"Custom rules directory (absolute path)\",\n \"default\": \"\",\n \"order\": 2\n },\n \"fixOnSave\": {\n \"title\": \"Fix errors on save\",\n \"description\": \"Have tslint attempt to fix some errors automatically when saving the file.\",\n \"type\": \"boolean\",\n \"default\": false,\n \"order\": 3\n },\n \"ignoreTypings\": {\n \"type\": \"boolean\",\n \"title\": \"Ignore typings files (.d.ts)\",\n \"default\": false,\n \"order\": 4\n },\n \"useLocalTslint\": {\n \"type\": \"boolean\",\n \"title\": \"Try to use the project's local tslint package, if it exists\",\n \"default\": true,\n \"order\": 5\n },\n \"useGlobalTslint\": {\n \"type\": \"boolean\",\n \"title\": \"Use the global tslint install\",\n \"description\": \"If enabled, the global tslint installation will be used as a fallback, instead of the version packaged with linter-tslint.\",\n \"default\": false,\n \"order\": 6\n },\n \"globalNodePath\": {\n \"type\": \"string\",\n \"title\": \"Global node installation path\",\n \"description\": \"The location of your global npm install. (Will default to `npm get prefix`.)\",\n \"default\": \"\",\n \"order\": 7\n }\n}\n\nexport interface ConfigSchema {\n enableSemanticRules: boolean,\n rulesDirectory: string | null,\n fixOnSave: boolean,\n ignoreTypings: boolean,\n useLocalTslint: boolean,\n useGlobalTslint: boolean,\n globalNodePath: string | null,\n}\n\nexport const defaultConfig = Object.freeze({\n enableSemanticRules: false,\n rulesDirectory: \"\",\n fixOnSave: false,\n ignoreTypings: false,\n useLocalTslint: true,\n useGlobalTslint: false,\n globalNodePath: \"\",\n} as const)\n","/* global emit */\n\nimport { promises } from 'fs';\nconst { stat } = promises;\nimport path from 'path';\nimport { getRuleUri } from 'tslint-rule-documentation';\nimport ChildProcess from 'child_process';\nimport getPath from 'consistent-path';\nimport { shim } from \"./compat-shim\";\nimport { defaultConfig } from \"./config\"\nimport type { ConfigSchema } from \"./config\"\nimport type { emit } from 'node:cluster';\nimport type * as Tslint from \"tslint\";\nimport type * as Ts from \"typescript\";\nimport type { JobMessage, ConfigMessage } from \"./workerHelper\"\nimport { RuleFailure } from 'tslint';\n\nprocess.title = 'linter-tslint worker';\n\nconst tslintModuleName = 'tslint';\nconst tslintCache = new Map();\nconst config: ConfigSchema = { ...defaultConfig } // copy of default config\n\nlet fallbackLinter: typeof Tslint.Linter;\nlet requireResolve: typeof import(\"resolve\");\n\n\nfunction resolveAndCacheLinter(fileDir: string, moduleDir?: string): Promise {\n const basedir = moduleDir || fileDir;\n return new Promise((resolve) => {\n if (!requireResolve) {\n requireResolve = require('resolve');\n }\n requireResolve(\n tslintModuleName,\n { basedir },\n (err, linterPath, pkg) => {\n let linter: typeof Tslint.Linter | undefined = undefined;\n if (!err && linterPath !== undefined && pkg && /^3|4|5|6\\./.test(pkg.version)) {\n if (pkg.version.startsWith('3')) {\n // eslint-disable-next-line import/no-dynamic-require\n linter = shim(require('loophole').allowUnsafeNewFunction(() => require(linterPath) as typeof import(\"tslint\")));\n } else {\n // eslint-disable-next-line import/no-dynamic-require\n linter = require('loophole').allowUnsafeNewFunction(() => (require(linterPath) as typeof import(\"tslint\")).Linter);\n }\n tslintCache.set(fileDir, linter!);\n }\n resolve(linter);\n },\n );\n });\n}\n\nfunction getNodePrefixPath(): Promise {\n return new Promise((resolve, reject) => {\n const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm';\n ChildProcess.exec(\n `${npmCommand} get prefix`,\n { env: { ...process.env, PATH: getPath() } },\n (err, stdout, stderr) => {\n if (err || stderr) {\n reject(err || new Error(stderr));\n } else {\n resolve(stdout.trim());\n }\n },\n );\n });\n}\n\nasync function getLinter(filePath: string): Promise {\n const basedir = path.dirname(filePath);\n if (tslintCache.has(basedir)) {\n return tslintCache.get(basedir);\n }\n\n if (config.useLocalTslint) {\n const localLint = await resolveAndCacheLinter(basedir);\n if (localLint) {\n return localLint;\n }\n }\n\n if (fallbackLinter) {\n tslintCache.set(basedir, fallbackLinter);\n return fallbackLinter;\n }\n\n if (config.useGlobalTslint) {\n if (config.globalNodePath) {\n const globalLint = await resolveAndCacheLinter(basedir, config.globalNodePath);\n if (globalLint) {\n fallbackLinter = globalLint;\n return globalLint;\n }\n }\n\n let prefix: string | undefined = undefined;\n try {\n prefix = await getNodePrefixPath();\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(`Attempted to load global tslint, but \"npm get prefix\" failed. Falling back to the packaged version of tslint. You can specify your prefix manually in the settings or linter-tslint config file. If your prefix is specified in the settings, make sure that it is correct.\\n\\nThe error message encountered was:\\n\\n${err.message}`);\n }\n\n if (prefix) {\n const globalLint = await resolveAndCacheLinter(basedir, prefix);\n if (globalLint) {\n fallbackLinter = globalLint;\n return globalLint;\n }\n // eslint-disable-next-line no-console\n console.warn(`Unable to find global installation of tslint at ${prefix}. Falling back to the packaged version of tslint. If you have not done so, install tslint by running \"npm install -g tslint\" from the command line.`);\n }\n }\n\n // eslint-disable-next-line import/no-dynamic-require\n fallbackLinter = require(tslintModuleName).Linter;\n tslintCache.set(basedir, fallbackLinter);\n return fallbackLinter;\n}\n\nasync function getProgram(Linter: typeof Tslint.Linter, configurationPath: string): Promise {\n let program: Ts.Program | undefined = undefined;\n const configurationDir = path.dirname(configurationPath);\n const tsconfigPath = path.resolve(configurationDir, 'tsconfig.json');\n try {\n const stats = await stat(tsconfigPath);\n if (stats.isFile()) {\n program = Linter.createProgram(tsconfigPath, configurationDir);\n }\n } catch (err) {\n // no-op\n }\n return program;\n}\n\nfunction getSeverity(failure: RuleFailure) {\n const severity = failure[\"ruleSeverity\"].toLowerCase();\n return ['info', 'warning', 'error'].includes(severity) ? severity : 'warning';\n}\n\nlet tslint: undefined | typeof import(\"tslint\")\n\nfunction loadTslintConfig(Linter: typeof Tslint.Linter, filePath: string) {\n let configurationPath: string | undefined\n let configuration: Tslint.Configuration.IConfigurationFile | undefined\n if (typeof Linter.findConfiguration === \"function\") {\n const { path, results } = Linter.findConfiguration(null, filePath)\n configurationPath = path\n configuration = results\n } else {\n configurationPath = Linter.findConfigurationPath(null, filePath);\n configuration = Linter.loadConfigurationFromPath(configurationPath);\n }\n // Load extends using `require` - this is a bug in Tslint\n let configExtends = configuration?.extends ?? []\n if (configurationPath !== undefined && configExtends !== undefined && configExtends.length === 0) {\n try {\n if (!tslint) {\n tslint = require(\"tslint\") as typeof import(\"tslint\")\n }\n const configurationJson = tslint.Configuration.readConfigurationFile?.(configurationPath)\n const extendsJson = configurationJson.extends\n if (typeof extendsJson === \"string\") {\n configExtends = [...configExtends, extendsJson]\n } else if (extendsJson !== undefined) {\n configExtends = [...configExtends, ...extendsJson]\n }\n } catch { /* ignore error */ }\n }\n return {\n configurationPath,\n configuration: configuration !== undefined\n ? {\n ...configuration,\n extends: configExtends\n }\n : configuration\n }\n}\n\n/**\n * Lint the provided TypeScript content\n * @param content {string} The content of the TypeScript file\n * @param filePath {string} File path of the TypeScript filePath\n * @param options {Object} Linter options\n * @return Array of lint results\n */\nasync function lint(content: string, filePath: string | undefined, options: Tslint.ILinterOptions) {\n if (filePath === null || filePath === undefined) {\n return null;\n }\n\n let lintResult: Tslint.LintResult;\n try {\n const Linter = await getLinter(filePath);\n if (!Linter) {\n throw new Error(`tslint was not found for ${filePath}`)\n }\n const { configurationPath, configuration } = loadTslintConfig(Linter, filePath)\n\n let rulesDirectory = configuration?.rulesDirectory;\n if (rulesDirectory && configurationPath) {\n const configurationDir = path.dirname(configurationPath);\n if (!Array.isArray(rulesDirectory)) {\n rulesDirectory = [rulesDirectory];\n }\n rulesDirectory = rulesDirectory.map((dir) => {\n if (path.isAbsolute(dir)) {\n return dir;\n }\n return path.join(configurationDir, dir);\n });\n\n if (config.rulesDirectory) {\n rulesDirectory.push(config.rulesDirectory);\n }\n }\n\n let program: Ts.Program | undefined = undefined;\n if (config.enableSemanticRules && configurationPath) {\n program = await getProgram(Linter, configurationPath);\n }\n\n const linter = new Linter({\n formatter: 'json',\n rulesDirectory,\n ...options,\n }, program);\n\n linter.lint(filePath, content, configuration);\n lintResult = linter.getResult();\n } catch (err) {\n console.error(err.message, err.stack); // eslint-disable-line no-console\n lintResult = { errorCount: 0, warningCount: 0, failures: [], format: \"\", output: \"\" };\n }\n\n if (\n // tslint@<5\n !(lintResult as any).failureCount\n // tslint@>=5\n && !lintResult.errorCount\n && !lintResult.warningCount\n && !(lintResult as any).infoCount // TODO is this still supported?\n ) {\n return [];\n }\n\n return lintResult.failures.map((failure: Tslint.RuleFailure) => {\n const ruleUri = getRuleUri(failure.getRuleName());\n const startPosition = failure.getStartPosition().getLineAndCharacter();\n const endPosition = failure.getEndPosition().getLineAndCharacter();\n return {\n severity: getSeverity(failure),\n excerpt: `${failure.getFailure()} (${failure.getRuleName()})`,\n url: ruleUri.uri,\n location: {\n file: path.normalize(failure.getFileName()),\n position: [\n [startPosition.line, startPosition.character],\n [endPosition.line, endPosition.character],\n ],\n },\n };\n });\n}\n\nasync function TsLintWorker(initialConfig: ConfigSchema) {\n config.useLocalTslint = initialConfig.useLocalTslint;\n config.enableSemanticRules = initialConfig.enableSemanticRules;\n config.useGlobalTslint = initialConfig.useGlobalTslint;\n config.globalNodePath = initialConfig.globalNodePath;\n\n process.on('message', async (message: JobMessage | ConfigMessage) => {\n if (message.messageType === 'config') {\n // set the config for the worker\n config[message.message.key] = message.message.value;\n\n if (message.message.key === 'useLocalTslint') {\n tslintCache.clear();\n }\n } else {\n const {\n emitKey, jobType, content, filePath,\n } = message.message;\n const options = jobType === 'fix' ? { fix: true } : { fix: false };\n\n const results = await lint(content, filePath, options);\n emit(emitKey, results);\n }\n });\n}\nmodule.exports = TsLintWorker; // Atom needs old style export\n","import type * as Tslint from \"tslint\";\n\ntype LinterTslintV3 = (filePath: string, text: string, configuration: Tslint.ILinterOptions) => { lint: () => Tslint.LintResult[] }\n\n/**\n * Shim for TSLint v3 interoperability\n * @param {Function} Linter TSLint v3 linter\n * @return {Function} TSLint v4-compatible linter\n */\nexport function shim(Linter: LinterTslintV3): typeof Tslint.Linter {\n function LinterShim(options: Tslint.ILinterOptions) {\n this.options = options;\n this.results = {};\n }\n\n // Assign class properties\n Object.assign(LinterShim, Linter);\n\n // Assign instance methods\n LinterShim.prototype = {\n ...Linter.prototype,\n lint(filePath: string, text: string, configuration: Tslint.ILinterOptions) {\n const options : Tslint.ILinterOptions = { ...this.options, configuration };\n const linter = new Linter(filePath, text, options) as ReturnType;\n this.results = linter.lint();\n },\n getResult() {\n return this.results;\n },\n };\n\n return LinterShim;\n}\n"],"names":["ruleId","ruleParts","split","length","found","uri","pluginName","ruleName","plugins","replace","genTag","reIsHostCtor","freeGlobal","global","Object","freeSelf","self","root","Function","arrayIncludes","array","value","fromIndex","predicate","fromRight","index","baseFindIndex","baseIsNaN","baseIndexOf","arrayIncludesWith","comparator","cacheHas","cache","key","has","setToArray","set","result","Array","size","forEach","uid","arrayProto","prototype","funcProto","objectProto","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","toString","hasOwnProperty","objectToString","reIsNative","RegExp","call","splice","Map","getNative","Set","nativeCreate","Hash","entries","this","clear","entry","ListCache","MapCache","SetCache","values","__data__","add","assocIndexOf","other","baseIsNative","isObject","func","tag","isFunction","e","isHostObject","test","toSource","get","data","undefined","pop","push","hash","map","string","getMapData","createSet","type","object","getValue","obj","iteratee","includes","isCommon","seen","outer","computed","seenIndex","baseUniq","defineProperty","exports","_getCommand","getCommand","command","parameters","options","timeout","_child_process","spawnSync","stdout","Promise","resolve","reject","_getCommand2","childProcess","spawn","timer","setTimeout","kill","Error","on","chunk","clearTimeout","join","error","rawEnvironment","environment","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","indexOf","slice","err","return","path","process","env","PATH","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","DEFAULT_PATHS","concat","USER","HOME","_path2","default","basename","_lodash2","PWD","cwd","OLDPWD","_interopRequireDefault","_path","_lodash","__esModule","pyScript","shScript","wrappedShScript","SHELL","shell","encoding","assign","target","source","platform","_helpers","CACHE_KEY","shellName","KNOWN_SHELLS","applySugar","parse","identifyEnvironment","console","consistentEnv","identifyEnvironmentAsync","then","catch","Path","require$$0","async","defaultConfig","freeze","enableSemanticRules","rulesDirectory","fixOnSave","ignoreTypings","useLocalTslint","useGlobalTslint","globalNodePath","stat","promises","title","tslintCache","config","fallbackLinter","requireResolve","tslint","resolveAndCacheLinter","fileDir","moduleDir","basedir","require","linterPath","pkg","linter","version","startsWith","Linter","LinterShim","results","[object Object]","filePath","text","configuration","lint","shim","allowUnsafeNewFunction","getLinter","dirname","localLint","globalLint","prefix","npmCommand","ChildProcess","getPath","stderr","trim","warn","message","getSeverity","failure","severity","toLowerCase","content","lintResult","configurationPath","findConfiguration","findConfigurationPath","loadConfigurationFromPath","configExtends","extends","extendsJson","Configuration","readConfigurationFile","loadTslintConfig","program","configurationDir","isArray","dir","isAbsolute","tsconfigPath","isFile","createProgram","getProgram","formatter","getResult","stack","errorCount","warningCount","failures","format","output","failureCount","infoCount","ruleUri","getRuleUri","getRuleName","startPosition","getStartPosition","getLineAndCharacter","endPosition","getEndPosition","excerpt","getFailure","url","location","file","normalize","getFileName","position","line","character","module","initialConfig","messageType","emitKey","jobType","fix","emit"],"mappings":"sPAgCA,MAtBA,SAAoBA,GAChB,MAAMC,EAAYD,EAAOE,MAAM,KAC/B,GAAyB,IAArBD,EAAUE,OACV,MAAO,CACHC,OAAO,EACPC,IAAK,2CAA2CL,KAGxD,MAAMM,EAAaL,EAAU,GACvBM,EAAWN,EAAU,GACrBI,EAAMG,EAAQF,GACpB,OAAKD,EAME,CACHD,OAAO,EACPC,IAAKA,EAAII,QAAQ,WAAYF,IAPtB,CACHH,OAAO,EACPC,IAAK,yOCdjB,IAUIK,EAAS,6BASTC,EAAe,8BAGfC,EAA8B,iBAAVC,GAAsBA,GAAUA,EAAOC,SAAWA,QAAUD,EAGhFE,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKF,SAAWA,QAAUE,KAGxEC,EAAOL,GAAcG,GAAYG,SAAS,cAATA,GAWrC,SAASC,EAAcC,EAAOC,GAE5B,SADaD,EAAQA,EAAMjB,OAAS,IAyDtC,SAAqBiB,EAAOC,EAAOC,GACjC,GAAID,GAAUA,EACZ,OAvBJ,SAAuBD,EAAOG,EAAWD,EAAWE,GAClD,IAAIrB,EAASiB,EAAMjB,OACfsB,EAAQH,GAAaE,EAAY,GAAK,GAE1C,KAAQA,EAAYC,MAAYA,EAAQtB,GACtC,GAAIoB,EAAUH,EAAMK,GAAQA,EAAOL,GACjC,OAAOK,EAGX,OAAQ,EAcCC,CAAcN,EAAOO,EAAWL,GAEzC,IAAIG,EAAQH,EAAY,EACpBnB,EAASiB,EAAMjB,OAEnB,OAASsB,EAAQtB,GACf,GAAIiB,EAAMK,KAAWJ,EACnB,OAAOI,EAGX,OAAQ,EApEWG,CAAYR,EAAOC,EAAO,IAAM,EAYrD,SAASQ,EAAkBT,EAAOC,EAAOS,GAIvC,IAHA,IAAIL,GAAS,EACTtB,EAASiB,EAAQA,EAAMjB,OAAS,IAE3BsB,EAAQtB,GACf,GAAI2B,EAAWT,EAAOD,EAAMK,IAC1B,OAAO,EAGX,OAAO,EAyDT,SAASE,EAAUN,GACjB,OAAOA,GAAUA,EAWnB,SAASU,EAASC,EAAOC,GACvB,OAAOD,EAAME,IAAID,GAyCnB,SAASE,EAAWC,GAClB,IAAIX,GAAS,EACTY,EAASC,MAAMF,EAAIG,MAKvB,OAHAH,EAAII,SAAQ,SAASnB,GACnBgB,IAASZ,GAASJ,KAEbgB,EAIT,IASMI,EATFC,EAAaJ,MAAMK,UACnBC,EAAY1B,SAASyB,UACrBE,EAAc/B,OAAO6B,UAGrBG,EAAa7B,EAAK,sBAGlB8B,GACEN,EAAM,SAASO,KAAKF,GAAcA,EAAWG,MAAQH,EAAWG,KAAKC,UAAY,KACvE,iBAAmBT,EAAO,GAItCU,EAAeP,EAAUQ,SAGzBC,EAAiBR,EAAYQ,eAO7BC,EAAiBT,EAAYO,SAG7BG,EAAaC,OAAO,IACtBL,EAAaM,KAAKJ,GAAgB5C,QApMjB,sBAoMuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5EiD,EAAShB,EAAWgB,OAGpBC,EAAMC,EAAU3C,EAAM,OACtB4C,EAAMD,EAAU3C,EAAM,OACtB6C,EAAeF,EAAU9C,OAAQ,UASrC,SAASiD,EAAKC,GACZ,IAAIvC,GAAS,EACTtB,EAAS6D,EAAUA,EAAQ7D,OAAS,EAGxC,IADA8D,KAAKC,UACIzC,EAAQtB,GAAQ,CACvB,IAAIgE,EAAQH,EAAQvC,GACpBwC,KAAK7B,IAAI+B,EAAM,GAAIA,EAAM,KA2F7B,SAASC,EAAUJ,GACjB,IAAIvC,GAAS,EACTtB,EAAS6D,EAAUA,EAAQ7D,OAAS,EAGxC,IADA8D,KAAKC,UACIzC,EAAQtB,GAAQ,CACvB,IAAIgE,EAAQH,EAAQvC,GACpBwC,KAAK7B,IAAI+B,EAAM,GAAIA,EAAM,KAyG7B,SAASE,EAASL,GAChB,IAAIvC,GAAS,EACTtB,EAAS6D,EAAUA,EAAQ7D,OAAS,EAGxC,IADA8D,KAAKC,UACIzC,EAAQtB,GAAQ,CACvB,IAAIgE,EAAQH,EAAQvC,GACpBwC,KAAK7B,IAAI+B,EAAM,GAAIA,EAAM,KAwF7B,SAASG,EAASC,GAChB,IAAI9C,GAAS,EACTtB,EAASoE,EAASA,EAAOpE,OAAS,EAGtC,IADA8D,KAAKO,SAAW,IAAIH,IACX5C,EAAQtB,GACf8D,KAAKQ,IAAIF,EAAO9C,IA4CpB,SAASiD,EAAatD,EAAOa,GAE3B,IADA,IAgOUZ,EAAOsD,EAhObxE,EAASiB,EAAMjB,OACZA,KACL,IA8NQkB,EA9NDD,EAAMjB,GAAQ,OA8NNwE,EA9NU1C,IA+NAZ,GAAUA,GAASsD,GAAUA,EA9NpD,OAAOxE,EAGX,OAAQ,EAWV,SAASyE,EAAavD,GACpB,SAAKwD,EAASxD,KAgIEyD,EAhIiBzD,EAiIxB0B,GAAeA,KAAc+B,MAkGxC,SAAoBzD,GAGlB,IAAI0D,EAAMF,EAASxD,GAASiC,EAAeG,KAAKpC,GAAS,GACzD,MA3zBY,qBA2zBL0D,GAAkBA,GAAOrE,EApOjBsE,CAAW3D,IAtc5B,SAAsBA,GAGpB,IAAIgB,GAAS,EACb,GAAa,MAAThB,GAA0C,mBAAlBA,EAAM+B,SAChC,IACEf,KAAYhB,EAAQ,IACpB,MAAO4D,IAEX,OAAO5C,EA6b6B6C,CAAa7D,GAAUkC,EAAa5C,GACzDwE,KAuIjB,SAAkBL,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO3B,EAAaM,KAAKqB,GACzB,MAAOG,IACT,IACE,OAAQH,EAAO,GACf,MAAOG,KAEX,MAAO,GAhJaG,CAAS/D,IA4H/B,IAAkByD,EAjalBf,EAAKpB,UAAUuB,MAnEf,WACED,KAAKO,SAAWV,EAAeA,EAAa,MAAQ,IAmEtDC,EAAKpB,UAAkB,OAtDvB,SAAoBV,GAClB,OAAOgC,KAAK/B,IAAID,WAAegC,KAAKO,SAASvC,IAsD/C8B,EAAKpB,UAAU0C,IA1Cf,SAAiBpD,GACf,IAAIqD,EAAOrB,KAAKO,SAChB,GAAIV,EAAc,CAChB,IAAIzB,EAASiD,EAAKrD,GAClB,MArRiB,8BAqRVI,OAA4BkD,EAAYlD,EAEjD,OAAOgB,EAAeI,KAAK6B,EAAMrD,GAAOqD,EAAKrD,QAAOsD,GAqCtDxB,EAAKpB,UAAUT,IAzBf,SAAiBD,GACf,IAAIqD,EAAOrB,KAAKO,SAChB,OAAOV,OAA6ByB,IAAdD,EAAKrD,GAAqBoB,EAAeI,KAAK6B,EAAMrD,IAwB5E8B,EAAKpB,UAAUP,IAXf,SAAiBH,EAAKZ,GAGpB,OAFW4C,KAAKO,SACXvC,GAAQ6B,QAA0ByB,IAAVlE,EApTV,4BAoTkDA,EAC9D4C,MAoHTG,EAAUzB,UAAUuB,MAjFpB,WACED,KAAKO,SAAW,IAiFlBJ,EAAUzB,UAAkB,OArE5B,SAAyBV,GACvB,IAAIqD,EAAOrB,KAAKO,SACZ/C,EAAQiD,EAAaY,EAAMrD,GAE/B,QAAIR,EAAQ,KAIRA,GADY6D,EAAKnF,OAAS,EAE5BmF,EAAKE,MAEL9B,EAAOD,KAAK6B,EAAM7D,EAAO,IAEpB,IAyDT2C,EAAUzB,UAAU0C,IA7CpB,SAAsBpD,GACpB,IAAIqD,EAAOrB,KAAKO,SACZ/C,EAAQiD,EAAaY,EAAMrD,GAE/B,OAAOR,EAAQ,OAAI8D,EAAYD,EAAK7D,GAAO,IA0C7C2C,EAAUzB,UAAUT,IA9BpB,SAAsBD,GACpB,OAAOyC,EAAaT,KAAKO,SAAUvC,IAAQ,GA8B7CmC,EAAUzB,UAAUP,IAjBpB,SAAsBH,EAAKZ,GACzB,IAAIiE,EAAOrB,KAAKO,SACZ/C,EAAQiD,EAAaY,EAAMrD,GAO/B,OALIR,EAAQ,EACV6D,EAAKG,KAAK,CAACxD,EAAKZ,IAEhBiE,EAAK7D,GAAO,GAAKJ,EAEZ4C,MAkGTI,EAAS1B,UAAUuB,MA/DnB,WACED,KAAKO,SAAW,CACdkB,KAAQ,IAAI3B,EACZ4B,IAAO,IAAKhC,GAAOS,GACnBwB,OAAU,IAAI7B,IA4DlBM,EAAS1B,UAAkB,OA/C3B,SAAwBV,GACtB,OAAO4D,EAAW5B,KAAMhC,GAAa,OAAEA,IA+CzCoC,EAAS1B,UAAU0C,IAnCnB,SAAqBpD,GACnB,OAAO4D,EAAW5B,KAAMhC,GAAKoD,IAAIpD,IAmCnCoC,EAAS1B,UAAUT,IAvBnB,SAAqBD,GACnB,OAAO4D,EAAW5B,KAAMhC,GAAKC,IAAID,IAuBnCoC,EAAS1B,UAAUP,IAVnB,SAAqBH,EAAKZ,GAExB,OADAwE,EAAW5B,KAAMhC,GAAKG,IAAIH,EAAKZ,GACxB4C,MAyDTK,EAAS3B,UAAU8B,IAAMH,EAAS3B,UAAU8C,KAnB5C,SAAqBpE,GAEnB,OADA4C,KAAKO,SAASpC,IAAIf,EA1iBC,6BA2iBZ4C,MAkBTK,EAAS3B,UAAUT,IANnB,SAAqBb,GACnB,OAAO4C,KAAKO,SAAStC,IAAIb,IA6G3B,IAAIyE,EAAcjC,GAAQ,EAAI1B,EAAW,IAAI0B,EAAI,GAAG,KAAK,IAlqB1C,EAAA,EAkqBoE,SAASU,GAC1F,OAAO,IAAIV,EAAIU,IAwMjB,aA7LA,SAASsB,EAAWF,EAAK1D,GACvB,IA0BiBZ,EACb0E,EA3BAT,EAAOK,EAAInB,SACf,OA2BgB,WADZuB,SADa1E,EAzBAY,KA2BmB,UAAR8D,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV1E,EACU,OAAVA,GA5BDiE,EAAmB,iBAAPrD,EAAkB,SAAW,QACzCqD,EAAKK,IAWX,SAAS/B,EAAUoC,EAAQ/D,GACzB,IAAIZ,EArjBN,SAAkB2E,EAAQ/D,GACxB,OAAiB,MAAV+D,OAAiBT,EAAYS,EAAO/D,GAojB/BgE,CAASD,EAAQ/D,GAC7B,OAAO2C,EAAavD,GAASA,OAAQkE,EA2JvC,SAASV,EAASxD,GAChB,IAAI0E,SAAc1E,EAClB,QAASA,IAAkB,UAAR0E,GAA4B,YAARA,GAmBzC,ICv3BgCG,IDuwBhC,SAAc9E,GACZ,OAAQA,GAASA,EAAMjB,OAzJzB,SAAkBiB,EAAO+E,EAAUrE,GACjC,IAAIL,GAAS,EACT2E,EAAWjF,EACXhB,EAASiB,EAAMjB,OACfkG,GAAW,EACXhE,EAAS,GACTiE,EAAOjE,EAEX,GAAIP,EACFuE,GAAW,EACXD,EAAWvE,OAER,GAAI1B,GAznBY,IAynBgB,CACnC,IAAIiC,EAAM+D,EAAW,KAAOL,EAAU1E,GACtC,GAAIgB,EACF,OAAOD,EAAWC,GAEpBiE,GAAW,EACXD,EAAWrE,EACXuE,EAAO,IAAIhC,OAGXgC,EAAOH,EAAW,GAAK9D,EAEzBkE,EACA,OAAS9E,EAAQtB,GAAQ,CACvB,IAAIkB,EAAQD,EAAMK,GACd+E,EAAWL,EAAWA,EAAS9E,GAASA,EAG5C,GADAA,EAASS,GAAwB,IAAVT,EAAeA,EAAQ,EAC1CgF,GAAYG,GAAaA,EAAU,CAErC,IADA,IAAIC,EAAYH,EAAKnG,OACdsG,KACL,GAAIH,EAAKG,KAAeD,EACtB,SAASD,EAGTJ,GACFG,EAAKb,KAAKe,GAEZnE,EAAOoD,KAAKpE,QAEJ+E,EAASE,EAAME,EAAU1E,KAC7BwE,IAASjE,GACXiE,EAAKb,KAAKe,GAEZnE,EAAOoD,KAAKpE,IAGhB,OAAOgB,EAyGHqE,CAAStF,GACT,qFEhxBNN,OAAO6F,iBAAwB,aAAc,CAC3CtF,OAAO,IAETuF,SAAiBA,YAAoBA,oBAAuBrB,EAC5DqB,sBAgCA,WACE,IAAIC,EAAcC,IACdC,EAAUF,EAAYE,QACtBC,EAAaH,EAAYG,WACzBC,EAAUJ,EAAYI,QAG1B,OADAA,EAAQC,QApBU,KAqBX,EAAIC,UAAeC,WAAWL,EAASC,EAAYC,GAASI,OAAOjE,WAAWlD,MAAM,OAtC7F0G,2BAyCA,WACE,OAAO,IAAIU,SAAQ,SAAUC,EAASC,GACpC,IAAIC,EAAeX,IACfC,EAAUU,EAAaV,QACvBC,EAAaS,EAAaT,WAC1BC,EAAUQ,EAAaR,QAEvBS,GAAe,EAAIP,UAAeQ,OAAOZ,EAASC,EAAYC,GAC9DI,EAAS,GACTO,EAAQC,YAAW,WACrBH,EAAaI,OACbN,EAAO,IAAIO,MAAM,kCAnCH,KAqChBL,EAAaL,OAAOW,GAAG,QAAQ,SAAUC,GACvCZ,EAAO5B,KAAKwC,MAEdP,EAAaM,GAAG,SAAS,WACvBE,aAAaN,GACbL,EAAQF,EAAOc,KAAK,IAAIjI,MAAM,UAEhCwH,EAAaM,GAAG,SAAS,SAAUI,GACjCZ,EAAOY,UA7DbxB,QAkEA,SAAeyB,GACb,IAAIC,EAAc,GACdC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBlD,EAErB,IACE,IAAK,IAAmDmD,EAA/CC,EAAYN,EAAeO,OAAOC,cAAsBN,GAA6BG,EAAQC,EAAUG,QAAQC,MAAOR,GAA4B,EAAM,CAC/J,IAAIN,EAAQS,EAAMrH,MAEdI,EAAQwG,EAAMe,QAAQ,KAC1B,IAAe,IAAXvH,EAAc,CAChB,IAAIQ,EAAMgG,EAAMgB,MAAM,EAAGxH,GACrBJ,EAAQ4G,EAAMgB,MAAMxH,EAAQ,GAChC6G,EAAYrG,GAAOZ,IAGvB,MAAO6H,GACPV,GAAoB,EACpBC,EAAiBS,UAEjB,KACOX,GAA6BI,EAAUQ,QAC1CR,EAAUQ,iBAGZ,GAAIX,EACF,MAAMC,GAKZ,OAAOH,GAjGT1B,aAoGA,SAAoB0B,GAClB,IAAIc,EAAOC,QAAQC,IAAIC,KAAOF,QAAQC,IAAIC,KAAKrJ,MAAM,KAAO,GAC5D,GAAIoI,EAAYiB,KAAM,CACpB,IAAIC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBnE,EAEtB,IACE,IAAK,IAAiEoE,EAA7DC,EAAatB,EAAYiB,KAAKrJ,MAAM,KAAK0I,OAAOC,cAAuBW,GAA8BG,EAASC,EAAWd,QAAQC,MAAOS,GAA6B,EAAM,CAClL,IAAIvB,EAAQ0B,EAAOtI,MAEf4G,IAAkC,IAAzBmB,EAAKJ,QAAQf,IACxBmB,EAAK3D,KAAKwC,IAGd,MAAOiB,GACPO,GAAqB,EACrBC,EAAkBR,UAElB,KACOM,GAA8BI,EAAWT,QAC5CS,EAAWT,iBAGb,GAAIM,EACF,MAAMC,IAKd,IAAIG,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBxE,EAEtB,IACE,IAAK,IAAmDyE,EAA/CC,EAAaC,EAActB,OAAOC,cAAuBgB,GAA8BG,EAASC,EAAWnB,QAAQC,MAAOc,GAA6B,EAAM,CACpK,IAAI1F,EAAQ6F,EAAO3I,OAEU,IAAzB+H,EAAKJ,QAAQ7E,KACfiF,EAAO,CAACjF,GAAOgG,OAAOf,KAG1B,MAAOF,GACPY,GAAqB,EACrBC,EAAkBb,UAElB,KACOW,GAA8BI,EAAWd,QAC5Cc,EAAWd,iBAGb,GAAIW,EACF,MAAMC,GAKPzB,EAAY8B,OACXf,QAAQC,IAAIc,KACd9B,EAAY8B,KAAOf,QAAQC,IAAIc,KACtB9B,EAAY+B,OACrB/B,EAAY8B,KAAOE,EAAOC,QAAQC,SAASlC,EAAY+B,QAO3D,OAHA/B,EAAYiB,MAAO,EAAIkB,EAASF,SAASnB,GAAMjB,KAAK,KACpDG,EAAYoC,IAAMrB,QAAQsB,MAC1BrC,EAAYsC,OAAStC,EAAYoC,IAC1BpC,GAvKT1B,aAAqBE,EAIrB,IAAIwD,EAASO,EAAuBC,WAIhCL,EAAWI,EAAuBE,GAItC,SAASF,EAAuB3E,GAAO,OAAOA,GAAOA,EAAI8E,WAAa9E,EAAM,CAAEqE,QAASrE,GAEvF,IAEIgE,EAAgB,CAAC,OAAQ,QAAS,WAAY,YAAa,iBAAkB,mBA0JjF,SAASpD,IAEP,IAAImE,EAAW,yFACXC,EAAW,cAAgBD,EAAhB,kBAAoDA,EAApD,4PAsBXE,EAAkB,UAAaD,EAAW,UAC1CnE,EAAUsC,QAAQC,IAAI8B,OAAS,KAE/BpE,EAAa,CAAC,KAAMmE,GAEpBE,EAAQf,EAAOC,QAAQC,SAASzD,GAWpC,MAVc,SAAVsE,EACFrE,EAAa,CAAC,KAAM,2CAA6CkE,GAC9C,QAAVG,EACTrE,EAAa,CAAC,KAAM,mBAAqBkE,GACtB,SAAVG,EACTrE,EAAa,CAAC,KAAM,qCAAuCmE,GACxC,OAAVE,GAA4B,QAAVA,IAC3BrE,EAAa,CAAC,KAAMkE,IAGf,CAAEnE,QAASA,EAASC,WAAYA,EAAYC,QAdrC,CAAEqE,SAAU,SApLT1E,eAAuB,CAAC,MAAO,OAAQ,QAC1CA,YAAoB,iCACvBA,SAAiB9F,OAAOyK,QAAU,SAAUC,EAAQC,GAC/D,IAAK,IAAIxJ,KAAOwJ,GACV,IAAGpI,eAAeI,KAAKgI,EAAQxJ,KACjCuJ,EAAOvJ,GAAOwJ,EAAOxJ,IAGzB,OAAOuJ,MD/BLlB,GAI4BpE,EAJI4E,YAIiB5E,EAAI8E,WAAa9E,EAAM,CAAEqE,QAASrE,GAEvF,MAAiB,WACf,GAAyB,UAArBmD,QAAQqC,WAAyBrC,QAAQC,IAAI8B,MAC/C,OAAO,EAAIO,EAASJ,QAAQ,GAAIlC,QAAQC,KAE1C,GAAIzI,EAAO8K,EAASC,WAClB,OAAO,EAAID,EAASJ,QAAQ,GAAI1K,EAAO8K,EAASC,YAElD,IAAIC,EAAYvB,EAAOC,QAAQC,SAASnB,QAAQC,IAAI8B,OACpD,IAAkD,IAA9CO,EAASG,aAAa9C,QAAQ6C,GAChC,OAAO,EAAIF,EAASJ,QAAQ,GAAIlC,QAAQC,KAE1C,IACE,IAAIhB,GAAc,EAAIqD,EAASI,aAAY,EAAIJ,EAASK,QAAO,EAAIL,EAASM,yBAE5E,OADApL,EAAO8K,EAASC,WAAatD,EACtBA,EACP,MAAOF,GAEP,OADA8D,QAAQ9D,MAAM,mDAAoDA,IAC3D,EAAIuD,EAASJ,QAAQ,GAAIlC,QAAQC,OEzB5C,IAAI6C,UF6BmB,WACrB,OAAO,IAAI7E,SAAQ,SAAUC,GAC3B,GAAyB,UAArB8B,QAAQqC,UAAyBrC,QAAQC,IAAI8B,MAE1C,GAAIvK,EAAO8K,EAASC,WACzBrE,GAAQ,EAAIoE,EAASJ,QAAQ,GAAI1K,EAAO8K,EAASC,iBAC5C,CACL,IAAIC,EAAYvB,EAAOC,QAAQC,SAASnB,QAAQC,IAAI8B,QACF,IAA9CO,EAASG,aAAa9C,QAAQ6C,GAChCtE,GAAQ,EAAIoE,EAASJ,QAAQ,GAAIlC,QAAQC,MAEzC/B,GAAQ,EAAIoE,EAASS,4BAA4BC,KAAKV,EAASK,OAAOK,KAAKV,EAASI,YAAYM,MAAK,SAAU/D,GAE7G,OADAzH,EAAO8K,EAASC,WAAatD,EACtBA,WAVXf,GAAQ,EAAIoE,EAASJ,QAAQ,GAAIlC,QAAQC,SAc1CgD,OAAM,SAAUlE,GAEjB,OADA8D,QAAQ9D,MAAM,mDAAoDA,IAC3D,EAAIuD,EAASJ,QAAQ,GAAIlC,QAAQC,SE9C5C,MAAiB,WACf,MAAyB,UAArBD,QAAQqC,SACHrC,QAAQC,IAAIC,MAAQF,QAAQC,IAAIiD,MAEpCJ,IACHA,EAAgBK,GAEXL,IAAgB5C,MAAQ,aAGV,WACrB,MAAyB,UAArBF,QAAQqC,SACHpE,QAAQC,QAAQ8B,QAAQC,IAAIC,MAAQF,QAAQC,IAAIiD,OAEpDJ,IACHA,EAAgBK,GAEXL,EAAcM,QAAQJ,MAAK,SAAS/C,GACzC,OAAOA,EAAIC,MAAQ,QCqChB,MAAMmD,EAAgB5L,OAAO6L,OAAO,CACzCC,qBAAqB,EACrBC,eAAgB,GAChBC,WAAW,EACXC,eAAe,EACfC,gBAAgB,EAChBC,iBAAiB,EACjBC,eAAgB,MC/DZC,KAAEA,GAASC,WAcjB/D,QAAQgE,MAAQ,uBAEhB,MACMC,EAAc,IAAI3J,IAClB4J,EAAuB,IAAKb,GAElC,IAAIc,GACAC,GAuHAC,GApHJ,SAASC,GAAsBC,EAAiBC,GAC9C,MAAMC,EAAUD,GAAaD,EAC7B,OAAO,IAAItG,SAASC,IACbkG,KACHA,GAAiBM,QAAQ,YAE3BN,GAdqB,SAgBnB,CAAEK,QAAAA,IACF,CAAC5E,EAAK8E,EAAYC,KAChB,IAAIC,GACChF,QAAsB3D,IAAfyI,GAA4BC,GAAO,aAAa9I,KAAK8I,EAAIE,WAGjED,EAFED,EAAIE,QAAQC,WAAW,cC9BhBC,GACnB,SAASC,EAAWrH,GAClBhD,KAAKgD,QAAUA,EACfhD,KAAKsK,QAAU,GAmBjB,OAfAzN,OAAOyK,OAAO+C,EAAYD,GAG1BC,EAAW3L,UAAY,IAClB0L,EAAO1L,UACV6L,KAAKC,EAAkBC,EAAcC,GACnC,MAAM1H,EAAkC,IAAKhD,KAAKgD,QAAS0H,cAAAA,GACrDT,EAAS,IAAIG,EAAOI,EAAUC,EAAMzH,GAC1ChD,KAAKsK,QAAUL,EAAOU,QAExBJ,YACE,OAAOvK,KAAKsK,UAITD,EDUYO,CAAKd,QAAQ,YAAYe,wBAAuB,IAAMf,QAAQC,MAG9DD,QAAQ,YAAYe,wBAAuB,IAAOf,QAAQC,GAAwCK,SAE7Gf,EAAYlL,IAAIwL,EAASM,IAE3B3G,EAAQ2G,SAuBhBzB,eAAesC,GAAUN,GACvB,MAAMX,EAAU1E,UAAK4F,QAAQP,GAC7B,GAAInB,EAAYpL,IAAI4L,GAClB,OAAOR,EAAYjI,IAAIyI,GAGzB,GAAIP,EAAOP,eAAgB,CACzB,MAAMiC,QAAkBtB,GAAsBG,GAC9C,GAAImB,EACF,OAAOA,EAIX,GAAIzB,GAEF,OADAF,EAAYlL,IAAI0L,EAASN,IAClBA,GAGT,GAAID,EAAON,gBAAiB,CAC1B,GAAIM,EAAOL,eAAgB,CACzB,MAAMgC,QAAmBvB,GAAsBG,EAASP,EAAOL,gBAC/D,GAAIgC,EAEF,OADA1B,GAAiB0B,EACVA,EAIX,IAAIC,EACJ,IACEA,QA7CG,IAAI7H,SAAQ,CAACC,EAASC,KAC3B,MAAM4H,EAAkC,UAArB/F,QAAQqC,SAAuB,UAAY,MAC9D2D,UAAarM,KACX,GAAGoM,eACH,CAAE9F,IAAK,IAAKD,QAAQC,IAAKC,KAAM+F,OAC/B,CAACpG,EAAK7B,EAAQkI,KACRrG,GAAOqG,EACT/H,EAAO0B,GAAO,IAAInB,MAAMwH,IAExBhI,EAAQF,EAAOmI,cAqCnB,MAAOtG,GAEPgD,QAAQuD,KAAK,wTAAwTvG,EAAIwG,WAG3U,GAAIP,EAAQ,CACV,MAAMD,QAAmBvB,GAAsBG,EAASqB,GACxD,GAAID,EAEF,OADA1B,GAAiB0B,EACVA,EAGThD,QAAQuD,KAAK,mDAAmDN,yJAOpE,OAFA3B,GAAiBO,QAnGM,UAmGoBM,OAC3Cf,EAAYlL,IAAI0L,EAASN,IAClBA,GAkBT,SAASmC,GAAYC,GACnB,MAAMC,EAAWD,EAAsB,aAAEE,cACzC,MAAO,CAAC,OAAQ,UAAW,SAAS1J,SAASyJ,GAAYA,EAAW,UAkDtEpD,eAAemC,GAAKmB,EAAiBtB,EAA8BxH,GACjE,GAAIwH,MAAAA,EACF,OAAO,KAGT,IAAIuB,EACJ,IACE,MAAM3B,QAAeU,GAAUN,GAC/B,IAAKJ,EACH,MAAM,IAAItG,MAAM,4BAA4B0G,KAE9C,MAAMwB,kBAAEA,EAAiBtB,cAAEA,GAxD/B,SAA0BN,EAA8BI,aACtD,IAAIwB,EACAtB,EACJ,GAAwC,mBAA7BN,EAAO6B,kBAAkC,CAClD,MAAM9G,KAAEA,EAAImF,QAAEA,GAAYF,EAAO6B,kBAAkB,KAAMzB,GACzDwB,EAAoB7G,EACpBuF,EAAgBJ,OAEhB0B,EAAoB5B,EAAO8B,sBAAsB,KAAM1B,GACvDE,EAAgBN,EAAO+B,0BAA0BH,GAGnD,IAAII,YAAgB1B,MAAAA,SAAAA,EAAe2B,uBAAW,GAC9C,QAA0B/K,IAAtB0K,QAAqD1K,IAAlB8K,GAAwD,IAAzBA,EAAclQ,OAClF,IACOuN,KACHA,GAASK,QAAQ,WAEnB,MACMwC,gBADoB7C,GAAO8C,eAAcC,mDAAwBR,IAChCK,QACZ,iBAAhBC,EACTF,EAAgB,IAAIA,EAAeE,QACVhL,IAAhBgL,IACTF,EAAgB,IAAIA,KAAkBE,IAExC,UAEJ,MAAO,CACLN,kBAAAA,EACAtB,mBAAiCpJ,IAAlBoJ,EACb,IACGA,EACH2B,QAASD,GAET1B,GAsB2C+B,CAAiBrC,EAAQI,GAEtE,IAkBIkC,EAlBA9D,EAAiB8B,MAAAA,SAAAA,EAAe9B,eACpC,GAAIA,GAAkBoD,EAAmB,CACvC,MAAMW,EAAmBxH,UAAK4F,QAAQiB,GACjC3N,MAAMuO,QAAQhE,KACjBA,EAAiB,CAACA,IAEpBA,EAAiBA,EAAelH,KAAKmL,GAC/B1H,UAAK2H,WAAWD,GACXA,EAEF1H,UAAKjB,KAAKyI,EAAkBE,KAGjCvD,EAAOV,gBACTA,EAAepH,KAAK8H,EAAOV,gBAK3BU,EAAOX,qBAAuBqD,IAChCU,QApGNlE,eAA0B4B,EAA8B4B,GACtD,IAAIU,EACJ,MAAMC,EAAmBxH,UAAK4F,QAAQiB,GAChCe,EAAe5H,UAAK7B,QAAQqJ,EAAkB,iBACpD,WACsBzD,EAAK6D,IACfC,WACRN,EAAUtC,EAAO6C,cAAcF,EAAcJ,IAE/C,MAAO1H,IAGT,OAAOyH,EAwFaQ,CAAW9C,EAAQ4B,IAGrC,MAAM/B,EAAS,IAAIG,EAAO,CACxB+C,UAAW,OACXvE,eAAAA,KACG5F,GACF0J,GAEHzC,EAAOU,KAAKH,EAAUsB,EAASpB,GAC/BqB,EAAa9B,EAAOmD,YACpB,MAAOnI,GACPgD,QAAQ9D,MAAMc,EAAIwG,QAASxG,EAAIoI,OAC/BtB,EAAa,CAAEuB,WAAY,EAAGC,aAAc,EAAGC,SAAU,GAAIC,OAAQ,GAAIC,OAAQ,IAGnF,OAEI3B,EAAmB4B,cAEjB5B,EAAWuB,YACXvB,EAAWwB,cACVxB,EAAmB6B,UAKnB7B,EAAWyB,SAAS9L,KAAKiK,IAC9B,MAAMkC,EAAUC,EAAWnC,EAAQoC,eAC7BC,EAAgBrC,EAAQsC,mBAAmBC,sBAC3CC,EAAcxC,EAAQyC,iBAAiBF,sBAC7C,MAAO,CACLtC,SAAUF,GAAYC,GACtB0C,QAAS,GAAG1C,EAAQ2C,iBAAiB3C,EAAQoC,iBAC7CQ,IAAKV,EAAQzR,IACboS,SAAU,CACRC,KAAMtJ,UAAKuJ,UAAU/C,EAAQgD,eAC7BC,SAAU,CACR,CAACZ,EAAca,KAAMb,EAAcc,WACnC,CAACX,EAAYU,KAAMV,EAAYW,iBAf9B,GA+CXC,OAAOpM,QAzBP6F,eAA4BwG,GAC1B1F,EAAOP,eAAiBiG,EAAcjG,eACtCO,EAAOX,oBAAsBqG,EAAcrG,oBAC3CW,EAAON,gBAAkBgG,EAAchG,gBACvCM,EAAOL,eAAiB+F,EAAc/F,eAEtC7D,QAAQrB,GAAG,WAAWyE,MAAOiD,IAC3B,GAA4B,WAAxBA,EAAQwD,YAEV3F,EAAOmC,EAAQA,QAAQzN,KAAOyN,EAAQA,QAAQrO,MAElB,mBAAxBqO,EAAQA,QAAQzN,KAClBqL,EAAYpJ,YAET,CACL,MAAMiP,QACJA,EAAOC,QAAEA,EAAOrD,QAAEA,EAAOtB,SAAEA,GACzBiB,EAAQA,QACNzI,EAAsB,QAAZmM,EAAoB,CAAEC,KAAK,GAAS,CAAEA,KAAK,GAErD9E,QAAgBK,GAAKmB,EAAStB,EAAUxH,GAC9CqM,KAAKH,EAAS5E"} \ No newline at end of file diff --git a/package.json b/package.json index ffb427a2..3265d5bc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "linter-tslint", "main": "./dist/main.js", - "version": "1.11.0", + "version": "1.11.1", "description": "Linter plugin for Typescript, using tslint", "repository": { "type": "git",