@stencil/core 4.45.1-dev.1790744939.423c579 → 4.45.1-dev.1790917749.556b091
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/index.cjs +179 -87
- package/cli/index.js +179 -87
- package/cli/package.json +1 -1
- package/compiler/package.json +1 -1
- package/compiler/stencil.js +191 -94
- package/dev-server/client/index.js +1 -1
- package/dev-server/client/package.json +1 -1
- package/dev-server/connector.html +2 -2
- package/dev-server/index.js +1 -1
- package/dev-server/package.json +1 -1
- package/dev-server/server-process.js +182 -90
- package/internal/app-data/package.json +1 -1
- package/internal/app-globals/package.json +1 -1
- package/internal/client/index.js +21 -4
- package/internal/client/package.json +1 -1
- package/internal/client/patch-browser.js +1 -1
- package/internal/client/shadow-css.js +1 -1
- package/internal/hydrate/index.js +199 -90
- package/internal/hydrate/package.json +1 -1
- package/internal/hydrate/runner.js +185 -91
- package/internal/package.json +1 -1
- package/internal/testing/index.js +198 -89
- package/internal/testing/package.json +1 -1
- package/mock-doc/index.cjs +7 -5
- package/mock-doc/index.d.ts +1 -1
- package/mock-doc/index.js +7 -5
- package/mock-doc/package.json +1 -1
- package/package.json +1 -1
- package/screenshot/index.js +178 -86
- package/screenshot/package.json +1 -1
- package/screenshot/pixel-match.js +1 -1
- package/sys/node/glob.js +1 -1
- package/sys/node/index.js +40 -40
- package/sys/node/package.json +1 -1
- package/sys/node/worker.js +1 -1
- package/testing/index.js +180 -88
- package/testing/package.json +1 -1
package/cli/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
Stencil CLI (CommonJS) v4.45.1-dev.
|
|
2
|
+
Stencil CLI (CommonJS) v4.45.1-dev.1790917749.556b091 | MIT Licensed | https://stenciljs.com
|
|
3
3
|
*/
|
|
4
4
|
"use strict";
|
|
5
5
|
var __create = Object.create;
|
|
@@ -111,6 +111,10 @@ var require_brace_expansion = __commonJS({
|
|
|
111
111
|
var escClose = "\0CLOSE" + Math.random() + "\0";
|
|
112
112
|
var escComma = "\0COMMA" + Math.random() + "\0";
|
|
113
113
|
var escPeriod = "\0PERIOD" + Math.random() + "\0";
|
|
114
|
+
var EXPANSION_MAX = 1e5;
|
|
115
|
+
var EXPANSION_MAX_LENGTH = 4e6;
|
|
116
|
+
var EXPANSION_MAX_DEPTH = 1e3;
|
|
117
|
+
var EXPANSION_MAX_REWRITES = 1e3;
|
|
114
118
|
function numeric(str) {
|
|
115
119
|
return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
|
|
116
120
|
}
|
|
@@ -120,33 +124,49 @@ var require_brace_expansion = __commonJS({
|
|
|
120
124
|
function unescapeBraces(str) {
|
|
121
125
|
return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
|
|
122
126
|
}
|
|
127
|
+
function pushAll(target, items) {
|
|
128
|
+
for (var i = 0; i < items.length; i++) {
|
|
129
|
+
target.push(items[i]);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
123
132
|
function parseCommaParts(str) {
|
|
124
|
-
if (!str)
|
|
125
|
-
return [""];
|
|
126
133
|
var parts = [];
|
|
127
|
-
var
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
134
|
+
var carry = "";
|
|
135
|
+
for (; ; ) {
|
|
136
|
+
var m = balanced("{", "}", str);
|
|
137
|
+
if (!m) {
|
|
138
|
+
var tail = str.split(",");
|
|
139
|
+
tail[0] = carry + tail[0];
|
|
140
|
+
pushAll(parts, tail);
|
|
141
|
+
return parts;
|
|
142
|
+
}
|
|
143
|
+
var pre = m.pre;
|
|
144
|
+
var body = m.body;
|
|
145
|
+
var post = m.post;
|
|
146
|
+
var p = pre.split(",");
|
|
147
|
+
p[0] = carry + p[0];
|
|
148
|
+
p[p.length - 1] += "{" + body + "}";
|
|
149
|
+
if (!post.length) {
|
|
150
|
+
pushAll(parts, p);
|
|
151
|
+
return parts;
|
|
152
|
+
}
|
|
153
|
+
carry = p.pop();
|
|
154
|
+
pushAll(parts, p);
|
|
155
|
+
str = post;
|
|
156
|
+
}
|
|
142
157
|
}
|
|
143
|
-
function expandTop(str) {
|
|
158
|
+
function expandTop(str, options) {
|
|
144
159
|
if (!str)
|
|
145
160
|
return [];
|
|
161
|
+
options = options || {};
|
|
162
|
+
var max = options.max == null ? EXPANSION_MAX : options.max;
|
|
163
|
+
var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
|
|
164
|
+
var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
|
|
165
|
+
var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
|
|
146
166
|
if (str.substr(0, 2) === "{}") {
|
|
147
167
|
str = "\\{\\}" + str.substr(2);
|
|
148
168
|
}
|
|
149
|
-
return expand2(escapeBraces(str), true).map(unescapeBraces);
|
|
169
|
+
return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
|
|
150
170
|
}
|
|
151
171
|
function embrace(str) {
|
|
152
172
|
return "{" + str + "}";
|
|
@@ -160,93 +180,165 @@ var require_brace_expansion = __commonJS({
|
|
|
160
180
|
function gte(i, y) {
|
|
161
181
|
return i >= y;
|
|
162
182
|
}
|
|
163
|
-
function
|
|
164
|
-
var
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
183
|
+
function combine(acc, pre, values, max, maxLength, dropEmpties) {
|
|
184
|
+
var out = [];
|
|
185
|
+
var length = 0;
|
|
186
|
+
for (var a = 0; a < acc.length; a++) {
|
|
187
|
+
for (var v = 0; v < values.length; v++) {
|
|
188
|
+
if (out.length >= max) return out;
|
|
189
|
+
var expansion = acc[a] + pre + values[v];
|
|
190
|
+
if (dropEmpties && !expansion) continue;
|
|
191
|
+
if (length + expansion.length > maxLength) return out;
|
|
192
|
+
out.push(expansion);
|
|
193
|
+
length += expansion.length;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return out;
|
|
197
|
+
}
|
|
198
|
+
function expandSequence(body, isAlphaSequence, max, maxLength) {
|
|
199
|
+
var n = body.split(/\.\./);
|
|
200
|
+
var N = [];
|
|
201
|
+
if (n[0] === void 0 || n[1] === void 0) {
|
|
202
|
+
return N;
|
|
203
|
+
}
|
|
204
|
+
var x = numeric(n[0]);
|
|
205
|
+
var y = numeric(n[1]);
|
|
206
|
+
var width = Math.max(n[0].length, n[1].length);
|
|
207
|
+
var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
|
|
208
|
+
var test = lte;
|
|
209
|
+
var reverse = y < x;
|
|
210
|
+
if (reverse) {
|
|
211
|
+
incr *= -1;
|
|
212
|
+
test = gte;
|
|
213
|
+
}
|
|
214
|
+
var pad = n.some(isPadded);
|
|
215
|
+
var length = 0;
|
|
216
|
+
for (var i = x; test(i, y) && N.length < max; i += incr) {
|
|
217
|
+
var c;
|
|
218
|
+
if (isAlphaSequence) {
|
|
219
|
+
c = String.fromCharCode(i);
|
|
220
|
+
if (c === "\\") {
|
|
221
|
+
c = "";
|
|
222
|
+
}
|
|
223
|
+
} else {
|
|
224
|
+
c = String(i);
|
|
225
|
+
if (pad) {
|
|
226
|
+
var need = width - c.length;
|
|
227
|
+
if (need > 0) {
|
|
228
|
+
var z = new Array(need + 1).join("0");
|
|
229
|
+
if (i < 0) {
|
|
230
|
+
c = "-" + z + c.slice(1);
|
|
231
|
+
} else {
|
|
232
|
+
c = z + c;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
if (length + c.length > maxLength) break;
|
|
238
|
+
N.push(c);
|
|
239
|
+
length += c.length;
|
|
240
|
+
}
|
|
241
|
+
return N;
|
|
242
|
+
}
|
|
243
|
+
function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
|
|
244
|
+
if (depth > maxDepth) {
|
|
245
|
+
return [str];
|
|
246
|
+
}
|
|
247
|
+
var acc = [""];
|
|
248
|
+
var rewrites = 0;
|
|
249
|
+
var dropEmpties = false;
|
|
250
|
+
var firstGroup = true;
|
|
251
|
+
for (; ; ) {
|
|
252
|
+
const m = balanced("{", "}", str);
|
|
253
|
+
if (!m) {
|
|
254
|
+
return combine(acc, str, [""], max, maxLength, dropEmpties);
|
|
255
|
+
}
|
|
256
|
+
const pre = m.pre;
|
|
257
|
+
if (/\$$/.test(pre)) {
|
|
258
|
+
acc = combine(
|
|
259
|
+
acc,
|
|
260
|
+
pre + "{" + m.body + "}",
|
|
261
|
+
[""],
|
|
262
|
+
max,
|
|
263
|
+
maxLength,
|
|
264
|
+
dropEmpties && !m.post.length
|
|
265
|
+
);
|
|
266
|
+
firstGroup = false;
|
|
267
|
+
if (!m.post.length) break;
|
|
268
|
+
str = m.post;
|
|
269
|
+
continue;
|
|
173
270
|
}
|
|
174
|
-
} else {
|
|
175
271
|
var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
|
|
176
272
|
var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
|
|
177
273
|
var isSequence = isNumericSequence || isAlphaSequence;
|
|
178
274
|
var isOptions = m.body.indexOf(",") >= 0;
|
|
179
275
|
if (!isSequence && !isOptions) {
|
|
180
|
-
if (m.post.match(/,(?!,).*\}/)) {
|
|
276
|
+
if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
|
|
277
|
+
rewrites++;
|
|
181
278
|
str = m.pre + "{" + m.body + escClose + m.post;
|
|
182
|
-
|
|
279
|
+
isTop = true;
|
|
280
|
+
continue;
|
|
183
281
|
}
|
|
184
|
-
return
|
|
282
|
+
return combine(
|
|
283
|
+
acc,
|
|
284
|
+
pre + "{" + m.body + "}" + m.post,
|
|
285
|
+
[""],
|
|
286
|
+
max,
|
|
287
|
+
maxLength,
|
|
288
|
+
dropEmpties
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
if (firstGroup) {
|
|
292
|
+
dropEmpties = isTop && !isSequence;
|
|
293
|
+
firstGroup = false;
|
|
185
294
|
}
|
|
186
|
-
var
|
|
295
|
+
var values;
|
|
187
296
|
if (isSequence) {
|
|
188
|
-
|
|
297
|
+
values = expandSequence(m.body, isAlphaSequence, max, maxLength);
|
|
189
298
|
} else {
|
|
190
|
-
n = parseCommaParts(m.body);
|
|
191
|
-
if (n.length === 1) {
|
|
192
|
-
n = expand2(n[0], false).map(embrace);
|
|
299
|
+
var n = parseCommaParts(m.body);
|
|
300
|
+
if (n.length === 1 && n[0] !== void 0) {
|
|
301
|
+
n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
|
|
193
302
|
if (n.length === 1) {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
303
|
+
acc = combine(
|
|
304
|
+
acc,
|
|
305
|
+
pre + n[0],
|
|
306
|
+
[""],
|
|
307
|
+
max,
|
|
308
|
+
maxLength,
|
|
309
|
+
dropEmpties && !m.post.length
|
|
310
|
+
);
|
|
311
|
+
if (!m.post.length) break;
|
|
312
|
+
str = m.post;
|
|
313
|
+
continue;
|
|
197
314
|
}
|
|
198
315
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
var width = Math.max(n[0].length, n[1].length);
|
|
205
|
-
var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
|
|
206
|
-
var test = lte;
|
|
207
|
-
var reverse = y < x;
|
|
208
|
-
if (reverse) {
|
|
209
|
-
incr *= -1;
|
|
210
|
-
test = gte;
|
|
316
|
+
var dropsEmpties = dropEmpties && !m.post.length && !pre;
|
|
317
|
+
for (var d = 0; dropsEmpties && d < acc.length; d++) {
|
|
318
|
+
if (acc[d]) {
|
|
319
|
+
dropsEmpties = false;
|
|
320
|
+
}
|
|
211
321
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
for (var
|
|
215
|
-
var
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
if (
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
c = String(i);
|
|
222
|
-
if (pad) {
|
|
223
|
-
var need = width - c.length;
|
|
224
|
-
if (need > 0) {
|
|
225
|
-
var z = new Array(need + 1).join("0");
|
|
226
|
-
if (i < 0)
|
|
227
|
-
c = "-" + z + c.slice(1);
|
|
228
|
-
else
|
|
229
|
-
c = z + c;
|
|
230
|
-
}
|
|
322
|
+
values = [];
|
|
323
|
+
var valuesLength = 0;
|
|
324
|
+
outer: for (var j = 0; j < n.length; j++) {
|
|
325
|
+
var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
|
|
326
|
+
for (var k = 0; k < expanded.length; k++) {
|
|
327
|
+
var v = expanded[k];
|
|
328
|
+
if (dropsEmpties && !v) continue;
|
|
329
|
+
if (values.length >= max || valuesLength + v.length > maxLength) {
|
|
330
|
+
break outer;
|
|
231
331
|
}
|
|
332
|
+
values.push(v);
|
|
333
|
+
valuesLength += v.length;
|
|
232
334
|
}
|
|
233
|
-
N.push(c);
|
|
234
|
-
}
|
|
235
|
-
} else {
|
|
236
|
-
N = [];
|
|
237
|
-
for (var j = 0; j < n.length; j++) {
|
|
238
|
-
N.push.apply(N, expand2(n[j], false));
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
for (var j = 0; j < N.length; j++) {
|
|
242
|
-
for (var k = 0; k < post.length; k++) {
|
|
243
|
-
var expansion = pre + N[j] + post[k];
|
|
244
|
-
if (!isTop || isSequence || expansion)
|
|
245
|
-
expansions.push(expansion);
|
|
246
335
|
}
|
|
247
336
|
}
|
|
337
|
+
acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
|
|
338
|
+
if (!m.post.length) break;
|
|
339
|
+
str = m.post;
|
|
248
340
|
}
|
|
249
|
-
return
|
|
341
|
+
return acc;
|
|
250
342
|
}
|
|
251
343
|
}
|
|
252
344
|
});
|
package/cli/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
Stencil CLI v4.45.1-dev.
|
|
2
|
+
Stencil CLI v4.45.1-dev.1790917749.556b091 | MIT Licensed | https://stenciljs.com
|
|
3
3
|
*/
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -115,6 +115,10 @@ var require_brace_expansion = __commonJS({
|
|
|
115
115
|
var escClose = "\0CLOSE" + Math.random() + "\0";
|
|
116
116
|
var escComma = "\0COMMA" + Math.random() + "\0";
|
|
117
117
|
var escPeriod = "\0PERIOD" + Math.random() + "\0";
|
|
118
|
+
var EXPANSION_MAX = 1e5;
|
|
119
|
+
var EXPANSION_MAX_LENGTH = 4e6;
|
|
120
|
+
var EXPANSION_MAX_DEPTH = 1e3;
|
|
121
|
+
var EXPANSION_MAX_REWRITES = 1e3;
|
|
118
122
|
function numeric(str) {
|
|
119
123
|
return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);
|
|
120
124
|
}
|
|
@@ -124,33 +128,49 @@ var require_brace_expansion = __commonJS({
|
|
|
124
128
|
function unescapeBraces(str) {
|
|
125
129
|
return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join(".");
|
|
126
130
|
}
|
|
131
|
+
function pushAll(target, items) {
|
|
132
|
+
for (var i = 0; i < items.length; i++) {
|
|
133
|
+
target.push(items[i]);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
127
136
|
function parseCommaParts(str) {
|
|
128
|
-
if (!str)
|
|
129
|
-
return [""];
|
|
130
137
|
var parts = [];
|
|
131
|
-
var
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
138
|
+
var carry = "";
|
|
139
|
+
for (; ; ) {
|
|
140
|
+
var m = balanced("{", "}", str);
|
|
141
|
+
if (!m) {
|
|
142
|
+
var tail = str.split(",");
|
|
143
|
+
tail[0] = carry + tail[0];
|
|
144
|
+
pushAll(parts, tail);
|
|
145
|
+
return parts;
|
|
146
|
+
}
|
|
147
|
+
var pre = m.pre;
|
|
148
|
+
var body = m.body;
|
|
149
|
+
var post = m.post;
|
|
150
|
+
var p = pre.split(",");
|
|
151
|
+
p[0] = carry + p[0];
|
|
152
|
+
p[p.length - 1] += "{" + body + "}";
|
|
153
|
+
if (!post.length) {
|
|
154
|
+
pushAll(parts, p);
|
|
155
|
+
return parts;
|
|
156
|
+
}
|
|
157
|
+
carry = p.pop();
|
|
158
|
+
pushAll(parts, p);
|
|
159
|
+
str = post;
|
|
160
|
+
}
|
|
146
161
|
}
|
|
147
|
-
function expandTop(str) {
|
|
162
|
+
function expandTop(str, options) {
|
|
148
163
|
if (!str)
|
|
149
164
|
return [];
|
|
165
|
+
options = options || {};
|
|
166
|
+
var max = options.max == null ? EXPANSION_MAX : options.max;
|
|
167
|
+
var maxLength = options.maxLength == null ? EXPANSION_MAX_LENGTH : options.maxLength;
|
|
168
|
+
var maxDepth = options.maxDepth == null ? EXPANSION_MAX_DEPTH : options.maxDepth;
|
|
169
|
+
var maxRewrites = options.maxRewrites == null ? EXPANSION_MAX_REWRITES : options.maxRewrites;
|
|
150
170
|
if (str.substr(0, 2) === "{}") {
|
|
151
171
|
str = "\\{\\}" + str.substr(2);
|
|
152
172
|
}
|
|
153
|
-
return expand2(escapeBraces(str), true).map(unescapeBraces);
|
|
173
|
+
return expand2(escapeBraces(str), max, maxLength, maxDepth, 0, maxRewrites, true).map(unescapeBraces);
|
|
154
174
|
}
|
|
155
175
|
function embrace(str) {
|
|
156
176
|
return "{" + str + "}";
|
|
@@ -164,93 +184,165 @@ var require_brace_expansion = __commonJS({
|
|
|
164
184
|
function gte(i, y) {
|
|
165
185
|
return i >= y;
|
|
166
186
|
}
|
|
167
|
-
function
|
|
168
|
-
var
|
|
169
|
-
var
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
187
|
+
function combine(acc, pre, values, max, maxLength, dropEmpties) {
|
|
188
|
+
var out = [];
|
|
189
|
+
var length = 0;
|
|
190
|
+
for (var a = 0; a < acc.length; a++) {
|
|
191
|
+
for (var v = 0; v < values.length; v++) {
|
|
192
|
+
if (out.length >= max) return out;
|
|
193
|
+
var expansion = acc[a] + pre + values[v];
|
|
194
|
+
if (dropEmpties && !expansion) continue;
|
|
195
|
+
if (length + expansion.length > maxLength) return out;
|
|
196
|
+
out.push(expansion);
|
|
197
|
+
length += expansion.length;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return out;
|
|
201
|
+
}
|
|
202
|
+
function expandSequence(body, isAlphaSequence, max, maxLength) {
|
|
203
|
+
var n = body.split(/\.\./);
|
|
204
|
+
var N = [];
|
|
205
|
+
if (n[0] === void 0 || n[1] === void 0) {
|
|
206
|
+
return N;
|
|
207
|
+
}
|
|
208
|
+
var x = numeric(n[0]);
|
|
209
|
+
var y = numeric(n[1]);
|
|
210
|
+
var width = Math.max(n[0].length, n[1].length);
|
|
211
|
+
var incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
|
|
212
|
+
var test = lte;
|
|
213
|
+
var reverse = y < x;
|
|
214
|
+
if (reverse) {
|
|
215
|
+
incr *= -1;
|
|
216
|
+
test = gte;
|
|
217
|
+
}
|
|
218
|
+
var pad = n.some(isPadded);
|
|
219
|
+
var length = 0;
|
|
220
|
+
for (var i = x; test(i, y) && N.length < max; i += incr) {
|
|
221
|
+
var c;
|
|
222
|
+
if (isAlphaSequence) {
|
|
223
|
+
c = String.fromCharCode(i);
|
|
224
|
+
if (c === "\\") {
|
|
225
|
+
c = "";
|
|
226
|
+
}
|
|
227
|
+
} else {
|
|
228
|
+
c = String(i);
|
|
229
|
+
if (pad) {
|
|
230
|
+
var need = width - c.length;
|
|
231
|
+
if (need > 0) {
|
|
232
|
+
var z = new Array(need + 1).join("0");
|
|
233
|
+
if (i < 0) {
|
|
234
|
+
c = "-" + z + c.slice(1);
|
|
235
|
+
} else {
|
|
236
|
+
c = z + c;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (length + c.length > maxLength) break;
|
|
242
|
+
N.push(c);
|
|
243
|
+
length += c.length;
|
|
244
|
+
}
|
|
245
|
+
return N;
|
|
246
|
+
}
|
|
247
|
+
function expand2(str, max, maxLength, maxDepth, depth, maxRewrites, isTop) {
|
|
248
|
+
if (depth > maxDepth) {
|
|
249
|
+
return [str];
|
|
250
|
+
}
|
|
251
|
+
var acc = [""];
|
|
252
|
+
var rewrites = 0;
|
|
253
|
+
var dropEmpties = false;
|
|
254
|
+
var firstGroup = true;
|
|
255
|
+
for (; ; ) {
|
|
256
|
+
const m = balanced("{", "}", str);
|
|
257
|
+
if (!m) {
|
|
258
|
+
return combine(acc, str, [""], max, maxLength, dropEmpties);
|
|
259
|
+
}
|
|
260
|
+
const pre = m.pre;
|
|
261
|
+
if (/\$$/.test(pre)) {
|
|
262
|
+
acc = combine(
|
|
263
|
+
acc,
|
|
264
|
+
pre + "{" + m.body + "}",
|
|
265
|
+
[""],
|
|
266
|
+
max,
|
|
267
|
+
maxLength,
|
|
268
|
+
dropEmpties && !m.post.length
|
|
269
|
+
);
|
|
270
|
+
firstGroup = false;
|
|
271
|
+
if (!m.post.length) break;
|
|
272
|
+
str = m.post;
|
|
273
|
+
continue;
|
|
177
274
|
}
|
|
178
|
-
} else {
|
|
179
275
|
var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
|
|
180
276
|
var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
|
|
181
277
|
var isSequence = isNumericSequence || isAlphaSequence;
|
|
182
278
|
var isOptions = m.body.indexOf(",") >= 0;
|
|
183
279
|
if (!isSequence && !isOptions) {
|
|
184
|
-
if (m.post.match(/,(?!,).*\}/)) {
|
|
280
|
+
if (rewrites < maxRewrites && m.post.match(/,(?!,).*\}/)) {
|
|
281
|
+
rewrites++;
|
|
185
282
|
str = m.pre + "{" + m.body + escClose + m.post;
|
|
186
|
-
|
|
283
|
+
isTop = true;
|
|
284
|
+
continue;
|
|
187
285
|
}
|
|
188
|
-
return
|
|
286
|
+
return combine(
|
|
287
|
+
acc,
|
|
288
|
+
pre + "{" + m.body + "}" + m.post,
|
|
289
|
+
[""],
|
|
290
|
+
max,
|
|
291
|
+
maxLength,
|
|
292
|
+
dropEmpties
|
|
293
|
+
);
|
|
294
|
+
}
|
|
295
|
+
if (firstGroup) {
|
|
296
|
+
dropEmpties = isTop && !isSequence;
|
|
297
|
+
firstGroup = false;
|
|
189
298
|
}
|
|
190
|
-
var
|
|
299
|
+
var values;
|
|
191
300
|
if (isSequence) {
|
|
192
|
-
|
|
301
|
+
values = expandSequence(m.body, isAlphaSequence, max, maxLength);
|
|
193
302
|
} else {
|
|
194
|
-
n = parseCommaParts(m.body);
|
|
195
|
-
if (n.length === 1) {
|
|
196
|
-
n = expand2(n[0], false).map(embrace);
|
|
303
|
+
var n = parseCommaParts(m.body);
|
|
304
|
+
if (n.length === 1 && n[0] !== void 0) {
|
|
305
|
+
n = expand2(n[0], max, maxLength, maxDepth, depth + 1, maxRewrites, false).map(embrace);
|
|
197
306
|
if (n.length === 1) {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
307
|
+
acc = combine(
|
|
308
|
+
acc,
|
|
309
|
+
pre + n[0],
|
|
310
|
+
[""],
|
|
311
|
+
max,
|
|
312
|
+
maxLength,
|
|
313
|
+
dropEmpties && !m.post.length
|
|
314
|
+
);
|
|
315
|
+
if (!m.post.length) break;
|
|
316
|
+
str = m.post;
|
|
317
|
+
continue;
|
|
201
318
|
}
|
|
202
319
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
var width = Math.max(n[0].length, n[1].length);
|
|
209
|
-
var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
|
|
210
|
-
var test = lte;
|
|
211
|
-
var reverse = y < x;
|
|
212
|
-
if (reverse) {
|
|
213
|
-
incr *= -1;
|
|
214
|
-
test = gte;
|
|
320
|
+
var dropsEmpties = dropEmpties && !m.post.length && !pre;
|
|
321
|
+
for (var d = 0; dropsEmpties && d < acc.length; d++) {
|
|
322
|
+
if (acc[d]) {
|
|
323
|
+
dropsEmpties = false;
|
|
324
|
+
}
|
|
215
325
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
for (var
|
|
219
|
-
var
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
if (
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
c = String(i);
|
|
226
|
-
if (pad) {
|
|
227
|
-
var need = width - c.length;
|
|
228
|
-
if (need > 0) {
|
|
229
|
-
var z = new Array(need + 1).join("0");
|
|
230
|
-
if (i < 0)
|
|
231
|
-
c = "-" + z + c.slice(1);
|
|
232
|
-
else
|
|
233
|
-
c = z + c;
|
|
234
|
-
}
|
|
326
|
+
values = [];
|
|
327
|
+
var valuesLength = 0;
|
|
328
|
+
outer: for (var j = 0; j < n.length; j++) {
|
|
329
|
+
var expanded = expand2(n[j], max, maxLength, maxDepth, depth + 1, maxRewrites, false);
|
|
330
|
+
for (var k = 0; k < expanded.length; k++) {
|
|
331
|
+
var v = expanded[k];
|
|
332
|
+
if (dropsEmpties && !v) continue;
|
|
333
|
+
if (values.length >= max || valuesLength + v.length > maxLength) {
|
|
334
|
+
break outer;
|
|
235
335
|
}
|
|
336
|
+
values.push(v);
|
|
337
|
+
valuesLength += v.length;
|
|
236
338
|
}
|
|
237
|
-
N.push(c);
|
|
238
|
-
}
|
|
239
|
-
} else {
|
|
240
|
-
N = [];
|
|
241
|
-
for (var j = 0; j < n.length; j++) {
|
|
242
|
-
N.push.apply(N, expand2(n[j], false));
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
for (var j = 0; j < N.length; j++) {
|
|
246
|
-
for (var k = 0; k < post.length; k++) {
|
|
247
|
-
var expansion = pre + N[j] + post[k];
|
|
248
|
-
if (!isTop || isSequence || expansion)
|
|
249
|
-
expansions.push(expansion);
|
|
250
339
|
}
|
|
251
340
|
}
|
|
341
|
+
acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
|
|
342
|
+
if (!m.post.length) break;
|
|
343
|
+
str = m.post;
|
|
252
344
|
}
|
|
253
|
-
return
|
|
345
|
+
return acc;
|
|
254
346
|
}
|
|
255
347
|
}
|
|
256
348
|
});
|
package/cli/package.json
CHANGED