| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,7 +1,11 @@ | |||
| 1 | 1 | "use strict"; | |
| 2 | 2 | var __getOwnPropNames = Object.getOwnPropertyNames; | |
| 3 | 3 | var __commonJS = (cb, mod) => function __require() { | |
| 4 | - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; | ||
| 4 | + try { | ||
| 5 | + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; | ||
| 6 | + } catch (e) { | ||
| 7 | + throw mod = 0, e; | ||
| 8 | + } | ||
| 5 | 9 | }; | |
| 6 | 10 | ||
| 7 | 11 | // node_modules/balanced-match/dist/commonjs/index.js | |
@@ -71,7 +75,7 @@ var require_commonjs2 = __commonJS({ | |||
| 71 | 75 | "node_modules/brace-expansion/dist/commonjs/index.js"(exports2) { | |
| 72 | 76 | "use strict"; | |
| 73 | 77 | Object.defineProperty(exports2, "__esModule", { value: true }); | |
| 74 | - exports2.EXPANSION_MAX = void 0; | ||
| 78 | + exports2.EXPANSION_MAX_LENGTH = exports2.EXPANSION_MAX = void 0; | ||
| 75 | 79 | exports2.expand = expand; | |
| 76 | 80 | var balanced_match_1 = require_commonjs(); | |
| 77 | 81 | var escSlash = "\0SLASH" + Math.random() + "\0"; | |
@@ -90,6 +94,7 @@ var require_commonjs2 = __commonJS({ | |||
| 90 | 94 | var commaPattern = /\\,/g; | |
| 91 | 95 | var periodPattern = /\\\./g; | |
| 92 | 96 | exports2.EXPANSION_MAX = 1e5; | |
| 97 | + exports2.EXPANSION_MAX_LENGTH = 4e6; | ||
| 93 | 98 | function numeric(str) { | |
| 94 | 99 | return !isNaN(str) ? parseInt(str, 10) : str.charCodeAt(0); | |
| 95 | 100 | } | |
@@ -124,11 +129,11 @@ var require_commonjs2 = __commonJS({ | |||
| 124 | 129 | if (!str) { | |
| 125 | 130 | return []; | |
| 126 | 131 | } | |
| 127 | - const { max = exports2.EXPANSION_MAX } = options; | ||
| 132 | + const { max = exports2.EXPANSION_MAX, maxLength = exports2.EXPANSION_MAX_LENGTH } = options; | ||
| 128 | 133 | if (str.slice(0, 2) === "{}") { | |
| 129 | 134 | str = "\\{\\}" + str.slice(2); | |
| 130 | 135 | } | |
| 131 | - return expand_(escapeBraces(str), max, true).map(unescapeBraces); | ||
| 136 | + return expand_(escapeBraces(str), max, maxLength, true).map(unescapeBraces); | ||
| 132 | 137 | } | |
| 133 | 138 | function embrace(str) { | |
| 134 | 139 | return "{" + str + "}"; | |
@@ -142,95 +147,147 @@ var require_commonjs2 = __commonJS({ | |||
| 142 | 147 | function gte(i, y) { | |
| 143 | 148 | return i >= y; | |
| 144 | 149 | } | |
| 145 | - function expand_(str, max, isTop) { | ||
| 146 | - const expansions = []; | ||
| 147 | - const m = (0, balanced_match_1.balanced)("{", "}", str); | ||
| 148 | - if (!m) | ||
| 149 | - return [str]; | ||
| 150 | - const pre = m.pre; | ||
| 151 | - const post = m.post.length ? expand_(m.post, max, false) : [""]; | ||
| 152 | - if (/\$$/.test(m.pre)) { | ||
| 153 | - for (let k = 0; k < post.length && k < max; k++) { | ||
| 154 | - const expansion = pre + "{" + m.body + "}" + post[k]; | ||
| 155 | - expansions.push(expansion); | ||
| 150 | + function combine(acc, pre, values, max, maxLength, dropEmpties) { | ||
| 151 | + const out = []; | ||
| 152 | + let length = 0; | ||
| 153 | + for (let a = 0; a < acc.length; a++) { | ||
| 154 | + for (let v = 0; v < values.length; v++) { | ||
| 155 | + if (out.length >= max) | ||
| 156 | + return out; | ||
| 157 | + const expansion = acc[a] + pre + values[v]; | ||
| 158 | + if (dropEmpties && !expansion) | ||
| 159 | + continue; | ||
| 160 | + if (length + expansion.length > maxLength) | ||
| 161 | + return out; | ||
| 162 | + out.push(expansion); | ||
| 163 | + length += expansion.length; | ||
| 164 | + } | ||
| 165 | + } | ||
| 166 | + return out; | ||
| 167 | + } | ||
| 168 | + function expandSequence(body, isAlphaSequence, max, maxLength) { | ||
| 169 | + const n = body.split(/\.\./); | ||
| 170 | + const N = []; | ||
| 171 | + if (n[0] === void 0 || n[1] === void 0) { | ||
| 172 | + return N; | ||
| 173 | + } | ||
| 174 | + const x = numeric(n[0]); | ||
| 175 | + const y = numeric(n[1]); | ||
| 176 | + const width = Math.max(n[0].length, n[1].length); | ||
| 177 | + let incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1; | ||
| 178 | + let test = lte; | ||
| 179 | + const reverse = y < x; | ||
| 180 | + if (reverse) { | ||
| 181 | + incr *= -1; | ||
| 182 | + test = gte; | ||
| 183 | + } | ||
| 184 | + const pad = n.some(isPadded); | ||
| 185 | + let length = 0; | ||
| 186 | + for (let i = x; test(i, y) && N.length < max; i += incr) { | ||
| 187 | + let c; | ||
| 188 | + if (isAlphaSequence) { | ||
| 189 | + c = String.fromCharCode(i); | ||
| 190 | + if (c === "\\") { | ||
| 191 | + c = ""; | ||
| 192 | + } | ||
| 193 | + } else { | ||
| 194 | + c = String(i); | ||
| 195 | + if (pad) { | ||
| 196 | + const need = width - c.length; | ||
| 197 | + if (need > 0) { | ||
| 198 | + const z = new Array(need + 1).join("0"); | ||
| 199 | + if (i < 0) { | ||
| 200 | + c = "-" + z + c.slice(1); | ||
| 201 | + } else { | ||
| 202 | + c = z + c; | ||
| 203 | + } | ||
| 204 | + } | ||
| 205 | + } | ||
| 206 | + } | ||
| 207 | + if (length + c.length > maxLength) | ||
| 208 | + break; | ||
| 209 | + N.push(c); | ||
| 210 | + length += c.length; | ||
| 211 | + } | ||
| 212 | + return N; | ||
| 213 | + } | ||
| 214 | + function expand_(str, max, maxLength, isTop) { | ||
| 215 | + let acc = [""]; | ||
| 216 | + let dropEmpties = false; | ||
| 217 | + let firstGroup = true; | ||
| 218 | + for (; ; ) { | ||
| 219 | + const m = (0, balanced_match_1.balanced)("{", "}", str); | ||
| 220 | + if (!m) { | ||
| 221 | + return combine(acc, str, [""], max, maxLength, dropEmpties); | ||
| 222 | + } | ||
| 223 | + const pre = m.pre; | ||
| 224 | + if (/\$$/.test(pre)) { | ||
| 225 | + acc = combine(acc, pre + "{" + m.body + "}", [""], max, maxLength, dropEmpties && !m.post.length); | ||
| 226 | + firstGroup = false; | ||
| 227 | + if (!m.post.length) | ||
| 228 | + break; | ||
| 229 | + str = m.post; | ||
| 230 | + continue; | ||
| 156 | 231 | } | |
| 157 | - } else { | ||
| 158 | 232 | const isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); | |
| 159 | 233 | const isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); | |
| 160 | 234 | const isSequence = isNumericSequence || isAlphaSequence; | |
| 161 | 235 | const isOptions = m.body.indexOf(",") >= 0; | |
| 162 | 236 | if (!isSequence && !isOptions) { | |
| 163 | 237 | if (m.post.match(/,(?!,).*\}/)) { | |
| 164 | 238 | str = m.pre + "{" + m.body + escClose + m.post; | |
| 165 | - return expand_(str, max, true); | ||
| 239 | + isTop = true; | ||
| 240 | + continue; | ||
| 166 | 241 | } | |
| 167 | - return [str]; | ||
| 242 | + return combine(acc, pre + "{" + m.body + "}" + m.post, [""], max, maxLength, dropEmpties); | ||
| 168 | 243 | } | |
| 169 | - let n; | ||
| 244 | + if (firstGroup) { | ||
| 245 | + dropEmpties = isTop && !isSequence; | ||
| 246 | + firstGroup = false; | ||
| 247 | + } | ||
| 248 | + let values; | ||
| 170 | 249 | if (isSequence) { | |
| 171 | - n = m.body.split(/\.\./); | ||
| 250 | + values = expandSequence(m.body, isAlphaSequence, max, maxLength); | ||
| 172 | 251 | } else { | |
| 173 | - n = parseCommaParts(m.body); | ||
| 252 | + let n = parseCommaParts(m.body); | ||
| 174 | 253 | if (n.length === 1 && n[0] !== void 0) { | |
| 175 | - n = expand_(n[0], max, false).map(embrace); | ||
| 254 | + n = expand_(n[0], max, maxLength, false).map(embrace); | ||
| 176 | 255 | if (n.length === 1) { | |
| 177 | - return post.map((p) => m.pre + n[0] + p); | ||
| 256 | + acc = combine(acc, pre + n[0], [""], max, maxLength, dropEmpties && !m.post.length); | ||
| 257 | + if (!m.post.length) | ||
| 258 | + break; | ||
| 259 | + str = m.post; | ||
| 260 | + continue; | ||
| 178 | 261 | } | |
| 179 | 262 | } | |
| 180 | - } | ||
| 181 | - let N; | ||
| 182 | - if (isSequence && n[0] !== void 0 && n[1] !== void 0) { | ||
| 183 | - const x = numeric(n[0]); | ||
| 184 | - const y = numeric(n[1]); | ||
| 185 | - const width = Math.max(n[0].length, n[1].length); | ||
| 186 | - let incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1; | ||
| 187 | - let test = lte; | ||
| 188 | - const reverse = y < x; | ||
| 189 | - if (reverse) { | ||
| 190 | - incr *= -1; | ||
| 191 | - test = gte; | ||
| 192 | - } | ||
| 193 | - const pad = n.some(isPadded); | ||
| 194 | - N = []; | ||
| 195 | - for (let i = x; test(i, y); i += incr) { | ||
| 196 | - let c; | ||
| 197 | - if (isAlphaSequence) { | ||
| 198 | - c = String.fromCharCode(i); | ||
| 199 | - if (c === "\\") { | ||
| 200 | - c = ""; | ||
| 201 | - } | ||
| 202 | - } else { | ||
| 203 | - c = String(i); | ||
| 204 | - if (pad) { | ||
| 205 | - const need = width - c.length; | ||
| 206 | - if (need > 0) { | ||
| 207 | - const z = new Array(need + 1).join("0"); | ||
| 208 | - if (i < 0) { | ||
| 209 | - c = "-" + z + c.slice(1); | ||
| 210 | - } else { | ||
| 211 | - c = z + c; | ||
| 212 | - } | ||
| 213 | - } | ||
| 214 | - } | ||
| 263 | + let dropsEmpties = dropEmpties && !m.post.length && !pre; | ||
| 264 | + for (let d = 0; dropsEmpties && d < acc.length; d++) { | ||
| 265 | + if (acc[d]) { | ||
| 266 | + dropsEmpties = false; | ||
| 215 | 267 | } | |
| 216 | - N.push(c); | ||
| 217 | - } | ||
| 218 | - } else { | ||
| 219 | - N = []; | ||
| 220 | - for (let j = 0; j < n.length; j++) { | ||
| 221 | - N.push.apply(N, expand_(n[j], max, false)); | ||
| 222 | 268 | } | |
| 223 | - } | ||
| 224 | - for (let j = 0; j < N.length; j++) { | ||
| 225 | - for (let k = 0; k < post.length && expansions.length < max; k++) { | ||
| 226 | - const expansion = pre + N[j] + post[k]; | ||
| 227 | - if (!isTop || isSequence || expansion) { | ||
| 228 | - expansions.push(expansion); | ||
| 269 | + values = []; | ||
| 270 | + let valuesLength = 0; | ||
| 271 | + outer: for (let j = 0; j < n.length; j++) { | ||
| 272 | + const expanded = expand_(n[j], max, maxLength, false); | ||
| 273 | + for (let k = 0; k < expanded.length; k++) { | ||
| 274 | + const v = expanded[k]; | ||
| 275 | + if (dropsEmpties && !v) | ||
| 276 | + continue; | ||
| 277 | + if (values.length >= max || valuesLength + v.length > maxLength) { | ||
| 278 | + break outer; | ||
| 279 | + } | ||
| 280 | + values.push(v); | ||
| 281 | + valuesLength += v.length; | ||
| 229 | 282 | } | |
| 230 | 283 | } | |
| 231 | 284 | } | |
| 285 | + acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length); | ||
| 286 | + if (!m.post.length) | ||
| 287 | + break; | ||
| 288 | + str = m.post; | ||
| 232 | 289 | } | |
| 233 | - return expansions; | ||
| 290 | + return acc; | ||
| 234 | 291 | } | |
| 235 | 292 | } | |
| 236 | 293 | }); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments