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
@@ -0,0 +1,286 @@
1
+ # Contributing to FAF TAF Action
2
+
3
+ Thank you for considering contributing to the FAF TAF Action!
4
+
5
+ ## Philosophy
6
+
7
+ We follow the **WJTTC (WolfeJam Technical & Testing Center)** philosophy:
8
+
9
+ > "We break things so others never know they were broken."
10
+
11
+ This means:
12
+ - Test everything
13
+ - Find bugs early
14
+ - Fix them immediately
15
+ - Maintain championship standards
16
+
17
+ ## Code of Conduct
18
+
19
+ - Be professional
20
+ - Be respectful
21
+ - Focus on facts
22
+ - Trust is everything
23
+ - No BS - only verified claims
24
+
25
+ ## Development Setup
26
+
27
+ ### Prerequisites
28
+
29
+ - Node.js 20+
30
+ - npm or yarn
31
+ - Git
32
+ - TypeScript knowledge
33
+
34
+ ### Getting Started
35
+
36
+ ```bash
37
+ # Clone the repository
38
+ git clone https://github.com/Wolfe-Jam/faf-taf-action.git
39
+ cd faf-taf-action
40
+
41
+ # Install dependencies
42
+ npm install
43
+
44
+ # Build the project
45
+ npm run build
46
+
47
+ # Run tests
48
+ npm test
49
+
50
+ # Run integration tests
51
+ npx tsx test-standalone.ts
52
+ npx tsx test-mcp.ts
53
+ ```
54
+
55
+ ## Project Structure
56
+
57
+ ```
58
+ faf-taf-action/
59
+ ├── src/
60
+ │ ├── index.ts # Main action entry point
61
+ │ ├── taf-core.ts # MCP-portable TAF operations
62
+ │ └── parsers/
63
+ │ └── jest.ts # Jest output parser
64
+ ├── tests/
65
+ │ └── jest-parser.test.ts # Unit tests
66
+ ├── docs/
67
+ │ ├── USER-GUIDE.md # User documentation
68
+ │ └── RELEASE-NOTES.md # Release history
69
+ ├── action.yml # Action definition
70
+ └── package.json # Dependencies
71
+ ```
72
+
73
+ ## How to Contribute
74
+
75
+ ### 1. Report Bugs
76
+
77
+ Open an issue with:
78
+ - Clear description
79
+ - Steps to reproduce
80
+ - Expected vs actual behavior
81
+ - Environment details
82
+ - Minimal reproduction case
83
+
84
+ ### 2. Suggest Features
85
+
86
+ Open an issue with:
87
+ - Use case description
88
+ - Why it's valuable
89
+ - Proposed implementation (optional)
90
+ - Alternatives considered
91
+
92
+ ### 3. Submit Code
93
+
94
+ 1. Fork the repository
95
+ 2. Create a feature branch
96
+ 3. Make your changes
97
+ 4. Add tests
98
+ 5. Update documentation
99
+ 6. Submit a pull request
100
+
101
+ ## Coding Standards
102
+
103
+ ### TypeScript
104
+
105
+ - Use strict mode (already configured)
106
+ - Explicit types everywhere
107
+ - No `any` unless absolutely necessary
108
+ - Descriptive variable names
109
+ - Functions should be pure when possible
110
+
111
+ ### Testing
112
+
113
+ - All new code must have tests
114
+ - Maintain 100% coverage for critical paths
115
+ - Use descriptive test names
116
+ - Test both success and failure cases
117
+
118
+ ### Documentation
119
+
120
+ - Update README.md for user-facing changes
121
+ - Update USER-GUIDE.md for new features
122
+ - Add inline comments for complex logic
123
+ - Keep CLAUDE.md synchronized
124
+
125
+ ### Commits
126
+
127
+ Follow our git protocol:
128
+
129
+ ```
130
+ <type>: <what changed>
131
+
132
+ - <specific change 1>
133
+ - <specific change 2>
134
+ ```
135
+
136
+ **Types:** `fix:` `feat:` `docs:` `refactor:` `chore:` `test:`
137
+
138
+ **Examples:**
139
+ ```
140
+ fix: Handle Jest output with skipped tests
141
+
142
+ - Add skipped count parsing
143
+ - Update test result interface
144
+ - Add unit tests for skipped tests
145
+ ```
146
+
147
+ ```
148
+ feat: Add Mocha parser support
149
+
150
+ - Create mocha.ts parser
151
+ - Add Mocha output format detection
152
+ - Update documentation
153
+ - Add integration tests
154
+ ```
155
+
156
+ **Never:**
157
+ - No exclamation marks
158
+ - No emotion or hype
159
+ - No "finally" or "at last"
160
+ - Keep it boring and professional
161
+
162
+ ## Adding Test Framework Support
163
+
164
+ To add support for a new test framework:
165
+
166
+ ### 1. Create Parser
167
+
168
+ Create `src/parsers/[framework].ts`:
169
+
170
+ ```typescript
171
+ export interface TestResults {
172
+ total: number;
173
+ passed: number;
174
+ failed: number;
175
+ skipped?: number;
176
+ result: 'PASSED' | 'FAILED' | 'IMPROVED' | 'DEGRADED';
177
+ }
178
+
179
+ export function parseFrameworkOutput(output: string): TestResults | null {
180
+ // Parse framework-specific output
181
+ // Return null if output doesn't match format
182
+ }
183
+ ```
184
+
185
+ ### 2. Add Tests
186
+
187
+ Create `tests/[framework]-parser.test.ts`:
188
+
189
+ ```typescript
190
+ import { parseFrameworkOutput } from '../src/parsers/framework';
191
+
192
+ describe('Framework Parser', () => {
193
+ it('should parse all passing tests', () => {
194
+ const output = `...`;
195
+ const result = parseFrameworkOutput(output);
196
+ expect(result?.total).toBe(10);
197
+ // ... more assertions
198
+ });
199
+
200
+ // Test all output variations
201
+ });
202
+ ```
203
+
204
+ ### 3. Update Main Entry
205
+
206
+ Modify `src/index.ts` to detect and use the new parser.
207
+
208
+ ### 4. Update Documentation
209
+
210
+ - Add to README.md supported frameworks list
211
+ - Add examples to USER-GUIDE.md
212
+ - Update RELEASE-NOTES.md
213
+
214
+ ## Testing Requirements
215
+
216
+ Before submitting a PR:
217
+
218
+ ```bash
219
+ # All unit tests must pass
220
+ npm test
221
+
222
+ # Build must succeed with no errors
223
+ npm run build
224
+
225
+ # Integration tests must pass
226
+ npx tsx test-standalone.ts
227
+ npx tsx test-mcp.ts
228
+
229
+ # TypeScript must compile with no errors
230
+ npx tsc --noEmit
231
+ ```
232
+
233
+ ## Review Process
234
+
235
+ 1. **Automated Checks**
236
+ - TypeScript compilation
237
+ - Test suite (must be 100%)
238
+ - Linting
239
+
240
+ 2. **Code Review**
241
+ - Architecture fit
242
+ - Code quality
243
+ - Test coverage
244
+ - Documentation
245
+
246
+ 3. **Testing**
247
+ - Manual testing if needed
248
+ - Integration verification
249
+
250
+ 4. **Approval & Merge**
251
+ - Squash and merge
252
+ - Clean commit history
253
+
254
+ ## Release Process
255
+
256
+ Releases follow semantic versioning:
257
+
258
+ - **Major** (v2.0.0): Breaking changes
259
+ - **Minor** (v1.1.0): New features, backward compatible
260
+ - **Patch** (v1.0.1): Bug fixes
261
+
262
+ Release checklist:
263
+ 1. Update version in package.json
264
+ 2. Update RELEASE-NOTES.md
265
+ 3. Run full test suite
266
+ 4. Build and verify dist/
267
+ 5. Create git tag
268
+ 6. Push to GitHub
269
+ 7. Create GitHub release
270
+ 8. Announce in discussions
271
+
272
+ ## Championship Standards
273
+
274
+ We maintain F1-inspired engineering standards:
275
+
276
+ - **Methodical**: Not a race, do it right
277
+ - **Tested**: WJTTC certified
278
+ - **Professional**: Boring is good
279
+ - **Trusted**: Facts only, no hype
280
+
281
+ ## Questions?
282
+
283
+ - GitHub Discussions: https://github.com/Wolfe-Jam/faf/discussions
284
+ - Email: team@faf.one
285
+
286
+ Thank you for contributing to the Golden Triangle!
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Wolfe James (wolfejam)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.