mcp-perforce-server 1.0.2 โ†’ 2.0.1

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.
@@ -9,6 +9,22 @@ To prevent VS Code from asking for approval on every command and to hide termina
9
9
  - `"LOG_LEVEL": "error"` - Minimize console output (only show errors)
10
10
  - `"disabled": false` - Ensure server is enabled
11
11
 
12
+ ## Authentication Configuration
13
+
14
+ **Important:** Configure your Perforce credentials using one of these methods:
15
+
16
+ 1. **`.p4config` file** (Recommended) - Create in project root:
17
+ ```
18
+ P4PORT=perforce-server:1666
19
+ P4USER=your-username
20
+ P4CLIENT=your-workspace-name
21
+ P4PASSWD=your-password
22
+ ```
23
+
24
+ 2. **Environment variables** in MCP config (see examples below)
25
+
26
+ The server automatically detects and uses these credentials. Passwords are masked in logs for security.
27
+
12
28
  ## VS Code with Claude Dev/Cline
13
29
 
14
30
  ### Option 1: Using .p4config file (Recommended)
@@ -42,6 +58,7 @@ Create a `.p4config` file in your project root, then:
42
58
  "P4PORT": "perforce-server:1666",
43
59
  "P4USER": "your-username",
44
60
  "P4CLIENT": "your-workspace-name",
61
+ "P4PASSWD": "your-password",
45
62
  "P4CHARSET": "utf8",
46
63
  "P4_READONLY_MODE": "false",
47
64
  "P4_DISABLE_DELETE": "true",
@@ -88,6 +105,7 @@ Create a `.p4config` file in your project root, then:
88
105
  "P4PORT": "perforce-server:1666",
89
106
  "P4USER": "your-username",
90
107
  "P4CLIENT": "your-workspace-name",
108
+ "P4PASSWD": "your-password",
91
109
  "P4_READONLY_MODE": "false",
92
110
  "P4_DISABLE_DELETE": "true",
93
111
  "LOG_LEVEL": "error"
package/README.md CHANGED
@@ -11,10 +11,15 @@ Enterprise-grade MCP (Model Context Protocol) server providing secure, non-inter
11
11
 
12
12
  ## Overview
13
13
 
14
- Production-ready server that exposes Perforce VCS operations through the Model Context Protocol, enabling AI assistants and code editors to interact with Perforce repositories safely and efficiently. Perfect for DevOps automation, enterprise development workflows, and AI-powered version control management.
14
+ Production-ready server that exposes **37+ Perforce VCS operations** through the Model Context Protocol, enabling AI assistants and code editors to interact with Perforce repositories safely and efficiently. Perfect for DevOps automation, enterprise development workflows, and AI-powered version control management.
15
15
 
16
16
  **Key Features:**
17
17
  - ๐Ÿ”’ **Enterprise Security** - Read-only defaults with configurable access controls
18
+ - ๐Ÿ” **Compliance Ready** - SOC 2, GDPR, HIPAA compliant with audit logging
19
+ - ๐Ÿšฆ **Rate Limiting** - Configurable request throttling with automatic blocking
20
+ - ๐Ÿงน **Input Sanitization** - Regex validation and path traversal protection
21
+ - ๐Ÿ’พ **Memory Management** - Process monitoring with automatic GC and limits
22
+ - ๐Ÿ“Š **Audit Logging** - Complete operation tracking with retention policies
18
23
  - ๐ŸŒ **Cross-platform Support** - Windows, macOS, Linux compatibility
19
24
  - ๐Ÿค– **AI Integration** - Works with Claude, ChatGPT, VS Code, Cursor, and other AI assistants
20
25
  - โšก **Non-interactive Operations** - Automated Perforce commands with comprehensive error handling
@@ -23,7 +28,40 @@ Production-ready server that exposes Perforce VCS operations through the Model C
23
28
  - ๐Ÿ”ง **Developer Friendly** - TypeScript support with comprehensive documentation
24
29
  - ๐Ÿš€ **Zero Configuration** - Works out-of-the-box with sensible defaults
25
30
 
26
- ## Why Choose MCP Perforce Server?
31
+ ## Core Capabilities
32
+
33
+ ### ๐Ÿ”’ Security & Compliance
34
+ - **Defense-in-depth architecture** with multiple security layers
35
+ - **Zero-trust defaults** - all advanced features disabled by default
36
+ - **Comprehensive audit logging** with configurable retention (90+ days)
37
+ - **Rate limiting** with configurable thresholds and block periods
38
+ - **Input sanitization** preventing injection attacks and path traversal
39
+ - **Memory management** with automatic garbage collection and limits
40
+ - **SOC 2, GDPR, HIPAA ready** with structured compliance reporting
41
+
42
+ ### ๐Ÿค– AI Assistant Integration
43
+ - **37+ Perforce operations** exposed through MCP protocol
44
+ - **Structured JSON responses** for reliable AI parsing
45
+ - **Non-interactive execution** - no user prompts or confirmations
46
+ - **Error handling** with standardized error codes
47
+ - **Context-aware operations** with automatic configuration detection
48
+ - **Real-time monitoring** and compliance status reporting
49
+
50
+ ### ๐Ÿข Enterprise Features
51
+ - **Multi-tenant support** with per-operation rate limiting
52
+ - **Centralized configuration** via environment variables
53
+ - **Production monitoring** with memory and performance tracking
54
+ - **Compliance reporting** with CSV/JSON export capabilities
55
+ - **Automated resource management** preventing system overload
56
+ - **Enterprise authentication** support through Perforce credentials
57
+
58
+ ### ๐Ÿ”ง Developer Experience
59
+ - **TypeScript first** with full type safety
60
+ - **Comprehensive documentation** with examples and guides
61
+ - **Cross-platform compatibility** - Windows, macOS, Linux
62
+ - **Zero configuration setup** with sensible defaults
63
+ - **Extensive testing** with automated component validation
64
+ - **Open source** with community contributions welcome
27
65
 
28
66
  **Alternative to:**
29
67
  - Manual Perforce CLI operations in AI workflows
@@ -34,12 +72,53 @@ Production-ready server that exposes Perforce VCS operations through the Model C
34
72
  **Perfect for:**
35
73
  - Enterprise teams using Perforce with AI development tools
36
74
  - DevOps automation with Anthropic Claude or OpenAI ChatGPT
37
- - VS Code and Cursor IDE users working with Perforce repositories
75
+ - VS Code and Cursor IDE users working with Perforce repositories
38
76
  - Secure version control operations in AI-assisted coding workflows
77
+ - Organizations requiring SOC 2, GDPR, or HIPAA compliance
78
+ - Teams needing comprehensive audit trails and security monitoring
79
+ - Enterprises with strict security policies and compliance requirements
80
+
81
+ ## Why Choose MCP Perforce Server?
82
+
83
+ ### ๐Ÿ›ก๏ธ **Enterprise-Grade Security**
84
+ - **Defense-in-depth architecture** with multiple security layers
85
+ - **Rate limiting** prevents abuse and ensures fair resource usage
86
+ - **Comprehensive audit logging** with configurable retention policies
87
+ - **Input sanitization** protects against injection attacks and malicious input
88
+ - **Memory management** with automatic monitoring and garbage collection
89
+ - **Read-only mode** for secure environments and compliance requirements
90
+
91
+ ### ๐Ÿ“Š **Compliance Ready**
92
+ - **SOC 2 Type II** compliance framework with automated reporting
93
+ - **GDPR** compliance with data protection and privacy controls
94
+ - **HIPAA** compliance for healthcare and sensitive data environments
95
+ - **Compliance reporting tools** for audit preparation and regulatory requirements
96
+ - **Data retention policies** configurable for different compliance needs
97
+
98
+ ### ๐Ÿค– **AI-First Design**
99
+ - **37+ Perforce operations** through standardized MCP protocol
100
+ - **Non-interactive execution** perfect for AI assistants and automation
101
+ - **Structured error handling** with detailed error codes and recovery suggestions
102
+ - **Context-aware operations** that understand Perforce workflows
103
+ - **Seamless integration** with Claude, ChatGPT, VS Code, and Cursor
104
+
105
+ ### โšก **Production Ready**
106
+ - **Zero-configuration setup** with automatic Perforce environment detection
107
+ - **Cross-platform support** (Windows, macOS, Linux) for enterprise deployments
108
+ - **Comprehensive error handling** with actionable error messages
109
+ - **Performance optimized** with connection pooling and caching
110
+ - **Enterprise authentication** support through Perforce credentials
111
+
112
+ ### ๐Ÿ”ง **Developer Experience**
113
+ - **TypeScript implementation** with full type safety and IntelliSense
114
+ - **Comprehensive documentation** with examples and troubleshooting
115
+ - **Modular architecture** for easy customization and extension
116
+ - **Open source** with community contributions and transparent development
117
+ - **Active maintenance** with regular updates and security patches
39
118
 
40
119
  ## Origin Story
41
120
 
42
- This project was born from a real need! I ([Pratik Bhuite](https://github.com/iPraBhu)) was facing challenges integrating Perforce with AI development tools and decided to solve it using **vibe coding** - building something that just works, feels right, and solves real problems.
121
+ This project was born from a real need! I was facing challenges integrating Perforce with AI development tools and decided to solve it using **vibe coding** - building something that just works, feels right, and solves real problems.
43
122
 
44
123
  **๐Ÿค Community Welcome**
45
124
  - โœ… **Use freely** - This is open source, use it however you need
@@ -64,6 +143,7 @@ npm install -g mcp-perforce-server
64
143
  P4PORT=your-perforce-server:1666
65
144
  P4USER=your-username
66
145
  P4CLIENT=your-workspace-name
146
+ P4PASSWD=your-password
67
147
  ```
68
148
 
69
149
  **Method B: MCP Environment Variables**
@@ -75,7 +155,8 @@ npm install -g mcp-perforce-server
75
155
  "env": {
76
156
  "P4PORT": "your-perforce-server:1666",
77
157
  "P4USER": "your-username",
78
- "P4CLIENT": "your-workspace-name"
158
+ "P4CLIENT": "your-workspace-name",
159
+ "P4PASSWD": "your-password"
79
160
  }
80
161
  }
81
162
  }
@@ -87,6 +168,41 @@ npm install -g mcp-perforce-server
87
168
  mcp-perforce-server --help
88
169
  ```
89
170
 
171
+ ## Authentication Configuration
172
+
173
+ The server supports multiple methods for providing Perforce credentials, prioritized in this order:
174
+
175
+ ### 1. **Environment Variables** (Highest Priority)
176
+ Set `P4PASSWD` along with other Perforce environment variables:
177
+
178
+ ```bash
179
+ export P4PORT=perforce-server:1666
180
+ export P4USER=your-username
181
+ export P4CLIENT=your-workspace-name
182
+ export P4PASSWD=your-password
183
+ ```
184
+
185
+ ### 2. **`.p4config` File** (Recommended)
186
+ Create a `.p4config` file in your project root:
187
+
188
+ ```ini
189
+ P4PORT=perforce-server:1666
190
+ P4USER=your-username
191
+ P4CLIENT=your-workspace-name
192
+ P4PASSWD=your-password
193
+ ```
194
+
195
+ The server automatically searches upward from the current directory to find this file.
196
+
197
+ ### 3. **MCP Configuration**
198
+ Include credentials in your MCP server configuration (see examples above).
199
+
200
+ **Security Notes:**
201
+ - Passwords are **masked** (`***masked***`) in all logs
202
+ - The system operates **non-interactively** - no password prompts
203
+ - Authentication failures return `P4_AUTH_FAILED` error code
204
+ - For production, prefer `.p4config` files or secure environment variables
205
+
90
206
  ## Security Configuration
91
207
 
92
208
  **Default Security Posture:**
@@ -105,6 +221,43 @@ P4_READONLY_MODE=false P4_DISABLE_DELETE=true
105
221
  P4_READONLY_MODE=false P4_DISABLE_DELETE=false
106
222
  ```
107
223
 
224
+ ## Compliance & Security Features
225
+
226
+ **Enterprise-Grade Security Suite:**
227
+ - ๐Ÿ” **Audit Logging** - Complete operation tracking with retention policies
228
+ - ๐Ÿšฆ **Rate Limiting** - Configurable request throttling with block periods
229
+ - ๐Ÿงน **Input Sanitization** - Regex validation and path traversal protection
230
+ - ๐Ÿ’พ **Memory Limits** - Process memory monitoring and automatic GC
231
+ - ๐Ÿ“Š **Compliance Reporting** - SOC 2, GDPR, HIPAA-ready architecture
232
+
233
+ **New Compliance Tools:**
234
+ - `p4.audit` - Query audit logs with filtering and CSV export
235
+ - `p4.compliance` - View compliance configuration and system status
236
+
237
+ **Compliance Configuration:**
238
+ ```bash
239
+ # Enable enterprise features
240
+ P4_ENABLE_AUDIT_LOGGING=true
241
+ P4_ENABLE_RATE_LIMITING=true
242
+ P4_ENABLE_MEMORY_LIMITS=true
243
+ P4_ENABLE_INPUT_SANITIZATION=true
244
+
245
+ # Compliance tuning
246
+ P4_MAX_MEMORY_MB=1024
247
+ P4_AUDIT_RETENTION_DAYS=365
248
+ P4_RATE_LIMIT_REQUESTS=100
249
+ P4_RATE_LIMIT_WINDOW_MS=600000
250
+ P4_RATE_LIMIT_BLOCK_MS=3600000
251
+ ```
252
+
253
+ **Security Architecture:**
254
+ - โœ… **Defense-in-depth** - Multiple security layers
255
+ - โœ… **Zero-trust defaults** - Everything disabled by default
256
+ - โœ… **Structured logging** - JSON audit trails
257
+ - โœ… **Input validation** - Regex and path sanitization
258
+ - โœ… **Resource limits** - Memory and rate controls
259
+ - โœ… **GDPR/HIPAA Ready** - No personal data storage
260
+
108
261
  ## Supported Operations
109
262
 
110
263
  ### Repository Operations
@@ -112,6 +265,8 @@ P4_READONLY_MODE=false P4_DISABLE_DELETE=false
112
265
  - `p4.status` - Workspace status
113
266
  - `p4.sync` - Sync from depot
114
267
  - `p4.opened` - List opened files
268
+ - `p4.have` - List synced files
269
+ - `p4.where` - Show file mappings
115
270
 
116
271
  ### File Operations
117
272
  - `p4.add` - Add files to Perforce
@@ -119,16 +274,50 @@ P4_READONLY_MODE=false P4_DISABLE_DELETE=false
119
274
  - `p4.delete` - Mark files for deletion
120
275
  - `p4.revert` - Revert changes
121
276
  - `p4.diff` - Show file differences
277
+ - `p4.copy` - Copy files between locations
278
+ - `p4.move` - Move/rename files
279
+ - `p4.blame` - Show file annotations (like git blame)
280
+
281
+ ### Merge & Conflict Resolution
282
+ - `p4.resolve` - Resolve merge conflicts
283
+ - `p4.shelve` - Shelve files for code review
284
+ - `p4.unshelve` - Unshelve files from review
122
285
 
123
286
  ### Changelist Operations
124
287
  - `p4.changelist.create` - Create new changelist
125
288
  - `p4.changelist.update` - Update changelist
126
289
  - `p4.changelist.submit` - Submit changelist
127
290
  - `p4.submit` - Submit default changelist
291
+ - `p4.describe` - Describe changelist details
292
+ - `p4.changes` - List changelists with filtering
128
293
 
129
- ### Utilities
294
+ ### Search & Discovery
295
+ - `p4.grep` - Search text patterns across files
296
+ - `p4.files` - List files in depot with metadata
297
+ - `p4.dirs` - List directories in depot
130
298
  - `p4.filelog` - File history
299
+
300
+ ### User & Client Management
301
+ - `p4.users` - List Perforce users
302
+ - `p4.user` - Get user information
131
303
  - `p4.clients` - List workspaces
304
+ - `p4.client` - Get workspace details
305
+
306
+ ### Job & Issue Tracking
307
+ - `p4.jobs` - List jobs (if enabled)
308
+ - `p4.job` - Get job details
309
+ - `p4.fixes` - Show changelist-job relationships
310
+
311
+ ### Labels & Organization
312
+ - `p4.labels` - List labels
313
+ - `p4.label` - Get label details
314
+
315
+ ### Analytics & Monitoring
316
+ - `p4.sizes` - File size and disk usage statistics
317
+ - `p4.audit` - Audit log queries and compliance reporting
318
+ - `p4.compliance` - Compliance configuration and status
319
+
320
+ ### Utilities
132
321
  - `p4.config.detect` - Configuration diagnostics
133
322
 
134
323
  ## Integration
@@ -177,6 +366,15 @@ Add to `claude_desktop_config.json`:
177
366
  | `P4_PATH` | Path to p4 executable | `p4` |
178
367
  | `P4CONFIG` | Config file name | `.p4config` |
179
368
  | `LOG_LEVEL` | Logging level | `warn` |
369
+ | `P4_ENABLE_AUDIT_LOGGING` | Enable audit logging | `false` |
370
+ | `P4_ENABLE_RATE_LIMITING` | Enable rate limiting | `true` |
371
+ | `P4_ENABLE_MEMORY_LIMITS` | Enable memory limits | `true` |
372
+ | `P4_ENABLE_INPUT_SANITIZATION` | Enable input sanitization | `true` |
373
+ | `P4_MAX_MEMORY_MB` | Memory limit in MB | `512` |
374
+ | `P4_AUDIT_RETENTION_DAYS` | Audit log retention days | `90` |
375
+ | `P4_RATE_LIMIT_REQUESTS` | Max requests per window | `100` |
376
+ | `P4_RATE_LIMIT_WINDOW_MS` | Rate limit window ms | `600000` |
377
+ | `P4_RATE_LIMIT_BLOCK_MS` | Rate limit block duration ms | `3600000` |
180
378
 
181
379
  ## Error Handling
182
380
 
@@ -187,6 +385,85 @@ Standardized error codes for reliable error handling:
187
385
  - `P4_CONNECTION_FAILED` - Server connection failed
188
386
  - `P4_READONLY_MODE` - Operation blocked by read-only mode
189
387
  - `P4_DELETE_DISABLED` - Delete operation blocked
388
+ - `P4_INVALID_ARGS` - Invalid arguments or input sanitization failure
389
+ - `P4_MEMORY_LIMIT` - Memory limit exceeded
390
+ - `P4_AUDIT_DISABLED` - Audit logging not enabled
391
+ - `RATE_LIMIT_EXCEEDED` - Rate limit exceeded
392
+ - `RATE_LIMIT_EXCEEDED` - Rate limit exceeded
393
+
394
+ ## Architecture
395
+
396
+ ### ๐Ÿ—๏ธ **System Overview**
397
+ ```
398
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
399
+ โ”‚ AI Assistant โ”‚โ”€โ”€โ”€โ”€โ”‚ MCP Protocol โ”‚โ”€โ”€โ”€โ”€โ”‚ MCP Perforce โ”‚
400
+ โ”‚ (Claude/GPT) โ”‚ โ”‚ (JSON-RPC 2.0) โ”‚ โ”‚ Server โ”‚
401
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
402
+ โ”‚ โ”‚ โ”‚
403
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
404
+ โ”‚
405
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
406
+ โ”‚ Perforce CLI โ”‚
407
+ โ”‚ (p4) โ”‚
408
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
409
+ ```
410
+
411
+ ### ๐Ÿ”ง **Core Components**
412
+
413
+ #### **Security Module (`src/p4/security.ts`)**
414
+ - **Rate Limiting**: Token bucket algorithm with configurable limits
415
+ - **Audit Logging**: Structured logging with retention policies
416
+ - **Input Sanitization**: Regex-based validation and escaping
417
+ - **Memory Management**: Automatic monitoring and garbage collection
418
+ - **Compliance Reporting**: SOC 2, GDPR, HIPAA compliance tools
419
+
420
+ #### **Server Core (`src/server.ts`)**
421
+ - **MCP Protocol Handler**: JSON-RPC 2.0 implementation
422
+ - **Tool Registry**: 37+ Perforce operations with security validation
423
+ - **Request Processing**: Async handling with error recovery
424
+ - **Configuration Management**: Environment variable processing
425
+
426
+ #### **Tool Modules (`src/tools/`)**
427
+ - **Basic Operations**: Core Perforce commands (add, edit, submit)
428
+ - **Advanced Operations**: Complex workflows (merge, integrate, resolve)
429
+ - **Changelist Management**: CL creation, modification, and tracking
430
+ - **Search & Discovery**: File finding, history, and metadata queries
431
+ - **User Management**: Client specs, user info, and permissions
432
+ - **Analytics**: Repository statistics and monitoring
433
+
434
+ #### **Perforce Integration (`src/p4/`)**
435
+ - **Command Execution**: Secure child_process spawning
436
+ - **Output Parsing**: Structured data extraction from p4 output
437
+ - **Environment Detection**: Automatic .p4config and credential discovery
438
+ - **Error Handling**: Comprehensive error classification and reporting
439
+
440
+ ### ๐Ÿ›ก๏ธ **Security Architecture**
441
+
442
+ #### **Defense in Depth**
443
+ 1. **Input Validation**: All inputs sanitized before processing
444
+ 2. **Rate Limiting**: Prevents abuse and resource exhaustion
445
+ 3. **Audit Logging**: Complete operation traceability
446
+ 4. **Memory Protection**: Automatic monitoring and limits
447
+ 5. **Read-Only Mode**: Safe defaults for sensitive environments
448
+
449
+ #### **Compliance Framework**
450
+ - **SOC 2 Type II**: Automated controls and reporting
451
+ - **GDPR**: Data protection and privacy controls
452
+ - **HIPAA**: Healthcare data handling compliance
453
+ - **Custom Policies**: Configurable retention and access controls
454
+
455
+ ### ๐Ÿ“Š **Data Flow**
456
+ ```
457
+ User Request โ†’ MCP Protocol โ†’ Security Validation โ†’ Tool Execution โ†’ Perforce CLI โ†’ Response
458
+ โ†“ โ†“ โ†“ โ†“ โ†“ โ†“
459
+ Sanitize Authenticate Rate Check Command Execute Format
460
+ ```
461
+
462
+ ### ๐Ÿ”„ **Integration Patterns**
463
+ - **VS Code Extension**: Direct MCP integration via configuration
464
+ - **Claude Desktop**: App-specific MCP server configuration
465
+ - **Custom Clients**: Standard JSON-RPC 2.0 protocol support
466
+ - **Enterprise Deployments**: Docker/containerized execution
190
467
 
191
468
  ## Development
192
469
 
@@ -36,4 +36,84 @@ export declare function parseDiffOutput(output: string): ParsedRecord;
36
36
  * Parse p4 sync output into sync records
37
37
  */
38
38
  export declare function parseSyncOutput(output: string): ParsedRecord[];
39
+ /**
40
+ * Parse p4 resolve output into conflict resolution records
41
+ */
42
+ export declare function parseResolveOutput(output: string): ParsedRecord[];
43
+ /**
44
+ * Parse p4 shelve output into shelved changelist records
45
+ */
46
+ export declare function parseShelveOutput(output: string): ParsedRecord[];
47
+ /**
48
+ * Parse p4 unshelve output into unshelved records
49
+ */
50
+ export declare function parseUnshelveOutput(output: string): ParsedRecord[];
51
+ /**
52
+ * Parse p4 blame/annotate output into line-by-line attribution
53
+ */
54
+ export declare function parseBlameOutput(output: string): ParsedRecord[];
55
+ /**
56
+ * Parse p4 copy output into copied file records
57
+ */
58
+ export declare function parseCopyOutput(output: string): ParsedRecord[];
59
+ /**
60
+ * Parse p4 move output into moved file records
61
+ */
62
+ export declare function parseMoveOutput(output: string): ParsedRecord[];
63
+ /**
64
+ * Parse p4 grep output into search result records
65
+ */
66
+ export declare function parseGrepOutput(output: string): ParsedRecord[];
67
+ /**
68
+ * Parse p4 files output into file records
69
+ */
70
+ export declare function parseFilesOutput(output: string): ParsedRecord[];
71
+ /**
72
+ * Parse p4 dirs output into directory records
73
+ */
74
+ export declare function parseDirsOutput(output: string): ParsedRecord[];
75
+ /**
76
+ * Parse p4 users output into user records
77
+ */
78
+ export declare function parseUsersOutput(output: string): ParsedRecord[];
79
+ /**
80
+ * Parse p4 user output into user details
81
+ */
82
+ export declare function parseUserOutput(output: string): ParsedRecord;
83
+ /**
84
+ * Parse p4 client output into client details
85
+ */
86
+ export declare function parseClientOutput(output: string): ParsedRecord;
87
+ /**
88
+ * Parse p4 jobs output into job records
89
+ */
90
+ export declare function parseJobsOutput(output: string): ParsedRecord[];
91
+ /**
92
+ * Parse p4 job output into job details
93
+ */
94
+ export declare function parseJobOutput(output: string): ParsedRecord;
95
+ /**
96
+ * Parse p4 fixes output into fix records
97
+ */
98
+ export declare function parseFixesOutput(output: string): ParsedRecord[];
99
+ /**
100
+ * Parse p4 labels output into label records
101
+ */
102
+ export declare function parseLabelsOutput(output: string): ParsedRecord[];
103
+ /**
104
+ * Parse p4 label output into label details
105
+ */
106
+ export declare function parseLabelOutput(output: string): ParsedRecord;
107
+ /**
108
+ * Parse p4 sizes output into size statistics
109
+ */
110
+ export declare function parseSizesOutput(output: string): ParsedRecord;
111
+ /**
112
+ * Parse p4 have output into synced file records
113
+ */
114
+ export declare function parseHaveOutput(output: string): ParsedRecord[];
115
+ /**
116
+ * Parse p4 where output into mapping records
117
+ */
118
+ export declare function parseWhereOutput(output: string): ParsedRecord[];
39
119
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/p4/parse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,EAAE,CAAC;CACvE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CA+B9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAoB5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CA+BhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAoBjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAgDjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAmBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAyD5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAqB9D"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/p4/parse.ts"],"names":[],"mappings":"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"}