Fix actions/tour
This commit is contained in:
		
							
								
								
									
										19
									
								
								node_modules/gulp-cli/lib/shared/array-find.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/gulp-cli/lib/shared/array-find.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function arrayFind(arr, fn) { | ||||
|   if (!Array.isArray(arr)) { | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   var idx = 0; | ||||
|   while (idx < arr.length) { | ||||
|     var result = fn(arr[idx]); | ||||
|     if (result) { | ||||
|       // TODO: This is wrong in Liftoff | ||||
|       return arr[idx]; | ||||
|     } | ||||
|     idx++; | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = arrayFind; | ||||
							
								
								
									
										20
									
								
								node_modules/gulp-cli/lib/shared/completion.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								node_modules/gulp-cli/lib/shared/completion.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var fs = require('fs'); | ||||
| var path = require('path'); | ||||
|  | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| module.exports = function(name, translate) { | ||||
|   if (typeof name !== 'string') { | ||||
|     throw new Error(translate.message({ tag: messages.COMPLETION_TYPE_MISSING })); | ||||
|   } | ||||
|   var file = path.join(__dirname, '../../completion', name); | ||||
|   try { | ||||
|     console.log(fs.readFileSync(file, 'utf8')); | ||||
|     process.exit(0); | ||||
|   } catch (err) { | ||||
|     console.log(translate.message({ tag: messages.COMPLETION_TYPE_UNKNOWN, name: name })); | ||||
|     process.exit(5); | ||||
|   } | ||||
| }; | ||||
							
								
								
									
										26
									
								
								node_modules/gulp-cli/lib/shared/config/cli-flags.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								node_modules/gulp-cli/lib/shared/config/cli-flags.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var copyProps = require('copy-props'); | ||||
|  | ||||
| var fromConfigToCliOpts = { | ||||
|   'flags.silent': 'silent', | ||||
|   'flags.continue': 'continue', | ||||
|   'flags.series': 'series', | ||||
|   'flags.logLevel': 'logLevel', | ||||
|   'flags.compactTasks': 'compactTasks', | ||||
|   'flags.tasksDepth': 'tasksDepth', | ||||
|   'flags.sortTasks': 'sortTasks', | ||||
| }; | ||||
|  | ||||
| function mergeCliOpts(opts, config) { | ||||
|   opts = copyProps(opts, {}); | ||||
|   return copyProps(config, opts, fromConfigToCliOpts, defaults); | ||||
| } | ||||
|  | ||||
| function defaults(cfgInfo, optInfo) { | ||||
|   if (optInfo.value === undefined) { | ||||
|     return cfgInfo.value; | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = mergeCliOpts; | ||||
							
								
								
									
										15
									
								
								node_modules/gulp-cli/lib/shared/exit.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/gulp-cli/lib/shared/exit.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| // Fix stdout truncation on windows | ||||
| function exit(code) { | ||||
|   /* istanbul ignore next */ | ||||
|   if (process.platform === 'win32' && process.stdout.bufferSize) { | ||||
|     process.stdout.once('drain', function() { | ||||
|       process.exit(code); | ||||
|     }); | ||||
|     return; | ||||
|   } | ||||
|   process.exit(code); | ||||
| } | ||||
|  | ||||
| module.exports = exit; | ||||
							
								
								
									
										7
									
								
								node_modules/gulp-cli/lib/shared/is-object.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/gulp-cli/lib/shared/is-object.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function isObject(v) { | ||||
|   return (v != null && typeof v === 'object' && !Array.isArray(v)); | ||||
| } | ||||
|  | ||||
| module.exports = isObject; | ||||
							
								
								
									
										81
									
								
								node_modules/gulp-cli/lib/shared/log/copy-tree.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								node_modules/gulp-cli/lib/shared/log/copy-tree.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,81 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function copyNode(node) { | ||||
|   var newNode = {}; | ||||
|   Object.keys(node).forEach(function(key) { | ||||
|     newNode[key] = node[key]; | ||||
|   }); | ||||
|   return newNode; | ||||
| } | ||||
|  | ||||
| var defaultNodeFactory = { | ||||
|   topNode: copyNode, | ||||
|   taskNode: copyNode, | ||||
|   childNode: copyNode, | ||||
| }; | ||||
|  | ||||
| function copyTree(tree, opts, nodeFactory) { | ||||
|   opts = opts || {}; | ||||
|  | ||||
|   var depth = opts.tasksDepth; | ||||
|   depth = typeof depth === 'number' ? ((depth < 1) ? 1 : depth) : null; | ||||
|  | ||||
|   nodeFactory = nodeFactory || defaultNodeFactory; | ||||
|  | ||||
|   var newTree = nodeFactory.topNode(tree); | ||||
|   newTree.nodes = []; | ||||
|  | ||||
|   if (Array.isArray(tree.nodes)) { | ||||
|     tree.nodes.forEach(visit); | ||||
|   } | ||||
|  | ||||
|   function visit(node) { | ||||
|     var newNode = nodeFactory.taskNode(node); | ||||
|     newNode.nodes = []; | ||||
|     newTree.nodes.push(newNode); | ||||
|  | ||||
|     if (opts.compactTasks) { | ||||
|       forEach(node.nodes, copyNotRecursively, newNode); | ||||
|  | ||||
|     } else if (!depth || depth > 1) { | ||||
|       forEach(node.nodes, copyRecursively, depth, 2, newNode); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   function copyNotRecursively(child, newParent) { | ||||
|     var newChild = nodeFactory.childNode(child); | ||||
|     newChild.nodes = []; | ||||
|     newParent.nodes.push(newChild); | ||||
|  | ||||
|     if (child.branch) { | ||||
|       forEach(child.nodes, copyNotRecursively, newChild); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   function copyRecursively(child, maxDepth, nowDepth, newParent) { | ||||
|     var newChild = nodeFactory.childNode(child); | ||||
|     newChild.nodes = []; | ||||
|     newParent.nodes.push(newChild); | ||||
|  | ||||
|     if (!maxDepth || maxDepth > nowDepth) { | ||||
|       forEach(child.nodes, copyRecursively, maxDepth, nowDepth + 1, newChild); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   return newTree; | ||||
| } | ||||
|  | ||||
| function forEach(nodes, fn) { | ||||
|   if (!Array.isArray(nodes)) { | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   var args = Array.prototype.slice.call(arguments, 2); | ||||
|  | ||||
|   for (var i = 0, n = nodes.length; i < n; i++) { | ||||
|     fn.apply(nodes[i], [nodes[i]].concat(args)); | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = copyTree; | ||||
|  | ||||
							
								
								
									
										48
									
								
								node_modules/gulp-cli/lib/shared/log/format-hrtime.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								node_modules/gulp-cli/lib/shared/log/format-hrtime.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var units = [ | ||||
|   [ 'h', 3600e9 ], | ||||
|   [ 'min', 60e9 ], | ||||
|   [ 's', 1e9 ], | ||||
|   [ 'ms', 1e6 ], | ||||
|   [ 'μs', 1e3 ], | ||||
| ]; | ||||
|  | ||||
| function formatHrTime(hrtime) { | ||||
|   if (!Array.isArray(hrtime) || hrtime.length !== 2) { | ||||
|     return ''; | ||||
|   } | ||||
|   if (typeof hrtime[0] !== 'number' || typeof hrtime[1] !== 'number') { | ||||
|     return ''; | ||||
|   } | ||||
|  | ||||
|   var nano = hrtime[0] * 1e9 + hrtime[1]; | ||||
|  | ||||
|   for (var i = 0; i < units.length; i++) { | ||||
|     if (nano < units[i][1]) { | ||||
|       continue; | ||||
|     } | ||||
|  | ||||
|     if (nano >= units[i][1] * 10) { | ||||
|       return Math.round(nano / units[i][1]) + ' ' + units[i][0]; | ||||
|     } | ||||
|  | ||||
|     var s = String(Math.round(nano * 1e2 / units[i][1])); | ||||
|     if (s.slice(-2) === '00') { | ||||
|       s = s.slice(0, -2); | ||||
|     } else if (s.slice(-1) === '0') { | ||||
|       s = s.slice(0, -2) + '.' + s.slice(-2, -1); | ||||
|     } else { | ||||
|       s = s.slice(0, -2) + '.' + s.slice(-2); | ||||
|     } | ||||
|     return s + ' ' + units[i][0]; | ||||
|   } | ||||
|  | ||||
|   if (nano > 0) { | ||||
|     return nano + ' ns'; | ||||
|   } | ||||
|  | ||||
|   return ''; | ||||
| } | ||||
|  | ||||
| module.exports = formatHrTime; | ||||
							
								
								
									
										171
									
								
								node_modules/gulp-cli/lib/shared/log/tasks.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								node_modules/gulp-cli/lib/shared/log/tasks.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,171 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var stringWidth = require('string-width'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var isObject = require('../is-object'); | ||||
|  | ||||
| function logTasks(tree, opts, getTask, translate) { | ||||
|   if (opts.sortTasks) { | ||||
|     tree.nodes = tree.nodes.sort(compareByLabel); | ||||
|   } | ||||
|  | ||||
|   var maxDepth = opts.tasksDepth; | ||||
|   if (typeof maxDepth !== 'number') { | ||||
|     maxDepth = 50; | ||||
|   } else if (maxDepth < 1) { | ||||
|     maxDepth = 1; | ||||
|   } | ||||
|  | ||||
|   var compactedTasks = opts.compactTasks ? tree.nodes : []; | ||||
|  | ||||
|   var treeOpts = { | ||||
|     maxDepth: maxDepth, | ||||
|     compactedTasks: compactedTasks, | ||||
|     getTask: getTask, | ||||
|   }; | ||||
|  | ||||
|   printTaskTree(tree, treeOpts); | ||||
|  | ||||
|   function printTaskTree(tree, opts) { | ||||
|     var lines = []; | ||||
|     lines.push({ label: tree.label }); | ||||
|     var maxLabelWidth = 0; | ||||
|  | ||||
|     tree.nodes.forEach(function(node, idx, arr) { | ||||
|       var isLast = idx === arr.length - 1; | ||||
|       var w = createTreeLines(node, lines, opts, 1, '', isLast); | ||||
|       maxLabelWidth = Math.max(maxLabelWidth, w); | ||||
|     }); | ||||
|  | ||||
|     lines.forEach(function(line) { | ||||
|       var s = line.label; | ||||
|       if (line.desc) { | ||||
|         var spaces = ' '.repeat(maxLabelWidth - line.width) + '  '; | ||||
|         s += spaces + line.desc; | ||||
|       } | ||||
|       if (s) { | ||||
|         // We don't need timestamps here | ||||
|         console.log(s); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   function createTreeLines(node, lines, opts, depth, bars, isLast) { | ||||
|     var task = { label: node.label, bars: bars, depth: depth }; | ||||
|     if (depth === 1) { | ||||
|       var t = opts.getTask(node.label); | ||||
|       task.desc = t.description; | ||||
|       task.flags = t.flags; | ||||
|     } | ||||
|  | ||||
|     var isLeaf = isLeafNode(node, depth, opts); | ||||
|  | ||||
|     var maxLabelWidth = addTaskToLines(task, lines, isLast, isLeaf); | ||||
|  | ||||
|     if (!isLeaf) { | ||||
|       bars += (isLast ? ' ' : translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL })); | ||||
|       bars += ' ' | ||||
|       node.nodes.forEach(function(node, idx, arr) { | ||||
|         var isLast = idx === arr.length - 1; | ||||
|         createTreeLines(node, lines, opts, depth + 1, bars, isLast); | ||||
|       }); | ||||
|     } | ||||
|  | ||||
|     return maxLabelWidth; | ||||
|   } | ||||
|  | ||||
|   function addTaskToLines(task, lines, isLast, isLeaf) { | ||||
|     var taskBars = task.bars + (isLast | ||||
|         ? translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_UP_AND_RIGHT }) | ||||
|         : translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT })) + | ||||
|           translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_HORIZONTAL }); | ||||
|     if (isLeaf) { | ||||
|       taskBars += translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_HORIZONTAL }); | ||||
|     } else { | ||||
|       taskBars += translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL }); | ||||
|     } | ||||
|     taskBars += ' '; | ||||
|  | ||||
|     var line = {}; | ||||
|     if (task.depth === 1) { | ||||
|       line.label = taskBars + translate.message({ tag: messages.TASK_NAME, name: task.label }); | ||||
|     } else { | ||||
|       line.label = taskBars + translate.message({ tag: messages.TASK_NAME, name: task.label }); | ||||
|     } | ||||
|     line.width = stringWidth(line.label); | ||||
|  | ||||
|     if (typeof task.desc === 'string' && task.desc) { | ||||
|       line.desc = translate.message({ tag: messages.TASK_DESCRIPTION, description: task.desc }); | ||||
|     } | ||||
|     lines.push(line); | ||||
|  | ||||
|     var maxLabelWidth = line.width; | ||||
|  | ||||
|     if (!isObject(task.flags)) { | ||||
|       return maxLabelWidth; | ||||
|     } | ||||
|  | ||||
|     var flagBars = task.bars; | ||||
|     if (isLast) { | ||||
|       flagBars += ' '; | ||||
|     } else { | ||||
|       flagBars += translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL }); | ||||
|     } | ||||
|     flagBars += ' '; | ||||
|  | ||||
|     if (isLeaf) { | ||||
|       flagBars += ' '; | ||||
|     } else { | ||||
|       flagBars += translate.message({ tag: messages.BOX_DRAWINGS_LIGHT_VERTICAL }); | ||||
|     } | ||||
|     flagBars += ' '; | ||||
|  | ||||
|     Object.entries(task.flags).sort(flagSorter).forEach(addFlagsToLines); | ||||
|  | ||||
|     function addFlagsToLines(ent) { | ||||
|       if (typeof ent[0] !== 'string' || !ent[0]) return; | ||||
|       var line = {}; | ||||
|       line.label = flagBars + translate.message({ tag: messages.TASK_FLAG, flag: ent[0] }); | ||||
|       line.width = stringWidth(line.label); | ||||
|  | ||||
|       maxLabelWidth = Math.max(maxLabelWidth, line.width); | ||||
|  | ||||
|       if (typeof ent[1] === 'string' && ent[1] !== '') { | ||||
|         line.desc = translate.message({ tag: messages.TASK_FLAG_DESCRIPTION, description: ent[1] }); | ||||
|       } | ||||
|       lines.push(line); | ||||
|     } | ||||
|  | ||||
|     return maxLabelWidth; | ||||
|   } | ||||
| } | ||||
|  | ||||
| function isLeafNode(node, depth, opts) { | ||||
|   if (depth >= opts.maxDepth) { | ||||
|     return true; | ||||
|   } else if (depth > 1 && opts.compactedTasks.includes(node)) { | ||||
|     return true; | ||||
|   } else if (!Array.isArray(node.nodes) || node.nodes.length === 0) { | ||||
|     return true; | ||||
|   } | ||||
|   return false; | ||||
| } | ||||
|  | ||||
| function compareByLabel(a, b) { | ||||
|   /* istanbul ignore if */ | ||||
|   if (!b.label) { | ||||
|     return -1; | ||||
|   } else /* istanbul ignore if */ if (!a.label) { | ||||
|     return 1; | ||||
|   } else { | ||||
|     return (a.label <= b.label) ? -1 : 1; | ||||
|   } | ||||
| } | ||||
|  | ||||
| function flagSorter(a, b) { | ||||
|   return (a[0] <= b[0]) ? -1 : 1; | ||||
| } | ||||
|  | ||||
| module.exports = logTasks; | ||||
|  | ||||
							
								
								
									
										135
									
								
								node_modules/gulp-cli/lib/shared/log/to-console.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								node_modules/gulp-cli/lib/shared/log/to-console.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,135 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| /* istanbul ignore next */ | ||||
| function noop() {} | ||||
|  | ||||
| function toConsole(log, opts, translate) { | ||||
|   // Return immediately if logging is | ||||
|   // not desired. | ||||
|   if (opts.tasksSimple || opts.tasksJson || opts.help || opts.version || opts.silent) { | ||||
|     // Keep from crashing process when silent. | ||||
|     log.on('error', noop); | ||||
|     return function () { | ||||
|       log.removeListener('error', noop); | ||||
|     }; | ||||
|   } | ||||
|  | ||||
|   // Default loglevel to info level (3). | ||||
|   var loglevel = opts.logLevel || 3; | ||||
|  | ||||
|   var deprecatedPrinted = false; | ||||
|   log.on('deprecated', onDeprecated); | ||||
|  | ||||
|   // -L: Logs error events. | ||||
|   if (loglevel > 0) { | ||||
|     log.on('error', onError); | ||||
|   } | ||||
|  | ||||
|   // -LL: Logs warn and error events. | ||||
|   if (loglevel > 1) { | ||||
|     log.on('warn', onWarn); | ||||
|   } | ||||
|  | ||||
|   // -LLL: Logs info, warn and error events. | ||||
|   if (loglevel > 2) { | ||||
|     log.on('info', onInfo); | ||||
|   } | ||||
|  | ||||
|   if (loglevel > 3) { | ||||
|     log.on('debug', onDebug); | ||||
|   } | ||||
|  | ||||
|   return function () { | ||||
|     log.removeListener('deprecated', onDeprecated); | ||||
|     log.removeListener('error', onError); | ||||
|     log.removeListener('warn', onWarn); | ||||
|     log.removeListener('info', onInfo); | ||||
|     log.removeListener('debug', onDebug); | ||||
|   }; | ||||
|  | ||||
|   function onDeprecated() { | ||||
|     if (!deprecatedPrinted) { | ||||
|       var msg = { tag: messages.GULPLOG_DEPRECATED }; | ||||
|       // Get message and timestamp before printing anything to avoid | ||||
|       // logging a half message if there's an error in one of them | ||||
|       var message = translate.message(msg); | ||||
|       var timestamp = translate.timestamp(msg); | ||||
|  | ||||
|       if (message) { | ||||
|         // Ensure timestamp is not written without a message | ||||
|         if (timestamp) { | ||||
|           process.stderr.write(timestamp + ' '); | ||||
|         } | ||||
|         console.error(message); | ||||
|       } | ||||
|  | ||||
|       deprecatedPrinted = true; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   function onError(msg) { | ||||
|     // Get message and timestamp before printing anything to avoid | ||||
|     // logging a half message if there's an error in one of them | ||||
|     var message = translate.message(msg); | ||||
|     var timestamp = translate.timestamp(msg); | ||||
|  | ||||
|     if (message) { | ||||
|       // Ensure timestamp is not written without a message | ||||
|       if (timestamp) { | ||||
|         process.stderr.write(timestamp + ' '); | ||||
|       } | ||||
|       console.error(message); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // onWarn, onInfo, and onDebug are currently all the same | ||||
|   // implementation but separated to change independently | ||||
|   function onWarn(msg) { | ||||
|     // Get message and timestamp before printing anything to avoid | ||||
|     // logging a half message if there's an error in one of them | ||||
|     var message = translate.message(msg); | ||||
|     var timestamp = translate.timestamp(msg); | ||||
|  | ||||
|     if (message) { | ||||
|       // Ensure timestamp is not written without a message | ||||
|       if (timestamp) { | ||||
|         process.stdout.write(timestamp + ' '); | ||||
|       } | ||||
|       console.log(message); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   function onInfo(msg) { | ||||
|     // Get message and timestamp before printing anything to avoid | ||||
|     // logging a half message if there's an error in one of them | ||||
|     var message = translate.message(msg); | ||||
|     var timestamp = translate.timestamp(msg); | ||||
|  | ||||
|     if (message) { | ||||
|       // Ensure timestamp is not written without a message | ||||
|       if (timestamp) { | ||||
|         process.stdout.write(timestamp + ' '); | ||||
|       } | ||||
|       console.log(message); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   function onDebug(msg) { | ||||
|     // Get message and timestamp before printing anything to avoid | ||||
|     // logging a half message if there's an error in one of them | ||||
|     var message = translate.message(msg); | ||||
|     var timestamp = translate.timestamp(msg); | ||||
|  | ||||
|     if (message) { | ||||
|       // Ensure timestamp is not written without a message | ||||
|       if (timestamp) { | ||||
|         process.stdout.write(timestamp + ' '); | ||||
|       } | ||||
|       console.log(message); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = toConsole; | ||||
							
								
								
									
										11
									
								
								node_modules/gulp-cli/lib/shared/make-title.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								node_modules/gulp-cli/lib/shared/make-title.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function makeTitle(cmd, argv) { | ||||
|   if (!argv || argv.length === 0) { | ||||
|     return cmd; | ||||
|   } | ||||
|  | ||||
|   return [cmd].concat(argv).join(' '); | ||||
| } | ||||
|  | ||||
| module.exports = makeTitle; | ||||
							
								
								
									
										94
									
								
								node_modules/gulp-cli/lib/shared/options/cli-options.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								node_modules/gulp-cli/lib/shared/options/cli-options.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var options = { | ||||
|   help: { | ||||
|     alias: 'h', | ||||
|     type: 'boolean', | ||||
|     tag: messages.FLAG_HELP, | ||||
|   }, | ||||
|   version: { | ||||
|     alias: 'v', | ||||
|     type: 'boolean', | ||||
|     tag: messages.FLAG_VERSION, | ||||
|   }, | ||||
|   preload: { | ||||
|     type: 'string', | ||||
|     requiresArg: true, | ||||
|     tag: messages.FLAG_PRELOAD, | ||||
|   }, | ||||
|   gulpfile: { | ||||
|     alias: 'f', | ||||
|     type: 'string', | ||||
|     requiresArg: true, | ||||
|     tag: messages.FLAG_GULPFILE, | ||||
|   }, | ||||
|   cwd: { | ||||
|     type: 'string', | ||||
|     requiresArg: true, | ||||
|     tag: messages.FLAG_CWD, | ||||
|   }, | ||||
|   tasks: { | ||||
|     alias: 'T', | ||||
|     type: 'boolean', | ||||
|     tag: messages.FLAG_TASKS, | ||||
|   }, | ||||
|   'tasks-simple': { | ||||
|     type: 'boolean', | ||||
|     tag: messages.FLAG_TASKS_SIMPLE, | ||||
|   }, | ||||
|   'tasks-json': { | ||||
|     tag: messages.FLAG_TASKS_JSON, | ||||
|   }, | ||||
|   'tasks-depth': { | ||||
|     alias: 'depth', | ||||
|     type: 'number', | ||||
|     requiresArg: true, | ||||
|     default: undefined,  // To detect if this cli option is specified. | ||||
|     tag: messages.FLAG_TASKS_DEPTH, | ||||
|   }, | ||||
|   'compact-tasks': { | ||||
|     type: 'boolean', | ||||
|     default: undefined,  // To detect if this cli option is specified. | ||||
|     tag: messages.FLAG_COMPACT_TASKS, | ||||
|   }, | ||||
|   'sort-tasks': { | ||||
|     type: 'boolean', | ||||
|     default: undefined,  // To detect if this cli option is specified. | ||||
|     tag: messages.FLAG_SORT_TASKS, | ||||
|   }, | ||||
|   color: { | ||||
|     type: 'boolean', | ||||
|     tag: messages.FLAG_COLOR, | ||||
|   }, | ||||
|   'no-color': { | ||||
|     type: 'boolean', | ||||
|     tag: messages.FLAG_NO_COLOR, | ||||
|   }, | ||||
|   silent: { | ||||
|     alias: 'S', | ||||
|     type: 'boolean', | ||||
|     default: undefined,  // To detect if this cli option is specified. | ||||
|     tag: messages.FLAG_SILENT, | ||||
|   }, | ||||
|   continue: { | ||||
|     type: 'boolean', | ||||
|     default: undefined,  // To detect if this cli option is specified. | ||||
|     tag: messages.FLAG_CONTINUE, | ||||
|   }, | ||||
|   series: { | ||||
|     type: 'boolean', | ||||
|     default: undefined,  // To detect if this cli option is specified. | ||||
|     tag: messages.FLAG_SERIES, | ||||
|   }, | ||||
|   'log-level': { | ||||
|     alias: 'L', | ||||
|     // Type isn't needed because count acts as a boolean | ||||
|     count: true, | ||||
|     default: undefined,  // To detect if this cli option is specified. | ||||
|     tag: messages.FLAG_LOG_LEVEL, | ||||
|   } | ||||
| }; | ||||
|  | ||||
| module.exports = options; | ||||
							
								
								
									
										24
									
								
								node_modules/gulp-cli/lib/shared/options/make-help.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								node_modules/gulp-cli/lib/shared/options/make-help.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var cliOptions = require('./cli-options'); | ||||
|  | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| function makeHelp(parser, translate) { | ||||
|   var usage = translate.message({ tag: messages.USAGE }); | ||||
|   if (usage) { | ||||
|     parser.usage(usage); | ||||
|   } | ||||
|  | ||||
|   Object.keys(cliOptions).forEach(function (flag) { | ||||
|     var opt = cliOptions[flag]; | ||||
|     var description = translate.message({ tag: opt.tag }); | ||||
|     if (description) { | ||||
|       parser.describe(flag, description); | ||||
|     } | ||||
|   }); | ||||
|  | ||||
|   return parser; | ||||
| } | ||||
|  | ||||
| module.exports = makeHelp; | ||||
							
								
								
									
										21
									
								
								node_modules/gulp-cli/lib/shared/register-exports.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/gulp-cli/lib/shared/register-exports.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function registerExports(gulpInst, tasks) { | ||||
|   var taskNames = Object.keys(tasks); | ||||
|  | ||||
|   if (taskNames.length) { | ||||
|     taskNames.forEach(register); | ||||
|   } | ||||
|  | ||||
|   function register(taskName) { | ||||
|     var task = tasks[taskName]; | ||||
|  | ||||
|     if (typeof task !== 'function') { | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     gulpInst.task(task.displayName || taskName, task); | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = registerExports; | ||||
							
								
								
									
										39
									
								
								node_modules/gulp-cli/lib/shared/require-or-import.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								node_modules/gulp-cli/lib/shared/require-or-import.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var pathToFileURL = require('url').pathToFileURL; | ||||
|  | ||||
| var importESM; | ||||
| try { | ||||
|   // Node.js <10 errors out with a SyntaxError when loading a script that uses import(). | ||||
|   // So a function is dynamically created to catch the SyntaxError at runtime instead of parsetime. | ||||
|   // That way we can keep supporting all Node.js versions all the way back to 0.10. | ||||
|   importESM = new Function('id', 'return import(id);'); | ||||
| } catch (e) { | ||||
|   /* istanbul ignore next */ | ||||
|   importESM = null; | ||||
| } | ||||
|  | ||||
| function requireOrImport(path, callback) { | ||||
|   var err = null; | ||||
|   var cjs; | ||||
|   try { | ||||
|     cjs = require(path); | ||||
|   } catch (e) { | ||||
|     /* istanbul ignore else */ | ||||
|     if (pathToFileURL && importESM) { | ||||
|       // Because e.code is undefined on nyc process. | ||||
|       /* istanbul ignore else */ | ||||
|       if (e.code === 'ERR_REQUIRE_ESM' || process.env.NYC_CONFIG) { | ||||
|         // This is needed on Windows, because import() fails if providing a Windows file path. | ||||
|         var url = pathToFileURL(path); | ||||
|         importESM(url).then(function(esm) { callback(null, esm); }, callback); | ||||
|         return; | ||||
|       } | ||||
|     } | ||||
|     /* istanbul ignore next */ | ||||
|     err = e; | ||||
|   } | ||||
|   process.nextTick(function() { callback(err, cjs); }); | ||||
| } | ||||
|  | ||||
| module.exports = requireOrImport; | ||||
							
								
								
									
										9
									
								
								node_modules/gulp-cli/lib/shared/tildify.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								node_modules/gulp-cli/lib/shared/tildify.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var replaceHomedir = require('replace-homedir'); | ||||
|  | ||||
| function tildify(filepath) { | ||||
|   return replaceHomedir(filepath, '~'); | ||||
| } | ||||
|  | ||||
| module.exports = tildify; | ||||
							
								
								
									
										305
									
								
								node_modules/gulp-cli/lib/shared/translate.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										305
									
								
								node_modules/gulp-cli/lib/shared/translate.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,305 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var util = require('util'); | ||||
|  | ||||
| var chalk = require('chalk'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var tildify = require('./tildify'); | ||||
| var formatTime = require('./log/format-hrtime'); | ||||
|  | ||||
| function Timestamp() { | ||||
|   this.now = new Date(); | ||||
| } | ||||
|  | ||||
| Timestamp.prototype[util.inspect.custom] = function (depth, opts) { | ||||
|   var timestamp = this.now.toLocaleTimeString('en', { hour12: false }); | ||||
|   return '[' + opts.stylize(timestamp, 'date') + ']'; | ||||
| }; | ||||
|  | ||||
| function getDefaultMessage(data) { | ||||
|   switch (data.tag) { | ||||
|     case messages.PRELOAD_BEFORE: { | ||||
|       return 'Preloading external module: ' + chalk.magenta(data.name); | ||||
|     } | ||||
|     case messages.PRELOAD_SUCCESS: { | ||||
|       return 'Preloaded external module: ' + chalk.magenta(data.name) | ||||
|     } | ||||
|     case messages.PRELOAD_FAILURE: { | ||||
|       return chalk.yellow('Failed to preload external module: ') + chalk.magenta(data.name); | ||||
|     } | ||||
|     case messages.PRELOAD_ERROR: { | ||||
|       return chalk.yellow(data.error.toString()); | ||||
|     } | ||||
|     case messages.LOADER_SUCCESS: { | ||||
|       return 'Loaded external module: ' + chalk.magenta(data.name); | ||||
|     } | ||||
|     case messages.LOADER_FAILURE: { | ||||
|       return chalk.yellow('Failed to load external module: ') + chalk.magenta(data.name); | ||||
|     } | ||||
|     case messages.LOADER_ERROR: { | ||||
|       return chalk.yellow(data.error.toString()); | ||||
|     } | ||||
|     case messages.NODE_FLAGS: { | ||||
|       var nodeFlags = chalk.magenta(data.flags.join(', ')); | ||||
|       return 'Node flags detected: ' + nodeFlags; | ||||
|     } | ||||
|     case messages.RESPAWNED: { | ||||
|       var pid = chalk.magenta(data.pid); | ||||
|       return 'Respawned to PID: ' + pid; | ||||
|     } | ||||
|     case messages.MISSING_GULPFILE: { | ||||
|       return chalk.red('No gulpfile found'); | ||||
|     } | ||||
|     case messages.CWD_CHANGED: { | ||||
|       return 'Working directory changed to ' + chalk.magenta(tildify(data.cwd)); | ||||
|     } | ||||
|     case messages.UNSUPPORTED_GULP_VERSION: { | ||||
|       return chalk.red('Unsupported gulp version', data.version) | ||||
|     } | ||||
|     case messages.DESCRIPTION: { | ||||
|       return 'Tasks for ' + chalk.magenta(tildify(data.path)); | ||||
|     } | ||||
|     case messages.GULPFILE: { | ||||
|       return 'Using gulpfile ' + chalk.magenta(tildify(data.path)); | ||||
|     } | ||||
|     case messages.TASK_START: { | ||||
|       return "Starting '" + chalk.cyan(data.task) + "'..." | ||||
|     } | ||||
|     case messages.TASK_STOP: { | ||||
|       return "Finished '" + chalk.cyan(data.task) + "' after " + chalk.magenta(formatTime(data.duration)); | ||||
|     } | ||||
|     case messages.TASK_FAILURE: { | ||||
|       return "'" + chalk.cyan(data.task) + "' " + chalk.red('errored after') + ' ' + chalk.magenta(formatTime(data.duration)); | ||||
|     } | ||||
|     case messages.TASK_MISSING: { | ||||
|       if (data.similar) { | ||||
|         return chalk.red('Task never defined: ' + data.task + ' - did you mean? ' + data.similar.join(', ')) | ||||
|           + '\nTo list available tasks, try running: gulp --tasks'; | ||||
|       } else { | ||||
|         return chalk.red('Task never defined: ' + data.task) + | ||||
|           '\nTo list available tasks, try running: gulp --tasks'; | ||||
|       } | ||||
|     } | ||||
|     case messages.TASK_SYNC: { | ||||
|       return chalk.red('The following tasks did not complete: ') + chalk.cyan(data.tasks) + "\n" | ||||
|         + chalk.red('Did you forget to signal async completion?'); | ||||
|     } | ||||
|     case messages.MISSING_NODE_MODULES: { | ||||
|       return chalk.red('Local modules not found in') + ' ' + chalk.magenta(tildify(data.cwd)); | ||||
|     } | ||||
|     case messages.MISSING_GULP: { | ||||
|       return chalk.red('Local gulp not found in') + ' ' + chalk.magenta(tildify(data.cwd)); | ||||
|     } | ||||
|     case messages.YARN_INSTALL: { | ||||
|       return chalk.red('Try running: yarn install'); | ||||
|     } | ||||
|     case messages.NPM_INSTALL: { | ||||
|       return chalk.red('Try running: npm install'); | ||||
|     } | ||||
|     case messages.YARN_INSTALL_GULP: { | ||||
|       return chalk.red('Try running: yarn add gulp'); | ||||
|     } | ||||
|     case messages.NPM_INSTALL_GULP: { | ||||
|       return chalk.red('Try running: npm install gulp'); | ||||
|     } | ||||
|     case messages.GULPLOG_DEPRECATED: { | ||||
|       return chalk.yellow("gulplog v1 is deprecated. Please help your plugins update!"); | ||||
|     } | ||||
|     case messages.COMPLETION_TYPE_MISSING: { | ||||
|       return 'Missing completion type'; | ||||
|     } | ||||
|     case messages.COMPLETION_TYPE_UNKNOWN: { | ||||
|       return 'echo "gulp autocompletion rules for' + " '" + data.name + "' " + 'not found"' | ||||
|     } | ||||
|     case messages.ARGV_ERROR: { | ||||
|       return data.message; | ||||
|     } | ||||
|     case messages.EXEC_ERROR: { | ||||
|       return data.message; | ||||
|     } | ||||
|     case messages.TASK_ERROR: { | ||||
|       return data.message; | ||||
|     } | ||||
|     case messages.USAGE: { | ||||
|       return '\n' + chalk.bold('Usage:') + ' gulp ' + chalk.blue('[options]') + ' tasks'; | ||||
|     } | ||||
|     case messages.FLAG_HELP: { | ||||
|       return chalk.gray('Show this help.'); | ||||
|     } | ||||
|     case messages.FLAG_VERSION: { | ||||
|       return chalk.gray('Print the global and local gulp versions.'); | ||||
|     } | ||||
|     case messages.FLAG_PRELOAD: { | ||||
|       return chalk.gray( | ||||
|         'Will preload a module before running the gulpfile. ' + | ||||
|         'This is useful for transpilers but also has other applications.' | ||||
|       ); | ||||
|     } | ||||
|     case messages.FLAG_GULPFILE: { | ||||
|       return chalk.gray( | ||||
|         'Manually set path of gulpfile. Useful if you have multiple gulpfiles. ' + | ||||
|         'This will set the CWD to the gulpfile directory as well.' | ||||
|       ) | ||||
|     } | ||||
|     case messages.FLAG_CWD: { | ||||
|       return chalk.gray( | ||||
|         'Manually set the CWD. The search for the gulpfile, ' + | ||||
|         'as well as the relativity of all requires will be from here.' | ||||
|       ); | ||||
|     } | ||||
|     case messages.FLAG_TASKS: { | ||||
|       return chalk.gray('Print the task dependency tree for the loaded gulpfile.'); | ||||
|     } | ||||
|     case messages.FLAG_TASKS_SIMPLE: { | ||||
|       return chalk.gray('Print a plaintext list of tasks for the loaded gulpfile.'); | ||||
|     } | ||||
|     case messages.FLAG_TASKS_JSON: { | ||||
|       return chalk.gray( | ||||
|         'Print the task dependency tree, ' + | ||||
|         'in JSON format, for the loaded gulpfile.' | ||||
|       ); | ||||
|     } | ||||
|     case messages.FLAG_TASKS_DEPTH: { | ||||
|       return chalk.gray('Specify the depth of the task dependency tree.'); | ||||
|     } | ||||
|     case messages.FLAG_COMPACT_TASKS: { | ||||
|       return chalk.gray( | ||||
|         'Reduce the output of task dependency tree by printing ' + | ||||
|         'only top tasks and their child tasks.' | ||||
|       ); | ||||
|     } | ||||
|     case messages.FLAG_SORT_TASKS: { | ||||
|       return chalk.gray('Will sort top tasks of task dependency tree.'); | ||||
|     } | ||||
|     case messages.FLAG_COLOR: { | ||||
|       return chalk.gray( | ||||
|         'Will force gulp and gulp plugins to display colors, ' + | ||||
|         'even when no color support is detected.' | ||||
|       ); | ||||
|     } | ||||
|     case messages.FLAG_NO_COLOR: { | ||||
|       return chalk.gray( | ||||
|         'Will force gulp and gulp plugins to not display colors, ' + | ||||
|         'even when color support is detected.' | ||||
|       ); | ||||
|     } | ||||
|     case messages.FLAG_SILENT: { | ||||
|       return chalk.gray('Suppress all gulp logging.'); | ||||
|     } | ||||
|     case messages.FLAG_CONTINUE: { | ||||
|       return chalk.gray('Continue execution of tasks upon failure.'); | ||||
|     } | ||||
|     case messages.FLAG_SERIES: { | ||||
|       return chalk.gray('Run tasks given on the CLI in series (the default is parallel).'); | ||||
|     } | ||||
|     case messages.FLAG_LOG_LEVEL: { | ||||
|       return chalk.gray( | ||||
|         'Set the loglevel. -L for least verbose and -LLLL for most verbose. ' + | ||||
|         '-LLL is default.' | ||||
|       ); | ||||
|     } | ||||
|     case messages.TASK_NAME: { | ||||
|       return chalk.cyan(data.name); | ||||
|     } | ||||
|     case messages.TASK_DESCRIPTION: { | ||||
|       return chalk.white(data.description); | ||||
|     } | ||||
|     case messages.TASK_FLAG: { | ||||
|       return chalk.magenta(data.flag); | ||||
|     } | ||||
|     case messages.TASK_FLAG_DESCRIPTION: { | ||||
|       return chalk.white('…' + data.description); | ||||
|     } | ||||
|     case messages.BOX_DRAWINGS_LIGHT_UP_AND_RIGHT: { | ||||
|       return chalk.white('└'); | ||||
|     } | ||||
|     case messages.BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT: { | ||||
|       return chalk.white('├'); | ||||
|     } | ||||
|     case messages.BOX_DRAWINGS_LIGHT_HORIZONTAL: { | ||||
|       return chalk.white('─'); | ||||
|     } | ||||
|     case messages.BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL: { | ||||
|       return chalk.white('┬'); | ||||
|     } | ||||
|     case messages.BOX_DRAWINGS_LIGHT_VERTICAL: { | ||||
|       return chalk.white('│'); | ||||
|     } | ||||
|     default: { | ||||
|       return data; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| function getDefaultTimestamp() { | ||||
|   return util.inspect(new Timestamp(), { colors: !!chalk.supportsColor }); | ||||
| } | ||||
|  | ||||
| function buildTranslations(cfg) { | ||||
|   cfg = cfg || {}; | ||||
|  | ||||
|   return { | ||||
|     message: function (data) { | ||||
|       // Don't allow an `undefined` message through | ||||
|       if (typeof data === 'undefined') { | ||||
|         data = Object.create(null); | ||||
|       } | ||||
|  | ||||
|       var message; | ||||
|       if (typeof cfg.message === 'function') { | ||||
|         try { | ||||
|           message = cfg.message(data); | ||||
|         } catch (err) { | ||||
|           console.error('A problem occurred with the user-defined `message()` function.'); | ||||
|           console.error('Please correct your `.gulp.*` config file.'); | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       // If the user has provided a message, return it | ||||
|       if (message) { | ||||
|         return message; | ||||
|       } | ||||
|  | ||||
|       // Users can filter messages by explicitly returning `false` | ||||
|       if (message === false) { | ||||
|         return ''; | ||||
|       } | ||||
|  | ||||
|       // If the user hasn't returned a message or silenced it with `false` | ||||
|       // get the default message. Will return the first argument if the message | ||||
|       // is not defined in the `@gulpjs/messages` package | ||||
|       return getDefaultMessage(data); | ||||
|     }, | ||||
|     timestamp: function (data) { | ||||
|       // Don't allow an `undefined` message through | ||||
|       if (typeof data === 'undefined') { | ||||
|         data = Object.create(null); | ||||
|       } | ||||
|  | ||||
|       var time; | ||||
|       if (typeof cfg.timestamp === 'function') { | ||||
|         try { | ||||
|           time = cfg.timestamp(data); | ||||
|         } catch (err) { | ||||
|           console.error('A problem occurred with the user-defined `timestamp()` function.'); | ||||
|           console.error('Please correct your `.gulp.*` config file.'); | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       // If the user has provided a timestamp, return it | ||||
|       if (time) { | ||||
|         return time; | ||||
|       } | ||||
|  | ||||
|       // Users can filter timestamps by explicitly returning `false` | ||||
|       if (time === false) { | ||||
|         return ''; | ||||
|       } | ||||
|  | ||||
|       return getDefaultTimestamp(); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = buildTranslations; | ||||
							
								
								
									
										23
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/format-error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/format-error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| // Format orchestrator errors | ||||
| function formatError(e) { | ||||
|   if (!e.err) { | ||||
|     return e.message; | ||||
|   } | ||||
|  | ||||
|   // PluginError | ||||
|   if (typeof e.err.showStack === 'boolean') { | ||||
|     return e.err.toString(); | ||||
|   } | ||||
|  | ||||
|   // Normal error | ||||
|   if (e.err.stack) { | ||||
|     return e.err.stack; | ||||
|   } | ||||
|  | ||||
|   // Unknown (string, number, etc.) | ||||
|   return new Error(String(e.err)).stack; | ||||
| } | ||||
|  | ||||
| module.exports = formatError; | ||||
							
								
								
									
										74
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var fs = require('fs'); | ||||
|  | ||||
| var log = require('gulplog'); | ||||
| var stdout = require('mute-stdout'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var taskTree = require('./task-tree'); | ||||
| var copyTree = require('../../shared/log/copy-tree'); | ||||
|  | ||||
| var logTasks = require('../../shared/log/tasks'); | ||||
| var exit = require('../../shared/exit'); | ||||
| var logEvents = require('./log/events'); | ||||
| var logTasksSimple = require('./log/tasks-simple'); | ||||
| var registerExports = require('../../shared/register-exports'); | ||||
| var requireOrImport = require('../../shared/require-or-import'); | ||||
|  | ||||
| function execute(env, opts, translate) { | ||||
|   var tasks = opts._; | ||||
|   var toRun = tasks.length ? tasks : ['default']; | ||||
|  | ||||
|   if (opts.tasksSimple || opts.tasks || opts.tasksJson) { | ||||
|     // Mute stdout if we are listing tasks | ||||
|     stdout.mute(); | ||||
|   } | ||||
|  | ||||
|   // This is what actually loads up the gulpfile | ||||
|   requireOrImport(env.configPath, function(err, exported) { | ||||
|     // Before import(), if require() failed we got an unhandled exception on the module level. | ||||
|     // So console.error() & exit() were added here to mimic the old behavior as close as possible. | ||||
|     if (err) { | ||||
|       console.error(err); | ||||
|       exit(1); | ||||
|     } | ||||
|  | ||||
|     log.info({ tag: messages.GULPFILE, path: env.configPath }); | ||||
|  | ||||
|     var gulpInst = require(env.modulePath); | ||||
|     logEvents(gulpInst); | ||||
|  | ||||
|     registerExports(gulpInst, exported); | ||||
|  | ||||
|     // Always unmute stdout after gulpfile is required | ||||
|     stdout.unmute(); | ||||
|  | ||||
|     var tree; | ||||
|     if (opts.tasksSimple) { | ||||
|       return logTasksSimple(env, gulpInst); | ||||
|     } | ||||
|     if (opts.tasks) { | ||||
|       tree = taskTree(gulpInst.tasks); | ||||
|       tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); | ||||
|       return logTasks(tree, opts, function(task) { | ||||
|         return gulpInst.tasks[task].fn; | ||||
|       }, translate); | ||||
|     } | ||||
|     if (opts.tasksJson) { | ||||
|       tree = taskTree(gulpInst.tasks); | ||||
|       tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); | ||||
|  | ||||
|       var output = JSON.stringify(copyTree(tree, opts)); | ||||
|  | ||||
|       if (typeof opts.tasksJson === 'boolean') { | ||||
|         return console.log(output); | ||||
|       } | ||||
|  | ||||
|       return fs.writeFileSync(opts.tasksJson, output, 'utf-8'); | ||||
|     } | ||||
|     gulpInst.start.apply(gulpInst, toRun); | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = execute; | ||||
							
								
								
									
										46
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/log/events.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/log/events.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var log = require('gulplog'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var exit = require('../../../shared/exit'); | ||||
| var formatError = require('../format-error'); | ||||
|  | ||||
| // Wire up logging events | ||||
| function logEvents(gulpInst) { | ||||
|  | ||||
|   // Exit with 0 or 1 | ||||
|   var failed = false; | ||||
|   process.once('exit', function(code) { | ||||
|     if (code === 0 && failed) { | ||||
|       exit(1); | ||||
|     } | ||||
|   }); | ||||
|  | ||||
|   // Total hack due to poor error management in orchestrator | ||||
|   gulpInst.on('err', function() { | ||||
|     failed = true; | ||||
|   }); | ||||
|  | ||||
|   gulpInst.on('task_start', function(e) { | ||||
|     // TODO: batch these | ||||
|     // so when 5 tasks start at once it only logs one time with all 5 | ||||
|     log.info({ tag: messages.TASK_START, task: e.task }); | ||||
|   }); | ||||
|  | ||||
|   gulpInst.on('task_stop', function(e) { | ||||
|     log.info({ tag: messages.TASK_STOP, task: e.task, duration: e.hrDuration }); | ||||
|   }); | ||||
|  | ||||
|   gulpInst.on('task_err', function(e) { | ||||
|     log.error({ tag: messages.TASK_FAILURE, task: e.task, duration: e.hrDuration }); | ||||
|     log.error({ tag: messages.TASK_ERROR, message: formatError(e) }); | ||||
|   }); | ||||
|  | ||||
|   gulpInst.on('task_not_found', function(err) { | ||||
|     log.error({ tag: messages.TASK_MISSING, task: err.task }); | ||||
|     exit(1); | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = logEvents; | ||||
							
								
								
									
										9
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/log/tasks-simple.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/log/tasks-simple.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function logTasksSimple(env, localGulp) { | ||||
|   console.log(Object.keys(localGulp.tasks) | ||||
|     .join('\n') | ||||
|     .trim()); | ||||
| } | ||||
|  | ||||
| module.exports = logTasksSimple; | ||||
							
								
								
									
										27
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/task-tree.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								node_modules/gulp-cli/lib/versioned/^3.7.0/task-tree.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| module.exports = function(tasks) { | ||||
|   var map = {}; | ||||
|   var arr = []; | ||||
|   Object.keys(tasks).forEach(function(taskname) { | ||||
|     var task = { | ||||
|       label: taskname, | ||||
|       type: 'task', | ||||
|       nodes: [], | ||||
|     }; | ||||
|     map[taskname] = task; | ||||
|     arr.push(task); | ||||
|   }); | ||||
|   Object.keys(tasks).forEach(function(taskname) { | ||||
|     var task = map[taskname]; | ||||
|     tasks[taskname].dep.forEach(function(childname) { | ||||
|       var child = map[childname] || { | ||||
|         label: childname, | ||||
|         type: 'task', | ||||
|         nodes: [], | ||||
|       }; | ||||
|       task.nodes.push(child); | ||||
|     }); | ||||
|   }); | ||||
|   return { label: 'Tasks', nodes: arr }; | ||||
| }; | ||||
							
								
								
									
										24
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/format-error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/format-error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| // Format orchestrator errors | ||||
| /* istanbul ignore next */ | ||||
| function formatError(e) { | ||||
|   if (!e.error) { | ||||
|     return e.message; | ||||
|   } | ||||
|  | ||||
|   // PluginError | ||||
|   if (typeof e.error.showStack === 'boolean') { | ||||
|     return e.error.toString(); | ||||
|   } | ||||
|  | ||||
|   // Normal error | ||||
|   if (e.error.stack) { | ||||
|     return e.error.stack; | ||||
|   } | ||||
|  | ||||
|   // Unknown (string, number, etc.) | ||||
|   return new Error(String(e.error)).stack; | ||||
| } | ||||
|  | ||||
| module.exports = formatError; | ||||
							
								
								
									
										91
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,91 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var fs = require('fs'); | ||||
|  | ||||
| var log = require('gulplog'); | ||||
| var stdout = require('mute-stdout'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var exit = require('../../shared/exit'); | ||||
|  | ||||
| var logTasks = require('../../shared/log/tasks'); | ||||
| var logEvents = require('./log/events'); | ||||
| var logSyncTask = require('./log/sync-task'); | ||||
| var normalizeError = require('./normalize-error'); | ||||
| var logTasksSimple = require('./log/tasks-simple'); | ||||
| var registerExports = require('../../shared/register-exports'); | ||||
|  | ||||
| var copyTree = require('../../shared/log/copy-tree'); | ||||
| var getTask = require('./log/get-task'); | ||||
| var requireOrImport = require('../../shared/require-or-import'); | ||||
|  | ||||
| function execute(env, opts, translate) { | ||||
|   var tasks = opts._; | ||||
|   var toRun = tasks.length ? tasks : ['default']; | ||||
|  | ||||
|   if (opts.tasksSimple || opts.tasks || opts.tasksJson) { | ||||
|     // Mute stdout if we are listing tasks | ||||
|     stdout.mute(); | ||||
|   } | ||||
|  | ||||
|   var gulpInst = require(env.modulePath); | ||||
|   logEvents(gulpInst); | ||||
|   logSyncTask(gulpInst, opts); | ||||
|  | ||||
|   // This is what actually loads up the gulpfile | ||||
|   requireOrImport(env.configPath, function(err, exported) { | ||||
|     // Before import(), if require() failed we got an unhandled exception on the module level. | ||||
|     // So console.error() & exit() were added here to mimic the old behavior as close as possible. | ||||
|     if (err) { | ||||
|       console.error(err); | ||||
|       exit(1); | ||||
|     } | ||||
|  | ||||
|     registerExports(gulpInst, exported); | ||||
|  | ||||
|     // Always unmute stdout after gulpfile is required | ||||
|     stdout.unmute(); | ||||
|  | ||||
|     var tree; | ||||
|     if (opts.tasksSimple) { | ||||
|       tree = gulpInst.tree(); | ||||
|       return logTasksSimple(tree.nodes); | ||||
|     } | ||||
|     if (opts.tasks) { | ||||
|       tree = gulpInst.tree({ deep: true }); | ||||
|       tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); | ||||
|  | ||||
|       return logTasks(tree, opts, getTask(gulpInst), translate); | ||||
|     } | ||||
|     if (opts.tasksJson) { | ||||
|       tree = gulpInst.tree({ deep: true }); | ||||
|       tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); | ||||
|  | ||||
|       var output = JSON.stringify(copyTree(tree, opts)); | ||||
|  | ||||
|       if (typeof opts.tasksJson === 'boolean' && opts.tasksJson) { | ||||
|         return console.log(output); | ||||
|       } | ||||
|       return fs.writeFileSync(opts.tasksJson, output, 'utf-8'); | ||||
|     } | ||||
|     try { | ||||
|       log.info({ tag: messages.GULPFILE, path: env.configPath }); | ||||
|       var runMethod = opts.series ? 'series' : 'parallel'; | ||||
|       gulpInst[runMethod](toRun)(function(err) { | ||||
|         if (err) { | ||||
|           exit(1); | ||||
|         } | ||||
|       }); | ||||
|     } catch (err) { | ||||
|       normalizeError(err); | ||||
|       if (err.task) { | ||||
|         log.error({ tag: messages.TASK_MISSING, task: err.task, similar: err.similar }); | ||||
|       } else { | ||||
|         log.error({ tag: messages.EXEC_ERROR, message: err.message, error: err }); | ||||
|       } | ||||
|       exit(1); | ||||
|     } | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = execute; | ||||
							
								
								
									
										39
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/log/events.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/log/events.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var log = require('gulplog'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var formatError = require('../format-error'); | ||||
|  | ||||
| // Wire up logging events | ||||
| function logEvents(gulpInst) { | ||||
|  | ||||
|   var loggedErrors = []; | ||||
|  | ||||
|   gulpInst.on('start', function(evt) { | ||||
|     /* istanbul ignore next */ | ||||
|     // TODO: batch these | ||||
|     // so when 5 tasks start at once it only logs one time with all 5 | ||||
|     var level = evt.branch ? 'debug' : 'info'; | ||||
|     log[level]({ tag: messages.TASK_START, task: evt.name }); | ||||
|   }); | ||||
|  | ||||
|   gulpInst.on('stop', function(evt) { | ||||
|     /* istanbul ignore next */ | ||||
|     var level = evt.branch ? 'debug' : 'info'; | ||||
|     log[level]({ tag: messages.TASK_STOP, task: evt.name, duration: evt.duration }); | ||||
|   }); | ||||
|  | ||||
|   gulpInst.on('error', function(evt) { | ||||
|     var level = evt.branch ? 'debug' : 'error'; | ||||
|     log[level]({ tag: messages.TASK_FAILURE, task: evt.name, duration: evt.duration }); | ||||
|  | ||||
|     // If we haven't logged this before, log it and add to list | ||||
|     if (loggedErrors.indexOf(evt.error) === -1) { | ||||
|       log.error({ tag: messages.TASK_ERROR, message: formatError(evt) }); | ||||
|       loggedErrors.push(evt.error); | ||||
|     } | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = logEvents; | ||||
							
								
								
									
										43
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/log/get-task.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/log/get-task.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var isObject = require('../../../shared/is-object'); | ||||
|  | ||||
| function getTask(gulpInst) { | ||||
|   return function(name) { | ||||
|     var task = gulpInst.task(name); | ||||
|     return { | ||||
|       description: getDescription(task), | ||||
|       flags: getFlags(task), | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | ||||
| function getDescription(task) { | ||||
|   if (typeof task.description === 'string') { | ||||
|     return task.description; | ||||
|   } | ||||
|   /* istanbul ignore else */ | ||||
|   if (typeof task.unwrap === 'function') { | ||||
|     var origFn = task.unwrap(); | ||||
|     if (typeof origFn.description === 'string') { | ||||
|       return origFn.description; | ||||
|     } | ||||
|   } | ||||
|   return undefined; | ||||
| } | ||||
|  | ||||
| function getFlags(task) { | ||||
|   if (isObject(task.flags)) { | ||||
|     return task.flags; | ||||
|   } | ||||
|   /* istanbul ignore else */ | ||||
|   if (typeof task.unwrap === 'function') { | ||||
|     var origFn = task.unwrap(); | ||||
|     if (isObject(origFn.flags)) { | ||||
|       return origFn.flags; | ||||
|     } | ||||
|   } | ||||
|   return undefined; | ||||
| } | ||||
|  | ||||
| module.exports = getTask; | ||||
							
								
								
									
										46
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/log/sync-task.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/log/sync-task.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var log = require('gulplog'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var tasks = {}; | ||||
|  | ||||
| function warn() { | ||||
|   var taskKeys = Object.keys(tasks); | ||||
|  | ||||
|   if (!taskKeys.length) { | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   var taskNames = taskKeys.map(function(key) { | ||||
|     return tasks[key]; | ||||
|   }).join(', '); | ||||
|  | ||||
|   process.exitCode = 1; | ||||
|  | ||||
|   log.warn({ tag: messages.TASK_SYNC, tasks: taskNames }); | ||||
| } | ||||
|  | ||||
| function start(e) { | ||||
|   tasks[e.uid] = e.name; | ||||
| } | ||||
|  | ||||
| function clear(e) { | ||||
|   delete tasks[e.uid]; | ||||
| } | ||||
|  | ||||
| function clearAll() { | ||||
|   tasks = {}; | ||||
| } | ||||
|  | ||||
| function logSyncTask(gulpInst, opts) { | ||||
|  | ||||
|   process.once('exit', warn); | ||||
|   gulpInst.on('start', start); | ||||
|   gulpInst.on('stop', clear); | ||||
|   // When not running in --continue mode, we need to clear everything on error to avoid | ||||
|   // false positives. | ||||
|   gulpInst.on('error', opts.continue ? clear : clearAll); | ||||
| } | ||||
|  | ||||
| module.exports = logSyncTask; | ||||
							
								
								
									
										7
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/log/tasks-simple.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/log/tasks-simple.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function logTasksSimple(nodes) { | ||||
|   console.log(nodes.join('\n').trim()); | ||||
| } | ||||
|  | ||||
| module.exports = logTasksSimple; | ||||
							
								
								
									
										26
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/normalize-error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								node_modules/gulp-cli/lib/versioned/^4.0.0/normalize-error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| // Normalize an undertaker v1 error like an undertaker v2 error | ||||
| function normalizeError(err) { | ||||
|   /* istanbul ignore if */ | ||||
|   if (!err || !err.message) { | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   var fixed0 = 'Task never defined: '; | ||||
|   var fixed1 = ' - did you mean? '; | ||||
|  | ||||
|   if (err.message.startsWith(fixed0)) { | ||||
|     var task = err.message.slice(fixed0.length); | ||||
|     var index = task.indexOf(fixed1); | ||||
|  | ||||
|     if (index >= 0) { | ||||
|       err.similar = task.slice(index + fixed1.length).split(', '); | ||||
|       err.task = task.slice(0, index); | ||||
|     } else { | ||||
|       err.task = task | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = normalizeError; | ||||
							
								
								
									
										24
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/format-error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/format-error.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| // Format orchestrator errors | ||||
| /* istanbul ignore next */ | ||||
| function formatError(e) { | ||||
|   if (!e.error) { | ||||
|     return e.message; | ||||
|   } | ||||
|  | ||||
|   // PluginError | ||||
|   if (typeof e.error.showStack === 'boolean') { | ||||
|     return e.error.toString(); | ||||
|   } | ||||
|  | ||||
|   // Normal error | ||||
|   if (e.error.stack) { | ||||
|     return e.error.stack; | ||||
|   } | ||||
|  | ||||
|   // Unknown (string, number, etc.) | ||||
|   return new Error(String(e.error)).stack; | ||||
| } | ||||
|  | ||||
| module.exports = formatError; | ||||
							
								
								
									
										89
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,89 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var fs = require('fs'); | ||||
|  | ||||
| var log = require('gulplog'); | ||||
| var stdout = require('mute-stdout'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var exit = require('../../shared/exit'); | ||||
|  | ||||
| var logTasks = require('../../shared/log/tasks'); | ||||
| var logEvents = require('./log/events'); | ||||
| var logSyncTask = require('./log/sync-task'); | ||||
| var logTasksSimple = require('./log/tasks-simple'); | ||||
| var registerExports = require('../../shared/register-exports'); | ||||
|  | ||||
| var copyTree = require('../../shared/log/copy-tree'); | ||||
| var getTask = require('./log/get-task'); | ||||
| var requireOrImport = require('../../shared/require-or-import'); | ||||
|  | ||||
| function execute(env, opts, translate) { | ||||
|   var tasks = opts._; | ||||
|   var toRun = tasks.length ? tasks : ['default']; | ||||
|  | ||||
|   if (opts.tasksSimple || opts.tasks || opts.tasksJson) { | ||||
|     // Mute stdout if we are listing tasks | ||||
|     stdout.mute(); | ||||
|   } | ||||
|  | ||||
|   var gulpInst = require(env.modulePath); | ||||
|   logEvents(gulpInst); | ||||
|   logSyncTask(gulpInst, opts); | ||||
|  | ||||
|   // This is what actually loads up the gulpfile | ||||
|   requireOrImport(env.configPath, function(err, exported) { | ||||
|     // Before import(), if require() failed we got an unhandled exception on the module level. | ||||
|     // So console.error() & exit() were added here to mimic the old behavior as close as possible. | ||||
|     if (err) { | ||||
|       console.error(err); | ||||
|       exit(1); | ||||
|     } | ||||
|  | ||||
|     registerExports(gulpInst, exported); | ||||
|  | ||||
|     // Always unmute stdout after gulpfile is required | ||||
|     stdout.unmute(); | ||||
|  | ||||
|     var tree; | ||||
|     if (opts.tasksSimple) { | ||||
|       tree = gulpInst.tree(); | ||||
|       return logTasksSimple(tree.nodes); | ||||
|     } | ||||
|     if (opts.tasks) { | ||||
|       tree = gulpInst.tree({ deep: true }); | ||||
|       tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); | ||||
|  | ||||
|       return logTasks(tree, opts, getTask(gulpInst), translate); | ||||
|     } | ||||
|     if (opts.tasksJson) { | ||||
|       tree = gulpInst.tree({ deep: true }); | ||||
|       tree.label = translate.message({ tag: messages.DESCRIPTION, path: env.configPath }); | ||||
|  | ||||
|       var output = JSON.stringify(copyTree(tree, opts)); | ||||
|  | ||||
|       if (typeof opts.tasksJson === 'boolean' && opts.tasksJson) { | ||||
|         return console.log(output); | ||||
|       } | ||||
|       return fs.writeFileSync(opts.tasksJson, output, 'utf-8'); | ||||
|     } | ||||
|     try { | ||||
|       log.info({ tag: messages.GULPFILE, path: env.configPath }); | ||||
|       var runMethod = opts.series ? 'series' : 'parallel'; | ||||
|       gulpInst[runMethod](toRun)(function(err) { | ||||
|         if (err) { | ||||
|           exit(1); | ||||
|         } | ||||
|       }); | ||||
|     } catch (err) { | ||||
|       if (err.task) { | ||||
|         log.error({ tag: messages.TASK_MISSING, task: err.task, similar: err.similar }); | ||||
|       } else { | ||||
|         log.error({ tag: messages.EXEC_ERROR, message: err.message, error: err }); | ||||
|       } | ||||
|       exit(1); | ||||
|     } | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = execute; | ||||
							
								
								
									
										39
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/log/events.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/log/events.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var log = require('gulplog'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var formatError = require('../format-error'); | ||||
|  | ||||
| // Wire up logging events | ||||
| function logEvents(gulpInst) { | ||||
|  | ||||
|   var loggedErrors = []; | ||||
|  | ||||
|   gulpInst.on('start', function(evt) { | ||||
|     /* istanbul ignore next */ | ||||
|     // TODO: batch these | ||||
|     // so when 5 tasks start at once it only logs one time with all 5 | ||||
|     var level = evt.branch ? 'debug' : 'info'; | ||||
|     log[level]({ tag: messages.TASK_START, task: evt.name }); | ||||
|   }); | ||||
|  | ||||
|   gulpInst.on('stop', function(evt) { | ||||
|     /* istanbul ignore next */ | ||||
|     var level = evt.branch ? 'debug' : 'info'; | ||||
|     log[level]({ tag: messages.TASK_STOP, task: evt.name, duration: evt.duration }); | ||||
|   }); | ||||
|  | ||||
|   gulpInst.on('error', function(evt) { | ||||
|     var level = evt.branch ? 'debug' : 'error'; | ||||
|     log[level]({ tag: messages.TASK_FAILURE, task: evt.name, duration: evt.duration }); | ||||
|  | ||||
|     // If we haven't logged this before, log it and add to list | ||||
|     if (loggedErrors.indexOf(evt.error) === -1) { | ||||
|       log.error({ tag: messages.TASK_ERROR, message: formatError(evt) }); | ||||
|       loggedErrors.push(evt.error); | ||||
|     } | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = logEvents; | ||||
							
								
								
									
										43
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/log/get-task.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/log/get-task.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var isObject = require('../../../shared/is-object'); | ||||
|  | ||||
| function getTask(gulpInst) { | ||||
|   return function(name) { | ||||
|     var task = gulpInst.task(name); | ||||
|     return { | ||||
|       description: getDescription(task), | ||||
|       flags: getFlags(task), | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | ||||
| function getDescription(task) { | ||||
|   if (typeof task.description === 'string') { | ||||
|     return task.description; | ||||
|   } | ||||
|   /* istanbul ignore else */ | ||||
|   if (typeof task.unwrap === 'function') { | ||||
|     var origFn = task.unwrap(); | ||||
|     if (typeof origFn.description === 'string') { | ||||
|       return origFn.description; | ||||
|     } | ||||
|   } | ||||
|   return undefined; | ||||
| } | ||||
|  | ||||
| function getFlags(task) { | ||||
|   if (isObject(task.flags)) { | ||||
|     return task.flags; | ||||
|   } | ||||
|   /* istanbul ignore else */ | ||||
|   if (typeof task.unwrap === 'function') { | ||||
|     var origFn = task.unwrap(); | ||||
|     if (isObject(origFn.flags)) { | ||||
|       return origFn.flags; | ||||
|     } | ||||
|   } | ||||
|   return undefined; | ||||
| } | ||||
|  | ||||
| module.exports = getTask; | ||||
							
								
								
									
										46
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/log/sync-task.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/log/sync-task.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var log = require('gulplog'); | ||||
| var messages = require('@gulpjs/messages'); | ||||
|  | ||||
| var tasks = {}; | ||||
|  | ||||
| function warn() { | ||||
|   var taskKeys = Object.keys(tasks); | ||||
|  | ||||
|   if (!taskKeys.length) { | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   var taskNames = taskKeys.map(function(key) { | ||||
|     return tasks[key]; | ||||
|   }).join(', '); | ||||
|  | ||||
|   process.exitCode = 1; | ||||
|  | ||||
|   log.warn({ tag: messages.TASK_SYNC, tasks: taskNames }); | ||||
| } | ||||
|  | ||||
| function start(e) { | ||||
|   tasks[e.uid] = e.name; | ||||
| } | ||||
|  | ||||
| function clear(e) { | ||||
|   delete tasks[e.uid]; | ||||
| } | ||||
|  | ||||
| function clearAll() { | ||||
|   tasks = {}; | ||||
| } | ||||
|  | ||||
| function logSyncTask(gulpInst, opts) { | ||||
|  | ||||
|   process.once('exit', warn); | ||||
|   gulpInst.on('start', start); | ||||
|   gulpInst.on('stop', clear); | ||||
|   // When not running in --continue mode, we need to clear everything on error to avoid | ||||
|   // false positives. | ||||
|   gulpInst.on('error', opts.continue ? clear : clearAll); | ||||
| } | ||||
|  | ||||
| module.exports = logSyncTask; | ||||
							
								
								
									
										7
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/log/tasks-simple.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/gulp-cli/lib/versioned/^5.0.0/log/tasks-simple.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| function logTasksSimple(nodes) { | ||||
|   console.log(nodes.join('\n').trim()); | ||||
| } | ||||
|  | ||||
| module.exports = logTasksSimple; | ||||
		Reference in New Issue
	
	Block a user