toolip 1.0.3 → 1.0.6

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 (140) hide show
  1. package/README.md +599 -0
  2. package/package.json +1 -1
  3. package/dist/src/commands/alternatives.d.ts +0 -2
  4. package/dist/src/commands/alternatives.js +0 -17
  5. package/dist/src/commands/alternatives.js.map +0 -1
  6. package/dist/src/commands/compare.d.ts +0 -2
  7. package/dist/src/commands/compare.js +0 -19
  8. package/dist/src/commands/compare.js.map +0 -1
  9. package/dist/src/commands/doctor.d.ts +0 -2
  10. package/dist/src/commands/doctor.js +0 -42
  11. package/dist/src/commands/doctor.js.map +0 -1
  12. package/dist/src/commands/git-audit.d.ts +0 -2
  13. package/dist/src/commands/git-audit.js +0 -37
  14. package/dist/src/commands/git-audit.js.map +0 -1
  15. package/dist/src/commands/hook.d.ts +0 -2
  16. package/dist/src/commands/hook.js +0 -16
  17. package/dist/src/commands/hook.js.map +0 -1
  18. package/dist/src/commands/inspect.d.ts +0 -2
  19. package/dist/src/commands/inspect.js +0 -24
  20. package/dist/src/commands/inspect.js.map +0 -1
  21. package/dist/src/commands/learn.d.ts +0 -2
  22. package/dist/src/commands/learn.js +0 -42
  23. package/dist/src/commands/learn.js.map +0 -1
  24. package/dist/src/commands/licenses.d.ts +0 -2
  25. package/dist/src/commands/licenses.js +0 -40
  26. package/dist/src/commands/licenses.js.map +0 -1
  27. package/dist/src/commands/pre-commit.d.ts +0 -2
  28. package/dist/src/commands/pre-commit.js +0 -37
  29. package/dist/src/commands/pre-commit.js.map +0 -1
  30. package/dist/src/commands/profile.d.ts +0 -2
  31. package/dist/src/commands/profile.js +0 -18
  32. package/dist/src/commands/profile.js.map +0 -1
  33. package/dist/src/commands/scan.d.ts +0 -2
  34. package/dist/src/commands/scan.js +0 -48
  35. package/dist/src/commands/scan.js.map +0 -1
  36. package/dist/src/commands/score.d.ts +0 -2
  37. package/dist/src/commands/score.js +0 -24
  38. package/dist/src/commands/score.js.map +0 -1
  39. package/dist/src/commands/self-test.d.ts +0 -2
  40. package/dist/src/commands/self-test.js +0 -63
  41. package/dist/src/commands/self-test.js.map +0 -1
  42. package/dist/src/commands/tree.d.ts +0 -2
  43. package/dist/src/commands/tree.js +0 -21
  44. package/dist/src/commands/tree.js.map +0 -1
  45. package/dist/src/commands/vault.d.ts +0 -2
  46. package/dist/src/commands/vault.js +0 -86
  47. package/dist/src/commands/vault.js.map +0 -1
  48. package/dist/src/config/version.d.ts +0 -6
  49. package/dist/src/config/version.js +0 -7
  50. package/dist/src/config/version.js.map +0 -1
  51. package/dist/src/core/alternatives.d.ts +0 -8
  52. package/dist/src/core/alternatives.js +0 -35
  53. package/dist/src/core/alternatives.js.map +0 -1
  54. package/dist/src/core/analyze-package.d.ts +0 -2
  55. package/dist/src/core/analyze-package.js +0 -49
  56. package/dist/src/core/analyze-package.js.map +0 -1
  57. package/dist/src/core/compare-packages.d.ts +0 -7
  58. package/dist/src/core/compare-packages.js +0 -19
  59. package/dist/src/core/compare-packages.js.map +0 -1
  60. package/dist/src/core/dependency-scan.d.ts +0 -17
  61. package/dist/src/core/dependency-scan.js +0 -70
  62. package/dist/src/core/dependency-scan.js.map +0 -1
  63. package/dist/src/core/dependency-tree.d.ts +0 -16
  64. package/dist/src/core/dependency-tree.js +0 -19
  65. package/dist/src/core/dependency-tree.js.map +0 -1
  66. package/dist/src/core/dependency-types.d.ts +0 -17
  67. package/dist/src/core/dependency-types.js +0 -2
  68. package/dist/src/core/dependency-types.js.map +0 -1
  69. package/dist/src/core/file-walker.d.ts +0 -6
  70. package/dist/src/core/file-walker.js +0 -27
  71. package/dist/src/core/file-walker.js.map +0 -1
  72. package/dist/src/core/git-audit.d.ts +0 -12
  73. package/dist/src/core/git-audit.js +0 -111
  74. package/dist/src/core/git-audit.js.map +0 -1
  75. package/dist/src/core/hooks.d.ts +0 -1
  76. package/dist/src/core/hooks.js +0 -14
  77. package/dist/src/core/hooks.js.map +0 -1
  78. package/dist/src/core/learn.d.ts +0 -11
  79. package/dist/src/core/learn.js +0 -163
  80. package/dist/src/core/learn.js.map +0 -1
  81. package/dist/src/core/license-analysis.d.ts +0 -18
  82. package/dist/src/core/license-analysis.js +0 -98
  83. package/dist/src/core/license-analysis.js.map +0 -1
  84. package/dist/src/core/load-toolip-ignore.d.ts +0 -5
  85. package/dist/src/core/load-toolip-ignore.js +0 -35
  86. package/dist/src/core/load-toolip-ignore.js.map +0 -1
  87. package/dist/src/core/npm-registry.d.ts +0 -3
  88. package/dist/src/core/npm-registry.js +0 -5
  89. package/dist/src/core/npm-registry.js.map +0 -1
  90. package/dist/src/core/pre-commit.d.ts +0 -11
  91. package/dist/src/core/pre-commit.js +0 -22
  92. package/dist/src/core/pre-commit.js.map +0 -1
  93. package/dist/src/core/profile-project.d.ts +0 -23
  94. package/dist/src/core/profile-project.js +0 -119
  95. package/dist/src/core/profile-project.js.map +0 -1
  96. package/dist/src/core/read-dependencies.d.ts +0 -2
  97. package/dist/src/core/read-dependencies.js +0 -24
  98. package/dist/src/core/read-dependencies.js.map +0 -1
  99. package/dist/src/core/report-writer.d.ts +0 -5
  100. package/dist/src/core/report-writer.js +0 -61
  101. package/dist/src/core/report-writer.js.map +0 -1
  102. package/dist/src/core/report.d.ts +0 -34
  103. package/dist/src/core/report.js +0 -26
  104. package/dist/src/core/report.js.map +0 -1
  105. package/dist/src/core/risk-score.d.ts +0 -5
  106. package/dist/src/core/risk-score.js +0 -14
  107. package/dist/src/core/risk-score.js.map +0 -1
  108. package/dist/src/core/scanner-context.d.ts +0 -12
  109. package/dist/src/core/scanner-context.js +0 -27
  110. package/dist/src/core/scanner-context.js.map +0 -1
  111. package/dist/src/core/score.d.ts +0 -13
  112. package/dist/src/core/score.js +0 -44
  113. package/dist/src/core/score.js.map +0 -1
  114. package/dist/src/core/security-doctor.d.ts +0 -12
  115. package/dist/src/core/security-doctor.js +0 -106
  116. package/dist/src/core/security-doctor.js.map +0 -1
  117. package/dist/src/core/security-patterns.d.ts +0 -14
  118. package/dist/src/core/security-patterns.js +0 -130
  119. package/dist/src/core/security-patterns.js.map +0 -1
  120. package/dist/src/core/typosquat.d.ts +0 -6
  121. package/dist/src/core/typosquat.js +0 -50
  122. package/dist/src/core/typosquat.js.map +0 -1
  123. package/dist/src/core/vault.d.ts +0 -48
  124. package/dist/src/core/vault.js +0 -127
  125. package/dist/src/core/vault.js.map +0 -1
  126. package/dist/src/errors/toolip-error.d.ts +0 -8
  127. package/dist/src/errors/toolip-error.js +0 -11
  128. package/dist/src/errors/toolip-error.js.map +0 -1
  129. package/dist/src/index.d.ts +0 -2
  130. package/dist/src/index.js +0 -51
  131. package/dist/src/index.js.map +0 -1
  132. package/dist/src/utils/error-handler.d.ts +0 -1
  133. package/dist/src/utils/error-handler.js +0 -24
  134. package/dist/src/utils/error-handler.js.map +0 -1
  135. package/dist/src/utils/output.d.ts +0 -6
  136. package/dist/src/utils/output.js +0 -72
  137. package/dist/src/utils/output.js.map +0 -1
  138. package/dist/src/utils/package-output.d.ts +0 -4
  139. package/dist/src/utils/package-output.js +0 -40
  140. package/dist/src/utils/package-output.js.map +0 -1
@@ -1,37 +0,0 @@
1
- import chalk from 'chalk';
2
- import { runGitAudit } from '../core/git-audit.js';
3
- import { createReport } from '../core/report.js';
4
- import { writeReport } from '../core/report-writer.js';
5
- import { TOOLIP_VERSION } from '../config/version.js';
6
- import { printReportSummary } from '../utils/output.js';
7
- export function registerGitAuditCommand(program) {
8
- program
9
- .command('git-audit')
10
- .description('Audit Git safety, ignored files, and dangerous committed-file patterns.')
11
- .option('-p, --path <path>', 'Project path to audit.', process.cwd())
12
- .option('-o, --output <file>', 'Write Git audit report to JSON or Markdown.')
13
- .action(async (options) => {
14
- const result = await runGitAudit(options.path);
15
- console.log(chalk.bold('Toolip Git Audit'));
16
- console.log('');
17
- console.log(`${chalk.dim('Files Checked:')} ${result.summary.filesChecked}`);
18
- console.log(`${chalk.dim('Dangerous Files:')} ${result.summary.dangerousFiles}`);
19
- console.log(`${chalk.dim('.gitignore Present:')} ${result.summary.gitignorePresent ? 'yes' : 'no'}`);
20
- console.log(`${chalk.dim('.env Ignored:')} ${result.summary.envIgnored ? 'yes' : 'no'}`);
21
- console.log(`${chalk.dim('PEM Ignored:')} ${result.summary.pemIgnored ? 'yes' : 'no'}`);
22
- const report = createReport({
23
- version: TOOLIP_VERSION,
24
- command: 'git-audit',
25
- root: options.path,
26
- findings: result.findings
27
- });
28
- console.log('');
29
- printReportSummary(report);
30
- if (options.output) {
31
- await writeReport(options.output, report);
32
- console.log('');
33
- console.log(`${chalk.green('✓')} Report written to ${options.output}`);
34
- }
35
- });
36
- }
37
- //# sourceMappingURL=git-audit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-audit.js","sourceRoot":"","sources":["../../../src/commands/git-audit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,yEAAyE,CAAC;SACtF,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACpE,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAExF,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerHookCommand(program: Command): void;
@@ -1,16 +0,0 @@
1
- import chalk from 'chalk';
2
- import { installPreCommitHook } from '../core/hooks.js';
3
- export function registerHookCommand(program) {
4
- const hook = program
5
- .command('hook')
6
- .description('Install Toolip Git hooks.');
7
- hook
8
- .command('install')
9
- .description('Install Toolip pre-commit hook.')
10
- .option('-p, --path <path>', 'Project path.', process.cwd())
11
- .action(async (options) => {
12
- const hookPath = await installPreCommitHook(options.path);
13
- console.log(`${chalk.green('✓')} Installed pre-commit hook at ${hookPath}`);
14
- });
15
- }
16
- //# sourceMappingURL=hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/commands/hook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAE5C,IAAI;SACD,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAC1C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerInspectCommand(program: Command): void;
@@ -1,24 +0,0 @@
1
- import chalk from 'chalk';
2
- import { analyzePackage } from '../core/analyze-package.js';
3
- import { detectTyposquat } from '../core/typosquat.js';
4
- import { printPackageHealth } from '../utils/package-output.js';
5
- export function registerInspectCommand(program) {
6
- program
7
- .command('inspect <package>')
8
- .description('Inspect a package from npm registry.')
9
- .action(async (packageName) => {
10
- const typo = detectTyposquat(packageName);
11
- if (typo.suspected) {
12
- console.log(chalk.yellow('Potential typosquatting signal detected.'));
13
- console.log(`Did you mean: ${typo.suggestions.join(', ')}`);
14
- console.log('');
15
- }
16
- const result = await analyzePackage({
17
- name: packageName,
18
- version: 'latest',
19
- type: 'dependency'
20
- });
21
- printPackageHealth(result);
22
- });
23
- }
24
- //# sourceMappingURL=inspect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/commands/inspect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;YAClC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QAEH,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerLearnCommand(program: Command): void;
@@ -1,42 +0,0 @@
1
- import chalk from 'chalk';
2
- import { getLearnTopic, listLearnTopics } from '../core/learn.js';
3
- import { ToolipError } from '../errors/toolip-error.js';
4
- export function registerLearnCommand(program) {
5
- program
6
- .command('learn [topic]')
7
- .description('Learn secure development concepts while using Toolip.')
8
- .option('--list', 'List available learning topics.')
9
- .action((topic, options) => {
10
- if (options.list || !topic) {
11
- console.log(chalk.bold('Toolip Learning Topics'));
12
- console.log('');
13
- for (const item of listLearnTopics()) {
14
- console.log(`${chalk.green('✓')} ${item.id} ${chalk.dim(`— ${item.title}`)}`);
15
- }
16
- return;
17
- }
18
- const lesson = getLearnTopic(topic);
19
- if (!lesson) {
20
- throw new ToolipError(`Unknown learning topic: ${topic}`, {
21
- code: 'LEARN_TOPIC_NOT_FOUND',
22
- exitCode: 1
23
- });
24
- }
25
- console.log(chalk.bold(lesson.title));
26
- console.log('');
27
- console.log(lesson.explanation);
28
- console.log('');
29
- printSection('Risks', lesson.risks);
30
- printSection('Common Mistakes', lesson.mistakes);
31
- printSection('Secure Examples', lesson.secureExamples);
32
- printSection('Best Practices', lesson.bestPractices);
33
- });
34
- }
35
- function printSection(title, items) {
36
- console.log(chalk.bold(title));
37
- for (const item of items) {
38
- console.log(`${chalk.green('•')} ${item}`);
39
- }
40
- console.log('');
41
- }
42
- //# sourceMappingURL=learn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"learn.js","sourceRoot":"","sources":["../../../src/commands/learn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACnD,MAAM,CAAC,CAAC,KAAyB,EAAE,OAA2B,EAAE,EAAE;QACjE,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,WAAW,CAAC,2BAA2B,KAAK,EAAE,EAAE;gBACxD,IAAI,EAAE,uBAAuB;gBAC7B,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACvD,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,KAAe;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerLicensesCommand(program: Command): void;
@@ -1,40 +0,0 @@
1
- import chalk from 'chalk';
2
- import { analyzeLicenses } from '../core/license-analysis.js';
3
- import { createReport } from '../core/report.js';
4
- import { writeReport } from '../core/report-writer.js';
5
- import { TOOLIP_VERSION } from '../config/version.js';
6
- import { printReportSummary } from '../utils/output.js';
7
- export function registerLicensesCommand(program) {
8
- program
9
- .command('licenses')
10
- .description('Analyze dependency license inventory and restrictive license signals.')
11
- .option('-p, --path <path>', 'Project path to analyze.', process.cwd())
12
- .option('-o, --output <file>', 'Write license report to JSON or Markdown.')
13
- .action(async (options) => {
14
- const result = await analyzeLicenses(options.path);
15
- console.log(chalk.bold('Toolip License Analysis'));
16
- console.log('');
17
- console.log(`${chalk.dim('Total Packages:')} ${result.summary.total}`);
18
- console.log(`${chalk.dim('Unknown Licenses:')} ${result.summary.unknown}`);
19
- console.log(`${chalk.dim('Restrictive Licenses:')} ${result.summary.restrictive}`);
20
- console.log('');
21
- console.log(chalk.bold('License Distribution'));
22
- for (const [license, count] of Object.entries(result.summary.distribution)) {
23
- console.log(`${chalk.green('✓')} ${license}: ${count}`);
24
- }
25
- const report = createReport({
26
- version: TOOLIP_VERSION,
27
- command: 'licenses',
28
- root: options.path,
29
- findings: result.findings
30
- });
31
- console.log('');
32
- printReportSummary(report);
33
- if (options.output) {
34
- await writeReport(options.output, report);
35
- console.log('');
36
- console.log(`${chalk.green('✓')} Report written to ${options.output}`);
37
- }
38
- });
39
- }
40
- //# sourceMappingURL=licenses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"licenses.js","sourceRoot":"","sources":["../../../src/commands/licenses.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACtE,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerPreCommitCommand(program: Command): void;
@@ -1,37 +0,0 @@
1
- import chalk from 'chalk';
2
- import { runPreCommit } from '../core/pre-commit.js';
3
- export function registerPreCommitCommand(program) {
4
- program
5
- .command('pre-commit')
6
- .description('Run blocking checks before a Git commit.')
7
- .option('-p, --path <path>', 'Project path to check.', process.cwd())
8
- .option('--show-findings', 'Print blocking findings.')
9
- .action(async (options) => {
10
- const result = await runPreCommit(options.path);
11
- console.log(chalk.bold('Toolip Pre-Commit'));
12
- console.log('');
13
- console.log(`${chalk.dim('Critical:')} ${result.summary.critical}`);
14
- console.log(`${chalk.dim('High:')} ${result.summary.high}`);
15
- console.log(`${chalk.dim('Blocking Findings:')} ${result.summary.blocking}`);
16
- if (options.showFindings && result.findings.length > 0) {
17
- console.log('');
18
- console.log(chalk.bold('Blocking Findings'));
19
- for (const finding of result.findings.filter((item) => item.severity === 'critical' || item.severity === 'high')) {
20
- console.log(`${chalk.red('✖')} ${finding.title}`);
21
- if (finding.file)
22
- console.log(` ${chalk.dim('File:')} ${finding.file}`);
23
- if (finding.evidence)
24
- console.log(` ${chalk.dim('Evidence:')} ${finding.evidence}`);
25
- }
26
- }
27
- if (!result.passed) {
28
- console.log('');
29
- console.log(chalk.red('Pre-commit checks failed. Fix critical/high findings before committing.'));
30
- process.exitCode = 1;
31
- return;
32
- }
33
- console.log('');
34
- console.log(chalk.green('Pre-commit checks passed.'));
35
- });
36
- }
37
- //# sourceMappingURL=pre-commit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pre-commit.js","sourceRoot":"","sources":["../../../src/commands/pre-commit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACpE,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAAiD,EAAE,EAAE;QAClE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE7E,IAAI,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAE7C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAC1C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CACnE,EAAE,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClD,IAAI,OAAO,CAAC,IAAI;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzE,IAAI,OAAO,CAAC,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC,CAAC;YAClG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerProfileCommand(program: Command): void;
@@ -1,18 +0,0 @@
1
- import { profileProject } from '../core/profile-project.js';
2
- import { printProfile } from '../utils/output.js';
3
- export function registerProfileCommand(program) {
4
- program
5
- .command('profile')
6
- .description('Fingerprint the current project and detect frameworks, languages, and tooling.')
7
- .option('-p, --path <path>', 'Project path to inspect.', process.cwd())
8
- .option('--json', 'Print profile as JSON.')
9
- .action(async (options) => {
10
- const profile = await profileProject(options.path);
11
- if (options.json) {
12
- console.log(JSON.stringify(profile, null, 2));
13
- return;
14
- }
15
- printProfile(profile);
16
- });
17
- }
18
- //# sourceMappingURL=profile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/commands/profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,gFAAgF,CAAC;SAC7F,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,OAAyC,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerScanCommand(program: Command): void;
@@ -1,48 +0,0 @@
1
- import chalk from 'chalk';
2
- import { createScannerContext } from '../core/scanner-context.js';
3
- import { createReport } from '../core/report.js';
4
- import { writeReport } from '../core/report-writer.js';
5
- import { scanDependencies } from '../core/dependency-scan.js';
6
- import { calculateDependencyHealth, calculateScore } from '../core/score.js';
7
- import { TOOLIP_VERSION } from '../config/version.js';
8
- import { printReportSummary, printScannerContext } from '../utils/output.js';
9
- export function registerScanCommand(program) {
10
- program
11
- .command('scan')
12
- .description('Scan project dependencies and security hygiene indicators.')
13
- .option('-p, --path <path>', 'Project path to scan.', process.cwd())
14
- .option('-o, --output <file>', 'Write scan report to JSON or Markdown.')
15
- .action(async (options) => {
16
- console.log(chalk.bold('Toolip Scan'));
17
- console.log('');
18
- const context = await createScannerContext(options.path);
19
- printScannerContext(context);
20
- const dependencyScan = await scanDependencies(context.root);
21
- const dependencyHealth = calculateDependencyHealth(dependencyScan.findings);
22
- const score = calculateScore({ dependencyHealth });
23
- const report = createReport({
24
- version: TOOLIP_VERSION,
25
- command: 'scan',
26
- root: context.root,
27
- findings: dependencyScan.findings
28
- });
29
- console.log('');
30
- console.log(chalk.bold('Dependency Intelligence'));
31
- console.log(`${chalk.dim('Total Dependencies:')} ${dependencyScan.summary.totalDependencies}`);
32
- console.log(`${chalk.dim('Outdated:')} ${dependencyScan.summary.outdated}`);
33
- console.log(`${chalk.dim('Deprecated:')} ${dependencyScan.summary.deprecated}`);
34
- console.log(`${chalk.dim('High Risk:')} ${dependencyScan.summary.highRisk}`);
35
- console.log(`${chalk.dim('Medium Risk:')} ${dependencyScan.summary.mediumRisk}`);
36
- console.log(`${chalk.dim('Average Risk:')} ${dependencyScan.summary.averageRiskScore}`);
37
- console.log(`${chalk.dim('Dependency Health:')} ${dependencyHealth}`);
38
- console.log(`${chalk.dim('Overall Grade:')} ${score.grade}`);
39
- console.log('');
40
- printReportSummary(report);
41
- if (options.output) {
42
- await writeReport(options.output, report);
43
- console.log('');
44
- console.log(`${chalk.green('✓')} Report written to ${options.output}`);
45
- }
46
- });
47
- }
48
- //# sourceMappingURL=scan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/commands/scan.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerScoreCommand(program: Command): void;
@@ -1,24 +0,0 @@
1
- import chalk from 'chalk';
2
- import { scanDependencies } from '../core/dependency-scan.js';
3
- import { calculateDependencyHealth, calculateScore } from '../core/score.js';
4
- export function registerScoreCommand(program) {
5
- program
6
- .command('score')
7
- .description('Calculate a Toolip security scorecard for the current project.')
8
- .option('-p, --path <path>', 'Project path to score.', process.cwd())
9
- .action(async (options) => {
10
- const dependencyScan = await scanDependencies(options.path);
11
- const dependencyHealth = calculateDependencyHealth(dependencyScan.findings);
12
- const score = calculateScore({ dependencyHealth });
13
- console.log(chalk.bold('Toolip Security Scorecard'));
14
- console.log('');
15
- console.log(`${chalk.dim('Dependency Health ....')} ${score.dependencyHealth}`);
16
- console.log(`${chalk.dim('Secret Hygiene .......')} ${score.secretHygiene}`);
17
- console.log(`${chalk.dim('Configuration ........')} ${score.configurationSecurity}`);
18
- console.log(`${chalk.dim('Git Safety ...........')} ${score.gitSafety}`);
19
- console.log('');
20
- console.log(`${chalk.dim('Overall Score ........')} ${score.overall}`);
21
- console.log(`${chalk.dim('Grade ................')} ${score.grade}`);
22
- });
23
- }
24
- //# sourceMappingURL=score.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/commands/score.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7E,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,gEAAgE,CAAC;SAC7E,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAC1C,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerSelfTestCommand(program: Command): void;
@@ -1,63 +0,0 @@
1
- import chalk from 'chalk';
2
- import { access } from 'node:fs/promises';
3
- import path from 'node:path';
4
- import { TOOLIP_VERSION } from '../config/version.js';
5
- async function canAccess(filePath) {
6
- try {
7
- await access(filePath);
8
- return true;
9
- }
10
- catch {
11
- return false;
12
- }
13
- }
14
- export function registerSelfTestCommand(program) {
15
- program
16
- .command('self-test')
17
- .description('Run Toolip internal diagnostics.')
18
- .action(async () => {
19
- const checks = [
20
- {
21
- label: 'CLI Loaded',
22
- passed: true
23
- },
24
- {
25
- label: 'Command Router Ready',
26
- passed: true
27
- },
28
- {
29
- label: 'Package Manifest Found',
30
- passed: await canAccess(path.join(process.cwd(), 'package.json'))
31
- },
32
- {
33
- label: 'Scanner Foundation Ready',
34
- passed: true
35
- },
36
- {
37
- label: 'Report Engine Ready',
38
- passed: true
39
- }
40
- ];
41
- console.log(chalk.bold('Toolip Self-Test'));
42
- console.log(chalk.dim(`Version: ${TOOLIP_VERSION}`));
43
- console.log('');
44
- let failed = 0;
45
- for (const check of checks) {
46
- if (check.passed) {
47
- console.log(`${chalk.green('✓')} ${check.label}`);
48
- }
49
- else {
50
- failed += 1;
51
- console.log(`${chalk.red('✖')} ${check.label}`);
52
- }
53
- }
54
- console.log('');
55
- if (failed > 0) {
56
- console.log(chalk.red(`Toolip found ${failed} failed diagnostic check(s).`));
57
- process.exitCode = 1;
58
- return;
59
- }
60
- console.log(chalk.green('Toolip is healthy.'));
61
- });
62
- }
63
- //# sourceMappingURL=self-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"self-test.js","sourceRoot":"","sources":["../../../src/commands/self-test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,KAAK,UAAU,SAAS,CAAC,QAAgB;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG;YACb;gBACE,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;aACb;YACD;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,IAAI;aACb;YACD;gBACE,KAAK,EAAE,wBAAwB;gBAC/B,MAAM,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;aAClE;YACD;gBACE,KAAK,EAAE,0BAA0B;gBACjC,MAAM,EAAE,IAAI;aACb;YACD;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,IAAI;aACb;SACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,cAAc,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,MAAM,8BAA8B,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerTreeCommand(program: Command): void;
@@ -1,21 +0,0 @@
1
- import chalk from 'chalk';
2
- import { buildDependencyTree } from '../core/dependency-tree.js';
3
- export function registerTreeCommand(program) {
4
- program
5
- .command('tree')
6
- .description('Display a dependency tree summary.')
7
- .option('-p, --path <path>', 'Project path to analyze.', process.cwd())
8
- .action(async (options) => {
9
- const tree = await buildDependencyTree(options.path);
10
- console.log(chalk.bold('Toolip Dependency Tree'));
11
- console.log('');
12
- console.log(`${chalk.dim('Direct Dependencies:')} ${tree.summary.direct}`);
13
- console.log(`${chalk.dim('Transitive Dependencies:')} ${tree.summary.transitive}`);
14
- console.log(`${chalk.dim('Max Depth:')} ${tree.summary.maxDepth}`);
15
- console.log('');
16
- for (const dependency of tree.dependencies) {
17
- console.log(`${chalk.green('├─')} ${dependency.name}@${dependency.version} ${chalk.dim(`(${dependency.type})`)}`);
18
- }
19
- });
20
- }
21
- //# sourceMappingURL=tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/commands/tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;QACpH,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerVaultCommand(program: Command): void;
@@ -1,86 +0,0 @@
1
- import chalk from 'chalk';
2
- import { deleteSecret, exportEnv, getSecret, initVault, listSecrets, setSecret } from '../core/vault.js';
3
- export function registerVaultCommand(program) {
4
- const vault = program
5
- .command('vault')
6
- .description('Manage encrypted local secrets with Toolip Vault.');
7
- vault
8
- .command('init')
9
- .description('Initialize an encrypted local vault.')
10
- .requiredOption('--password <password>', 'Master password.')
11
- .action(async (options) => {
12
- await initVault(options.password);
13
- console.log(`${chalk.green('✓')} Toolip Vault initialized.`);
14
- });
15
- vault
16
- .command('set <key> <value>')
17
- .description('Store or update a secret.')
18
- .option('--env <env>', 'Secret environment.', 'development')
19
- .requiredOption('--password <password>', 'Master password.')
20
- .action(async (key, value, options) => {
21
- await setSecret({
22
- key,
23
- value,
24
- env: options.env,
25
- masterPassword: options.password
26
- });
27
- console.log(`${chalk.green('✓')} Stored ${key} for ${options.env}.`);
28
- });
29
- vault
30
- .command('get <key>')
31
- .description('Retrieve a secret value.')
32
- .option('--env <env>', 'Secret environment.', 'development')
33
- .requiredOption('--password <password>', 'Master password.')
34
- .action(async (key, options) => {
35
- const secret = await getSecret({
36
- key,
37
- env: options.env,
38
- masterPassword: options.password
39
- });
40
- console.log(secret.value);
41
- });
42
- vault
43
- .command('list')
44
- .description('List secret names without revealing values.')
45
- .option('--env <env>', 'Filter by environment.')
46
- .requiredOption('--password <password>', 'Master password.')
47
- .action(async (options) => {
48
- const secrets = await listSecrets({
49
- env: options.env,
50
- masterPassword: options.password
51
- });
52
- if (secrets.length === 0) {
53
- console.log(chalk.yellow('No secrets found.'));
54
- return;
55
- }
56
- for (const secret of secrets) {
57
- console.log(`${chalk.green('✓')} ${secret.key} ${chalk.dim(`(${secret.env})`)}`);
58
- }
59
- });
60
- vault
61
- .command('delete <key>')
62
- .description('Delete a secret.')
63
- .option('--env <env>', 'Secret environment.', 'development')
64
- .requiredOption('--password <password>', 'Master password.')
65
- .action(async (key, options) => {
66
- const deleted = await deleteSecret({
67
- key,
68
- env: options.env,
69
- masterPassword: options.password
70
- });
71
- console.log(deleted ? `${chalk.green('✓')} Deleted ${key}.` : chalk.yellow(`No secret found for ${key}.`));
72
- });
73
- vault
74
- .command('export')
75
- .description('Export secrets as shell-compatible environment lines.')
76
- .option('--env <env>', 'Filter by environment.')
77
- .requiredOption('--password <password>', 'Master password.')
78
- .action(async (options) => {
79
- const output = await exportEnv({
80
- env: options.env,
81
- masterPassword: options.password
82
- });
83
- console.log(output);
84
- });
85
- }
86
- //# sourceMappingURL=vault.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/commands/vault.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export declare const TOOLIP_VERSION = "1.0.3";
2
- export declare const TOOLIP_AUTHOR: {
3
- name: string;
4
- handle: string;
5
- github: string;
6
- };
@@ -1,7 +0,0 @@
1
- export const TOOLIP_VERSION = '1.0.3';
2
- export const TOOLIP_AUTHOR = {
3
- name: 'Ashibuogwu Williams',
4
- handle: 'wbizmo',
5
- github: 'https://github.com/wbizmo'
6
- };
7
- //# sourceMappingURL=version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/config/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,2BAA2B;CACpC,CAAC"}
@@ -1,8 +0,0 @@
1
- export type PackageAlternative = {
2
- package: string;
3
- alternatives: Array<{
4
- name: string;
5
- reason: string;
6
- }>;
7
- };
8
- export declare function findAlternatives(packageName: string): PackageAlternative;