logicstamp-context 0.2.5 → 0.2.7

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 (56) hide show
  1. package/LLM_CONTEXT.md +2 -2
  2. package/README.md +33 -13
  3. package/dist/cli/commands/context.d.ts.map +1 -1
  4. package/dist/cli/commands/context.js +11 -1
  5. package/dist/cli/commands/context.js.map +1 -1
  6. package/dist/cli/commands/init.d.ts +4 -0
  7. package/dist/cli/commands/init.d.ts.map +1 -1
  8. package/dist/cli/commands/init.js +84 -9
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/commands/security.d.ts +38 -0
  11. package/dist/cli/commands/security.d.ts.map +1 -0
  12. package/dist/cli/commands/security.js +343 -0
  13. package/dist/cli/commands/security.js.map +1 -0
  14. package/dist/cli/handlers/securityHandler.d.ts +5 -0
  15. package/dist/cli/handlers/securityHandler.d.ts.map +1 -0
  16. package/dist/cli/handlers/securityHandler.js +45 -0
  17. package/dist/cli/handlers/securityHandler.js.map +1 -0
  18. package/dist/cli/parser/argumentParser.d.ts.map +1 -1
  19. package/dist/cli/parser/argumentParser.js +23 -0
  20. package/dist/cli/parser/argumentParser.js.map +1 -1
  21. package/dist/cli/parser/helpText.d.ts +2 -0
  22. package/dist/cli/parser/helpText.d.ts.map +1 -1
  23. package/dist/cli/parser/helpText.js +453 -348
  24. package/dist/cli/parser/helpText.js.map +1 -1
  25. package/dist/cli/stamp.js +55 -1
  26. package/dist/cli/stamp.js.map +1 -1
  27. package/dist/core/astParser/extractors/propExtractor.d.ts.map +1 -1
  28. package/dist/core/astParser/extractors/propExtractor.js +16 -4
  29. package/dist/core/astParser/extractors/propExtractor.js.map +1 -1
  30. package/dist/core/astParser.d.ts +3 -1
  31. package/dist/core/astParser.d.ts.map +1 -1
  32. package/dist/core/astParser.js +109 -0
  33. package/dist/core/astParser.js.map +1 -1
  34. package/dist/core/contractBuilder.d.ts.map +1 -1
  35. package/dist/core/contractBuilder.js +11 -15
  36. package/dist/core/contractBuilder.js.map +1 -1
  37. package/dist/core/manifest.d.ts.map +1 -1
  38. package/dist/core/manifest.js +54 -3
  39. package/dist/core/manifest.js.map +1 -1
  40. package/dist/core/pack.d.ts.map +1 -1
  41. package/dist/core/pack.js +57 -1
  42. package/dist/core/pack.js.map +1 -1
  43. package/dist/utils/gitignore.d.ts +30 -2
  44. package/dist/utils/gitignore.d.ts.map +1 -1
  45. package/dist/utils/gitignore.js +132 -20
  46. package/dist/utils/gitignore.js.map +1 -1
  47. package/dist/utils/secretDetector.d.ts +21 -0
  48. package/dist/utils/secretDetector.d.ts.map +1 -0
  49. package/dist/utils/secretDetector.js +145 -0
  50. package/dist/utils/secretDetector.js.map +1 -0
  51. package/dist/utils/stampignore.d.ts +49 -0
  52. package/dist/utils/stampignore.d.ts.map +1 -0
  53. package/dist/utils/stampignore.js +189 -0
  54. package/dist/utils/stampignore.js.map +1 -0
  55. package/package.json +1 -1
  56. package/schema/logicstamp.context.schema.json +26 -1
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Security scan command - Scans for secrets and generates report
3
+ */
4
+ import { resolve, dirname, join, relative } from 'node:path';
5
+ import { writeFile, mkdir, unlink, stat } from 'node:fs/promises';
6
+ import { createInterface } from 'node:readline';
7
+ import { stdin, stdout } from 'node:process';
8
+ import { globFiles, readFileWithText } from '../../utils/fsx.js';
9
+ import { scanFileForSecrets, filterFalsePositives } from '../../utils/secretDetector.js';
10
+ import { addToStampignore, deleteStampignore, STAMPIGNORE_FILENAME } from '../../utils/stampignore.js';
11
+ import { ensureGitignorePatterns, ensurePatternInGitignore } from '../../utils/gitignore.js';
12
+ import { debugError } from '../../utils/debug.js';
13
+ import { displayPath } from './context/fileWriter.js';
14
+ /**
15
+ * Security scan command
16
+ */
17
+ /**
18
+ * Prompt user for yes/no confirmation
19
+ */
20
+ async function promptYesNo(question) {
21
+ const rl = createInterface({
22
+ input: stdin,
23
+ output: stdout,
24
+ });
25
+ return new Promise((resolve) => {
26
+ rl.question(`${question} (y/N): `, (answer) => {
27
+ rl.close();
28
+ resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
29
+ });
30
+ });
31
+ }
32
+ /**
33
+ * Hard reset command - deletes .stampignore and security report file
34
+ */
35
+ export async function securityHardResetCommand(options) {
36
+ const projectRoot = resolve(options.entry || '.');
37
+ const outputPath = options.out || 'stamp_security_report.json';
38
+ const outputFile = outputPath.endsWith('.json') ? outputPath : join(outputPath, 'stamp_security_report.json');
39
+ const reportPath = outputFile;
40
+ let shouldReset = options.force;
41
+ if (!shouldReset) {
42
+ // Prompt for confirmation
43
+ shouldReset = await promptYesNo(`⚠️ This will delete ${STAMPIGNORE_FILENAME} and ${displayPath(reportPath)}. Continue?`);
44
+ }
45
+ if (shouldReset) {
46
+ // Delete .stampignore
47
+ const stampignoreDeleted = await deleteStampignore(projectRoot);
48
+ // Delete report file
49
+ let reportDeleted = false;
50
+ try {
51
+ await unlink(reportPath);
52
+ reportDeleted = true;
53
+ }
54
+ catch (error) {
55
+ const err = error;
56
+ if (err.code !== 'ENOENT') {
57
+ // Only error if file exists but couldn't be deleted
58
+ throw new Error(`Failed to delete report file: ${err.message}`);
59
+ }
60
+ }
61
+ if (!options.quiet) {
62
+ if (stampignoreDeleted || reportDeleted) {
63
+ console.log(`\n✅ Reset complete:`);
64
+ if (stampignoreDeleted) {
65
+ console.log(` Deleted ${STAMPIGNORE_FILENAME}`);
66
+ }
67
+ if (reportDeleted) {
68
+ console.log(` Deleted ${displayPath(reportPath)}`);
69
+ }
70
+ }
71
+ else {
72
+ console.log(`\nℹ️ No files to reset (both files don't exist)`);
73
+ }
74
+ }
75
+ }
76
+ else {
77
+ if (!options.quiet) {
78
+ console.log(`\n❌ Reset cancelled`);
79
+ }
80
+ process.exit(0);
81
+ }
82
+ }
83
+ export async function securityScanCommand(options) {
84
+ const projectRoot = resolve(options.entry || '.');
85
+ const outputPath = options.out || 'stamp_security_report.json';
86
+ const outputDir = outputPath.endsWith('.json') ? dirname(outputPath) : outputPath;
87
+ const outputFile = outputPath.endsWith('.json') ? outputPath : join(outputPath, 'stamp_security_report.json');
88
+ if (!options.quiet) {
89
+ console.log(`🔒 Scanning for secrets in ${displayPath(projectRoot)}...`);
90
+ }
91
+ // Find all files to scan (TypeScript, JavaScript, and JSON files)
92
+ let files = await globFiles(projectRoot, '.ts,.tsx,.js,.jsx,.json');
93
+ // Exclude the report file and .stampignore from scanning (they may contain secrets)
94
+ // Use absolute path comparison to be safe
95
+ const reportFileAbs = resolve(outputFile);
96
+ const stampignoreFileAbs = join(projectRoot, STAMPIGNORE_FILENAME);
97
+ files = files.filter(file => {
98
+ const fileAbs = resolve(file);
99
+ return fileAbs !== reportFileAbs && fileAbs !== stampignoreFileAbs;
100
+ });
101
+ if (files.length === 0) {
102
+ if (!options.quiet) {
103
+ console.log(' No files found to scan');
104
+ }
105
+ // Still create an empty report if noExit is true (called from init)
106
+ if (options.noExit) {
107
+ const emptyReport = {
108
+ type: 'LogicStampSecurityReport',
109
+ schemaVersion: '0.1',
110
+ createdAt: new Date().toISOString(),
111
+ projectRoot,
112
+ filesScanned: 0,
113
+ secretsFound: 0,
114
+ matches: [],
115
+ filesWithSecrets: [],
116
+ };
117
+ // Resolve output file relative to project root if it's a relative path
118
+ const resolvedOutputFile = outputFile.startsWith('/') || outputFile.match(/^[A-Z]:/)
119
+ ? outputFile
120
+ : join(projectRoot, outputFile);
121
+ const resolvedOutputDir = dirname(resolvedOutputFile);
122
+ try {
123
+ await mkdir(resolvedOutputDir, { recursive: true });
124
+ await writeFile(resolvedOutputFile, JSON.stringify(emptyReport, null, 2), 'utf8');
125
+ }
126
+ catch (error) {
127
+ const err = error;
128
+ debugError('security', 'securityScanCommand', {
129
+ outputFile: resolvedOutputFile,
130
+ message: err.message,
131
+ code: err.code,
132
+ });
133
+ throw new Error(`Failed to write security report: ${err.message}`);
134
+ }
135
+ // Automatically ensure report file is in .gitignore to prevent accidental commits
136
+ try {
137
+ const reportPathRelative = relative(projectRoot, resolvedOutputFile).replace(/\\/g, '/');
138
+ const isDefaultPath = outputPath === 'stamp_security_report.json' ||
139
+ (outputPath.endsWith('.json') && resolvedOutputFile.endsWith('stamp_security_report.json'));
140
+ if (isDefaultPath) {
141
+ // Default path - ensure all LogicStamp patterns are in .gitignore
142
+ await ensureGitignorePatterns(projectRoot);
143
+ }
144
+ else {
145
+ // Custom path - ensure this specific file is in .gitignore
146
+ await ensurePatternInGitignore(projectRoot, reportPathRelative);
147
+ }
148
+ }
149
+ catch (error) {
150
+ // Non-fatal: log warning but don't fail the scan
151
+ if (!options.quiet) {
152
+ const err = error;
153
+ console.warn(`\n⚠️ Warning: Could not update .gitignore: ${err.message}`);
154
+ console.warn(` Please manually add the report file to .gitignore to prevent accidental commits.`);
155
+ }
156
+ }
157
+ if (!options.quiet) {
158
+ console.log(`\n✅ No secrets detected`);
159
+ console.log(`📝 Report written to: ${displayPath(resolvedOutputFile)}`);
160
+ }
161
+ return { secretsFound: false, report: emptyReport };
162
+ }
163
+ return;
164
+ }
165
+ if (!options.quiet) {
166
+ console.log(` Scanning ${files.length} files...`);
167
+ }
168
+ // Scan each file for secrets
169
+ const allMatches = [];
170
+ const filesWithSecrets = new Set();
171
+ // Maximum file size to scan (10MB) - prevents DoS on huge files
172
+ const MAX_FILE_SIZE = 10 * 1024 * 1024;
173
+ for (const file of files) {
174
+ try {
175
+ // Check file size before reading
176
+ const fileStats = await stat(file);
177
+ if (fileStats.size > MAX_FILE_SIZE) {
178
+ if (!options.quiet) {
179
+ console.warn(` ⚠️ Skipped ${file}: file too large (${Math.round(fileStats.size / 1024 / 1024)}MB > 10MB)`);
180
+ }
181
+ continue;
182
+ }
183
+ const { text } = await readFileWithText(file);
184
+ const matches = scanFileForSecrets(file, text);
185
+ const filteredMatches = filterFalsePositives(matches);
186
+ if (filteredMatches.length > 0) {
187
+ allMatches.push(...filteredMatches);
188
+ filesWithSecrets.add(file);
189
+ }
190
+ }
191
+ catch (error) {
192
+ // Skip files that can't be read (binary, permissions, etc.)
193
+ if (!options.quiet) {
194
+ console.warn(` ⚠️ Skipped ${file}: ${error.message}`);
195
+ }
196
+ }
197
+ }
198
+ // Generate report
199
+ const report = {
200
+ type: 'LogicStampSecurityReport',
201
+ schemaVersion: '0.1',
202
+ createdAt: new Date().toISOString(),
203
+ projectRoot,
204
+ filesScanned: files.length,
205
+ secretsFound: allMatches.length,
206
+ matches: allMatches,
207
+ filesWithSecrets: Array.from(filesWithSecrets).sort(),
208
+ };
209
+ // Write report
210
+ try {
211
+ await mkdir(outputDir, { recursive: true });
212
+ await writeFile(outputFile, JSON.stringify(report, null, 2), 'utf8');
213
+ }
214
+ catch (error) {
215
+ const err = error;
216
+ debugError('security', 'securityScanCommand', {
217
+ outputFile,
218
+ message: err.message,
219
+ code: err.code,
220
+ });
221
+ throw new Error(`Failed to write security report: ${err.message}`);
222
+ }
223
+ // Automatically ensure report file is in .gitignore to prevent accidental commits
224
+ // The report contains sensitive information (locations of secrets)
225
+ try {
226
+ const reportPathRelative = relative(projectRoot, outputFile).replace(/\\/g, '/');
227
+ const isDefaultPath = outputPath === 'stamp_security_report.json' ||
228
+ (outputPath.endsWith('.json') && outputFile.endsWith('stamp_security_report.json'));
229
+ if (isDefaultPath) {
230
+ // Default path - ensure all LogicStamp patterns are in .gitignore
231
+ await ensureGitignorePatterns(projectRoot);
232
+ }
233
+ else {
234
+ // Custom path - ensure this specific file is in .gitignore
235
+ await ensurePatternInGitignore(projectRoot, reportPathRelative);
236
+ }
237
+ }
238
+ catch (error) {
239
+ // Non-fatal: log warning but don't fail the scan
240
+ if (!options.quiet) {
241
+ const err = error;
242
+ console.warn(`\n⚠️ Warning: Could not update .gitignore: ${err.message}`);
243
+ console.warn(` Please manually add the report file to .gitignore to prevent accidental commits.`);
244
+ }
245
+ }
246
+ // Display results
247
+ if (!options.quiet) {
248
+ console.log(`\n📊 Security Scan Results:`);
249
+ console.log(` Files scanned: ${files.length}`);
250
+ console.log(` Secrets found: ${allMatches.length}`);
251
+ console.log(` Files with secrets: ${filesWithSecrets.size}`);
252
+ if (allMatches.length > 0) {
253
+ console.log(`\n⚠️ Secrets detected in the following files:`);
254
+ // Group by file
255
+ const matchesByFile = new Map();
256
+ for (const match of allMatches) {
257
+ if (!matchesByFile.has(match.file)) {
258
+ matchesByFile.set(match.file, []);
259
+ }
260
+ matchesByFile.get(match.file).push(match);
261
+ }
262
+ for (const [file, matches] of matchesByFile.entries()) {
263
+ console.log(`\n ${displayPath(file)}`);
264
+ for (const match of matches.slice(0, 5)) { // Show first 5 matches per file
265
+ console.log(` Line ${match.line}: ${match.type} (${match.severity})`);
266
+ console.log(` ${match.snippet}`);
267
+ }
268
+ if (matches.length > 5) {
269
+ console.log(` ... and ${matches.length - 5} more`);
270
+ }
271
+ }
272
+ console.log(`\n📝 Report written to: ${displayPath(outputFile)}`);
273
+ // Ask if user wants to add files to .stampignore
274
+ if (options.apply) {
275
+ // Auto-apply: add files to .stampignore
276
+ // Convert absolute paths to relative paths for .stampignore
277
+ // All paths are relative to project root (no user-specific or absolute paths)
278
+ const filesToIgnore = Array.from(filesWithSecrets)
279
+ .map(file => {
280
+ const relPath = relative(projectRoot, file).replace(/\\/g, '/');
281
+ // Validate: ensure path is relative (doesn't start with / or contain .. outside project)
282
+ // relative() can return absolute paths if files are outside project root, but
283
+ // since globFiles is scoped to projectRoot, this shouldn't happen
284
+ if (relPath.startsWith('/') || relPath.match(/^[A-Z]:/)) {
285
+ // Absolute path detected - this shouldn't happen, but skip it to be safe
286
+ console.warn(`⚠️ Skipping absolute path outside project: ${file}`);
287
+ return null;
288
+ }
289
+ return relPath;
290
+ })
291
+ .filter((path) => path !== null);
292
+ if (filesToIgnore.length === 0) {
293
+ if (!options.quiet) {
294
+ console.log(`\nℹ️ No valid relative paths to add to .stampignore`);
295
+ }
296
+ }
297
+ else {
298
+ const result = await addToStampignore(projectRoot, filesToIgnore);
299
+ if (result.added) {
300
+ console.log(`\n✅ Added ${filesToIgnore.length} file(s) to .stampignore`);
301
+ if (result.created) {
302
+ console.log(` Created .stampignore`);
303
+ }
304
+ }
305
+ else {
306
+ console.log(`\nℹ️ Files already in .stampignore`);
307
+ }
308
+ }
309
+ }
310
+ else {
311
+ // Interactive prompt
312
+ console.log(`\n💡 To automatically add these files to .stampignore, run:`);
313
+ console.log(` stamp security scan --apply`);
314
+ }
315
+ }
316
+ else {
317
+ console.log(`\n✅ No secrets detected`);
318
+ console.log(`📝 Report written to: ${displayPath(outputFile)}`);
319
+ }
320
+ }
321
+ else {
322
+ // Quiet mode: just output JSON stats
323
+ console.log(JSON.stringify({
324
+ filesScanned: files.length,
325
+ secretsFound: allMatches.length,
326
+ filesWithSecrets: filesWithSecrets.size,
327
+ reportPath: outputFile,
328
+ }));
329
+ }
330
+ // Exit with error code if secrets found (unless noExit is true)
331
+ if (allMatches.length > 0) {
332
+ if (options.noExit) {
333
+ return { secretsFound: true, report };
334
+ }
335
+ else {
336
+ process.exit(1);
337
+ }
338
+ }
339
+ if (options.noExit) {
340
+ return { secretsFound: false, report };
341
+ }
342
+ }
343
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../../src/cli/commands/security.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Handler for security scan command
3
+ */
4
+ export declare function handleSecurityScan(args: string[]): Promise<void>;
5
+ //# sourceMappingURL=securityHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"securityHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/securityHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCtE"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Handler for security scan command
3
+ */
4
+ import { securityScanCommand } from '../commands/security.js';
5
+ import { getSecurityScanHelp } from '../parser/helpText.js';
6
+ import { printFoxIcon } from './initHandler.js';
7
+ export async function handleSecurityScan(args) {
8
+ if (args.includes('--help') || args.includes('-h')) {
9
+ printFoxIcon();
10
+ console.log(getSecurityScanHelp());
11
+ process.exit(0);
12
+ }
13
+ const options = {
14
+ entry: undefined,
15
+ out: undefined,
16
+ apply: args.includes('--apply'),
17
+ quiet: args.includes('--quiet') || args.includes('-q'),
18
+ };
19
+ // Parse arguments
20
+ for (let i = 0; i < args.length; i++) {
21
+ const arg = args[i];
22
+ if (arg === '--apply') {
23
+ options.apply = true;
24
+ }
25
+ else if (arg === '--quiet' || arg === '-q') {
26
+ options.quiet = true;
27
+ }
28
+ else if (arg === '--out' || arg === '-o') {
29
+ options.out = args[i + 1];
30
+ i++;
31
+ }
32
+ else if (!arg.startsWith('-') && !options.entry) {
33
+ options.entry = arg;
34
+ }
35
+ }
36
+ try {
37
+ await securityScanCommand(options);
38
+ }
39
+ catch (error) {
40
+ console.error('❌ Security scan failed:', error.message);
41
+ console.error(error.stack);
42
+ process.exit(1);
43
+ }
44
+ }
45
+ //# sourceMappingURL=securityHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"securityHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/securityHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAA4B,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAc;IACrD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAwB;QACnC,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;KACvD,CAAC;IAEF,kBAAkB;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"argumentParser.d.ts","sourceRoot":"","sources":["../../../src/cli/parser/argumentParser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAoG/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAkB5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAQ9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CA6BzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAgB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAQ3D"}
1
+ {"version":3,"file":"argumentParser.d.ts","sourceRoot":"","sources":["../../../src/cli/parser/argumentParser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAoG/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAkB5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAQ9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAmDzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAgB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAQ3D"}
@@ -146,6 +146,14 @@ export function parseInitArgs(args) {
146
146
  case 'skip-gitignore':
147
147
  options.skipGitignore = true;
148
148
  break;
149
+ case 'yes':
150
+ options.yes = true;
151
+ break;
152
+ case 'secure':
153
+ options.secure = true;
154
+ // --secure implies --yes
155
+ options.yes = true;
156
+ break;
149
157
  case 'quiet':
150
158
  // Ignore --quiet for init (quiet mode not supported)
151
159
  break;
@@ -154,6 +162,21 @@ export function parseInitArgs(args) {
154
162
  process.exit(1);
155
163
  }
156
164
  }
165
+ else if (arg.startsWith('-') && arg.length === 2) {
166
+ // Single-dash flags like -y, -q
167
+ const flag = arg[1];
168
+ switch (flag) {
169
+ case 'y':
170
+ options.yes = true;
171
+ break;
172
+ case 'q':
173
+ // Ignore -q for init (quiet mode not supported)
174
+ break;
175
+ default:
176
+ console.error(`❌ Unknown option: ${arg}`);
177
+ process.exit(1);
178
+ }
179
+ }
157
180
  else if (arg !== '-q') {
158
181
  // First non-option argument is the target directory (ignore -q)
159
182
  if (!options.targetDir) {
@@ -1 +1 @@
1
- {"version":3,"file":"argumentParser.js","sourceRoot":"","sources":["../../../src/cli/parser/argumentParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"argumentParser.js","sourceRoot":"","sources":["../../../src/cli/parser/argumentParser.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,12 @@
2
2
  * Help text for CLI commands
3
3
  */
4
4
  export declare function getMainHelp(): string;
5
+ export declare function getSecurityHelp(): string;
5
6
  export declare function getStyleHelp(): string;
6
7
  export declare function getGenerateHelp(): string;
7
8
  export declare function getValidateHelp(): string;
8
9
  export declare function getCompareHelp(): string;
9
10
  export declare function getCleanHelp(): string;
10
11
  export declare function getInitHelp(): string;
12
+ export declare function getSecurityScanHelp(): string;
11
13
  //# sourceMappingURL=helpText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpText.d.ts","sourceRoot":"","sources":["../../../src/cli/parser/helpText.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,WAAW,IAAI,MAAM,CAoDpC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAkDrC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAqDxC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAgCxC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAuFvC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAgDrC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAwCpC"}
1
+ {"version":3,"file":"helpText.d.ts","sourceRoot":"","sources":["../../../src/cli/parser/helpText.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,WAAW,IAAI,MAAM,CAwDpC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAyCxC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAkDrC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAqDxC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAgCxC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAuFvC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAgDrC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAgDpC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAkD5C"}