@ngcompass/common
Advanced tools
+1
-1
@@ -1,4 +0,4 @@ | ||
| 'use strict';var c=require('typescript'),l=require('picocolors');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var c__default=/*#__PURE__*/_interopDefault(c);var l__default=/*#__PURE__*/_interopDefault(l);var A="v0.1.7-beta",P="1.0.0",v=["**/*.ts","**/*.html"];var f=class extends Error{code;constructor(e,r){super(e),this.code=r,this.name="AnalyzerError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,this.constructor);}},x=class extends f{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},E=class extends f{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},S=class extends f{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},b=class extends f{ruleName;filePath;constructor(e,r,i){let n=i instanceof Error?i.message:String(i);super(`Rule "${e}" crashed on ${r}: ${n}`,"RULE_EXECUTION_ERROR"),this.ruleName=e,this.filePath=r,this.name="RuleExecutionError",i instanceof Error&&(this.stack=`${this.stack} | ||
| 'use strict';var c=require('typescript'),l=require('picocolors');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var c__default=/*#__PURE__*/_interopDefault(c);var l__default=/*#__PURE__*/_interopDefault(l);var A="v0.1.8-beta",P="1.0.0",v=["**/*.ts","**/*.html"];var f=class extends Error{code;constructor(e,r){super(e),this.code=r,this.name="AnalyzerError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,this.constructor);}},x=class extends f{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},E=class extends f{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},S=class extends f{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},b=class extends f{ruleName;filePath;constructor(e,r,i){let n=i instanceof Error?i.message:String(i);super(`Rule "${e}" crashed on ${r}: ${n}`,"RULE_EXECUTION_ERROR"),this.ruleName=e,this.filePath=r,this.name="RuleExecutionError",i instanceof Error&&(this.stack=`${this.stack} | ||
| Caused by: ${i.stack}`);}};function _(t,e){return Object.freeze({type:t,timestamp:Date.now(),...e})}var y=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 I={Architecture:"architecture",Performance:"performance",SSR:"ssr",Security:"security",Accessibility:"accessibility",Testing:"testing",CodeSmell:"code-smell",Reactivity:"reactivity",BestPractice:"best-practice"},T=t=>({ok:true,data:t}),k=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={},i=(n,s)=>{if(c__default.default.isPropertyAssignment(n)&&n.name){let o=this.getPropertyName(n.name);if(o){let a=[...s,o],g=a.join("."),{line:u,character:h}=e.getLineAndCharacterOfPosition(n.name.getStart());r[g]={line:u+1,column:h+1},i(n.initializer,a);return}}c__default.default.isObjectLiteralExpression(n)?n.properties.forEach(o=>i(o,s)):c__default.default.isArrayLiteralExpression(n)?n.elements.forEach((o,a)=>{let g=[...s,String(a)],u=g.join("."),{line:h,character:d}=e.getLineAndCharacterOfPosition(o.getStart());r[u]={line:h+1,column:d+1},i(o,g);}):c__default.default.isExportAssignment(n)?i(n.expression,s):c__default.default.isExpressionStatement(n)?c__default.default.isParenthesizedExpression(n.expression)?i(n.expression.expression,s):i(n.expression,s):c__default.default.forEachChild(n,o=>i(o,s));};return i(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"]),C=[...$].join(", "),O=[l__default.default.cyan,l__default.default.green,l__default.default.yellow,l__default.default.blue,l__default.default.magenta,l__default.default.magentaBright,l__default.default.cyanBright,l__default.default.greenBright,l__default.default.yellowBright,l__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 i=this.timeEnd(t);return i>0&&r&&this.debug(e,`${r}: ${i.toFixed(1)}ms`),i}log(t,e,r,...i){if(!this.config.enabled||this.config.namespaces!=="all"&&!this.config.namespaces.has(e))return;let n=new Date,s=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}:${n.getSeconds().toString().padStart(2,"0")}`,o=(function(u){let h=0;for(let d=0;d<u.length;d++)h=u.charCodeAt(d)+((h<<5)-h);return O[Math.abs(h)%O.length]})(e),a=`${l__default.default.gray(`[${s}]`)} ${o(`[ngcompass:${e}]`)}`,g=this.config.showTimestamps?l__default.default.gray(`[${n.toISOString()}] `):"";console.error(`${g}${a} ${r}`,...i);}parseNamespaces(t){if(t==="*"||t==="ngcompass"||t==="ngcompass:*")return "all";let e=t.split(",").map(i=>i.trim()),r=new Set;for(let i of e){if(!i.startsWith("ngcompass:"))continue;let n=i.slice(10);$.has(n)?r.add(n):n.length>0&&console.warn(`[ngcompass] Unknown debug namespace: "${n}". Valid namespaces: ${C}`);}return r}},B=(t,e,...r)=>p.debug(t,e,...r),U=(t,e,...r)=>p.info(t,e,...r),J=(t,e,...r)=>p.warn(t,e,...r),V=(t,e,...r)=>p.error(t,e,...r),W=t=>p.time(t),G=t=>p.timeEnd(t),H=(t,e,r)=>p.timeLog(t,e,r),K=(t,e)=>p.enable(t,e),X=()=>p.disable(),q=()=>p.isEnabled();var m=class extends Error{path;constructor(e,r){super(e),this.path=r,this.name="SerializationError";}};function R(t,e=[],r=new WeakSet){if(t===null)return "null";if(t===void 0)throw new m("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 m(`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 m("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 i;if(r.has(t))throw new m(`Circular reference detected at path: ${e.join(".")||"(root)"}`,e);if(r.add(t),Array.isArray(t))i="["+t.map((n,s)=>R(n,[...e,String(s)],r)).join(",")+"]";else {let n=Object.keys(t).sort(),s=[];for(let o of n){let a=t[o];a!==void 0&&s.push(JSON.stringify(o)+":"+R(a,[...e,o],r));}i="{"+s.join(",")+"}";}return r.delete(t),i}return JSON.stringify(t)}var N=class{lines;contentLength;constructor(e){this.contentLength=e.length,this.lines=[0];for(let r=0;r<e.length;r++)e[r]===` | ||
| `&&this.lines.push(r+1);}location(e){let r=this.clampOffset(e),i=0,n=this.lines.length-1;for(;i<=n;){let a=i+n>>>1;this.lines[a]<=r?i=a+1:n=a-1;}let s=i-1,o=this.lines[s];return {line:s+1,column:r-o+1}}clampOffset(e){return !Number.isFinite(e)||e<0?0:e>this.contentLength?this.contentLength:e}};function te(t){return t<1e3?`${Math.max(0,Math.round(t))}ms`:`${(t/1e3).toFixed(1)}s`}function re(t,e){return t===1?e:`${e}s`}exports.ASTUtils=w;exports.AnalyzerError=f;exports.CACHE_VERSION=P;exports.ConfigurationError=x;exports.DEFAULT_INCLUDE_PATTERNS=v;exports.Err=k;exports.InfrastructureErrorCollector=y;exports.Locator=N;exports.Ok=T;exports.PACKAGE_VERSION=A;exports.ParseError=E;exports.RuleCategory=I;exports.RuleError=S;exports.RuleExecutionError=b;exports.SerializationError=m;exports.createInfrastructureError=_;exports.debug=B;exports.disableDebug=X;exports.enableDebug=K;exports.error=V;exports.formatDuration=te;exports.info=U;exports.isDebugEnabled=q;exports.pluralise=re;exports.stableSerialize=R;exports.time=W;exports.timeEnd=G;exports.timeLog=H;exports.warn=J;//# sourceMappingURL=index.cjs.map | ||
| //# sourceMappingURL=index.cjs.map |
@@ -1,1 +0,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","../src/utils/format.ts"],"names":["PACKAGE_VERSION","CACHE_VERSION","DEFAULT_INCLUDE_PATTERNS","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","Architecture","Performance","SSR","Security","Accessibility","Testing","CodeSmell","Reactivity","BestPractice","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","KNOWN_NAMESPACE_LIST","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","contentLength","location","offset","clamped","clampOffset","low","high","mid","lineStart","formatDuration","ms","max","round","pluralise","count","word"],"mappings":"gOAAO,IAAMA,CAAAA,CAAkB,aAAA,CAElBC,CAAAA,CAAgB,OAAA,CAEhBC,EAA2B,CAAC,SAAA,CAAW,WAAA,ECJ7C,IAAMC,CAAAA,CAAN,cAA4BC,KAAAA,CAAAA,IAAAA,CACjC,YACEC,CAAAA,CACgBC,CAAAA,CAChB,CACA,KAAA,CAAMD,CAAAA,CAAAA,CAAAA,IAAAA,CAFUC,IAAAA,CAAAA,EAGhB,IAAA,CAAKC,IAAAA,CAAO,eAAA,CAER,OAAOH,MAAMI,iBAAAA,EAAsB,UAAA,EACrCJ,KAAAA,CAAMI,iBAAAA,CAAkB,KAAM,IAAA,CAAK,WAAW,EAElD,CACF,CAAA,CAEaC,CAAAA,CAAN,cAAiCN,CAAAA,CACtC,WAAA,CAAYE,CAAAA,CAAiB,CAC3B,KAAA,CAAMA,CAAAA,CAAS,cAAA,CAAA,CACf,IAAA,CAAKE,KAAO,qBACd,CACF,CAAA,CAEaG,CAAAA,CAAN,cAAyBP,CAAAA,CAAAA,QAAAA,CAC9B,WAAA,CACEE,EACgBM,CAAAA,CAChB,CACA,KAAA,CAAM,CAAA,eAAA,EAAkBA,CAAAA,CAAAA,EAAAA,EAAaN,CAAAA,CAAAA,CAAAA,CAAW,aAAA,EAAA,IAAA,CAFhCM,QAAAA,CAAAA,CAAAA,CAGhB,IAAA,CAAKJ,IAAAA,CAAO,aACd,CACF,CAAA,CAEaK,EAAN,cAAwBT,CAAAA,CAAAA,MAAAA,CAC7B,WAAA,CACEE,CAAAA,CACgBQ,CAAAA,CAChB,CACA,KAAA,CAAM,kBAAkBA,CAAAA,CAAAA,GAAAA,EAAYR,CAAAA,CAAAA,CAAAA,CAAW,YAAA,CAAA,CAAA,IAAA,CAF/BQ,MAAAA,CAAAA,EAGhB,IAAA,CAAKN,IAAAA,CAAO,YACd,CACF,EAEaO,CAAAA,CAAN,cAAiCX,CAAAA,CAAAA,QAAAA,CAAAA,QAAAA,CACtC,YACkBY,CAAAA,CACAJ,CAAAA,CAChBK,CAAAA,CACA,CACA,IAAMC,CAAAA,CAAeD,CAAAA,YAAiBZ,KAAAA,CAAQY,EAAMX,OAAAA,CAAUa,MAAAA,CAAOF,CAAAA,CAAAA,CACrE,MACE,CAAA,MAAA,EAASD,CAAAA,CAAAA,aAAAA,EAAwBJ,CAAAA,KAAaM,CAAAA,CAAAA,CAAAA,CAC9C,sBAAA,CAAA,CAAA,IAAA,CAPcF,QAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CACAJ,SAAAA,CAAAA,CAQhB,IAAA,CAAKJ,IAAAA,CAAO,oBAAA,CAERS,aAAiBZ,KAAAA,GACnB,IAAA,CAAKe,KAAAA,CAAQ,CAAA,EAAG,KAAKA,KAAK;AAAgBH,WAAAA,EAAAA,CAAAA,CAAMG,KAAK,CAAA,CAAA,EAEzD,CACF,EAoBO,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,CAEO,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,CAAMC,CAAAA,EAAM,CAACA,CAAAA,CAAEC,WAAW,CAChD,CAEA,IAAIC,YAAAA,EAAwB,CAC1B,OAAO,IAAA,CAAKT,OAAAA,CAAQU,MAAAA,CAAS,CAC/B,CAEAC,QAAAA,CACEC,CAAAA,CACoC,CACpC,OAAO,IAAA,CAAKZ,OAAAA,CAAQa,MAAAA,CAAQN,CAAAA,EAAMA,EAAEK,KAAAA,GAAUA,CAAAA,CAChD,CACF,ECvGO,IAAME,CAAAA,CAAe,CAC1BC,aAAc,cAAA,CACdC,WAAAA,CAAa,aAAA,CACbC,GAAAA,CAAK,KAAA,CACLC,QAAAA,CAAU,UAAA,CACVC,aAAAA,CAAe,gBACfC,OAAAA,CAAS,SAAA,CACTC,SAAAA,CAAW,YAAA,CACXC,UAAAA,CAAY,YAAA,CACZC,YAAAA,CAAc,eAChB,EAQaC,CAAAA,CAASC,CAAAA,GAA+B,CAAEC,EAAAA,CAAI,IAAA,CAAMD,IAAAA,CAAAA,CAAK,CAAA,CAAA,CAEzDE,EAAUzB,CAAAA,GAAgC,CAAEwB,EAAAA,CAAI,KAAA,CAAOxB,KAAAA,CAAAA,CAAM,CAAA,ECjBnE,IAAM0B,CAAAA,CAAN,KAAMA,CACX,OAAOC,KAAAA,CAAMC,CAAAA,CAAiBC,EAAW,WAAA,CAA4B,CACnE,OAAOC,kBAAAA,CAAGC,iBAAiBF,CAAAA,CAAUD,CAAAA,CAASE,kBAAAA,CAAGE,YAAAA,CAAaC,OAAQ,IAAA,CACxE,CAEA,OAAOC,mBAAAA,CAAoBC,CAAAA,CAAwC,CACjE,IAAMC,EAAmB,EAAC,CAEpBC,CAAAA,CAAQ,CAACC,CAAAA,CAAeC,CAAAA,GAAAA,CAC5B,GAAIT,mBAAGU,oBAAAA,CAAqBF,CAAAA,CAAAA,EAASA,CAAAA,CAAK9D,IAAAA,CAAM,CAC9C,IAAMA,CAAAA,CAAO,KAAKiE,eAAAA,CAAgBH,CAAAA,CAAK9D,IAAI,CAAA,CAC3C,GAAIA,CAAAA,CAAM,CACR,IAAMkE,EAAU,CAAA,GAAIH,CAAAA,CAAa/D,CAAAA,CAAAA,CAC3BmE,CAAAA,CAAUD,CAAAA,CAAQE,IAAAA,CAAK,GAAA,CAAA,CAEvB,CAAEC,IAAAA,CAAAA,CAAAA,CAAMC,SAAAA,CAAAA,CAAS,CAAA,CAAKX,CAAAA,CAAWY,6BAAAA,CACrCT,CAAAA,CAAK9D,KAAKwE,QAAAA,EAAQ,CAAA,CAEpBZ,CAAAA,CAAIO,CAAAA,CAAAA,CAAW,CACbE,IAAAA,CAAMA,EAAO,CAAA,CACbI,MAAAA,CAAQH,CAAAA,CAAY,CACtB,EAEAT,CAAAA,CAAMC,CAAAA,CAAKY,WAAAA,CAAaR,CAAAA,EACxB,MACF,CACF,CAEIZ,kBAAAA,CAAGqB,yBAAAA,CAA0Bb,CAAAA,CAAAA,CAC/BA,CAAAA,CAAKc,WAAWC,OAAAA,CAASC,CAAAA,EAASjB,CAAAA,CAAMiB,CAAAA,CAAMf,CAAAA,CAAAA,CAAAA,CAI5CT,kBAAAA,CAAGyB,yBAAyBjB,CAAAA,CAAAA,CAC9BA,CAAAA,CAAKkB,QAAAA,CAASH,OAAAA,CAAQ,CAACI,CAAAA,CAAMC,CAAAA,GAAAA,CAC3B,IAAMhB,CAAAA,CAAU,CAAA,GAAIH,CAAAA,CAAapD,OAAOuE,CAAAA,CAAAA,CAAAA,CAClCf,CAAAA,CAAUD,CAAAA,CAAQE,KAAK,GAAA,CAAA,CAEvB,CAAEC,IAAAA,CAAAA,CAAAA,CAAMC,SAAAA,CAAAA,CAAS,CAAA,CAAKX,EAAWY,6BAAAA,CACrCU,CAAAA,CAAKT,QAAAA,EAAQ,CAAA,CAEfZ,CAAAA,CAAIO,CAAAA,CAAAA,CAAW,CACbE,IAAAA,CAAMA,CAAAA,CAAO,CAAA,CACbI,MAAAA,CAAQH,CAAAA,CAAY,CACtB,CAAA,CAEAT,CAAAA,CAAMoB,EAAMf,CAAAA,EACd,CAAA,CAAA,CAIEZ,mBAAG6B,kBAAAA,CAAmBrB,CAAAA,CAAAA,CACxBD,CAAAA,CAAMC,EAAKsB,UAAAA,CAAYrB,CAAAA,CAAAA,CAGrBT,kBAAAA,CAAG+B,qBAAAA,CAAsBvB,CAAAA,CAAAA,CACvBR,kBAAAA,CAAGgC,0BAA0BxB,CAAAA,CAAKsB,UAAU,CAAA,CAC9CvB,CAAAA,CAAMC,CAAAA,CAAKsB,UAAAA,CAAWA,UAAAA,CAAYrB,CAAAA,EAElCF,CAAAA,CAAMC,CAAAA,CAAKsB,UAAAA,CAAYrB,CAAAA,CAAAA,CAK3BT,kBAAAA,CAAGiC,YAAAA,CAAazB,CAAAA,CAAO0B,GAAU3B,CAAAA,CAAM2B,CAAAA,CAAOzB,CAAAA,CAAAA,EAChD,CAAA,CAGA,OADAF,CAAAA,CAAMF,EAAY,EAAE,CAAA,CACbC,CACT,CAEA,OAAeK,eAAAA,CAAgBjE,CAAAA,CAAsC,QAC/DsD,kBAAAA,CAAGmC,YAAAA,CAAazF,CAAAA,CAAAA,EAGhBsD,kBAAAA,CAAGoC,eAAAA,CAAgB1F,CAAAA,CAAAA,CAFdA,EAAK2F,IAAAA,CAKP,IACT,CACF,EC1DA,IAAMC,EAAwC,IAAIC,GAAAA,CAAY,CAC5D,WAAA,CACA,SACA,WAAA,CACA,OAAA,CACA,SAAA,CACA,QAAA,CACA,QACA,SAAA,CACA,UAAA,CACA,MAAA,CACA,QAAA,CACA,SAAA,CACA,aAAA,CACA,SAAA,CACA,QAAA,CACA,gBACA,iBAAA,CACD,CAAA,CAEKC,CAAAA,CAAuB,CAAA,GAAIF,CAAAA,CAAAA,CAAkBxB,IAAAA,CAAK,IAAA,CAAA,CAElD2B,EAAS,CACbC,kBAAAA,CAAGC,IAAAA,CACHD,kBAAAA,CAAGE,KAAAA,CACHF,kBAAAA,CAAGG,MAAAA,CACHH,kBAAAA,CAAGI,KACHJ,kBAAAA,CAAGK,OAAAA,CACHL,kBAAAA,CAAGM,aAAAA,CACHN,kBAAAA,CAAGO,UAAAA,CACHP,kBAAAA,CAAGQ,WAAAA,CACHR,mBAAGS,YAAAA,CACHT,kBAAAA,CAAGU,UAAAA,CAAAA,CAwJCC,CAAAA,CAAS,IA7If,KAAA,CACUC,MAAAA,CACAC,OAER,WAAA,EAAc,CACZ,IAAA,CAAKD,MAAAA,CAAS,IAAA,CAAKE,iBAAAA,EAAiB,CACpC,IAAA,CAAKD,OAAS,IAAIE,IACpB,CAEQD,iBAAAA,EAAkC,CACxC,IAAME,CAAAA,CAAWC,OAAAA,CAAQC,IAAIC,KAAAA,EAAS,EAAA,CAEhCC,CAAAA,CAAa,IAAA,CAAKC,gBAAgBL,CAAAA,CAAAA,CAIxC,OAAO,CACLM,QAHcF,CAAAA,GAAe,KAAA,EAASA,CAAAA,CAAWG,IAAAA,CAAO,CAAA,CAIxDC,KAAAA,CAAO,OAAA,CACPJ,UAAAA,CAAAA,EACAK,cAAAA,CAAgB,KAAA,CAChBC,WAAAA,CAAa,IACf,CACF,CAEOC,MAAAA,CACLH,CAAAA,CAAkB,QAClBJ,CAAAA,CAAkC,KAAA,CAClC,CACA,IAAA,CAAKR,MAAAA,CAAOU,OAAAA,CAAU,IAAA,CACtB,IAAA,CAAKV,OAAOY,KAAAA,CAAQA,CAAAA,CACpB,IAAA,CAAKZ,MAAAA,CAAOQ,UAAAA,CAAaA,CAAAA,GAAe,KAAA,CAAQ,KAAA,CAAQ,IAAIvB,GAAAA,CAAIuB,CAAAA,EAClE,CAEOQ,OAAAA,EAAU,CACf,IAAA,CAAKhB,MAAAA,CAAOU,QAAU,MACxB,CAEOO,SAAAA,EAAqB,CAC1B,OAAO,IAAA,CAAKjB,MAAAA,CAAOU,OACrB,CAEOQ,KAAAA,CAAMC,CAAAA,CAAsBjI,CAAAA,CAAAA,GAAoBkI,CAAAA,CAAiB,CACtE,IAAA,CAAKC,GAAAA,CAAI,OAAA,CAASF,EAAWjI,CAAAA,CAAAA,GAAYkI,CAAAA,EAC3C,CAEOE,IAAAA,CAAKH,CAAAA,CAAsBjI,CAAAA,CAAAA,GAAoBkI,CAAAA,CAAiB,CACrE,IAAA,CAAKC,GAAAA,CAAI,MAAA,CAAQF,CAAAA,CAAWjI,CAAAA,CAAAA,GAAYkI,CAAAA,EAC1C,CAEOG,IAAAA,CAAKJ,CAAAA,CAAsBjI,CAAAA,CAAAA,GAAoBkI,CAAAA,CAAiB,CACrE,IAAA,CAAKC,GAAAA,CAAI,MAAA,CAAQF,EAAWjI,CAAAA,CAAAA,GAAYkI,CAAAA,EAC1C,CAEOxG,KAAAA,CAAMuG,CAAAA,CAAsBjI,CAAAA,CAAAA,GAAoBkI,EAAiB,CACtE,IAAA,CAAKC,GAAAA,CAAI,OAAA,CAASF,EAAWjI,CAAAA,CAAAA,GAAYkI,CAAAA,EAC3C,CAEOI,IAAAA,CAAKC,CAAAA,CAAe,CACpB,IAAA,CAAKzB,MAAAA,CAAOU,OAAAA,EACjB,IAAA,CAAKT,MAAAA,CAAOyB,IAAID,CAAAA,CAAOE,WAAAA,CAAYnH,GAAAA,EAAG,EACxC,CAEOoH,OAAAA,CAAQH,CAAAA,CAAuB,CACpC,GAAI,CAAC,IAAA,CAAKzB,MAAAA,CAAOU,OAAAA,CAAS,OAAO,CAAA,CAEjC,IAAMmB,EAAQ,IAAA,CAAK5B,MAAAA,CAAO6B,GAAAA,CAAIL,CAAAA,EAC9B,GAAI,CAACI,CAAAA,CAAO,SAEZ,IAAME,CAAAA,CAAWJ,WAAAA,CAAYnH,GAAAA,EAAG,CAAKqH,CAAAA,CAErC,OADA,IAAA,CAAK5B,OAAO+B,MAAAA,CAAOP,CAAAA,CAAAA,CACZM,CACT,CAEOE,OAAAA,CACLR,CAAAA,CACAN,CAAAA,CACAjI,EACQ,CACR,IAAM6I,CAAAA,CAAW,IAAA,CAAKH,OAAAA,CAAQH,CAAAA,CAAAA,CAI9B,OAHIM,EAAW,CAAA,EAAK7I,CAAAA,EAClB,IAAA,CAAKgI,KAAAA,CAAMC,CAAAA,CAAW,CAAA,EAAGjI,CAAAA,CAAAA,EAAAA,EAAY6I,EAASG,OAAAA,CAAQ,CAAA,CAAA,CAAA,EAAA,CAAM,CAAA,CAEvDH,CACT,CAEQV,GAAAA,CACNc,EACAhB,CAAAA,CACAjI,CAAAA,CAAAA,GACGkI,CAAAA,CACH,CACA,GAAI,CAAC,IAAA,CAAKpB,MAAAA,CAAOU,SAEf,IAAA,CAAKV,MAAAA,CAAOQ,UAAAA,GAAe,KAAA,EAC3B,CAAC,IAAA,CAAKR,MAAAA,CAAOQ,UAAAA,CAAW4B,IAAIjB,CAAAA,CAAAA,CAHJ,OAO1B,IAAM3G,EAAM,IAAID,IAAAA,CACV8H,CAAAA,CAAU,CAAA,EAAG7H,EAAI8H,QAAAA,EAAQ,CAAGC,QAAAA,EAAQ,CAAGC,QAAAA,CAAS,CAAA,CAAG,GAAA,CAAA,IAAQhI,CAAAA,CAAIiI,UAAAA,EAAU,CAAGF,QAAAA,EAAQ,CAAGC,QAAAA,CAAS,CAAA,CAAG,GAAA,CAAA,CAAA,CAAA,EAAQhI,CAAAA,CAAIkI,UAAAA,EAAU,CAAGH,QAAAA,EAAQ,CAAGC,QAAAA,CAAS,CAAA,CAAG,GAAA,CAAA,CAAA,CAAA,CACnJG,CAAAA,CAAAA,CA7GV,SAA2BxB,CAAAA,CAAiB,CAC1C,IAAIyB,CAAAA,CAAO,EACX,IAAA,IAASC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAI1B,CAAAA,CAAU/F,MAAAA,CAAQyH,CAAAA,EAAAA,CACpCD,CAAAA,CAAOzB,EAAU2B,UAAAA,CAAWD,CAAAA,CAAAA,EAAAA,CAAOD,CAAAA,EAAQ,CAAA,EAAKA,CAAAA,CAAAA,CAElD,OAAOzD,CAAAA,CAAO4D,KAAKC,GAAAA,CAAIJ,CAAAA,CAAAA,CAAQzD,CAAAA,CAAO/D,MAAM,CAC9C,CAAA,EAuGsC+F,CAAAA,EAC5B8B,CAAAA,CAAS,CAAA,EAAG7D,kBAAAA,CAAG8D,IAAAA,CAAK,IAAIb,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,EAAKM,EAAQ,CAAA,WAAA,EAAcxB,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CACzE7G,CAAAA,CAAY,IAAA,CAAK0F,MAAAA,CAAOa,eAC1BzB,kBAAAA,CAAG8D,IAAAA,CAAK,CAAA,CAAA,EAAI1I,CAAAA,CAAI2I,WAAAA,EAAW,CAAA,EAAA,CAAM,CAAA,CACjC,GAEJC,OAAAA,CAAQxI,KAAAA,CAAM,CAAA,EAAGN,CAAAA,CAAAA,EAAY2I,CAAAA,CAAAA,CAAAA,EAAU/J,CAAAA,GAAS,GAAKkI,CAAAA,EACvD,CAEQX,eAAAA,CAAgBL,CAAAA,CAA0C,CAChE,GACEA,IAAa,GAAA,EACbA,CAAAA,GAAa,WAAA,EACbA,CAAAA,GAAa,aAAA,CAEb,OAAO,KAAA,CAGT,IAAMiD,EAAQjD,CAAAA,CAASkD,KAAAA,CAAM,GAAA,CAAA,CAAKtG,GAAAA,CAAKuG,CAAAA,EAAMA,CAAAA,CAAEC,IAAAA,EAAI,CAAA,CAC7ChD,CAAAA,CAAa,IAAIvB,GAAAA,CAEvB,IAAA,IAAWwE,CAAAA,IAAQJ,CAAAA,CAAO,CACxB,GAAI,CAACI,CAAAA,CAAKC,UAAAA,CAAW,YAAA,EAAe,SAEpC,IAAMC,CAAAA,CAAKF,CAAAA,CAAKG,MAAM,EAAA,CAAA,CAElB5E,CAAAA,CAAiBoD,GAAAA,CAAIuB,CAAAA,CAAAA,CACvBnD,CAAAA,CAAWqD,GAAAA,CAAIF,CAAAA,CAAAA,CACNA,CAAAA,CAAGvI,MAAAA,CAAS,CAAA,EACrBgI,OAAAA,CAAQ7B,IAAAA,CACN,CAAA,sCAAA,EAAyCoC,CAAAA,wBAClBzE,CAAAA,CAAAA,CADyB,EAItD,CAEA,OAAOsB,CACT,CACF,CAAA,CAIaU,EAAQ,CACnBC,CAAAA,CACAjI,CAAAA,CAAAA,GACGkI,CAAAA,GACArB,EAAOmB,KAAAA,CAAMC,CAAAA,CAAWjI,CAAAA,CAAAA,GAAYkI,CAAAA,CAAAA,CAE5BE,CAAAA,CAAO,CAClBH,CAAAA,CACAjI,CAAAA,CAAAA,GACGkI,CAAAA,GACArB,CAAAA,CAAOuB,IAAAA,CAAKH,EAAWjI,CAAAA,CAAAA,GAAYkI,CAAAA,CAAAA,CAE3BG,CAAAA,CAAO,CAClBJ,CAAAA,CACAjI,CAAAA,CAAAA,GACGkI,IACArB,CAAAA,CAAOwB,IAAAA,CAAKJ,CAAAA,CAAWjI,CAAAA,CAAAA,GAAYkI,CAAAA,CAAAA,CAE3BxG,CAAAA,CAAQ,CACnBuG,CAAAA,CACAjI,CAAAA,CAAAA,GACGkI,CAAAA,GACArB,CAAAA,CAAOnF,MAAMuG,CAAAA,CAAWjI,CAAAA,CAAAA,GAAYkI,CAAAA,EAE5BI,CAAAA,CAAQC,CAAAA,EAAkB1B,CAAAA,CAAOyB,IAAAA,CAAKC,CAAAA,CAAAA,CAEtCG,CAAAA,CAAWH,CAAAA,EAAkB1B,EAAO6B,OAAAA,CAAQH,CAAAA,CAAAA,CAE5CQ,CAAAA,CAAU,CACrBR,CAAAA,CACAN,CAAAA,CACAjI,CAAAA,GACG6G,EAAOkC,OAAAA,CAAQR,CAAAA,CAAON,CAAAA,CAAWjI,CAAAA,CAAAA,CAEzB4K,CAAAA,CAAc,CACzBlD,CAAAA,CACAJ,IACGT,CAAAA,CAAOgB,MAAAA,CAAOH,CAAAA,CAAOJ,CAAAA,CAAAA,CAEbuD,CAAAA,CAAe,IAAMhE,CAAAA,CAAOiB,SAAO,CAEnCgD,CAAAA,CAAiB,IAAMjE,CAAAA,CAAOkB,SAAAA,GClQpC,IAAMgD,CAAAA,CAAN,cAAiChL,KAAAA,CAAAA,IAAAA,CACtC,WAAA,CACEC,CAAAA,CACgBgL,CAAAA,CAChB,CACA,KAAA,CAAMhL,CAAAA,EAAAA,IAAAA,CAFUgL,IAAAA,CAAAA,CAAAA,CAGhB,IAAA,CAAK9K,IAAAA,CAAO,qBACd,CACF,EAEO,SAAS+K,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CAAkB,GAClBC,CAAAA,CAAyB,IAAIC,OAAAA,CAAS,CAEtC,GAAIH,CAAAA,GAAU,IAAA,CAAM,OAAO,MAAA,CAE3B,GAAIA,CAAAA,GAAUI,MAAAA,CACZ,MAAM,IAAIP,CAAAA,CAAmB,qCAAA,CAAuCI,CAAAA,CAAAA,CAGtE,OAAQ,OAAOD,CAAAA,EACb,KAAK,SAAA,CACH,OAAOA,CAAAA,CAAQ,MAAA,CAAS,OAAA,CAE1B,KAAK,QAAA,CACH,GAAI,CAACK,MAAAA,CAAOC,QAAAA,CAASN,CAAAA,CAAAA,CACnB,MAAM,IAAIH,CAAAA,CACR,CAAA,mBAAA,EAAsBlK,OAAOqK,CAAAA,CAAAA,CAAAA,2BAAAA,CAAAA,CAC7BC,CAAAA,CAAAA,CAGJ,OAAOtK,MAAAA,CAAOqK,CAAAA,EAEhB,KAAK,QAAA,CACH,OAAOO,IAAAA,CAAKC,SAAAA,CAAUR,CAAAA,CAAAA,CAExB,KAAK,WACH,MAAM,IAAIH,CAAAA,CACR,qCAAA,CACAI,CAAAA,CAEN,CAEA,GAAID,aAAiB7J,IAAAA,CACnB,OAAOoK,IAAAA,CAAKC,SAAAA,CAAUR,EAAMjB,WAAAA,EAAW,CAAA,CAGzC,GAAIiB,aAAiBS,MAAAA,CACnB,OAAOF,IAAAA,CAAKC,SAAAA,CAAUR,CAAAA,CAAM7B,QAAAA,EAAQ,CAAA,CAGtC,GAAI,OAAO6B,CAAAA,EAAU,QAAA,CAAU,CAAA,IAWzBU,CAAAA,CARJ,GAAIR,CAAAA,CAAMlC,GAAAA,CAFEgC,CAAAA,CAAAA,CAGV,MAAM,IAAIH,CAAAA,CACR,CAAA,qCAAA,EAAwCI,CAAAA,CAAM7G,IAAAA,CAAK,GAAA,GAAQ,QAAA,CAAA,CAAA,CAC3D6G,CAAAA,CAAAA,CAOJ,GAJAC,CAAAA,CAAMT,GAAAA,CARMO,CAAAA,EAYRW,KAAAA,CAAMC,OAAAA,CAAQZ,CAAAA,CAAAA,CAIhBU,CAAAA,CAAS,GAAA,CAHMV,CAAAA,CAAoBpH,GAAAA,CAAI,CAACiI,CAAAA,CAAGpC,CAAAA,GACzCsB,CAAAA,CAAgBc,CAAAA,CAAG,CAAA,GAAIZ,CAAAA,CAAOtK,MAAAA,CAAO8I,CAAAA,GAAKyB,CAAAA,CAAAA,CAAAA,CAEvB9G,IAAAA,CAAK,GAAA,CAAA,CAAO,GAAA,CAAA,KAC5B,CAEL,IAAM0H,CAAAA,CAAa9K,MAAAA,CAAO+K,IAAAA,CADXf,CAAAA,EACwBgB,IAAAA,EAAI,CACrCC,CAAAA,CAAkB,GAExB,IAAA,IAAWC,CAAAA,IAAKJ,CAAAA,CAAY,CAC1B,IAAMD,CAAAA,CALOb,CAAAA,CAKIkB,CAAAA,EACbL,CAAAA,GAAMT,MAAAA,EACVa,CAAAA,CAAMxK,IAAAA,CACJ8J,IAAAA,CAAKC,SAAAA,CAAUU,CAAAA,CAAAA,CAAK,IAAMnB,CAAAA,CAAgBc,CAAAA,CAAG,CAAA,GAAIZ,CAAAA,CAAOiB,CAAAA,CAAAA,CAAIhB,CAAAA,CAAAA,EAEhE,CAEAQ,CAAAA,CAAS,GAAA,CAAMO,CAAAA,CAAM7H,IAAAA,CAAK,GAAA,CAAA,CAAO,IACnC,CAGA,OADA8G,EAAMtC,MAAAA,CAjCMoC,CAAAA,CAAAA,CAkCLU,CACT,CAEA,OAAOH,IAAAA,CAAKC,SAAAA,CAAUR,CAAAA,CACxB,CC3FO,IAAMmB,CAAAA,CAAN,KAAMA,CACMC,KAAAA,CAEAC,aAAAA,CAEjB,YAAYjJ,CAAAA,CAAiB,CAC3B,IAAA,CAAKiJ,aAAAA,CAAgBjJ,CAAAA,CAAQpB,MAAAA,CAC7B,IAAA,CAAKoK,KAAAA,CAAQ,CAAC,CAAA,CAAA,CACd,IAAA,IAAS3C,CAAAA,CAAI,CAAA,CAAGA,EAAIrG,CAAAA,CAAQpB,MAAAA,CAAQyH,CAAAA,EAAAA,CAC9BrG,CAAAA,CAAQqG,CAAAA,CAAAA,GAAO;GAAM,IAAA,CAAK2C,KAAAA,CAAM3K,IAAAA,CAAKgI,CAAAA,CAAI,CAAA,EAEjD,CAEO6C,QAAAA,CAASC,CAAAA,CAAkD,CAChE,IAAMC,CAAAA,CAAU,IAAA,CAAKC,WAAAA,CAAYF,CAAAA,CAAAA,CAE7BG,CAAAA,CAAM,CAAA,CACNC,CAAAA,CAAO,IAAA,CAAKP,KAAAA,CAAMpK,MAAAA,CAAS,CAAA,CAE/B,KAAO0K,CAAAA,EAAOC,CAAAA,EAAM,CAClB,IAAMC,CAAAA,CAAOF,EAAMC,CAAAA,GAAU,CAAA,CACzB,IAAA,CAAKP,KAAAA,CAAMQ,CAAAA,CAAAA,EAAQJ,CAAAA,CAASE,CAAAA,CAAME,CAAAA,CAAM,CAAA,CACvCD,CAAAA,CAAOC,CAAAA,CAAM,EACpB,CAEA,IAAMvI,CAAAA,CAAOqI,CAAAA,CAAM,CAAA,CACbG,CAAAA,CAAY,IAAA,CAAKT,KAAAA,CAAM/H,CAAAA,CAAAA,CAC7B,OAAO,CACLA,IAAAA,CAAMA,CAAAA,CAAO,CAAA,CACbI,MAAAA,CAAQ+H,EAAUK,CAAAA,CAAY,CAChC,CACF,CAEQJ,WAAAA,CAAYF,CAAAA,CAAwB,CAAA,OACtC,CAAClB,MAAAA,CAAOC,QAAAA,CAASiB,CAAAA,CAAAA,EAAWA,CAAAA,CAAS,CAAA,CAAU,EAC/CA,CAAAA,CAAS,IAAA,CAAKF,aAAAA,CAAsB,IAAA,CAAKA,aAAAA,CACtCE,CACT,CACF,ECtCO,SAASO,EAAAA,CAAeC,CAAAA,CAAU,CAAA,OACnCA,CAAAA,CAAK,GAAA,CAAa,GAAGpD,IAAAA,CAAKqD,GAAAA,CAAI,CAAA,CAAGrD,IAAAA,CAAKsD,KAAAA,CAAMF,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CACzC,CAAA,EAAA,CAAIA,CAAAA,CAAK,GAAA,EAAMjE,OAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAChC,CAEO,SAASoE,EAAAA,CAAUC,CAAAA,CAAeC,CAAAA,CAAY,CACnD,OAAOD,CAAAA,GAAU,CAAA,CAAIC,CAAAA,CAAO,CAAA,EAAGA,CAAAA,CAAAA,CAAAA,CACjC","file":"index.cjs","sourcesContent":["export const PACKAGE_VERSION = 'v0.1.7-beta';\nexport const CACHE_VERSION = '1.0.0';\nexport const DEFAULT_INCLUDE_PATTERNS = [\n '**/*.ts',\n '**/*.html'\n];\n","export class AnalyzerError extends Error {\n code;\n constructor(r, e){\n super(r), this.code = e, this.name = 'AnalyzerError', 'function' == typeof Error.captureStackTrace && 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 && (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","export const RuleCategory = {\n Architecture: 'architecture',\n Performance: 'performance',\n SSR: 'ssr',\n Security: 'security',\n Accessibility: 'accessibility',\n Testing: 'testing',\n CodeSmell: 'code-smell',\n Reactivity: 'reactivity',\n BestPractice: 'best-practice'\n};\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]), KNOWN_NAMESPACE_LIST = [\n ...KNOWN_NAMESPACES\n].join(', '), 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: ${KNOWN_NAMESPACE_LIST}`);\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 contentLength;\n constructor(t){\n this.contentLength = t.length, this.lines = [\n 0\n ];\n for(let e = 0; e < t.length; e++)'\\n' === t[e] && this.lines.push(e + 1);\n }\n location(t) {\n let e = this.clampOffset(t), n = 0, s = this.lines.length - 1;\n for(; n <= s;){\n let t = n + s >>> 1;\n this.lines[t] <= e ? n = t + 1 : s = t - 1;\n }\n let i = n - 1, l = this.lines[i];\n return {\n line: i + 1,\n column: e - l + 1\n };\n }\n clampOffset(t) {\n return !Number.isFinite(t) || t < 0 ? 0 : t > this.contentLength ? this.contentLength : t;\n }\n}\n","export function formatDuration(t) {\n return t < 1000 ? `${Math.max(0, Math.round(t))}ms` : `${(t / 1000).toFixed(1)}s`;\n}\nexport function pluralise(t, r) {\n return 1 === t ? r : `${r}s`;\n}\n"]} | ||
| {"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","../src/utils/format.ts"],"names":["PACKAGE_VERSION","CACHE_VERSION","DEFAULT_INCLUDE_PATTERNS","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","Architecture","Performance","SSR","Security","Accessibility","Testing","CodeSmell","Reactivity","BestPractice","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","KNOWN_NAMESPACE_LIST","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","contentLength","location","offset","clamped","clampOffset","low","high","mid","lineStart","formatDuration","ms","max","round","pluralise","count","word"],"mappings":"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","file":"index.cjs","sourcesContent":["export const PACKAGE_VERSION = 'v0.1.8-beta';\nexport const CACHE_VERSION = '1.0.0';\nexport const DEFAULT_INCLUDE_PATTERNS = [\n '**/*.ts',\n '**/*.html'\n];\n","export class AnalyzerError extends Error {\n code;\n constructor(r, e){\n super(r), this.code = e, this.name = 'AnalyzerError', 'function' == typeof Error.captureStackTrace && 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 && (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","export const RuleCategory = {\n Architecture: 'architecture',\n Performance: 'performance',\n SSR: 'ssr',\n Security: 'security',\n Accessibility: 'accessibility',\n Testing: 'testing',\n CodeSmell: 'code-smell',\n Reactivity: 'reactivity',\n BestPractice: 'best-practice'\n};\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]), KNOWN_NAMESPACE_LIST = [\n ...KNOWN_NAMESPACES\n].join(', '), 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: ${KNOWN_NAMESPACE_LIST}`);\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 contentLength;\n constructor(t){\n this.contentLength = t.length, this.lines = [\n 0\n ];\n for(let e = 0; e < t.length; e++)'\\n' === t[e] && this.lines.push(e + 1);\n }\n location(t) {\n let e = this.clampOffset(t), n = 0, s = this.lines.length - 1;\n for(; n <= s;){\n let t = n + s >>> 1;\n this.lines[t] <= e ? n = t + 1 : s = t - 1;\n }\n let i = n - 1, l = this.lines[i];\n return {\n line: i + 1,\n column: e - l + 1\n };\n }\n clampOffset(t) {\n return !Number.isFinite(t) || t < 0 ? 0 : t > this.contentLength ? this.contentLength : t;\n }\n}\n","export function formatDuration(t) {\n return t < 1000 ? `${Math.max(0, Math.round(t))}ms` : `${(t / 1000).toFixed(1)}s`;\n}\nexport function pluralise(t, r) {\n return 1 === t ? r : `${r}s`;\n}\n"]} |
+1
-1
@@ -5,3 +5,3 @@ import * as typescript from 'typescript'; | ||
| declare const PACKAGE_VERSION = "v0.1.7-beta"; | ||
| declare const PACKAGE_VERSION = "v0.1.8-beta"; | ||
| declare const CACHE_VERSION = "1.0.0"; | ||
@@ -8,0 +8,0 @@ declare const DEFAULT_INCLUDE_PATTERNS: readonly ["**/*.ts", "**/*.html"]; |
+1
-1
@@ -5,3 +5,3 @@ import * as typescript from 'typescript'; | ||
| declare const PACKAGE_VERSION = "v0.1.7-beta"; | ||
| declare const PACKAGE_VERSION = "v0.1.8-beta"; | ||
| declare const CACHE_VERSION = "1.0.0"; | ||
@@ -8,0 +8,0 @@ declare const DEFAULT_INCLUDE_PATTERNS: readonly ["**/*.ts", "**/*.html"]; |
+1
-1
@@ -1,4 +0,4 @@ | ||
| import c from'typescript';import l from'picocolors';var A="v0.1.7-beta",P="1.0.0",v=["**/*.ts","**/*.html"];var f=class extends Error{code;constructor(e,r){super(e),this.code=r,this.name="AnalyzerError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,this.constructor);}},x=class extends f{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},E=class extends f{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},S=class extends f{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},b=class extends f{ruleName;filePath;constructor(e,r,i){let n=i instanceof Error?i.message:String(i);super(`Rule "${e}" crashed on ${r}: ${n}`,"RULE_EXECUTION_ERROR"),this.ruleName=e,this.filePath=r,this.name="RuleExecutionError",i instanceof Error&&(this.stack=`${this.stack} | ||
| import c from'typescript';import l from'picocolors';var A="v0.1.8-beta",P="1.0.0",v=["**/*.ts","**/*.html"];var f=class extends Error{code;constructor(e,r){super(e),this.code=r,this.name="AnalyzerError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,this.constructor);}},x=class extends f{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},E=class extends f{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},S=class extends f{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},b=class extends f{ruleName;filePath;constructor(e,r,i){let n=i instanceof Error?i.message:String(i);super(`Rule "${e}" crashed on ${r}: ${n}`,"RULE_EXECUTION_ERROR"),this.ruleName=e,this.filePath=r,this.name="RuleExecutionError",i instanceof Error&&(this.stack=`${this.stack} | ||
| Caused by: ${i.stack}`);}};function _(t,e){return Object.freeze({type:t,timestamp:Date.now(),...e})}var y=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 I={Architecture:"architecture",Performance:"performance",SSR:"ssr",Security:"security",Accessibility:"accessibility",Testing:"testing",CodeSmell:"code-smell",Reactivity:"reactivity",BestPractice:"best-practice"},T=t=>({ok:true,data:t}),k=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={},i=(n,s)=>{if(c.isPropertyAssignment(n)&&n.name){let o=this.getPropertyName(n.name);if(o){let a=[...s,o],g=a.join("."),{line:u,character:h}=e.getLineAndCharacterOfPosition(n.name.getStart());r[g]={line:u+1,column:h+1},i(n.initializer,a);return}}c.isObjectLiteralExpression(n)?n.properties.forEach(o=>i(o,s)):c.isArrayLiteralExpression(n)?n.elements.forEach((o,a)=>{let g=[...s,String(a)],u=g.join("."),{line:h,character:d}=e.getLineAndCharacterOfPosition(o.getStart());r[u]={line:h+1,column:d+1},i(o,g);}):c.isExportAssignment(n)?i(n.expression,s):c.isExpressionStatement(n)?c.isParenthesizedExpression(n.expression)?i(n.expression.expression,s):i(n.expression,s):c.forEachChild(n,o=>i(o,s));};return i(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"]),C=[...$].join(", "),O=[l.cyan,l.green,l.yellow,l.blue,l.magenta,l.magentaBright,l.cyanBright,l.greenBright,l.yellowBright,l.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 i=this.timeEnd(t);return i>0&&r&&this.debug(e,`${r}: ${i.toFixed(1)}ms`),i}log(t,e,r,...i){if(!this.config.enabled||this.config.namespaces!=="all"&&!this.config.namespaces.has(e))return;let n=new Date,s=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}:${n.getSeconds().toString().padStart(2,"0")}`,o=(function(u){let h=0;for(let d=0;d<u.length;d++)h=u.charCodeAt(d)+((h<<5)-h);return O[Math.abs(h)%O.length]})(e),a=`${l.gray(`[${s}]`)} ${o(`[ngcompass:${e}]`)}`,g=this.config.showTimestamps?l.gray(`[${n.toISOString()}] `):"";console.error(`${g}${a} ${r}`,...i);}parseNamespaces(t){if(t==="*"||t==="ngcompass"||t==="ngcompass:*")return "all";let e=t.split(",").map(i=>i.trim()),r=new Set;for(let i of e){if(!i.startsWith("ngcompass:"))continue;let n=i.slice(10);$.has(n)?r.add(n):n.length>0&&console.warn(`[ngcompass] Unknown debug namespace: "${n}". Valid namespaces: ${C}`);}return r}},B=(t,e,...r)=>p.debug(t,e,...r),U=(t,e,...r)=>p.info(t,e,...r),J=(t,e,...r)=>p.warn(t,e,...r),V=(t,e,...r)=>p.error(t,e,...r),W=t=>p.time(t),G=t=>p.timeEnd(t),H=(t,e,r)=>p.timeLog(t,e,r),K=(t,e)=>p.enable(t,e),X=()=>p.disable(),q=()=>p.isEnabled();var m=class extends Error{path;constructor(e,r){super(e),this.path=r,this.name="SerializationError";}};function R(t,e=[],r=new WeakSet){if(t===null)return "null";if(t===void 0)throw new m("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 m(`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 m("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 i;if(r.has(t))throw new m(`Circular reference detected at path: ${e.join(".")||"(root)"}`,e);if(r.add(t),Array.isArray(t))i="["+t.map((n,s)=>R(n,[...e,String(s)],r)).join(",")+"]";else {let n=Object.keys(t).sort(),s=[];for(let o of n){let a=t[o];a!==void 0&&s.push(JSON.stringify(o)+":"+R(a,[...e,o],r));}i="{"+s.join(",")+"}";}return r.delete(t),i}return JSON.stringify(t)}var N=class{lines;contentLength;constructor(e){this.contentLength=e.length,this.lines=[0];for(let r=0;r<e.length;r++)e[r]===` | ||
| `&&this.lines.push(r+1);}location(e){let r=this.clampOffset(e),i=0,n=this.lines.length-1;for(;i<=n;){let a=i+n>>>1;this.lines[a]<=r?i=a+1:n=a-1;}let s=i-1,o=this.lines[s];return {line:s+1,column:r-o+1}}clampOffset(e){return !Number.isFinite(e)||e<0?0:e>this.contentLength?this.contentLength:e}};function te(t){return t<1e3?`${Math.max(0,Math.round(t))}ms`:`${(t/1e3).toFixed(1)}s`}function re(t,e){return t===1?e:`${e}s`}export{w as ASTUtils,f as AnalyzerError,P as CACHE_VERSION,x as ConfigurationError,v as DEFAULT_INCLUDE_PATTERNS,k as Err,y as InfrastructureErrorCollector,N as Locator,T as Ok,A as PACKAGE_VERSION,E as ParseError,I as RuleCategory,S as RuleError,b as RuleExecutionError,m as SerializationError,_ as createInfrastructureError,B as debug,X as disableDebug,K as enableDebug,V as error,te as formatDuration,U as info,q as isDebugEnabled,re as pluralise,R as stableSerialize,W as time,G as timeEnd,H as timeLog,J as warn};//# sourceMappingURL=index.js.map | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,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","../src/utils/format.ts"],"names":["PACKAGE_VERSION","CACHE_VERSION","DEFAULT_INCLUDE_PATTERNS","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","Architecture","Performance","SSR","Security","Accessibility","Testing","CodeSmell","Reactivity","BestPractice","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","KNOWN_NAMESPACE_LIST","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","contentLength","location","offset","clamped","clampOffset","low","high","mid","lineStart","formatDuration","ms","max","round","pluralise","count","word"],"mappings":"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","file":"index.js","sourcesContent":["export const PACKAGE_VERSION = 'v0.1.7-beta';\nexport const CACHE_VERSION = '1.0.0';\nexport const DEFAULT_INCLUDE_PATTERNS = [\n '**/*.ts',\n '**/*.html'\n];\n","export class AnalyzerError extends Error {\n code;\n constructor(r, e){\n super(r), this.code = e, this.name = 'AnalyzerError', 'function' == typeof Error.captureStackTrace && 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 && (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","export const RuleCategory = {\n Architecture: 'architecture',\n Performance: 'performance',\n SSR: 'ssr',\n Security: 'security',\n Accessibility: 'accessibility',\n Testing: 'testing',\n CodeSmell: 'code-smell',\n Reactivity: 'reactivity',\n BestPractice: 'best-practice'\n};\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]), KNOWN_NAMESPACE_LIST = [\n ...KNOWN_NAMESPACES\n].join(', '), 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: ${KNOWN_NAMESPACE_LIST}`);\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 contentLength;\n constructor(t){\n this.contentLength = t.length, this.lines = [\n 0\n ];\n for(let e = 0; e < t.length; e++)'\\n' === t[e] && this.lines.push(e + 1);\n }\n location(t) {\n let e = this.clampOffset(t), n = 0, s = this.lines.length - 1;\n for(; n <= s;){\n let t = n + s >>> 1;\n this.lines[t] <= e ? n = t + 1 : s = t - 1;\n }\n let i = n - 1, l = this.lines[i];\n return {\n line: i + 1,\n column: e - l + 1\n };\n }\n clampOffset(t) {\n return !Number.isFinite(t) || t < 0 ? 0 : t > this.contentLength ? this.contentLength : t;\n }\n}\n","export function formatDuration(t) {\n return t < 1000 ? `${Math.max(0, Math.round(t))}ms` : `${(t / 1000).toFixed(1)}s`;\n}\nexport function pluralise(t, r) {\n return 1 === t ? r : `${r}s`;\n}\n"]} | ||
| {"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","../src/utils/format.ts"],"names":["PACKAGE_VERSION","CACHE_VERSION","DEFAULT_INCLUDE_PATTERNS","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","Architecture","Performance","SSR","Security","Accessibility","Testing","CodeSmell","Reactivity","BestPractice","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","KNOWN_NAMESPACE_LIST","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","contentLength","location","offset","clamped","clampOffset","low","high","mid","lineStart","formatDuration","ms","max","round","pluralise","count","word"],"mappings":"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","file":"index.js","sourcesContent":["export const PACKAGE_VERSION = 'v0.1.8-beta';\nexport const CACHE_VERSION = '1.0.0';\nexport const DEFAULT_INCLUDE_PATTERNS = [\n '**/*.ts',\n '**/*.html'\n];\n","export class AnalyzerError extends Error {\n code;\n constructor(r, e){\n super(r), this.code = e, this.name = 'AnalyzerError', 'function' == typeof Error.captureStackTrace && 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 && (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","export const RuleCategory = {\n Architecture: 'architecture',\n Performance: 'performance',\n SSR: 'ssr',\n Security: 'security',\n Accessibility: 'accessibility',\n Testing: 'testing',\n CodeSmell: 'code-smell',\n Reactivity: 'reactivity',\n BestPractice: 'best-practice'\n};\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]), KNOWN_NAMESPACE_LIST = [\n ...KNOWN_NAMESPACES\n].join(', '), 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: ${KNOWN_NAMESPACE_LIST}`);\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 contentLength;\n constructor(t){\n this.contentLength = t.length, this.lines = [\n 0\n ];\n for(let e = 0; e < t.length; e++)'\\n' === t[e] && this.lines.push(e + 1);\n }\n location(t) {\n let e = this.clampOffset(t), n = 0, s = this.lines.length - 1;\n for(; n <= s;){\n let t = n + s >>> 1;\n this.lines[t] <= e ? n = t + 1 : s = t - 1;\n }\n let i = n - 1, l = this.lines[i];\n return {\n line: i + 1,\n column: e - l + 1\n };\n }\n clampOffset(t) {\n return !Number.isFinite(t) || t < 0 ? 0 : t > this.contentLength ? this.contentLength : t;\n }\n}\n","export function formatDuration(t) {\n return t < 1000 ? `${Math.max(0, Math.round(t))}ms` : `${(t / 1000).toFixed(1)}s`;\n}\nexport function pluralise(t, r) {\n return 1 === t ? r : `${r}s`;\n}\n"]} |
+1
-1
| { | ||
| "name": "@ngcompass/common", | ||
| "version": "0.1.7-beta", | ||
| "version": "0.1.8-beta", | ||
| "description": "Common types and utilities for Angular Analyzer", | ||
@@ -5,0 +5,0 @@ "sideEffects": false, |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
0
-100%