{"version":3,"file":"sake","sources":["../src/transform.coffee","../src/cache.coffee","../src/load.coffee","../node_modules/executive/node_modules/es-tostring/index.mjs","../node_modules/executive/node_modules/es-is/src/array.coffee","../node_modules/executive/node_modules/es-is/src/function.coffee","../node_modules/executive/node_modules/es-is/src/object.coffee","../node_modules/executive/node_modules/es-is/src/string.coffee","../node_modules/executive/node_modules/es-is/src/promise.coffee","../node_modules/executive/src/spawn/buffer-stream.coffee","../node_modules/executive/node_modules/jsonify/lib/parse.js","../node_modules/executive/node_modules/jsonify/lib/stringify.js","../node_modules/executive/node_modules/jsonify/index.js","../node_modules/executive/node_modules/array-map/index.js","../node_modules/executive/node_modules/array-filter/index.js","../node_modules/executive/node_modules/array-reduce/index.js","../node_modules/executive/node_modules/shell-quote/index.js","../node_modules/executive/src/spawn/shell-builtins.coffee","../node_modules/executive/src/spawn/parse.coffee","../node_modules/executive/src/utils.coffee","../node_modules/executive/src/spawn/async.coffee","../node_modules/executive/src/spawn/sync.coffee","../node_modules/executive/src/flow/parallel.coffee","../node_modules/executive/src/flow/serial.coffee","../node_modules/executive/src/flow/index.coffee","../node_modules/executive/src/executive.coffee","../node_modules/executive/src/index.coffee","../src/init.coffee","../node_modules/es-tostring/index.mjs","../node_modules/es-is/src/function.coffee","../src/utils.coffee","../src/run.coffee","../src/cli.coffee"],"sourcesContent":["export default transform = (code) ->\n  babel     = require 'babel-core'\n  esModules = require 'babel-plugin-transform-es2015-modules-commonjs'\n\n  out = babel.transform code,\n    plugins: [\n      [esModules, loose: true]\n    ]\n  out.code\n","import fs   from  'fs'\nimport path from  'path'\n\nimport transform from './transform'\n\n\n# Find local node_modules relative to current project\nfindNodeModules = (dir) ->\n  while true\n    p = (path.join dir, 'node_modules')\n    if fs.existsSync p\n      return p\n    if dir == '/'\n      throw new Error 'Unable to locate node_modules'\n    dir = path.resolve path.join dir, '..'\n\n\n# Path to cache directory\ncacheDir  = (dir) ->\n  path.join (findNodeModules dir), '.sake'\n\n\n# Path to cache file\ncachePath = (dir) ->\n  path.join (cacheDir dir), 'Sakefile.js'\n\n\n# Safely make directory\nmkdirp = (dir) ->\n  try\n    fs.mkdirSync dir\n  catch err\n    throw err unless err.code == 'EEXIST'\n\n\n# Read cache file\nread = (dir) ->\n  fs.readFileSync (cachePath dir), 'utf8'\n\n\n# Read origin dir for cache file\nreadOrigin = (dir) ->\n  try\n    fs.readFileSync (path.join (cacheDir dir), 'origin'), 'utf8'\n  catch err # Support older copies of sake\n    dir\n\n\n# Write cache file\nwrite = (dir, code) ->\n  mkdirp cacheDir dir\n  transformed = transform code\n  fs.writeFileSync (cachePath dir), transformed, 'utf8'\n  fs.writeFileSync (path.join (cacheDir dir), 'origin'), dir, 'utf8'\n\n\n# Require cached Sakefile such that require and other Node machinery work\nrequireCached = (dir) ->\n  # Symlink cached Sakefile back into Sakefile dir\n  tempFile  = path.resolve path.join dir, \"__Sakefile.js\"\n  fs.linkSync (cachePath dir), tempFile\n\n  try\n    require tempFile     # Require cached Sakefile\n  catch err\n\n  fs.unlinkSync tempFile # Ensure link is cleaned up\n  throw err if err?      # Throw if failed to require Sakefile\n\n\n# Load cached Sakefile unless it's older than source or from different Sakefile\nload = (dir, file) ->\n  try\n    cached = fs.statSync cachePath dir\n    source = fs.statSync path.join dir, file\n  catch err\n    return false if err.code == 'ENOENT'\n    throw err\n\n  if cached.mtime > source.mtime and dir == (readOrigin dir)\n    requireCached dir\n    true\n  else\n    false\n\n\nexport default cache =\n  dir:     cacheDir\n  path:    cachePath\n  load:    load\n  write:   write\n  require: requireCached\n","import fs   from 'fs'\nimport path from 'path'\n\nimport findCoffee from 'find-coffee'\nimport cache from './cache'\n\n# Load Cakefile\nloadCakefile = (dir, file) ->\n  # Try to load from cache\n  return if cache.load dir, file\n\n  # Find local copy of CoffeeScript\n  coffee = findCoffee()\n\n  # Register .coffee extension\n  coffee.register()\n\n  # Compile Cakefile\n  code = fs.readFileSync file, 'utf8'\n  js   = coffee.compile code,\n    bare:      true\n    filename:  file\n    sourceMap: false\n\n  # Write to cache and try to load\n  cache.write dir, js\n  cache.require dir\n\n# Load Sakefile\nloadSakefile = (dir, file) ->\n  # Try to load from cache\n  return if cache.load dir, file\n\n  try\n    code = fs.readFileSync file, 'utf8'\n    cache.write dir, code\n    cache.require dir\n  catch err\n    throw err unless (path.extname file)  == ''\n    throw err unless err.constructor.name == 'SyntaxError'\n    loadCakefile dir, file\n\n\n# Load Sakefile.ts\nloadSakefileTs = (dir, file) ->\n  # Try to load from cache\n  return if cache.load dir, file\n\n  # Write straight to cache\n  exec.sync \"tsc --types sake-core --target ES6 --outFile #{cache.path(dir)} Sakefile.ts\"\n\n  # Load from cache\n  cache.require dir\n\nexport default load =\n  Cakefile:   loadCakefile\n  Sakefile:   loadSakefile\n  SakefileTs: loadSakefileTs\n","export default function(obj) {\n  return Object.prototype.toString.call(obj)\n}\n","import toString from 'es-tostring'\n\n# Test if 'value' is an array.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if `value` is an array, false otherwise\n# @api public\nexport default isArray = Array.isArray or (value) ->\n  toString(value) == '[object Array]'\n","import toString from 'es-tostring'\n\n# Test if `value` is a function.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if `value` is a function, false otherwise\n# @api public\nexport default isFunction = (value) ->\n  # Is alert\n  return true if typeof window != 'undefined' and value == window.alert\n\n  str = toString(value)\n\n  str == '[object Function]' or\n  str == '[object GeneratorFunction]' or\n  str == '[object AsyncFunction]'\n","import toString from 'es-tostring'\n\n# Test if `value` is an object.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if `value` is an object, false otherwise\n# @api public\nexport default isObject = (value) ->\n  toString(value) == '[object Object]'\n","import toString from 'es-tostring'\n\n# Test if `value` is a string.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if 'value' is a string, false otherwise\n# @api public\nexport default isString = (value) ->\n  toString(value) == '[object String]'\n","# Test if `value` is a promise.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if `value` is a promise, false otherwise\n# @api public\nexport default isPromise = (value) ->\n  !!value and (\n    typeof value == 'object' or\n    typeof value == 'function'\n  ) and typeof value.then == 'function'\n","import Stream from 'stream'\n\nclass BufferStream extends Stream\n  constructor: ->\n    super()\n    @buffer   = ''\n    @writable = true\n\n  write: (data) ->\n    @buffer += data\n\n  end: (data) ->\n    @write data if arguments.length\n    @writable = false\n\n  destroy: ->\n    @writable = false\n\n  toString: ->\n    @buffer\n\nexport default BufferStream\n","var at, // The index of the current character\n    ch, // The current character\n    escapee = {\n        '\"':  '\"',\n        '\\\\': '\\\\',\n        '/':  '/',\n        b:    '\\b',\n        f:    '\\f',\n        n:    '\\n',\n        r:    '\\r',\n        t:    '\\t'\n    },\n    text,\n\n    error = function (m) {\n        // Call error when something is wrong.\n        throw {\n            name:    'SyntaxError',\n            message: m,\n            at:      at,\n            text:    text\n        };\n    },\n    \n    next = function (c) {\n        // If a c parameter is provided, verify that it matches the current character.\n        if (c && c !== ch) {\n            error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n        }\n        \n        // Get the next character. When there are no more characters,\n        // return the empty string.\n        \n        ch = text.charAt(at);\n        at += 1;\n        return ch;\n    },\n    \n    number = function () {\n        // Parse a number value.\n        var number,\n            string = '';\n        \n        if (ch === '-') {\n            string = '-';\n            next('-');\n        }\n        while (ch >= '0' && ch <= '9') {\n            string += ch;\n            next();\n        }\n        if (ch === '.') {\n            string += '.';\n            while (next() && ch >= '0' && ch <= '9') {\n                string += ch;\n            }\n        }\n        if (ch === 'e' || ch === 'E') {\n            string += ch;\n            next();\n            if (ch === '-' || ch === '+') {\n                string += ch;\n                next();\n            }\n            while (ch >= '0' && ch <= '9') {\n                string += ch;\n                next();\n            }\n        }\n        number = +string;\n        if (!isFinite(number)) {\n            error(\"Bad number\");\n        } else {\n            return number;\n        }\n    },\n    \n    string = function () {\n        // Parse a string value.\n        var hex,\n            i,\n            string = '',\n            uffff;\n        \n        // When parsing for string values, we must look for \" and \\ characters.\n        if (ch === '\"') {\n            while (next()) {\n                if (ch === '\"') {\n                    next();\n                    return string;\n                } else if (ch === '\\\\') {\n                    next();\n                    if (ch === 'u') {\n                        uffff = 0;\n                        for (i = 0; i < 4; i += 1) {\n                            hex = parseInt(next(), 16);\n                            if (!isFinite(hex)) {\n                                break;\n                            }\n                            uffff = uffff * 16 + hex;\n                        }\n                        string += String.fromCharCode(uffff);\n                    } else if (typeof escapee[ch] === 'string') {\n                        string += escapee[ch];\n                    } else {\n                        break;\n                    }\n                } else {\n                    string += ch;\n                }\n            }\n        }\n        error(\"Bad string\");\n    },\n\n    white = function () {\n\n// Skip whitespace.\n\n        while (ch && ch <= ' ') {\n            next();\n        }\n    },\n\n    word = function () {\n\n// true, false, or null.\n\n        switch (ch) {\n        case 't':\n            next('t');\n            next('r');\n            next('u');\n            next('e');\n            return true;\n        case 'f':\n            next('f');\n            next('a');\n            next('l');\n            next('s');\n            next('e');\n            return false;\n        case 'n':\n            next('n');\n            next('u');\n            next('l');\n            next('l');\n            return null;\n        }\n        error(\"Unexpected '\" + ch + \"'\");\n    },\n\n    value,  // Place holder for the value function.\n\n    array = function () {\n\n// Parse an array value.\n\n        var array = [];\n\n        if (ch === '[') {\n            next('[');\n            white();\n            if (ch === ']') {\n                next(']');\n                return array;   // empty array\n            }\n            while (ch) {\n                array.push(value());\n                white();\n                if (ch === ']') {\n                    next(']');\n                    return array;\n                }\n                next(',');\n                white();\n            }\n        }\n        error(\"Bad array\");\n    },\n\n    object = function () {\n\n// Parse an object value.\n\n        var key,\n            object = {};\n\n        if (ch === '{') {\n            next('{');\n            white();\n            if (ch === '}') {\n                next('}');\n                return object;   // empty object\n            }\n            while (ch) {\n                key = string();\n                white();\n                next(':');\n                if (Object.hasOwnProperty.call(object, key)) {\n                    error('Duplicate key \"' + key + '\"');\n                }\n                object[key] = value();\n                white();\n                if (ch === '}') {\n                    next('}');\n                    return object;\n                }\n                next(',');\n                white();\n            }\n        }\n        error(\"Bad object\");\n    };\n\nvalue = function () {\n\n// Parse a JSON value. It could be an object, an array, a string, a number,\n// or a word.\n\n    white();\n    switch (ch) {\n    case '{':\n        return object();\n    case '[':\n        return array();\n    case '\"':\n        return string();\n    case '-':\n        return number();\n    default:\n        return ch >= '0' && ch <= '9' ? number() : word();\n    }\n};\n\n// Return the json_parse function. It will have access to all of the above\n// functions and variables.\n\nmodule.exports = function (source, reviver) {\n    var result;\n    \n    text = source;\n    at = 0;\n    ch = ' ';\n    result = value();\n    white();\n    if (ch) {\n        error(\"Syntax error\");\n    }\n\n    // If there is a reviver function, we recursively walk the new structure,\n    // passing each name/value pair to the reviver function for possible\n    // transformation, starting with a temporary root object that holds the result\n    // in an empty key. If there is not a reviver function, we simply return the\n    // result.\n\n    return typeof reviver === 'function' ? (function walk(holder, key) {\n        var k, v, value = holder[key];\n        if (value && typeof value === 'object') {\n            for (k in value) {\n                if (Object.prototype.hasOwnProperty.call(value, k)) {\n                    v = walk(value, k);\n                    if (v !== undefined) {\n                        value[k] = v;\n                    } else {\n                        delete value[k];\n                    }\n                }\n            }\n        }\n        return reviver.call(holder, key, value);\n    }({'': result}, '')) : result;\n};\n","var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n    escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n    gap,\n    indent,\n    meta = {    // table of character substitutions\n        '\\b': '\\\\b',\n        '\\t': '\\\\t',\n        '\\n': '\\\\n',\n        '\\f': '\\\\f',\n        '\\r': '\\\\r',\n        '\"' : '\\\\\"',\n        '\\\\': '\\\\\\\\'\n    },\n    rep;\n\nfunction quote(string) {\n    // If the string contains no control characters, no quote characters, and no\n    // backslash characters, then we can safely slap some quotes around it.\n    // Otherwise we must also replace the offending characters with safe escape\n    // sequences.\n    \n    escapable.lastIndex = 0;\n    return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n        var c = meta[a];\n        return typeof c === 'string' ? c :\n            '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n    }) + '\"' : '\"' + string + '\"';\n}\n\nfunction str(key, holder) {\n    // Produce a string from holder[key].\n    var i,          // The loop counter.\n        k,          // The member key.\n        v,          // The member value.\n        length,\n        mind = gap,\n        partial,\n        value = holder[key];\n    \n    // If the value has a toJSON method, call it to obtain a replacement value.\n    if (value && typeof value === 'object' &&\n            typeof value.toJSON === 'function') {\n        value = value.toJSON(key);\n    }\n    \n    // If we were called with a replacer function, then call the replacer to\n    // obtain a replacement value.\n    if (typeof rep === 'function') {\n        value = rep.call(holder, key, value);\n    }\n    \n    // What happens next depends on the value's type.\n    switch (typeof value) {\n        case 'string':\n            return quote(value);\n        \n        case 'number':\n            // JSON numbers must be finite. Encode non-finite numbers as null.\n            return isFinite(value) ? String(value) : 'null';\n        \n        case 'boolean':\n        case 'null':\n            // If the value is a boolean or null, convert it to a string. Note:\n            // typeof null does not produce 'null'. The case is included here in\n            // the remote chance that this gets fixed someday.\n            return String(value);\n            \n        case 'object':\n            if (!value) return 'null';\n            gap += indent;\n            partial = [];\n            \n            // Array.isArray\n            if (Object.prototype.toString.apply(value) === '[object Array]') {\n                length = value.length;\n                for (i = 0; i < length; i += 1) {\n                    partial[i] = str(i, value) || 'null';\n                }\n                \n                // Join all of the elements together, separated with commas, and\n                // wrap them in brackets.\n                v = partial.length === 0 ? '[]' : gap ?\n                    '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']' :\n                    '[' + partial.join(',') + ']';\n                gap = mind;\n                return v;\n            }\n            \n            // If the replacer is an array, use it to select the members to be\n            // stringified.\n            if (rep && typeof rep === 'object') {\n                length = rep.length;\n                for (i = 0; i < length; i += 1) {\n                    k = rep[i];\n                    if (typeof k === 'string') {\n                        v = str(k, value);\n                        if (v) {\n                            partial.push(quote(k) + (gap ? ': ' : ':') + v);\n                        }\n                    }\n                }\n            }\n            else {\n                // Otherwise, iterate through all of the keys in the object.\n                for (k in value) {\n                    if (Object.prototype.hasOwnProperty.call(value, k)) {\n                        v = str(k, value);\n                        if (v) {\n                            partial.push(quote(k) + (gap ? ': ' : ':') + v);\n                        }\n                    }\n                }\n            }\n            \n        // Join all of the member texts together, separated with commas,\n        // and wrap them in braces.\n\n        v = partial.length === 0 ? '{}' : gap ?\n            '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}' :\n            '{' + partial.join(',') + '}';\n        gap = mind;\n        return v;\n    }\n}\n\nmodule.exports = function (value, replacer, space) {\n    var i;\n    gap = '';\n    indent = '';\n    \n    // If the space parameter is a number, make an indent string containing that\n    // many spaces.\n    if (typeof space === 'number') {\n        for (i = 0; i < space; i += 1) {\n            indent += ' ';\n        }\n    }\n    // If the space parameter is a string, it will be used as the indent string.\n    else if (typeof space === 'string') {\n        indent = space;\n    }\n\n    // If there is a replacer, it must be a function or an array.\n    // Otherwise, throw an error.\n    rep = replacer;\n    if (replacer && typeof replacer !== 'function'\n    && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) {\n        throw new Error('JSON.stringify');\n    }\n    \n    // Make a fake root object containing our value under the key of ''.\n    // Return the result of stringifying the value.\n    return str('', {'': value});\n};\n","exports.parse = require('./lib/parse');\nexports.stringify = require('./lib/stringify');\n","module.exports = function (xs, f) {\n    if (xs.map) return xs.map(f);\n    var res = [];\n    for (var i = 0; i < xs.length; i++) {\n        var x = xs[i];\n        if (hasOwn.call(xs, i)) res.push(f(x, i, xs));\n    }\n    return res;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n","/**\n * Array#filter.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @return {Array}\n */\n\nmodule.exports = function (arr, fn) {\n  if (arr.filter) return arr.filter(fn);\n  var ret = [];\n  for (var i = 0; i < arr.length; i++) {\n    if (!hasOwn.call(arr, i)) continue;\n    if (fn(arr[i], i, arr)) ret.push(arr[i]);\n  }\n  return ret;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n","var hasOwn = Object.prototype.hasOwnProperty;\n\nmodule.exports = function (xs, f, acc) {\n    var hasAcc = arguments.length >= 3;\n    if (hasAcc && xs.reduce) return xs.reduce(f, acc);\n    if (xs.reduce) return xs.reduce(f);\n    \n    for (var i = 0; i < xs.length; i++) {\n        if (!hasOwn.call(xs, i)) continue;\n        if (!hasAcc) {\n            acc = xs[i];\n            hasAcc = true;\n            continue;\n        }\n        acc = f(acc, xs[i], i);\n    }\n    return acc;\n};\n","var json = typeof JSON !== undefined ? JSON : require('jsonify');\nvar map = require('array-map');\nvar filter = require('array-filter');\nvar reduce = require('array-reduce');\n\nexports.quote = function (xs) {\n    return map(xs, function (s) {\n        if (s && typeof s === 'object') {\n            return s.op.replace(/(.)/g, '\\\\$1');\n        }\n        else if (/[\"\\s]/.test(s) && !/'/.test(s)) {\n            return \"'\" + s.replace(/(['\\\\])/g, '\\\\$1') + \"'\";\n        }\n        else if (/[\"'\\s]/.test(s)) {\n            return '\"' + s.replace(/([\"\\\\$`!])/g, '\\\\$1') + '\"';\n        }\n        else {\n            return String(s).replace(/([#!\"$&'()*,:;<=>?@\\[\\\\\\]^`{|}])/g, '\\\\$1'); \n        }\n    }).join(' ');\n};\n\nvar CONTROL = '(?:' + [\n    '\\\\|\\\\|', '\\\\&\\\\&', ';;', '\\\\|\\\\&', '[&;()|<>]'\n].join('|') + ')';\nvar META = '|&;()<> \\\\t';\nvar BAREWORD = '(\\\\\\\\[\\'\"' + META + ']|[^\\\\s\\'\"' + META + '])+';\nvar SINGLE_QUOTE = '\"((\\\\\\\\\"|[^\"])*?)\"';\nvar DOUBLE_QUOTE = '\\'((\\\\\\\\\\'|[^\\'])*?)\\'';\n\nvar TOKEN = '';\nfor (var i = 0; i < 4; i++) {\n    TOKEN += (Math.pow(16,8)*Math.random()).toString(16);\n}\n\nexports.parse = function (s, env, opts) {\n    var mapped = parse(s, env, opts);\n    if (typeof env !== 'function') return mapped;\n    return reduce(mapped, function (acc, s) {\n        if (typeof s === 'object') return acc.concat(s);\n        var xs = s.split(RegExp('(' + TOKEN + '.*?' + TOKEN + ')', 'g'));\n        if (xs.length === 1) return acc.concat(xs[0]);\n        return acc.concat(map(filter(xs, Boolean), function (x) {\n            if (RegExp('^' + TOKEN).test(x)) {\n                return json.parse(x.split(TOKEN)[1]);\n            }\n            else return x;\n        }));\n    }, []);\n};\n\nfunction parse (s, env, opts) {\n    var chunker = new RegExp([\n        '(' + CONTROL + ')', // control chars\n        '(' + BAREWORD + '|' + SINGLE_QUOTE + '|' + DOUBLE_QUOTE + ')*'\n    ].join('|'), 'g');\n    var match = filter(s.match(chunker), Boolean);\n    var commented = false;\n\n    if (!match) return [];\n    if (!env) env = {};\n    if (!opts) opts = {};\n    return map(match, function (s, j) {\n        if (commented) {\n            return;\n        }\n        if (RegExp('^' + CONTROL + '$').test(s)) {\n            return { op: s };\n        }\n\n        // Hand-written scanner/parser for Bash quoting rules:\n        //\n        //  1. inside single quotes, all characters are printed literally.\n        //  2. inside double quotes, all characters are printed literally\n        //     except variables prefixed by '$' and backslashes followed by\n        //     either a double quote or another backslash.\n        //  3. outside of any quotes, backslashes are treated as escape\n        //     characters and not printed (unless they are themselves escaped)\n        //  4. quote context can switch mid-token if there is no whitespace\n        //     between the two quote contexts (e.g. all'one'\"token\" parses as\n        //     \"allonetoken\")\n        var SQ = \"'\";\n        var DQ = '\"';\n        var DS = '$';\n        var BS = opts.escape || '\\\\';\n        var quote = false;\n        var esc = false;\n        var out = '';\n        var isGlob = false;\n\n        for (var i = 0, len = s.length; i < len; i++) {\n            var c = s.charAt(i);\n            isGlob = isGlob || (!quote && (c === '*' || c === '?'));\n            if (esc) {\n                out += c;\n                esc = false;\n            }\n            else if (quote) {\n                if (c === quote) {\n                    quote = false;\n                }\n                else if (quote == SQ) {\n                    out += c;\n                }\n                else { // Double quote\n                    if (c === BS) {\n                        i += 1;\n                        c = s.charAt(i);\n                        if (c === DQ || c === BS || c === DS) {\n                            out += c;\n                        } else {\n                            out += BS + c;\n                        }\n                    }\n                    else if (c === DS) {\n                        out += parseEnvVar();\n                    }\n                    else {\n                        out += c;\n                    }\n                }\n            }\n            else if (c === DQ || c === SQ) {\n                quote = c;\n            }\n            else if (RegExp('^' + CONTROL + '$').test(c)) {\n                return { op: s };\n            }\n            else if (RegExp('^#$').test(c)) {\n                commented = true;\n                if (out.length){\n                    return [out, { comment: s.slice(i+1) + match.slice(j+1).join(' ') }];\n                }\n                return [{ comment: s.slice(i+1) + match.slice(j+1).join(' ') }];\n            }\n            else if (c === BS) {\n                esc = true;\n            }\n            else if (c === DS) {\n                out += parseEnvVar();\n            }\n            else out += c;\n        }\n\n        if (isGlob) return {op: 'glob', pattern: out};\n\n        return out;\n\n        function parseEnvVar() {\n            i += 1;\n            var varend, varname;\n            //debugger\n            if (s.charAt(i) === '{') {\n                i += 1;\n                if (s.charAt(i) === '}') {\n                    throw new Error(\"Bad substitution: \" + s.substr(i - 2, 3));\n                }\n                varend = s.indexOf('}', i);\n                if (varend < 0) {\n                    throw new Error(\"Bad substitution: \" + s.substr(i));\n                }\n                varname = s.substr(i, varend - i);\n                i = varend;\n            }\n            else if (/[*@#?$!_\\-]/.test(s.charAt(i))) {\n                varname = s.charAt(i);\n                i += 1;\n            }\n            else {\n                varend = s.substr(i).match(/[^\\w\\d_]/);\n                if (!varend) {\n                    varname = s.substr(i);\n                    i = s.length;\n                } else {\n                    varname = s.substr(i, varend.index);\n                    i += varend.index - 1;\n                }\n            }\n            return getVar(null, '', varname);\n        }\n    })\n    // finalize parsed aruments\n    .reduce(function(prev, arg){\n        if (arg === undefined){\n            return prev;\n        }\n        return prev.concat(arg);\n    },[]);\n\n    function getVar (_, pre, key) {\n        var r = typeof env === 'function' ? env(key) : env[key];\n        if (r === undefined) r = '';\n\n        if (typeof r === 'object') {\n            return pre + TOKEN + json.stringify(r) + TOKEN;\n        }\n        else return pre + r;\n    }\n}\n","export default shellBuiltins =\n  # Bourne Shell builtins\n  ':':      true\n  '.':      true\n  break:    true\n  cd:       true\n  continue: true\n  eval:     true\n  exec:     true\n  exit:     true\n  export:   true\n  getopts:  true\n  hash:     true\n  pwd:      true\n  readonly: true\n  return:   true\n  shift:    true\n  test:     true\n  times:    true\n  trap:     true\n  umask:    true\n  unset:    true\n\n  # Bash shell builtins\n  alias:     true\n  bind:      true\n  builtin:   true\n  caller:    true\n  command:   true\n  declare:   true\n  echo:      true\n  enable:    true\n  help:      true\n  let:       true\n  local:     true\n  logout:    true\n  mapfile:   true\n  printf:    true\n  read:      true\n  readarray: true\n  source:    true\n  type:      true\n  typeset:   true\n  ulimit:    true\n  unalias:   true\n","import fs         from 'fs'\nimport path       from 'path'\nimport shellQuote from 'shell-quote'\nimport {isString, isObject} from 'es-is'\n\nimport builtins   from './shell-builtins'\n\nisWin = /^win/.test process.platform\n\n\n# Convert objects in shell-quote results back into string arguments\nunShellQuote = (args) ->\n  args_ = []\n  for a in args\n    if isString a\n      args_.push a\n    else\n      if a.op == 'glob'\n        args_.push a.pattern\n      else\n        args_.push a.op\n  args_\n\n\n# Parse string containing shell command\nparseShell = (s, env, first=true) ->\n  args = shellQuote.parse s, env\n\n  # Grab command (usually first argument)\n  cmd = args.shift()\n\n  # Process any env vars that might be in front of our command\n  while ~cmd.indexOf '='\n    # Found env var i.e., FOO=1 echo $FOO\n    foundEnv = true\n\n    # Update env object\n    [k, v] = cmd.split '=', 2\n    env[k] = v\n\n    # Grab next arg, see if it's a command\n    cmd = args.shift()\n\n  # Re-parse w/o inline env variables if any discovered\n  if first and foundEnv\n    return parseShell s, env, false\n\n  [cmd, args, env]\n\n\n# Parse cmd, args, env from string\nparseString = (s, opts) ->\n  env = Object.assign {}, process.env, opts.env\n  [cmd, args, env] = parseShell s, env\n\n\n# Parse cmd, args, env from object\nparseObject = (obj, opts) ->\n  cmd  = obj.cmd\n  args = obj.args ? []\n  env  = Object.assign {}, process.env, opts.env, obj.env\n  [cmd, args, env]\n\n\n# Check for any operators or glob patterns\nshellRequired = (cmd, args) ->\n  return true if builtins[cmd]\n\n  for arg in args\n    unless isString arg\n      return true\n  false\n\n\n# Couple of hacks to ensure commands run smoothly on Windows\nwinHacks = (cmd, args) ->\n  cmd     = path.normalize cmd\n  cmdfile = cmd + '.cmd'\n\n  # Use .cmd version of command if it exists\n  cmd = cmdfile if fs.existsSync cmdfile\n\n  # Setup arguments for cmd.exe and use that as executable\n  args = ['/c', cmd].concat args\n  cmd  = 'cmd.exe'\n\n  [cmd, args]\n\n\n# Parse cmd, args, env from string or object\nexport default parse = (cmdArgs, opts = {}) ->\n  # Handle string, object style cmd+args\n  if isString cmdArgs\n    [cmd, args, env] = parseString cmdArgs, opts\n  else if isObject cmdArgs\n    [cmd, args, env] = parseObject cmdArgs, opts\n  else\n    throw new Error \"Unable to parse command '#{cmdArgs}'\"\n\n  # Detect if shell is required and stringify args correctly\n  if shellRequired cmd, args\n    opts.shell ?= true\n    args        = unShellQuote args\n\n  # Apply hacks to work around Windows oddities if necessary\n  [cmd, args] = winHacks cmd, args if isWin\n\n  # Our normalized cmd, args and opts\n  [cmd, args, opts]\n","# Log error\nexport logError = (err) ->\n  if (err.code is 'ENOENT') and /^spawn/.test err.syscall\n    console.error \"Error: #{err.code}, #{err.syscall}\"\n    console.error \"Make sure '#{err.cmd}' exists and is executable.\"\n\n\n# Run command exactly once\nexport once = (fn) ->\n  ran    = false\n  result = null\n  ->\n    return result if ran\n    ran    = true\n    result = fn.apply @, arguments\n    fn     = null\n    result\n\n\n# Merge stdout, stderr, status into results object\nexport mergeResult = (stdout, stderr, status, object) ->\n  ret = if object? then object else {}\n\n  ret.status ?= status\n  ret.stderr ?= stderr\n  ret.stdout ?= stdout\n\n  ret\n","import {spawn} from 'child_process'\n\nimport BufferStream     from './buffer-stream'\nimport parse            from './parse'\nimport {logError, once} from '../utils'\n\n\nexport default async = (cmd, opts, cb) ->\n  [cmd, args, opts] = parse cmd, opts\n\n  stderr = new BufferStream()\n  stdout = new BufferStream()\n\n  child = spawn cmd, args,\n    cwd:      opts.cwd\n    env:      opts.env\n    argv0:    opts.argv0\n    stdio:    opts.stdio ? [0, 'pipe', 'pipe']\n    detached: opts.detached\n    uid:      opts.uid\n    gid:      opts.gid\n    shell:    opts.shell\n\n  child.setMaxListeners 0\n  child.stdout.setEncoding opts.encoding ? 'utf8'\n  child.stderr.setEncoding opts.encoding ? 'utf8'\n\n  # Buffer stderr, stdout\n  unless opts.interactive\n    child.stdout.pipe stdout\n    child.stderr.pipe stderr\n\n  # Echo out as well\n  unless opts.quiet\n    child.stdout.pipe process.stdout\n    child.stderr.pipe process.stderr\n\n  done = once (err, status) ->\n    stdout.destroy()\n    stderr.destroy()\n    child.kill()\n\n    stdout = stdout.toString()\n    stderr = stderr.toString()\n\n    if err?\n      err.cmd    = cmd\n      err.args   = args\n      err.stdout = stdout\n      err.stderr = stderr\n      err.status = status\n      logError err unless opts.quiet\n\n    cb err, stdout, stderr, status\n\n  exit = once (status, signal) ->\n    err = null\n\n    unless status is 0\n      err = new Error \"Command failed, '#{cmd}' exited with status #{status}\"\n      err.signal = signal\n\n    done err, status\n\n  # Close fires after exit so we are relying on it for now.\n  child.on 'close', exit\n  # child.on 'exit', exit\n\n  child.on 'error', done\n\n  child\n","import {spawnSync} from 'child_process'\n\nimport parse      from './parse'\nimport {logError} from '../utils'\n\n\nexport default sync = (cmd, opts, cb) ->\n  [cmd, args, opts] = parse cmd, opts\n\n  {\n    pid\n    output\n    stdout\n    stderr\n    status\n    signal\n    error\n  } = spawnSync cmd, args,\n    cwd:        opts.cwd\n    input:      opts.input\n    stdio:      opts.stdio ? [0, 'pipe', 'pipe']\n    env:        opts.env\n    uid:        opts.uid\n    gid:        opts.gid\n    timeout:    opts.timeout\n    killSignal: opts.killSignal\n    maxBuffer:  opts.maxBuffer\n    encoding:   opts.encoding ? 'utf8'\n\n  opts\n\n  unless opts.quiet\n    process.stdout.write stdout\n    process.stderr.write stderr\n\n  if not error? and status != 0\n    error = new Error \"Command failed, '#{cmd}' exited with status #{status}\"\n\n  if error?\n    error.status = status\n    error.pid    = pid\n    error.signal = signal\n    error.stderr = stderr\n    error.stdout = stdout\n    logError error unless opts.quiet\n\n  cb error, stdout, stderr, status\n\n  status: status\n  stderr: stderr\n  stdout: stdout\n  error:  error\n","import {\n  isArray\n  isFunction\n  isObject\n  isPromise\n  isString\n} from 'es-is'\n\n# Execute commands in parallel\nexport default parallel = (fn, cmds, opts, cb) ->\n  outAll = ''\n  errAll = ''\n  errors = []\n  todo   = cmds.length\n\n  if cmds.length and isArray cmds[0]\n    object = {}\n  else\n    object = null\n\n  append = (key, res = {}) ->\n    {error, stdout, stderr, status} = res\n\n    if stdout?\n      outAll += stdout\n    if stderr?\n      errAll += stderr\n\n    if status?\n      status\n    else\n      0\n\n    if key?\n      object[key] =\n        error:  error\n        stdout: stdout\n        stderr: stderr\n        status: status\n\n  done = (err, status = 0) ->\n    if err?\n      unless opts.quiet\n        console.error err.toString()\n      errors.push err\n\n    return if --todo\n\n    if errors.length\n      err = new Error 'Partial completion'\n      err.errors = errors\n      status = 1\n\n    cb err, outAll, errAll, status, object\n\n  while cmds.length\n    cmd = cmds.shift()\n    do (cmd) ->\n      [key, cmd] = cmd if isArray cmd\n\n      if isString cmd\n        cmd = cmd.replace /\\\\/g, '\\\\\\\\'\n        fn cmd, opts, (err, stdout, stderr, status) ->\n          append key,\n            error:  err\n            stdout: stdout\n            stderr: stderr\n            status: status\n          done err, status\n\n      else if isFunction cmd\n        try\n          val = cmd()\n          if isPromise val\n            cmds.push val\n          else if isString val\n            cmds.push val\n          else\n            append key, val\n            done null, 0\n        catch err\n          done err\n\n      else if isPromise cmd\n        cmd\n          .then (val) ->\n            append key, val\n            done null, 0\n          .catch (err) ->\n            done err\n\n  return\n","import {\n  isArray\n  isFunction\n  isObject\n  isPromise\n  isString\n} from 'es-is'\n\n\n# Execute commands in serial\nexport default serial = (fn, cmds, opts, cb) ->\n  errAll     = ''\n  outAll     = ''\n  lastStatus = null\n\n  if cmds.length and isArray cmds[0]\n    object = {}\n  else\n    object = null\n\n  append = (key, res = {}) ->\n    {error, stdout, stderr, status} = res\n\n    if stdout?\n      outAll += stdout\n\n    if stderr?\n      errAll += stderr\n\n    if status?\n      lastStatus = status\n    else\n      lastStatus = 0\n\n    if key?\n      object[key] =\n        error:  error\n        stdout: stdout\n        stderr: stderr\n        status: status\n\n  do next = ->\n    unless cmds.length\n      return cb null, outAll, errAll, lastStatus, object\n\n    cmd = cmds.shift()\n\n    [key, cmd] = cmd if isArray cmd\n\n    if isString cmd\n      cmd = cmd.replace /\\\\/g, '\\\\\\\\'\n      fn cmd, opts, (err, stdout, stderr, status) ->\n        append key,\n          error:  err\n          stdout: stdout\n          stderr: stderr\n          status: status\n\n        if opts.strict and err?\n          cb err, outAll, errAll, lastStatus, object\n        else\n          next()\n\n    else if isPromise cmd\n      cmd\n        .then (val) ->\n          append key, val\n          next()\n        .catch (err) ->\n          cb err, outAll, errAll, 1, object\n\n    else if isFunction cmd\n      try\n        val = cmd()\n        if (isPromise val) or (isString val)\n          cmds.unshift val\n        else\n          append key, val\n        next()\n      catch err\n        cb err, outAll, errAll, 1, object\n    else\n      cb new Error \"Not a valid command: #{cmd.toString()}\"\n","import {isArray, isObject, isString} from 'es-is'\n\nimport async    from '../spawn/async'\nimport sync     from '../spawn/sync'\nimport parallel from './parallel'\nimport serial   from './serial'\n\n\n# Execute array of commands, with serial exution by default\narray = (exec, cmds, opts, cb) ->\n  if opts.parallel\n    parallel exec, cmds, opts, cb\n  else\n    serial exec, cmds, opts, cb\n\n\n# Execute string representing commands\nstring = (exec, str, opts, cb) ->\n  cmds = (s for s in str.split '\\n' when s.trim() != '')\n  array exec, cmds, opts, cb\n\n\n# Execute object of commands\nobject = (exec, obj, opts, cb) ->\n  cmds = ([k, cmd] for k, cmd of obj)\n  array exec, cmds, opts, cb\n\n\n# Execute commands using either serial or parallel control flow and return\n# result to cb\nexport default (cmds, opts, cb) ->\n  # Use sync exec if necessary\n  exec = if opts.sync then sync else async\n\n  if isString cmds\n    return string exec, cmds, opts, cb\n  if isObject cmds\n    return object exec, cmds, opts, cb\n  if isArray cmds\n    return array exec, cmds, opts, cb\n\n  throw new Error \"Unable to return results for cmds = #{JSON.stringify cmds}\"\n","import {isFunction} from 'es-is'\n\nimport flow from './flow'\nimport {mergeResult} from './utils'\n\n\n# Return executive results asynchronously\nasync = (cmds, opts, cb) ->\n  flow cmds, opts, (err, stdout, stderr, status, object) ->\n    if object?\n      obj = mergeResult stdout, stderr, status, object\n      cb err, obj, stdout, stderr, status\n    else\n      cb err, stdout, stderr, status\n\n\n# Return executive results synchronously\nsync = (cmds, opts) ->\n  ret = null\n\n  # This happens synchronously\n  flow cmds, opts, (err, stdout, stderr, status, object) ->\n    if opts.syncThrows\n      if opts.strict and status != 0\n        throw err\n      else if err? and not status?\n        throw err\n\n    ret = mergeResult stdout, stderr, status, object\n\n  ret\n\n\n# Return executive results as promise\npromise = (cmds, opts) ->\n  new Promise (resolve, reject) ->\n    flow cmds, opts, (err, stdout, stderr, status, object) ->\n      if opts.strict and status != 0\n        return reject err\n      else if err? and not status?\n        return reject err\n\n      resolve mergeResult stdout, stderr, status, object\n\n\n# Run string, array or object commands and return results\nexport default (cmds, opts, cb) ->\n  # Passed only callback\n  if isFunction opts\n    [cb, opts] = [opts, {}]\n\n  # Ensure opts exists\n  opts ?= {}\n\n  # Async exec with errback-style callback\n  return async cmds, opts, cb if isFunction cb\n\n  # Blocking exec\n  return sync cmds, opts if opts.sync\n\n  # Async exec with Promise API expected\n  return promise cmds, opts\n","import {isFunction} from 'es-is'\n\nimport exec from './executive'\n\n# Set defaults for various helpers\npartial = (defaults) ->\n  (cmds, opts, cb) ->\n    [cb, opts] = [opts, {}] if isFunction opts\n    exec cmds, (Object.assign {}, defaults, opts), cb\n\n# Defaults\nexec.interactive = partial interactive: true\nexec.parallel    = partial parallel:    true\nexec.quiet       = partial quiet:       true\nexec.serial      = partial parallel:    false\nexec.strict      = partial strict:      true\nexec.sync        = partial sync:        true\n\nexport default exec\n","import exec from 'executive'\nimport fs from 'fs'\n\ncommand = 'npm install --dev sake-cli sake-bundle sake-outdated sake-publish sake-version'\n\nexport default init = ->\n  # Copy over default Sakefile\n  console.log 'cp Sakefile .'\n  buf = fs.readFileSync __dirname + '/../templates/coffee/Sakefile'\n  fs.writeFileSync 'Sakefile', buf\n\n  # Install deps\n  console.log command\n  exec command\n","export default function(obj) {\n  return Object.prototype.toString.call(obj)\n}\n","import toString from 'es-tostring'\n\n# Test if `value` is a function.\n#\n# @param {Mixed} value value to test\n# @return {Boolean} true if `value` is a function, false otherwise\n# @api public\nexport default isFunction = (value) ->\n  # Is alert\n  return true if typeof window != 'undefined' and value == window.alert\n\n  str = toString(value)\n\n  str == '[object Function]' or\n  str == '[object GeneratorFunction]' or\n  str == '[object AsyncFunction]'\n","import path from 'path'\nimport fs   from 'fs'\n\nimport isFunction from 'es-is/function'\nimport {options}  from 'sake-core'\nimport {tasks}    from 'sake-core'\n\n# Ensure local node_modules bin is on the front of $PATH\nexport preferLocalModules = ->\n  binPath = path.join process.cwd(), 'node_modules/', '.bin'\n  process.env.PATH = ([binPath].concat process.env.PATH.split ':').join ':'\n\n# When `sake` is invoked, search in the current and all parent directories\n# to find the relevant Sakefile (or Cakefile).\nexport findSakefile = (dir) ->\n  for file in ['Sakefile', 'Sakefile.js', 'Cakefile', 'Sakefile.ts']\n    return file: file, dir: dir if fs.existsSync path.join dir, file\n\n  # Recurse up the directory structure\n  parent = path.normalize path.join dir, '..'\n  return findSakefile parent unless parent is dir\n\n  # We're at the top, bail\n  throw new Error \"Sakefile not found in #{process.cwd()}\"\n\n# Display the list of Cake tasks in a format similar to `rake -T`\nexport printTasks = (dir, file) ->\n  relative = path.relative or path.resolve\n  filePath = path.join relative(__originalDirname, process.cwd()), file\n\n  console.log \"#{filePath} defines the following tasks:\\n\"\n\n  delete tasks.has\n\n  names = Object.keys(tasks).sort()\n\n  for name in names\n    task   = tasks[name]\n    spaces = 20 - name.length\n    spaces = if spaces > 0 then Array(spaces + 1).join(' ') else ''\n    desc   = if task.description then \"# #{task.description}\" else ''\n    console.log \"sake #{name}#{spaces} #{desc}\"\n\n  if Object.keys(options).length > 1\n    console.log()\n    for own k,v of options\n      continue if isFunction v\n\n      if v.flag?\n        switches = \"#{v.letter}, #{v.flag}\"\n      else\n        switches = \"#{v.letter}\"\n      spaces = 18 - switches.length\n      spaces = if spaces > 0 then Array(spaces + 1).join(' ') else ''\n      console.log \"  #{switches}#{spaces} #{v.description ? ''}\"\n\n# Print an error and exit when attempting to use an invalid task/option.\nexport fatalError = (message) ->\n  console.error message + '\\n'\n  console.log 'To see a list of all tasks/options, run \"sake\"'\n  process.exit 1\n\nexport missingTask = (task) -> fatalError \"No such task: #{task}\"\n","import fs    from 'fs'\nimport sake  from 'sake-core'\nimport yargs from 'yargs'\n\nimport cache from './cache'\nimport load  from './load'\nimport init  from './init'\nimport {findSakefile, missingTask, printTasks} from './utils'\nimport {version} from '../package.json'\n\n\n# Run `sake`. Executes all of the tasks you pass, in order.  If no tasks are\n# passed, print the help screen. Keep a reference to the original directory\n# name, when running Cake tasks from subdirectories.\nexport default run = ->\n  # Save record of original directory\n  global.__originalDirname = fs.realpathSync '.'\n\n  # Process arguments\n  argv  = yargs.argv\n  tasks = argv._.slice 0  # Create a copy of tasks to execute\n  argv.arguments = argv._ # For backwards compatibility with cake\n\n  if argv.debug\n    process.env.VERBOSE = true\n\n  # Print Sake version\n  if argv.version or argv.v and not argv._.length\n    console.log \"#{version} (core: #{sake.version})\"\n    process.exit 0\n\n  # Search for sakefile\n  try\n    {dir, file} = findSakefile __originalDirname\n  catch err\n    if tasks[0] == 'init'\n      return init()\n    else\n      console.log(err.toString())\n      process.exit 1\n\n  # Change dir to match Sakefile location\n  process.chdir dir\n\n  # Install Sake globals\n  sake.install()\n\n  # Load Sakefile\n  unless cache.load dir, file\n    switch file\n      when 'Cakefile'\n        load.Cakefile dir, file\n      when 'Sakefile', 'Sakefile.js'\n        load.Sakefile dir, file\n      when 'Sakefile.ts'\n        load.SakefileTs dir, file\n\n  # Bail if no tasks specified\n  return printTasks dir, file unless argv._.length\n\n  # Bail if missing task\n  for task in tasks\n    unless sake.tasks[task]?\n      missingTask task\n\n  # Let's drink\n  sake.invoke tasks, argv, (err) ->\n    if err?\n      console.error err\n      process.exit 1\n","import run from './run'; run()\n"],"names":["transform","load","cache","error","require$$0","require$$1","hasOwn","map","parse","reduce","filter","isString","isObject","BufferStream","spawn","spawnSync","isArray","isFunction","isPromise","array","object","string","parallel","serial","sync","async","exec","toString","tasks","options","sake","init","run"],"mappings":"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"}