@jonathan0823/pi-sonarqube 0.1.4 → 0.2.0

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/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,KAAiB,EAAE,MAAM,GAAG,CAAC;IACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAEjC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AACrF,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAOjD,MAAM,UAAU,eAAe,CAAC,GAAqB,EAAE,UAAkB;IACvE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAG,aAAa,CAAC;IAC1B,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,GAAG,KAAK,cAAc,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,aAAa,UAAU,KAAK,CAAC,CAAC;IACvD,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,gBAAuC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAChG,MAAM,EAAE,CAAC;IAET,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACxD,MAAM,EAAE,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,QAAQ,CAAC,SAAiB;YACxB,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM,EAAE,CAAC;QACX,CAAC;QACD,IAAI;YACF,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACjD,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC3B,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,MAAM,OAAO,YAAY;IAIJ;IACA;IACA;IALX,QAAQ,GAAG,CAAC,CAAC;IAErB,YACmB,KAAyB,EACzB,KAAY,EACZ,IAAqC;QAFrC,UAAK,GAAL,KAAK,CAAoB;QACzB,UAAK,GAAL,KAAK,CAAO;QACZ,SAAI,GAAJ,IAAI,CAAiC;IACrD,CAAC;IAEJ,UAAU,KAAU,CAAC,CAAC,sCAAsC;IAE5D,WAAW,CAAC,IAAY;QACtB,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAC5B,KAAK,EACL,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,YAAY,YAAY,EAAE,CAC/E,CAAC;QACF,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAC7B,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EAChC,EAAE,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE1D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,KAAK,CAAC,EACzE,EAAE,EACF,eAAe,CACb,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,iDAAiD,CAAC,EACvE,KAAK,CACN,CACF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;YAClC,MAAM,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC,QAAQ,CAAC;YAChD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;YACjF,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/E,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG;gBACd,MAAM;gBACN,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBACvC,GAAG;gBACH,QAAQ;gBACR,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aAC5C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CACR,eAAe,CACb,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,aAAa,CAAC,EACxE,KAAK,CACN,CACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CACR,EAAE,EACF,eAAe,CACb,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,iDAAiD,CAAC,EACvE,KAAK,CACN,CACF,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,+EAA+E;AAE/E,SAAS,aAAa,CAAC,KAAY,EAAE,QAAgB;IACnD,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,SAAS,CAAC;QACf,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrC,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC;YACE,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E,MAAM,OAAO,kBAAkB;IAIV;IACA;IACA;IALX,QAAQ,GAAG,CAAC,CAAC;IAErB,YACmB,KAAwB,EACxB,KAAY,EACZ,IAAqC;QAFrC,UAAK,GAAL,KAAK,CAAmB;QACxB,UAAK,GAAL,KAAK,CAAO;QACZ,SAAI,GAAJ,IAAI,CAAiC;IACrD,CAAC;IAEJ,UAAU,KAAU,CAAC,CAAC,sCAAsC;IAE5D,WAAW,CAAC,IAAY;QACtB,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,KAAK,GAAa;YACtB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,8BAA8B,CAAC;YACxE,EAAE;SACH,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7C,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;YAC7B,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC;YAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrF,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,gBAAgB,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YAChF,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3I,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,IAAI,CACR,EAAE,EACF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,kDAAkD,CAAC,CACzE,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAA4B,EAC5B,KAAwB;IAExB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACpH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4B,EAC5B,KAAyB;IAEzB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4B,EAC5B,KAAyB,EACzB,KAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9E,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IACD,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAA0C,EAC1C,SAAkB,EAClB,OAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,UAAU,EACjB,GAAG,CAAC,MAAM,EACV,iBAAiB,CAClB,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAA0C,EAC1C,eAAgD,EAChD,WAAoB,EACpB,OAAgC;IAEhC,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,MAAM,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jonathan0823/pi-sonarqube",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "SonarQube extension for Pi — run local analysis and browse issues.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/api.ts CHANGED
@@ -6,6 +6,10 @@ import type {
6
6
  SonarAnalysisState,
7
7
  SonarProjectConfig,
8
8
  SonarIssueFetchOptions,
9
+ SonarDuplicationMeasures,
10
+ IssueSeverityCounts,
11
+ FileDuplication,
12
+ DuplicationBlockGroup,
9
13
  } from "./types.js";
10
14
  import { SONAR_SEVERITIES, SONAR_STATUSES, SONAR_TYPES } from "./types.js";
11
15
  import { parseProperties } from "./config.js";
@@ -61,24 +65,6 @@ export function normalizeIssueFilters(filters?: SonarIssueFetchOptions): SonarIs
61
65
  return normalized.severities || normalized.statuses || normalized.types || normalized.rules ? normalized : undefined;
62
66
  }
63
67
 
64
- export function mergeIssueFilters(
65
- ...filters: Array<Partial<SonarIssueFetchOptions> | undefined>
66
- ): SonarIssueFetchOptions | undefined {
67
- const merged: SonarIssueFetchOptions = {};
68
- for (const filter of filters) {
69
- if (!filter) continue;
70
- if (filter.severities?.length) merged.severities = [...(merged.severities ?? []), ...filter.severities];
71
- if (filter.statuses?.length) merged.statuses = [...(merged.statuses ?? []), ...filter.statuses];
72
- if (filter.types?.length) merged.types = [...(merged.types ?? []), ...filter.types];
73
- if (filter.rules?.length) merged.rules = [...(merged.rules ?? []), ...filter.rules];
74
- }
75
- return normalizeIssueFilters(merged);
76
- }
77
-
78
- export function splitFilterValues(value: string): string[] {
79
- return value.split(",").map((p) => p.trim()).filter(Boolean);
80
- }
81
-
82
68
  const EXPLICIT_FILTER_RE = /^([^:=]+)[:=](.+)$/;
83
69
 
84
70
  export function parseIssueFilterToken(token: string): Partial<SonarIssueFetchOptions> | undefined {
@@ -88,7 +74,7 @@ export function parseIssueFilterToken(token: string): Partial<SonarIssueFetchOpt
88
74
  const explicit = EXPLICIT_FILTER_RE.exec(trimmed);
89
75
  if (explicit) {
90
76
  const key = explicit[1].trim().toLowerCase();
91
- const values = splitFilterValues(explicit[2]);
77
+ const values = explicit[2].split(",").map((p) => p.trim()).filter(Boolean);
92
78
  if (values.length === 0) return undefined;
93
79
 
94
80
  if (key === "severity" || key === "severities") return { severities: values.map((v) => v.toUpperCase()) };
@@ -131,7 +117,21 @@ export function parseSonarIssueArgs(
131
117
  }
132
118
  }
133
119
 
134
- return { targetInput, issueIndex, filters: mergeIssueFilters(...filters) };
120
+ return { targetInput, issueIndex, filters: mergeFilters(...filters) };
121
+ }
122
+
123
+ function mergeFilters(
124
+ ...filters: Array<Partial<SonarIssueFetchOptions> | undefined>
125
+ ): SonarIssueFetchOptions | undefined {
126
+ const merged: SonarIssueFetchOptions = {};
127
+ for (const filter of filters) {
128
+ if (!filter) continue;
129
+ if (filter.severities?.length) merged.severities = [...(merged.severities ?? []), ...filter.severities];
130
+ if (filter.statuses?.length) merged.statuses = [...(merged.statuses ?? []), ...filter.statuses];
131
+ if (filter.types?.length) merged.types = [...(merged.types ?? []), ...filter.types];
132
+ if (filter.rules?.length) merged.rules = [...(merged.rules ?? []), ...filter.rules];
133
+ }
134
+ return normalizeIssueFilters(merged);
135
135
  }
136
136
 
137
137
  export function issueFilterLabel(filters?: SonarIssueFetchOptions): string {
@@ -440,7 +440,7 @@ export async function fetchRuleName(
440
440
  export function createAnalysisState(
441
441
  config: Pick<SonarProjectConfig, "baseDir" | "serverUrl" | "projectKey">,
442
442
  issues: SonarIssue[],
443
- extras: Partial<Pick<SonarAnalysisState, "dashboardUrl" | "ceTaskUrl" | "analysisId" | "filters">> = {},
443
+ extras: Partial<Pick<SonarAnalysisState, "dashboardUrl" | "ceTaskUrl" | "analysisId" | "filters" | "measures">> = {},
444
444
  ): SonarAnalysisState {
445
445
  return {
446
446
  version: 1,
@@ -453,24 +453,135 @@ export function createAnalysisState(
453
453
  analysisId: extras.analysisId,
454
454
  filters: extras.filters,
455
455
  totalIssues: issues.length,
456
+ measures: extras.measures,
456
457
  issues,
457
458
  };
458
459
  }
459
460
 
460
- export async function hasProjectAnalyses(
461
+ // ── Measures ──────────────────────────────────────────────────────────────────
462
+
463
+ export async function fetchDuplicationMeasures(
461
464
  serverUrl: string,
462
465
  token: string | undefined,
463
466
  projectKey: string,
464
467
  signal?: AbortSignal,
465
- ): Promise<boolean> {
468
+ ): Promise<SonarDuplicationMeasures | undefined> {
466
469
  try {
467
- const result = await fetchJson<{ analyses?: Array<{ key?: string }> }>(
468
- `${serverUrl}/api/project_analyses/search?project=${encodeURIComponent(projectKey)}&ps=1`,
469
- token,
470
- signal,
471
- );
472
- return (result.analyses?.length ?? 0) > 0;
470
+ const url = `${serverUrl}/api/measures/component?component=${encodeURIComponent(projectKey)}&metricKeys=duplicated_lines_density,duplicated_lines,duplicated_blocks,duplicated_files`;
471
+ const result = await fetchJson<{
472
+ component: { measures: Array<{ metric: string; value: string }> };
473
+ }>(url, token, signal);
474
+ const measures = result.component.measures;
475
+ const getValue = (key: string): number => {
476
+ const m = measures.find((m) => m.metric === key);
477
+ return m ? Number.parseFloat(m.value) : 0;
478
+ };
479
+ return {
480
+ duplicatedLinesDensity: getValue("duplicated_lines_density"),
481
+ duplicatedLines: getValue("duplicated_lines"),
482
+ duplicatedBlocks: getValue("duplicated_blocks"),
483
+ duplicatedFiles: getValue("duplicated_files"),
484
+ };
473
485
  } catch {
474
- return false;
486
+ return undefined;
487
+ }
488
+ }
489
+
490
+ export async function fetchIssueSeverityCounts(
491
+ serverUrl: string,
492
+ token: string | undefined,
493
+ projectKey: string,
494
+ signal?: AbortSignal,
495
+ ): Promise<IssueSeverityCounts | undefined> {
496
+ try {
497
+ const url = `${serverUrl}/api/issues/search?projects=${encodeURIComponent(projectKey)}&resolved=false&ps=1&facets=severities`;
498
+ const result = await fetchJson<{
499
+ facets: Array<{ property: string; values: Array<{ val: string; count: number }> }>;
500
+ }>(url, token, signal);
501
+ const facet = result.facets?.find((f) => f.property === "severities");
502
+ if (!facet) return undefined;
503
+ const getCount = (severity: string): number => {
504
+ const entry = facet.values.find((v) => v.val === severity);
505
+ return entry?.count ?? 0;
506
+ };
507
+ return {
508
+ blocker: getCount("BLOCKER"),
509
+ critical: getCount("CRITICAL"),
510
+ major: getCount("MAJOR"),
511
+ minor: getCount("MINOR"),
512
+ info: getCount("INFO"),
513
+ };
514
+ } catch {
515
+ return undefined;
475
516
  }
476
517
  }
518
+
519
+ // ── File duplications ─────────────────────────────────────────────────────────
520
+
521
+ export async function fetchFileDuplications(
522
+ serverUrl: string,
523
+ token: string | undefined,
524
+ projectKey: string,
525
+ signal?: AbortSignal,
526
+ ): Promise<FileDuplication[]> {
527
+ // Get file keys from issues search facets
528
+ const facetUrl = `${serverUrl}/api/issues/search?projects=${encodeURIComponent(projectKey)}&ps=1&facets=files`;
529
+ const facetResult = await fetchJson<{
530
+ facets: Array<{ property: string; values: Array<{ val: string; count: number }> }>;
531
+ }>(facetUrl, token, signal);
532
+
533
+ const fileFacet = facetResult.facets?.find((f) => f.property === "files");
534
+ if (!fileFacet?.values?.length) return [];
535
+
536
+ // Query per-file duplication measures. CATCH errors per file (404/403 = inaccessible)
537
+ const results: Array<FileDuplication | null> = await Promise.all(
538
+ fileFacet.values.map(async (entry) => {
539
+ try {
540
+ const fileKey = `${projectKey}:${entry.val}`;
541
+ const url = `${serverUrl}/api/measures/component?component=${encodeURIComponent(fileKey)}&metricKeys=duplicated_lines,duplicated_blocks`;
542
+ const res = await fetchJson<{
543
+ component: { measures?: Array<{ metric: string; value: string }> };
544
+ }>(url, token, signal);
545
+ const measures = res.component.measures ?? [];
546
+ const getValue = (metric: string): number => {
547
+ const m = measures.find((m) => m.metric === metric);
548
+ return m ? Number.parseInt(m.value, 10) : 0;
549
+ };
550
+ return {
551
+ filePath: entry.val,
552
+ fileKey: `${projectKey}:${entry.val}`,
553
+ duplicatedLines: getValue("duplicated_lines"),
554
+ duplicatedBlocks: getValue("duplicated_blocks"),
555
+ };
556
+ } catch {
557
+ return null;
558
+ }
559
+ }),
560
+ );
561
+
562
+ return results.filter((f): f is FileDuplication => f !== null && f.duplicatedBlocks > 0);
563
+ }
564
+
565
+ export async function fetchFileDuplicationBlocks(
566
+ serverUrl: string,
567
+ token: string | undefined,
568
+ fileKey: string,
569
+ projectKey: string,
570
+ signal?: AbortSignal,
571
+ ): Promise<DuplicationBlockGroup[]> {
572
+ const url = `${serverUrl}/api/duplications/show?key=${encodeURIComponent(fileKey)}`;
573
+ const result = await fetchJson<{
574
+ duplications: Array<{
575
+ blocks: Array<{ from: number; size: number; component: string }>;
576
+ }>;
577
+ }>(url, token, signal);
578
+ return result.duplications.map((d) => ({
579
+ blocks: d.blocks.map((b) => ({
580
+ from: b.from,
581
+ size: b.size,
582
+ filePath: toIssuePath(b.component, projectKey),
583
+ })),
584
+ }));
585
+ }
586
+
587
+
package/src/commands.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { AutocompleteItem, AutocompleteSuggestions } from "@earendil-works/pi-tui";
2
- import type { SonarIssue, SonarIssueFetchOptions } from "./types.js";
2
+ import type { SonarIssue, SonarIssueFetchOptions, SonarDuplicationMeasures, IssueSeverityCounts, FileDuplication, DuplicationBlockGroup } from "./types.js";
3
3
  import { SONAR_SEVERITIES, SONAR_STATUSES, SONAR_TYPES } from "./types.js";
4
4
  import { looksLikePath } from "./config.js";
5
5
  import { parseSonarIssueArgs, issueFilterLabel } from "./api.js";
@@ -13,14 +13,12 @@ const SONAR_COMMANDS = [
13
13
  { value: "issues", label: "issues", description: "browse the latest issues" },
14
14
  { value: "open", label: "open", description: "preview a specific issue" },
15
15
  { value: "init", label: "init", description: "configure a project target" },
16
+ { value: "metrics", label: "metrics", description: "show project metrics (duplication, issue counts)" },
17
+ { value: "duplications", label: "duplications", description: "browse duplicated files and blocks" },
16
18
  ] as const;
17
19
 
18
20
  // ── Autocomplete helpers ────────────────────────────────────────────────────
19
21
 
20
- function createAutocompleteItem(value: string, description?: string): AutocompleteItem {
21
- return description ? { value, label: value, description } : { value, label: value };
22
- }
23
-
24
22
  export function filterAutocompleteItems(
25
23
  items: readonly { value: string; label: string; description?: string }[],
26
24
  prefix: string,
@@ -75,8 +73,8 @@ function createFilterCompletionList(): AutocompleteItem[] {
75
73
  const entries: AutocompleteItem[] = [];
76
74
  const add = (value: string, desc: string) => {
77
75
  entries.push(
78
- createAutocompleteItem(`severity:${value}`, desc),
79
- createAutocompleteItem(value, desc),
76
+ { value: `severity:${value}`, label: `severity:${value}`, description: desc },
77
+ { value, label: value, description: desc },
80
78
  );
81
79
  };
82
80
  for (const value of SONAR_SEVERITIES) add(value, "severity");
@@ -96,16 +94,13 @@ export function sonarArgumentCompletions(
96
94
 
97
95
  if (!command || commandMatches.length > 1 || !isFullMatch) {
98
96
  if (commandMatches.length === 0) return null;
99
- return commandMatches.map((item) => createAutocompleteItem(item.value, item.description));
97
+ return commandMatches.map((item) => ({ value: item.value, label: item.value, description: item.description }));
100
98
  }
101
99
 
102
100
  if (lowerCommand === "open") {
103
101
  const issueItems = (issues ?? []).slice(0, 10).map((issue, index) => {
104
102
  const lineSuffix = issue.line ? `:${issue.line}` : "";
105
- return createAutocompleteItem(
106
- String(index + 1),
107
- `${issue.severity} ${issue.filePath}${lineSuffix}`,
108
- );
103
+ return { value: String(index + 1), label: String(index + 1), description: `${issue.severity} ${issue.filePath}${lineSuffix}` };
109
104
  });
110
105
  const suggestions = [...issueItems, ...createFilterCompletionList()];
111
106
  const filtered = filterAutocompleteItems(suggestions, current);
@@ -118,7 +113,7 @@ export function sonarArgumentCompletions(
118
113
  return filtered.length > 0 ? filtered : null;
119
114
  }
120
115
 
121
- if (lowerCommand === "init") {
116
+ if (lowerCommand === "init" || lowerCommand === "metrics" || lowerCommand === "duplications") {
122
117
  return null;
123
118
  }
124
119
 
@@ -132,7 +127,10 @@ export type ParsedSonarCommand =
132
127
  | { action: "init"; alias?: string; targetInput?: string }
133
128
  | { action: "analyze"; targetInput?: string; filters?: SonarIssueFetchOptions }
134
129
  | { action: "issues"; targetInput?: string; filters?: SonarIssueFetchOptions }
135
- | { action: "open"; targetInput?: string; issueIndex?: number; filters?: SonarIssueFetchOptions };
130
+ | { action: "open"; targetInput?: string; issueIndex?: number; filters?: SonarIssueFetchOptions }
131
+ | { action: "metrics"; targetInput?: string }
132
+ | { action: "duplications"; targetInput?: string; issueIndex?: number };
133
+
136
134
 
137
135
  export function parseCommandArgs(args: string): ParsedSonarCommand {
138
136
  const tokens = args.trim().split(/\s+/).filter(Boolean);
@@ -157,6 +155,12 @@ export function parseCommandArgs(args: string): ParsedSonarCommand {
157
155
  if (head === "analyze" || head === "run") {
158
156
  return { action: "analyze", ...parseSonarIssueArgs(tokens.slice(1)) };
159
157
  }
158
+ if (head === "metrics") {
159
+ return { action: "metrics", ...parseSonarIssueArgs(tokens.slice(1)) };
160
+ }
161
+ if (head === "duplications") {
162
+ return { action: "duplications", ...parseSonarIssueArgs(tokens.slice(1), true) };
163
+ }
160
164
 
161
165
  return { action: "analyze", ...parseSonarIssueArgs(tokens) };
162
166
  }
@@ -171,6 +175,8 @@ export function helpText(): string {
171
175
  " /sonarqube analyze [target] run analysis for a target or path",
172
176
  " /sonarqube issues [target] browse issues for a target or path",
173
177
  " /sonarqube open [target] <n> preview issue #n for a target or path",
178
+ " /sonarqube metrics [target] show project metrics (no scanner)",
179
+ " /sonarqube duplications [target] browse duplicated files and blocks",
174
180
  " /sonarqube show this help",
175
181
  "",
176
182
  "Filters:",
@@ -203,6 +209,59 @@ export function formatIssue(issue: SonarIssue, index?: number): string {
203
209
  return `${prefix}${issue.severity} ${loc} — ${rule} — ${issue.message}`;
204
210
  }
205
211
 
212
+ export function formatMetricsOutput(metrics: {
213
+ projectKey: string;
214
+ measures?: SonarDuplicationMeasures;
215
+ issueCounts?: IssueSeverityCounts;
216
+ }): string {
217
+ const lines: string[] = [`Metrics for ${metrics.projectKey}`];
218
+
219
+ if (metrics.measures) {
220
+ const density = metrics.measures.duplicatedLinesDensity.toFixed(1);
221
+ lines.push(
222
+ metrics.measures.duplicatedBlocks > 0
223
+ ? `Duplication: ${density}% lines=${metrics.measures.duplicatedLines} blocks=${metrics.measures.duplicatedBlocks} files=${metrics.measures.duplicatedFiles}`
224
+ : `Duplication: ${density}% (no duplications detected)`,
225
+ );
226
+ }
227
+
228
+ if (metrics.issueCounts) {
229
+ const counts = [
230
+ `BLOCKER ${metrics.issueCounts.blocker}`,
231
+ `CRITICAL ${metrics.issueCounts.critical}`,
232
+ `MAJOR ${metrics.issueCounts.major}`,
233
+ `MINOR ${metrics.issueCounts.minor}`,
234
+ `INFO ${metrics.issueCounts.info}`,
235
+ ];
236
+ lines.push(`Issues: ${counts.join(" ")}`);
237
+ }
238
+
239
+ return lines.join("\n");
240
+ }
241
+
242
+ export function formatDuplicationsList(files: FileDuplication[]): string {
243
+ if (files.length === 0) return "No duplicated files found.";
244
+ const lines: string[] = [`Duplicated files (${files.length})`];
245
+ for (const [i, f] of files.entries()) {
246
+ lines.push(` ${String(i + 1).padStart(2, " ")}. ${f.filePath} blocks=${f.duplicatedBlocks} lines=${f.duplicatedLines}`);
247
+ }
248
+ return lines.join("\n");
249
+ }
250
+
251
+ export function formatDuplicationBlockDetail(filePath: string, groups: DuplicationBlockGroup[]): string {
252
+ if (groups.length === 0) return `No duplications found in ${filePath}.`;
253
+ const lines: string[] = [`Duplications in ${filePath}`, ""];
254
+ for (const [i, group] of groups.entries()) {
255
+ lines.push(`Block ${i + 1}:`);
256
+ for (const block of group.blocks) {
257
+ const end = block.from + block.size - 1;
258
+ lines.push(` ${block.filePath}:${block.from}-${end}`);
259
+ }
260
+ lines.push("");
261
+ }
262
+ return lines.join("\n");
263
+ }
264
+
206
265
  export function formatSummary(state: { totalIssues: number; projectKey: string; filters?: SonarIssueFetchOptions }): string {
207
266
  const issueCount = state.totalIssues;
208
267
  const filterLabel = state.filters ? ` (${issueFilterLabel(state.filters)})` : "";
@@ -219,6 +278,7 @@ export function formatReport(state: {
219
278
  baseDir: string;
220
279
  totalIssues: number;
221
280
  filters?: SonarIssueFetchOptions;
281
+ measures?: SonarDuplicationMeasures;
222
282
  issues: SonarIssue[];
223
283
  }): string {
224
284
  const lines = [
@@ -232,8 +292,14 @@ export function formatReport(state: {
232
292
  lines.push(`Filters: ${issueFilterLabel(state.filters)}`);
233
293
  }
234
294
 
295
+ if (state.measures && state.issues.length > 0) {
296
+ lines.push("", state.measures.duplicatedBlocks > 0
297
+ ? `Duplication: ${state.measures.duplicatedLinesDensity.toFixed(1)}% lines=${state.measures.duplicatedLines} blocks=${state.measures.duplicatedBlocks} files=${state.measures.duplicatedFiles}`
298
+ : `Duplication: ${state.measures.duplicatedLinesDensity.toFixed(1)}% (no duplications detected)`);
299
+ }
300
+
235
301
  if (state.issues.length === 0) {
236
- lines.push("No open issues found.");
302
+ if (!state.measures) lines.push("No open issues found.");
237
303
  return lines.join("\n");
238
304
  }
239
305
 
package/src/config.ts CHANGED
@@ -292,10 +292,6 @@ export async function resolveInitTarget(
292
292
  }
293
293
  }
294
294
 
295
- if (targetInput) {
296
- return resolveTarget(ctx, targetInput);
297
- }
298
-
299
295
  return { baseDir: ctx.cwd, repoRoot: await findRepoRoot(ctx.cwd) };
300
296
  }
301
297