@stencil/core 4.45.1 → 4.45.2-dev.1791263369.8b082e0

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.
@@ -1,5 +1,5 @@
1
1
  /*
2
- Stencil Screenshot v4.45.1 | MIT Licensed | https://stenciljs.com
2
+ Stencil Screenshot v4.45.2-dev.1791263369.8b082e0 | 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 m = balanced("{", "}", str);
128
- if (!m)
129
- return str.split(",");
130
- var pre = m.pre;
131
- var body = m.body;
132
- var post = m.post;
133
- var p = pre.split(",");
134
- p[p.length - 1] += "{" + body + "}";
135
- var postParts = parseCommaParts(post);
136
- if (post.length) {
137
- p[p.length - 1] += postParts.shift();
138
- p.push.apply(p, postParts);
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 expand2(str, isTop) {
164
- var expansions = [];
165
- var m = balanced("{", "}", str);
166
- if (!m) return [str];
167
- var pre = m.pre;
168
- var post = m.post.length ? expand2(m.post, false) : [""];
169
- if (/\$$/.test(m.pre)) {
170
- for (var k = 0; k < post.length; k++) {
171
- var expansion = pre + "{" + m.body + "}" + post[k];
172
- expansions.push(expansion);
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
- return expand2(str);
279
+ isTop = true;
280
+ continue;
183
281
  }
184
- return [str];
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 n;
295
+ var values;
187
296
  if (isSequence) {
188
- n = m.body.split(/\.\./);
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
- return post.map(function(p) {
195
- return m.pre + n[0] + p;
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
- var N;
201
- if (isSequence) {
202
- var x = numeric(n[0]);
203
- var y = numeric(n[1]);
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
- var pad = n.some(isPadded);
213
- N = [];
214
- for (var i = x; test(i, y); i += incr) {
215
- var c;
216
- if (isAlphaSequence) {
217
- c = String.fromCharCode(i);
218
- if (c === "\\")
219
- c = "";
220
- } else {
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 expansions;
341
+ return acc;
250
342
  }
251
343
  }
252
344
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/core/screenshot",
3
- "version": "4.45.1",
3
+ "version": "4.45.2-dev.1791263369.8b082e0",
4
4
  "description": "Stencil Screenshot.",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -1,5 +1,5 @@
1
1
  /*
2
- Stencil Screenshot Pixel Match v4.45.1 | MIT Licensed | https://stenciljs.com
2
+ Stencil Screenshot Pixel Match v4.45.2-dev.1791263369.8b082e0 | MIT Licensed | https://stenciljs.com
3
3
  */
4
4
  "use strict";
5
5
  var __create = Object.create;