faf-taf-git 2.0.4

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 (47) hide show
  1. package/.faf +126 -0
  2. package/.faf-dna +95 -0
  3. package/.fafignore +41 -0
  4. package/.taf +21 -0
  5. package/CHANGELOG.md +208 -0
  6. package/CLAUDE.md +30 -0
  7. package/CONTRIBUTING.md +286 -0
  8. package/LICENSE +21 -0
  9. package/README.md +496 -0
  10. package/action.yml +42 -0
  11. package/dist/bundle/index.js +36554 -0
  12. package/dist/cli.d.ts +31 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +380 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/index.d.ts +7 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +36560 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/licenses.txt +148 -0
  21. package/dist/main.d.ts +7 -0
  22. package/dist/main.d.ts.map +1 -0
  23. package/dist/main.js +147 -0
  24. package/dist/main.js.map +1 -0
  25. package/dist/parsers/jest.d.ts +38 -0
  26. package/dist/parsers/jest.d.ts.map +1 -0
  27. package/dist/parsers/jest.js +87 -0
  28. package/dist/parsers/jest.js.map +1 -0
  29. package/dist/sourcemap-register.js +1 -0
  30. package/dist/taf-core.d.ts +12 -0
  31. package/dist/taf-core.d.ts.map +1 -0
  32. package/dist/taf-core.js +136 -0
  33. package/dist/taf-core.js.map +1 -0
  34. package/docs/RELEASE-NOTES.md +200 -0
  35. package/docs/USER-GUIDE.md +301 -0
  36. package/jest.config.js +13 -0
  37. package/package.json +47 -0
  38. package/project.faf +259 -0
  39. package/src/cli.ts +393 -0
  40. package/src/index.ts +131 -0
  41. package/src/parsers/jest.ts +104 -0
  42. package/src/taf-core.ts +139 -0
  43. package/test-mcp.ts +83 -0
  44. package/test-standalone.ts +87 -0
  45. package/tests/jest-parser.test.ts +122 -0
  46. package/tests/wjttc-taf.test.ts +470 -0
  47. package/tsconfig.json +18 -0
package/dist/cli.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * faf-taf-git - Standalone CLI for TAF operations
4
+ *
5
+ * Platform-agnostic core that works in ANY CI/CD environment
6
+ * Can be used standalone or as a library by wrappers
7
+ */
8
+ export interface CLIOptions {
9
+ command?: string;
10
+ autoCommit?: boolean;
11
+ commitMessage?: string;
12
+ cwd?: string;
13
+ verbose?: boolean;
14
+ logger?: (message: string) => void;
15
+ }
16
+ export interface CLIResult {
17
+ success: boolean;
18
+ testResults?: {
19
+ total: number;
20
+ passed: number;
21
+ failed: number;
22
+ result: string;
23
+ };
24
+ tafUpdated: boolean;
25
+ error?: string;
26
+ }
27
+ /**
28
+ * Main CLI function - platform-agnostic
29
+ * Can be called from GitHub Actions, GitLab CI, or standalone
30
+ */
31
+ export declare function runTafGit(options?: CLIOptions): Promise<CLIResult>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AASH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAmM5E"}
package/dist/cli.js ADDED
@@ -0,0 +1,380 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * faf-taf-git - Standalone CLI for TAF operations
5
+ *
6
+ * Platform-agnostic core that works in ANY CI/CD environment
7
+ * Can be used standalone or as a library by wrappers
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.runTafGit = runTafGit;
44
+ const exec = __importStar(require("@actions/exec"));
45
+ const fs = __importStar(require("fs"));
46
+ const os = __importStar(require("os"));
47
+ const path = __importStar(require("path"));
48
+ const jest_1 = require("./parsers/jest");
49
+ const taf_core_1 = require("./taf-core");
50
+ /**
51
+ * Main CLI function - platform-agnostic
52
+ * Can be called from GitHub Actions, GitLab CI, or standalone
53
+ */
54
+ async function runTafGit(options = {}) {
55
+ const { command = 'npm test', autoCommit = false, commitMessage = 'chore: update .taf with test results', cwd = process.cwd(), verbose = false, logger = console.log, } = options;
56
+ try {
57
+ if (verbose)
58
+ console.log(`Running test command: ${command}`);
59
+ // Run tests and capture output using @actions/exec
60
+ let output = '';
61
+ let exitCode = 0;
62
+ try {
63
+ // Parse command into executable and args
64
+ // For "npm test" -> ["npm", "test"]
65
+ const commandParts = command.split(' ');
66
+ const executable = commandParts[0];
67
+ const args = commandParts.slice(1);
68
+ const options = {
69
+ cwd,
70
+ silent: false, // Show output in logs
71
+ ignoreReturnCode: true // Don't throw on non-zero exit
72
+ };
73
+ // --- [START NUCLEAR CANARY] ---
74
+ // Use getExecOutput to capture stdout/stderr
75
+ const result = await exec.getExecOutput(executable, args, options);
76
+ // THE NUCLEAR CANARY: Write directly to disk, bypassing stdout/stderr streams
77
+ // Write to MULTIPLE locations to ensure we find it!
78
+ const canaryContent = [
79
+ `=========================================`,
80
+ `TAF DEBUG CANARY REPORT`,
81
+ `Timestamp: ${new Date().toISOString()}`,
82
+ `CWD: ${cwd}`,
83
+ `Process CWD: ${process.cwd()}`,
84
+ `=========================================`,
85
+ `Exit Code: ${result.exitCode}`,
86
+ `Stdout Length: ${result.stdout.length}`,
87
+ `Stderr Length: ${result.stderr.length}`,
88
+ `-----------------------------------------`,
89
+ `STDOUT PREVIEW (First 500 chars):`,
90
+ `${result.stdout.substring(0, 500)}`,
91
+ `-----------------------------------------`,
92
+ `STDERR PREVIEW (First 500 chars):`,
93
+ `${result.stderr.substring(0, 500)}`,
94
+ `=========================================`
95
+ ].join('\n');
96
+ try {
97
+ // Try multiple locations!
98
+ const locations = [
99
+ path.join(cwd, 'TAF_DEBUG_CANARY.txt'), // Original cwd
100
+ path.join(process.cwd(), 'TAF_DEBUG_CANARY.txt'), // Process cwd
101
+ path.join(os.tmpdir(), 'TAF_DEBUG_CANARY.txt'), // OS temp directory
102
+ 'TAF_DEBUG_CANARY.txt' // Current directory
103
+ ];
104
+ let writeSuccess = false;
105
+ for (const loc of locations) {
106
+ try {
107
+ fs.writeFileSync(loc, canaryContent);
108
+ writeSuccess = true;
109
+ }
110
+ catch (e) {
111
+ // Try next location
112
+ }
113
+ }
114
+ if (!writeSuccess) {
115
+ throw new Error('CRITICAL: Failed to write canary to ANY location!');
116
+ }
117
+ }
118
+ catch (fsError) {
119
+ // If we can't write to disk, we are truly doomed
120
+ throw new Error(`CRITICAL: Failed to write canary file: ${fsError.message}`);
121
+ }
122
+ // Continue with original logic
123
+ exitCode = result.exitCode;
124
+ output = result.stdout + result.stderr;
125
+ // --- [END NUCLEAR CANARY] ---
126
+ }
127
+ catch (error) {
128
+ exitCode = 1;
129
+ if (verbose) {
130
+ logger(`Test command failed with error: ${error.message}`);
131
+ logger(`Captured output length: ${output.length} bytes`);
132
+ }
133
+ }
134
+ // Debug: Write entire output to file for inspection
135
+ if (verbose) {
136
+ try {
137
+ const fs = require('fs');
138
+ const debugPath = path.join(os.tmpdir(), 'taf-debug-output.txt');
139
+ fs.writeFileSync(debugPath, output);
140
+ logger(`DEBUG: Wrote ${output.length} bytes to ${debugPath}`);
141
+ const lines = output.split('\n');
142
+ const testLine = lines.find(l => l.includes('Tests:'));
143
+ logger(`DEBUG: Output has ${lines.length} lines, Found "Tests:": ${testLine ? 'YES' : 'NO'}`);
144
+ if (testLine) {
145
+ logger(`DEBUG: Tests line: "${testLine}"`);
146
+ }
147
+ else {
148
+ logger(`DEBUG: Last 10 lines of output:`);
149
+ lines.slice(-10).forEach((line, i) => {
150
+ logger(` ${i}: ${line.substring(0, 100)}`);
151
+ });
152
+ }
153
+ }
154
+ catch (err) {
155
+ logger(`DEBUG: Error writing debug file: ${err}`);
156
+ }
157
+ }
158
+ // Parse test output
159
+ const testResults = (0, jest_1.parseJestOutput)(output);
160
+ if (!testResults) {
161
+ if (verbose) {
162
+ logger(`DEBUG: Parser returned null`);
163
+ logger(`DEBUG: Output sample (first 500 chars): ${output.slice(0, 500)}`);
164
+ logger(`DEBUG: Output sample (last 500 chars): ${output.slice(-500)}`);
165
+ }
166
+ return {
167
+ success: false,
168
+ tafUpdated: false,
169
+ error: 'Could not parse test output. Ensure you are using Jest.',
170
+ };
171
+ }
172
+ if (verbose) {
173
+ logger(`Parsed results: ${testResults.passed}/${testResults.total} tests passing`);
174
+ }
175
+ // Check if .taf file exists
176
+ const tafPath = path.join(cwd, '.taf');
177
+ if (!fs.existsSync(tafPath)) {
178
+ return {
179
+ success: false,
180
+ testResults: {
181
+ total: testResults.total,
182
+ passed: testResults.passed,
183
+ failed: testResults.failed,
184
+ result: testResults.result,
185
+ },
186
+ tafUpdated: false,
187
+ error: 'No .taf file found. Run `faf taf init` to create one.',
188
+ };
189
+ }
190
+ // Update .taf file
191
+ const updated = await (0, taf_core_1.updateTafFile)(tafPath, testResults);
192
+ if (updated) {
193
+ if (verbose)
194
+ logger('✅ .taf file updated successfully');
195
+ // Commit changes if enabled
196
+ if (autoCommit) {
197
+ await commitTafUpdate(cwd, commitMessage, verbose, logger);
198
+ if (verbose)
199
+ logger('✅ Changes committed to git');
200
+ }
201
+ return {
202
+ success: true,
203
+ testResults: {
204
+ total: testResults.total,
205
+ passed: testResults.passed,
206
+ failed: testResults.failed,
207
+ result: testResults.result,
208
+ },
209
+ tafUpdated: true,
210
+ };
211
+ }
212
+ else {
213
+ return {
214
+ success: false,
215
+ testResults: {
216
+ total: testResults.total,
217
+ passed: testResults.passed,
218
+ failed: testResults.failed,
219
+ result: testResults.result,
220
+ },
221
+ tafUpdated: false,
222
+ error: '.taf file was not updated',
223
+ };
224
+ }
225
+ }
226
+ catch (error) {
227
+ return {
228
+ success: false,
229
+ tafUpdated: false,
230
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
231
+ };
232
+ }
233
+ }
234
+ /**
235
+ * Commit .taf file changes to git (platform-agnostic)
236
+ */
237
+ async function commitTafUpdate(cwd, message, verbose, logger = console.log) {
238
+ try {
239
+ const execOptions = { cwd };
240
+ // Configure git if needed
241
+ await exec.exec('git', ['config', '--global', 'user.name', 'faf-taf-git[bot]'], execOptions);
242
+ await exec.exec('git', ['config', '--global', 'user.email', 'faf-taf-git[bot]@users.noreply.github.com'], execOptions);
243
+ // Stage .taf file
244
+ await exec.exec('git', ['add', '.taf'], execOptions);
245
+ // Check if there are changes to commit
246
+ let diffOutput = '';
247
+ const diffOptions = {
248
+ cwd,
249
+ listeners: {
250
+ stdout: (data) => {
251
+ diffOutput += data.toString();
252
+ }
253
+ }
254
+ };
255
+ await exec.exec('git', ['diff', '--cached', '--name-only'], diffOptions);
256
+ if (diffOutput.trim().length > 0) {
257
+ await exec.exec('git', ['commit', '-m', message], execOptions);
258
+ // Try to push (might fail in some environments, that's ok)
259
+ try {
260
+ await exec.exec('git', ['push'], execOptions);
261
+ }
262
+ catch (error) {
263
+ if (verbose) {
264
+ logger('Could not push changes (this is ok in some CI environments)');
265
+ }
266
+ }
267
+ }
268
+ else {
269
+ if (verbose)
270
+ logger('No changes to commit');
271
+ }
272
+ }
273
+ catch (error) {
274
+ if (verbose) {
275
+ logger(`Error committing changes: ${error}`);
276
+ }
277
+ throw error;
278
+ }
279
+ }
280
+ /**
281
+ * CLI entry point - parse args and run
282
+ */
283
+ async function main() {
284
+ const args = process.argv.slice(2);
285
+ const options = {
286
+ verbose: args.includes('--verbose') || args.includes('-v'),
287
+ };
288
+ // Parse command flag
289
+ const commandIndex = args.indexOf('--command');
290
+ if (commandIndex !== -1 && args[commandIndex + 1]) {
291
+ options.command = args[commandIndex + 1];
292
+ }
293
+ // Parse auto-commit flag
294
+ if (args.includes('--commit')) {
295
+ options.autoCommit = true;
296
+ }
297
+ // Parse commit message
298
+ const messageIndex = args.indexOf('--message');
299
+ if (messageIndex !== -1 && args[messageIndex + 1]) {
300
+ options.commitMessage = args[messageIndex + 1];
301
+ }
302
+ // Parse working directory
303
+ const cwdIndex = args.indexOf('--cwd');
304
+ if (cwdIndex !== -1 && args[cwdIndex + 1]) {
305
+ options.cwd = args[cwdIndex + 1];
306
+ }
307
+ // Show help
308
+ if (args.includes('--help') || args.includes('-h')) {
309
+ console.log(`
310
+ faf-taf-git - Platform-agnostic TAF updater
311
+
312
+ USAGE:
313
+ npx faf-taf-git [OPTIONS]
314
+
315
+ OPTIONS:
316
+ --command <cmd> Test command to run (default: npm test)
317
+ --commit Auto-commit .taf changes to git
318
+ --message <msg> Custom commit message
319
+ --cwd <dir> Working directory (default: current)
320
+ --verbose, -v Verbose output
321
+ --help, -h Show this help
322
+
323
+ EXAMPLES:
324
+ # Run tests and update .taf
325
+ npx faf-taf-git
326
+
327
+ # Custom test command
328
+ npx faf-taf-git --command "npm run test:unit"
329
+
330
+ # Auto-commit changes
331
+ npx faf-taf-git --commit
332
+
333
+ # Custom commit message
334
+ npx faf-taf-git --commit --message "test: update TAF"
335
+
336
+ # Verbose mode
337
+ npx faf-taf-git --verbose
338
+
339
+ PLATFORM SUPPORT:
340
+ ✅ GitHub Actions
341
+ ✅ GitLab CI
342
+ ✅ Bitbucket Pipelines
343
+ ✅ Jenkins
344
+ ✅ CircleCI
345
+ ✅ Local development
346
+ ✅ Any CI/CD that runs Node.js
347
+
348
+ LEARN MORE:
349
+ https://github.com/Wolfe-Jam/faf-taf-git
350
+ `);
351
+ process.exit(0);
352
+ }
353
+ // Run the tool
354
+ const result = await runTafGit(options);
355
+ if (result.success) {
356
+ if (result.testResults) {
357
+ console.log(`✅ Tests: ${result.testResults.passed}/${result.testResults.total} passing`);
358
+ console.log(`✅ Result: ${result.testResults.result}`);
359
+ }
360
+ if (result.tafUpdated) {
361
+ console.log('✅ .taf file updated');
362
+ }
363
+ process.exit(0);
364
+ }
365
+ else {
366
+ console.error(`❌ Error: ${result.error}`);
367
+ if (result.testResults) {
368
+ console.log(`Tests: ${result.testResults.passed}/${result.testResults.total} passing`);
369
+ }
370
+ process.exit(1);
371
+ }
372
+ }
373
+ // Run CLI if called directly
374
+ if (require.main === module) {
375
+ main().catch((error) => {
376
+ console.error('Fatal error:', error);
377
+ process.exit(1);
378
+ });
379
+ }
380
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * faf-taf-git v2.0.0 - GitHub Actions wrapper
3
+ *
4
+ * Pre-Capture Pattern: Reads test output from file (written by previous step)
5
+ * Handles GitHub Actions-specific inputs/outputs
6
+ */
7
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}