cypress 13.17.0 → 14.0.0
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/angular/README.md +5 -0
- package/angular/angular/README.md +5 -0
- package/angular/angular/dist/index.d.ts +11 -2
- package/angular/angular/dist/index.js +944 -4
- package/angular/angular/package.json +16 -9
- package/angular/dist/index.d.ts +11 -2
- package/angular/dist/index.js +944 -4
- package/angular/package.json +16 -9
- package/lib/cli.js +1 -30
- package/lib/exec/spawn.js +17 -7
- package/mount-utils/dist/index.d.ts +0 -28
- package/mount-utils/dist/index.js +0 -27
- package/mount-utils/mount-utils/dist/index.d.ts +0 -28
- package/mount-utils/mount-utils/dist/index.js +0 -27
- package/package.json +5 -23
- package/react/README.md +5 -0
- package/react/dist/cypress-react.cjs.js +21 -676
- package/react/dist/cypress-react.esm-bundler.js +22 -676
- package/react/dist/index.d.ts +13 -30
- package/react/package.json +13 -15
- package/react/react/README.md +5 -0
- package/react/react/dist/cypress-react.cjs.js +21 -676
- package/react/react/dist/cypress-react.esm-bundler.js +22 -676
- package/react/react/dist/index.d.ts +13 -30
- package/react/react/package.json +13 -15
- package/svelte/README.md +6 -2
- package/svelte/dist/cypress-svelte.cjs.js +12 -12
- package/svelte/dist/cypress-svelte.esm-bundler.js +12 -12
- package/svelte/dist/index.d.ts +8 -179
- package/svelte/package.json +2 -2
- package/svelte/svelte/README.md +6 -2
- package/svelte/svelte/dist/cypress-svelte.cjs.js +12 -12
- package/svelte/svelte/dist/cypress-svelte.esm-bundler.js +12 -12
- package/svelte/svelte/dist/index.d.ts +8 -179
- package/svelte/svelte/package.json +2 -2
- package/types/cypress.d.ts +32 -49
- package/types/net-stubbing.d.ts +2 -7
- package/vue/dist/cypress-vue.cjs.js +380 -275
- package/vue/dist/cypress-vue.esm-bundler.js +382 -276
- package/vue/dist/index.d.ts +61 -78
- package/vue/package.json +2 -5
- package/vue/vue/dist/cypress-vue.cjs.js +380 -275
- package/vue/vue/dist/cypress-vue.esm-bundler.js +382 -276
- package/vue/vue/dist/index.d.ts +61 -78
- package/vue/vue/package.json +2 -5
- package/angular-signals/README.md +0 -11
- package/angular-signals/angular-signals/README.md +0 -11
- package/angular-signals/angular-signals/dist/index.d.ts +0 -136
- package/angular-signals/angular-signals/dist/index.js +0 -1861
- package/angular-signals/angular-signals/package.json +0 -74
- package/angular-signals/dist/index.d.ts +0 -136
- package/angular-signals/dist/index.js +0 -1861
- package/angular-signals/package.json +0 -74
- package/react18/README.md +0 -7
- package/react18/dist/cypress-react.cjs.js +0 -597
- package/react18/dist/cypress-react.esm-bundler.js +0 -574
- package/react18/dist/index.d.ts +0 -78
- package/react18/package.json +0 -71
- package/react18/react18/README.md +0 -7
- package/react18/react18/dist/cypress-react.cjs.js +0 -597
- package/react18/react18/dist/cypress-react.esm-bundler.js +0 -574
- package/react18/react18/dist/index.d.ts +0 -78
- package/react18/react18/package.json +0 -71
- package/vue2/README.md +0 -7
- package/vue2/dist/cypress-vue2.cjs.js +0 -20045
- package/vue2/dist/cypress-vue2.esm-bundler.js +0 -20042
- package/vue2/dist/index.d.ts +0 -207
- package/vue2/package.json +0 -65
- package/vue2/vue2/README.md +0 -7
- package/vue2/vue2/dist/cypress-vue2.cjs.js +0 -20045
- package/vue2/vue2/dist/cypress-vue2.esm-bundler.js +0 -20042
- package/vue2/vue2/dist/index.d.ts +0 -207
- package/vue2/vue2/package.json +0 -65
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
/**
|
3
3
|
* @cypress/vue v0.0.0-development
|
4
|
-
* (c)
|
4
|
+
* (c) 2025 Cypress.io
|
5
5
|
* Released under the MIT License
|
6
6
|
*/
|
7
7
|
|
@@ -44,8 +44,6 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
44
44
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
45
45
|
PERFORMANCE OF THIS SOFTWARE.
|
46
46
|
***************************************************************************** */
|
47
|
-
/* global Reflect, Promise, SuppressedError, Symbol */
|
48
|
-
|
49
47
|
|
50
48
|
function __rest(s, e) {
|
51
49
|
var t = {};
|
@@ -77,13 +75,6 @@ const getContainerEl = () => {
|
|
77
75
|
}
|
78
76
|
throw Error(`No element found that matches selector ${ROOT_SELECTOR}. Please add a root element with data-cy-root attribute to your "component-index.html" file so that Cypress can attach your component to the DOM.`);
|
79
77
|
};
|
80
|
-
function checkForRemovedStyleOptions(mountingOptions) {
|
81
|
-
for (const key of ['cssFile', 'cssFiles', 'style', 'styles', 'stylesheet', 'stylesheets']) {
|
82
|
-
if (mountingOptions[key]) {
|
83
|
-
Cypress.utils.throwErrByPath('mount.removed_style_mounting_options', key);
|
84
|
-
}
|
85
|
-
}
|
86
|
-
}
|
87
78
|
/**
|
88
79
|
* Utility function to register CT side effects and run cleanup code during the "test:before:run" Cypress hook
|
89
80
|
* @param optionalCallback Callback to be called before the next test runs
|
@@ -127,7 +118,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
127
118
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
128
119
|
PERFORMANCE OF THIS SOFTWARE.
|
129
120
|
***************************************************************************** */
|
130
|
-
/* global Reflect, Promise */
|
121
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
131
122
|
|
132
123
|
var extendStatics = function(d, b) {
|
133
124
|
extendStatics = Object.setPrototypeOf ||
|
@@ -201,7 +192,12 @@ function __spreadArray(to, from, pack) {
|
|
201
192
|
}
|
202
193
|
}
|
203
194
|
return to.concat(ar || Array.prototype.slice.call(from));
|
204
|
-
}
|
195
|
+
}
|
196
|
+
|
197
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
198
|
+
var e = new Error(message);
|
199
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
200
|
+
};
|
205
201
|
|
206
202
|
var Pluggable = /** @class */ (function () {
|
207
203
|
function Pluggable() {
|
@@ -301,12 +297,30 @@ function mergeGlobalProperties(mountGlobal) {
|
|
301
297
|
var isObject = function (obj) {
|
302
298
|
return !!obj && typeof obj === 'object';
|
303
299
|
};
|
300
|
+
function isClass(obj) {
|
301
|
+
if (!(obj instanceof Object))
|
302
|
+
return;
|
303
|
+
var isCtorClass = obj.constructor && obj.constructor.toString().substring(0, 5) === 'class';
|
304
|
+
if (!('prototype' in obj)) {
|
305
|
+
return isCtorClass;
|
306
|
+
}
|
307
|
+
var prototype = obj.prototype;
|
308
|
+
var isPrototypeCtorClass = prototype.constructor &&
|
309
|
+
prototype.constructor.toString &&
|
310
|
+
prototype.constructor.toString().substring(0, 5) === 'class';
|
311
|
+
return isCtorClass || isPrototypeCtorClass;
|
312
|
+
}
|
304
313
|
// https://stackoverflow.com/a/48218209
|
305
314
|
var mergeDeep = function (target, source) {
|
315
|
+
var _a;
|
306
316
|
if (!isObject(target) || !isObject(source)) {
|
307
317
|
return source;
|
308
318
|
}
|
309
|
-
Object.keys(source)
|
319
|
+
Object.keys(source)
|
320
|
+
.concat(isClass(source)
|
321
|
+
? Object.getOwnPropertyNames((_a = Object.getPrototypeOf(source)) !== null && _a !== void 0 ? _a : {})
|
322
|
+
: Object.getOwnPropertyNames(source))
|
323
|
+
.forEach(function (key) {
|
310
324
|
var targetValue = target[key];
|
311
325
|
var sourceValue = source[key];
|
312
326
|
if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {
|
@@ -391,6 +405,20 @@ function hasSetupState(vm) {
|
|
391
405
|
function isScriptSetup(vm) {
|
392
406
|
return (vm && vm.$.setupState.__isScriptSetup);
|
393
407
|
}
|
408
|
+
var _globalThis;
|
409
|
+
var getGlobalThis = function () {
|
410
|
+
return (_globalThis ||
|
411
|
+
(_globalThis =
|
412
|
+
typeof globalThis !== 'undefined'
|
413
|
+
? globalThis
|
414
|
+
: typeof self !== 'undefined'
|
415
|
+
? self
|
416
|
+
: typeof window !== 'undefined'
|
417
|
+
? window
|
418
|
+
: typeof global !== 'undefined'
|
419
|
+
? global
|
420
|
+
: {}));
|
421
|
+
};
|
394
422
|
|
395
423
|
var ignorableKeyModifiers = [
|
396
424
|
'stop',
|
@@ -1675,19 +1703,15 @@ function stringifyNode(node) {
|
|
1675
1703
|
: new XMLSerializer().serializeToString(node);
|
1676
1704
|
}
|
1677
1705
|
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
};
|
1706
|
+
function getDefaultExportFromCjs (x) {
|
1707
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
1708
|
+
}
|
1709
|
+
|
1710
|
+
var js = {exports: {}};
|
1683
1711
|
|
1684
1712
|
var src = {};
|
1685
1713
|
|
1686
|
-
var
|
1687
|
-
var javascript = {
|
1688
|
-
get exports(){ return javascriptExports; },
|
1689
|
-
set exports(v){ javascriptExports = v; },
|
1690
|
-
};
|
1714
|
+
var javascript = {exports: {}};
|
1691
1715
|
|
1692
1716
|
var beautifier$2 = {};
|
1693
1717
|
|
@@ -2179,8 +2203,8 @@ function requireAcorn () {
|
|
2179
2203
|
// in javascript, these two differ
|
2180
2204
|
// in python they are the same, different methods are called on them
|
2181
2205
|
exports.lineBreak = new RegExp('\r\n|' + exports.newline.source);
|
2182
|
-
exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g');
|
2183
|
-
} (acorn));
|
2206
|
+
exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g');
|
2207
|
+
} (acorn));
|
2184
2208
|
return acorn;
|
2185
2209
|
}
|
2186
2210
|
|
@@ -3348,6 +3372,7 @@ function requireTokenizer$1 () {
|
|
3348
3372
|
|
3349
3373
|
token = token || this._read_non_javascript(c);
|
3350
3374
|
token = token || this._read_string(c);
|
3375
|
+
token = token || this._read_pair(c, this._input.peek(1)); // Issue #2062 hack for record type '#{'
|
3351
3376
|
token = token || this._read_word(previous_token);
|
3352
3377
|
token = token || this._read_singles(c);
|
3353
3378
|
token = token || this._read_comment(c);
|
@@ -3406,6 +3431,19 @@ function requireTokenizer$1 () {
|
|
3406
3431
|
return token;
|
3407
3432
|
};
|
3408
3433
|
|
3434
|
+
Tokenizer.prototype._read_pair = function(c, d) {
|
3435
|
+
var token = null;
|
3436
|
+
if (c === '#' && d === '{') {
|
3437
|
+
token = this._create_token(TOKEN.START_BLOCK, c + d);
|
3438
|
+
}
|
3439
|
+
|
3440
|
+
if (token) {
|
3441
|
+
this._input.next();
|
3442
|
+
this._input.next();
|
3443
|
+
}
|
3444
|
+
return token;
|
3445
|
+
};
|
3446
|
+
|
3409
3447
|
Tokenizer.prototype._read_punctuation = function() {
|
3410
3448
|
var resulting_string = this.__patterns.punct.read();
|
3411
3449
|
|
@@ -4492,7 +4530,7 @@ function requireBeautifier$2 () {
|
|
4492
4530
|
}
|
4493
4531
|
}
|
4494
4532
|
if (this._flags.last_token.type !== TOKEN.OPERATOR && this._flags.last_token.type !== TOKEN.START_EXPR) {
|
4495
|
-
if (this._flags.last_token.type
|
4533
|
+
if (in_array(this._flags.last_token.type, [TOKEN.START_BLOCK, TOKEN.SEMICOLON]) && !this._flags.inline_frame) {
|
4496
4534
|
this.print_newline();
|
4497
4535
|
} else {
|
4498
4536
|
this._output.space_before_token = true;
|
@@ -5195,7 +5233,7 @@ function requireBeautifier$2 () {
|
|
5195
5233
|
var hasRequiredJavascript;
|
5196
5234
|
|
5197
5235
|
function requireJavascript () {
|
5198
|
-
if (hasRequiredJavascript) return
|
5236
|
+
if (hasRequiredJavascript) return javascript.exports;
|
5199
5237
|
hasRequiredJavascript = 1;
|
5200
5238
|
|
5201
5239
|
var Beautifier = requireBeautifier$2().Beautifier,
|
@@ -5207,17 +5245,13 @@ function requireJavascript () {
|
|
5207
5245
|
}
|
5208
5246
|
|
5209
5247
|
javascript.exports = js_beautify;
|
5210
|
-
|
5248
|
+
javascript.exports.defaultOptions = function() {
|
5211
5249
|
return new Options();
|
5212
5250
|
};
|
5213
|
-
return
|
5251
|
+
return javascript.exports;
|
5214
5252
|
}
|
5215
5253
|
|
5216
|
-
var
|
5217
|
-
var css = {
|
5218
|
-
get exports(){ return cssExports; },
|
5219
|
-
set exports(v){ cssExports = v; },
|
5220
|
-
};
|
5254
|
+
var css = {exports: {}};
|
5221
5255
|
|
5222
5256
|
var beautifier$1 = {};
|
5223
5257
|
|
@@ -5294,18 +5328,18 @@ function requireBeautifier$1 () {
|
|
5294
5328
|
|
5295
5329
|
// https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule
|
5296
5330
|
this.NESTED_AT_RULE = {
|
5297
|
-
"
|
5298
|
-
"
|
5299
|
-
"
|
5331
|
+
"page": true,
|
5332
|
+
"font-face": true,
|
5333
|
+
"keyframes": true,
|
5300
5334
|
// also in CONDITIONAL_GROUP_RULE below
|
5301
|
-
"
|
5302
|
-
"
|
5303
|
-
"
|
5335
|
+
"media": true,
|
5336
|
+
"supports": true,
|
5337
|
+
"document": true
|
5304
5338
|
};
|
5305
5339
|
this.CONDITIONAL_GROUP_RULE = {
|
5306
|
-
"
|
5307
|
-
"
|
5308
|
-
"
|
5340
|
+
"media": true,
|
5341
|
+
"supports": true,
|
5342
|
+
"document": true
|
5309
5343
|
};
|
5310
5344
|
this.NON_SEMICOLON_NEWLINE_PROPERTY = [
|
5311
5345
|
"grid-template-areas",
|
@@ -5433,8 +5467,7 @@ function requireBeautifier$1 () {
|
|
5433
5467
|
// label { content: blue }
|
5434
5468
|
var insidePropertyValue = false;
|
5435
5469
|
var enteringConditionalGroup = false;
|
5436
|
-
var
|
5437
|
-
var insideAtImport = false;
|
5470
|
+
var insideNonNestedAtRule = false;
|
5438
5471
|
var insideScssMap = false;
|
5439
5472
|
var topCharacter = this._ch;
|
5440
5473
|
var insideNonSemiColonValues = false;
|
@@ -5489,10 +5522,32 @@ function requireBeautifier$1 () {
|
|
5489
5522
|
|
5490
5523
|
// Ensures any new lines following the comment are preserved
|
5491
5524
|
this.eatWhitespace(true);
|
5492
|
-
} else if (this._ch === '
|
5525
|
+
} else if (this._ch === '$') {
|
5526
|
+
this.preserveSingleSpace(isAfterSpace);
|
5527
|
+
|
5528
|
+
this.print_string(this._ch);
|
5529
|
+
|
5530
|
+
// strip trailing space, if present, for hash property checks
|
5531
|
+
var variable = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);
|
5532
|
+
|
5533
|
+
if (variable.match(/[ :]$/)) {
|
5534
|
+
// we have a variable or pseudo-class, add it and insert one space before continuing
|
5535
|
+
variable = this.eatString(": ").replace(/\s$/, '');
|
5536
|
+
this.print_string(variable);
|
5537
|
+
this._output.space_before_token = true;
|
5538
|
+
}
|
5539
|
+
|
5540
|
+
variable = variable.replace(/\s$/, '');
|
5541
|
+
|
5542
|
+
// might be sass variable
|
5543
|
+
if (parenLevel === 0 && variable.indexOf(':') !== -1) {
|
5544
|
+
insidePropertyValue = true;
|
5545
|
+
this.indent();
|
5546
|
+
}
|
5547
|
+
} else if (this._ch === '@') {
|
5493
5548
|
this.preserveSingleSpace(isAfterSpace);
|
5494
5549
|
|
5495
|
-
// deal with less
|
5550
|
+
// deal with less property mixins @{...}
|
5496
5551
|
if (this._input.peek() === '{') {
|
5497
5552
|
this.print_string(this._ch + this.eatString('}'));
|
5498
5553
|
} else {
|
@@ -5510,22 +5565,21 @@ function requireBeautifier$1 () {
|
|
5510
5565
|
|
5511
5566
|
variableOrRule = variableOrRule.replace(/\s$/, '');
|
5512
5567
|
|
5513
|
-
|
5514
|
-
|
5515
|
-
|
5516
|
-
|
5517
|
-
}
|
5568
|
+
// might be less variable
|
5569
|
+
if (parenLevel === 0 && variableOrRule.indexOf(':') !== -1) {
|
5570
|
+
insidePropertyValue = true;
|
5571
|
+
this.indent();
|
5518
5572
|
|
5519
|
-
|
5520
|
-
if (variableOrRule in this.NESTED_AT_RULE) {
|
5573
|
+
// might be a nesting at-rule
|
5574
|
+
} else if (variableOrRule in this.NESTED_AT_RULE) {
|
5521
5575
|
this._nestedLevel += 1;
|
5522
5576
|
if (variableOrRule in this.CONDITIONAL_GROUP_RULE) {
|
5523
5577
|
enteringConditionalGroup = true;
|
5524
5578
|
}
|
5525
|
-
|
5526
|
-
|
5527
|
-
|
5528
|
-
|
5579
|
+
|
5580
|
+
// might be a non-nested at-rule
|
5581
|
+
} else if (parenLevel === 0 && !insidePropertyValue) {
|
5582
|
+
insideNonNestedAtRule = true;
|
5529
5583
|
}
|
5530
5584
|
}
|
5531
5585
|
} else if (this._ch === '#' && this._input.peek() === '{') {
|
@@ -5537,6 +5591,9 @@ function requireBeautifier$1 () {
|
|
5537
5591
|
this.outdent();
|
5538
5592
|
}
|
5539
5593
|
|
5594
|
+
// non nested at rule becomes nested
|
5595
|
+
insideNonNestedAtRule = false;
|
5596
|
+
|
5540
5597
|
// when entering conditional groups, only rulesets are allowed
|
5541
5598
|
if (enteringConditionalGroup) {
|
5542
5599
|
enteringConditionalGroup = false;
|
@@ -5577,8 +5634,7 @@ function requireBeautifier$1 () {
|
|
5577
5634
|
if (previous_ch === '{') {
|
5578
5635
|
this._output.trim(true);
|
5579
5636
|
}
|
5580
|
-
|
5581
|
-
insideAtExtend = false;
|
5637
|
+
|
5582
5638
|
if (insidePropertyValue) {
|
5583
5639
|
this.outdent();
|
5584
5640
|
insidePropertyValue = false;
|
@@ -5612,9 +5668,10 @@ function requireBeautifier$1 () {
|
|
5612
5668
|
}
|
5613
5669
|
}
|
5614
5670
|
|
5615
|
-
if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack("&") || this.foundNestedPseudoClass()) && !this._input.lookBack("(") && !
|
5671
|
+
if ((insideRule || enteringConditionalGroup) && !(this._input.lookBack("&") || this.foundNestedPseudoClass()) && !this._input.lookBack("(") && !insideNonNestedAtRule && parenLevel === 0) {
|
5616
5672
|
// 'property: value' delimiter
|
5617
5673
|
// which could be in a conditional group query
|
5674
|
+
|
5618
5675
|
this.print_string(':');
|
5619
5676
|
if (!insidePropertyValue) {
|
5620
5677
|
insidePropertyValue = true;
|
@@ -5651,8 +5708,7 @@ function requireBeautifier$1 () {
|
|
5651
5708
|
this.outdent();
|
5652
5709
|
insidePropertyValue = false;
|
5653
5710
|
}
|
5654
|
-
|
5655
|
-
insideAtImport = false;
|
5711
|
+
insideNonNestedAtRule = false;
|
5656
5712
|
this.print_string(this._ch);
|
5657
5713
|
this.eatWhitespace(true);
|
5658
5714
|
|
@@ -5717,7 +5773,7 @@ function requireBeautifier$1 () {
|
|
5717
5773
|
} else if (this._ch === ',') {
|
5718
5774
|
this.print_string(this._ch);
|
5719
5775
|
this.eatWhitespace(true);
|
5720
|
-
if (this._options.selector_separator_newline && (!insidePropertyValue || insideScssMap) && parenLevel === 0 && !
|
5776
|
+
if (this._options.selector_separator_newline && (!insidePropertyValue || insideScssMap) && parenLevel === 0 && !insideNonNestedAtRule) {
|
5721
5777
|
this._output.add_new_line();
|
5722
5778
|
} else {
|
5723
5779
|
this._output.space_before_token = true;
|
@@ -5775,7 +5831,7 @@ function requireBeautifier$1 () {
|
|
5775
5831
|
var hasRequiredCss;
|
5776
5832
|
|
5777
5833
|
function requireCss () {
|
5778
|
-
if (hasRequiredCss) return
|
5834
|
+
if (hasRequiredCss) return css.exports;
|
5779
5835
|
hasRequiredCss = 1;
|
5780
5836
|
|
5781
5837
|
var Beautifier = requireBeautifier$1().Beautifier,
|
@@ -5787,17 +5843,13 @@ function requireCss () {
|
|
5787
5843
|
}
|
5788
5844
|
|
5789
5845
|
css.exports = css_beautify;
|
5790
|
-
|
5846
|
+
css.exports.defaultOptions = function() {
|
5791
5847
|
return new Options();
|
5792
5848
|
};
|
5793
|
-
return
|
5849
|
+
return css.exports;
|
5794
5850
|
}
|
5795
5851
|
|
5796
|
-
var
|
5797
|
-
var html = {
|
5798
|
-
get exports(){ return htmlExports; },
|
5799
|
-
set exports(v){ htmlExports = v; },
|
5800
|
-
};
|
5852
|
+
var html = {exports: {}};
|
5801
5853
|
|
5802
5854
|
var beautifier = {};
|
5803
5855
|
|
@@ -5826,6 +5878,7 @@ function requireOptions () {
|
|
5826
5878
|
this.indent_handlebars = this._get_boolean('indent_handlebars', true);
|
5827
5879
|
this.wrap_attributes = this._get_selection('wrap_attributes',
|
5828
5880
|
['auto', 'force', 'force-aligned', 'force-expand-multiline', 'aligned-multiple', 'preserve', 'preserve-aligned']);
|
5881
|
+
this.wrap_attributes_min_attrs = this._get_number('wrap_attributes_min_attrs', 2);
|
5829
5882
|
this.wrap_attributes_indent_size = this._get_number('wrap_attributes_indent_size', this.indent_size);
|
5830
5883
|
this.extra_liners = this._get_array('extra_liners', ['head', 'body', '/html']);
|
5831
5884
|
|
@@ -5843,6 +5896,7 @@ function requireOptions () {
|
|
5843
5896
|
// obsolete inline tags
|
5844
5897
|
'acronym', 'big', 'strike', 'tt'
|
5845
5898
|
]);
|
5899
|
+
this.inline_custom_elements = this._get_boolean('inline_custom_elements', true);
|
5846
5900
|
this.void_elements = this._get_array('void_elements', [
|
5847
5901
|
// HTLM void elements - aka self-closing tags - aka singletons
|
5848
5902
|
// https://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements
|
@@ -6466,11 +6520,11 @@ function requireBeautifier () {
|
|
6466
6520
|
while (raw_token.type !== TOKEN.EOF) {
|
6467
6521
|
|
6468
6522
|
if (raw_token.type === TOKEN.TAG_OPEN || raw_token.type === TOKEN.COMMENT) {
|
6469
|
-
parser_token = this._handle_tag_open(printer, raw_token, last_tag_token, last_token);
|
6523
|
+
parser_token = this._handle_tag_open(printer, raw_token, last_tag_token, last_token, tokens);
|
6470
6524
|
last_tag_token = parser_token;
|
6471
6525
|
} else if ((raw_token.type === TOKEN.ATTRIBUTE || raw_token.type === TOKEN.EQUALS || raw_token.type === TOKEN.VALUE) ||
|
6472
6526
|
(raw_token.type === TOKEN.TEXT && !last_tag_token.tag_complete)) {
|
6473
|
-
parser_token = this._handle_inside_tag(printer, raw_token, last_tag_token,
|
6527
|
+
parser_token = this._handle_inside_tag(printer, raw_token, last_tag_token, last_token);
|
6474
6528
|
} else if (raw_token.type === TOKEN.TAG_CLOSE) {
|
6475
6529
|
parser_token = this._handle_tag_close(printer, raw_token, last_tag_token);
|
6476
6530
|
} else if (raw_token.type === TOKEN.TEXT) {
|
@@ -6527,7 +6581,7 @@ function requireBeautifier () {
|
|
6527
6581
|
return parser_token;
|
6528
6582
|
};
|
6529
6583
|
|
6530
|
-
Beautifier.prototype._handle_inside_tag = function(printer, raw_token, last_tag_token,
|
6584
|
+
Beautifier.prototype._handle_inside_tag = function(printer, raw_token, last_tag_token, last_token) {
|
6531
6585
|
var wrapped = last_tag_token.has_wrapped_attrs;
|
6532
6586
|
var parser_token = {
|
6533
6587
|
text: raw_token.text,
|
@@ -6548,7 +6602,6 @@ function requireBeautifier () {
|
|
6548
6602
|
} else {
|
6549
6603
|
if (raw_token.type === TOKEN.ATTRIBUTE) {
|
6550
6604
|
printer.set_space_before_token(true);
|
6551
|
-
last_tag_token.attr_count += 1;
|
6552
6605
|
} else if (raw_token.type === TOKEN.EQUALS) { //no space before =
|
6553
6606
|
printer.set_space_before_token(false);
|
6554
6607
|
} else if (raw_token.type === TOKEN.VALUE && raw_token.previous.type === TOKEN.EQUALS) { //no space before value
|
@@ -6561,29 +6614,15 @@ function requireBeautifier () {
|
|
6561
6614
|
wrapped = wrapped || raw_token.newlines !== 0;
|
6562
6615
|
}
|
6563
6616
|
|
6564
|
-
|
6565
|
-
|
6566
|
-
|
6567
|
-
|
6568
|
-
|
6569
|
-
|
6570
|
-
|
6571
|
-
|
6572
|
-
|
6573
|
-
if (peek_token.type === TOKEN.ATTRIBUTE) {
|
6574
|
-
is_only_attribute = false;
|
6575
|
-
break;
|
6576
|
-
}
|
6577
|
-
peek_index += 1;
|
6578
|
-
} while (peek_index < 4 && peek_token.type !== TOKEN.EOF && peek_token.type !== TOKEN.TAG_CLOSE);
|
6579
|
-
|
6580
|
-
force_attr_wrap = !is_only_attribute;
|
6581
|
-
}
|
6582
|
-
|
6583
|
-
if (force_attr_wrap) {
|
6584
|
-
printer.print_newline(false);
|
6585
|
-
wrapped = true;
|
6586
|
-
}
|
6617
|
+
// Wrap for 'force' options, and if the number of attributes is at least that specified in 'wrap_attributes_min_attrs':
|
6618
|
+
// 1. always wrap the second and beyond attributes
|
6619
|
+
// 2. wrap the first attribute only if 'force-expand-multiline' is specified
|
6620
|
+
if (this._is_wrap_attributes_force &&
|
6621
|
+
last_tag_token.attr_count >= this._options.wrap_attributes_min_attrs &&
|
6622
|
+
(last_token.type !== TOKEN.TAG_OPEN || // ie. second attribute and beyond
|
6623
|
+
this._is_wrap_attributes_force_expand_multiline)) {
|
6624
|
+
printer.print_newline(false);
|
6625
|
+
wrapped = true;
|
6587
6626
|
}
|
6588
6627
|
}
|
6589
6628
|
printer.print_token(raw_token);
|
@@ -6712,12 +6751,12 @@ function requireBeautifier () {
|
|
6712
6751
|
}
|
6713
6752
|
};
|
6714
6753
|
|
6715
|
-
Beautifier.prototype._handle_tag_open = function(printer, raw_token, last_tag_token, last_token) {
|
6754
|
+
Beautifier.prototype._handle_tag_open = function(printer, raw_token, last_tag_token, last_token, tokens) {
|
6716
6755
|
var parser_token = this._get_tag_open_token(raw_token);
|
6717
6756
|
|
6718
6757
|
if ((last_tag_token.is_unformatted || last_tag_token.is_content_unformatted) &&
|
6719
6758
|
!last_tag_token.is_empty_element &&
|
6720
|
-
raw_token.type === TOKEN.TAG_OPEN &&
|
6759
|
+
raw_token.type === TOKEN.TAG_OPEN && !parser_token.is_start_tag) {
|
6721
6760
|
// End element tags for unformatted or content_unformatted elements
|
6722
6761
|
// are printed raw to keep any newlines inside them exactly the same.
|
6723
6762
|
printer.add_raw_token(raw_token);
|
@@ -6731,6 +6770,19 @@ function requireBeautifier () {
|
|
6731
6770
|
printer.print_token(raw_token);
|
6732
6771
|
}
|
6733
6772
|
|
6773
|
+
// count the number of attributes
|
6774
|
+
if (parser_token.is_start_tag && this._is_wrap_attributes_force) {
|
6775
|
+
var peek_index = 0;
|
6776
|
+
var peek_token;
|
6777
|
+
do {
|
6778
|
+
peek_token = tokens.peek(peek_index);
|
6779
|
+
if (peek_token.type === TOKEN.ATTRIBUTE) {
|
6780
|
+
parser_token.attr_count += 1;
|
6781
|
+
}
|
6782
|
+
peek_index += 1;
|
6783
|
+
} while (peek_token.type !== TOKEN.EOF && peek_token.type !== TOKEN.TAG_CLOSE);
|
6784
|
+
}
|
6785
|
+
|
6734
6786
|
//indent attributes an auto, forced, aligned or forced-align line-wrap
|
6735
6787
|
if (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) {
|
6736
6788
|
parser_token.alignment_size = raw_token.text.length + 1;
|
@@ -6828,7 +6880,7 @@ function requireBeautifier () {
|
|
6828
6880
|
|
6829
6881
|
parser_token.is_unformatted = !parser_token.tag_complete && in_array(parser_token.tag_check, this._options.unformatted);
|
6830
6882
|
parser_token.is_content_unformatted = !parser_token.is_empty_element && in_array(parser_token.tag_check, this._options.content_unformatted);
|
6831
|
-
parser_token.is_inline_element = in_array(parser_token.tag_name, this._options.inline) || parser_token.tag_start_char === '{';
|
6883
|
+
parser_token.is_inline_element = in_array(parser_token.tag_name, this._options.inline) || (this._options.inline_custom_elements && parser_token.tag_name.includes("-")) || parser_token.tag_start_char === '{';
|
6832
6884
|
|
6833
6885
|
return parser_token;
|
6834
6886
|
};
|
@@ -6933,7 +6985,7 @@ function requireBeautifier () {
|
|
6933
6985
|
};
|
6934
6986
|
|
6935
6987
|
//To be used for <p> tag special case:
|
6936
|
-
var p_closers = ['address', 'article', 'aside', 'blockquote', 'details', 'div', 'dl', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'main', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'];
|
6988
|
+
var p_closers = ['address', 'article', 'aside', 'blockquote', 'details', 'div', 'dl', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'main', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'];
|
6937
6989
|
var p_parent_excludes = ['a', 'audio', 'del', 'ins', 'map', 'noscript', 'video'];
|
6938
6990
|
|
6939
6991
|
Beautifier.prototype._do_optional_end_element = function(parser_token) {
|
@@ -6956,7 +7008,7 @@ function requireBeautifier () {
|
|
6956
7008
|
|
6957
7009
|
} else if (parser_token.tag_name === 'li') {
|
6958
7010
|
// An li element’s end tag may be omitted if the li element is immediately followed by another li element or if there is no more content in the parent element.
|
6959
|
-
result = result || this._tag_stack.try_pop('li', ['ol', 'ul']);
|
7011
|
+
result = result || this._tag_stack.try_pop('li', ['ol', 'ul', 'menu']);
|
6960
7012
|
|
6961
7013
|
} else if (parser_token.tag_name === 'dd' || parser_token.tag_name === 'dt') {
|
6962
7014
|
// A dd element’s end tag may be omitted if the dd element is immediately followed by another dd element or a dt element, or if there is no more content in the parent element.
|
@@ -7052,7 +7104,7 @@ function requireBeautifier () {
|
|
7052
7104
|
var hasRequiredHtml;
|
7053
7105
|
|
7054
7106
|
function requireHtml () {
|
7055
|
-
if (hasRequiredHtml) return
|
7107
|
+
if (hasRequiredHtml) return html.exports;
|
7056
7108
|
hasRequiredHtml = 1;
|
7057
7109
|
|
7058
7110
|
var Beautifier = requireBeautifier().Beautifier,
|
@@ -7064,10 +7116,10 @@ function requireHtml () {
|
|
7064
7116
|
}
|
7065
7117
|
|
7066
7118
|
html.exports = style_html;
|
7067
|
-
|
7119
|
+
html.exports.defaultOptions = function() {
|
7068
7120
|
return new Options();
|
7069
7121
|
};
|
7070
|
-
return
|
7122
|
+
return html.exports;
|
7071
7123
|
}
|
7072
7124
|
|
7073
7125
|
/*jshint node:true */
|
@@ -7144,10 +7196,11 @@ function requireSrc () {
|
|
7144
7196
|
mod.exports = get_beautify(beautifier, beautifier, beautifier);
|
7145
7197
|
|
7146
7198
|
})(module);
|
7147
|
-
}
|
7199
|
+
}
|
7148
7200
|
} (js));
|
7149
7201
|
|
7150
|
-
var
|
7202
|
+
var jsExports = js.exports;
|
7203
|
+
var beautify = /*@__PURE__*/getDefaultExportFromCjs(jsExports);
|
7151
7204
|
|
7152
7205
|
var BaseWrapper = /** @class */ (function () {
|
7153
7206
|
function BaseWrapper(element) {
|
@@ -7232,7 +7285,9 @@ var BaseWrapper = /** @class */ (function () {
|
|
7232
7285
|
}
|
7233
7286
|
if (matches(currentComponent.vnode, selector) &&
|
7234
7287
|
this.element.contains(currentComponent.vnode.el)) {
|
7235
|
-
return createVueWrapper(null, currentComponent.
|
7288
|
+
return createVueWrapper(null, currentComponent.subTree.component
|
7289
|
+
? currentComponent.subTree.component.proxy
|
7290
|
+
: currentComponent.proxy);
|
7236
7291
|
}
|
7237
7292
|
var result = this.findAllComponents(selector)[0];
|
7238
7293
|
return result !== null && result !== void 0 ? result : createWrapperError('VueWrapper');
|
@@ -7258,7 +7313,9 @@ var BaseWrapper = /** @class */ (function () {
|
|
7258
7313
|
return beautify.html(node, {
|
7259
7314
|
unformatted: ['code', 'pre', 'em', 'strong', 'span'],
|
7260
7315
|
indent_inner_html: true,
|
7261
|
-
indent_size: 2
|
7316
|
+
indent_size: 2,
|
7317
|
+
inline_custom_elements: false
|
7318
|
+
// TODO the cast can be removed when @types/js-beautify will be up-to-date
|
7262
7319
|
});
|
7263
7320
|
})
|
7264
7321
|
.join('\n');
|
@@ -7283,7 +7340,7 @@ var BaseWrapper = /** @class */ (function () {
|
|
7283
7340
|
return key ? attributeMap[key] : attributeMap;
|
7284
7341
|
};
|
7285
7342
|
BaseWrapper.prototype.text = function () {
|
7286
|
-
return
|
7343
|
+
return this.getRootNodes().map(textContent).join('');
|
7287
7344
|
};
|
7288
7345
|
BaseWrapper.prototype.exists = function () {
|
7289
7346
|
return true;
|
@@ -7389,10 +7446,10 @@ var DOMWrapper = /** @class */ (function (_super) {
|
|
7389
7446
|
var results = _super.prototype.findAllComponents.call(this, selector);
|
7390
7447
|
return results.filter(function (r) { return _this.element.contains(r.element); });
|
7391
7448
|
};
|
7392
|
-
DOMWrapper.prototype.setChecked = function (
|
7393
|
-
|
7394
|
-
return __awaiter(this, void 0, void 0, function () {
|
7449
|
+
DOMWrapper.prototype.setChecked = function () {
|
7450
|
+
return __awaiter(this, arguments, void 0, function (checked) {
|
7395
7451
|
var element, type;
|
7452
|
+
if (checked === void 0) { checked = true; }
|
7396
7453
|
return __generator(this, function (_a) {
|
7397
7454
|
element = this.element;
|
7398
7455
|
type = this.attributes().type;
|
@@ -7407,6 +7464,7 @@ var DOMWrapper = /** @class */ (function (_super) {
|
|
7407
7464
|
return [2 /*return*/];
|
7408
7465
|
}
|
7409
7466
|
element.checked = checked;
|
7467
|
+
this.trigger('input');
|
7410
7468
|
return [2 /*return*/, this.trigger('change')];
|
7411
7469
|
});
|
7412
7470
|
});
|
@@ -7436,6 +7494,7 @@ var DOMWrapper = /** @class */ (function (_super) {
|
|
7436
7494
|
else {
|
7437
7495
|
element.value = value;
|
7438
7496
|
}
|
7497
|
+
this.trigger('input');
|
7439
7498
|
return this.trigger('change');
|
7440
7499
|
}
|
7441
7500
|
else if (tagName === 'INPUT' || tagName === 'TEXTAREA') {
|
@@ -7460,7 +7519,9 @@ var DOMWrapper = /** @class */ (function (_super) {
|
|
7460
7519
|
if (parentElement.tagName === 'OPTGROUP') {
|
7461
7520
|
parentElement = parentElement.parentElement;
|
7462
7521
|
}
|
7463
|
-
|
7522
|
+
var parentWrapper = new DOMWrapper(parentElement);
|
7523
|
+
parentWrapper.trigger('input');
|
7524
|
+
return parentWrapper.trigger('change');
|
7464
7525
|
};
|
7465
7526
|
return DOMWrapper;
|
7466
7527
|
}(BaseWrapper));
|
@@ -7513,9 +7574,30 @@ function emitted(vm, eventName) {
|
|
7513
7574
|
return vmEvents;
|
7514
7575
|
}
|
7515
7576
|
var attachEmitListener = function () {
|
7516
|
-
|
7517
|
-
|
7577
|
+
var target = getGlobalThis();
|
7578
|
+
// override emit to capture events when devtools is defined
|
7579
|
+
if (target.__VUE_DEVTOOLS_GLOBAL_HOOK__) {
|
7580
|
+
var _emit_1 = target.__VUE_DEVTOOLS_GLOBAL_HOOK__.emit;
|
7581
|
+
target.__VUE_DEVTOOLS_GLOBAL_HOOK__.emit = function (eventType) {
|
7582
|
+
var payload = [];
|
7583
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
7584
|
+
payload[_i - 1] = arguments[_i];
|
7585
|
+
}
|
7586
|
+
_emit_1.call.apply(_emit_1, __spreadArray([target.__VUE_DEVTOOLS_GLOBAL_HOOK__, eventType], payload, false));
|
7587
|
+
captureDevtoolsVueComponentEmitEvent(eventType, payload);
|
7588
|
+
};
|
7589
|
+
}
|
7590
|
+
else {
|
7591
|
+
// use devtools to capture this "emit"
|
7592
|
+
Vue.setDevtoolsHook(createDevTools(), {});
|
7593
|
+
}
|
7518
7594
|
};
|
7595
|
+
function captureDevtoolsVueComponentEmitEvent(eventType, payload) {
|
7596
|
+
if (eventType === "component:emit" /* DevtoolsHooks.COMPONENT_EMIT */) {
|
7597
|
+
payload[0]; var componentVM = payload[1], event_1 = payload[2], eventArgs = payload[3];
|
7598
|
+
recordEvent(componentVM, event_1, eventArgs);
|
7599
|
+
}
|
7600
|
+
}
|
7519
7601
|
// devtools hook only catches Vue component custom events
|
7520
7602
|
function createDevTools() {
|
7521
7603
|
return {
|
@@ -7524,10 +7606,7 @@ function createDevTools() {
|
|
7524
7606
|
for (var _i = 1; _i < arguments.length; _i++) {
|
7525
7607
|
payload[_i - 1] = arguments[_i];
|
7526
7608
|
}
|
7527
|
-
|
7528
|
-
return;
|
7529
|
-
var componentVM = payload[1], event = payload[2], eventArgs = payload[3];
|
7530
|
-
recordEvent(componentVM, event, eventArgs);
|
7609
|
+
captureDevtoolsVueComponentEmitEvent(eventType, payload);
|
7531
7610
|
}
|
7532
7611
|
};
|
7533
7612
|
}
|
@@ -7559,9 +7638,18 @@ var removeEventHistory = function (vm) {
|
|
7559
7638
|
function createVMProxy(vm, setupState) {
|
7560
7639
|
return new Proxy(vm, {
|
7561
7640
|
get: function (vm, key, receiver) {
|
7562
|
-
if (key in
|
7641
|
+
if (vm.$.exposed && vm.$.exposeProxy && key in vm.$.exposeProxy) {
|
7642
|
+
// first if the key is exposed
|
7643
|
+
return Reflect.get(vm.$.exposeProxy, key, receiver);
|
7644
|
+
}
|
7645
|
+
else if (key in setupState) {
|
7646
|
+
// second if the key is acccessible from the setupState
|
7563
7647
|
return Reflect.get(setupState, key, receiver);
|
7564
7648
|
}
|
7649
|
+
else if (key in vm.$.appContext.config.globalProperties) {
|
7650
|
+
// third if the key is a global property
|
7651
|
+
return Reflect.get(vm.$.appContext.config.globalProperties, key, receiver);
|
7652
|
+
}
|
7565
7653
|
else {
|
7566
7654
|
// vm.$.ctx is the internal context of the vm
|
7567
7655
|
// with all variables, methods and props
|
@@ -7780,30 +7868,6 @@ var VueWrapper = /** @class */ (function (_super) {
|
|
7780
7868
|
}(BaseWrapper));
|
7781
7869
|
registerFactory(WrapperType.VueWrapper, function (app, vm, setProps) { return new VueWrapper(app, vm, setProps); });
|
7782
7870
|
|
7783
|
-
var isEnabled = false;
|
7784
|
-
var wrapperInstances = [];
|
7785
|
-
function disableAutoUnmount() {
|
7786
|
-
isEnabled = false;
|
7787
|
-
wrapperInstances.length = 0;
|
7788
|
-
}
|
7789
|
-
function enableAutoUnmount(hook) {
|
7790
|
-
if (isEnabled) {
|
7791
|
-
throw new Error('enableAutoUnmount cannot be called more than once');
|
7792
|
-
}
|
7793
|
-
isEnabled = true;
|
7794
|
-
hook(function () {
|
7795
|
-
wrapperInstances.forEach(function (wrapper) {
|
7796
|
-
wrapper.unmount();
|
7797
|
-
});
|
7798
|
-
wrapperInstances.length = 0;
|
7799
|
-
});
|
7800
|
-
}
|
7801
|
-
function trackInstance(wrapper) {
|
7802
|
-
if (!isEnabled)
|
7803
|
-
return;
|
7804
|
-
wrapperInstances.push(wrapper);
|
7805
|
-
}
|
7806
|
-
|
7807
7871
|
function processSlot(source, Vue$1) {
|
7808
7872
|
if (source === void 0) { source = ''; }
|
7809
7873
|
if (Vue$1 === void 0) { Vue$1 = Vue__namespace; }
|
@@ -7837,24 +7901,30 @@ function processSlot(source, Vue$1) {
|
|
7837
7901
|
|
7838
7902
|
var isTeleport = function (type) { return type.__isTeleport; };
|
7839
7903
|
var isKeepAlive = function (type) { return type.__isKeepAlive; };
|
7904
|
+
var isRootComponent = function (rootComponents, type, instance) {
|
7905
|
+
return !!(!instance ||
|
7906
|
+
// Don't stub mounted component on root level
|
7907
|
+
(rootComponents.component === type && !(instance === null || instance === void 0 ? void 0 : instance.parent)) ||
|
7908
|
+
// Don't stub component with compat wrapper
|
7909
|
+
(rootComponents.functional && rootComponents.functional === type));
|
7910
|
+
};
|
7840
7911
|
var createVNodeTransformer = function (_a) {
|
7841
|
-
var transformers = _a.transformers;
|
7912
|
+
var rootComponents = _a.rootComponents, transformers = _a.transformers;
|
7842
7913
|
var transformationCache = new WeakMap();
|
7843
7914
|
return function (args, instance) {
|
7844
7915
|
var originalType = args[0], props = args[1], children = args[2], restVNodeArgs = args.slice(3);
|
7845
7916
|
if (!isComponent(originalType)) {
|
7846
7917
|
return __spreadArray([originalType, props, children], restVNodeArgs, true);
|
7847
7918
|
}
|
7919
|
+
var componentType = originalType;
|
7848
7920
|
var cachedTransformation = transformationCache.get(originalType);
|
7849
|
-
if (cachedTransformation
|
7850
|
-
//
|
7851
|
-
|
7852
|
-
|
7853
|
-
|
7854
|
-
}
|
7921
|
+
if (cachedTransformation &&
|
7922
|
+
// Don't use cache for root component, as it could use stubbed recursive component
|
7923
|
+
!isRootComponent(rootComponents, componentType, instance) &&
|
7924
|
+
!isTeleport(originalType) &&
|
7925
|
+
!isKeepAlive(originalType)) {
|
7855
7926
|
return __spreadArray([cachedTransformation, props, children], restVNodeArgs, true);
|
7856
7927
|
}
|
7857
|
-
var componentType = originalType;
|
7858
7928
|
var transformedType = transformers.reduce(function (type, transformer) { return transformer(type, instance); }, componentType);
|
7859
7929
|
if (originalType !== transformedType) {
|
7860
7930
|
transformationCache.set(originalType, transformedType);
|
@@ -7876,14 +7946,40 @@ var normalizeStubProps = function (props) {
|
|
7876
7946
|
var _a, _b, _c;
|
7877
7947
|
var _d;
|
7878
7948
|
if (typeof $props[key] === 'symbol') {
|
7879
|
-
return __assign(__assign({}, acc), (_a = {}, _a[key] = (_d = $props[key]) === null || _d === void 0 ? void 0 : _d.toString(), _a));
|
7949
|
+
return __assign(__assign({}, acc), (_a = {}, _a[key] = [(_d = $props[key]) === null || _d === void 0 ? void 0 : _d.toString()], _a));
|
7880
7950
|
}
|
7881
7951
|
if (typeof $props[key] === 'function') {
|
7882
|
-
return __assign(__assign({}, acc), (_b = {}, _b[key] = '[Function]', _b));
|
7952
|
+
return __assign(__assign({}, acc), (_b = {}, _b[key] = ['[Function]'], _b));
|
7883
7953
|
}
|
7884
7954
|
return __assign(__assign({}, acc), (_c = {}, _c[key] = $props[key], _c));
|
7885
7955
|
}, {});
|
7886
7956
|
};
|
7957
|
+
var clearAndUpper = function (text) { return text.replace(/-/, '').toUpperCase(); };
|
7958
|
+
var kebabToPascalCase = function (tag) {
|
7959
|
+
return tag.replace(/(^\w|-\w)/g, clearAndUpper);
|
7960
|
+
};
|
7961
|
+
var DEFAULT_STUBS = {
|
7962
|
+
teleport: isTeleport,
|
7963
|
+
'keep-alive': isKeepAlive,
|
7964
|
+
transition: function (type) { return type === Vue.Transition || type === Vue.BaseTransition; },
|
7965
|
+
'transition-group': function (type) { return type === Vue.TransitionGroup; }
|
7966
|
+
};
|
7967
|
+
var createDefaultStub = function (kebabTag, predicate, type, stubs) {
|
7968
|
+
var pascalTag = kebabToPascalCase(kebabTag);
|
7969
|
+
if (predicate(type) && (pascalTag in stubs || kebabTag in stubs)) {
|
7970
|
+
if (kebabTag in stubs && stubs[kebabTag] === false)
|
7971
|
+
return type;
|
7972
|
+
if (pascalTag in stubs && stubs[pascalTag] === false)
|
7973
|
+
return type;
|
7974
|
+
if (stubs[kebabTag] === true || stubs[pascalTag] === true) {
|
7975
|
+
return createStub({
|
7976
|
+
name: kebabTag,
|
7977
|
+
type: type,
|
7978
|
+
renderStubDefaultSlot: true
|
7979
|
+
});
|
7980
|
+
}
|
7981
|
+
}
|
7982
|
+
};
|
7887
7983
|
var createStub = function (_a) {
|
7888
7984
|
var name = _a.name, type = _a.type, renderStubDefaultSlot = _a.renderStubDefaultSlot;
|
7889
7985
|
var anonName = 'anonymous-stub';
|
@@ -7891,7 +7987,7 @@ var createStub = function (_a) {
|
|
7891
7987
|
var componentOptions = type
|
7892
7988
|
? unwrapLegacyVueExtendComponent(type) || {}
|
7893
7989
|
: {};
|
7894
|
-
|
7990
|
+
var stub = Vue.defineComponent({
|
7895
7991
|
name: name || anonName,
|
7896
7992
|
props: componentOptions.props || {},
|
7897
7993
|
// fix #1550 - respect old-style v-model for shallow mounted components with @vue/compat
|
@@ -7909,10 +8005,26 @@ var createStub = function (_a) {
|
|
7909
8005
|
// Also having function text as attribute is useless and annoying so
|
7910
8006
|
// we replace it with "[Function]""
|
7911
8007
|
var stubProps = normalizeStubProps(props);
|
7912
|
-
|
8008
|
+
// if renderStubDefaultSlot is true, we render the default slot
|
8009
|
+
if (renderStubDefaultSlot && slots.default) {
|
8010
|
+
// we explicitly call the default slot with an empty object
|
8011
|
+
// so scope slots destructuring works
|
8012
|
+
return Vue.h(tag, stubProps, slots.default({}));
|
8013
|
+
}
|
8014
|
+
return Vue.h(tag, stubProps);
|
7913
8015
|
};
|
7914
8016
|
}
|
7915
8017
|
});
|
8018
|
+
var asyncLoader = type.__asyncLoader;
|
8019
|
+
if (asyncLoader) {
|
8020
|
+
asyncLoader().then(function () {
|
8021
|
+
registerStub({
|
8022
|
+
source: type.__asyncResolved,
|
8023
|
+
stub: stub
|
8024
|
+
});
|
8025
|
+
});
|
8026
|
+
}
|
8027
|
+
return stub;
|
7916
8028
|
};
|
7917
8029
|
var resolveComponentStubByName = function (componentName, stubs) {
|
7918
8030
|
for (var _i = 0, _a = Object.entries(stubs); _i < _a.length; _i++) {
|
@@ -7926,56 +8038,14 @@ function createStubComponentsTransformer(_a) {
|
|
7926
8038
|
var rootComponents = _a.rootComponents, _b = _a.stubs, stubs = _b === void 0 ? {} : _b, _c = _a.shallow, shallow = _c === void 0 ? false : _c, _d = _a.renderStubDefaultSlot, renderStubDefaultSlot = _d === void 0 ? false : _d;
|
7927
8039
|
return function componentsTransformer(type, instance) {
|
7928
8040
|
var _a, _b, _c;
|
7929
|
-
|
7930
|
-
|
7931
|
-
|
7932
|
-
|
7933
|
-
|
7934
|
-
name: 'teleport',
|
7935
|
-
type: type,
|
7936
|
-
renderStubDefaultSlot: true
|
7937
|
-
});
|
7938
|
-
}
|
7939
|
-
// stub keep-alive/KeepAlive by default via config.global.stubs
|
7940
|
-
if (isKeepAlive(type) && ('keep-alive' in stubs || 'KeepAlive' in stubs)) {
|
7941
|
-
if ('keep-alive' in stubs && stubs['keep-alive'] === false)
|
7942
|
-
return type;
|
7943
|
-
if ('KeepAlive' in stubs && stubs['KeepAlive'] === false)
|
7944
|
-
return type;
|
7945
|
-
return createStub({
|
7946
|
-
name: 'keep-alive',
|
7947
|
-
type: type,
|
7948
|
-
renderStubDefaultSlot: true
|
7949
|
-
});
|
7950
|
-
}
|
7951
|
-
// stub transition by default via config.global.stubs
|
7952
|
-
if ((type === Vue.Transition || type === Vue.BaseTransition) &&
|
7953
|
-
'transition' in stubs) {
|
7954
|
-
if (stubs.transition === false)
|
7955
|
-
return type;
|
7956
|
-
return createStub({
|
7957
|
-
name: 'transition',
|
7958
|
-
type: type,
|
7959
|
-
renderStubDefaultSlot: true
|
7960
|
-
});
|
8041
|
+
for (var tag in DEFAULT_STUBS) {
|
8042
|
+
var predicate = DEFAULT_STUBS[tag];
|
8043
|
+
var defaultStub = createDefaultStub(tag, predicate, type, stubs);
|
8044
|
+
if (defaultStub)
|
8045
|
+
return defaultStub;
|
7961
8046
|
}
|
7962
|
-
// stub
|
7963
|
-
if (type
|
7964
|
-
if (stubs['transition-group'] === false)
|
7965
|
-
return type;
|
7966
|
-
return createStub({
|
7967
|
-
name: 'transition-group',
|
7968
|
-
type: type,
|
7969
|
-
renderStubDefaultSlot: true
|
7970
|
-
});
|
7971
|
-
}
|
7972
|
-
if (
|
7973
|
-
// Don't stub VTU_ROOT component
|
7974
|
-
!instance ||
|
7975
|
-
// Don't stub mounted component on root level
|
7976
|
-
(rootComponents.component === type && !(instance === null || instance === void 0 ? void 0 : instance.parent)) ||
|
7977
|
-
// Don't stub component with compat wrapper
|
7978
|
-
(rootComponents.functional && rootComponents.functional === type)) {
|
8047
|
+
// Don't stub root components
|
8048
|
+
if (isRootComponent(rootComponents, type, instance)) {
|
7979
8049
|
return type;
|
7980
8050
|
}
|
7981
8051
|
var registeredName = getComponentRegisteredName(instance, type);
|
@@ -8028,7 +8098,8 @@ function createStubComponentsTransformer(_a) {
|
|
8028
8098
|
var stubName = name || registeredName || componentName;
|
8029
8099
|
return ((_c = (_b = (_a = config.plugins).createStubs) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
8030
8100
|
name: stubName,
|
8031
|
-
component: type
|
8101
|
+
component: type,
|
8102
|
+
registerStub: registerStub
|
8032
8103
|
})) !== null && _c !== void 0 ? _c : createStub({
|
8033
8104
|
name: stubName,
|
8034
8105
|
type: type,
|
@@ -8063,6 +8134,38 @@ function createStubDirectivesTransformer(_a) {
|
|
8063
8134
|
};
|
8064
8135
|
}
|
8065
8136
|
|
8137
|
+
/**
|
8138
|
+
* Implementation details of isDeepRef to avoid circular dependencies.
|
8139
|
+
* It keeps track of visited objects to avoid infinite recursion.
|
8140
|
+
*
|
8141
|
+
* @param r The value to check for a Ref.
|
8142
|
+
* @param visitedObjects a weak map to keep track of visited objects and avoid infinite recursion
|
8143
|
+
* @returns returns true if the value is a Ref, false otherwise
|
8144
|
+
*/
|
8145
|
+
var deeplyCheckForRef = function (r, visitedObjects) {
|
8146
|
+
if (Vue.isRef(r))
|
8147
|
+
return true;
|
8148
|
+
if (!isObject(r))
|
8149
|
+
return false;
|
8150
|
+
if (visitedObjects.has(r))
|
8151
|
+
return false;
|
8152
|
+
visitedObjects.set(r, true);
|
8153
|
+
return Object.values(r).some(function (val) { return deeplyCheckForRef(val, visitedObjects); });
|
8154
|
+
};
|
8155
|
+
/**
|
8156
|
+
* Checks if the given value is a DeepRef.
|
8157
|
+
*
|
8158
|
+
* For both arrays and objects, it will recursively check
|
8159
|
+
* if any of their values is a Ref.
|
8160
|
+
*
|
8161
|
+
* @param {DeepRef<T> | unknown} r - The value to check.
|
8162
|
+
* @returns {boolean} Returns true if the value is a DeepRef, false otherwise.
|
8163
|
+
*/
|
8164
|
+
var isDeepRef = function (r) {
|
8165
|
+
var visitedObjects = new WeakMap();
|
8166
|
+
return deeplyCheckForRef(r, visitedObjects);
|
8167
|
+
};
|
8168
|
+
|
8066
8169
|
var MOUNT_OPTIONS = [
|
8067
8170
|
'attachTo',
|
8068
8171
|
'attrs',
|
@@ -8120,20 +8223,6 @@ function createInstance(inputComponent, options) {
|
|
8120
8223
|
// We've just replaced our component with its copy
|
8121
8224
|
// Let's register it as a stub so user can find it
|
8122
8225
|
registerStub({ source: originalComponent, stub: component });
|
8123
|
-
var el = document.createElement('div');
|
8124
|
-
if (options === null || options === void 0 ? void 0 : options.attachTo) {
|
8125
|
-
var to = void 0;
|
8126
|
-
if (typeof options.attachTo === 'string') {
|
8127
|
-
to = document.querySelector(options.attachTo);
|
8128
|
-
if (!to) {
|
8129
|
-
throw new Error("Unable to find the element matching the selector ".concat(options.attachTo, " given as the `attachTo` option"));
|
8130
|
-
}
|
8131
|
-
}
|
8132
|
-
else {
|
8133
|
-
to = options.attachTo;
|
8134
|
-
}
|
8135
|
-
to.appendChild(el);
|
8136
|
-
}
|
8137
8226
|
function slotToFunction(slot) {
|
8138
8227
|
switch (typeof slot) {
|
8139
8228
|
case 'function':
|
@@ -8178,7 +8267,7 @@ function createInstance(inputComponent, options) {
|
|
8178
8267
|
var props = Vue.reactive({});
|
8179
8268
|
Object.entries(__assign(__assign(__assign(__assign({}, options === null || options === void 0 ? void 0 : options.attrs), options === null || options === void 0 ? void 0 : options.propsData), options === null || options === void 0 ? void 0 : options.props), { ref: MOUNT_COMPONENT_REF })).forEach(function (_a) {
|
8180
8269
|
var k = _a[0], v = _a[1];
|
8181
|
-
if (
|
8270
|
+
if (isDeepRef(v)) {
|
8182
8271
|
refs[k] = v;
|
8183
8272
|
}
|
8184
8273
|
else {
|
@@ -8210,7 +8299,7 @@ function createInstance(inputComponent, options) {
|
|
8210
8299
|
attachEmitListener();
|
8211
8300
|
// global mocks mixin
|
8212
8301
|
if (global === null || global === void 0 ? void 0 : global.mocks) {
|
8213
|
-
var mixin =
|
8302
|
+
var mixin = {
|
8214
8303
|
beforeCreate: function () {
|
8215
8304
|
// we need to differentiate components that are or not not `script setup`
|
8216
8305
|
// otherwise we run into a proxy set error
|
@@ -8246,7 +8335,7 @@ function createInstance(inputComponent, options) {
|
|
8246
8335
|
}
|
8247
8336
|
}
|
8248
8337
|
}
|
8249
|
-
}
|
8338
|
+
};
|
8250
8339
|
app.mixin(mixin);
|
8251
8340
|
}
|
8252
8341
|
// AppConfig
|
@@ -8258,10 +8347,18 @@ function createInstance(inputComponent, options) {
|
|
8258
8347
|
: v;
|
8259
8348
|
}
|
8260
8349
|
}
|
8350
|
+
// provide any values passed via provides mounting option
|
8351
|
+
if (global.provide) {
|
8352
|
+
for (var _c = 0, _d = Reflect.ownKeys(global.provide); _c < _d.length; _c++) {
|
8353
|
+
var key = _d[_c];
|
8354
|
+
// @ts-ignore: https://github.com/microsoft/TypeScript/issues/1863
|
8355
|
+
app.provide(key, global.provide[key]);
|
8356
|
+
}
|
8357
|
+
}
|
8261
8358
|
// use and plugins from mounting options
|
8262
8359
|
if (global.plugins) {
|
8263
|
-
for (var
|
8264
|
-
var plugin =
|
8360
|
+
for (var _e = 0, _f = global.plugins; _e < _f.length; _e++) {
|
8361
|
+
var plugin = _f[_e];
|
8265
8362
|
if (Array.isArray(plugin)) {
|
8266
8363
|
app.use.apply(app, __spreadArray([plugin[0]], plugin.slice(1), false));
|
8267
8364
|
continue;
|
@@ -8271,14 +8368,14 @@ function createInstance(inputComponent, options) {
|
|
8271
8368
|
}
|
8272
8369
|
// use any mixins from mounting options
|
8273
8370
|
if (global.mixins) {
|
8274
|
-
for (var
|
8275
|
-
var mixin =
|
8371
|
+
for (var _g = 0, _h = global.mixins; _g < _h.length; _g++) {
|
8372
|
+
var mixin = _h[_g];
|
8276
8373
|
app.mixin(mixin);
|
8277
8374
|
}
|
8278
8375
|
}
|
8279
8376
|
if (global.components) {
|
8280
|
-
for (var
|
8281
|
-
var key =
|
8377
|
+
for (var _j = 0, _k = Object.keys(global.components); _j < _k.length; _j++) {
|
8378
|
+
var key = _k[_j];
|
8282
8379
|
// avoid registering components that are stubbed twice
|
8283
8380
|
if (!(key in global.stubs)) {
|
8284
8381
|
app.component(key, global.components[key]);
|
@@ -8286,23 +8383,16 @@ function createInstance(inputComponent, options) {
|
|
8286
8383
|
}
|
8287
8384
|
}
|
8288
8385
|
if (global.directives) {
|
8289
|
-
for (var
|
8290
|
-
var key = _k[_j];
|
8291
|
-
app.directive(key, global.directives[key]);
|
8292
|
-
}
|
8293
|
-
}
|
8294
|
-
// provide any values passed via provides mounting option
|
8295
|
-
if (global.provide) {
|
8296
|
-
for (var _l = 0, _m = Reflect.ownKeys(global.provide); _l < _m.length; _l++) {
|
8386
|
+
for (var _l = 0, _m = Object.keys(global.directives); _l < _m.length; _l++) {
|
8297
8387
|
var key = _m[_l];
|
8298
|
-
|
8299
|
-
app.provide(key, global.provide[key]);
|
8388
|
+
app.directive(key, global.directives[key]);
|
8300
8389
|
}
|
8301
8390
|
}
|
8302
8391
|
// stubs
|
8303
8392
|
// even if we are using `mount`, we will still
|
8304
8393
|
// stub out Transition and Transition Group by default.
|
8305
8394
|
Vue.transformVNodeArgs(createVNodeTransformer({
|
8395
|
+
rootComponents: rootComponents,
|
8306
8396
|
transformers: [
|
8307
8397
|
createStubComponentsTransformer({
|
8308
8398
|
rootComponents: rootComponents,
|
@@ -8335,15 +8425,38 @@ function createInstance(inputComponent, options) {
|
|
8335
8425
|
}
|
8336
8426
|
return {
|
8337
8427
|
app: app,
|
8338
|
-
el: el,
|
8339
8428
|
props: props,
|
8340
8429
|
componentRef: componentRef
|
8341
8430
|
};
|
8342
8431
|
}
|
8343
8432
|
|
8433
|
+
var isEnabled = false;
|
8434
|
+
var wrapperInstances = [];
|
8435
|
+
function disableAutoUnmount() {
|
8436
|
+
isEnabled = false;
|
8437
|
+
wrapperInstances.length = 0;
|
8438
|
+
}
|
8439
|
+
function enableAutoUnmount(hook) {
|
8440
|
+
if (isEnabled) {
|
8441
|
+
throw new Error('enableAutoUnmount cannot be called more than once');
|
8442
|
+
}
|
8443
|
+
isEnabled = true;
|
8444
|
+
hook(function () {
|
8445
|
+
wrapperInstances.forEach(function (wrapper) {
|
8446
|
+
wrapper.unmount();
|
8447
|
+
});
|
8448
|
+
wrapperInstances.length = 0;
|
8449
|
+
});
|
8450
|
+
}
|
8451
|
+
function trackInstance(wrapper) {
|
8452
|
+
if (!isEnabled)
|
8453
|
+
return;
|
8454
|
+
wrapperInstances.push(wrapper);
|
8455
|
+
}
|
8456
|
+
|
8344
8457
|
// implementation
|
8345
8458
|
function mount$1(inputComponent, options) {
|
8346
|
-
var _a = createInstance(inputComponent, options), app = _a.app, props = _a.props,
|
8459
|
+
var _a = createInstance(inputComponent, options), app = _a.app, props = _a.props, componentRef = _a.componentRef;
|
8347
8460
|
var setProps = function (newProps) {
|
8348
8461
|
for (var _i = 0, _a = Object.entries(newProps); _i < _a.length; _i++) {
|
8349
8462
|
var _b = _a[_i], k = _b[0], v = _b[1];
|
@@ -8353,15 +8466,30 @@ function mount$1(inputComponent, options) {
|
|
8353
8466
|
};
|
8354
8467
|
// Workaround for https://github.com/vuejs/core/issues/7020
|
8355
8468
|
var originalErrorHandler = app.config.errorHandler;
|
8356
|
-
var
|
8469
|
+
var errorsOnMount = [];
|
8357
8470
|
app.config.errorHandler = function (err, instance, info) {
|
8358
|
-
|
8471
|
+
errorsOnMount.push(err);
|
8359
8472
|
return originalErrorHandler === null || originalErrorHandler === void 0 ? void 0 : originalErrorHandler(err, instance, info);
|
8360
8473
|
};
|
8361
8474
|
// mount the app!
|
8475
|
+
var el = document.createElement('div');
|
8476
|
+
if (options === null || options === void 0 ? void 0 : options.attachTo) {
|
8477
|
+
var to = void 0;
|
8478
|
+
if (typeof options.attachTo === 'string') {
|
8479
|
+
to = document.querySelector(options.attachTo);
|
8480
|
+
if (!to) {
|
8481
|
+
throw new Error("Unable to find the element matching the selector ".concat(options.attachTo, " given as the `attachTo` option"));
|
8482
|
+
}
|
8483
|
+
}
|
8484
|
+
else {
|
8485
|
+
to = options.attachTo;
|
8486
|
+
}
|
8487
|
+
to.appendChild(el);
|
8488
|
+
}
|
8362
8489
|
var vm = app.mount(el);
|
8363
|
-
if (
|
8364
|
-
throw
|
8490
|
+
if (errorsOnMount.length) {
|
8491
|
+
// If several errors are thrown during mount, then throw the first one
|
8492
|
+
throw errorsOnMount[0];
|
8365
8493
|
}
|
8366
8494
|
app.config.errorHandler = originalErrorHandler;
|
8367
8495
|
var appRef = componentRef.value;
|
@@ -8381,6 +8509,9 @@ var shallowMount$1 = function (component, options) {
|
|
8381
8509
|
};
|
8382
8510
|
|
8383
8511
|
function renderToString(component, options) {
|
8512
|
+
if (options === null || options === void 0 ? void 0 : options.attachTo) {
|
8513
|
+
console.warn('attachTo option is not available for renderToString');
|
8514
|
+
}
|
8384
8515
|
var app = createInstance(component, options).app;
|
8385
8516
|
return serverRenderer.renderToString(app);
|
8386
8517
|
}
|
@@ -8489,7 +8620,6 @@ const cleanup = () => {
|
|
8489
8620
|
* })
|
8490
8621
|
*/
|
8491
8622
|
function mount(componentOptions, options = {}) {
|
8492
|
-
checkForRemovedStyleOptions(options);
|
8493
8623
|
// Remove last mounted component if cy.mount is called more than once in a test
|
8494
8624
|
cleanup();
|
8495
8625
|
// then wait for cypress to load
|
@@ -8526,16 +8656,7 @@ function mount(componentOptions, options = {}) {
|
|
8526
8656
|
wrapper,
|
8527
8657
|
component: wrapper.vm,
|
8528
8658
|
};
|
8529
|
-
return
|
8530
|
-
get(obj, prop) {
|
8531
|
-
// throw an error if it looks like the caller is trying to call a method on the VueWrapper that was originally returned
|
8532
|
-
if (Reflect.get(wrapper, prop)) {
|
8533
|
-
// @ts-expect-error - internal API
|
8534
|
-
Cypress.utils.throwErrByPath('mount.vue_yielded_value');
|
8535
|
-
}
|
8536
|
-
return Reflect.get(obj, prop);
|
8537
|
-
},
|
8538
|
-
});
|
8659
|
+
return returnVal;
|
8539
8660
|
});
|
8540
8661
|
});
|
8541
8662
|
}
|
@@ -8559,21 +8680,6 @@ function getComponentDisplayName(componentOptions) {
|
|
8559
8680
|
}
|
8560
8681
|
return DEFAULT_COMP_NAME;
|
8561
8682
|
}
|
8562
|
-
/**
|
8563
|
-
* Helper function for mounting a component quickly in test hooks.
|
8564
|
-
* @example
|
8565
|
-
* import {mountCallback} from '@cypress/vue'
|
8566
|
-
* beforeEach(mountVue(component, options))
|
8567
|
-
*
|
8568
|
-
* Removed as of Cypress 11.0.0.
|
8569
|
-
* @see https://on.cypress.io/migration-11-0-0-component-testing-updates
|
8570
|
-
*/
|
8571
|
-
function mountCallback(component, options = {}) {
|
8572
|
-
return () => {
|
8573
|
-
// @ts-expect-error - undocumented API
|
8574
|
-
Cypress.utils.throwErrByPath('mount.mount_callback');
|
8575
|
-
};
|
8576
|
-
}
|
8577
8683
|
// Side effects from "import { mount } from '@cypress/<my-framework>'" are annoying, we should avoid doing this
|
8578
8684
|
// by creating an explicit function/import that the user can register in their 'component.js' support file,
|
8579
8685
|
// such as:
|
@@ -8586,4 +8692,3 @@ setupHooks(cleanup);
|
|
8586
8692
|
|
8587
8693
|
exports.VueTestUtils = VueTestUtils;
|
8588
8694
|
exports.mount = mount;
|
8589
|
-
exports.mountCallback = mountCallback;
|