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