@ngcompass/common 0.1.2-beta → 0.1.4-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var c=require('typescript'),a=require('picocolors');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var c__default=/*#__PURE__*/_interopDefault(c);var a__default=/*#__PURE__*/_interopDefault(a);var E="ngcompass",_="v.0.1.2-beta",P="1.0.0",v=[`.${E}rc.json`,`.${E}rc.js`,`.${E}.config.js`,`${E}.config.json`],L=`node_modules/.cache/${E}`,T=["**/*.ts","**/*.html"],I=["**/node_modules/**","**/dist/**","**/build/**","**/*.spec.ts","**/*.test.ts"],F={min:12,max:21};var m=class extends Error{code;constructor(e,r){super(e),this.code=r,this.name="AnalyzerError","captureStackTrace"in Error&&Error.captureStackTrace(this,this.constructor);}},S=class extends m{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},b=class extends m{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},y=class extends m{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},R=class extends m{ruleName;filePath;constructor(e,r,s){let n=s instanceof Error?s.message:String(s);super(`Rule "${e}" crashed on ${r}: ${n}`,"RULE_EXECUTION_ERROR"),this.ruleName=e,this.filePath=r,this.name="RuleExecutionError",s instanceof Error&&"stack"in s&&(this.stack=`${this.stack}
1
+ 'use strict';var c=require('typescript'),a=require('picocolors');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var c__default=/*#__PURE__*/_interopDefault(c);var a__default=/*#__PURE__*/_interopDefault(a);var E="ngcompass",_="v.0.1.4-beta",P="1.0.0",v=[`.${E}rc.json`,`.${E}rc.js`,`.${E}.config.js`,`${E}.config.json`],L=`node_modules/.cache/${E}`,T=["**/*.ts","**/*.html"],I=["**/node_modules/**","**/dist/**","**/build/**","**/*.spec.ts","**/*.test.ts"],F={min:12,max:21};var m=class extends Error{code;constructor(e,r){super(e),this.code=r,this.name="AnalyzerError","captureStackTrace"in Error&&Error.captureStackTrace(this,this.constructor);}},S=class extends m{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},b=class extends m{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},y=class extends m{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},R=class extends m{ruleName;filePath;constructor(e,r,s){let n=s instanceof Error?s.message:String(s);super(`Rule "${e}" crashed on ${r}: ${n}`,"RULE_EXECUTION_ERROR"),this.ruleName=e,this.filePath=r,this.name="RuleExecutionError",s instanceof Error&&"stack"in s&&(this.stack=`${this.stack}
2
2
  Caused by: ${s.stack}`);}};function D(t,e){return Object.freeze({type:t,timestamp:Date.now(),...e})}var O=class{_errors=[];record(e){this._errors.push(e);}get errors(){return this._errors}get hasFatalErrors(){return this._errors.some(e=>!e.recoverable)}get hasAnyErrors(){return this._errors.length>0}forPhase(e){return this._errors.filter(r=>r.phase===e)}};exports.RuleCategory=void 0;exports.RuleCategory=((exports.RuleCategory={}).Architecture="architecture",exports.RuleCategory.Performance="performance",exports.RuleCategory.SSR="ssr",exports.RuleCategory.Security="security",exports.RuleCategory.Accessibility="accessibility",exports.RuleCategory.Testing="testing",exports.RuleCategory.CodeSmell="code-smell",exports.RuleCategory.Reactivity="reactivity",exports.RuleCategory.BestPractice="best-practice",exports.RuleCategory);var U=t=>({ok:true,data:t}),z=t=>({ok:false,error:t});var w=class{static parse(e,r="config.ts"){return c__default.default.createSourceFile(r,e,c__default.default.ScriptTarget.Latest,true)}static generateLocationMap(e){let r={},s=(n,o)=>{if(c__default.default.isPropertyAssignment(n)&&n.name){let i=this.getPropertyName(n.name);if(i){let g=[...o,i],u=g.join("."),{line:f,character:h}=e.getLineAndCharacterOfPosition(n.name.getStart());r[u]={line:f+1,column:h+1},s(n.initializer,g);return}}c__default.default.isObjectLiteralExpression(n)?n.properties.forEach(i=>s(i,o)):c__default.default.isArrayLiteralExpression(n)?n.elements.forEach((i,g)=>{let u=[...o,String(g)],f=u.join("."),{line:h,character:x}=e.getLineAndCharacterOfPosition(i.getStart());r[f]={line:h+1,column:x+1},s(i,u);}):c__default.default.isExportAssignment(n)?s(n.expression,o):c__default.default.isExpressionStatement(n)?c__default.default.isParenthesizedExpression(n.expression)?s(n.expression.expression,o):s(n.expression,o):c__default.default.forEachChild(n,i=>s(i,o));};return s(e,[]),r}static getPropertyName(e){return c__default.default.isIdentifier(e)||c__default.default.isStringLiteral(e)?e.text:null}};var $=new Set(["discovery","loader","validator","cache","scanner","parser","rules","workers","reporter","init","config","planner","incremental","dry-run","engine","plugin-loader","env-fingerprint"]),N=[a__default.default.cyan,a__default.default.green,a__default.default.yellow,a__default.default.blue,a__default.default.magenta,a__default.default.magentaBright,a__default.default.cyanBright,a__default.default.greenBright,a__default.default.yellowBright,a__default.default.blueBright],p=new class{config;timers;constructor(){this.config=this.initializeFromEnv(),this.timers=new Map;}initializeFromEnv(){let t=process.env.DEBUG||"",e=this.parseNamespaces(t);return {enabled:e==="all"||e.size>0,level:"debug",namespaces:e,showTimestamps:false,showTimings:true}}enable(t="debug",e="all"){this.config.enabled=true,this.config.level=t,this.config.namespaces=e==="all"?"all":new Set(e);}disable(){this.config.enabled=false;}isEnabled(){return this.config.enabled}debug(t,e,...r){this.log("debug",t,e,...r);}info(t,e,...r){this.log("info",t,e,...r);}warn(t,e,...r){this.log("warn",t,e,...r);}error(t,e,...r){this.log("error",t,e,...r);}time(t){this.config.enabled&&this.timers.set(t,performance.now());}timeEnd(t){if(!this.config.enabled)return 0;let e=this.timers.get(t);if(!e)return 0;let r=performance.now()-e;return this.timers.delete(t),r}timeLog(t,e,r){let s=this.timeEnd(t);return s>0&&r&&this.debug(e,`${r}: ${s.toFixed(1)}ms`),s}log(t,e,r,...s){if(!this.config.enabled||this.config.namespaces!=="all"&&!this.config.namespaces.has(e))return;let n=new Date,o=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}:${n.getSeconds().toString().padStart(2,"0")}`,i=(function(f){let h=0;for(let x=0;x<f.length;x++)h=f.charCodeAt(x)+((h<<5)-h);return N[Math.abs(h)%N.length]})(e),g=`${a__default.default.gray(`[${o}]`)} ${i(`[ngcompass:${e}]`)}`,u=this.config.showTimestamps?a__default.default.gray(`[${n.toISOString()}] `):"";console.error(`${u}${g} ${r}`,...s);}parseNamespaces(t){if(t==="*"||t==="ngcompass"||t==="ngcompass:*")return "all";let e=t.split(",").map(s=>s.trim()),r=new Set;for(let s of e){if(!s.startsWith("ngcompass:"))continue;let n=s.slice(10);$.has(n)?r.add(n):n.length>0&&console.warn(`[ngcompass] Unknown debug namespace: "${n}". Valid namespaces: ${[...$].join(", ")}`);}return r}},V=(t,e,...r)=>p.debug(t,e,...r),H=(t,e,...r)=>p.info(t,e,...r),W=(t,e,...r)=>p.warn(t,e,...r),K=(t,e,...r)=>p.error(t,e,...r),X=t=>p.time(t),q=t=>p.timeEnd(t),Q=(t,e,r)=>p.timeLog(t,e,r),Y=(t,e)=>p.enable(t,e),Z=()=>p.disable(),ee=()=>p.isEnabled();var d=class extends Error{path;constructor(e,r){super(e),this.path=r,this.name="SerializationError";}};function A(t,e=[],r=new WeakSet){if(t===null)return "null";if(t===void 0)throw new d("undefined is not a valid hash input",e);switch(typeof t){case "boolean":return t?"true":"false";case "number":if(!Number.isFinite(t))throw new d(`Non-finite number (${String(t)}) is not a valid hash input`,e);return String(t);case "string":return JSON.stringify(t);case "function":throw new d("Functions are not valid hash inputs",e)}if(t instanceof Date)return JSON.stringify(t.toISOString());if(t instanceof RegExp)return JSON.stringify(t.toString());if(typeof t=="object"){let s;if(r.has(t))throw new d(`Circular reference detected at path: ${e.join(".")||"(root)"}`,e);if(r.add(t),Array.isArray(t))s="["+t.map((n,o)=>A(n,[...e,String(o)],r)).join(",")+"]";else {let n=Object.keys(t).sort(),o=[];for(let i of n){let g=t[i];g!==void 0&&o.push(JSON.stringify(i)+":"+A(g,[...e,i],r));}s="{"+o.join(",")+"}";}return r.delete(t),s}return JSON.stringify(t)}var C=class{lines;constructor(e){this.lines=[0];for(let r=0;r<e.length;r++)e[r]===`
3
3
  `&&this.lines.push(r+1);}location(e){let r=0,s=this.lines.length-1;for(;r<=s;){let i=r+s>>>1;this.lines[i]<=e?r=i+1:s=i-1;}let n=r-1,o=this.lines[n];return {line:n+1,column:e-o+1}}};exports.ASTUtils=w;exports.AnalyzerError=m;exports.CACHE_VERSION=P;exports.CONFIG_FILE_NAMES=v;exports.ConfigurationError=S;exports.DEFAULT_CACHE_DIR=L;exports.DEFAULT_EXCLUDE_PATTERNS=I;exports.DEFAULT_INCLUDE_PATTERNS=T;exports.Err=z;exports.InfrastructureErrorCollector=O;exports.Locator=C;exports.Ok=U;exports.PACKAGE_VERSION=_;exports.ParseError=b;exports.RuleError=y;exports.RuleExecutionError=R;exports.SUPPORTED_ANGULAR_VERSIONS=F;exports.SerializationError=d;exports.TOOL_NAME=E;exports.createInfrastructureError=D;exports.debug=V;exports.disableDebug=Z;exports.enableDebug=Y;exports.error=K;exports.info=H;exports.isDebugEnabled=ee;exports.stableSerialize=A;exports.time=X;exports.timeEnd=q;exports.timeLog=Q;exports.warn=W;//# sourceMappingURL=index.cjs.map
4
4
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts","../src/errors.ts","../src/types.ts","../src/ast/utils.ts","../src/logger.ts","../src/utils/stable-serialize.ts","../src/utils/locator.ts"],"names":["TOOL_NAME","PACKAGE_VERSION","CACHE_VERSION","CONFIG_FILE_NAMES","DEFAULT_CACHE_DIR","DEFAULT_INCLUDE_PATTERNS","DEFAULT_EXCLUDE_PATTERNS","SUPPORTED_ANGULAR_VERSIONS","min","max","AnalyzerError","Error","message","code","name","captureStackTrace","ConfigurationError","ParseError","filePath","RuleError","ruleId","RuleExecutionError","ruleName","cause","causeMessage","String","stack","createInfrastructureError","type","fields","Object","freeze","timestamp","Date","now","InfrastructureErrorCollector","_errors","record","error","push","errors","hasFatalErrors","some","e","recoverable","hasAnyErrors","length","forPhase","phase","filter","RuleCategory","Ok","data","ok","Err","ASTUtils","parse","content","fileName","ts","createSourceFile","ScriptTarget","Latest","generateLocationMap","sourceFile","map","visit","node","currentPath","isPropertyAssignment","getPropertyName","newPath","pathKey","join","line","character","getLineAndCharacterOfPosition","getStart","column","initializer","isObjectLiteralExpression","properties","forEach","prop","isArrayLiteralExpression","elements","elem","idx","isExportAssignment","expression","isExpressionStatement","isParenthesizedExpression","forEachChild","child","isIdentifier","isStringLiteral","text","KNOWN_NAMESPACES","Set","COLORS","pc","cyan","green","yellow","blue","magenta","magentaBright","cyanBright","greenBright","yellowBright","blueBright","logger","config","timers","initializeFromEnv","Map","debugEnv","process","env","DEBUG","namespaces","parseNamespaces","enabled","size","level","showTimestamps","showTimings","enable","disable","isEnabled","debug","namespace","args","log","info","warn","time","label","set","performance","timeEnd","start","get","duration","delete","timeLog","toFixed","_level","has","timeStr","getHours","toString","padStart","getMinutes","getSeconds","colorFn","hash","i","charCodeAt","Math","abs","prefix","gray","toISOString","console","parts","split","s","trim","part","startsWith","ns","slice","add","enableDebug","disableDebug","isDebugEnabled","SerializationError","path","stableSerialize","value","_path","_seen","WeakSet","undefined","Number","isFinite","JSON","stringify","RegExp","result","Array","isArray","v","sortedKeys","keys","sort","pairs","k","Locator","lines","location","offset","low","high","mid","lineStart"],"mappings":"gOAIO,IAAMA,EAAY,WAAA,CACZC,CAAAA,CAAkB,eAClBC,CAAAA,CAAgB,OAAA,CAChBC,EAAoB,CAC7B,CAAA,CAAA,EAAIH,CAAAA,CAAAA,OAAAA,CAAAA,CACJ,IAAIA,CAAAA,CAAAA,KAAAA,CAAAA,CACJ,IAAIA,CAAAA,CAAAA,UAAAA,CAAAA,CACJ,GAAGA,CAAAA,CAAAA,YAAAA,CAAAA,CAAAA,CAGMI,CAAAA,CAAoB,CAAA,oBAAA,EAAuBJ,CAAAA,CAAAA,CAAAA,CAE3CK,CAAAA,CAA2B,CACpC,SAAA,CACA,WAAA,CAAA,CAGSC,EAA2B,CACpC,oBAAA,CACA,aACA,aAAA,CACA,cAAA,CACA,gBAGSC,CAAAA,CAA6B,CACtCC,IAAK,EAAA,CACLC,GAAAA,CAAK,EACT,EC5BO,IAAMC,CAAAA,CAAN,cAA4BC,KAAAA,CAAAA,IAAAA,CACjC,WAAA,CAAYC,EAAiCC,CAAAA,CAAe,CAC1D,MAAMD,CAAAA,CAAAA,CAAAA,KADqCC,IAAAA,CAAAA,CAAAA,CAE3C,KAAKC,IAAAA,CAAO,eAAA,CAER,sBAAuBH,KAAAA,EACxBA,KAAAA,CAAcI,kBAAkB,IAAA,CAAM,IAAA,CAAK,WAAW,EAE3D,CACF,CAAA,CAEaC,CAAAA,CAAN,cAAiCN,CAAAA,CACtC,YAAYE,CAAAA,CAAiB,CAC3B,MAAMA,CAAAA,CAAS,cAAA,EACf,IAAA,CAAKE,IAAAA,CAAO,qBACd,CACF,CAAA,CAEaG,EAAN,cAAyBP,CAAAA,CAAAA,QAAAA,CAC9B,WAAA,CACEE,EACgBM,CAAAA,CAChB,CACA,MAAM,CAAA,eAAA,EAAkBA,CAAAA,KAAaN,CAAAA,CAAAA,CAAAA,CAAW,aAAA,CAAA,CAAA,IAAA,CAFhCM,SAAAA,CAAAA,CAGhB,IAAA,CAAKJ,KAAO,aACd,CACF,EAEaK,CAAAA,CAAN,cAAwBT,CAAAA,CAAAA,MAAAA,CAC7B,YACEE,CAAAA,CACgBQ,CAAAA,CAChB,CACA,KAAA,CAAM,CAAA,eAAA,EAAkBA,CAAAA,CAAAA,GAAAA,EAAYR,CAAAA,GAAW,YAAA,CAAA,CAAA,KAF/BQ,MAAAA,CAAAA,CAAAA,CAGhB,KAAKN,IAAAA,CAAO,YACd,CACF,CAAA,CASaO,CAAAA,CAAN,cAAiCX,CAAAA,mBACtC,WAAA,CACkBY,CAAAA,CACAJ,EAChBK,CAAAA,CACA,CACA,IAAMC,CAAAA,CAAeD,CAAAA,YAAiBZ,MAAQY,CAAAA,CAAMX,OAAAA,CAAUa,OAAOF,CAAAA,CAAAA,CACrE,MACE,CAAA,MAAA,EAASD,CAAAA,gBAAwBJ,CAAAA,CAAAA,EAAAA,EAAaM,CAAAA,CAAAA,CAAAA,CAC9C,sBAAA,CAAA,CAAA,IAAA,CAPcF,SAAAA,CAAAA,CAAAA,IAAAA,CACAJ,SAAAA,CAAAA,CAQhB,IAAA,CAAKJ,KAAO,oBAAA,CAERS,CAAAA,YAAiBZ,OAAS,OAAA,GAAWY,CAAAA,GACvC,KAAKG,KAAAA,CAAQ,CAAA,EAAG,KAAKA,KAAK;AAAgBH,WAAAA,EAAAA,CAAAA,CAAMG,KAAK,CAAA,CAAA,EAEzD,CACF,EA2CO,SAASC,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CAAuD,CAEvD,OAAOC,MAAAA,CAAOC,MAAAA,CAAO,CAAEH,KAAAA,CAAAA,CAAMI,SAAAA,CAAWC,IAAAA,CAAKC,GAAAA,EAAG,CAAI,GAAGL,CAAO,CAAA,CAChE,CAQO,IAAMM,CAAAA,CAAN,KAAMA,CACMC,OAAAA,CAAiC,EAAA,CAElDC,OAAOC,CAAAA,CAAkC,CACvC,IAAA,CAAKF,OAAAA,CAAQG,IAAAA,CAAKD,CAAAA,EACpB,CAEA,IAAIE,MAAAA,EAA6C,CAC/C,OAAO,IAAA,CAAKJ,OACd,CAEA,IAAIK,cAAAA,EAA0B,CAC5B,OAAO,IAAA,CAAKL,OAAAA,CAAQM,IAAAA,CAAKC,CAAAA,EAAK,CAACA,CAAAA,CAAEC,WAAW,CAC9C,CAEA,IAAIC,YAAAA,EAAwB,CAC1B,OAAO,IAAA,CAAKT,OAAAA,CAAQU,MAAAA,CAAS,CAC/B,CAGAC,QAAAA,CAASC,CAAAA,CAAyE,CAChF,OAAO,IAAA,CAAKZ,OAAAA,CAAQa,MAAAA,CAAON,CAAAA,EAAKA,EAAEK,KAAAA,GAAUA,CAAAA,CAC9C,CACF,EC9HYE,2BAAAA,CAAAA,oBAAAA,EAAAA,CAAAA,oBAAAA,CAAAA,EAAAA,EAAAA,YAAAA,CAAAA,cAAAA,CAAAA,oBAAAA,CAAAA,WAAAA,CAAAA,aAAAA,CAAAA,oBAAAA,CAAAA,GAAAA,CAAAA,MAAAA,oBAAAA,CAAAA,QAAAA,CAAAA,UAAAA,CAAAA,oBAAAA,CAAAA,aAAAA,CAAAA,eAAAA,CAAAA,oBAAAA,CAAAA,OAAAA,CAAAA,UAAAA,oBAAAA,CAAAA,SAAAA,CAAAA,YAAAA,CAAAA,oBAAAA,CAAAA,UAAAA,CAAAA,YAAAA,CAAAA,oBAAAA,CAAAA,YAAAA,CAAAA,gBAAAA,oBAAAA,CAAAA,KAsBCC,CAAAA,CAASC,CAAAA,GAA+B,CAAEC,EAAAA,CAAI,IAAA,CAAMD,IAAAA,CAAAA,CAAK,GAKzDE,CAAAA,CAAUhB,CAAAA,GAAgC,CAAEe,EAAAA,CAAI,KAAA,CAAOf,KAAAA,CAAAA,CAAM,CAAA,ECrCnE,IAAMiB,CAAAA,CAAN,KAAMA,CAIT,OAAOC,KAAAA,CAAMC,CAAAA,CAAiBC,EAAW,WAAA,CAA4B,CACjE,OAAOC,kBAAAA,CAAGC,gBAAAA,CACNF,CAAAA,CACAD,CAAAA,CACAE,kBAAAA,CAAGE,aAAaC,MAAAA,CAChB,IAAA,CAER,CAMA,OAAOC,mBAAAA,CAAoBC,CAAAA,CAAwC,CAC/D,IAAMC,CAAAA,CAAmB,EAAC,CAEpBC,CAAAA,CAAQ,CAACC,CAAAA,CAAeC,CAAAA,GAAAA,CAC1B,GAAIT,kBAAAA,CAAGU,oBAAAA,CAAqBF,CAAAA,CAAAA,EAASA,CAAAA,CAAKrD,IAAAA,CAAM,CAC5C,IAAMA,EAAO,IAAA,CAAKwD,eAAAA,CAAgBH,CAAAA,CAAKrD,IAAI,CAAA,CAC3C,GAAIA,CAAAA,CAAM,CACN,IAAMyD,CAAAA,CAAU,CAAA,GAAIH,CAAAA,CAAatD,CAAAA,CAAAA,CAC3B0D,CAAAA,CAAUD,CAAAA,CAAQE,IAAAA,CAAK,GAAA,EAGvB,CAAEC,IAAAA,CAAAA,CAAAA,CAAMC,SAAAA,CAAAA,CAAS,CAAA,CAAKX,CAAAA,CAAWY,6BAAAA,CAA8BT,EAAKrD,IAAAA,CAAK+D,QAAAA,EAAQ,CAAA,CACvFZ,EAAIO,CAAAA,CAAAA,CAAW,CACXE,IAAAA,CAAMA,EAAO,CAAA,CACbI,MAAAA,CAAQH,CAAAA,CAAY,CACxB,CAAA,CAGAT,CAAAA,CAAMC,CAAAA,CAAKY,WAAAA,CAAaR,CAAAA,CAAAA,CACxB,MACJ,CACJ,CAEIZ,kBAAAA,CAAGqB,yBAAAA,CAA0Bb,CAAAA,CAAAA,CAC7BA,EAAKc,UAAAA,CAAWC,OAAAA,CAAQC,CAAAA,EAAQjB,CAAAA,CAAMiB,CAAAA,CAAMf,CAAAA,CAAAA,CAAAA,CAK5CT,mBAAGyB,wBAAAA,CAAyBjB,CAAAA,CAAAA,CAC5BA,CAAAA,CAAKkB,SAASH,OAAAA,CAAQ,CAACI,CAAAA,CAAMC,CAAAA,GAAAA,CACzB,IAAMhB,CAAAA,CAAU,CAAA,GAAIH,CAAAA,CAAa3C,MAAAA,CAAO8D,CAAAA,CAAAA,CAAAA,CAClCf,CAAAA,CAAUD,EAAQE,IAAAA,CAAK,GAAA,CAAA,CAGvB,CAAEC,IAAAA,CAAAA,CAAAA,CAAMC,SAAAA,CAAAA,CAAS,EAAKX,CAAAA,CAAWY,6BAAAA,CAA8BU,CAAAA,CAAKT,QAAAA,EAAQ,CAAA,CAClFZ,CAAAA,CAAIO,CAAAA,EAAW,CACXE,IAAAA,CAAMA,CAAAA,CAAO,CAAA,CACbI,OAAQH,CAAAA,CAAY,CACxB,CAAA,CAEAT,CAAAA,CAAMoB,EAAMf,CAAAA,EAChB,CAAA,CAAA,CAKAZ,kBAAAA,CAAG6B,kBAAAA,CAAmBrB,CAAAA,CAAAA,CACtBD,EAAMC,CAAAA,CAAKsB,UAAAA,CAAYrB,CAAAA,CAAAA,CAGvBT,kBAAAA,CAAG+B,qBAAAA,CAAsBvB,CAAAA,CAAAA,CACrBR,mBAAGgC,yBAAAA,CAA0BxB,CAAAA,CAAKsB,UAAU,CAAA,CAC5CvB,CAAAA,CAAMC,CAAAA,CAAKsB,UAAAA,CAAWA,UAAAA,CAAYrB,CAAAA,CAAAA,CAElCF,CAAAA,CAAMC,CAAAA,CAAKsB,UAAAA,CAAYrB,CAAAA,CAAAA,CAK/BT,kBAAAA,CAAGiC,YAAAA,CAAazB,EAAM0B,CAAAA,EAAS3B,CAAAA,CAAM2B,CAAAA,CAAOzB,CAAAA,CAAAA,EAChD,CAAA,CAGA,OADAF,EAAMF,CAAAA,CAAY,EAAE,CAAA,CACbC,CACX,CAEA,OAAeK,eAAAA,CAAgBxD,EAAsC,CAAA,OAC7D6C,kBAAAA,CAAGmC,YAAAA,CAAahF,CAAAA,CAAAA,EAGhB6C,kBAAAA,CAAGoC,eAAAA,CAAgBjF,CAAAA,EAFZA,CAAAA,CAAKkF,IAAAA,CAKT,IACX,CACJ,ECvDA,IAAMC,EAAwC,IAAIC,GAAAA,CAC9C,CACI,WAAA,CAAa,QAAA,CAAU,WAAA,CAAa,OAAA,CAAS,SAAA,CAAW,SACxD,OAAA,CAAS,SAAA,CAAW,UAAA,CAAY,MAAA,CAAQ,QAAA,CACxC,SAAA,CAAW,aAAA,CAAe,SAAA,CAAW,SAAU,eAAA,CAAiB,iBAAA,CACnE,CAAA,CAGCC,CAAAA,CAAS,CACXC,kBAAAA,CAAGC,IAAAA,CACHD,kBAAAA,CAAGE,MACHF,kBAAAA,CAAGG,MAAAA,CACHH,kBAAAA,CAAGI,IAAAA,CACHJ,mBAAGK,OAAAA,CACHL,kBAAAA,CAAGM,aAAAA,CACHN,kBAAAA,CAAGO,WACHP,kBAAAA,CAAGQ,WAAAA,CACHR,kBAAAA,CAAGS,YAAAA,CACHT,kBAAAA,CAAGU,UAAAA,CAAAA,CA6IDC,CAAAA,CAAS,IAlIf,KAAA,CACYC,MAAAA,CACAC,MAAAA,CAER,WAAA,EAAc,CACV,IAAA,CAAKD,MAAAA,CAAS,IAAA,CAAKE,mBAAiB,CACpC,IAAA,CAAKD,MAAAA,CAAS,IAAIE,IACtB,CAEQD,iBAAAA,EAAkC,CACtC,IAAME,CAAAA,CAAWC,OAAAA,CAAQC,GAAAA,CAAIC,KAAAA,EAAS,GAIhCC,CAAAA,CAAa,IAAA,CAAKC,eAAAA,CAAgBL,CAAAA,EAOxC,OAAO,CACHM,OAAAA,CAHYF,CAAAA,GAAe,KAAA,EAASA,CAAAA,CAAWG,IAAAA,CAAO,CAAA,CAItDC,MAAO,OAAA,CACPJ,UAAAA,CAAAA,CAAAA,CACAK,cAAAA,CAAgB,KAAA,CAChBC,WAAAA,CAAa,IACjB,CACJ,CAEOC,MAAAA,CAAOH,CAAAA,CAAkB,OAAA,CAASJ,CAAAA,CAAkC,KAAA,CAAO,CAC9E,IAAA,CAAKR,MAAAA,CAAOU,QAAU,IAAA,CACtB,IAAA,CAAKV,MAAAA,CAAOY,KAAAA,CAAQA,CAAAA,CACpB,IAAA,CAAKZ,MAAAA,CAAOQ,UAAAA,CAAaA,IAAe,KAAA,CAAQ,KAAA,CAAQ,IAAItB,GAAAA,CAAIsB,CAAAA,EACpE,CAEOQ,OAAAA,EAAU,CACb,IAAA,CAAKhB,MAAAA,CAAOU,OAAAA,CAAU,MAC1B,CAEOO,SAAAA,EAAqB,CACxB,OAAO,KAAKjB,MAAAA,CAAOU,OACvB,CAEOQ,KAAAA,CAAMC,CAAAA,CAAsBvH,CAAAA,CAAAA,GAAoBwH,CAAAA,CAAiB,CACpE,KAAKC,GAAAA,CAAI,OAAA,CAASF,CAAAA,CAAWvH,CAAAA,CAAAA,GAAYwH,CAAAA,EAC7C,CAEOE,IAAAA,CAAKH,EAAsBvH,CAAAA,CAAAA,GAAoBwH,CAAAA,CAAiB,CACnE,IAAA,CAAKC,GAAAA,CAAI,MAAA,CAAQF,CAAAA,CAAWvH,CAAAA,CAAAA,GAAYwH,CAAAA,EAC5C,CAEOG,IAAAA,CAAKJ,CAAAA,CAAsBvH,CAAAA,CAAAA,GAAoBwH,CAAAA,CAAiB,CACnE,KAAKC,GAAAA,CAAI,MAAA,CAAQF,CAAAA,CAAWvH,CAAAA,CAAAA,GAAYwH,CAAAA,EAC5C,CAEO9F,MAAM6F,CAAAA,CAAsBvH,CAAAA,CAAAA,GAAoBwH,CAAAA,CAAiB,CACpE,KAAKC,GAAAA,CAAI,OAAA,CAASF,CAAAA,CAAWvH,CAAAA,CAAAA,GAAYwH,CAAAA,EAC7C,CAEOI,IAAAA,CAAKC,CAAAA,CAAe,CAClB,IAAA,CAAKzB,MAAAA,CAAOU,SACjB,IAAA,CAAKT,MAAAA,CAAOyB,GAAAA,CAAID,CAAAA,CAAOE,WAAAA,CAAYzG,GAAAA,EAAG,EAC1C,CAEO0G,OAAAA,CAAQH,CAAAA,CAAuB,CAClC,GAAI,CAAC,IAAA,CAAKzB,MAAAA,CAAOU,OAAAA,CAAS,OAAO,CAAA,CAEjC,IAAMmB,CAAAA,CAAQ,IAAA,CAAK5B,OAAO6B,GAAAA,CAAIL,CAAAA,CAAAA,CAC9B,GAAI,CAACI,CAAAA,CAAO,OAAO,CAAA,CAEnB,IAAME,CAAAA,CAAWJ,WAAAA,CAAYzG,GAAAA,EAAG,CAAK2G,EAErC,OADA,IAAA,CAAK5B,MAAAA,CAAO+B,MAAAA,CAAOP,CAAAA,CAAAA,CACZM,CACX,CAEOE,QAAQR,CAAAA,CAAeN,CAAAA,CAAsBvH,CAAAA,CAA0B,CAC1E,IAAMmI,CAAAA,CAAW,IAAA,CAAKH,OAAAA,CAAQH,CAAAA,CAAAA,CAI9B,OAHIM,CAAAA,CAAW,CAAA,EAAKnI,CAAAA,EAChB,IAAA,CAAKsH,KAAAA,CAAMC,CAAAA,CAAW,GAAGvH,CAAAA,CAAAA,EAAAA,EAAYmI,CAAAA,CAASG,OAAAA,CAAQ,CAAA,CAAA,CAAA,EAAA,CAAM,CAAA,CAEzDH,CACX,CAEQV,GAAAA,CAAIc,CAAAA,CAAkBhB,CAAAA,CAAsBvH,CAAAA,CAAAA,GAAoBwH,CAAAA,CAAiB,CACrF,GAAI,CAAC,IAAA,CAAKpB,MAAAA,CAAOU,OAAAA,EACb,IAAA,CAAKV,MAAAA,CAAOQ,UAAAA,GAAe,KAAA,EAAS,CAAC,KAAKR,MAAAA,CAAOQ,UAAAA,CAAW4B,GAAAA,CAAIjB,CAAAA,EAD1C,OAG1B,IAAMjG,CAAAA,CAAM,IAAID,KACVoH,CAAAA,CAAU,CAAA,EAAGnH,CAAAA,CAAIoH,QAAAA,EAAQ,CAAGC,QAAAA,EAAQ,CAAGC,QAAAA,CAAS,EAAG,GAAA,CAAA,CAAA,CAAA,EAAQtH,CAAAA,CAAIuH,UAAAA,EAAU,CAAGF,QAAAA,EAAQ,CAAGC,SAAS,CAAA,CAAG,GAAA,CAAA,CAAA,CAAA,EAAQtH,CAAAA,CAAIwH,UAAAA,EAAU,CAAGH,QAAAA,GAAWC,QAAAA,CAAS,CAAA,CAAG,GAAA,CAAA,GACnJG,CAAAA,CAAAA,CAlGd,SAA2BxB,CAAAA,CAAiB,CACxC,IAAIyB,CAAAA,CAAO,CAAA,CACX,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAI1B,CAAAA,CAAUrF,MAAAA,CAAQ+G,IAClCD,CAAAA,CAAOzB,CAAAA,CAAU2B,UAAAA,CAAWD,CAAAA,CAAAA,EAAAA,CAAOD,CAAAA,EAAQ,CAAA,EAAKA,CAAAA,CAAAA,CAEpD,OAAOzD,CAAAA,CAAO4D,IAAAA,CAAKC,GAAAA,CAAIJ,CAAAA,CAAAA,CAAQzD,CAAAA,CAAOrD,MAAM,CAChD,GA4F0CqF,CAAAA,CAAAA,CAC5B8B,CAAAA,CAAS,CAAA,EAAG7D,mBAAG8D,IAAAA,CAAK,CAAA,CAAA,EAAIb,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,EAAKM,CAAAA,CAAQ,CAAA,WAAA,EAAcxB,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CACzEnG,CAAAA,CAAY,KAAKgF,MAAAA,CAAOa,cAAAA,CAAiBzB,kBAAAA,CAAG8D,IAAAA,CAAK,CAAA,CAAA,EAAIhI,CAAAA,CAAIiI,WAAAA,EAAW,IAAM,CAAA,CAAI,EAAA,CAEpFC,OAAAA,CAAQ9H,KAAAA,CAAM,CAAA,EAAGN,CAAAA,CAAAA,EAAYiI,CAAAA,IAAUrJ,CAAAA,CAAAA,CAAAA,CAAS,GAAKwH,CAAAA,EACzD,CAEQX,eAAAA,CAAgBL,CAAAA,CAA0C,CAE9D,GAAIA,CAAAA,GAAa,GAAA,EAAOA,CAAAA,GAAa,WAAA,EAAeA,CAAAA,GAAa,aAAA,CAC7D,OAAO,MAGX,IAAMiD,CAAAA,CAAQjD,CAAAA,CAASkD,KAAAA,CAAM,GAAA,CAAA,CAAKrG,GAAAA,CAAIsG,CAAAA,EAAKA,EAAEC,IAAAA,EAAI,CAAA,CAC3ChD,CAAAA,CAAa,IAAItB,GAAAA,CAEvB,IAAA,IAAWuE,CAAAA,IAAQJ,EAAO,CACtB,GAAI,CAACI,CAAAA,CAAKC,WAAW,YAAA,CAAA,CAAe,SAEpC,IAAMC,EAAKF,CAAAA,CAAKG,KAAAA,CAAM,EAAA,CAAA,CAElB3E,CAAAA,CAAiBmD,GAAAA,CAAIuB,CAAAA,CAAAA,CACrBnD,EAAWqD,GAAAA,CAAIF,CAAAA,CAAAA,CACRA,CAAAA,CAAG7H,MAAAA,CAAS,CAAA,EAGnBsH,OAAAA,CAAQ7B,IAAAA,CACJ,yCAAyCoC,CAAAA,CAAAA,qBAAAA,EACpB,CAAA,GAAI1E,CAAAA,CAAAA,CAAkBxB,IAAAA,CAAK,IAAA,CAAA,CAAA,CADA,EAI5D,CAIA,OAAO+C,CACX,CACJ,EAMaU,CAAAA,CAAQ,CAACC,CAAAA,CAAsBvH,CAAAA,CAAAA,GAAoBwH,IAC5DrB,CAAAA,CAAOmB,KAAAA,CAAMC,CAAAA,CAAWvH,CAAAA,CAAAA,GAAYwH,CAAAA,CAAAA,CAE3BE,CAAAA,CAAO,CAACH,CAAAA,CAAsBvH,CAAAA,CAAAA,GAAoBwH,CAAAA,GAC3DrB,CAAAA,CAAOuB,IAAAA,CAAKH,CAAAA,CAAWvH,CAAAA,CAAAA,GAAYwH,CAAAA,CAAAA,CAE1BG,CAAAA,CAAO,CAACJ,CAAAA,CAAsBvH,CAAAA,CAAAA,GAAoBwH,CAAAA,GAC3DrB,CAAAA,CAAOwB,IAAAA,CAAKJ,EAAWvH,CAAAA,CAAAA,GAAYwH,CAAAA,CAAAA,CAE1B9F,EAAQ,CAAC6F,CAAAA,CAAsBvH,CAAAA,CAAAA,GAAoBwH,CAAAA,GAC5DrB,EAAOzE,KAAAA,CAAM6F,CAAAA,CAAWvH,CAAAA,CAAAA,GAAYwH,CAAAA,CAAAA,CAE3BI,CAAAA,CAAQC,CAAAA,EACjB1B,EAAOyB,IAAAA,CAAKC,CAAAA,CAAAA,CAEHG,CAAAA,CAAWH,CAAAA,EACpB1B,CAAAA,CAAO6B,OAAAA,CAAQH,CAAAA,EAENQ,CAAAA,CAAU,CAACR,CAAAA,CAAeN,CAAAA,CAAsBvH,CAAAA,GACzDmG,CAAAA,CAAOkC,OAAAA,CAAQR,CAAAA,CAAON,EAAWvH,CAAAA,CAAAA,CAExBkK,CAAAA,CAAc,CAAClD,CAAAA,CAAkBJ,CAAAA,GAC1CT,CAAAA,CAAOgB,MAAAA,CAAOH,EAAOJ,CAAAA,CAAAA,CAEZuD,CAAAA,CAAe,IACxBhE,CAAAA,CAAOiB,OAAAA,EAAO,CAELgD,EAAAA,CAAiB,IAC1BjE,CAAAA,CAAOkB,SAAAA,GC1NJ,IAAMgD,CAAAA,CAAN,cAAiCtK,KAAAA,CAAAA,IAAAA,CACpC,YACIC,CAAAA,CACgBsK,CAAAA,CAClB,CACE,KAAA,CAAMtK,CAAAA,CAAAA,CAAAA,IAAAA,CAFUsK,IAAAA,CAAAA,EAGhB,IAAA,CAAKpK,IAAAA,CAAO,qBAChB,CACJ,EAWO,SAASqK,CAAAA,CACZC,CAAAA,CACAC,CAAAA,CAAkB,EAAA,CAClBC,CAAAA,CAAyB,IAAIC,OAAAA,CAAS,CAEtC,GAAIH,CAAAA,GAAU,IAAA,CAAM,OAAO,MAAA,CAE3B,GAAIA,CAAAA,GAAUI,MAAAA,CACV,MAAM,IAAIP,CAAAA,CACN,qCAAA,CACAI,CAAAA,CAAAA,CAIR,OAAQ,OAAOD,CAAAA,EACX,KAAK,SAAA,CACD,OAAOA,EAAQ,MAAA,CAAS,OAAA,CAE5B,KAAK,QAAA,CACD,GAAI,CAACK,MAAAA,CAAOC,QAAAA,CAASN,CAAAA,EACjB,MAAM,IAAIH,CAAAA,CACN,CAAA,mBAAA,EAAsBxJ,MAAAA,CAAO2J,CAAAA,CAAAA,CAAAA,2BAAAA,CAAAA,CAC7BC,CAAAA,CAAAA,CAGR,OAAO5J,MAAAA,CAAO2J,CAAAA,CAAAA,CAElB,KAAK,QAAA,CACD,OAAOO,KAAKC,SAAAA,CAAUR,CAAAA,CAAAA,CAE1B,KAAK,UAAA,CACD,MAAM,IAAIH,CAAAA,CACN,sCACAI,CAAAA,CAEZ,CAEA,GAAID,aAAiBnJ,IAAAA,CACjB,OAAO0J,IAAAA,CAAKC,SAAAA,CAAUR,EAAMjB,WAAAA,EAAW,CAAA,CAG3C,GAAIiB,CAAAA,YAAiBS,MAAAA,CACjB,OAAOF,IAAAA,CAAKC,UAAUR,CAAAA,CAAM7B,QAAAA,EAAQ,CAAA,CAGxC,GAAI,OAAO6B,CAAAA,EAAU,QAAA,CAAU,KAWvBU,CAAAA,CARJ,GAAIR,CAAAA,CAAMlC,GAAAA,CAFEgC,CAAAA,CAAAA,CAGR,MAAM,IAAIH,EACN,CAAA,qCAAA,EAAwCI,CAAAA,CAAM5G,IAAAA,CAAK,GAAA,CAAA,EAAQ,QAAA,CAAA,CAAA,CAC3D4G,CAAAA,EAOR,GAJAC,CAAAA,CAAMT,GAAAA,CARMO,CAAAA,CAAAA,CAYRW,KAAAA,CAAMC,OAAAA,CAAQZ,CAAAA,EAIdU,CAAAA,CAAS,GAAA,CAHMV,CAAAA,CAAoBnH,GAAAA,CAAI,CAACgI,CAAAA,CAAGpC,CAAAA,GACvCsB,CAAAA,CAAgBc,EAAG,CAAA,GAAIZ,CAAAA,CAAO5J,MAAAA,CAAOoI,CAAAA,CAAAA,CAAAA,CAAKyB,CAAAA,CAAAA,CAAAA,CAEzB7G,KAAK,GAAA,CAAA,CAAO,GAAA,CAAA,KAC9B,CAGH,IAAMyH,CAAAA,CAAapK,MAAAA,CAAOqK,IAAAA,CADXf,CAAAA,EACwBgB,IAAAA,EAAI,CACrCC,CAAAA,CAAkB,EAAA,CAExB,IAAA,IAAWC,CAAAA,IAAKJ,CAAAA,CAAY,CACxB,IAAMD,CAAAA,CALKb,CAAAA,CAKMkB,CAAAA,CAAAA,CACbL,CAAAA,GAAMT,MAAAA,EACVa,CAAAA,CAAM9J,KAAKoJ,IAAAA,CAAKC,SAAAA,CAAUU,CAAAA,CAAAA,CAAK,GAAA,CAAMnB,CAAAA,CAAgBc,CAAAA,CAAG,CAAA,GAAIZ,EAAOiB,CAAAA,CAAAA,CAAIhB,CAAAA,CAAAA,EAC3E,CAEAQ,CAAAA,CAAS,GAAA,CAAMO,CAAAA,CAAM5H,IAAAA,CAAK,GAAA,CAAA,CAAO,IACrC,CAGA,OADA6G,CAAAA,CAAMtC,MAAAA,CAhCMoC,CAAAA,CAAAA,CAiCLU,CACX,CAGA,OAAOH,IAAAA,CAAKC,SAAAA,CAAUR,CAAAA,CAC1B,CCtHO,IAAMmB,EAAN,KAAMA,CACQC,KAAAA,CAEjB,WAAA,CAAY/I,CAAAA,CAAiB,CACzB,IAAA,CAAK+I,KAAAA,CAAQ,CAAC,CAAA,CAAA,CACd,IAAA,IAAS3C,CAAAA,CAAI,CAAA,CAAGA,EAAIpG,CAAAA,CAAQX,MAAAA,CAAQ+G,CAAAA,EAAAA,CAC5BpG,CAAAA,CAAQoG,CAAAA,CAAAA,GAAO;GACf,IAAA,CAAK2C,KAAAA,CAAMjK,IAAAA,CAAKsH,CAAAA,CAAI,CAAA,EAGhC,CAEO4C,QAAAA,CAASC,CAAAA,CAAkD,CAC9D,IAAIC,CAAAA,CAAM,CAAA,CACNC,CAAAA,CAAO,KAAKJ,KAAAA,CAAM1J,MAAAA,CAAS,CAAA,CAE/B,KAAO6J,CAAAA,EAAOC,CAAAA,EAAM,CAChB,IAAMC,CAAAA,CAAOF,CAAAA,CAAMC,CAAAA,GAAU,CAAA,CACzB,IAAA,CAAKJ,KAAAA,CAAMK,CAAAA,CAAAA,EAAQH,CAAAA,CACnBC,CAAAA,CAAME,CAAAA,CAAM,CAAA,CAEZD,CAAAA,CAAOC,CAAAA,CAAM,EAErB,CAEA,IAAMnI,CAAAA,CAAOiI,CAAAA,CAAM,CAAA,CACbG,CAAAA,CAAY,IAAA,CAAKN,KAAAA,CAAM9H,CAAAA,CAAAA,CAE7B,OAAO,CACHA,IAAAA,CAAMA,CAAAA,CAAO,CAAA,CACbI,MAAAA,CAAQ4H,CAAAA,CAASI,CAAAA,CAAY,CACjC,CACJ,CACJ","file":"index.cjs","sourcesContent":["export const TOOL_NAME = 'ngcompass';\nexport const PACKAGE_VERSION = 'v.0.1.2-beta';\nexport const CACHE_VERSION = '1.0.0';\nexport const CONFIG_FILE_NAMES = [\n `.${TOOL_NAME}rc.json`,\n `.${TOOL_NAME}rc.js`,\n `.${TOOL_NAME}.config.js`,\n `${TOOL_NAME}.config.json`\n];\nexport const DEFAULT_CACHE_DIR = `node_modules/.cache/${TOOL_NAME}`;\nexport const DEFAULT_INCLUDE_PATTERNS = [\n '**/*.ts',\n '**/*.html'\n];\nexport const DEFAULT_EXCLUDE_PATTERNS = [\n '**/node_modules/**',\n '**/dist/**',\n '**/build/**',\n '**/*.spec.ts',\n '**/*.test.ts'\n];\nexport const SUPPORTED_ANGULAR_VERSIONS = {\n min: 12,\n max: 21\n};\n","export class AnalyzerError extends Error {\n code;\n constructor(r, e){\n super(r), this.code = e, this.name = 'AnalyzerError', 'captureStackTrace' in Error && Error.captureStackTrace(this, this.constructor);\n }\n}\nexport class ConfigurationError extends AnalyzerError {\n constructor(r){\n super(r, 'CONFIG_ERROR'), this.name = 'ConfigurationError';\n }\n}\nexport class ParseError extends AnalyzerError {\n filePath;\n constructor(r, e){\n super(`Parse error in ${e}: ${r}`, 'PARSE_ERROR'), this.filePath = e, this.name = 'ParseError';\n }\n}\nexport class RuleError extends AnalyzerError {\n ruleId;\n constructor(r, e){\n super(`Error in rule '${e}': ${r}`, 'RULE_ERROR'), this.ruleId = e, this.name = 'RuleError';\n }\n}\nexport class RuleExecutionError extends AnalyzerError {\n ruleName;\n filePath;\n constructor(r, e, t){\n let s = t instanceof Error ? t.message : String(t);\n super(`Rule \"${r}\" crashed on ${e}: ${s}`, 'RULE_EXECUTION_ERROR'), this.ruleName = r, this.filePath = e, this.name = 'RuleExecutionError', t instanceof Error && 'stack' in t && (this.stack = `${this.stack}\\nCaused by: ${t.stack}`);\n }\n}\nexport function createInfrastructureError(r, e) {\n return Object.freeze({\n type: r,\n timestamp: Date.now(),\n ...e\n });\n}\nexport class InfrastructureErrorCollector {\n _errors = [];\n record(r) {\n this._errors.push(r);\n }\n get errors() {\n return this._errors;\n }\n get hasFatalErrors() {\n return this._errors.some((r)=>!r.recoverable);\n }\n get hasAnyErrors() {\n return this._errors.length > 0;\n }\n forPhase(r) {\n return this._errors.filter((e)=>e.phase === r);\n }\n}\n","var RuleCategory;\nexport var RuleCategory = ((RuleCategory = {}).Architecture = \"architecture\", RuleCategory.Performance = \"performance\", RuleCategory.SSR = \"ssr\", RuleCategory.Security = \"security\", RuleCategory.Accessibility = \"accessibility\", RuleCategory.Testing = \"testing\", RuleCategory.CodeSmell = \"code-smell\", RuleCategory.Reactivity = \"reactivity\", RuleCategory.BestPractice = \"best-practice\", RuleCategory);\nexport const Ok = (e)=>({\n ok: !0,\n data: e\n });\nexport const Err = (e)=>({\n ok: !1,\n error: e\n });\n","import e from \"typescript\";\nexport class ASTUtils {\n static parse(t, i = 'config.ts') {\n return e.createSourceFile(i, t, e.ScriptTarget.Latest, !0);\n }\n static generateLocationMap(t) {\n let i = {}, r = (s, n)=>{\n if (e.isPropertyAssignment(s) && s.name) {\n let e = this.getPropertyName(s.name);\n if (e) {\n let a = [\n ...n,\n e\n ], o = a.join('.'), { line: p, character: l } = t.getLineAndCharacterOfPosition(s.name.getStart());\n i[o] = {\n line: p + 1,\n column: l + 1\n }, r(s.initializer, a);\n return;\n }\n }\n e.isObjectLiteralExpression(s) ? s.properties.forEach((e)=>r(e, n)) : e.isArrayLiteralExpression(s) ? s.elements.forEach((e, s)=>{\n let a = [\n ...n,\n String(s)\n ], o = a.join('.'), { line: p, character: l } = t.getLineAndCharacterOfPosition(e.getStart());\n i[o] = {\n line: p + 1,\n column: l + 1\n }, r(e, a);\n }) : e.isExportAssignment(s) ? r(s.expression, n) : e.isExpressionStatement(s) ? e.isParenthesizedExpression(s.expression) ? r(s.expression.expression, n) : r(s.expression, n) : e.forEachChild(s, (e)=>r(e, n));\n };\n return r(t, []), i;\n }\n static getPropertyName(t) {\n return e.isIdentifier(t) || e.isStringLiteral(t) ? t.text : null;\n }\n}\n","import e from 'picocolors';\nlet KNOWN_NAMESPACES = new Set([\n 'discovery',\n 'loader',\n 'validator',\n 'cache',\n 'scanner',\n 'parser',\n 'rules',\n 'workers',\n 'reporter',\n 'init',\n 'config',\n 'planner',\n 'incremental',\n 'dry-run',\n 'engine',\n 'plugin-loader',\n 'env-fingerprint'\n]), COLORS = [\n e.cyan,\n e.green,\n e.yellow,\n e.blue,\n e.magenta,\n e.magentaBright,\n e.cyanBright,\n e.greenBright,\n e.yellowBright,\n e.blueBright\n], logger = new class {\n config;\n timers;\n constructor(){\n this.config = this.initializeFromEnv(), this.timers = new Map();\n }\n initializeFromEnv() {\n let e = process.env.DEBUG || '', t = this.parseNamespaces(e);\n return {\n enabled: 'all' === t || t.size > 0,\n level: 'debug',\n namespaces: t,\n showTimestamps: !1,\n showTimings: !0\n };\n }\n enable(e = 'debug', t = 'all') {\n this.config.enabled = !0, this.config.level = e, this.config.namespaces = 'all' === t ? 'all' : new Set(t);\n }\n disable() {\n this.config.enabled = !1;\n }\n isEnabled() {\n return this.config.enabled;\n }\n debug(e, t, ...n) {\n this.log('debug', e, t, ...n);\n }\n info(e, t, ...n) {\n this.log('info', e, t, ...n);\n }\n warn(e, t, ...n) {\n this.log('warn', e, t, ...n);\n }\n error(e, t, ...n) {\n this.log('error', e, t, ...n);\n }\n time(e) {\n this.config.enabled && this.timers.set(e, performance.now());\n }\n timeEnd(e) {\n if (!this.config.enabled) return 0;\n let t = this.timers.get(e);\n if (!t) return 0;\n let n = performance.now() - t;\n return this.timers.delete(e), n;\n }\n timeLog(e, t, n) {\n let r = this.timeEnd(e);\n return r > 0 && n && this.debug(t, `${n}: ${r.toFixed(1)}ms`), r;\n }\n log(t, n, r, ...o) {\n if (!this.config.enabled || 'all' !== this.config.namespaces && !this.config.namespaces.has(n)) return;\n let i = new Date(), s = `${i.getHours().toString().padStart(2, '0')}:${i.getMinutes().toString().padStart(2, '0')}:${i.getSeconds().toString().padStart(2, '0')}`, a = function(e) {\n let t = 0;\n for(let n = 0; n < e.length; n++)t = e.charCodeAt(n) + ((t << 5) - t);\n return COLORS[Math.abs(t) % COLORS.length];\n }(n), g = `${e.gray(`[${s}]`)} ${a(`[ngcompass:${n}]`)}`, l = this.config.showTimestamps ? e.gray(`[${i.toISOString()}] `) : '';\n console.error(`${l}${g} ${r}`, ...o);\n }\n parseNamespaces(e) {\n if ('*' === e || 'ngcompass' === e || 'ngcompass:*' === e) return 'all';\n let t = e.split(',').map((e)=>e.trim()), n = new Set();\n for (let e of t){\n if (!e.startsWith('ngcompass:')) continue;\n let t = e.slice(10);\n KNOWN_NAMESPACES.has(t) ? n.add(t) : t.length > 0 && console.warn(`[ngcompass] Unknown debug namespace: \"${t}\". Valid namespaces: ${[\n ...KNOWN_NAMESPACES\n ].join(', ')}`);\n }\n return n;\n }\n}();\nexport const debug = (e, t, ...n)=>logger.debug(e, t, ...n);\nexport const info = (e, t, ...n)=>logger.info(e, t, ...n);\nexport const warn = (e, t, ...n)=>logger.warn(e, t, ...n);\nexport const error = (e, t, ...n)=>logger.error(e, t, ...n);\nexport const time = (e)=>logger.time(e);\nexport const timeEnd = (e)=>logger.timeEnd(e);\nexport const timeLog = (e, t, n)=>logger.timeLog(e, t, n);\nexport const enableDebug = (e, t)=>logger.enable(e, t);\nexport const disableDebug = ()=>logger.disable();\nexport const isDebugEnabled = ()=>logger.isEnabled();\nexport default logger;\n","export class SerializationError extends Error {\n path;\n constructor(r, i){\n super(r), this.path = i, this.name = 'SerializationError';\n }\n}\nexport function stableSerialize(r, i = [], e = new WeakSet()) {\n if (null === r) return 'null';\n if (void 0 === r) throw new SerializationError('undefined is not a valid hash input', i);\n switch(typeof r){\n case 'boolean':\n return r ? 'true' : 'false';\n case 'number':\n if (!Number.isFinite(r)) throw new SerializationError(`Non-finite number (${String(r)}) is not a valid hash input`, i);\n return String(r);\n case 'string':\n return JSON.stringify(r);\n case 'function':\n throw new SerializationError('Functions are not valid hash inputs', i);\n }\n if (r instanceof Date) return JSON.stringify(r.toISOString());\n if (r instanceof RegExp) return JSON.stringify(r.toString());\n if ('object' == typeof r) {\n let t;\n if (e.has(r)) throw new SerializationError(`Circular reference detected at path: ${i.join('.') || '(root)'}`, i);\n if (e.add(r), Array.isArray(r)) t = '[' + r.map((r, t)=>stableSerialize(r, [\n ...i,\n String(t)\n ], e)).join(',') + ']';\n else {\n let n = Object.keys(r).sort(), a = [];\n for (let t of n){\n let n = r[t];\n void 0 !== n && a.push(JSON.stringify(t) + ':' + stableSerialize(n, [\n ...i,\n t\n ], e));\n }\n t = '{' + a.join(',') + '}';\n }\n return e.delete(r), t;\n }\n return JSON.stringify(r);\n}\n","export class Locator {\n lines;\n constructor(t){\n this.lines = [\n 0\n ];\n for(let l = 0; l < t.length; l++)'\\n' === t[l] && this.lines.push(l + 1);\n }\n location(t) {\n let l = 0, e = this.lines.length - 1;\n for(; l <= e;){\n let s = l + e >>> 1;\n this.lines[s] <= t ? l = s + 1 : e = s - 1;\n }\n let s = l - 1, n = this.lines[s];\n return {\n line: s + 1,\n column: t - n + 1\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/constants.ts","../src/errors.ts","../src/types.ts","../src/ast/utils.ts","../src/logger.ts","../src/utils/stable-serialize.ts","../src/utils/locator.ts"],"names":["TOOL_NAME","PACKAGE_VERSION","CACHE_VERSION","CONFIG_FILE_NAMES","DEFAULT_CACHE_DIR","DEFAULT_INCLUDE_PATTERNS","DEFAULT_EXCLUDE_PATTERNS","SUPPORTED_ANGULAR_VERSIONS","min","max","AnalyzerError","Error","message","code","name","captureStackTrace","ConfigurationError","ParseError","filePath","RuleError","ruleId","RuleExecutionError","ruleName","cause","causeMessage","String","stack","createInfrastructureError","type","fields","Object","freeze","timestamp","Date","now","InfrastructureErrorCollector","_errors","record","error","push","errors","hasFatalErrors","some","e","recoverable","hasAnyErrors","length","forPhase","phase","filter","RuleCategory","Ok","data","ok","Err","ASTUtils","parse","content","fileName","ts","createSourceFile","ScriptTarget","Latest","generateLocationMap","sourceFile","map","visit","node","currentPath","isPropertyAssignment","getPropertyName","newPath","pathKey","join","line","character","getLineAndCharacterOfPosition","getStart","column","initializer","isObjectLiteralExpression","properties","forEach","prop","isArrayLiteralExpression","elements","elem","idx","isExportAssignment","expression","isExpressionStatement","isParenthesizedExpression","forEachChild","child","isIdentifier","isStringLiteral","text","KNOWN_NAMESPACES","Set","COLORS","pc","cyan","green","yellow","blue","magenta","magentaBright","cyanBright","greenBright","yellowBright","blueBright","logger","config","timers","initializeFromEnv","Map","debugEnv","process","env","DEBUG","namespaces","parseNamespaces","enabled","size","level","showTimestamps","showTimings","enable","disable","isEnabled","debug","namespace","args","log","info","warn","time","label","set","performance","timeEnd","start","get","duration","delete","timeLog","toFixed","_level","has","timeStr","getHours","toString","padStart","getMinutes","getSeconds","colorFn","hash","i","charCodeAt","Math","abs","prefix","gray","toISOString","console","parts","split","s","trim","part","startsWith","ns","slice","add","enableDebug","disableDebug","isDebugEnabled","SerializationError","path","stableSerialize","value","_path","_seen","WeakSet","undefined","Number","isFinite","JSON","stringify","RegExp","result","Array","isArray","v","sortedKeys","keys","sort","pairs","k","Locator","lines","location","offset","low","high","mid","lineStart"],"mappings":"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","file":"index.cjs","sourcesContent":["export const TOOL_NAME = 'ngcompass';\nexport const PACKAGE_VERSION = 'v.0.1.4-beta';\nexport const CACHE_VERSION = '1.0.0';\nexport const CONFIG_FILE_NAMES = [\n `.${TOOL_NAME}rc.json`,\n `.${TOOL_NAME}rc.js`,\n `.${TOOL_NAME}.config.js`,\n `${TOOL_NAME}.config.json`\n];\nexport const DEFAULT_CACHE_DIR = `node_modules/.cache/${TOOL_NAME}`;\nexport const DEFAULT_INCLUDE_PATTERNS = [\n '**/*.ts',\n '**/*.html'\n];\nexport const DEFAULT_EXCLUDE_PATTERNS = [\n '**/node_modules/**',\n '**/dist/**',\n '**/build/**',\n '**/*.spec.ts',\n '**/*.test.ts'\n];\nexport const SUPPORTED_ANGULAR_VERSIONS = {\n min: 12,\n max: 21\n};\n","export class AnalyzerError extends Error {\n code;\n constructor(r, e){\n super(r), this.code = e, this.name = 'AnalyzerError', 'captureStackTrace' in Error && Error.captureStackTrace(this, this.constructor);\n }\n}\nexport class ConfigurationError extends AnalyzerError {\n constructor(r){\n super(r, 'CONFIG_ERROR'), this.name = 'ConfigurationError';\n }\n}\nexport class ParseError extends AnalyzerError {\n filePath;\n constructor(r, e){\n super(`Parse error in ${e}: ${r}`, 'PARSE_ERROR'), this.filePath = e, this.name = 'ParseError';\n }\n}\nexport class RuleError extends AnalyzerError {\n ruleId;\n constructor(r, e){\n super(`Error in rule '${e}': ${r}`, 'RULE_ERROR'), this.ruleId = e, this.name = 'RuleError';\n }\n}\nexport class RuleExecutionError extends AnalyzerError {\n ruleName;\n filePath;\n constructor(r, e, t){\n let s = t instanceof Error ? t.message : String(t);\n super(`Rule \"${r}\" crashed on ${e}: ${s}`, 'RULE_EXECUTION_ERROR'), this.ruleName = r, this.filePath = e, this.name = 'RuleExecutionError', t instanceof Error && 'stack' in t && (this.stack = `${this.stack}\\nCaused by: ${t.stack}`);\n }\n}\nexport function createInfrastructureError(r, e) {\n return Object.freeze({\n type: r,\n timestamp: Date.now(),\n ...e\n });\n}\nexport class InfrastructureErrorCollector {\n _errors = [];\n record(r) {\n this._errors.push(r);\n }\n get errors() {\n return this._errors;\n }\n get hasFatalErrors() {\n return this._errors.some((r)=>!r.recoverable);\n }\n get hasAnyErrors() {\n return this._errors.length > 0;\n }\n forPhase(r) {\n return this._errors.filter((e)=>e.phase === r);\n }\n}\n","var RuleCategory;\nexport var RuleCategory = ((RuleCategory = {}).Architecture = \"architecture\", RuleCategory.Performance = \"performance\", RuleCategory.SSR = \"ssr\", RuleCategory.Security = \"security\", RuleCategory.Accessibility = \"accessibility\", RuleCategory.Testing = \"testing\", RuleCategory.CodeSmell = \"code-smell\", RuleCategory.Reactivity = \"reactivity\", RuleCategory.BestPractice = \"best-practice\", RuleCategory);\nexport const Ok = (e)=>({\n ok: !0,\n data: e\n });\nexport const Err = (e)=>({\n ok: !1,\n error: e\n });\n","import e from \"typescript\";\nexport class ASTUtils {\n static parse(t, i = 'config.ts') {\n return e.createSourceFile(i, t, e.ScriptTarget.Latest, !0);\n }\n static generateLocationMap(t) {\n let i = {}, r = (s, n)=>{\n if (e.isPropertyAssignment(s) && s.name) {\n let e = this.getPropertyName(s.name);\n if (e) {\n let a = [\n ...n,\n e\n ], o = a.join('.'), { line: p, character: l } = t.getLineAndCharacterOfPosition(s.name.getStart());\n i[o] = {\n line: p + 1,\n column: l + 1\n }, r(s.initializer, a);\n return;\n }\n }\n e.isObjectLiteralExpression(s) ? s.properties.forEach((e)=>r(e, n)) : e.isArrayLiteralExpression(s) ? s.elements.forEach((e, s)=>{\n let a = [\n ...n,\n String(s)\n ], o = a.join('.'), { line: p, character: l } = t.getLineAndCharacterOfPosition(e.getStart());\n i[o] = {\n line: p + 1,\n column: l + 1\n }, r(e, a);\n }) : e.isExportAssignment(s) ? r(s.expression, n) : e.isExpressionStatement(s) ? e.isParenthesizedExpression(s.expression) ? r(s.expression.expression, n) : r(s.expression, n) : e.forEachChild(s, (e)=>r(e, n));\n };\n return r(t, []), i;\n }\n static getPropertyName(t) {\n return e.isIdentifier(t) || e.isStringLiteral(t) ? t.text : null;\n }\n}\n","import e from 'picocolors';\nlet KNOWN_NAMESPACES = new Set([\n 'discovery',\n 'loader',\n 'validator',\n 'cache',\n 'scanner',\n 'parser',\n 'rules',\n 'workers',\n 'reporter',\n 'init',\n 'config',\n 'planner',\n 'incremental',\n 'dry-run',\n 'engine',\n 'plugin-loader',\n 'env-fingerprint'\n]), COLORS = [\n e.cyan,\n e.green,\n e.yellow,\n e.blue,\n e.magenta,\n e.magentaBright,\n e.cyanBright,\n e.greenBright,\n e.yellowBright,\n e.blueBright\n], logger = new class {\n config;\n timers;\n constructor(){\n this.config = this.initializeFromEnv(), this.timers = new Map();\n }\n initializeFromEnv() {\n let e = process.env.DEBUG || '', t = this.parseNamespaces(e);\n return {\n enabled: 'all' === t || t.size > 0,\n level: 'debug',\n namespaces: t,\n showTimestamps: !1,\n showTimings: !0\n };\n }\n enable(e = 'debug', t = 'all') {\n this.config.enabled = !0, this.config.level = e, this.config.namespaces = 'all' === t ? 'all' : new Set(t);\n }\n disable() {\n this.config.enabled = !1;\n }\n isEnabled() {\n return this.config.enabled;\n }\n debug(e, t, ...n) {\n this.log('debug', e, t, ...n);\n }\n info(e, t, ...n) {\n this.log('info', e, t, ...n);\n }\n warn(e, t, ...n) {\n this.log('warn', e, t, ...n);\n }\n error(e, t, ...n) {\n this.log('error', e, t, ...n);\n }\n time(e) {\n this.config.enabled && this.timers.set(e, performance.now());\n }\n timeEnd(e) {\n if (!this.config.enabled) return 0;\n let t = this.timers.get(e);\n if (!t) return 0;\n let n = performance.now() - t;\n return this.timers.delete(e), n;\n }\n timeLog(e, t, n) {\n let r = this.timeEnd(e);\n return r > 0 && n && this.debug(t, `${n}: ${r.toFixed(1)}ms`), r;\n }\n log(t, n, r, ...o) {\n if (!this.config.enabled || 'all' !== this.config.namespaces && !this.config.namespaces.has(n)) return;\n let i = new Date(), s = `${i.getHours().toString().padStart(2, '0')}:${i.getMinutes().toString().padStart(2, '0')}:${i.getSeconds().toString().padStart(2, '0')}`, a = function(e) {\n let t = 0;\n for(let n = 0; n < e.length; n++)t = e.charCodeAt(n) + ((t << 5) - t);\n return COLORS[Math.abs(t) % COLORS.length];\n }(n), g = `${e.gray(`[${s}]`)} ${a(`[ngcompass:${n}]`)}`, l = this.config.showTimestamps ? e.gray(`[${i.toISOString()}] `) : '';\n console.error(`${l}${g} ${r}`, ...o);\n }\n parseNamespaces(e) {\n if ('*' === e || 'ngcompass' === e || 'ngcompass:*' === e) return 'all';\n let t = e.split(',').map((e)=>e.trim()), n = new Set();\n for (let e of t){\n if (!e.startsWith('ngcompass:')) continue;\n let t = e.slice(10);\n KNOWN_NAMESPACES.has(t) ? n.add(t) : t.length > 0 && console.warn(`[ngcompass] Unknown debug namespace: \"${t}\". Valid namespaces: ${[\n ...KNOWN_NAMESPACES\n ].join(', ')}`);\n }\n return n;\n }\n}();\nexport const debug = (e, t, ...n)=>logger.debug(e, t, ...n);\nexport const info = (e, t, ...n)=>logger.info(e, t, ...n);\nexport const warn = (e, t, ...n)=>logger.warn(e, t, ...n);\nexport const error = (e, t, ...n)=>logger.error(e, t, ...n);\nexport const time = (e)=>logger.time(e);\nexport const timeEnd = (e)=>logger.timeEnd(e);\nexport const timeLog = (e, t, n)=>logger.timeLog(e, t, n);\nexport const enableDebug = (e, t)=>logger.enable(e, t);\nexport const disableDebug = ()=>logger.disable();\nexport const isDebugEnabled = ()=>logger.isEnabled();\nexport default logger;\n","export class SerializationError extends Error {\n path;\n constructor(r, i){\n super(r), this.path = i, this.name = 'SerializationError';\n }\n}\nexport function stableSerialize(r, i = [], e = new WeakSet()) {\n if (null === r) return 'null';\n if (void 0 === r) throw new SerializationError('undefined is not a valid hash input', i);\n switch(typeof r){\n case 'boolean':\n return r ? 'true' : 'false';\n case 'number':\n if (!Number.isFinite(r)) throw new SerializationError(`Non-finite number (${String(r)}) is not a valid hash input`, i);\n return String(r);\n case 'string':\n return JSON.stringify(r);\n case 'function':\n throw new SerializationError('Functions are not valid hash inputs', i);\n }\n if (r instanceof Date) return JSON.stringify(r.toISOString());\n if (r instanceof RegExp) return JSON.stringify(r.toString());\n if ('object' == typeof r) {\n let t;\n if (e.has(r)) throw new SerializationError(`Circular reference detected at path: ${i.join('.') || '(root)'}`, i);\n if (e.add(r), Array.isArray(r)) t = '[' + r.map((r, t)=>stableSerialize(r, [\n ...i,\n String(t)\n ], e)).join(',') + ']';\n else {\n let n = Object.keys(r).sort(), a = [];\n for (let t of n){\n let n = r[t];\n void 0 !== n && a.push(JSON.stringify(t) + ':' + stableSerialize(n, [\n ...i,\n t\n ], e));\n }\n t = '{' + a.join(',') + '}';\n }\n return e.delete(r), t;\n }\n return JSON.stringify(r);\n}\n","export class Locator {\n lines;\n constructor(t){\n this.lines = [\n 0\n ];\n for(let l = 0; l < t.length; l++)'\\n' === t[l] && this.lines.push(l + 1);\n }\n location(t) {\n let l = 0, e = this.lines.length - 1;\n for(; l <= e;){\n let s = l + e >>> 1;\n this.lines[s] <= t ? l = s + 1 : e = s - 1;\n }\n let s = l - 1, n = this.lines[s];\n return {\n line: s + 1,\n column: t - n + 1\n };\n }\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -6,7 +6,7 @@ import { Program } from 'oxc-parser';
6
6
  * Constants used across packages
7
7
  */
8
8
  declare const TOOL_NAME = "ngcompass";
9
- declare const PACKAGE_VERSION = "v.0.1.2-beta";
9
+ declare const PACKAGE_VERSION = "v.0.1.4-beta";
10
10
  declare const CACHE_VERSION = "1.0.0";
11
11
  declare const CONFIG_FILE_NAMES: readonly [".ngcompassrc.json", ".ngcompassrc.js", ".ngcompass.config.js", "ngcompass.config.json"];
12
12
  declare const DEFAULT_CACHE_DIR = "node_modules/.cache/ngcompass";
@@ -656,6 +656,7 @@ interface WorkerFileProgress {
656
656
  readonly errorCount: number;
657
657
  readonly warningCount: number;
658
658
  readonly duration: number;
659
+ readonly typeAware: boolean;
659
660
  }
660
661
  /** Message posted back from a worker thread to the orchestrator. */
661
662
  interface WorkerMessageResult {
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ import { Program } from 'oxc-parser';
6
6
  * Constants used across packages
7
7
  */
8
8
  declare const TOOL_NAME = "ngcompass";
9
- declare const PACKAGE_VERSION = "v.0.1.2-beta";
9
+ declare const PACKAGE_VERSION = "v.0.1.4-beta";
10
10
  declare const CACHE_VERSION = "1.0.0";
11
11
  declare const CONFIG_FILE_NAMES: readonly [".ngcompassrc.json", ".ngcompassrc.js", ".ngcompass.config.js", "ngcompass.config.json"];
12
12
  declare const DEFAULT_CACHE_DIR = "node_modules/.cache/ngcompass";
@@ -656,6 +656,7 @@ interface WorkerFileProgress {
656
656
  readonly errorCount: number;
657
657
  readonly warningCount: number;
658
658
  readonly duration: number;
659
+ readonly typeAware: boolean;
659
660
  }
660
661
  /** Message posted back from a worker thread to the orchestrator. */
661
662
  interface WorkerMessageResult {
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import c from'typescript';import a from'picocolors';var E="ngcompass",_="v.0.1.2-beta",P="1.0.0",v=[`.${E}rc.json`,`.${E}rc.js`,`.${E}.config.js`,`${E}.config.json`],L=`node_modules/.cache/${E}`,T=["**/*.ts","**/*.html"],I=["**/node_modules/**","**/dist/**","**/build/**","**/*.spec.ts","**/*.test.ts"],F={min:12,max:21};var m=class extends Error{code;constructor(e,r){super(e),this.code=r,this.name="AnalyzerError","captureStackTrace"in Error&&Error.captureStackTrace(this,this.constructor);}},S=class extends m{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},b=class extends m{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},y=class extends m{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},R=class extends m{ruleName;filePath;constructor(e,r,s){let n=s instanceof Error?s.message:String(s);super(`Rule "${e}" crashed on ${r}: ${n}`,"RULE_EXECUTION_ERROR"),this.ruleName=e,this.filePath=r,this.name="RuleExecutionError",s instanceof Error&&"stack"in s&&(this.stack=`${this.stack}
1
+ import c from'typescript';import a from'picocolors';var E="ngcompass",_="v.0.1.4-beta",P="1.0.0",v=[`.${E}rc.json`,`.${E}rc.js`,`.${E}.config.js`,`${E}.config.json`],L=`node_modules/.cache/${E}`,T=["**/*.ts","**/*.html"],I=["**/node_modules/**","**/dist/**","**/build/**","**/*.spec.ts","**/*.test.ts"],F={min:12,max:21};var m=class extends Error{code;constructor(e,r){super(e),this.code=r,this.name="AnalyzerError","captureStackTrace"in Error&&Error.captureStackTrace(this,this.constructor);}},S=class extends m{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},b=class extends m{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},y=class extends m{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},R=class extends m{ruleName;filePath;constructor(e,r,s){let n=s instanceof Error?s.message:String(s);super(`Rule "${e}" crashed on ${r}: ${n}`,"RULE_EXECUTION_ERROR"),this.ruleName=e,this.filePath=r,this.name="RuleExecutionError",s instanceof Error&&"stack"in s&&(this.stack=`${this.stack}
2
2
  Caused by: ${s.stack}`);}};function D(t,e){return Object.freeze({type:t,timestamp:Date.now(),...e})}var O=class{_errors=[];record(e){this._errors.push(e);}get errors(){return this._errors}get hasFatalErrors(){return this._errors.some(e=>!e.recoverable)}get hasAnyErrors(){return this._errors.length>0}forPhase(e){return this._errors.filter(r=>r.phase===e)}};var l,l=((l={}).Architecture="architecture",l.Performance="performance",l.SSR="ssr",l.Security="security",l.Accessibility="accessibility",l.Testing="testing",l.CodeSmell="code-smell",l.Reactivity="reactivity",l.BestPractice="best-practice",l),U=t=>({ok:true,data:t}),z=t=>({ok:false,error:t});var w=class{static parse(e,r="config.ts"){return c.createSourceFile(r,e,c.ScriptTarget.Latest,true)}static generateLocationMap(e){let r={},s=(n,o)=>{if(c.isPropertyAssignment(n)&&n.name){let i=this.getPropertyName(n.name);if(i){let g=[...o,i],u=g.join("."),{line:f,character:h}=e.getLineAndCharacterOfPosition(n.name.getStart());r[u]={line:f+1,column:h+1},s(n.initializer,g);return}}c.isObjectLiteralExpression(n)?n.properties.forEach(i=>s(i,o)):c.isArrayLiteralExpression(n)?n.elements.forEach((i,g)=>{let u=[...o,String(g)],f=u.join("."),{line:h,character:x}=e.getLineAndCharacterOfPosition(i.getStart());r[f]={line:h+1,column:x+1},s(i,u);}):c.isExportAssignment(n)?s(n.expression,o):c.isExpressionStatement(n)?c.isParenthesizedExpression(n.expression)?s(n.expression.expression,o):s(n.expression,o):c.forEachChild(n,i=>s(i,o));};return s(e,[]),r}static getPropertyName(e){return c.isIdentifier(e)||c.isStringLiteral(e)?e.text:null}};var $=new Set(["discovery","loader","validator","cache","scanner","parser","rules","workers","reporter","init","config","planner","incremental","dry-run","engine","plugin-loader","env-fingerprint"]),N=[a.cyan,a.green,a.yellow,a.blue,a.magenta,a.magentaBright,a.cyanBright,a.greenBright,a.yellowBright,a.blueBright],p=new class{config;timers;constructor(){this.config=this.initializeFromEnv(),this.timers=new Map;}initializeFromEnv(){let t=process.env.DEBUG||"",e=this.parseNamespaces(t);return {enabled:e==="all"||e.size>0,level:"debug",namespaces:e,showTimestamps:false,showTimings:true}}enable(t="debug",e="all"){this.config.enabled=true,this.config.level=t,this.config.namespaces=e==="all"?"all":new Set(e);}disable(){this.config.enabled=false;}isEnabled(){return this.config.enabled}debug(t,e,...r){this.log("debug",t,e,...r);}info(t,e,...r){this.log("info",t,e,...r);}warn(t,e,...r){this.log("warn",t,e,...r);}error(t,e,...r){this.log("error",t,e,...r);}time(t){this.config.enabled&&this.timers.set(t,performance.now());}timeEnd(t){if(!this.config.enabled)return 0;let e=this.timers.get(t);if(!e)return 0;let r=performance.now()-e;return this.timers.delete(t),r}timeLog(t,e,r){let s=this.timeEnd(t);return s>0&&r&&this.debug(e,`${r}: ${s.toFixed(1)}ms`),s}log(t,e,r,...s){if(!this.config.enabled||this.config.namespaces!=="all"&&!this.config.namespaces.has(e))return;let n=new Date,o=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}:${n.getSeconds().toString().padStart(2,"0")}`,i=(function(f){let h=0;for(let x=0;x<f.length;x++)h=f.charCodeAt(x)+((h<<5)-h);return N[Math.abs(h)%N.length]})(e),g=`${a.gray(`[${o}]`)} ${i(`[ngcompass:${e}]`)}`,u=this.config.showTimestamps?a.gray(`[${n.toISOString()}] `):"";console.error(`${u}${g} ${r}`,...s);}parseNamespaces(t){if(t==="*"||t==="ngcompass"||t==="ngcompass:*")return "all";let e=t.split(",").map(s=>s.trim()),r=new Set;for(let s of e){if(!s.startsWith("ngcompass:"))continue;let n=s.slice(10);$.has(n)?r.add(n):n.length>0&&console.warn(`[ngcompass] Unknown debug namespace: "${n}". Valid namespaces: ${[...$].join(", ")}`);}return r}},V=(t,e,...r)=>p.debug(t,e,...r),H=(t,e,...r)=>p.info(t,e,...r),W=(t,e,...r)=>p.warn(t,e,...r),K=(t,e,...r)=>p.error(t,e,...r),X=t=>p.time(t),q=t=>p.timeEnd(t),Q=(t,e,r)=>p.timeLog(t,e,r),Y=(t,e)=>p.enable(t,e),Z=()=>p.disable(),ee=()=>p.isEnabled();var d=class extends Error{path;constructor(e,r){super(e),this.path=r,this.name="SerializationError";}};function A(t,e=[],r=new WeakSet){if(t===null)return "null";if(t===void 0)throw new d("undefined is not a valid hash input",e);switch(typeof t){case "boolean":return t?"true":"false";case "number":if(!Number.isFinite(t))throw new d(`Non-finite number (${String(t)}) is not a valid hash input`,e);return String(t);case "string":return JSON.stringify(t);case "function":throw new d("Functions are not valid hash inputs",e)}if(t instanceof Date)return JSON.stringify(t.toISOString());if(t instanceof RegExp)return JSON.stringify(t.toString());if(typeof t=="object"){let s;if(r.has(t))throw new d(`Circular reference detected at path: ${e.join(".")||"(root)"}`,e);if(r.add(t),Array.isArray(t))s="["+t.map((n,o)=>A(n,[...e,String(o)],r)).join(",")+"]";else {let n=Object.keys(t).sort(),o=[];for(let i of n){let g=t[i];g!==void 0&&o.push(JSON.stringify(i)+":"+A(g,[...e,i],r));}s="{"+o.join(",")+"}";}return r.delete(t),s}return JSON.stringify(t)}var C=class{lines;constructor(e){this.lines=[0];for(let r=0;r<e.length;r++)e[r]===`
3
3
  `&&this.lines.push(r+1);}location(e){let r=0,s=this.lines.length-1;for(;r<=s;){let i=r+s>>>1;this.lines[i]<=e?r=i+1:s=i-1;}let n=r-1,o=this.lines[n];return {line:n+1,column:e-o+1}}};export{w as ASTUtils,m as AnalyzerError,P as CACHE_VERSION,v as CONFIG_FILE_NAMES,S as ConfigurationError,L as DEFAULT_CACHE_DIR,I as DEFAULT_EXCLUDE_PATTERNS,T as DEFAULT_INCLUDE_PATTERNS,z as Err,O as InfrastructureErrorCollector,C as Locator,U as Ok,_ as PACKAGE_VERSION,b as ParseError,l as RuleCategory,y as RuleError,R as RuleExecutionError,F as SUPPORTED_ANGULAR_VERSIONS,d as SerializationError,E as TOOL_NAME,D as createInfrastructureError,V as debug,Z as disableDebug,Y as enableDebug,K as error,H as info,ee as isDebugEnabled,A as stableSerialize,X as time,q as timeEnd,Q as timeLog,W as warn};//# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts","../src/errors.ts","../src/types.ts","../src/ast/utils.ts","../src/logger.ts","../src/utils/stable-serialize.ts","../src/utils/locator.ts"],"names":["TOOL_NAME","PACKAGE_VERSION","CACHE_VERSION","CONFIG_FILE_NAMES","DEFAULT_CACHE_DIR","DEFAULT_INCLUDE_PATTERNS","DEFAULT_EXCLUDE_PATTERNS","SUPPORTED_ANGULAR_VERSIONS","min","max","AnalyzerError","Error","message","code","name","captureStackTrace","ConfigurationError","ParseError","filePath","RuleError","ruleId","RuleExecutionError","ruleName","cause","causeMessage","String","stack","createInfrastructureError","type","fields","Object","freeze","timestamp","Date","now","InfrastructureErrorCollector","_errors","record","error","push","errors","hasFatalErrors","some","e","recoverable","hasAnyErrors","length","forPhase","phase","filter","RuleCategory","Ok","data","ok","Err","ASTUtils","parse","content","fileName","ts","createSourceFile","ScriptTarget","Latest","generateLocationMap","sourceFile","map","visit","node","currentPath","isPropertyAssignment","getPropertyName","newPath","pathKey","join","line","character","getLineAndCharacterOfPosition","getStart","column","initializer","isObjectLiteralExpression","properties","forEach","prop","isArrayLiteralExpression","elements","elem","idx","isExportAssignment","expression","isExpressionStatement","isParenthesizedExpression","forEachChild","child","isIdentifier","isStringLiteral","text","KNOWN_NAMESPACES","Set","COLORS","pc","cyan","green","yellow","blue","magenta","magentaBright","cyanBright","greenBright","yellowBright","blueBright","logger","config","timers","initializeFromEnv","Map","debugEnv","process","env","DEBUG","namespaces","parseNamespaces","enabled","size","level","showTimestamps","showTimings","enable","disable","isEnabled","debug","namespace","args","log","info","warn","time","label","set","performance","timeEnd","start","get","duration","delete","timeLog","toFixed","_level","has","timeStr","getHours","toString","padStart","getMinutes","getSeconds","colorFn","hash","i","charCodeAt","Math","abs","prefix","gray","toISOString","console","parts","split","s","trim","part","startsWith","ns","slice","add","enableDebug","disableDebug","isDebugEnabled","SerializationError","path","stableSerialize","value","_path","_seen","WeakSet","undefined","Number","isFinite","JSON","stringify","RegExp","result","Array","isArray","v","sortedKeys","keys","sort","pairs","k","Locator","lines","location","offset","low","high","mid","lineStart"],"mappings":"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","file":"index.js","sourcesContent":["export const TOOL_NAME = 'ngcompass';\nexport const PACKAGE_VERSION = 'v.0.1.2-beta';\nexport const CACHE_VERSION = '1.0.0';\nexport const CONFIG_FILE_NAMES = [\n `.${TOOL_NAME}rc.json`,\n `.${TOOL_NAME}rc.js`,\n `.${TOOL_NAME}.config.js`,\n `${TOOL_NAME}.config.json`\n];\nexport const DEFAULT_CACHE_DIR = `node_modules/.cache/${TOOL_NAME}`;\nexport const DEFAULT_INCLUDE_PATTERNS = [\n '**/*.ts',\n '**/*.html'\n];\nexport const DEFAULT_EXCLUDE_PATTERNS = [\n '**/node_modules/**',\n '**/dist/**',\n '**/build/**',\n '**/*.spec.ts',\n '**/*.test.ts'\n];\nexport const SUPPORTED_ANGULAR_VERSIONS = {\n min: 12,\n max: 21\n};\n","export class AnalyzerError extends Error {\n code;\n constructor(r, e){\n super(r), this.code = e, this.name = 'AnalyzerError', 'captureStackTrace' in Error && Error.captureStackTrace(this, this.constructor);\n }\n}\nexport class ConfigurationError extends AnalyzerError {\n constructor(r){\n super(r, 'CONFIG_ERROR'), this.name = 'ConfigurationError';\n }\n}\nexport class ParseError extends AnalyzerError {\n filePath;\n constructor(r, e){\n super(`Parse error in ${e}: ${r}`, 'PARSE_ERROR'), this.filePath = e, this.name = 'ParseError';\n }\n}\nexport class RuleError extends AnalyzerError {\n ruleId;\n constructor(r, e){\n super(`Error in rule '${e}': ${r}`, 'RULE_ERROR'), this.ruleId = e, this.name = 'RuleError';\n }\n}\nexport class RuleExecutionError extends AnalyzerError {\n ruleName;\n filePath;\n constructor(r, e, t){\n let s = t instanceof Error ? t.message : String(t);\n super(`Rule \"${r}\" crashed on ${e}: ${s}`, 'RULE_EXECUTION_ERROR'), this.ruleName = r, this.filePath = e, this.name = 'RuleExecutionError', t instanceof Error && 'stack' in t && (this.stack = `${this.stack}\\nCaused by: ${t.stack}`);\n }\n}\nexport function createInfrastructureError(r, e) {\n return Object.freeze({\n type: r,\n timestamp: Date.now(),\n ...e\n });\n}\nexport class InfrastructureErrorCollector {\n _errors = [];\n record(r) {\n this._errors.push(r);\n }\n get errors() {\n return this._errors;\n }\n get hasFatalErrors() {\n return this._errors.some((r)=>!r.recoverable);\n }\n get hasAnyErrors() {\n return this._errors.length > 0;\n }\n forPhase(r) {\n return this._errors.filter((e)=>e.phase === r);\n }\n}\n","var RuleCategory;\nexport var RuleCategory = ((RuleCategory = {}).Architecture = \"architecture\", RuleCategory.Performance = \"performance\", RuleCategory.SSR = \"ssr\", RuleCategory.Security = \"security\", RuleCategory.Accessibility = \"accessibility\", RuleCategory.Testing = \"testing\", RuleCategory.CodeSmell = \"code-smell\", RuleCategory.Reactivity = \"reactivity\", RuleCategory.BestPractice = \"best-practice\", RuleCategory);\nexport const Ok = (e)=>({\n ok: !0,\n data: e\n });\nexport const Err = (e)=>({\n ok: !1,\n error: e\n });\n","import e from \"typescript\";\nexport class ASTUtils {\n static parse(t, i = 'config.ts') {\n return e.createSourceFile(i, t, e.ScriptTarget.Latest, !0);\n }\n static generateLocationMap(t) {\n let i = {}, r = (s, n)=>{\n if (e.isPropertyAssignment(s) && s.name) {\n let e = this.getPropertyName(s.name);\n if (e) {\n let a = [\n ...n,\n e\n ], o = a.join('.'), { line: p, character: l } = t.getLineAndCharacterOfPosition(s.name.getStart());\n i[o] = {\n line: p + 1,\n column: l + 1\n }, r(s.initializer, a);\n return;\n }\n }\n e.isObjectLiteralExpression(s) ? s.properties.forEach((e)=>r(e, n)) : e.isArrayLiteralExpression(s) ? s.elements.forEach((e, s)=>{\n let a = [\n ...n,\n String(s)\n ], o = a.join('.'), { line: p, character: l } = t.getLineAndCharacterOfPosition(e.getStart());\n i[o] = {\n line: p + 1,\n column: l + 1\n }, r(e, a);\n }) : e.isExportAssignment(s) ? r(s.expression, n) : e.isExpressionStatement(s) ? e.isParenthesizedExpression(s.expression) ? r(s.expression.expression, n) : r(s.expression, n) : e.forEachChild(s, (e)=>r(e, n));\n };\n return r(t, []), i;\n }\n static getPropertyName(t) {\n return e.isIdentifier(t) || e.isStringLiteral(t) ? t.text : null;\n }\n}\n","import e from 'picocolors';\nlet KNOWN_NAMESPACES = new Set([\n 'discovery',\n 'loader',\n 'validator',\n 'cache',\n 'scanner',\n 'parser',\n 'rules',\n 'workers',\n 'reporter',\n 'init',\n 'config',\n 'planner',\n 'incremental',\n 'dry-run',\n 'engine',\n 'plugin-loader',\n 'env-fingerprint'\n]), COLORS = [\n e.cyan,\n e.green,\n e.yellow,\n e.blue,\n e.magenta,\n e.magentaBright,\n e.cyanBright,\n e.greenBright,\n e.yellowBright,\n e.blueBright\n], logger = new class {\n config;\n timers;\n constructor(){\n this.config = this.initializeFromEnv(), this.timers = new Map();\n }\n initializeFromEnv() {\n let e = process.env.DEBUG || '', t = this.parseNamespaces(e);\n return {\n enabled: 'all' === t || t.size > 0,\n level: 'debug',\n namespaces: t,\n showTimestamps: !1,\n showTimings: !0\n };\n }\n enable(e = 'debug', t = 'all') {\n this.config.enabled = !0, this.config.level = e, this.config.namespaces = 'all' === t ? 'all' : new Set(t);\n }\n disable() {\n this.config.enabled = !1;\n }\n isEnabled() {\n return this.config.enabled;\n }\n debug(e, t, ...n) {\n this.log('debug', e, t, ...n);\n }\n info(e, t, ...n) {\n this.log('info', e, t, ...n);\n }\n warn(e, t, ...n) {\n this.log('warn', e, t, ...n);\n }\n error(e, t, ...n) {\n this.log('error', e, t, ...n);\n }\n time(e) {\n this.config.enabled && this.timers.set(e, performance.now());\n }\n timeEnd(e) {\n if (!this.config.enabled) return 0;\n let t = this.timers.get(e);\n if (!t) return 0;\n let n = performance.now() - t;\n return this.timers.delete(e), n;\n }\n timeLog(e, t, n) {\n let r = this.timeEnd(e);\n return r > 0 && n && this.debug(t, `${n}: ${r.toFixed(1)}ms`), r;\n }\n log(t, n, r, ...o) {\n if (!this.config.enabled || 'all' !== this.config.namespaces && !this.config.namespaces.has(n)) return;\n let i = new Date(), s = `${i.getHours().toString().padStart(2, '0')}:${i.getMinutes().toString().padStart(2, '0')}:${i.getSeconds().toString().padStart(2, '0')}`, a = function(e) {\n let t = 0;\n for(let n = 0; n < e.length; n++)t = e.charCodeAt(n) + ((t << 5) - t);\n return COLORS[Math.abs(t) % COLORS.length];\n }(n), g = `${e.gray(`[${s}]`)} ${a(`[ngcompass:${n}]`)}`, l = this.config.showTimestamps ? e.gray(`[${i.toISOString()}] `) : '';\n console.error(`${l}${g} ${r}`, ...o);\n }\n parseNamespaces(e) {\n if ('*' === e || 'ngcompass' === e || 'ngcompass:*' === e) return 'all';\n let t = e.split(',').map((e)=>e.trim()), n = new Set();\n for (let e of t){\n if (!e.startsWith('ngcompass:')) continue;\n let t = e.slice(10);\n KNOWN_NAMESPACES.has(t) ? n.add(t) : t.length > 0 && console.warn(`[ngcompass] Unknown debug namespace: \"${t}\". Valid namespaces: ${[\n ...KNOWN_NAMESPACES\n ].join(', ')}`);\n }\n return n;\n }\n}();\nexport const debug = (e, t, ...n)=>logger.debug(e, t, ...n);\nexport const info = (e, t, ...n)=>logger.info(e, t, ...n);\nexport const warn = (e, t, ...n)=>logger.warn(e, t, ...n);\nexport const error = (e, t, ...n)=>logger.error(e, t, ...n);\nexport const time = (e)=>logger.time(e);\nexport const timeEnd = (e)=>logger.timeEnd(e);\nexport const timeLog = (e, t, n)=>logger.timeLog(e, t, n);\nexport const enableDebug = (e, t)=>logger.enable(e, t);\nexport const disableDebug = ()=>logger.disable();\nexport const isDebugEnabled = ()=>logger.isEnabled();\nexport default logger;\n","export class SerializationError extends Error {\n path;\n constructor(r, i){\n super(r), this.path = i, this.name = 'SerializationError';\n }\n}\nexport function stableSerialize(r, i = [], e = new WeakSet()) {\n if (null === r) return 'null';\n if (void 0 === r) throw new SerializationError('undefined is not a valid hash input', i);\n switch(typeof r){\n case 'boolean':\n return r ? 'true' : 'false';\n case 'number':\n if (!Number.isFinite(r)) throw new SerializationError(`Non-finite number (${String(r)}) is not a valid hash input`, i);\n return String(r);\n case 'string':\n return JSON.stringify(r);\n case 'function':\n throw new SerializationError('Functions are not valid hash inputs', i);\n }\n if (r instanceof Date) return JSON.stringify(r.toISOString());\n if (r instanceof RegExp) return JSON.stringify(r.toString());\n if ('object' == typeof r) {\n let t;\n if (e.has(r)) throw new SerializationError(`Circular reference detected at path: ${i.join('.') || '(root)'}`, i);\n if (e.add(r), Array.isArray(r)) t = '[' + r.map((r, t)=>stableSerialize(r, [\n ...i,\n String(t)\n ], e)).join(',') + ']';\n else {\n let n = Object.keys(r).sort(), a = [];\n for (let t of n){\n let n = r[t];\n void 0 !== n && a.push(JSON.stringify(t) + ':' + stableSerialize(n, [\n ...i,\n t\n ], e));\n }\n t = '{' + a.join(',') + '}';\n }\n return e.delete(r), t;\n }\n return JSON.stringify(r);\n}\n","export class Locator {\n lines;\n constructor(t){\n this.lines = [\n 0\n ];\n for(let l = 0; l < t.length; l++)'\\n' === t[l] && this.lines.push(l + 1);\n }\n location(t) {\n let l = 0, e = this.lines.length - 1;\n for(; l <= e;){\n let s = l + e >>> 1;\n this.lines[s] <= t ? l = s + 1 : e = s - 1;\n }\n let s = l - 1, n = this.lines[s];\n return {\n line: s + 1,\n column: t - n + 1\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/constants.ts","../src/errors.ts","../src/types.ts","../src/ast/utils.ts","../src/logger.ts","../src/utils/stable-serialize.ts","../src/utils/locator.ts"],"names":["TOOL_NAME","PACKAGE_VERSION","CACHE_VERSION","CONFIG_FILE_NAMES","DEFAULT_CACHE_DIR","DEFAULT_INCLUDE_PATTERNS","DEFAULT_EXCLUDE_PATTERNS","SUPPORTED_ANGULAR_VERSIONS","min","max","AnalyzerError","Error","message","code","name","captureStackTrace","ConfigurationError","ParseError","filePath","RuleError","ruleId","RuleExecutionError","ruleName","cause","causeMessage","String","stack","createInfrastructureError","type","fields","Object","freeze","timestamp","Date","now","InfrastructureErrorCollector","_errors","record","error","push","errors","hasFatalErrors","some","e","recoverable","hasAnyErrors","length","forPhase","phase","filter","RuleCategory","Ok","data","ok","Err","ASTUtils","parse","content","fileName","ts","createSourceFile","ScriptTarget","Latest","generateLocationMap","sourceFile","map","visit","node","currentPath","isPropertyAssignment","getPropertyName","newPath","pathKey","join","line","character","getLineAndCharacterOfPosition","getStart","column","initializer","isObjectLiteralExpression","properties","forEach","prop","isArrayLiteralExpression","elements","elem","idx","isExportAssignment","expression","isExpressionStatement","isParenthesizedExpression","forEachChild","child","isIdentifier","isStringLiteral","text","KNOWN_NAMESPACES","Set","COLORS","pc","cyan","green","yellow","blue","magenta","magentaBright","cyanBright","greenBright","yellowBright","blueBright","logger","config","timers","initializeFromEnv","Map","debugEnv","process","env","DEBUG","namespaces","parseNamespaces","enabled","size","level","showTimestamps","showTimings","enable","disable","isEnabled","debug","namespace","args","log","info","warn","time","label","set","performance","timeEnd","start","get","duration","delete","timeLog","toFixed","_level","has","timeStr","getHours","toString","padStart","getMinutes","getSeconds","colorFn","hash","i","charCodeAt","Math","abs","prefix","gray","toISOString","console","parts","split","s","trim","part","startsWith","ns","slice","add","enableDebug","disableDebug","isDebugEnabled","SerializationError","path","stableSerialize","value","_path","_seen","WeakSet","undefined","Number","isFinite","JSON","stringify","RegExp","result","Array","isArray","v","sortedKeys","keys","sort","pairs","k","Locator","lines","location","offset","low","high","mid","lineStart"],"mappings":"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","file":"index.js","sourcesContent":["export const TOOL_NAME = 'ngcompass';\nexport const PACKAGE_VERSION = 'v.0.1.4-beta';\nexport const CACHE_VERSION = '1.0.0';\nexport const CONFIG_FILE_NAMES = [\n `.${TOOL_NAME}rc.json`,\n `.${TOOL_NAME}rc.js`,\n `.${TOOL_NAME}.config.js`,\n `${TOOL_NAME}.config.json`\n];\nexport const DEFAULT_CACHE_DIR = `node_modules/.cache/${TOOL_NAME}`;\nexport const DEFAULT_INCLUDE_PATTERNS = [\n '**/*.ts',\n '**/*.html'\n];\nexport const DEFAULT_EXCLUDE_PATTERNS = [\n '**/node_modules/**',\n '**/dist/**',\n '**/build/**',\n '**/*.spec.ts',\n '**/*.test.ts'\n];\nexport const SUPPORTED_ANGULAR_VERSIONS = {\n min: 12,\n max: 21\n};\n","export class AnalyzerError extends Error {\n code;\n constructor(r, e){\n super(r), this.code = e, this.name = 'AnalyzerError', 'captureStackTrace' in Error && Error.captureStackTrace(this, this.constructor);\n }\n}\nexport class ConfigurationError extends AnalyzerError {\n constructor(r){\n super(r, 'CONFIG_ERROR'), this.name = 'ConfigurationError';\n }\n}\nexport class ParseError extends AnalyzerError {\n filePath;\n constructor(r, e){\n super(`Parse error in ${e}: ${r}`, 'PARSE_ERROR'), this.filePath = e, this.name = 'ParseError';\n }\n}\nexport class RuleError extends AnalyzerError {\n ruleId;\n constructor(r, e){\n super(`Error in rule '${e}': ${r}`, 'RULE_ERROR'), this.ruleId = e, this.name = 'RuleError';\n }\n}\nexport class RuleExecutionError extends AnalyzerError {\n ruleName;\n filePath;\n constructor(r, e, t){\n let s = t instanceof Error ? t.message : String(t);\n super(`Rule \"${r}\" crashed on ${e}: ${s}`, 'RULE_EXECUTION_ERROR'), this.ruleName = r, this.filePath = e, this.name = 'RuleExecutionError', t instanceof Error && 'stack' in t && (this.stack = `${this.stack}\\nCaused by: ${t.stack}`);\n }\n}\nexport function createInfrastructureError(r, e) {\n return Object.freeze({\n type: r,\n timestamp: Date.now(),\n ...e\n });\n}\nexport class InfrastructureErrorCollector {\n _errors = [];\n record(r) {\n this._errors.push(r);\n }\n get errors() {\n return this._errors;\n }\n get hasFatalErrors() {\n return this._errors.some((r)=>!r.recoverable);\n }\n get hasAnyErrors() {\n return this._errors.length > 0;\n }\n forPhase(r) {\n return this._errors.filter((e)=>e.phase === r);\n }\n}\n","var RuleCategory;\nexport var RuleCategory = ((RuleCategory = {}).Architecture = \"architecture\", RuleCategory.Performance = \"performance\", RuleCategory.SSR = \"ssr\", RuleCategory.Security = \"security\", RuleCategory.Accessibility = \"accessibility\", RuleCategory.Testing = \"testing\", RuleCategory.CodeSmell = \"code-smell\", RuleCategory.Reactivity = \"reactivity\", RuleCategory.BestPractice = \"best-practice\", RuleCategory);\nexport const Ok = (e)=>({\n ok: !0,\n data: e\n });\nexport const Err = (e)=>({\n ok: !1,\n error: e\n });\n","import e from \"typescript\";\nexport class ASTUtils {\n static parse(t, i = 'config.ts') {\n return e.createSourceFile(i, t, e.ScriptTarget.Latest, !0);\n }\n static generateLocationMap(t) {\n let i = {}, r = (s, n)=>{\n if (e.isPropertyAssignment(s) && s.name) {\n let e = this.getPropertyName(s.name);\n if (e) {\n let a = [\n ...n,\n e\n ], o = a.join('.'), { line: p, character: l } = t.getLineAndCharacterOfPosition(s.name.getStart());\n i[o] = {\n line: p + 1,\n column: l + 1\n }, r(s.initializer, a);\n return;\n }\n }\n e.isObjectLiteralExpression(s) ? s.properties.forEach((e)=>r(e, n)) : e.isArrayLiteralExpression(s) ? s.elements.forEach((e, s)=>{\n let a = [\n ...n,\n String(s)\n ], o = a.join('.'), { line: p, character: l } = t.getLineAndCharacterOfPosition(e.getStart());\n i[o] = {\n line: p + 1,\n column: l + 1\n }, r(e, a);\n }) : e.isExportAssignment(s) ? r(s.expression, n) : e.isExpressionStatement(s) ? e.isParenthesizedExpression(s.expression) ? r(s.expression.expression, n) : r(s.expression, n) : e.forEachChild(s, (e)=>r(e, n));\n };\n return r(t, []), i;\n }\n static getPropertyName(t) {\n return e.isIdentifier(t) || e.isStringLiteral(t) ? t.text : null;\n }\n}\n","import e from 'picocolors';\nlet KNOWN_NAMESPACES = new Set([\n 'discovery',\n 'loader',\n 'validator',\n 'cache',\n 'scanner',\n 'parser',\n 'rules',\n 'workers',\n 'reporter',\n 'init',\n 'config',\n 'planner',\n 'incremental',\n 'dry-run',\n 'engine',\n 'plugin-loader',\n 'env-fingerprint'\n]), COLORS = [\n e.cyan,\n e.green,\n e.yellow,\n e.blue,\n e.magenta,\n e.magentaBright,\n e.cyanBright,\n e.greenBright,\n e.yellowBright,\n e.blueBright\n], logger = new class {\n config;\n timers;\n constructor(){\n this.config = this.initializeFromEnv(), this.timers = new Map();\n }\n initializeFromEnv() {\n let e = process.env.DEBUG || '', t = this.parseNamespaces(e);\n return {\n enabled: 'all' === t || t.size > 0,\n level: 'debug',\n namespaces: t,\n showTimestamps: !1,\n showTimings: !0\n };\n }\n enable(e = 'debug', t = 'all') {\n this.config.enabled = !0, this.config.level = e, this.config.namespaces = 'all' === t ? 'all' : new Set(t);\n }\n disable() {\n this.config.enabled = !1;\n }\n isEnabled() {\n return this.config.enabled;\n }\n debug(e, t, ...n) {\n this.log('debug', e, t, ...n);\n }\n info(e, t, ...n) {\n this.log('info', e, t, ...n);\n }\n warn(e, t, ...n) {\n this.log('warn', e, t, ...n);\n }\n error(e, t, ...n) {\n this.log('error', e, t, ...n);\n }\n time(e) {\n this.config.enabled && this.timers.set(e, performance.now());\n }\n timeEnd(e) {\n if (!this.config.enabled) return 0;\n let t = this.timers.get(e);\n if (!t) return 0;\n let n = performance.now() - t;\n return this.timers.delete(e), n;\n }\n timeLog(e, t, n) {\n let r = this.timeEnd(e);\n return r > 0 && n && this.debug(t, `${n}: ${r.toFixed(1)}ms`), r;\n }\n log(t, n, r, ...o) {\n if (!this.config.enabled || 'all' !== this.config.namespaces && !this.config.namespaces.has(n)) return;\n let i = new Date(), s = `${i.getHours().toString().padStart(2, '0')}:${i.getMinutes().toString().padStart(2, '0')}:${i.getSeconds().toString().padStart(2, '0')}`, a = function(e) {\n let t = 0;\n for(let n = 0; n < e.length; n++)t = e.charCodeAt(n) + ((t << 5) - t);\n return COLORS[Math.abs(t) % COLORS.length];\n }(n), g = `${e.gray(`[${s}]`)} ${a(`[ngcompass:${n}]`)}`, l = this.config.showTimestamps ? e.gray(`[${i.toISOString()}] `) : '';\n console.error(`${l}${g} ${r}`, ...o);\n }\n parseNamespaces(e) {\n if ('*' === e || 'ngcompass' === e || 'ngcompass:*' === e) return 'all';\n let t = e.split(',').map((e)=>e.trim()), n = new Set();\n for (let e of t){\n if (!e.startsWith('ngcompass:')) continue;\n let t = e.slice(10);\n KNOWN_NAMESPACES.has(t) ? n.add(t) : t.length > 0 && console.warn(`[ngcompass] Unknown debug namespace: \"${t}\". Valid namespaces: ${[\n ...KNOWN_NAMESPACES\n ].join(', ')}`);\n }\n return n;\n }\n}();\nexport const debug = (e, t, ...n)=>logger.debug(e, t, ...n);\nexport const info = (e, t, ...n)=>logger.info(e, t, ...n);\nexport const warn = (e, t, ...n)=>logger.warn(e, t, ...n);\nexport const error = (e, t, ...n)=>logger.error(e, t, ...n);\nexport const time = (e)=>logger.time(e);\nexport const timeEnd = (e)=>logger.timeEnd(e);\nexport const timeLog = (e, t, n)=>logger.timeLog(e, t, n);\nexport const enableDebug = (e, t)=>logger.enable(e, t);\nexport const disableDebug = ()=>logger.disable();\nexport const isDebugEnabled = ()=>logger.isEnabled();\nexport default logger;\n","export class SerializationError extends Error {\n path;\n constructor(r, i){\n super(r), this.path = i, this.name = 'SerializationError';\n }\n}\nexport function stableSerialize(r, i = [], e = new WeakSet()) {\n if (null === r) return 'null';\n if (void 0 === r) throw new SerializationError('undefined is not a valid hash input', i);\n switch(typeof r){\n case 'boolean':\n return r ? 'true' : 'false';\n case 'number':\n if (!Number.isFinite(r)) throw new SerializationError(`Non-finite number (${String(r)}) is not a valid hash input`, i);\n return String(r);\n case 'string':\n return JSON.stringify(r);\n case 'function':\n throw new SerializationError('Functions are not valid hash inputs', i);\n }\n if (r instanceof Date) return JSON.stringify(r.toISOString());\n if (r instanceof RegExp) return JSON.stringify(r.toString());\n if ('object' == typeof r) {\n let t;\n if (e.has(r)) throw new SerializationError(`Circular reference detected at path: ${i.join('.') || '(root)'}`, i);\n if (e.add(r), Array.isArray(r)) t = '[' + r.map((r, t)=>stableSerialize(r, [\n ...i,\n String(t)\n ], e)).join(',') + ']';\n else {\n let n = Object.keys(r).sort(), a = [];\n for (let t of n){\n let n = r[t];\n void 0 !== n && a.push(JSON.stringify(t) + ':' + stableSerialize(n, [\n ...i,\n t\n ], e));\n }\n t = '{' + a.join(',') + '}';\n }\n return e.delete(r), t;\n }\n return JSON.stringify(r);\n}\n","export class Locator {\n lines;\n constructor(t){\n this.lines = [\n 0\n ];\n for(let l = 0; l < t.length; l++)'\\n' === t[l] && this.lines.push(l + 1);\n }\n location(t) {\n let l = 0, e = this.lines.length - 1;\n for(; l <= e;){\n let s = l + e >>> 1;\n this.lines[s] <= t ? l = s + 1 : e = s - 1;\n }\n let s = l - 1, n = this.lines[s];\n return {\n line: s + 1,\n column: t - n + 1\n };\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngcompass/common",
3
- "version": "0.1.2-beta",
3
+ "version": "0.1.4-beta",
4
4
  "description": "Common types and utilities for Angular Analyzer",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",