1 line
17 KiB
JSON
1 line
17 KiB
JSON
{"ast":null,"code":"var concatMap = require('concat-map');\n\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\nvar escSlash = '\\0SLASH' + Math.random() + '\\0';\nvar escOpen = '\\0OPEN' + Math.random() + '\\0';\nvar escClose = '\\0CLOSE' + Math.random() + '\\0';\nvar escComma = '\\0COMMA' + Math.random() + '\\0';\nvar escPeriod = '\\0PERIOD' + Math.random() + '\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash).split('\\\\{').join(escOpen).split('\\\\}').join(escClose).split('\\\\,').join(escComma).split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\').split(escOpen).join('{').split(escClose).join('}').split(escComma).join(',').split(escPeriod).join('.');\n} // Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\n\n\nfunction parseCommaParts(str) {\n if (!str) return [''];\n var parts = [];\n var m = balanced('{', '}', str);\n if (!m) return str.split(',');\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n p[p.length - 1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n\n if (post.length) {\n p[p.length - 1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str) return []; // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\n\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\n\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n\n return [str];\n }\n\n var n;\n\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n\n if (n.length === 1) {\n var post = m.post.length ? expand(m.post, false) : [''];\n return post.map(function (p) {\n return m.pre + n[0] + p;\n });\n }\n }\n } // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n\n\n var pre = m.pre;\n var post = m.post.length ? expand(m.post, false) : [''];\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length);\n var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;\n var test = lte;\n var reverse = y < x;\n\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n\n var pad = n.some(isPadded);\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\') c = '';\n } else {\n c = String(i);\n\n if (pad) {\n var need = width - c.length;\n\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0) c = '-' + z + c.slice(1);else c = z + c;\n }\n }\n }\n\n N.push(c);\n }\n } else {\n N = concatMap(n, function (el) {\n return expand(el, false);\n });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion) expansions.push(expansion);\n }\n }\n\n return expansions;\n}","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/brace-expansion/index.js"],"names":["concatMap","require","balanced","module","exports","expandTop","escSlash","Math","random","escOpen","escClose","escComma","escPeriod","numeric","str","parseInt","charCodeAt","escapeBraces","split","join","unescapeBraces","parseCommaParts","parts","m","pre","body","post","p","length","postParts","shift","push","apply","substr","expand","map","identity","e","embrace","isPadded","el","test","lte","i","y","gte","isTop","expansions","isNumericSequence","isAlphaSequence","isSequence","isOptions","indexOf","match","n","N","x","width","max","incr","abs","reverse","pad","some","c","String","fromCharCode","need","z","Array","slice","j","k","expansion"],"mappings":"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","sourcesContent":["var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n"]},"metadata":{},"sourceType":"script"} |