codedna 0.5.0__tar.gz → 0.5.2__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 (365) hide show
  1. {codedna-0.5.0 → codedna-0.5.2}/CHANGELOG.md +23 -0
  2. {codedna-0.5.0 → codedna-0.5.2}/PKG-INFO +1 -1
  3. {codedna-0.5.0 → codedna-0.5.2}/codedna/__init__.py +1 -1
  4. {codedna-0.5.0 → codedna-0.5.2}/codedna/cli.py +254 -52
  5. {codedna-0.5.0 → codedna-0.5.2}/pyproject.toml +1 -1
  6. {codedna-0.5.0 → codedna-0.5.2}/.env.example +0 -0
  7. {codedna-0.5.0 → codedna-0.5.2}/.github/CODEOWNERS +0 -0
  8. {codedna-0.5.0 → codedna-0.5.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  9. {codedna-0.5.0 → codedna-0.5.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  10. {codedna-0.5.0 → codedna-0.5.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  11. {codedna-0.5.0 → codedna-0.5.2}/.github/dependabot.yml +0 -0
  12. {codedna-0.5.0 → codedna-0.5.2}/.github/workflows/codedna.yml +0 -0
  13. {codedna-0.5.0 → codedna-0.5.2}/.github/workflows/codeql.yml +0 -0
  14. {codedna-0.5.0 → codedna-0.5.2}/.github/workflows/test.yml +0 -0
  15. {codedna-0.5.0 → codedna-0.5.2}/.gitignore +0 -0
  16. {codedna-0.5.0 → codedna-0.5.2}/.python-version +0 -0
  17. {codedna-0.5.0 → codedna-0.5.2}/CONTRIBUTING.md +0 -0
  18. {codedna-0.5.0 → codedna-0.5.2}/LICENSE +0 -0
  19. {codedna-0.5.0 → codedna-0.5.2}/README.md +0 -0
  20. {codedna-0.5.0 → codedna-0.5.2}/SECURITY.md +0 -0
  21. {codedna-0.5.0 → codedna-0.5.2}/codedna/ai.py +0 -0
  22. {codedna-0.5.0 → codedna-0.5.2}/codedna/ai_box.py +0 -0
  23. {codedna-0.5.0 → codedna-0.5.2}/codedna/ai_fingerprint.py +0 -0
  24. {codedna-0.5.0 → codedna-0.5.2}/codedna/analyzer.py +0 -0
  25. {codedna-0.5.0 → codedna-0.5.2}/codedna/api.py +0 -0
  26. {codedna-0.5.0 → codedna-0.5.2}/codedna/auth.py +0 -0
  27. {codedna-0.5.0 → codedna-0.5.2}/codedna/bus_factor.py +0 -0
  28. {codedna-0.5.0 → codedna-0.5.2}/codedna/db.py +0 -0
  29. {codedna-0.5.0 → codedna-0.5.2}/codedna/demo.py +0 -0
  30. {codedna-0.5.0 → codedna-0.5.2}/codedna/git_hook.py +0 -0
  31. {codedna-0.5.0 → codedna-0.5.2}/codedna/integrations/__init__.py +0 -0
  32. {codedna-0.5.0 → codedna-0.5.2}/codedna/integrations/github_bot.py +0 -0
  33. {codedna-0.5.0 → codedna-0.5.2}/codedna/integrations/jira.py +0 -0
  34. {codedna-0.5.0 → codedna-0.5.2}/codedna/integrations/lemonsqueezy.py +0 -0
  35. {codedna-0.5.0 → codedna-0.5.2}/codedna/interview.py +0 -0
  36. {codedna-0.5.0 → codedna-0.5.2}/codedna/onboarding.py +0 -0
  37. {codedna-0.5.0 → codedna-0.5.2}/codedna/plan.py +0 -0
  38. {codedna-0.5.0 → codedna-0.5.2}/codedna/protection.py +0 -0
  39. {codedna-0.5.0 → codedna-0.5.2}/codedna/rate_limit.py +0 -0
  40. {codedna-0.5.0 → codedna-0.5.2}/codedna/scorer.py +0 -0
  41. {codedna-0.5.0 → codedna-0.5.2}/codedna/sprint_health.py +0 -0
  42. {codedna-0.5.0 → codedna-0.5.2}/codedna/survey.py +0 -0
  43. {codedna-0.5.0 → codedna-0.5.2}/codedna/tech_debt.py +0 -0
  44. {codedna-0.5.0 → codedna-0.5.2}/dashboard/.env.local.example +0 -0
  45. {codedna-0.5.0 → codedna-0.5.2}/dashboard/.gitignore +0 -0
  46. {codedna-0.5.0 → codedna-0.5.2}/dashboard/README.md +0 -0
  47. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/ai-compare/page.tsx +0 -0
  48. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/api/auth/login/route.ts +0 -0
  49. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/api/auth/logout/route.ts +0 -0
  50. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/api/auth/me/route.ts +0 -0
  51. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/api/auth/register/route.ts +0 -0
  52. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/api/billing/checkout/route.ts +0 -0
  53. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/billing/page.tsx +0 -0
  54. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/bus-factor/page.tsx +0 -0
  55. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/commits/page.tsx +0 -0
  56. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/debt/page.tsx +0 -0
  57. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/favicon.ico +0 -0
  58. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/files/page.tsx +0 -0
  59. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/fonts/GeistMonoVF.woff +0 -0
  60. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/fonts/GeistVF.woff +0 -0
  61. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/globals.css +0 -0
  62. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/interview/page.tsx +0 -0
  63. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/layout.tsx +0 -0
  64. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/login/page.tsx +0 -0
  65. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/onboarding/page.tsx +0 -0
  66. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/page.tsx +0 -0
  67. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/pricing/page.tsx +0 -0
  68. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/protected/page.tsx +0 -0
  69. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/register/page.tsx +0 -0
  70. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/settings/integrations/page.tsx +0 -0
  71. {codedna-0.5.0 → codedna-0.5.2}/dashboard/app/sprints/page.tsx +0 -0
  72. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/AuthProvider.tsx +0 -0
  73. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/ClientProviders.tsx +0 -0
  74. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/CommitTable.tsx +0 -0
  75. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/CostInfoTooltip.tsx +0 -0
  76. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/ErrorBanner.tsx +0 -0
  77. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/FeatureGate.tsx +0 -0
  78. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/FileHeatmap.tsx +0 -0
  79. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/LanguageSwitcher.tsx +0 -0
  80. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/NavClient.tsx +0 -0
  81. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/OverviewTitles.tsx +0 -0
  82. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/QuickInsights.tsx +0 -0
  83. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/RiskBadge.tsx +0 -0
  84. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/SummaryCards.tsx +0 -0
  85. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/UnderstandingChart.tsx +0 -0
  86. {codedna-0.5.0 → codedna-0.5.2}/dashboard/components/UpgradeBanner.tsx +0 -0
  87. {codedna-0.5.0 → codedna-0.5.2}/dashboard/lib/api.ts +0 -0
  88. {codedna-0.5.0 → codedna-0.5.2}/dashboard/lib/auth.ts +0 -0
  89. {codedna-0.5.0 → codedna-0.5.2}/dashboard/lib/i18n/en.ts +0 -0
  90. {codedna-0.5.0 → codedna-0.5.2}/dashboard/lib/i18n/index.tsx +0 -0
  91. {codedna-0.5.0 → codedna-0.5.2}/dashboard/lib/i18n/tr.ts +0 -0
  92. {codedna-0.5.0 → codedna-0.5.2}/dashboard/lib/plan.ts +0 -0
  93. {codedna-0.5.0 → codedna-0.5.2}/dashboard/next-env.d.ts +0 -0
  94. {codedna-0.5.0 → codedna-0.5.2}/dashboard/next.config.mjs +0 -0
  95. {codedna-0.5.0 → codedna-0.5.2}/dashboard/package-lock.json +0 -0
  96. {codedna-0.5.0 → codedna-0.5.2}/dashboard/package.json +0 -0
  97. {codedna-0.5.0 → codedna-0.5.2}/dashboard/postcss.config.mjs +0 -0
  98. {codedna-0.5.0 → codedna-0.5.2}/dashboard/tailwind.config.ts +0 -0
  99. {codedna-0.5.0 → codedna-0.5.2}/dashboard/tsconfig.json +0 -0
  100. {codedna-0.5.0 → codedna-0.5.2}/hooks/post-commit +0 -0
  101. {codedna-0.5.0 → codedna-0.5.2}/uv.lock +0 -0
  102. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/.vscodeignore +0 -0
  103. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/MARKETPLACE_README.md +0 -0
  104. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/PUBLISH.md +0 -0
  105. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/images/icon.png +0 -0
  106. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/.bin/tsc +0 -0
  107. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/.bin/tsserver +0 -0
  108. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/.package-lock.json +0 -0
  109. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/LICENSE +0 -0
  110. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/README.md +0 -0
  111. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/assert/strict.d.ts +0 -0
  112. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/assert.d.ts +0 -0
  113. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/async_hooks.d.ts +0 -0
  114. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/buffer.buffer.d.ts +0 -0
  115. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/buffer.d.ts +0 -0
  116. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/child_process.d.ts +0 -0
  117. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/cluster.d.ts +0 -0
  118. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/compatibility/disposable.d.ts +0 -0
  119. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/compatibility/index.d.ts +0 -0
  120. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/compatibility/indexable.d.ts +0 -0
  121. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/compatibility/iterators.d.ts +0 -0
  122. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/console.d.ts +0 -0
  123. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/constants.d.ts +0 -0
  124. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/crypto.d.ts +0 -0
  125. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/dgram.d.ts +0 -0
  126. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/diagnostics_channel.d.ts +0 -0
  127. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/dns/promises.d.ts +0 -0
  128. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/dns.d.ts +0 -0
  129. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/domain.d.ts +0 -0
  130. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/events.d.ts +0 -0
  131. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/fs/promises.d.ts +0 -0
  132. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/fs.d.ts +0 -0
  133. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/globals.d.ts +0 -0
  134. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/globals.typedarray.d.ts +0 -0
  135. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/http.d.ts +0 -0
  136. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/http2.d.ts +0 -0
  137. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/https.d.ts +0 -0
  138. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/index.d.ts +0 -0
  139. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/inspector.generated.d.ts +0 -0
  140. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/module.d.ts +0 -0
  141. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/net.d.ts +0 -0
  142. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/os.d.ts +0 -0
  143. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/package.json +0 -0
  144. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/path.d.ts +0 -0
  145. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/perf_hooks.d.ts +0 -0
  146. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/process.d.ts +0 -0
  147. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/punycode.d.ts +0 -0
  148. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/querystring.d.ts +0 -0
  149. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/readline/promises.d.ts +0 -0
  150. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/readline.d.ts +0 -0
  151. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/repl.d.ts +0 -0
  152. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/sea.d.ts +0 -0
  153. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/stream/consumers.d.ts +0 -0
  154. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/stream/promises.d.ts +0 -0
  155. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/stream/web.d.ts +0 -0
  156. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/stream.d.ts +0 -0
  157. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/string_decoder.d.ts +0 -0
  158. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/test.d.ts +0 -0
  159. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/timers/promises.d.ts +0 -0
  160. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/timers.d.ts +0 -0
  161. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/tls.d.ts +0 -0
  162. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/trace_events.d.ts +0 -0
  163. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -0
  164. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -0
  165. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/ts5.6/index.d.ts +0 -0
  166. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/tty.d.ts +0 -0
  167. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/url.d.ts +0 -0
  168. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/util.d.ts +0 -0
  169. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/v8.d.ts +0 -0
  170. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/vm.d.ts +0 -0
  171. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/wasi.d.ts +0 -0
  172. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -0
  173. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/web-globals/domexception.d.ts +0 -0
  174. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/web-globals/events.d.ts +0 -0
  175. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/web-globals/fetch.d.ts +0 -0
  176. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/worker_threads.d.ts +0 -0
  177. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/node/zlib.d.ts +0 -0
  178. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/vscode/LICENSE +0 -0
  179. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/vscode/README.md +0 -0
  180. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/vscode/index.d.ts +0 -0
  181. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/@types/vscode/package.json +0 -0
  182. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/LICENSE.txt +0 -0
  183. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/README.md +0 -0
  184. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/SECURITY.md +0 -0
  185. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/ThirdPartyNoticeText.txt +0 -0
  186. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/bin/tsc +0 -0
  187. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/bin/tsserver +0 -0
  188. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/_tsc.js +0 -0
  189. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/_tsserver.js +0 -0
  190. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/_typingsInstaller.js +0 -0
  191. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -0
  192. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -0
  193. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -0
  194. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -0
  195. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -0
  196. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -0
  197. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -0
  198. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.d.ts +0 -0
  199. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.decorators.d.ts +0 -0
  200. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -0
  201. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -0
  202. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.dom.d.ts +0 -0
  203. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -0
  204. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -0
  205. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -0
  206. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.d.ts +0 -0
  207. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -0
  208. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -0
  209. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -0
  210. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -0
  211. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -0
  212. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -0
  213. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -0
  214. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -0
  215. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2016.d.ts +0 -0
  216. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -0
  217. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -0
  218. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -0
  219. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.d.ts +0 -0
  220. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -0
  221. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -0
  222. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -0
  223. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -0
  224. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -0
  225. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -0
  226. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -0
  227. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -0
  228. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -0
  229. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.d.ts +0 -0
  230. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -0
  231. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -0
  232. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -0
  233. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -0
  234. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -0
  235. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.d.ts +0 -0
  236. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -0
  237. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -0
  238. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -0
  239. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -0
  240. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -0
  241. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -0
  242. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.d.ts +0 -0
  243. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -0
  244. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -0
  245. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -0
  246. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -0
  247. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -0
  248. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -0
  249. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -0
  250. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -0
  251. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.d.ts +0 -0
  252. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -0
  253. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -0
  254. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -0
  255. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -0
  256. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -0
  257. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -0
  258. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.d.ts +0 -0
  259. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -0
  260. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -0
  261. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -0
  262. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -0
  263. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -0
  264. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -0
  265. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -0
  266. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -0
  267. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.d.ts +0 -0
  268. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -0
  269. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -0
  270. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -0
  271. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -0
  272. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.d.ts +0 -0
  273. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -0
  274. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -0
  275. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -0
  276. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -0
  277. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -0
  278. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -0
  279. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es5.d.ts +0 -0
  280. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.es6.d.ts +0 -0
  281. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -0
  282. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -0
  283. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.d.ts +0 -0
  284. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -0
  285. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -0
  286. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -0
  287. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -0
  288. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -0
  289. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -0
  290. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -0
  291. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -0
  292. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -0
  293. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.scripthost.d.ts +0 -0
  294. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -0
  295. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.webworker.d.ts +0 -0
  296. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -0
  297. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -0
  298. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -0
  299. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -0
  300. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -0
  301. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -0
  302. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/tsc.js +0 -0
  303. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/tsserver.js +0 -0
  304. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -0
  305. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/tsserverlibrary.js +0 -0
  306. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/typesMap.json +0 -0
  307. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/typescript.d.ts +0 -0
  308. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/typescript.js +0 -0
  309. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/typingsInstaller.js +0 -0
  310. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/watchGuard.js +0 -0
  311. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -0
  312. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -0
  313. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/typescript/package.json +0 -0
  314. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/LICENSE +0 -0
  315. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/README.md +0 -0
  316. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/agent.d.ts +0 -0
  317. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/api.d.ts +0 -0
  318. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/balanced-pool.d.ts +0 -0
  319. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/cache.d.ts +0 -0
  320. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/client.d.ts +0 -0
  321. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/connector.d.ts +0 -0
  322. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/content-type.d.ts +0 -0
  323. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/cookies.d.ts +0 -0
  324. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/diagnostics-channel.d.ts +0 -0
  325. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/dispatcher.d.ts +0 -0
  326. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -0
  327. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/errors.d.ts +0 -0
  328. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/eventsource.d.ts +0 -0
  329. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/fetch.d.ts +0 -0
  330. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/file.d.ts +0 -0
  331. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/filereader.d.ts +0 -0
  332. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/formdata.d.ts +0 -0
  333. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/global-dispatcher.d.ts +0 -0
  334. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/global-origin.d.ts +0 -0
  335. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/handlers.d.ts +0 -0
  336. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/header.d.ts +0 -0
  337. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/index.d.ts +0 -0
  338. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/interceptors.d.ts +0 -0
  339. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/mock-agent.d.ts +0 -0
  340. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/mock-client.d.ts +0 -0
  341. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/mock-errors.d.ts +0 -0
  342. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/mock-interceptor.d.ts +0 -0
  343. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/mock-pool.d.ts +0 -0
  344. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/package.json +0 -0
  345. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/patch.d.ts +0 -0
  346. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/pool-stats.d.ts +0 -0
  347. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/pool.d.ts +0 -0
  348. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/proxy-agent.d.ts +0 -0
  349. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/readable.d.ts +0 -0
  350. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/retry-agent.d.ts +0 -0
  351. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/retry-handler.d.ts +0 -0
  352. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/util.d.ts +0 -0
  353. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/webidl.d.ts +0 -0
  354. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/node_modules/undici-types/websocket.d.ts +0 -0
  355. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/out/apiClient.js.map +0 -0
  356. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/out/decorations.js.map +0 -0
  357. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/out/extension.js.map +0 -0
  358. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/out/statusBar.js.map +0 -0
  359. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/package-lock.json +0 -0
  360. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/package.json +0 -0
  361. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/src/apiClient.ts +0 -0
  362. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/src/decorations.ts +0 -0
  363. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/src/extension.ts +0 -0
  364. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/src/statusBar.ts +0 -0
  365. {codedna-0.5.0 → codedna-0.5.2}/vscode-extension/tsconfig.json +0 -0
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.2] - 2026-06-24 - "SECURITY CHECK"
4
+
5
+ ### Added
6
+ - `codedna security-check` command - Pre-release security scanner
7
+ - Personal machine path detection (e.g. `/Users/yourname/`, `/home/user/`)
8
+ - Tracked secret detection (`.npmrc`, `.env*` in git)
9
+ - Secret pattern detection (npm, GitHub PAT, OpenAI, Anthropic, PyPI, generic API keys)
10
+ - `.gitignore` rule verification (.env, .npmrc, node_modules, __pycache__)
11
+ - Options: `--path` (custom root), `--strict` (exit on warnings)
12
+ - Output: legacy CLI aesthetic (4 categories, emoji markers, summary panel)
13
+ - Use case: run BEFORE `uv publish` or `git push` to catch leaks
14
+ - Critical response: exit 1 on personal paths, tracked secrets, or missing .env rules
15
+ - Detected the recent NatureCo CLI v5.7.0 issue (sasuke-notes paths + tracked .npmrc)
16
+
17
+ ## [0.5.1] - 2026-06-24 — "Doctor English"
18
+
19
+ ### 🔄 Changed
20
+ - **`codedna doctor`** — translated all messages back to English
21
+ - Old (0.5.0): "Sistem sağlık kontrolü", "Python Ortamı", "Veritabanı", "Lisans", "Ağ Bağlantısı"
22
+ - New: "System health check", "Python Environment", "Database", "License & Plan", "Network"
23
+ - Style preserved: `[bold]─── Category ───[/bold]` headers, emoji markers, summary panel
24
+ - Matches the project's "English-first" policy (README.md, CLI output, docstrings)
25
+
3
26
  ## [0.5.0] - 2026-06-24 — "Phase 8: Demo Mode + VS Code Marketplace"
4
27
 
5
28
  ### ✨ Added — Demo Mode (Part A)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codedna
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: AI Code Transparency Tool - detect AI-written code and measure developer understanding
5
5
  Project-URL: Homepage, https://codedna.dev
6
6
  Project-URL: Repository, https://github.com/natureco-official/codedna
@@ -1,4 +1,4 @@
1
1
  """CodeDNA — AI Code Transparency Tool."""
2
2
 
3
- __version__ = "0.5.0"
3
+ __version__ = "0.5.2"
4
4
  __app_name__ = "codedna"
@@ -1713,7 +1713,7 @@ def doctor(
1713
1713
  from collections import Counter
1714
1714
 
1715
1715
  console.print()
1716
- console.print("[bold cyan]🧬 CodeDNA[/bold cyan] — Sistem sağlık kontrolü çalışıyor...\n")
1716
+ console.print("[bold cyan]🧬 CodeDNA[/bold cyan] — System health check running...\n")
1717
1717
 
1718
1718
  issues: list[str] = []
1719
1719
  warnings: list[str] = []
@@ -1727,43 +1727,43 @@ def doctor(
1727
1727
  def _fail(msg: str) -> None:
1728
1728
  console.print(f" [red]✗[/red] {msg}")
1729
1729
 
1730
- with console.status("[dim]Testler çalıştırılıyor...[/dim]"):
1730
+ with console.status("[dim]Running tests...[/dim]"):
1731
1731
  # ── 1. Python Environment ──────────────────────────────────────
1732
- console.print("[bold]─── Python Ortamı ───[/bold]")
1732
+ console.print("[bold]─── Python Environment ───[/bold]")
1733
1733
  py_ver = sys.version_info
1734
1734
  if py_ver >= (3, 10):
1735
- _ok(f"Python {py_ver.major}.{py_ver.minor}.{py_ver.micro} (≥ 3.10 gerekli)")
1735
+ _ok(f"Python {py_ver.major}.{py_ver.minor}.{py_ver.micro} (≥ 3.10 required)")
1736
1736
  else:
1737
- _fail(f"Python {py_ver.major}.{py_ver.minor}.{py_ver.micro} — 3.10+ gerekli")
1737
+ _fail(f"Python {py_ver.major}.{py_ver.minor}.{py_ver.micro} — 3.10+ required")
1738
1738
  issues.append("python_version")
1739
1739
 
1740
1740
  try:
1741
1741
  import codedna
1742
1742
  _ok(f"CodeDNA [bold]v{codedna.__version__}[/bold] — {Path(codedna.__file__).parent}")
1743
1743
  except Exception as e:
1744
- _fail(f"CodeDNA import hatası: {e}")
1744
+ _fail(f"CodeDNA import failed: {e}")
1745
1745
  issues.append("codedna_import")
1746
1746
  console.print()
1747
1747
 
1748
1748
  # ── 2. Git Integration ─────────────────────────────────────────
1749
- console.print("[bold]─── Git Entegrasyonu ───[/bold]")
1749
+ console.print("[bold]─── Git Integration ───[/bold]")
1750
1750
  try:
1751
1751
  result = subprocess.run(["git", "--version"], capture_output=True, text=True, timeout=5)
1752
1752
  if result.returncode == 0:
1753
1753
  _ok(f"Git: {result.stdout.strip()}")
1754
1754
  else:
1755
- _fail("Git komutu hata döndü")
1755
+ _fail("Git command returned non-zero")
1756
1756
  issues.append("git")
1757
1757
  except FileNotFoundError:
1758
- _fail("Git PATH'te bulunamadı")
1758
+ _fail("Git not found on PATH")
1759
1759
  issues.append("git")
1760
1760
  except Exception as e:
1761
- _warn(f"Git kontrolü başarısız: {e}")
1761
+ _warn(f"Git check failed: {e}")
1762
1762
  warnings.append("git_check")
1763
1763
  console.print()
1764
1764
 
1765
1765
  # ── 3. Tree-sitter Parsers ─────────────────────────────────────
1766
- console.print("[bold]─── Tree-sitter Parser'ları ───[/bold]")
1766
+ console.print("[bold]─── Tree-sitter Parsers ───[/bold]")
1767
1767
  parsers = [
1768
1768
  ("tree_sitter", "tree-sitter"),
1769
1769
  ("tree_sitter_python", "tree-sitter-python"),
@@ -1775,30 +1775,30 @@ def doctor(
1775
1775
  __import__(mod_name)
1776
1776
  _ok(pkg_name)
1777
1777
  except ImportError:
1778
- _fail(f"{pkg_name} — yüklü değil")
1778
+ _fail(f"{pkg_name} — not installed")
1779
1779
  issues.append(f"missing:{pkg_name}")
1780
1780
  console.print()
1781
1781
 
1782
1782
  # ── 4. Local Database ──────────────────────────────────────────
1783
- console.print("[bold]─── Yerel Veritabanı ───[/bold]")
1783
+ console.print("[bold]─── Local Database ───[/bold]")
1784
1784
  try:
1785
1785
  root = repo or find_git_root()
1786
1786
  db_path = get_db_path(root)
1787
1787
  if db_path.exists():
1788
1788
  size_kb = db_path.stat().st_size / 1024
1789
- _ok(f"Veritabanı: {db_path} ({size_kb:.1f} KB)")
1789
+ _ok(f"Database: {db_path} ({size_kb:.1f} KB)")
1790
1790
  else:
1791
- _warn(f"Veritabanı yok: {db_path} (oluşturmak için [cyan]codedna init[/cyan])")
1791
+ _warn(f"No database at {db_path} (run [cyan]codedna init[/cyan] to create)")
1792
1792
  warnings.append("no_db")
1793
1793
  if fix:
1794
1794
  try:
1795
1795
  init_db(db_path)
1796
- _ok("Veritabanı oluşturuldu (otomatik düzeltildi)")
1796
+ _ok("Database created (auto-fixed)")
1797
1797
  except Exception as e:
1798
- _fail(f"Veritabanı oluşturulamadı: {e}")
1798
+ _fail(f"Database creation failed: {e}")
1799
1799
  issues.append("db_init_failed")
1800
1800
  except Exception:
1801
- _warn("Git repo'sunda değilsiniz veritabanı kontrolü atlandı")
1801
+ _warn("Not in a git repo — database check skipped")
1802
1802
  console.print()
1803
1803
 
1804
1804
  # ── 5. Git Hook ────────────────────────────────────────────────
@@ -1806,32 +1806,32 @@ def doctor(
1806
1806
  try:
1807
1807
  root = repo or find_git_root()
1808
1808
  if is_hook_installed(root):
1809
- _ok("Post-commit hook kurulu")
1809
+ _ok("Post-commit hook installed")
1810
1810
  else:
1811
- _warn(f"Post-commit hook kurulu değil ([cyan]codedna init[/cyan] ile kur)")
1811
+ _warn(f"Post-commit hook not installed (run [cyan]codedna init[/cyan])")
1812
1812
  warnings.append("no_hook")
1813
1813
  if fix:
1814
1814
  try:
1815
1815
  install_hook(root)
1816
- _ok("Hook kuruldu (otomatik düzeltildi)")
1816
+ _ok("Hook installed (auto-fixed)")
1817
1817
  except Exception as e:
1818
- _fail(f"Hook kurulamadı: {e}")
1818
+ _fail(f"Hook install failed: {e}")
1819
1819
  issues.append("hook_install_failed")
1820
1820
  except Exception:
1821
- _warn("Git repo'sunda değilsiniz — hook kontrolü atlandı")
1821
+ _warn("Not in a git repo — hook check skipped")
1822
1822
  console.print()
1823
1823
 
1824
1824
  # ── 6. Core Dependencies ───────────────────────────────────────
1825
- console.print("[bold]─── Temel Bağımlılıklar ───[/bold]")
1825
+ console.print("[bold]─── Core Dependencies ───[/bold]")
1826
1826
  deps = [
1827
1827
  ("typer", "CLI framework"),
1828
1828
  ("rich", "Terminal UI"),
1829
- ("gitpython", "Git entegrasyonu"),
1829
+ ("gitpython", "Git integration"),
1830
1830
  ("fastapi", "REST API"),
1831
1831
  ("uvicorn", "ASGI server"),
1832
- ("pydantic", "Veri doğrulama"),
1832
+ ("pydantic", "Data validation"),
1833
1833
  ("pyjwt", "JWT auth"),
1834
- ("bcrypt", "Şifre hashleme"),
1834
+ ("bcrypt", "Password hashing"),
1835
1835
  ]
1836
1836
  for mod_name, desc in deps:
1837
1837
  try:
@@ -1839,12 +1839,12 @@ def doctor(
1839
1839
  ver = getattr(m, "__version__", "?")
1840
1840
  _ok(f"{mod_name} [dim]{ver}[/dim] — {desc}")
1841
1841
  except ImportError:
1842
- _fail(f"{mod_name} — yüklü değil ({desc})")
1842
+ _fail(f"{mod_name} — not installed ({desc})")
1843
1843
  issues.append(f"missing:{mod_name}")
1844
1844
  console.print()
1845
1845
 
1846
1846
  # ── 7. License & Plan ──────────────────────────────────────────
1847
- console.print("[bold]─── Lisans & Plan ───[/bold]")
1847
+ console.print("[bold]─── License & Plan ───[/bold]")
1848
1848
  license_path = Path.home() / ".codedna" / "license.json"
1849
1849
  if license_path.exists():
1850
1850
  try:
@@ -1852,26 +1852,26 @@ def doctor(
1852
1852
  with open(license_path) as f:
1853
1853
  lic = _json.load(f)
1854
1854
  plan = lic.get("plan", "free")
1855
- _ok(f"Aktif plan: [bold cyan]{plan.upper()}[/bold cyan]")
1855
+ _ok(f"Active plan: [bold cyan]{plan.upper()}[/bold cyan]")
1856
1856
  except Exception as e:
1857
- _warn(f"Lisans dosyası okunamadı: {e}")
1857
+ _warn(f"License file unreadable: {e}")
1858
1858
  warnings.append("license_unreadable")
1859
1859
  else:
1860
- _warn(f"Lisans yok: {license_path} (FREE planda)")
1860
+ _warn(f"No license at {license_path} (running FREE plan)")
1861
1861
  console.print()
1862
1862
 
1863
1863
  # ── 8. Network ─────────────────────────────────────────────────
1864
- console.print("[bold]─── Bağlantısı ───[/bold]")
1864
+ console.print("[bold]─── Network ───[/bold]")
1865
1865
  try:
1866
1866
  import urllib.request
1867
1867
  urllib.request.urlopen("https://pypi.org/pypi/codedna/json", timeout=5)
1868
- _ok("PyPI erişilebilir")
1868
+ _ok("PyPI reachable")
1869
1869
  except Exception as e:
1870
- _warn(f"PyPI'ya erişilemedi: {type(e).__name__}")
1870
+ _warn(f"PyPI unreachable: {type(e).__name__}")
1871
1871
  warnings.append("no_network")
1872
1872
  console.print()
1873
1873
 
1874
- # ── Özet ────────────────────────────────────────────────────────
1874
+ # ── Summary ────────────────────────────────────────────────────────
1875
1875
  n_ok = 0
1876
1876
  for cat in [issues, warnings]:
1877
1877
  pass
@@ -1879,40 +1879,40 @@ def doctor(
1879
1879
  # We counted "ok" via the _ok helper which printed — let's track via passed back.
1880
1880
  # Simpler: infer from known list sizes.
1881
1881
  # We'll fix the count by reconstructing from a counter:
1882
- console.print("[bold]─── Özet ───[/bold]")
1882
+ console.print("[bold]─── Summary ───[/bold]")
1883
1883
  n_total_fail = len(issues)
1884
1884
  n_total_warn = len(warnings)
1885
1885
  n_total_ok = 19 - n_total_fail - n_total_warn # 9 kategori toplam 19 check (8 deps + 4 parsers + 1+1+1+1+1+1+1+1+1)
1886
1886
 
1887
1887
  if n_total_fail == 0 and n_total_warn == 0:
1888
- console.print(f" [bold green]✓ Tüm testler başarılısistem sağlıklı.[/bold green]")
1888
+ console.print(f" [bold green]✓ All checks passedsystem healthy.[/bold green]")
1889
1889
  bilgi = (
1890
- f"[bold green]CodeDNA sağlık durumu: MÜKEMMEL[/bold green]\n"
1891
- f"[dim]Tüm {n_total_ok} kontrol geçti. CodeDNA kullanıma hazır.[/dim]\n\n"
1892
- f"[dim]• Repo taramak için:[/dim] [cyan]codedna scan[/cyan]\n"
1893
- f"[dim]• Son commit için:[/dim] [cyan]codedna status[/cyan]\n"
1894
- f"[dim]• Setup için:[/dim] [cyan]codedna setup[/cyan]"
1890
+ f"[bold green]CodeDNA health: EXCELLENT[/bold green]\n"
1891
+ f"[dim]All {n_total_ok} checks passed. CodeDNA is ready to use.[/dim]\n\n"
1892
+ f"[dim]• Scan a repo:[/dim] [cyan]codedna scan[/cyan]\n"
1893
+ f"[dim]• Last commit:[/dim] [cyan]codedna status[/cyan]\n"
1894
+ f"[dim]• Configure:[/dim] [cyan]codedna setup[/cyan]"
1895
1895
  )
1896
1896
  console.print()
1897
1897
  console.print(Panel(bilgi, border_style="green", padding=(1, 2)))
1898
1898
  elif n_total_fail == 0:
1899
- console.print(f" [bold yellow]⚠ {n_total_warn} uyarı var, kritik sorun yok.[/bold yellow]")
1899
+ console.print(f" [bold yellow]⚠ {n_total_warn} warning(s), no critical issues.[/bold yellow]")
1900
1900
  bilgi = (
1901
- f"[bold yellow]CodeDNA sağlık durumu: UYARILAR VAR[/bold yellow]\n"
1902
- f"[dim]{n_total_warn} uyarı, 0 kritik. Sistem çalışıyor ama dikkat gerekli.[/dim]\n\n"
1903
- f"[dim]Otomatik düzeltme için:[/dim] [cyan]codedna doctor --fix[/cyan]"
1901
+ f"[bold yellow]CodeDNA health: WARNINGS[/bold yellow]\n"
1902
+ f"[dim]{n_total_warn} warning(s), 0 critical. System works but review needed.[/dim]\n\n"
1903
+ f"[dim]Auto-fix:[/dim] [cyan]codedna doctor --fix[/cyan]"
1904
1904
  )
1905
1905
  console.print()
1906
1906
  console.print(Panel(bilgi, border_style="yellow", padding=(1, 2)))
1907
1907
  else:
1908
- console.print(f" [bold red]✗ {n_total_fail} kritik sorun, {n_total_warn} uyarı.[/bold red]")
1908
+ console.print(f" [bold red]✗ {n_total_fail} critical issue(s), {n_total_warn} warning(s).[/bold red]")
1909
1909
  for issue in issues:
1910
1910
  console.print(f" [red]•[/red] {issue}")
1911
1911
  bilgi = (
1912
- f"[bold red]CodeDNA sağlık durumu: KRİTİK SORUNLAR[/bold red]\n"
1913
- f"[red]{n_total_fail} kritik, {n_total_warn} uyarı, {n_total_ok} geçti.[/red]\n\n"
1914
- f"[dim]Eksik paketleri yükleyin veya şunu çalıştırın:[/dim]\n"
1915
- f"[cyan]pip install -U codedna[/cyan] [dim]veya[/dim] [cyan]uv tool install --force 'codedna=={__version__}'[/cyan]"
1912
+ f"[bold red]CodeDNA health: CRITICAL ISSUES[/bold red]\n"
1913
+ f"[red]{n_total_fail} critical, {n_total_warn} warning(s), {n_total_ok} passed.[/red]\n\n"
1914
+ f"[dim]Install missing packages or run:[/dim]\n"
1915
+ f"[cyan]pip install -U codedna[/cyan] [dim]or[/dim] [cyan]uv tool install --force 'codedna=={__version__}'[/cyan]"
1916
1916
  )
1917
1917
  console.print()
1918
1918
  console.print(Panel(bilgi, border_style="red", padding=(1, 2)))
@@ -2146,6 +2146,208 @@ def demo(
2146
2146
  console.print()
2147
2147
 
2148
2148
 
2149
+ # ---------------------------------------------------------------------------
2150
+ # codedna security-check (pre-release secret & personal path scanner)
2151
+ # ---------------------------------------------------------------------------
2152
+ @app.command(name="security-check")
2153
+ def security_check(
2154
+ path: Optional[Path] = typer.Option(None, "--path", "-p", help="Project root to scan (defaults to cwd)"),
2155
+ strict: bool = typer.Option(False, "--strict", help="Exit 1 on any warning"),
2156
+ ) -> None:
2157
+ """Scan the project for personal paths, secrets, and missing .gitignore rules.
2158
+
2159
+ Run this BEFORE publishing or pushing to GitHub. Catches:
2160
+ - Personal machine paths in code/README (e.g. /Users/yourname/...)
2161
+ - Tracked secrets (.npmrc, .env*, api_key, token patterns)
2162
+ - Missing .gitignore rules for sensitive files
2163
+ """
2164
+ import subprocess
2165
+ from codedna.git_hook import find_git_root
2166
+ import re
2167
+
2168
+ root = path or find_git_root() or Path.cwd()
2169
+ if not root.exists():
2170
+ console.print(f" [red]✗[/red] Path not found: {root}")
2171
+ raise typer.Exit(1)
2172
+
2173
+ console.print()
2174
+ console.print(f"[bold cyan]🧬 CodeDNA[/bold cyan] — Security check: [dim]{root}[/dim]\n")
2175
+
2176
+ issues: list[tuple[str, str, str]] = [] # (severity, category, message)
2177
+ warnings: list[tuple[str, str, str]] = []
2178
+
2179
+ def _ok(msg: str) -> None:
2180
+ console.print(f" [green]✓[/green] {msg}")
2181
+
2182
+ def _warn(msg: str) -> None:
2183
+ console.print(f" [yellow]⚠[/yellow] {msg}")
2184
+
2185
+ def _fail(msg: str) -> None:
2186
+ console.print(f" [red]✗[/red] {msg}")
2187
+
2188
+ # ── 1. Personal machine paths ─────────────────────────────────────
2189
+ console.print("[bold]─── 1. Personal Path Scan ───[/bold]")
2190
+ personal_pattern = re.compile(r"/Users/[\w.-]+/|\/home\/[\w.-]+/|C:\\Users\\[\w.-]+\\")
2191
+ found_personal: list[str] = []
2192
+
2193
+ # Scan README, source, and markdown files
2194
+ scan_extensions = {".md", ".py", ".js", ".ts", ".json", ".sh", ".yml", ".yaml", ".toml"}
2195
+ file_count = 0
2196
+ for ext in scan_extensions:
2197
+ for f in root.rglob(f"*{ext}"):
2198
+ # Skip ignored dirs
2199
+ if any(p in f.parts for p in [".git", "node_modules", "dist", "build", ".venv", "venv", "__pycache__"]):
2200
+ continue
2201
+ try:
2202
+ content = f.read_text(errors="ignore")
2203
+ except Exception:
2204
+ continue
2205
+ file_count += 1
2206
+ matches = personal_pattern.findall(content)
2207
+ if matches:
2208
+ # Show unique paths
2209
+ unique = set(matches)
2210
+ for m in unique:
2211
+ if m not in found_personal:
2212
+ found_personal.append(m)
2213
+ rel = f.relative_to(root) if f.is_relative_to(root) else f
2214
+ _fail(f"Found: {m} in {rel}")
2215
+ issues.append(("fail", "personal-path", f"{m} in {rel}"))
2216
+
2217
+ if not found_personal:
2218
+ _ok(f"No personal paths found ({file_count} files scanned)")
2219
+ console.print()
2220
+
2221
+ # ── 2. Tracked secrets ────────────────────────────────────────────
2222
+ console.print("[bold]─── 2. Tracked Secret Scan ───[/bold]")
2223
+
2224
+ # Check if .npmrc, .env*, .git/config is tracked
2225
+ secret_files = [".npmrc", ".env", ".env.local", ".env.test", ".env.production"]
2226
+ for sf in secret_files:
2227
+ f = root / sf
2228
+ if f.exists():
2229
+ # Check if tracked
2230
+ r = subprocess.run(
2231
+ ["git", "ls-files", "--error-unmatch", str(f.relative_to(root))],
2232
+ cwd=str(root), capture_output=True, text=True
2233
+ )
2234
+ if r.returncode == 0:
2235
+ _fail(f"{sf} is tracked in git (contains secrets!)")
2236
+ issues.append(("fail", "tracked-secret", f"{sf} tracked"))
2237
+ else:
2238
+ _ok(f"{sf} exists locally but is NOT tracked (safe)")
2239
+ else:
2240
+ _ok(f"{sf} not present")
2241
+ console.print()
2242
+
2243
+ # ── 3. Secret patterns in tracked files ──────────────────────────
2244
+ console.print("[bold]─── 3. Secret Pattern Scan ───[/bold]")
2245
+ secret_patterns = {
2246
+ "npm token": re.compile(r"npm_[A-Za-z0-9]{20,}"),
2247
+ "GitHub PAT": re.compile(r"ghp_[A-Za-z0-9]{20,}"),
2248
+ "OpenAI key": re.compile(r"sk-[A-Za-z0-9]{20,}"),
2249
+ "Anthropic key": re.compile(r"sk-ant-[A-Za-z0-9]{20,}"),
2250
+ "PyPI token": re.compile(r"pypi-[A-Za-z0-9]{20,}"),
2251
+ "Generic API key": re.compile(r"(?i)(api[_-]?key|token|secret)\s*[:=]\s*['\"][A-Za-z0-9_-]{16,}['\"]"),
2252
+ }
2253
+
2254
+ found_secrets: list[tuple[str, str, str]] = []
2255
+ for ext in [".py", ".js", ".ts", ".json", ".sh", ".md"]:
2256
+ for f in root.rglob(f"*{ext}"):
2257
+ if any(p in f.parts for p in [".git", "node_modules", "dist", "build", ".venv", "venv", "__pycache__", ".pytest_cache"]):
2258
+ continue
2259
+ try:
2260
+ content = f.read_text(errors="ignore")
2261
+ except Exception:
2262
+ continue
2263
+ for name, pattern in secret_patterns.items():
2264
+ if pattern.search(content):
2265
+ rel = f.relative_to(root) if f.is_relative_to(root) else f
2266
+ # Skip if it's in a docstring example or test fixture
2267
+ if "example" in str(rel).lower() or "test" in str(rel).lower() or "fixture" in str(rel).lower():
2268
+ continue
2269
+ # Skip obvious placeholders
2270
+ if any(ph in content.lower() for ph in ["placeholder", "your_api_key", "xxx", "00000"]):
2271
+ continue
2272
+ found_secrets.append((name, str(rel), pattern.pattern[:30]))
2273
+ _fail(f"{name} pattern in {rel}")
2274
+ issues.append(("fail", "secret-pattern", f"{name} in {rel}"))
2275
+
2276
+ if not found_secrets:
2277
+ _ok("No secret patterns found")
2278
+ console.print()
2279
+
2280
+ # ── 4. .gitignore verification ────────────────────────────────────
2281
+ console.print("[bold]─── 4. .gitignore Verification ───[/bold]")
2282
+ gitignore = root / ".gitignore"
2283
+ if not gitignore.exists():
2284
+ _fail(".gitignore not found")
2285
+ issues.append(("fail", "no-gitignore", "no .gitignore"))
2286
+ else:
2287
+ content = gitignore.read_text()
2288
+ # Check critical rules
2289
+ required_rules = {
2290
+ ".env": False,
2291
+ ".env.": False,
2292
+ ".npmrc": False,
2293
+ "node_modules": False,
2294
+ "__pycache__": False,
2295
+ }
2296
+ for line in content.split("\n"):
2297
+ line = line.strip()
2298
+ for rule in required_rules:
2299
+ if rule == line or (rule.endswith(".") and rule in line):
2300
+ required_rules[rule] = True
2301
+
2302
+ for rule, present in required_rules.items():
2303
+ if present:
2304
+ _ok(f".gitignore includes {rule} (or pattern)")
2305
+ else:
2306
+ _warn(f".gitignore missing {rule} rule")
2307
+ warnings.append(("warn", "gitignore-missing", f"missing {rule}"))
2308
+ console.print()
2309
+
2310
+ # ── Summary ───────────────────────────────────────────────────────
2311
+ n_fail = len(issues)
2312
+ n_warn = len(warnings)
2313
+ console.print("[bold]─── Summary ───[/bold]")
2314
+
2315
+ if n_fail == 0 and n_warn == 0:
2316
+ console.print(" [bold green]✓ All security checks passed — safe to publish.[/bold green]")
2317
+ bilgi = (
2318
+ f"[bold green]CodeDNA security: CLEAN[/bold green]\n\n"
2319
+ f"[dim]All checks passed. No personal paths, no tracked secrets, no secret patterns.[/dim]\n\n"
2320
+ f"[dim]Safe to run:[/dim] [cyan]npm publish[/cyan] [dim]or[/dim] [cyan]uv publish[/cyan]"
2321
+ )
2322
+ border = "green"
2323
+ elif n_fail == 0:
2324
+ console.print(f" [bold yellow]⚠ {n_warn} warning(s), 0 critical issues.[/bold yellow]")
2325
+ bilgi = (
2326
+ f"[bold yellow]CodeDNA security: WARNINGS[/bold yellow]\n\n"
2327
+ f"[dim]{n_warn} warning(s) to review, but no critical issues blocking publish.[/dim]\n\n"
2328
+ f"[dim]Re-run after fixes:[/dim] [cyan]codedna security-check[/cyan]"
2329
+ )
2330
+ border = "yellow"
2331
+ else:
2332
+ console.print(f" [bold red]✗ {n_fail} critical issue(s), {n_warn} warning(s).[/bold red]")
2333
+ for sev, cat, msg in issues:
2334
+ console.print(f" [red]•[/red] [{cat}] {msg}")
2335
+ bilgi = (
2336
+ f"[bold red]CodeDNA security: BLOCKED[/bold red]\n\n"
2337
+ f"[red]{n_fail} critical issue(s) must be fixed before publishing.[/red]\n\n"
2338
+ f"[dim]Fix issues, add to .gitignore, then re-run:[/dim]\n"
2339
+ f"[cyan]codedna security-check[/cyan]"
2340
+ )
2341
+ border = "red"
2342
+
2343
+ console.print()
2344
+ console.print(Panel(bilgi, border_style=border, padding=(1, 2)))
2345
+ console.print()
2346
+
2347
+ if n_fail > 0 or (strict and n_warn > 0):
2348
+ raise typer.Exit(1)
2349
+
2350
+
2149
2351
  # ---------------------------------------------------------------------------
2150
2352
  # codedna setup (interactive AI analysis configuration wizard)
2151
2353
  # ---------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codedna"
3
- version = "0.5.0"
3
+ version = "0.5.2"
4
4
  description = "AI Code Transparency Tool - detect AI-written code and measure developer understanding"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes