🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@ngcompass/common

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ngcompass/common - npm Package Compare versions

Comparing version
0.2.0-beta
to
0.2.1-beta
+1
-1
dist/index.cjs

@@ -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.2.0-beta",P="1.0.0",L=["**/*.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);}},E=class extends f{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},S=class extends f{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},b=class extends f{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},y=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.2.1-beta",P="1.0.0",L=["**/*.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);}},E=class extends f{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},S=class extends f{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},b=class extends f{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},y=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 F(t,e){return Object.freeze({type:t,timestamp:Date.now(),...e})}var w=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 T={Architecture:"architecture",Performance:"performance",SSR:"ssr",Security:"security",Accessibility:"accessibility",Testing:"testing",CodeSmell:"code-smell",Reactivity:"reactivity",BestPractice:"best-practice"},k=t=>({ok:true,data:t}),j=t=>({ok:false,error:t});var O=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 x,$=new Set(["discovery","loader","validator","cache","scanner","parser","rules","workers","reporter","init","config","planner","incremental","dry-run","engine","plugin-loader","env-fingerprint"]),v=[...$].join(", "),R=[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 R[Math.abs(h)%R.length]})(e),a=`${l__default.default.gray(`[${s}]`)} ${o(`[ngcompass:${e}]`)}`,g=this.config.showTimestamps?l__default.default.gray(`[${n.toISOString()}] `):"";x?.clear(),console.error(`${g}${a} ${r}`,...i),x?.redraw();}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: ${v}`);}return r}},U=(t,e,...r)=>p.debug(t,e,...r),J=(t,e,...r)=>p.info(t,e,...r),V=(t,e,...r)=>p.warn(t,e,...r),W=(t,e,...r)=>p.error(t,e,...r),G=t=>p.time(t),H=t=>p.timeEnd(t),K=(t,e,r)=>p.timeLog(t,e,r),X=(t,e)=>p.enable(t,e),q=()=>p.disable(),Q=()=>p.isEnabled(),Y=t=>{x=t;};var m=class extends Error{path;constructor(e,r){super(e),this.path=r,this.name="SerializationError";}};function N(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)=>N(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)+":"+N(a,[...e,o],r));}i="{"+s.join(",")+"}";}return r.delete(t),i}return JSON.stringify(t)}var C=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 ne(t){return t<1e3?`${Math.max(0,Math.round(t))}ms`:`${(t/1e3).toFixed(1)}s`}function ie(t,e){return t===1?e:`${e}s`}exports.ASTUtils=O;exports.AnalyzerError=f;exports.CACHE_VERSION=P;exports.ConfigurationError=E;exports.DEFAULT_INCLUDE_PATTERNS=L;exports.Err=j;exports.InfrastructureErrorCollector=w;exports.Locator=C;exports.Ok=k;exports.PACKAGE_VERSION=A;exports.ParseError=S;exports.RuleCategory=T;exports.RuleError=b;exports.RuleExecutionError=y;exports.SerializationError=m;exports.createInfrastructureError=F;exports.debug=U;exports.disableDebug=q;exports.enableDebug=X;exports.error=W;exports.formatDuration=ne;exports.info=J;exports.isDebugEnabled=Q;exports.pluralise=ie;exports.setLiveRedraw=Y;exports.stableSerialize=N;exports.time=G;exports.timeEnd=H;exports.timeLog=K;exports.warn=V;//# 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","liveRedraw","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","clear","console","redraw","parts","split","s","trim","part","startsWith","ns","slice","add","enableDebug","disableDebug","isDebugEnabled","setLiveRedraw","hook","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.2.0-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","let liveRedraw;\nimport 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, ...r) {\n this.log('debug', e, t, ...r);\n }\n info(e, t, ...r) {\n this.log('info', e, t, ...r);\n }\n warn(e, t, ...r) {\n this.log('warn', e, t, ...r);\n }\n error(e, t, ...r) {\n this.log('error', e, t, ...r);\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 r = performance.now() - t;\n return this.timers.delete(e), r;\n }\n timeLog(e, t, r) {\n let n = this.timeEnd(e);\n return n > 0 && r && this.debug(t, `${r}: ${n.toFixed(1)}ms`), n;\n }\n log(t, r, n, ...i) {\n if (!this.config.enabled || 'all' !== this.config.namespaces && !this.config.namespaces.has(r)) return;\n let o = new Date(), s = `${o.getHours().toString().padStart(2, '0')}:${o.getMinutes().toString().padStart(2, '0')}:${o.getSeconds().toString().padStart(2, '0')}`, a = function(e) {\n let t = 0;\n for(let r = 0; r < e.length; r++)t = e.charCodeAt(r) + ((t << 5) - t);\n return COLORS[Math.abs(t) % COLORS.length];\n }(r), l = `${e.gray(`[${s}]`)} ${a(`[ngcompass:${r}]`)}`, g = this.config.showTimestamps ? e.gray(`[${o.toISOString()}] `) : '';\n liveRedraw?.clear(), console.error(`${g}${l} ${n}`, ...i), liveRedraw?.redraw();\n }\n parseNamespaces(e) {\n if ('*' === e || 'ngcompass' === e || 'ngcompass:*' === e) return 'all';\n let t = e.split(',').map((e)=>e.trim()), r = 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) ? r.add(t) : t.length > 0 && console.warn(`[ngcompass] Unknown debug namespace: \"${t}\". Valid namespaces: ${KNOWN_NAMESPACE_LIST}`);\n }\n return r;\n }\n}();\nexport const debug = (e, t, ...r)=>logger.debug(e, t, ...r);\nexport const info = (e, t, ...r)=>logger.info(e, t, ...r);\nexport const warn = (e, t, ...r)=>logger.warn(e, t, ...r);\nexport const error = (e, t, ...r)=>logger.error(e, t, ...r);\nexport const time = (e)=>logger.time(e);\nexport const timeEnd = (e)=>logger.timeEnd(e);\nexport const timeLog = (e, t, r)=>logger.timeLog(e, t, r);\nexport const enableDebug = (e, t)=>logger.enable(e, t);\nexport const disableDebug = ()=>logger.disable();\nexport const isDebugEnabled = ()=>logger.isEnabled();\nexport const setLiveRedraw = (e)=>{\n liveRedraw = e;\n};\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","liveRedraw","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","clear","console","redraw","parts","split","s","trim","part","startsWith","ns","slice","add","enableDebug","disableDebug","isDebugEnabled","setLiveRedraw","hook","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.2.1-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","let liveRedraw;\nimport 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, ...r) {\n this.log('debug', e, t, ...r);\n }\n info(e, t, ...r) {\n this.log('info', e, t, ...r);\n }\n warn(e, t, ...r) {\n this.log('warn', e, t, ...r);\n }\n error(e, t, ...r) {\n this.log('error', e, t, ...r);\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 r = performance.now() - t;\n return this.timers.delete(e), r;\n }\n timeLog(e, t, r) {\n let n = this.timeEnd(e);\n return n > 0 && r && this.debug(t, `${r}: ${n.toFixed(1)}ms`), n;\n }\n log(t, r, n, ...i) {\n if (!this.config.enabled || 'all' !== this.config.namespaces && !this.config.namespaces.has(r)) return;\n let o = new Date(), s = `${o.getHours().toString().padStart(2, '0')}:${o.getMinutes().toString().padStart(2, '0')}:${o.getSeconds().toString().padStart(2, '0')}`, a = function(e) {\n let t = 0;\n for(let r = 0; r < e.length; r++)t = e.charCodeAt(r) + ((t << 5) - t);\n return COLORS[Math.abs(t) % COLORS.length];\n }(r), l = `${e.gray(`[${s}]`)} ${a(`[ngcompass:${r}]`)}`, g = this.config.showTimestamps ? e.gray(`[${o.toISOString()}] `) : '';\n liveRedraw?.clear(), console.error(`${g}${l} ${n}`, ...i), liveRedraw?.redraw();\n }\n parseNamespaces(e) {\n if ('*' === e || 'ngcompass' === e || 'ngcompass:*' === e) return 'all';\n let t = e.split(',').map((e)=>e.trim()), r = 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) ? r.add(t) : t.length > 0 && console.warn(`[ngcompass] Unknown debug namespace: \"${t}\". Valid namespaces: ${KNOWN_NAMESPACE_LIST}`);\n }\n return r;\n }\n}();\nexport const debug = (e, t, ...r)=>logger.debug(e, t, ...r);\nexport const info = (e, t, ...r)=>logger.info(e, t, ...r);\nexport const warn = (e, t, ...r)=>logger.warn(e, t, ...r);\nexport const error = (e, t, ...r)=>logger.error(e, t, ...r);\nexport const time = (e)=>logger.time(e);\nexport const timeEnd = (e)=>logger.timeEnd(e);\nexport const timeLog = (e, t, r)=>logger.timeLog(e, t, r);\nexport const enableDebug = (e, t)=>logger.enable(e, t);\nexport const disableDebug = ()=>logger.disable();\nexport const isDebugEnabled = ()=>logger.isEnabled();\nexport const setLiveRedraw = (e)=>{\n liveRedraw = e;\n};\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"]}

@@ -5,3 +5,3 @@ import * as typescript from 'typescript';

declare const PACKAGE_VERSION = "v0.2.0-beta";
declare const PACKAGE_VERSION = "v0.2.1-beta";
declare const CACHE_VERSION = "1.0.0";

@@ -125,3 +125,3 @@ declare const DEFAULT_INCLUDE_PATTERNS: readonly ["**/*.ts", "**/*.html"];

}
type BuiltinPreset = 'recommended' | 'strict' | 'performance' | 'reactivity' | 'security' | 'ssr' | 'all';
type BuiltinPreset = 'recommended' | 'strict' | 'performance' | 'reactivity' | 'security' | 'ssr' | 'zoneless' | 'all';
type PresetReference = string;

@@ -128,0 +128,0 @@ interface RuleResolutionResult {

@@ -5,3 +5,3 @@ import * as typescript from 'typescript';

declare const PACKAGE_VERSION = "v0.2.0-beta";
declare const PACKAGE_VERSION = "v0.2.1-beta";
declare const CACHE_VERSION = "1.0.0";

@@ -125,3 +125,3 @@ declare const DEFAULT_INCLUDE_PATTERNS: readonly ["**/*.ts", "**/*.html"];

}
type BuiltinPreset = 'recommended' | 'strict' | 'performance' | 'reactivity' | 'security' | 'ssr' | 'all';
type BuiltinPreset = 'recommended' | 'strict' | 'performance' | 'reactivity' | 'security' | 'ssr' | 'zoneless' | 'all';
type PresetReference = string;

@@ -128,0 +128,0 @@ interface RuleResolutionResult {

@@ -1,4 +0,4 @@

import c from'typescript';import l from'picocolors';var A="v0.2.0-beta",P="1.0.0",L=["**/*.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);}},E=class extends f{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},S=class extends f{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},b=class extends f{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},y=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.2.1-beta",P="1.0.0",L=["**/*.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);}},E=class extends f{constructor(e){super(e,"CONFIG_ERROR"),this.name="ConfigurationError";}},S=class extends f{filePath;constructor(e,r){super(`Parse error in ${r}: ${e}`,"PARSE_ERROR"),this.filePath=r,this.name="ParseError";}},b=class extends f{ruleId;constructor(e,r){super(`Error in rule '${r}': ${e}`,"RULE_ERROR"),this.ruleId=r,this.name="RuleError";}},y=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 F(t,e){return Object.freeze({type:t,timestamp:Date.now(),...e})}var w=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 T={Architecture:"architecture",Performance:"performance",SSR:"ssr",Security:"security",Accessibility:"accessibility",Testing:"testing",CodeSmell:"code-smell",Reactivity:"reactivity",BestPractice:"best-practice"},k=t=>({ok:true,data:t}),j=t=>({ok:false,error:t});var O=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 x,$=new Set(["discovery","loader","validator","cache","scanner","parser","rules","workers","reporter","init","config","planner","incremental","dry-run","engine","plugin-loader","env-fingerprint"]),v=[...$].join(", "),R=[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 R[Math.abs(h)%R.length]})(e),a=`${l.gray(`[${s}]`)} ${o(`[ngcompass:${e}]`)}`,g=this.config.showTimestamps?l.gray(`[${n.toISOString()}] `):"";x?.clear(),console.error(`${g}${a} ${r}`,...i),x?.redraw();}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: ${v}`);}return r}},U=(t,e,...r)=>p.debug(t,e,...r),J=(t,e,...r)=>p.info(t,e,...r),V=(t,e,...r)=>p.warn(t,e,...r),W=(t,e,...r)=>p.error(t,e,...r),G=t=>p.time(t),H=t=>p.timeEnd(t),K=(t,e,r)=>p.timeLog(t,e,r),X=(t,e)=>p.enable(t,e),q=()=>p.disable(),Q=()=>p.isEnabled(),Y=t=>{x=t;};var m=class extends Error{path;constructor(e,r){super(e),this.path=r,this.name="SerializationError";}};function N(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)=>N(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)+":"+N(a,[...e,o],r));}i="{"+s.join(",")+"}";}return r.delete(t),i}return JSON.stringify(t)}var C=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 ne(t){return t<1e3?`${Math.max(0,Math.round(t))}ms`:`${(t/1e3).toFixed(1)}s`}function ie(t,e){return t===1?e:`${e}s`}export{O as ASTUtils,f as AnalyzerError,P as CACHE_VERSION,E as ConfigurationError,L as DEFAULT_INCLUDE_PATTERNS,j as Err,w as InfrastructureErrorCollector,C as Locator,k as Ok,A as PACKAGE_VERSION,S as ParseError,T as RuleCategory,b as RuleError,y as RuleExecutionError,m as SerializationError,F as createInfrastructureError,U as debug,q as disableDebug,X as enableDebug,W as error,ne as formatDuration,J as info,Q as isDebugEnabled,ie as pluralise,Y as setLiveRedraw,N as stableSerialize,G as time,H as timeEnd,K as timeLog,V 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","liveRedraw","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","clear","console","redraw","parts","split","s","trim","part","startsWith","ns","slice","add","enableDebug","disableDebug","isDebugEnabled","setLiveRedraw","hook","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.2.0-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","let liveRedraw;\nimport 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, ...r) {\n this.log('debug', e, t, ...r);\n }\n info(e, t, ...r) {\n this.log('info', e, t, ...r);\n }\n warn(e, t, ...r) {\n this.log('warn', e, t, ...r);\n }\n error(e, t, ...r) {\n this.log('error', e, t, ...r);\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 r = performance.now() - t;\n return this.timers.delete(e), r;\n }\n timeLog(e, t, r) {\n let n = this.timeEnd(e);\n return n > 0 && r && this.debug(t, `${r}: ${n.toFixed(1)}ms`), n;\n }\n log(t, r, n, ...i) {\n if (!this.config.enabled || 'all' !== this.config.namespaces && !this.config.namespaces.has(r)) return;\n let o = new Date(), s = `${o.getHours().toString().padStart(2, '0')}:${o.getMinutes().toString().padStart(2, '0')}:${o.getSeconds().toString().padStart(2, '0')}`, a = function(e) {\n let t = 0;\n for(let r = 0; r < e.length; r++)t = e.charCodeAt(r) + ((t << 5) - t);\n return COLORS[Math.abs(t) % COLORS.length];\n }(r), l = `${e.gray(`[${s}]`)} ${a(`[ngcompass:${r}]`)}`, g = this.config.showTimestamps ? e.gray(`[${o.toISOString()}] `) : '';\n liveRedraw?.clear(), console.error(`${g}${l} ${n}`, ...i), liveRedraw?.redraw();\n }\n parseNamespaces(e) {\n if ('*' === e || 'ngcompass' === e || 'ngcompass:*' === e) return 'all';\n let t = e.split(',').map((e)=>e.trim()), r = 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) ? r.add(t) : t.length > 0 && console.warn(`[ngcompass] Unknown debug namespace: \"${t}\". Valid namespaces: ${KNOWN_NAMESPACE_LIST}`);\n }\n return r;\n }\n}();\nexport const debug = (e, t, ...r)=>logger.debug(e, t, ...r);\nexport const info = (e, t, ...r)=>logger.info(e, t, ...r);\nexport const warn = (e, t, ...r)=>logger.warn(e, t, ...r);\nexport const error = (e, t, ...r)=>logger.error(e, t, ...r);\nexport const time = (e)=>logger.time(e);\nexport const timeEnd = (e)=>logger.timeEnd(e);\nexport const timeLog = (e, t, r)=>logger.timeLog(e, t, r);\nexport const enableDebug = (e, t)=>logger.enable(e, t);\nexport const disableDebug = ()=>logger.disable();\nexport const isDebugEnabled = ()=>logger.isEnabled();\nexport const setLiveRedraw = (e)=>{\n liveRedraw = e;\n};\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","liveRedraw","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","clear","console","redraw","parts","split","s","trim","part","startsWith","ns","slice","add","enableDebug","disableDebug","isDebugEnabled","setLiveRedraw","hook","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.2.1-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","let liveRedraw;\nimport 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, ...r) {\n this.log('debug', e, t, ...r);\n }\n info(e, t, ...r) {\n this.log('info', e, t, ...r);\n }\n warn(e, t, ...r) {\n this.log('warn', e, t, ...r);\n }\n error(e, t, ...r) {\n this.log('error', e, t, ...r);\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 r = performance.now() - t;\n return this.timers.delete(e), r;\n }\n timeLog(e, t, r) {\n let n = this.timeEnd(e);\n return n > 0 && r && this.debug(t, `${r}: ${n.toFixed(1)}ms`), n;\n }\n log(t, r, n, ...i) {\n if (!this.config.enabled || 'all' !== this.config.namespaces && !this.config.namespaces.has(r)) return;\n let o = new Date(), s = `${o.getHours().toString().padStart(2, '0')}:${o.getMinutes().toString().padStart(2, '0')}:${o.getSeconds().toString().padStart(2, '0')}`, a = function(e) {\n let t = 0;\n for(let r = 0; r < e.length; r++)t = e.charCodeAt(r) + ((t << 5) - t);\n return COLORS[Math.abs(t) % COLORS.length];\n }(r), l = `${e.gray(`[${s}]`)} ${a(`[ngcompass:${r}]`)}`, g = this.config.showTimestamps ? e.gray(`[${o.toISOString()}] `) : '';\n liveRedraw?.clear(), console.error(`${g}${l} ${n}`, ...i), liveRedraw?.redraw();\n }\n parseNamespaces(e) {\n if ('*' === e || 'ngcompass' === e || 'ngcompass:*' === e) return 'all';\n let t = e.split(',').map((e)=>e.trim()), r = 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) ? r.add(t) : t.length > 0 && console.warn(`[ngcompass] Unknown debug namespace: \"${t}\". Valid namespaces: ${KNOWN_NAMESPACE_LIST}`);\n }\n return r;\n }\n}();\nexport const debug = (e, t, ...r)=>logger.debug(e, t, ...r);\nexport const info = (e, t, ...r)=>logger.info(e, t, ...r);\nexport const warn = (e, t, ...r)=>logger.warn(e, t, ...r);\nexport const error = (e, t, ...r)=>logger.error(e, t, ...r);\nexport const time = (e)=>logger.time(e);\nexport const timeEnd = (e)=>logger.timeEnd(e);\nexport const timeLog = (e, t, r)=>logger.timeLog(e, t, r);\nexport const enableDebug = (e, t)=>logger.enable(e, t);\nexport const disableDebug = ()=>logger.disable();\nexport const isDebugEnabled = ()=>logger.isEnabled();\nexport const setLiveRedraw = (e)=>{\n liveRedraw = e;\n};\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"]}
{
"name": "@ngcompass/common",
"version": "0.2.0-beta",
"version": "0.2.1-beta",
"description": "Common types and utilities for Angular Analyzer",

@@ -5,0 +5,0 @@ "sideEffects": false,