@descent-vtt/spec-guard 0.5.1 → 0.7.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.
Files changed (52) hide show
  1. package/CHANGELOG.md +444 -283
  2. package/README.md +1094 -868
  3. package/dist/cli.d.ts +18 -2
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +136 -7
  6. package/dist/cli.js.map +1 -1
  7. package/dist/glob.d.ts +17 -2
  8. package/dist/glob.d.ts.map +1 -1
  9. package/dist/glob.js +25 -9
  10. package/dist/glob.js.map +1 -1
  11. package/dist/graph.d.ts +124 -0
  12. package/dist/graph.d.ts.map +1 -0
  13. package/dist/graph.js +241 -0
  14. package/dist/graph.js.map +1 -0
  15. package/dist/index.d.ts +19 -7
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +9 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/layers.d.ts +72 -0
  20. package/dist/layers.d.ts.map +1 -0
  21. package/dist/layers.js +102 -0
  22. package/dist/layers.js.map +1 -0
  23. package/dist/mcp.d.ts +117 -0
  24. package/dist/mcp.d.ts.map +1 -0
  25. package/dist/mcp.js +544 -0
  26. package/dist/mcp.js.map +1 -0
  27. package/dist/parser.d.ts +50 -1
  28. package/dist/parser.d.ts.map +1 -1
  29. package/dist/parser.js +232 -16
  30. package/dist/parser.js.map +1 -1
  31. package/dist/query.d.ts +108 -0
  32. package/dist/query.d.ts.map +1 -0
  33. package/dist/query.js +206 -0
  34. package/dist/query.js.map +1 -0
  35. package/dist/reporter.d.ts.map +1 -1
  36. package/dist/reporter.js +62 -5
  37. package/dist/reporter.js.map +1 -1
  38. package/dist/rules.d.ts +108 -0
  39. package/dist/rules.d.ts.map +1 -0
  40. package/dist/rules.js +153 -0
  41. package/dist/rules.js.map +1 -0
  42. package/dist/runner.d.ts +24 -0
  43. package/dist/runner.d.ts.map +1 -1
  44. package/dist/runner.js +335 -117
  45. package/dist/runner.js.map +1 -1
  46. package/dist/specs.d.ts +44 -0
  47. package/dist/specs.d.ts.map +1 -0
  48. package/dist/specs.js +62 -0
  49. package/dist/specs.js.map +1 -0
  50. package/dist/types.d.ts +60 -2
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +73 -73
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAoD,MAAM,YAAY,CAAC;AACzG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAqB,MAAM,YAAY,CAAC;AAyBpE,MAAM,UAAU,YAAY,CAAC,QAAsB;IACjD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,YAAY;QAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI;QACtC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI;QACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAuB;IACvD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;QACxE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;KACjD,CAAC;IACF,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEjC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,OAAO,IAAI,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;gBAChD,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnB,CAAC,CAAC,QAAQ,CAAC,YAAY,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY;QACjD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI;QACnC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CACnE,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAE5C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAY;IAChE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,oCAAoC,CAAC,CAAC;IAC9F,6EAA6E;IAC7E,kEAAkE;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,cAAc,CAAC,IAAI,KAAK,yBAAyB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IACjH,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;AAC7E,CAAC;AAqCD,qCAAqC;AACrC,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,KAAqD,EAAE,eAAwB;IAC3H,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE9C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;QACvF,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvE,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACpF,QAAQ,EAAE;gBACR,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;aACvE;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO;QACP,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY;YACjC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAqB;IACpD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrG,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;AAC9G,CAAC;AAED,gFAAgF;AAEhF,SAAS,MAAM,CAAC,KAAa,EAAE,GAAW,EAAE,IAAY;IACtD,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,iEAAiE;AACjE,SAAS,WAAW,CAAC,IAAc;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAiB,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,0CAA0C;gBAC5C,CAAC,CAAC,sBAAsB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,+CAA+C,CAC5H,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,QAAQ,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEzF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAC9H,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAEjH,GAAG,CAAC,IAAI,CACN,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC,sCAAsC;YACxC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CACjH,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAiB,CAAC;YACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,iBAAiB,EAAE,CAAC;YAC9H,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,QAAQ,CAAC,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;YAChE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjE,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC7F,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS;iBACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,KAAM,SAAS,CAAC,GAAG,CAAC,IAAI,CAAkB,CAAC,MAAM,GAAG,CAAC;iBAC1E,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,GAAG,CAAC,IAAI,CACN,EAAE,EACF,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,8BAA8B,KAAK,yCAAyC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAC7J,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,0BAA0B,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,WAAW,CAAC,CAAC;QAChL,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9F,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,YAAY,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpH,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzG,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAA2B;IACtE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,QAAA,MAAM,IAAI;aACR,KAAK;aACL,IAAI;aACJ,GAAG;aACH,GAAG;aACH,KAAK;aACL,MAAM;aACN,IAAI;aACJ,OAAO;aACP,IAAI;aACJ,IAAI;CACI,CAAC;AAEX,KAAK,KAAK,GAAG,MAAM,OAAO,IAAI,CAAC;AAE/B,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,MAAM,CAI1F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3B,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,QAAQ,kBAAmB,GAAG,OAAO,CAGzG;AA0JD,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,SAAI,GAAG,MAAM,CA8EjG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAezD;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAkDpD;AA2CD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CA0EzF"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,QAAA,MAAM,IAAI;aACR,KAAK;aACL,IAAI;aACJ,GAAG;aACH,GAAG;aACH,KAAK;aACL,MAAM;aACN,IAAI;aACJ,OAAO;aACP,IAAI;aACJ,IAAI;CACI,CAAC;AAEX,KAAK,KAAK,GAAG,MAAM,OAAO,IAAI,CAAC;AAE/B,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,MAAM,CAI1F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3B,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,QAAQ,kBAAmB,GAAG,OAAO,CAGzG;AA8JD,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,SAAI,GAAG,MAAM,CAmGjG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAezD;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAmDpD;AAiED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAwFzF"}
package/dist/reporter.js CHANGED
@@ -49,8 +49,8 @@ export function shouldUseAscii(env = process.env, platform = process.platform) {
49
49
  }
50
50
  function symbols(ascii) {
51
51
  return ascii
52
- ? { pass: '+', fail: 'x', warn: '!', more: '...' }
53
- : { pass: '✔', fail: '✖', warn: '⚠', more: '…' };
52
+ ? { pass: '+', fail: 'x', warn: '!', skip: 'o', more: '...' }
53
+ : { pass: '✔', fail: '✖', warn: '⚠', skip: '○', more: '…' };
54
54
  }
55
55
  function formatDuration(ms) {
56
56
  return ms < 1000 ? `${Math.round(ms)}ms` : `${(ms / 1000).toFixed(2)}s`;
@@ -141,7 +141,11 @@ function formatFailure(result, paint, glyphs, maxSnippets) {
141
141
  function formatPass(result, paint, glyphs) {
142
142
  const detail = result.kind === 'assert-present'
143
143
  ? result.files.join(', ')
144
- : `"${result.symbol}" ${paint(`(${countLabel(result.actual, 'match')})`, 'dim')} in ${result.targets.join(', ')}`;
144
+ : result.symbol === undefined
145
+ ? // A cycle or layer rule has no symbol to quote, and its description
146
+ // already says what it is about and where.
147
+ `${result.description} ${paint(`(${countLabel(result.actual, result.kind === 'assert-import-cycle' ? 'cycle' : 'violating file')})`, 'dim')}`
148
+ : `"${result.symbol}" ${paint(`(${countLabel(result.actual, 'match')})`, 'dim')} in ${result.targets.join(', ')}`;
145
149
  return `${paint(glyphs.pass, 'green')} ${paint(formatLocation(result), 'dim')} ${paint(`@${result.kind}`, 'dim')} ${detail}`;
146
150
  }
147
151
  function formatError(error, paint, glyphs) {
@@ -209,16 +213,34 @@ export function formatReport(report, options, maxSnippets = 5) {
209
213
  lines.push(`${paint(glyphs.warn, 'yellow')} ${paint(note, 'yellow')}`);
210
214
  lines.push('');
211
215
  }
216
+ // Named, not totalled. A count of withheld rules tells a reader that some
217
+ // part of their specification stopped being enforced without telling them
218
+ // which part, and the whole reason to report this at all is that a rule
219
+ // going quiet is indistinguishable from a rule passing.
220
+ for (const spec of report.inactiveSpecs) {
221
+ const detail = spec.directives === 0
222
+ ? 'no directives to execute'
223
+ : `${countLabel(spec.directives, 'assertion')} not executed`;
224
+ lines.push(paint(`${glyphs.skip} ${spec.file} is ${spec.label} - ${detail}`, 'dim'));
225
+ }
226
+ if (report.inactiveSpecs.length > 0)
227
+ lines.push('');
212
228
  const parts = [
213
229
  paint(`${report.summary.passed} passed`, 'green'),
214
230
  failures.length > 0 ? paint(`${report.summary.failed} failed`, 'red', 'bold') : null,
215
231
  report.errors.length > 0 ? paint(`${report.errors.length} invalid`, 'yellow') : null,
216
232
  report.summary.skipped > 0 ? paint(`${report.summary.skipped} skipped`, 'dim') : null,
233
+ report.summary.inactive > 0 ? paint(`${report.summary.inactive} not in force`, 'dim') : null,
217
234
  paint(formatDuration(report.durationMs), 'dim'),
218
235
  ].filter((part) => part !== null);
219
236
  lines.push(parts.join(paint(' · ', 'dim')));
220
237
  if (report.ok) {
221
- lines.push(paint(`${glyphs.pass} every spec assertion holds`, 'green'));
238
+ // "Every assertion holds" over zero assertions is true and useless, and it
239
+ // is the exact sentence someone reads as proof their specification is
240
+ // being enforced. A run that verified nothing has to say so instead.
241
+ lines.push(report.summary.total > 0
242
+ ? paint(`${glyphs.pass} every spec assertion holds`, 'green')
243
+ : paint(`${glyphs.warn} no assertion was executed, so nothing was verified`, 'yellow'));
222
244
  }
223
245
  return lines.join('\n');
224
246
  }
@@ -302,6 +324,7 @@ export function formatJson(report) {
302
324
  raw: error.raw,
303
325
  })),
304
326
  warnings: report.warnings,
327
+ inactiveSpecs: report.inactiveSpecs,
305
328
  }, null, 2);
306
329
  }
307
330
  /* --------------------------------------------------------------------- sarif */
@@ -323,8 +346,28 @@ const SARIF_RULES = [
323
346
  { id: 'assert-present', text: 'A file or directory the specification says must exist.' },
324
347
  { id: 'assert-import-absence', text: 'A dependency one part of the codebase must not have.' },
325
348
  { id: 'assert-import-count', text: 'A dependency count one part of the codebase must hold to.' },
349
+ { id: 'assert-import-cycle', text: 'A set of files that depend on each other, directly or through others.' },
350
+ { id: 'assert-layers', text: 'A file importing from a layer the architecture places above it.' },
326
351
  { id: 'invalid-directive', text: 'A directive that could not be parsed, so nothing was checked.' },
327
352
  ];
353
+ /**
354
+ * SARIF's slot for "something happened during this run that is not a finding".
355
+ *
356
+ * A document that is not in force produces no result, and a format that only
357
+ * carries results would show a clean code-scanning page for a repository whose
358
+ * rules had gone dormant - the same silence the human report refuses. This is
359
+ * the standard's own answer to that: a note-level execution notification,
360
+ * which GitHub surfaces as run information rather than as an alert.
361
+ */
362
+ function inactiveNotifications(report) {
363
+ return report.inactiveSpecs.map((spec) => ({
364
+ level: 'note',
365
+ message: {
366
+ text: `${spec.file} is ${spec.label}, so ` +
367
+ `${spec.directives === 1 ? 'its 1 assertion was' : `its ${spec.directives} assertions were`} not executed.`,
368
+ },
369
+ }));
370
+ }
328
371
  function sarifLocation(uri, line, column, text) {
329
372
  const location = {
330
373
  physicalLocation: { artifactLocation: { uri }, region: { startLine: line, startColumn: column } },
@@ -371,7 +414,12 @@ export function formatSarif(report, options = {}) {
371
414
  specGuardAssertion: fingerprint([
372
415
  result.location.relativeFile,
373
416
  result.kind,
374
- result.symbol ?? result.files.join(','),
417
+ // The description only where there is nothing else to tell two
418
+ // assertions apart. A cycle or layer rule names no symbol and no
419
+ // file, so two on one target - `types="ignore"` beside the default -
420
+ // would share an identity and be merged into one alert. Every kind
421
+ // that has a symbol or a file list keeps the fingerprint it had.
422
+ result.symbol ?? (result.files.length > 0 ? result.files.join(',') : result.description),
375
423
  result.targets.join(','),
376
424
  ]),
377
425
  },
@@ -396,6 +444,15 @@ export function formatSarif(report, options = {}) {
396
444
  version: '2.1.0',
397
445
  runs: [
398
446
  {
447
+ // Present only when there is something to say. An empty invocations
448
+ // block is noise in every consumer that renders one.
449
+ ...(report.inactiveSpecs.length > 0
450
+ ? {
451
+ invocations: [
452
+ { executionSuccessful: report.ok, toolExecutionNotifications: inactiveNotifications(report) },
453
+ ],
454
+ }
455
+ : {}),
399
456
  tool: {
400
457
  driver: {
401
458
  name: 'spec-guard',
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Which rules govern a path, decided from the specs alone.
3
+ *
4
+ * Pure. Nothing here reads the codebase: whether an assertion's scope reaches a
5
+ * path is arithmetic on the assertion's own `target`, `exclude` and `glob`, the
6
+ * run's skipped directory names, and the path's extension. That is the whole
7
+ * reason a query can answer in milliseconds - and it is also a claim, that the
8
+ * arithmetic agrees with the walk the assertion would really make. The suite
9
+ * holds it to that claim by comparing the two over real trees; ADR-0012 lists
10
+ * the three things arithmetic cannot see.
11
+ *
12
+ * A file is governed or it is not. A directory is governed when some file under
13
+ * it could be, and "could" is doing work: whether `glob="*.py"` matches anything
14
+ * in `src/` is a question about files that are not read here. The rule is shown
15
+ * with its filters rather than being guessed away.
16
+ */
17
+ import type { Assertion, BaselineEntry, Bounds, DirectiveKind } from './types.js';
18
+ /** Whether a query is about one file or everything under a directory. */
19
+ export type PathShape = 'file' | 'directory';
20
+ export interface QueryPath {
21
+ /** Root-relative, forward slashes; `.` for the root itself. */
22
+ path: string;
23
+ shape: PathShape;
24
+ /** Absolute, so it can be compared with the spec files a search leaves out. */
25
+ absolutePath: string;
26
+ }
27
+ /** Whether `child` is `parent` or lies under it. */
28
+ export declare function within(child: string, parent: string): boolean;
29
+ /**
30
+ * Whether an assertion's scope reaches a path.
31
+ *
32
+ * For a file, exactly what the walk would do: under a target, not excluded, not
33
+ * inside a skipped directory, matched by `glob`, not one of the spec files, and
34
+ * in a language the assertion reads. For a directory, whether any of that could
35
+ * be true of something under it.
36
+ */
37
+ export declare function governs(assertion: Assertion, query: QueryPath): boolean;
38
+ /** A spec document, as a rule's reader needs to see it. */
39
+ export interface DocumentView {
40
+ file: string;
41
+ title: string | null;
42
+ /** The normalised status word, or null for a document that declares none. */
43
+ status: string | null;
44
+ /** The status line as written. */
45
+ label: string | null;
46
+ inForce: boolean;
47
+ }
48
+ /** A layer position: where a path sits in an `@assert-layers` order. */
49
+ export interface LayerPosition {
50
+ /** The layer the path belongs to, or null when no layer or two layers match it. */
51
+ layer: string | null;
52
+ /** 1-based position of that layer in the order. */
53
+ position: number | null;
54
+ /** Every layer that matches the path - more than one is a rule that fails. */
55
+ matches: string[];
56
+ /** The layers its imports may reach: its own and every one listed before it. */
57
+ mayImport: string[];
58
+ /** The layers its imports must not reach. */
59
+ mustNotImport: string[];
60
+ }
61
+ /** One rule, as a query reports it. */
62
+ export interface RuleView {
63
+ document: string;
64
+ line: number;
65
+ kind: DirectiveKind;
66
+ description: string;
67
+ reason: string | null;
68
+ /** Whether the document stating it is in force. */
69
+ inForce: boolean;
70
+ bounds: Bounds;
71
+ /** `@assert-present` only. */
72
+ files?: string[];
73
+ targets?: string[];
74
+ exclude?: string[];
75
+ /** The text rules. */
76
+ glob?: string[];
77
+ symbol?: string;
78
+ regex?: boolean;
79
+ word?: boolean;
80
+ ignoreCase?: boolean;
81
+ comments?: 'ignore' | 'include';
82
+ /** The import rules. */
83
+ modules?: string[];
84
+ types?: 'include' | 'ignore';
85
+ order?: string[];
86
+ /** Files exempted by a baseline - for a query, only those at or under the path. */
87
+ baseline?: readonly BaselineEntry[];
88
+ /** For `@assert-layers` asked about a path: where the path sits. */
89
+ position?: LayerPosition;
90
+ }
91
+ /**
92
+ * Where a path sits in a layer order.
93
+ *
94
+ * For a directory, the layer that matches the directory itself - which then
95
+ * matches every file under it, since a layer is an `exclude`-style pattern and
96
+ * those test every ancestor. A directory no layer matches may still hold files
97
+ * that one does, and is reported as belonging to none rather than guessed at.
98
+ */
99
+ export declare function layerPosition(order: readonly string[], relativePath: string): LayerPosition;
100
+ /**
101
+ * A rule as a report shows it, optionally as it applies to one path.
102
+ *
103
+ * Every field is what the directive said, resolved - never a default invented
104
+ * for display. A text rule reports its `glob` even when empty, because "every
105
+ * file" is a statement about scope a reader should not have to infer.
106
+ */
107
+ export declare function viewRule(assertion: Assertion, document: DocumentView, query?: QueryPath): RuleView;
108
+ //# sourceMappingURL=rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAEjG,yEAAyE;AACzE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AA4BD;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CA8BvE;AAID,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gFAAgF;IAChF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,uCAAuC;AACvC,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAY3F;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAwClG"}
package/dist/rules.js ADDED
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Which rules govern a path, decided from the specs alone.
3
+ *
4
+ * Pure. Nothing here reads the codebase: whether an assertion's scope reaches a
5
+ * path is arithmetic on the assertion's own `target`, `exclude` and `glob`, the
6
+ * run's skipped directory names, and the path's extension. That is the whole
7
+ * reason a query can answer in milliseconds - and it is also a claim, that the
8
+ * arithmetic agrees with the walk the assertion would really make. The suite
9
+ * holds it to that claim by comparing the two over real trees; ADR-0012 lists
10
+ * the three things arithmetic cannot see.
11
+ *
12
+ * A file is governed or it is not. A directory is governed when some file under
13
+ * it could be, and "could" is doing work: whether `glob="*.py"` matches anything
14
+ * in `src/` is a question about files that are not read here. The rule is shown
15
+ * with its filters rather than being guessed away.
16
+ */
17
+ import path from 'node:path';
18
+ import { createExcludeMatcher, createGlobMatcher } from './glob.js';
19
+ import { isGraphFile } from './graph.js';
20
+ import { ANALYSABLE_EXTENSIONS } from './imports.js';
21
+ import { layerMatcher } from './layers.js';
22
+ /** Whether `child` is `parent` or lies under it. */
23
+ export function within(child, parent) {
24
+ return parent === '.' || child === parent || child.startsWith(`${parent}/`);
25
+ }
26
+ /** Whether the file-reading part of an assertion can read this file at all. */
27
+ function readable(kind, relativePath) {
28
+ if (kind === 'assert-import-cycle')
29
+ return isGraphFile(relativePath);
30
+ if (kind === 'assert-import-absence' || kind === 'assert-import-count' || kind === 'assert-layers') {
31
+ return ANALYSABLE_EXTENSIONS.has(path.posix.extname(relativePath));
32
+ }
33
+ return true;
34
+ }
35
+ /**
36
+ * Whether the walk from `target` would step into a skipped directory on its way
37
+ * to `relativePath`.
38
+ *
39
+ * Only the directories below the target count, which is how the walk behaves: it
40
+ * never checks the name of the directory it was started in, so
41
+ * `target="node_modules/pkg"` is searched and `target="src"` does not reach
42
+ * `src/node_modules`.
43
+ */
44
+ function skippedOnTheWay(target, relativePath, options, isFile) {
45
+ // A target that is the path itself leaves this empty, and it splits into one
46
+ // empty name - which no skipped directory has.
47
+ const directories = path.posix.relative(target, relativePath).split('/');
48
+ if (isFile)
49
+ directories.pop();
50
+ return directories.some((name) => options.scope.skippedDirectories.has(name));
51
+ }
52
+ /**
53
+ * Whether an assertion's scope reaches a path.
54
+ *
55
+ * For a file, exactly what the walk would do: under a target, not excluded, not
56
+ * inside a skipped directory, matched by `glob`, not one of the spec files, and
57
+ * in a language the assertion reads. For a directory, whether any of that could
58
+ * be true of something under it.
59
+ */
60
+ export function governs(assertion, query) {
61
+ if (assertion.kind === 'assert-present') {
62
+ return assertion.files.some((file) => (query.shape === 'file' ? file === query.path : within(file, query.path)));
63
+ }
64
+ const options = assertion.search;
65
+ const excluded = createExcludeMatcher(options.excludeGlobs);
66
+ if (query.shape === 'file') {
67
+ return (assertion.targets.some((target) => within(query.path, target) && !skippedOnTheWay(target, query.path, options, true)) &&
68
+ !excluded(query.path) &&
69
+ createGlobMatcher(options.globs)(query.path) &&
70
+ !options.excludeFiles.has(query.absolutePath) &&
71
+ readable(assertion.kind, query.path));
72
+ }
73
+ return assertion.targets.some((target) => {
74
+ // The directory is inside the target: everything under it is walked unless
75
+ // the directory itself is skipped or excluded - and an excluded directory
76
+ // excludes all of its contents, because `exclude` tests every ancestor.
77
+ if (within(query.path, target)) {
78
+ return !skippedOnTheWay(target, query.path, options, false) && !excluded(query.path);
79
+ }
80
+ // The target is inside the directory: its files are under the directory.
81
+ return within(target, query.path) && !excluded(target);
82
+ });
83
+ }
84
+ /**
85
+ * Where a path sits in a layer order.
86
+ *
87
+ * For a directory, the layer that matches the directory itself - which then
88
+ * matches every file under it, since a layer is an `exclude`-style pattern and
89
+ * those test every ancestor. A directory no layer matches may still hold files
90
+ * that one does, and is reported as belonging to none rather than guessed at.
91
+ */
92
+ export function layerPosition(order, relativePath) {
93
+ const indices = layerMatcher(order)(relativePath);
94
+ const matches = indices.map((index) => order[index]);
95
+ if (indices.length !== 1)
96
+ return { layer: null, position: null, matches, mayImport: [], mustNotImport: [] };
97
+ const index = indices[0];
98
+ return {
99
+ layer: order[index],
100
+ position: index + 1,
101
+ matches,
102
+ mayImport: order.slice(0, index + 1),
103
+ mustNotImport: order.slice(index + 1),
104
+ };
105
+ }
106
+ /**
107
+ * A rule as a report shows it, optionally as it applies to one path.
108
+ *
109
+ * Every field is what the directive said, resolved - never a default invented
110
+ * for display. A text rule reports its `glob` even when empty, because "every
111
+ * file" is a statement about scope a reader should not have to infer.
112
+ */
113
+ export function viewRule(assertion, document, query) {
114
+ const view = {
115
+ document: document.file,
116
+ line: assertion.location.line,
117
+ kind: assertion.kind,
118
+ description: assertion.description,
119
+ reason: assertion.reason ?? null,
120
+ inForce: document.inForce,
121
+ bounds: assertion.bounds,
122
+ };
123
+ if (assertion.kind === 'assert-present')
124
+ return { ...view, files: assertion.files };
125
+ const options = assertion.search;
126
+ const baseline = query ? assertion.baseline.filter((entry) => within(entry.path, query.path)) : assertion.baseline;
127
+ const scoped = { ...view, targets: assertion.targets, exclude: options.excludeGlobs };
128
+ if (assertion.imports === undefined) {
129
+ return {
130
+ ...scoped,
131
+ glob: options.globs,
132
+ symbol: assertion.symbol,
133
+ regex: options.regex,
134
+ word: options.word,
135
+ ignoreCase: options.ignoreCase,
136
+ comments: options.ignoreComments ? 'ignore' : 'include',
137
+ baseline,
138
+ };
139
+ }
140
+ const types = assertion.imports.includeTypes ? 'include' : 'ignore';
141
+ if (assertion.kind === 'assert-import-cycle')
142
+ return { ...scoped, types };
143
+ if (assertion.layers === undefined)
144
+ return { ...scoped, modules: assertion.imports.modules, types, baseline };
145
+ return {
146
+ ...scoped,
147
+ order: assertion.layers,
148
+ types,
149
+ baseline,
150
+ ...(query ? { position: layerPosition(assertion.layers, query.path) } : {}),
151
+ };
152
+ }
153
+ //# sourceMappingURL=rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
package/dist/runner.d.ts CHANGED
@@ -49,6 +49,23 @@ export interface RunOptions {
49
49
  * look at literally everything.
50
50
  */
51
51
  defaultSkips?: boolean;
52
+ /**
53
+ * Execute every directive, whatever lifecycle status its document declares.
54
+ *
55
+ * The way to ask "would this draft pass if we accepted it today", and the
56
+ * escape hatch for a team whose `Proposed` means something else. Off by
57
+ * default, because the point of reading the status is to honour it.
58
+ */
59
+ ignoreStatus?: boolean;
60
+ /**
61
+ * Which resolved assertions to execute. Every one, when unset.
62
+ *
63
+ * For a caller that wants the rules governing a few paths rather than all of
64
+ * them - the MCP server's `check_architecture`. An assertion that is not
65
+ * selected is not executed and not counted; it is still resolved, so a
66
+ * malformed directive is an error whatever is selected.
67
+ */
68
+ select?: (assertion: Assertion) => boolean;
52
69
  }
53
70
  export interface RunResult extends RunReport {
54
71
  /** Spec files that were executed, relative to root. */
@@ -99,6 +116,13 @@ export declare function resolveDirective(directive: Directive, context: ResolveC
99
116
  } | {
100
117
  error: DirectiveError;
101
118
  };
119
+ /**
120
+ * The spec files a search must not count, as absolute paths.
121
+ *
122
+ * A spec names the symbol it forbids, so without this every absence rule would
123
+ * find itself. Empty under `--include-specs`.
124
+ */
125
+ export declare function specExclusions(specFiles: readonly string[], includeSpecs: boolean): ReadonlySet<string>;
102
126
  export interface ExecuteOptions {
103
127
  root: string;
104
128
  engine: Engine;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}