code-ranker 3.0.0__tar.gz → 3.0.1__tar.gz

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 (305) hide show
  1. {code_ranker-3.0.0 → code_ranker-3.0.1}/Cargo.lock +5 -5
  2. {code_ranker-3.0.0 → code_ranker-3.0.1}/Cargo.toml +5 -5
  3. {code_ranker-3.0.0 → code_ranker-3.0.1}/PKG-INFO +1 -1
  4. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/build.rs +25 -9
  5. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/templates_test.rs +31 -0
  6. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/tests/e2e.rs +199 -0
  7. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/builtin_test.rs +28 -0
  8. {code_ranker-3.0.0 → code_ranker-3.0.1}/LICENSE +0 -0
  9. {code_ranker-3.0.0 → code_ranker-3.0.1}/README.md +0 -0
  10. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/Cargo.toml +0 -0
  11. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/analyze.rs +0 -0
  12. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/check/sarif.rs +0 -0
  13. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/check/values.rs +0 -0
  14. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/check.rs +0 -0
  15. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/check_test.rs +0 -0
  16. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/cli.rs +0 -0
  17. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/compose.rs +0 -0
  18. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/compose_test.rs +0 -0
  19. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/defaults.toml +0 -0
  20. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/ignore.rs +0 -0
  21. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/load/overrides.rs +0 -0
  22. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/load.rs +0 -0
  23. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/load_test.rs +0 -0
  24. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/metrics.rs +0 -0
  25. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/mod.rs +0 -0
  26. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/model.rs +0 -0
  27. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/model_test.rs +0 -0
  28. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/rules.rs +0 -0
  29. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/violations.rs +0 -0
  30. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/config/violations_test.rs +0 -0
  31. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/export.rs +0 -0
  32. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/git.rs +0 -0
  33. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/logger.rs +0 -0
  34. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/main.rs +0 -0
  35. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/pipeline/assemble.rs +0 -0
  36. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/pipeline/helpers.rs +0 -0
  37. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/pipeline.rs +0 -0
  38. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/pipeline_test.rs +0 -0
  39. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/plugin/mod.rs +0 -0
  40. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/plugin/mod_test.rs +0 -0
  41. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/recommend/prompt.rs +0 -0
  42. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/recommend/scorecard.rs +0 -0
  43. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/recommend.rs +0 -0
  44. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/recommend_test.rs +0 -0
  45. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/report.rs +0 -0
  46. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/report_test.rs +0 -0
  47. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/src/templates.rs +0 -0
  48. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-cli/tests/grammar_single_version.rs +0 -0
  49. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/Cargo.toml +0 -0
  50. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/metrics/builtin.toml +0 -0
  51. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/metrics/prompt.md +0 -0
  52. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/attrs.rs +0 -0
  53. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/builtin/write.rs +0 -0
  54. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/builtin.rs +0 -0
  55. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/checks/text.rs +0 -0
  56. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/checks.rs +0 -0
  57. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/checks_test.rs +0 -0
  58. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/cycles.rs +0 -0
  59. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/cycles_test.rs +0 -0
  60. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/finalize.rs +0 -0
  61. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/hk.rs +0 -0
  62. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/level_graph.rs +0 -0
  63. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/lib.rs +0 -0
  64. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/nodepath.rs +0 -0
  65. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/registry/eval.rs +0 -0
  66. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/registry/model.rs +0 -0
  67. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/registry.rs +0 -0
  68. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/registry_cover_test.rs +0 -0
  69. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/registry_test.rs +0 -0
  70. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/relativize.rs +0 -0
  71. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/relativize_test.rs +0 -0
  72. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/serialize.rs +0 -0
  73. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/snapshot.rs +0 -0
  74. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-graph/src/stats.rs +0 -0
  75. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/Cargo.toml +0 -0
  76. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/attrs.rs +0 -0
  77. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/detection.rs +0 -0
  78. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/edge.rs +0 -0
  79. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/graph.rs +0 -0
  80. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/level.rs +0 -0
  81. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/lib.rs +0 -0
  82. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/list_override.rs +0 -0
  83. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/list_override_test.rs +0 -0
  84. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/log.rs +0 -0
  85. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/metrics.rs +0 -0
  86. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/node.rs +0 -0
  87. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/plugin.rs +0 -0
  88. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/preset.rs +0 -0
  89. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/report.rs +0 -0
  90. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugin-api/src/toml_merge.rs +0 -0
  91. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/Cargo.toml +0 -0
  92. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/config/lookup.rs +0 -0
  93. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/config/mod.rs +0 -0
  94. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/config/parse.rs +0 -0
  95. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/config/specs.rs +0 -0
  96. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/config/views.rs +0 -0
  97. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/defaults.toml +0 -0
  98. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/engine/cognitive.rs +0 -0
  99. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/engine/core.rs +0 -0
  100. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/engine/halstead.rs +0 -0
  101. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/engine/loc.rs +0 -0
  102. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/engine/mod.rs +0 -0
  103. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/engine/roles.rs +0 -0
  104. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/engine/structural.rs +0 -0
  105. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/engine/tests/roles.rs +0 -0
  106. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/README.md +0 -0
  107. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/config.toml +0 -0
  108. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/dialect.rs +0 -0
  109. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/mod.rs +0 -0
  110. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/dialect.rs +0 -0
  111. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/mod_rs.rs +0 -0
  112. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/code-ranker-check.codequality.json +0 -0
  113. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/code-ranker-check.sarif +0 -0
  114. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/code-ranker-report.json +0 -0
  115. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/code-ranker.toml +0 -0
  116. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/main.c +0 -0
  117. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/mathx.c +0 -0
  118. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/mathx.h +0 -0
  119. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/util.c +0 -0
  120. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/c/tests/sample/util.h +0 -0
  121. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cfamily/config.toml +0 -0
  122. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cfamily/mod.rs +0 -0
  123. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cfamily/tests/mod_rs.rs +0 -0
  124. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/config.toml +0 -0
  125. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/dialect.rs +0 -0
  126. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/mod.rs +0 -0
  127. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/dialect.rs +0 -0
  128. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/mod_rs.rs +0 -0
  129. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/code-ranker-check.codequality.json +0 -0
  130. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/code-ranker-check.sarif +0 -0
  131. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/code-ranker-report.json +0 -0
  132. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/code-ranker.toml +0 -0
  133. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/main.cpp +0 -0
  134. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/mathx.cpp +0 -0
  135. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/mathx.hpp +0 -0
  136. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/util.cpp +0 -0
  137. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/cpp/tests/sample/util.hpp +0 -0
  138. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/config.toml +0 -0
  139. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/dialect.rs +0 -0
  140. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/mod.rs +0 -0
  141. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/structure.rs +0 -0
  142. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/dialect.rs +0 -0
  143. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/mod_rs.rs +0 -0
  144. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/sample/Main.cs +0 -0
  145. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/sample/Mathx.cs +0 -0
  146. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/sample/Util.cs +0 -0
  147. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/sample/code-ranker-check.codequality.json +0 -0
  148. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/sample/code-ranker-check.sarif +0 -0
  149. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/sample/code-ranker-report.json +0 -0
  150. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/sample/code-ranker.toml +0 -0
  151. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/csharp/tests/structure.rs +0 -0
  152. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/cfg.rs +0 -0
  153. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/config.toml +0 -0
  154. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/dialect.rs +0 -0
  155. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/imports.rs +0 -0
  156. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/mod.rs +0 -0
  157. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/structure.rs +0 -0
  158. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/tests/dialect.rs +0 -0
  159. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/tests/mod_rs.rs +0 -0
  160. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/ecmascript/tests/structure.rs +0 -0
  161. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/config.toml +0 -0
  162. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/dialect.rs +0 -0
  163. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/mod.rs +0 -0
  164. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/structure.rs +0 -0
  165. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/dialect.rs +0 -0
  166. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/mod_rs.rs +0 -0
  167. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/sample/code-ranker-check.codequality.json +0 -0
  168. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/sample/code-ranker-check.sarif +0 -0
  169. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/sample/code-ranker-report.json +0 -0
  170. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/sample/code-ranker.toml +0 -0
  171. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/sample/go.mod +0 -0
  172. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/sample/main.go +0 -0
  173. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/sample/mathx/mathx.go +0 -0
  174. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/sample/util/util.go +0 -0
  175. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/go/tests/structure.rs +0 -0
  176. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/config.toml +0 -0
  177. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/mod.rs +0 -0
  178. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/mod_rs.rs +0 -0
  179. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/code-ranker-check.codequality.json +0 -0
  180. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/code-ranker-check.sarif +0 -0
  181. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/code-ranker-report.json +0 -0
  182. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/code-ranker.toml +0 -0
  183. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/src/a.js +0 -0
  184. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/src/a.test.js +0 -0
  185. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/src/b.js +0 -0
  186. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/src/c.js +0 -0
  187. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/src/complex.js +0 -0
  188. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/src/dynamic.js +0 -0
  189. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/src/m1.js +0 -0
  190. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/javascript/tests/sample/src/m2.js +0 -0
  191. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/config.toml +0 -0
  192. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/mod.rs +0 -0
  193. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/structure.rs +0 -0
  194. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/mod_rs.rs +0 -0
  195. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/sample/api.md +0 -0
  196. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/sample/code-ranker-check.codequality.json +0 -0
  197. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/sample/code-ranker-check.sarif +0 -0
  198. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/sample/code-ranker-report.json +0 -0
  199. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/sample/code-ranker.toml +0 -0
  200. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/sample/guide.md +0 -0
  201. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/sample/index.md +0 -0
  202. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/markdown/tests/structure.rs +0 -0
  203. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/mod.rs +0 -0
  204. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/config.toml +0 -0
  205. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/dialect.rs +0 -0
  206. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/imports.rs +0 -0
  207. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/mod.rs +0 -0
  208. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/structure.rs +0 -0
  209. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/dialect.rs +0 -0
  210. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/mod_rs.rs +0 -0
  211. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/code-ranker-check.codequality.json +0 -0
  212. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/code-ranker-check.sarif +0 -0
  213. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/code-ranker-report.json +0 -0
  214. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/code-ranker.toml +0 -0
  215. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/pkg/__init__.py +0 -0
  216. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/pkg/a.py +0 -0
  217. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/pkg/b.py +0 -0
  218. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/pkg/c.py +0 -0
  219. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/pkg/chain1.py +0 -0
  220. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/pkg/chain2.py +0 -0
  221. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/pkg/chain3.py +0 -0
  222. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/pkg/complex.py +0 -0
  223. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/sample/tests/test_pkg.py +0 -0
  224. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/python/tests/structure.rs +0 -0
  225. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/analyze.rs +0 -0
  226. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/cfg.rs +0 -0
  227. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/collapse.rs +0 -0
  228. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/config.toml +0 -0
  229. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/crate_graph.rs +0 -0
  230. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/dialect.rs +0 -0
  231. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/ids.rs +0 -0
  232. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/internal.rs +0 -0
  233. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/mod.rs +0 -0
  234. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/module_graph/resolve.rs +0 -0
  235. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/module_graph/shared.rs +0 -0
  236. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/module_graph/visitors.rs +0 -0
  237. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/module_graph/walk.rs +0 -0
  238. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/module_graph.rs +0 -0
  239. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/strip.rs +0 -0
  240. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/test_attr.rs +0 -0
  241. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/tests/collapse.rs +0 -0
  242. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/tests/dialect.rs +0 -0
  243. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/tests/internal.rs +0 -0
  244. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/tests/mod_rs.rs +0 -0
  245. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/tests/resolve.rs +0 -0
  246. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/tests/shared.rs +0 -0
  247. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/tests/walk.rs +0 -0
  248. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/rust/toolchain.rs +0 -0
  249. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/config.toml +0 -0
  250. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/mod.rs +0 -0
  251. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/mod_rs.rs +0 -0
  252. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/code-ranker-check.codequality.json +0 -0
  253. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/code-ranker-check.sarif +0 -0
  254. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/code-ranker-report.json +0 -0
  255. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/code-ranker.toml +0 -0
  256. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/a.test.ts +0 -0
  257. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/a.ts +0 -0
  258. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/b.ts +0 -0
  259. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/chain1.ts +0 -0
  260. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/chain2.ts +0 -0
  261. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/chain3.ts +0 -0
  262. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/complex.ts +0 -0
  263. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/lazy.ts +0 -0
  264. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/types.ts +0 -0
  265. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/src/util.ts +0 -0
  266. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/languages/typescript/tests/sample/tsconfig.json +0 -0
  267. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/lib.rs +0 -0
  268. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/test_support.rs +0 -0
  269. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/tests/config.rs +0 -0
  270. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/tests/walk.rs +0 -0
  271. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-plugins/src/walk.rs +0 -0
  272. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/Cargo.toml +0 -0
  273. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/app.js +0 -0
  274. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/base.css +0 -0
  275. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/diff.js +0 -0
  276. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/export-popup.js +0 -0
  277. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/export.css +0 -0
  278. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/graphviz.umd.js +0 -0
  279. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/grouping.js +0 -0
  280. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/index.html +0 -0
  281. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/layout.js +0 -0
  282. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/map-interactions.js +0 -0
  283. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/map-render.js +0 -0
  284. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/map-svg.css +0 -0
  285. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/map.css +0 -0
  286. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/modal-content.js +0 -0
  287. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/modal.css +0 -0
  288. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/modal.js +0 -0
  289. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/nav.js +0 -0
  290. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/node-popup.js +0 -0
  291. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/node-table.js +0 -0
  292. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/panzoom.js +0 -0
  293. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/schema.js +0 -0
  294. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/snap-controls.js +0 -0
  295. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/snap.css +0 -0
  296. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/snarkdown.umd.js +0 -0
  297. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/source-links.js +0 -0
  298. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/summary.js +0 -0
  299. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/tables.css +0 -0
  300. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/tooltip.js +0 -0
  301. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/ui.js +0 -0
  302. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/utils.js +0 -0
  303. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/assets/view-state.js +0 -0
  304. {code_ranker-3.0.0 → code_ranker-3.0.1}/crates/code-ranker-viewer/src/lib.rs +0 -0
  305. {code_ranker-3.0.0 → code_ranker-3.0.1}/pyproject.toml +0 -0
@@ -268,7 +268,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
268
268
 
269
269
  [[package]]
270
270
  name = "code-ranker"
271
- version = "3.0.0"
271
+ version = "3.0.1"
272
272
  dependencies = [
273
273
  "anyhow",
274
274
  "chrono",
@@ -286,7 +286,7 @@ dependencies = [
286
286
 
287
287
  [[package]]
288
288
  name = "code-ranker-graph"
289
- version = "3.0.0"
289
+ version = "3.0.1"
290
290
  dependencies = [
291
291
  "cel",
292
292
  "chrono",
@@ -298,7 +298,7 @@ dependencies = [
298
298
 
299
299
  [[package]]
300
300
  name = "code-ranker-plugin-api"
301
- version = "3.0.0"
301
+ version = "3.0.1"
302
302
  dependencies = [
303
303
  "anyhow",
304
304
  "chrono",
@@ -309,7 +309,7 @@ dependencies = [
309
309
 
310
310
  [[package]]
311
311
  name = "code-ranker-plugins"
312
- version = "3.0.0"
312
+ version = "3.0.1"
313
313
  dependencies = [
314
314
  "anyhow",
315
315
  "cargo_metadata",
@@ -336,7 +336,7 @@ dependencies = [
336
336
 
337
337
  [[package]]
338
338
  name = "code-ranker-viewer"
339
- version = "3.0.0"
339
+ version = "3.0.1"
340
340
  dependencies = [
341
341
  "anyhow",
342
342
  "code-ranker-graph",
@@ -3,7 +3,7 @@ members = ["crates/*"]
3
3
  resolver = "3"
4
4
 
5
5
  [workspace.package]
6
- version = "3.0.0"
6
+ version = "3.0.1"
7
7
  edition = "2024"
8
8
  rust-version = "1.88"
9
9
  license = "Apache-2.0"
@@ -12,10 +12,10 @@ keywords = ["dependency-graph", "coupling", "refactoring", "code-quality", "stat
12
12
  categories = ["development-tools", "command-line-utilities"]
13
13
 
14
14
  [workspace.dependencies]
15
- code-ranker-graph = { path = "crates/code-ranker-graph", version = "3.0.0" }
16
- code-ranker-plugin-api = { path = "crates/code-ranker-plugin-api", version = "3.0.0" }
17
- code-ranker-plugins = { path = "crates/code-ranker-plugins", version = "3.0.0" }
18
- code-ranker-viewer = { path = "crates/code-ranker-viewer", version = "3.0.0" }
15
+ code-ranker-graph = { path = "crates/code-ranker-graph", version = "3.0.1" }
16
+ code-ranker-plugin-api = { path = "crates/code-ranker-plugin-api", version = "3.0.1" }
17
+ code-ranker-plugins = { path = "crates/code-ranker-plugins", version = "3.0.1" }
18
+ code-ranker-viewer = { path = "crates/code-ranker-viewer", version = "3.0.1" }
19
19
 
20
20
  anyhow = "1.0"
21
21
  cel = "0.13"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-ranker
3
- Version: 3.0.0
3
+ Version: 3.0.1
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -4,23 +4,39 @@
4
4
  //! `CORPUS: &[(rel_path, contents)]` slice built from `include_str!`, so the tool
5
5
  //! can serve a principle's Markdown (e.g. `--doc HK`) from the binary itself with
6
6
  //! no filesystem at runtime. Dependency-free (no `include_dir` crate).
7
+ //!
8
+ //! The corpus lives at the repo root (`../../languages`), OUTSIDE this crate, so it
9
+ //! is NOT in the published crate tarball. A workspace build (the prebuilt binaries
10
+ //! shipped via the installer / npm / PyPI / Docker / GitHub Release) finds it and
11
+ //! embeds the full corpus; an ISOLATED build (`cargo publish` verify, or
12
+ //! `cargo install code-ranker` from crates.io source) won't — so the corpus is
13
+ //! resolved best-effort and absence yields an EMPTY corpus (never a build failure).
14
+ //! `--doc` then reports "not embedded" on such builds; everything else works.
7
15
 
8
16
  use std::path::{Path, PathBuf};
9
17
  use std::{env, fs};
10
18
 
11
19
  fn main() {
12
20
  let manifest = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR");
13
- let corpus = Path::new(&manifest)
14
- .join("../../languages")
15
- .canonicalize()
16
- .expect("languages/ corpus directory exists");
17
-
18
- // Re-run when the tree changes (added/removed files) and on any file edit.
19
- println!("cargo:rerun-if-changed={}", corpus.display());
20
21
 
21
22
  let mut entries: Vec<(String, PathBuf)> = Vec::new();
22
- collect(&corpus, &corpus, &mut entries);
23
- entries.sort();
23
+ // Best-effort: a missing corpus (isolated/published build) is NOT an error —
24
+ // it must never break `cargo publish`/`cargo install`. See module docs.
25
+ match Path::new(&manifest).join("../../languages").canonicalize() {
26
+ Ok(corpus) => {
27
+ // Re-run when the tree changes (added/removed files) and on any file edit.
28
+ println!("cargo:rerun-if-changed={}", corpus.display());
29
+ collect(&corpus, &corpus, &mut entries);
30
+ entries.sort();
31
+ }
32
+ Err(_) => {
33
+ println!(
34
+ "cargo:warning=languages/ corpus not found (isolated build, e.g. \
35
+ `cargo install code-ranker` from crates.io) — embedding an empty corpus; \
36
+ `--doc` will report \"not embedded\". Prebuilt binaries embed the full corpus."
37
+ );
38
+ }
39
+ }
24
40
 
25
41
  let mut code = String::from(
26
42
  "/// Embedded doc corpus: (`<lang>/<ID>.md` relative path, file contents).\n\
@@ -74,6 +74,37 @@ fn resolve_doc_assembles_a_language_manifest() {
74
74
  assert!(!doc.contains("<!-- doc:base"), "includes were expanded");
75
75
  }
76
76
 
77
+ #[test]
78
+ fn resolve_doc_manifest_uses_base_override_when_present() {
79
+ // A `templates.languages.base.<ID>` override substitutes the neutral base that
80
+ // a language manifest assembles over, so the custom base flows into the result.
81
+ let dir = tempfile::tempdir().unwrap();
82
+ let base_path = dir.path().join("base_adp.md");
83
+ let custom_base = corpus_doc("base/ADP.md")
84
+ .unwrap()
85
+ .replace("Acyclic", "ZZ-MARKER-ACYCLIC");
86
+ std::fs::write(&base_path, &custom_base).unwrap();
87
+ let mut templates = TemplatesConfig::default();
88
+ let mut base_overrides = BTreeMap::new();
89
+ base_overrides.insert("ADP".to_string(), base_path.to_string_lossy().into_owned());
90
+ templates
91
+ .languages
92
+ .insert("base".to_string(), base_overrides);
93
+
94
+ let s = snap(
95
+ vec![preset("ADP", "https://x/blob/main/languages/rust/ADP.md")],
96
+ BTreeMap::new(),
97
+ );
98
+ let doc = resolve_doc(&s, &templates, "ADP").unwrap();
99
+ let manifest = corpus_doc("rust/ADP.md").unwrap();
100
+ let expected = crate::compose::compose(manifest, &custom_base, "Rust").unwrap();
101
+ assert_eq!(doc, expected);
102
+ assert!(
103
+ doc.contains("ZZ-MARKER-ACYCLIC"),
104
+ "custom base flowed in: {doc}"
105
+ );
106
+ }
107
+
77
108
  #[test]
78
109
  fn resolve_doc_override_wins_verbatim() {
79
110
  let dir = tempfile::tempdir().unwrap();
@@ -460,6 +460,205 @@ fn rust_sample_check_baseline_verdict_neutral() {
460
460
  );
461
461
  }
462
462
 
463
+ /// The self-baseline verdict also renders in the default human format as a
464
+ /// trailing `Baseline verdict:` line (the json test above covers the wrapper).
465
+ #[test]
466
+ fn rust_sample_check_baseline_verdict_human() {
467
+ let root = repo_root();
468
+ let sample = sample_dir("rust");
469
+ let tmp = std::env::temp_dir().join("cs-e2e-baseline-rust-human.json");
470
+ let report = Command::new(env!("CARGO_BIN_EXE_code-ranker"))
471
+ .current_dir(&root)
472
+ .env("CARGO_NET_OFFLINE", "true")
473
+ .arg("report")
474
+ .arg(&sample)
475
+ .arg("--config")
476
+ .arg(sample.join("code-ranker.toml"))
477
+ .arg(format!("--output.json.path={}", tmp.display()))
478
+ .output()
479
+ .expect("spawn report");
480
+ assert!(report.status.success(), "baseline report");
481
+ let (_ok, stdout, _stderr) = run_check_capture("rust", &["--baseline", tmp.to_str().unwrap()]);
482
+ assert!(
483
+ stdout.contains("Baseline verdict: neutral"),
484
+ "human output carries the verdict line: {stdout}"
485
+ );
486
+ }
487
+
488
+ /// `check --focus-path` scopes the gate to a subtree: only violations under the
489
+ /// path are reported and counted. The Rust sample's `chain` cycle lives in
490
+ /// `src/chain/`, so focusing there keeps it and drops the `src/a.rs` mutual cycle.
491
+ #[test]
492
+ fn rust_sample_check_focus_path_scopes_gate() {
493
+ let (_ok, stdout, stderr) = run_check_capture("rust", &["--focus-path", "src/chain"]);
494
+ assert!(
495
+ stdout.contains("1 violation(s)") && stdout.contains("focused on path src/chain"),
496
+ "gate scoped to the focused subtree: {stdout}{stderr}"
497
+ );
498
+ assert!(
499
+ stdout.contains("src/chain/one.rs") && !stdout.contains("where {target}/src/a.rs"),
500
+ "only the in-scope cycle is reported: {stdout}"
501
+ );
502
+ }
503
+
504
+ /// `check --focus-rule` scopes the gate to a rule id: focusing `cycle.mutual` keeps
505
+ /// the `a ⇄ b` mutual cycle and drops the chain cycle.
506
+ #[test]
507
+ fn rust_sample_check_focus_rule_scopes_gate() {
508
+ let (_ok, stdout, stderr) = run_check_capture("rust", &["--focus-rule", "cycle.mutual"]);
509
+ assert!(
510
+ stdout.contains("1 violation(s)") && stdout.contains("focused on rule cycle.mutual"),
511
+ "gate scoped to the focused rule: {stdout}{stderr}"
512
+ );
513
+ assert!(
514
+ stdout.contains("src/a.rs"),
515
+ "the mutual-cycle member is reported: {stdout}"
516
+ );
517
+ }
518
+
519
+ /// `check --top N` limits how many violations are PRINTED (worst-first) without
520
+ /// changing the exit code: the Rust sample's 2 cycles still fail the gate, but
521
+ /// only the worst is shown plus a "showing the N worst" note.
522
+ #[test]
523
+ fn rust_sample_check_top_limits_reported_not_exit() {
524
+ let (ok, stdout, stderr) = run_check_capture("rust", &["--top", "1"]);
525
+ assert!(
526
+ !ok,
527
+ "gate still fails on the full violation count: {stderr}"
528
+ );
529
+ assert!(
530
+ stdout.contains("2 violation(s)") && stdout.contains("showing the 1 worst"),
531
+ "total counted, only the worst shown: {stdout}"
532
+ );
533
+ assert!(
534
+ stdout.contains("Summary (shown):"),
535
+ "summary marked as a partial view: {stdout}"
536
+ );
537
+ }
538
+
539
+ /// `report --prompt <metric>` composes the prompt through the metric lens (a
540
+ /// synthesized metric "preset"), not a SOLID principle — exercising the metric
541
+ /// arm of the standalone `--prompt` path.
542
+ #[test]
543
+ fn rust_sample_prompt_flag_targets_metric_lens() {
544
+ let (ok, stdout, stderr) = run_report_capture("rust", &["--prompt", "HK", "--top", "1"]);
545
+ assert!(ok, "--prompt HK run failed: {stderr}");
546
+ assert!(
547
+ stdout.contains("# HK") || stdout.contains("Henry"),
548
+ "metric-framed prompt, not a principle: {stdout}"
549
+ );
550
+ }
551
+
552
+ /// `--prompt` and `--doc` are mutually exclusive (the standalone-output guard).
553
+ #[test]
554
+ fn rust_sample_report_rejects_prompt_with_doc() {
555
+ let (ok, _stdout, stderr) = run_report_capture("rust", &["--prompt", "HK", "--doc", "SRP"]);
556
+ assert!(!ok, "mutually-exclusive flags must error");
557
+ assert!(
558
+ stderr.contains("--prompt and --doc are mutually exclusive"),
559
+ "names the conflict: {stderr}"
560
+ );
561
+ }
562
+
563
+ /// `docs --out <dir>` assembles the embedded corpus to disk: `base/*` verbatim and
564
+ /// each language manifest as its composed Markdown. No analysis runs.
565
+ #[test]
566
+ fn docs_subcommand_writes_the_corpus() {
567
+ let root = repo_root();
568
+ let out = std::env::temp_dir().join("cs-e2e-docs-corpus");
569
+ let _ = std::fs::remove_dir_all(&out);
570
+ let res = Command::new(env!("CARGO_BIN_EXE_code-ranker"))
571
+ .current_dir(&root)
572
+ .arg("docs")
573
+ .arg("--out")
574
+ .arg(&out)
575
+ .output()
576
+ .expect("spawn docs");
577
+ assert!(res.status.success(), "docs run failed");
578
+ assert!(out.join("base/ADP.md").exists(), "base doc copied verbatim");
579
+ let assembled = std::fs::read_to_string(out.join("rust/ADP.md")).unwrap();
580
+ assert!(
581
+ !assembled.contains("<!-- doc:base"),
582
+ "manifest includes expanded on publish: {assembled}"
583
+ );
584
+ }
585
+
586
+ /// With no `--output.*` flag selected, `report` writes the default pair: a JSON
587
+ /// snapshot and an HTML viewer (into `.code-ranker/` relative to the run dir).
588
+ #[test]
589
+ fn report_default_writes_json_and_html() {
590
+ let sample = sample_dir("rust");
591
+ let run_dir = std::env::temp_dir().join("cs-e2e-report-default");
592
+ let _ = std::fs::remove_dir_all(&run_dir);
593
+ std::fs::create_dir_all(&run_dir).unwrap();
594
+ let res = Command::new(env!("CARGO_BIN_EXE_code-ranker"))
595
+ .current_dir(&run_dir)
596
+ .env("CARGO_NET_OFFLINE", "true")
597
+ .arg("report")
598
+ .arg(&sample)
599
+ .arg("--config")
600
+ .arg(sample.join("code-ranker.toml"))
601
+ .output()
602
+ .expect("spawn report");
603
+ assert!(res.status.success(), "default report failed");
604
+ let written: Vec<String> = std::fs::read_dir(run_dir.join(".code-ranker"))
605
+ .expect(".code-ranker created")
606
+ .map(|e| e.unwrap().file_name().to_string_lossy().into_owned())
607
+ .collect();
608
+ assert!(
609
+ written.iter().any(|f| f.ends_with(".json")),
610
+ "json snapshot written: {written:?}"
611
+ );
612
+ assert!(
613
+ written.iter().any(|f| f.ends_with(".html")),
614
+ "html viewer written: {written:?}"
615
+ );
616
+ }
617
+
618
+ /// A `--baseline` turns the HTML viewer into a diff and marks the filename
619
+ /// `…-diff.html` (the rename branch of the html artifact path).
620
+ #[test]
621
+ fn report_baseline_html_is_named_diff() {
622
+ let root = repo_root();
623
+ let sample = sample_dir("rust");
624
+ let dir = std::env::temp_dir().join("cs-e2e-report-diff");
625
+ let _ = std::fs::remove_dir_all(&dir);
626
+ std::fs::create_dir_all(&dir).unwrap();
627
+ let base = dir.join("base.json");
628
+ let html = dir.join("viewer.html");
629
+ // Capture a baseline snapshot.
630
+ let cap = Command::new(env!("CARGO_BIN_EXE_code-ranker"))
631
+ .current_dir(&root)
632
+ .env("CARGO_NET_OFFLINE", "true")
633
+ .arg("report")
634
+ .arg(&sample)
635
+ .arg("--config")
636
+ .arg(sample.join("code-ranker.toml"))
637
+ .arg(format!("--output.json.path={}", base.display()))
638
+ .output()
639
+ .expect("spawn baseline report");
640
+ assert!(cap.status.success(), "baseline capture failed");
641
+ // Render the HTML viewer against that baseline.
642
+ let res = Command::new(env!("CARGO_BIN_EXE_code-ranker"))
643
+ .current_dir(&root)
644
+ .env("CARGO_NET_OFFLINE", "true")
645
+ .arg("report")
646
+ .arg(&sample)
647
+ .arg("--config")
648
+ .arg(sample.join("code-ranker.toml"))
649
+ .arg("--baseline")
650
+ .arg(&base)
651
+ .arg(format!("--output.html.path={}", html.display()))
652
+ .output()
653
+ .expect("spawn diff report");
654
+ assert!(res.status.success(), "diff report failed");
655
+ assert!(
656
+ dir.join("viewer-diff.html").exists(),
657
+ "baseline run renames the html artifact to -diff.html"
658
+ );
659
+ assert!(!html.exists(), "the plain name is not used for a diff");
660
+ }
661
+
463
662
  /// The `scorecard` format streams a per-principle table + worst-module list to
464
663
  /// stdout. The Rust sample has two cycles (the `a ⇄ b` mutual and the 3-node
465
664
  /// `chain`) and no metric breaches, so ADP is the only principle with violations
@@ -27,6 +27,34 @@ fn prompt_template_parses_from_markdown() {
27
27
  assert!(t.cycle_note.starts_with("This is **one** dependency cycle"));
28
28
  }
29
29
 
30
+ /// `prompt_template_from` is the hook a `[templates] prompt = "…"` override flows
31
+ /// through: it parses caller-supplied scaffolding instead of the built-in default.
32
+ #[test]
33
+ fn prompt_template_from_parses_caller_supplied_markdown() {
34
+ let md =
35
+ "## intro\nCustom intro line.\n\n## task\n- first\n- second\n\n## focus\nStay sharp.\n";
36
+ let t = prompt_template_from(md);
37
+ assert_eq!(t.intro, "Custom intro line.");
38
+ assert_eq!(t.task, vec!["- first", "- second"]);
39
+ assert_eq!(t.focus, "Stay sharp.");
40
+ // Unspecified sections stay at their default (empty).
41
+ assert!(t.cycle_note.is_empty());
42
+ }
43
+
44
+ /// `aggregate_formulas` exposes every `[report.stats]` formula; `stat_keys` is the
45
+ /// subset whose formula is a plain mean — so the keys must be a subset of the map.
46
+ #[test]
47
+ fn aggregate_formulas_superset_of_stat_keys() {
48
+ let formulas = aggregate_formulas();
49
+ assert!(!formulas.is_empty(), "built-in report.stats is non-empty");
50
+ for k in stat_keys() {
51
+ assert!(
52
+ formulas.contains_key(&k),
53
+ "stat key {k:?} has a backing formula"
54
+ );
55
+ }
56
+ }
57
+
30
58
  #[test]
31
59
  fn parses_and_compiles() {
32
60
  let (specs, groups) = metric_specs();
File without changes
File without changes