dts-linter 0.0.0-beta7 → 0.0.0-beta8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dts-linter.js +5 -5
- package/package.json +1 -1
package/dist/dts-linter.js
CHANGED
|
@@ -69,7 +69,7 @@ ${JSON.stringify(o,null,4)}`);let h=o;if(Pe.string(h.id)||Pe.number(h.id)){let v
|
|
|
69
69
|
`)&&t.includes(`
|
|
70
70
|
`)}function vc(t){return Array.isArray(t)?t.map(e=>vc(e)):Object.assign(Object.assign({},t),{hunks:t.hunks.map(e=>Object.assign(Object.assign({},e),{lines:e.lines.map((n,r)=>{var i;return n.startsWith("\\")||n.endsWith("\r")||!((i=e.lines[r+1])===null||i===void 0)&&i.startsWith("\\")?n:n+"\r"})}))})}function _c(t){return Array.isArray(t)?t.map(e=>_c(e)):Object.assign(Object.assign({},t),{hunks:t.hunks.map(e=>Object.assign(Object.assign({},e),{lines:e.lines.map(n=>n.endsWith("\r")?n.substring(0,n.length-1):n)}))})}function nh(t){return Array.isArray(t)||(t=[t]),!t.some(e=>e.hunks.some(n=>n.lines.some(r=>!r.startsWith("\\")&&r.endsWith("\r"))))}function rh(t){return Array.isArray(t)||(t=[t]),t.some(e=>e.hunks.some(n=>n.lines.some(r=>r.endsWith("\r"))))&&t.every(e=>e.hunks.every(n=>n.lines.every((r,i)=>{var s;return r.startsWith("\\")||r.endsWith("\r")||((s=n.lines[i+1])===null||s===void 0?void 0:s.startsWith("\\"))})))}function si(t){let e=t.split(/\n/),n=[],r=0;function i(){let l={};for(n.push(l);r<e.length;){let y=e[r];if(/^(---|\+\+\+|@@)\s/.test(y))break;let g=/^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(y);g&&(l.index=g[1]),r++}for(s(l),s(l),l.hunks=[];r<e.length;){let y=e[r];if(/^(Index:\s|diff\s|---\s|\+\+\+\s|===================================================================)/.test(y))break;if(/^@@/.test(y))l.hunks.push(u());else{if(y)throw new Error("Unknown line "+(r+1)+" "+JSON.stringify(y));r++}}}function s(l){let y=/^(---|\+\+\+)\s+(.*)\r?$/.exec(e[r]);if(y){let g=y[2].split(" ",2),k=(g[1]||"").trim(),P=g[0].replace(/\\\\/g,"\\");/^".*"$/.test(P)&&(P=P.substr(1,P.length-2)),y[1]==="---"?(l.oldFileName=P,l.oldHeader=k):(l.newFileName=P,l.newHeader=k),r++}}function u(){var l;let y=r,g=e[r++],k=g.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/),P={oldStart:+k[1],oldLines:typeof k[2]>"u"?1:+k[2],newStart:+k[3],newLines:typeof k[4]>"u"?1:+k[4],lines:[]};P.oldLines===0&&(P.oldStart+=1),P.newLines===0&&(P.newStart+=1);let Y=0,O=0;for(;r<e.length&&(O<P.oldLines||Y<P.newLines||!((l=e[r])===null||l===void 0)&&l.startsWith("\\"));r++){let F=e[r].length==0&&r!=e.length-1?" ":e[r][0];if(F==="+"||F==="-"||F===" "||F==="\\")P.lines.push(e[r]),F==="+"?Y++:F==="-"?O++:F===" "&&(Y++,O++);else throw new Error(`Hunk at line ${y+1} contained invalid line ${e[r]}`)}if(!Y&&P.newLines===1&&(P.newLines=0),!O&&P.oldLines===1&&(P.oldLines=0),Y!==P.newLines)throw new Error("Added line count did not match for hunk at line "+(y+1));if(O!==P.oldLines)throw new Error("Removed line count did not match for hunk at line "+(y+1));return P}for(;r<e.length;)i();return n}function ih(t,e,n){let r=!0,i=!1,s=!1,u=1;return function l(){if(r&&!s){if(i?u++:r=!1,t+u<=n)return t+u;s=!0}if(!i)return s||(r=!0),e<=t-u?t-u++:(i=!0,l())}}function bc(t,e,n={}){let r;if(typeof e=="string"?r=si(e):Array.isArray(e)?r=e:r=[e],r.length>1)throw new Error("applyPatch only works with a single input.");return gg(t,r[0],n)}function gg(t,e,n={}){(n.autoConvertLineEndings||n.autoConvertLineEndings==null)&&(eh(t)&&nh(e)?e=vc(e):th(t)&&rh(e)&&(e=_c(e)));let r=t.split(`
|
|
71
71
|
`),i=e.hunks,s=n.compareLine||((F,j,H,ae)=>j===ae),u=n.fuzzFactor||0,l=0;if(u<0||!Number.isInteger(u))throw new Error("fuzzFactor must be a non-negative integer");if(!i.length)return t;let y="",g=!1,k=!1;for(let F=0;F<i[i.length-1].lines.length;F++){let j=i[i.length-1].lines[F];j[0]=="\\"&&(y[0]=="+"?g=!0:y[0]=="-"&&(k=!0)),y=j}if(g){if(k){if(!u&&r[r.length-1]=="")return!1}else if(r[r.length-1]=="")r.pop();else if(!u)return!1}else if(k){if(r[r.length-1]!="")r.push("");else if(!u)return!1}function P(F,j,H,ae=0,V=!0,D=[],ee=0){let A=0,pe=!1;for(;ae<F.length;ae++){let he=F[ae],ke=he.length>0?he[0]:" ",Ze=he.length>0?he.substr(1):he;if(ke==="-")if(s(j+1,r[j],ke,Ze))j++,A=0;else return!H||r[j]==null?null:(D[ee]=r[j],P(F,j+1,H-1,ae,!1,D,ee+1));if(ke==="+"){if(!V)return null;D[ee]=Ze,ee++,A=0,pe=!0}if(ke===" ")if(A++,D[ee]=r[j],s(j+1,r[j],ke,Ze))ee++,V=!0,pe=!1,j++;else return pe||!H?null:r[j]&&(P(F,j+1,H-1,ae+1,!1,D,ee+1)||P(F,j+1,H-1,ae,!1,D,ee+1))||P(F,j,H-1,ae+1,!1,D,ee)}return ee-=A,j-=A,D.length=ee,{patchedLines:D,oldLineLastI:j-1}}let Y=[],O=0;for(let F=0;F<i.length;F++){let j=i[F],H,ae=r.length-j.oldLines+u,V;for(let D=0;D<=u;D++){V=j.oldStart+O-1;let ee=ih(V,l,ae);for(;V!==void 0&&(H=P(j.lines,V,D),!H);V=ee());if(H)break}if(!H)return!1;for(let D=l;D<V;D++)Y.push(r[D]);for(let D=0;D<H.patchedLines.length;D++){let ee=H.patchedLines[D];Y.push(ee)}l=H.oldLineLastI+1,O=V+1-j.oldStart}for(let F=l;F<r.length;F++)Y.push(r[F]);return Y.join(`
|
|
72
|
-
`)}var yg=__dirname.endsWith("src"),vg=yg?Rs.default.join(__dirname,"..","dist","server.js"):Rs.default.join(__dirname,"server.js");function wc(t){let e=Rs.default.resolve(t);return e=e.replace(/\\/g,"/"),e.startsWith("/")||(e="/"+e),`file://${e}`}function ai(){let t=process.env;return!!(t.CI&&(t.GITHUB_ACTIONS||t.GITLAB_CI||t.BITBUCKET_BUILD_NUMBER||t.CIRCLECI||t.TRAVIS))}var Ot=ai(),ks=()=>Ot?"::group::":"",Ss=()=>Ot?"::endgroup::":"",kc=()=>Ot?"::notice":"\u2705",_g=()=>Ot?"::warning":"\u26A0\uFE0F",bg=()=>Ot?"::error":"\u274C",wg=t=>Ot?`file=${t}`:t,Tg=(t,e)=>Ot?`title=${t}${e
|
|
72
|
+
`)}var yg=__dirname.endsWith("src"),vg=yg?Rs.default.join(__dirname,"..","dist","server.js"):Rs.default.join(__dirname,"server.js");function wc(t){let e=Rs.default.resolve(t);return e=e.replace(/\\/g,"/"),e.startsWith("/")||(e="/"+e),`file://${e}`}function ai(){let t=process.env;return!!(t.CI&&(t.GITHUB_ACTIONS||t.GITLAB_CI||t.BITBUCKET_BUILD_NUMBER||t.CIRCLECI||t.TRAVIS))}var Ot=ai(),ks=()=>Ot?"::group::":"",Ss=()=>Ot?"::endgroup::":"",kc=()=>Ot?"::notice":"\u2705",_g=()=>Ot?"::warning":"\u26A0\uFE0F",bg=()=>Ot?"::error":"\u274C",wg=t=>Ot?`file=${t}`:t,Tg=(t,e)=>Ot?`title=${t}${e?`::"${e}"`:""}`:`${t}: ${e||""}`,Rg=(t,e)=>Ot?`line=${t}${e?`,col=${e}`:""}`:`line: ${t} ${e?`col=${e}`:""}`,kg=(t,e)=>Ot?`endLine=${t}${e?`,endColumn=${e}`:""}`:`endLine: ${t} ${e?`endColumn=${e}`:""}`,Sg=Ot?",":" ",ot=(t,e,n,r,i,s,u)=>{let l=i?"line":"";return`${ai()?"":u}${t==="info"?kc():t==="error"?bg():_g()} ${[e?wg(e):void 0,i?Rg(i.line,i.col):void 0,s?kg(s.line,s.col):void 0,n?Tg(n,r):void 0].filter(y=>!!y).join(Sg)}`},Cg=Ne.object({files:Ne.array(Ne.string().optional()),cwd:Ne.string().optional(),includes:Ne.array(Ne.string()).optional().default([]),bindings:Ne.array(Ne.string()).optional().default([]),logLevel:Ne.enum(["none","verbose"]).optional().default("none"),format:Ne.boolean().optional().default(!1),formatFixAll:Ne.boolean().optional().default(!1),processIncludes:Ne.boolean().optional().default(!1),diagnostics:Ne.boolean().optional().default(!1),diagnosticsFull:Ne.boolean().optional().default(!1),outFile:Ne.string().optional(),help:Ne.boolean().optional().default(!1)}),Sc=`Usage: dts-linter [options]
|
|
73
73
|
|
|
74
74
|
Options:
|
|
75
75
|
--files List of input files (can be repeated).
|
|
@@ -96,8 +96,8 @@ Example:
|
|
|
96
96
|
`)}
|
|
97
97
|
${Ss()}`).join(`
|
|
98
98
|
`)),ai()||console.log(`
|
|
99
|
-
${ot("error",void 0,"Diagnostics",`${mn.size} of ${r.size} file failed diagnostic checks`)}`)),Tc.size&&!ai()&&console.log(`${ot("warn",void 0,"Diagnostics",`${Tc.size} of ${r.size} Skipped diagnostic checks`)}`),ph.size===r.size&&!mn.size&&console.log(`${kc()} All files passed diagnostic checks`)),process.exit(Ts.length||mn?1:0)}var Pc=t=>[t.file,...t.includes.flatMap(e=>Pc(e))],Mg=async(t,e,n,r,i)=>{let s={textDocument:{uri:`file://${e}`},options:{tabSize:8,insertSpaces:!1,trimTrailingWhitespace:!0}},u=await t.sendRequest("devicetree/formattingDiff",s),l=n?"":" ";if(u)return console.log(`${ks()}${ot("error",e,"Formating","not correctly formatted.",void 0,void 0,`${l}${r} `)}`),ci.has(e)?ci.get(e)!==u&&Cc&&console.log(`${
|
|
100
|
-
`,"\\n")}`,{line:y.lineStart,col:y.colStart},{line:y.lineEnd,col:y.colEnd},`${l}${r} `)}`)}),console.log(Ss()),u;console.log(`${ot("info",e,"Formaing","Correctly formatted",void 0,void 0,`${l}${r} `)}`)};function jg(t){let e=si(t),n=[];for(let r of e)for(let i of r.hunks){let s=i.oldStart,u=i.newStart,l=null,y=()=>{if(!l)return;let{oldLines:g,newLines:k,line:P}=l;if(g.length===1&&k.length===1){let Y=g[0],O=k[0],F=yc(Y,O),j=1;for(let H of F)if(H.added)n.push({lineStart:P,colStart:j,lineEnd:P,colEnd:j,replacement:H.value});else if(H.removed){let ae=j;j+=H.value.length,n.push({lineStart:P,colStart:ae,lineEnd:P,colEnd:j,replacement:""})}else j+=H.value.length}else g.length&&k.length?n.push({lineStart:P,colStart:1,lineEnd:P+g.length-1,colEnd:g[g.length-1].length+1,replacement:k.join(`
|
|
101
|
-
`)}):g.length?n.push({lineStart:P,colStart:1,lineEnd:P+g.length-1,colEnd:g[g.length-1].length+1,replacement:""}):k.length&&n.push({lineStart:P,colStart:1,lineEnd:P,colEnd:1,replacement:k.join(`
|
|
102
|
-
`)});l=null};for(let g of i.lines){let k=g[0],P=g.slice(1);k===" "?(y(),s++,u++):k==="-"?(l||(l={oldLines:[],newLines:[],line:s}),l.oldLines.push(P),s++):k==="+"&&(l||(l={oldLines:[],newLines:[],line:u}),l.newLines.push(P),u++)}y()}return n}var ph=new Set,Tc=new Set,qg=async(t,e,n,r)=>{ph.add(e);let i=(await t.sendRequest("devicetree/diagnosticIssues",{uri:`file://${e}`,full:xc})??[]).filter(u=>u.severity===Rc.DiagnosticSeverity.Error||u.severity===Rc.DiagnosticSeverity.Warning),s=n?"":" ";if(i.length)return console.log(`${ks()}${ot("error",e,"Diagnostic errors",`${i.length} diagnostic errors!`,void 0,void 0,`${s}${r} `)}`),console.log(i.map(u=>`${
|
|
99
|
+
${ot("error",void 0,"Diagnostics",`${mn.size} of ${r.size} file failed diagnostic checks`)}`)),Tc.size&&!ai()&&console.log(`${ot("warn",void 0,"Diagnostics",`${Tc.size} of ${r.size} Skipped diagnostic checks`)}`),ph.size===r.size&&!mn.size&&console.log(`${kc()} All files passed diagnostic checks`)),process.exit(Ts.length||mn?1:0)}var Pc=t=>[t.file,...t.includes.flatMap(e=>Pc(e))],Mg=async(t,e,n,r,i)=>{let s={textDocument:{uri:`file://${e}`},options:{tabSize:8,insertSpaces:!1,trimTrailingWhitespace:!0}},u=await t.sendRequest("devicetree/formattingDiff",s),l=n?"":" ";if(u)return console.log(`${ks()}${ot("error",e,"Formating","not correctly formatted.",void 0,void 0,`${l}${r} `)}`),ci.has(e)?ci.get(e)!==u&&Cc&&console.log(`${ot("warn",e,"Conflicting Diff","Multiple diffs for the same file. This diff will not be in the generated file!",void 0,void 0,`${l} `)}`):(Ts.push({file:e,context:i}),ci.set(e,u)),jg(u).forEach(y=>{console.log(`${ot("error",e,"Fix",`Replace with: ${y.description.replaceAll(" ","\\t").replaceAll(`
|
|
100
|
+
`,"\\n")}`,{line:y.lineStart,col:y.colStart},{line:y.lineEnd,col:y.colEnd},`${l}${r} `)}`)}),console.log(Ss()),u;console.log(`${ot("info",e,"Formaing","Correctly formatted",void 0,void 0,`${l}${r} `)}`)};function jg(t){let e=si(t),n=[];for(let r of e)for(let i of r.hunks){let s=i.oldStart,u=i.newStart,l=null,y=()=>{if(!l)return;let{oldLines:g,newLines:k,line:P}=l;if(g.length===1&&k.length===1){let Y=g[0],O=k[0],F=yc(Y,O),j=1;for(let H of F)if(H.added)n.push({lineStart:P,colStart:j,lineEnd:P,colEnd:j,replacement:H.value,description:`Insert '${H.value}'`});else if(H.removed){let ae=j;j+=H.value.length,n.push({lineStart:P,colStart:ae,lineEnd:P,colEnd:j,replacement:"",description:`Remove '${H.value}'`})}else j+=H.value.length}else g.length&&k.length?n.push({lineStart:P,colStart:1,lineEnd:P+g.length-1,colEnd:g[g.length-1].length+1,replacement:k.join(`
|
|
101
|
+
`),description:`Replace '${g.join("\\n")}' with '${k.join("\\n")}'`}):g.length?n.push({lineStart:P,colStart:1,lineEnd:P+g.length-1,colEnd:g[g.length-1].length+1,replacement:"",description:`Remove '${g.join("\\n")}'`}):k.length&&n.push({lineStart:P,colStart:1,lineEnd:P,colEnd:1,replacement:k.join(`
|
|
102
|
+
`),description:`Insert '${k.join("\\n")}'`});l=null};for(let g of i.lines){let k=g[0],P=g.slice(1);k===" "?(y(),s++,u++):k==="-"?(l||(l={oldLines:[],newLines:[],line:s}),l.oldLines.push(P),s++):k==="+"&&(l||(l={oldLines:[],newLines:[],line:u}),l.newLines.push(P),u++)}y()}return n}var ph=new Set,Tc=new Set,qg=async(t,e,n,r)=>{ph.add(e);let i=(await t.sendRequest("devicetree/diagnosticIssues",{uri:`file://${e}`,full:xc})??[]).filter(u=>u.severity===Rc.DiagnosticSeverity.Error||u.severity===Rc.DiagnosticSeverity.Warning),s=n?"":" ";if(i.length)return console.log(`${ks()}${ot("error",e,"Diagnostic errors",`${i.length} diagnostic errors!`,void 0,void 0,`${s}${r} `)}`),console.log(i.map(u=>`${ot("error",e,"Diagnostic error",u.message,{line:u.range.start.line,col:u.range.start.character},{line:u.range.end.line,col:u.range.end.character},`${s} `)}`).join(`
|
|
103
103
|
`)),console.log(Ss()),i;console.log(`${ot("info",e,"Diagnostic","No diagnostic errors",void 0,void 0,`${s}${r} `)}`)};function Ig(t,e=6e4){return new Promise((n,r)=>{let i=setTimeout(()=>{r(new Error("Timed out waiting for devicetree/newActiveContext")),s.dispose()},e),s=t.onNotification("devicetree/newActiveContext",u=>{clearTimeout(i),n(u),s.dispose()})})}function Ag(t,e=5e3){return new Promise((n,r)=>{let i=setTimeout(()=>{r(new Error("Timed out waiting for devicetree/contextDeleted")),s.dispose()},e),s=t.onNotification("devicetree/contextDeleted",()=>{clearTimeout(i),n(),s.dispose()})})}
|