| 
									
										
										
										
											2019-06-24 15:05:39 -04:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | Object.defineProperty(exports, "__esModule", { value: true }); | 
					
						
							|  |  |  | const os = require("os"); | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Commands | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Command Format: | 
					
						
							|  |  |  |  *   ##[name key=value;key=value]message | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Examples: | 
					
						
							|  |  |  |  *   ##[warning]This is the user warning message | 
					
						
							|  |  |  |  *   ##[set-secret name=mypassword]definatelyNotAPassword! | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function issueCommand(command, properties, message) { | 
					
						
							|  |  |  |     const cmd = new Command(command, properties, message); | 
					
						
							|  |  |  |     process.stdout.write(cmd.toString() + os.EOL); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | exports.issueCommand = issueCommand; | 
					
						
							|  |  |  | function issue(name, message) { | 
					
						
							|  |  |  |     issueCommand(name, {}, message); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | exports.issue = issue; | 
					
						
							|  |  |  | const CMD_PREFIX = '##['; | 
					
						
							|  |  |  | class Command { | 
					
						
							|  |  |  |     constructor(command, properties, message) { | 
					
						
							|  |  |  |         if (!command) { | 
					
						
							|  |  |  |             command = 'missing.command'; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         this.command = command; | 
					
						
							|  |  |  |         this.properties = properties; | 
					
						
							|  |  |  |         this.message = message; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     toString() { | 
					
						
							|  |  |  |         let cmdStr = CMD_PREFIX + this.command; | 
					
						
							|  |  |  |         if (this.properties && Object.keys(this.properties).length > 0) { | 
					
						
							|  |  |  |             cmdStr += ' '; | 
					
						
							|  |  |  |             for (const key in this.properties) { | 
					
						
							|  |  |  |                 if (this.properties.hasOwnProperty(key)) { | 
					
						
							|  |  |  |                     const val = this.properties[key]; | 
					
						
							|  |  |  |                     if (val) { | 
					
						
							|  |  |  |                         // safely append the val - avoid blowing up when attempting to
 | 
					
						
							|  |  |  |                         // call .replace() if message is not a string for some reason
 | 
					
						
							|  |  |  |                         cmdStr += `${key}=${escape(`${val || ''}`)};`; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         cmdStr += ']'; | 
					
						
							|  |  |  |         // safely append the message - avoid blowing up when attempting to
 | 
					
						
							|  |  |  |         // call .replace() if message is not a string for some reason
 | 
					
						
							|  |  |  |         const message = `${this.message || ''}`; | 
					
						
							|  |  |  |         cmdStr += escapeData(message); | 
					
						
							|  |  |  |         return cmdStr; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | function escapeData(s) { | 
					
						
							|  |  |  |     return s.replace(/\r/g, '%0D').replace(/\n/g, '%0A'); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | function escape(s) { | 
					
						
							|  |  |  |     return s | 
					
						
							|  |  |  |         .replace(/\r/g, '%0D') | 
					
						
							|  |  |  |         .replace(/\n/g, '%0A') | 
					
						
							|  |  |  |         .replace(/]/g, '%5D') | 
					
						
							|  |  |  |         .replace(/;/g, '%3B'); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2019-06-19 09:44:17 -04:00
										 |  |  | //# sourceMappingURL=command.js.map
 |