@vue/compiler-sfc 3.5.16 → 3.5.17
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/dist/compiler-sfc.cjs.js +271 -299
- package/dist/compiler-sfc.esm-browser.js +286 -198
- package/package.json +10 -10
package/dist/compiler-sfc.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/compiler-sfc v3.5.
|
|
2
|
+
* @vue/compiler-sfc v3.5.17
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -12416,7 +12416,7 @@ function requireLodash_camelcase () {
|
|
|
12416
12416
|
function castSlice(array, start, end) {
|
|
12417
12417
|
var length = array.length;
|
|
12418
12418
|
end = end === undefined ? length : end;
|
|
12419
|
-
return (
|
|
12419
|
+
return (!start && end >= length) ? array : baseSlice(array, start, end);
|
|
12420
12420
|
}
|
|
12421
12421
|
|
|
12422
12422
|
/**
|
|
@@ -19923,289 +19923,250 @@ export default ${defaultVar}`;
|
|
|
19923
19923
|
}
|
|
19924
19924
|
}
|
|
19925
19925
|
|
|
19926
|
-
|
|
19927
|
-
|
|
19928
|
-
|
|
19929
|
-
|
|
19930
|
-
|
|
19931
|
-
|
|
19932
|
-
|
|
19933
|
-
|
|
19934
|
-
|
|
19935
|
-
|
|
19936
|
-
|
|
19937
|
-
|
|
19938
|
-
|
|
19939
|
-
|
|
19940
|
-
|
|
19941
|
-
|
|
19942
|
-
|
|
19943
|
-
|
|
19944
|
-
|
|
19945
|
-
|
|
19946
|
-
|
|
19947
|
-
|
|
19948
|
-
|
|
19949
|
-
|
|
19950
|
-
|
|
19951
|
-
|
|
19952
|
-
|
|
19953
|
-
|
|
19954
|
-
|
|
19955
|
-
|
|
19956
|
-
|
|
19957
|
-
|
|
19958
|
-
|
|
19959
|
-
|
|
19960
|
-
|
|
19961
|
-
|
|
19962
|
-
|
|
19963
|
-
|
|
19964
|
-
|
|
19965
|
-
|
|
19966
|
-
|
|
19967
|
-
|
|
19968
|
-
|
|
19969
|
-
|
|
19970
|
-
|
|
19971
|
-
|
|
19972
|
-
|
|
19973
|
-
|
|
19974
|
-
|
|
19975
|
-
|
|
19976
|
-
|
|
19977
|
-
|
|
19978
|
-
|
|
19979
|
-
|
|
19980
|
-
bi = str.indexOf(b, i + 1);
|
|
19981
|
-
}
|
|
19982
|
-
|
|
19983
|
-
i = ai < bi && ai >= 0 ? ai : bi;
|
|
19984
|
-
}
|
|
19985
|
-
|
|
19986
|
-
if (begs.length) {
|
|
19987
|
-
result = [ left, right ];
|
|
19988
|
-
}
|
|
19989
|
-
}
|
|
19926
|
+
const balanced = (a, b, str) => {
|
|
19927
|
+
const ma = a instanceof RegExp ? maybeMatch(a, str) : a;
|
|
19928
|
+
const mb = b instanceof RegExp ? maybeMatch(b, str) : b;
|
|
19929
|
+
const r = ma !== null && mb != null && range(ma, mb, str);
|
|
19930
|
+
return (r && {
|
|
19931
|
+
start: r[0],
|
|
19932
|
+
end: r[1],
|
|
19933
|
+
pre: str.slice(0, r[0]),
|
|
19934
|
+
body: str.slice(r[0] + ma.length, r[1]),
|
|
19935
|
+
post: str.slice(r[1] + mb.length),
|
|
19936
|
+
});
|
|
19937
|
+
};
|
|
19938
|
+
const maybeMatch = (reg, str) => {
|
|
19939
|
+
const m = str.match(reg);
|
|
19940
|
+
return m ? m[0] : null;
|
|
19941
|
+
};
|
|
19942
|
+
const range = (a, b, str) => {
|
|
19943
|
+
let begs, beg, left, right = undefined, result;
|
|
19944
|
+
let ai = str.indexOf(a);
|
|
19945
|
+
let bi = str.indexOf(b, ai + 1);
|
|
19946
|
+
let i = ai;
|
|
19947
|
+
if (ai >= 0 && bi > 0) {
|
|
19948
|
+
if (a === b) {
|
|
19949
|
+
return [ai, bi];
|
|
19950
|
+
}
|
|
19951
|
+
begs = [];
|
|
19952
|
+
left = str.length;
|
|
19953
|
+
while (i >= 0 && !result) {
|
|
19954
|
+
if (i === ai) {
|
|
19955
|
+
begs.push(i);
|
|
19956
|
+
ai = str.indexOf(a, i + 1);
|
|
19957
|
+
}
|
|
19958
|
+
else if (begs.length === 1) {
|
|
19959
|
+
const r = begs.pop();
|
|
19960
|
+
if (r !== undefined)
|
|
19961
|
+
result = [r, bi];
|
|
19962
|
+
}
|
|
19963
|
+
else {
|
|
19964
|
+
beg = begs.pop();
|
|
19965
|
+
if (beg !== undefined && beg < left) {
|
|
19966
|
+
left = beg;
|
|
19967
|
+
right = bi;
|
|
19968
|
+
}
|
|
19969
|
+
bi = str.indexOf(b, i + 1);
|
|
19970
|
+
}
|
|
19971
|
+
i = ai < bi && ai >= 0 ? ai : bi;
|
|
19972
|
+
}
|
|
19973
|
+
if (begs.length && right !== undefined) {
|
|
19974
|
+
result = [left, right];
|
|
19975
|
+
}
|
|
19976
|
+
}
|
|
19977
|
+
return result;
|
|
19978
|
+
};
|
|
19990
19979
|
|
|
19991
|
-
|
|
19992
|
-
|
|
19993
|
-
|
|
19980
|
+
const escSlash = '\0SLASH' + Math.random() + '\0';
|
|
19981
|
+
const escOpen = '\0OPEN' + Math.random() + '\0';
|
|
19982
|
+
const escClose = '\0CLOSE' + Math.random() + '\0';
|
|
19983
|
+
const escComma = '\0COMMA' + Math.random() + '\0';
|
|
19984
|
+
const escPeriod = '\0PERIOD' + Math.random() + '\0';
|
|
19985
|
+
const escSlashPattern = new RegExp(escSlash, 'g');
|
|
19986
|
+
const escOpenPattern = new RegExp(escOpen, 'g');
|
|
19987
|
+
const escClosePattern = new RegExp(escClose, 'g');
|
|
19988
|
+
const escCommaPattern = new RegExp(escComma, 'g');
|
|
19989
|
+
const escPeriodPattern = new RegExp(escPeriod, 'g');
|
|
19990
|
+
const slashPattern = /\\\\/g;
|
|
19991
|
+
const openPattern = /\\{/g;
|
|
19992
|
+
const closePattern = /\\}/g;
|
|
19993
|
+
const commaPattern = /\\,/g;
|
|
19994
|
+
const periodPattern = /\\./g;
|
|
19995
|
+
function numeric(str) {
|
|
19996
|
+
return !isNaN(str) ? parseInt(str, 10) : str.charCodeAt(0);
|
|
19997
|
+
}
|
|
19998
|
+
function escapeBraces(str) {
|
|
19999
|
+
return str
|
|
20000
|
+
.replace(slashPattern, escSlash)
|
|
20001
|
+
.replace(openPattern, escOpen)
|
|
20002
|
+
.replace(closePattern, escClose)
|
|
20003
|
+
.replace(commaPattern, escComma)
|
|
20004
|
+
.replace(periodPattern, escPeriod);
|
|
20005
|
+
}
|
|
20006
|
+
function unescapeBraces(str) {
|
|
20007
|
+
return str
|
|
20008
|
+
.replace(escSlashPattern, '\\')
|
|
20009
|
+
.replace(escOpenPattern, '{')
|
|
20010
|
+
.replace(escClosePattern, '}')
|
|
20011
|
+
.replace(escCommaPattern, ',')
|
|
20012
|
+
.replace(escPeriodPattern, '.');
|
|
19994
20013
|
}
|
|
19995
|
-
|
|
19996
|
-
|
|
19997
|
-
|
|
19998
|
-
|
|
19999
|
-
|
|
20000
|
-
|
|
20001
|
-
|
|
20002
|
-
|
|
20003
|
-
|
|
20004
|
-
|
|
20005
|
-
|
|
20006
|
-
|
|
20007
|
-
|
|
20008
|
-
|
|
20009
|
-
|
|
20010
|
-
|
|
20011
|
-
|
|
20012
|
-
|
|
20013
|
-
|
|
20014
|
-
|
|
20015
|
-
|
|
20016
|
-
|
|
20017
|
-
|
|
20018
|
-
|
|
20019
|
-
|
|
20020
|
-
|
|
20021
|
-
|
|
20022
|
-
|
|
20023
|
-
|
|
20024
|
-
|
|
20025
|
-
|
|
20026
|
-
|
|
20027
|
-
|
|
20028
|
-
|
|
20029
|
-
|
|
20030
|
-
|
|
20031
|
-
|
|
20032
|
-
|
|
20033
|
-
|
|
20034
|
-
|
|
20035
|
-
|
|
20036
|
-
|
|
20037
|
-
|
|
20038
|
-
|
|
20039
|
-
|
|
20040
|
-
|
|
20041
|
-
|
|
20042
|
-
|
|
20043
|
-
|
|
20044
|
-
|
|
20045
|
-
|
|
20046
|
-
|
|
20047
|
-
|
|
20048
|
-
|
|
20049
|
-
|
|
20050
|
-
|
|
20051
|
-
|
|
20052
|
-
|
|
20053
|
-
|
|
20054
|
-
|
|
20055
|
-
|
|
20056
|
-
|
|
20057
|
-
|
|
20058
|
-
|
|
20059
|
-
|
|
20060
|
-
|
|
20061
|
-
|
|
20062
|
-
|
|
20063
|
-
|
|
20064
|
-
|
|
20065
|
-
|
|
20066
|
-
|
|
20067
|
-
|
|
20068
|
-
|
|
20069
|
-
|
|
20070
|
-
|
|
20071
|
-
|
|
20072
|
-
|
|
20073
|
-
|
|
20074
|
-
|
|
20075
|
-
|
|
20076
|
-
|
|
20077
|
-
|
|
20078
|
-
|
|
20079
|
-
|
|
20080
|
-
|
|
20081
|
-
|
|
20082
|
-
|
|
20083
|
-
|
|
20084
|
-
|
|
20085
|
-
|
|
20086
|
-
|
|
20087
|
-
|
|
20088
|
-
|
|
20089
|
-
|
|
20090
|
-
|
|
20091
|
-
|
|
20092
|
-
|
|
20093
|
-
|
|
20094
|
-
|
|
20095
|
-
|
|
20096
|
-
|
|
20097
|
-
|
|
20098
|
-
|
|
20099
|
-
|
|
20100
|
-
|
|
20101
|
-
|
|
20102
|
-
|
|
20103
|
-
|
|
20104
|
-
|
|
20105
|
-
|
|
20106
|
-
|
|
20107
|
-
|
|
20108
|
-
|
|
20109
|
-
|
|
20110
|
-
|
|
20111
|
-
|
|
20112
|
-
|
|
20113
|
-
|
|
20114
|
-
|
|
20115
|
-
|
|
20116
|
-
|
|
20117
|
-
|
|
20118
|
-
|
|
20119
|
-
|
|
20120
|
-
|
|
20121
|
-
|
|
20122
|
-
|
|
20123
|
-
|
|
20124
|
-
|
|
20125
|
-
|
|
20126
|
-
|
|
20127
|
-
|
|
20128
|
-
|
|
20129
|
-
|
|
20130
|
-
|
|
20131
|
-
|
|
20132
|
-
|
|
20133
|
-
|
|
20134
|
-
|
|
20135
|
-
|
|
20136
|
-
|
|
20137
|
-
|
|
20138
|
-
|
|
20139
|
-
|
|
20140
|
-
|
|
20141
|
-
|
|
20142
|
-
|
|
20143
|
-
|
|
20144
|
-
|
|
20145
|
-
|
|
20146
|
-
|
|
20147
|
-
|
|
20148
|
-
|
|
20149
|
-
|
|
20150
|
-
var width = Math.max(n[0].length, n[1].length);
|
|
20151
|
-
var incr = n.length == 3
|
|
20152
|
-
? Math.abs(numeric(n[2]))
|
|
20153
|
-
: 1;
|
|
20154
|
-
var test = lte;
|
|
20155
|
-
var reverse = y < x;
|
|
20156
|
-
if (reverse) {
|
|
20157
|
-
incr *= -1;
|
|
20158
|
-
test = gte;
|
|
20159
|
-
}
|
|
20160
|
-
var pad = n.some(isPadded);
|
|
20161
|
-
|
|
20162
|
-
N = [];
|
|
20163
|
-
|
|
20164
|
-
for (var i = x; test(i, y); i += incr) {
|
|
20165
|
-
var c;
|
|
20166
|
-
if (isAlphaSequence) {
|
|
20167
|
-
c = String.fromCharCode(i);
|
|
20168
|
-
if (c === '\\')
|
|
20169
|
-
c = '';
|
|
20170
|
-
} else {
|
|
20171
|
-
c = String(i);
|
|
20172
|
-
if (pad) {
|
|
20173
|
-
var need = width - c.length;
|
|
20174
|
-
if (need > 0) {
|
|
20175
|
-
var z = new Array(need + 1).join('0');
|
|
20176
|
-
if (i < 0)
|
|
20177
|
-
c = '-' + z + c.slice(1);
|
|
20178
|
-
else
|
|
20179
|
-
c = z + c;
|
|
20180
|
-
}
|
|
20181
|
-
}
|
|
20182
|
-
}
|
|
20183
|
-
N.push(c);
|
|
20184
|
-
}
|
|
20185
|
-
} else {
|
|
20186
|
-
N = [];
|
|
20187
|
-
|
|
20188
|
-
for (var j = 0; j < n.length; j++) {
|
|
20189
|
-
N.push.apply(N, expand(n[j], false));
|
|
20190
|
-
}
|
|
20191
|
-
}
|
|
20192
|
-
|
|
20193
|
-
for (var j = 0; j < N.length; j++) {
|
|
20194
|
-
for (var k = 0; k < post.length; k++) {
|
|
20195
|
-
var expansion = pre + N[j] + post[k];
|
|
20196
|
-
if (!isTop || isSequence || expansion)
|
|
20197
|
-
expansions.push(expansion);
|
|
20198
|
-
}
|
|
20199
|
-
}
|
|
20200
|
-
}
|
|
20201
|
-
|
|
20202
|
-
return expansions;
|
|
20203
|
-
}
|
|
20204
|
-
return braceExpansion;
|
|
20014
|
+
/**
|
|
20015
|
+
* Basically just str.split(","), but handling cases
|
|
20016
|
+
* where we have nested braced sections, which should be
|
|
20017
|
+
* treated as individual members, like {a,{b,c},d}
|
|
20018
|
+
*/
|
|
20019
|
+
function parseCommaParts(str) {
|
|
20020
|
+
if (!str) {
|
|
20021
|
+
return [''];
|
|
20022
|
+
}
|
|
20023
|
+
const parts = [];
|
|
20024
|
+
const m = balanced('{', '}', str);
|
|
20025
|
+
if (!m) {
|
|
20026
|
+
return str.split(',');
|
|
20027
|
+
}
|
|
20028
|
+
const { pre, body, post } = m;
|
|
20029
|
+
const p = pre.split(',');
|
|
20030
|
+
p[p.length - 1] += '{' + body + '}';
|
|
20031
|
+
const postParts = parseCommaParts(post);
|
|
20032
|
+
if (post.length) {
|
|
20033
|
+
p[p.length - 1] += postParts.shift();
|
|
20034
|
+
p.push.apply(p, postParts);
|
|
20035
|
+
}
|
|
20036
|
+
parts.push.apply(parts, p);
|
|
20037
|
+
return parts;
|
|
20038
|
+
}
|
|
20039
|
+
function expand(str) {
|
|
20040
|
+
if (!str) {
|
|
20041
|
+
return [];
|
|
20042
|
+
}
|
|
20043
|
+
// I don't know why Bash 4.3 does this, but it does.
|
|
20044
|
+
// Anything starting with {} will have the first two bytes preserved
|
|
20045
|
+
// but *only* at the top level, so {},a}b will not expand to anything,
|
|
20046
|
+
// but a{},b}c will be expanded to [a}c,abc].
|
|
20047
|
+
// One could argue that this is a bug in Bash, but since the goal of
|
|
20048
|
+
// this module is to match Bash's rules, we escape a leading {}
|
|
20049
|
+
if (str.slice(0, 2) === '{}') {
|
|
20050
|
+
str = '\\{\\}' + str.slice(2);
|
|
20051
|
+
}
|
|
20052
|
+
return expand_(escapeBraces(str), true).map(unescapeBraces);
|
|
20053
|
+
}
|
|
20054
|
+
function embrace(str) {
|
|
20055
|
+
return '{' + str + '}';
|
|
20056
|
+
}
|
|
20057
|
+
function isPadded(el) {
|
|
20058
|
+
return /^-?0\d/.test(el);
|
|
20059
|
+
}
|
|
20060
|
+
function lte(i, y) {
|
|
20061
|
+
return i <= y;
|
|
20062
|
+
}
|
|
20063
|
+
function gte(i, y) {
|
|
20064
|
+
return i >= y;
|
|
20065
|
+
}
|
|
20066
|
+
function expand_(str, isTop) {
|
|
20067
|
+
/** @type {string[]} */
|
|
20068
|
+
const expansions = [];
|
|
20069
|
+
const m = balanced('{', '}', str);
|
|
20070
|
+
if (!m)
|
|
20071
|
+
return [str];
|
|
20072
|
+
// no need to expand pre, since it is guaranteed to be free of brace-sets
|
|
20073
|
+
const pre = m.pre;
|
|
20074
|
+
const post = m.post.length ? expand_(m.post, false) : [''];
|
|
20075
|
+
if (/\$$/.test(m.pre)) {
|
|
20076
|
+
for (let k = 0; k < post.length; k++) {
|
|
20077
|
+
const expansion = pre + '{' + m.body + '}' + post[k];
|
|
20078
|
+
expansions.push(expansion);
|
|
20079
|
+
}
|
|
20080
|
+
}
|
|
20081
|
+
else {
|
|
20082
|
+
const isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
|
|
20083
|
+
const isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
|
|
20084
|
+
const isSequence = isNumericSequence || isAlphaSequence;
|
|
20085
|
+
const isOptions = m.body.indexOf(',') >= 0;
|
|
20086
|
+
if (!isSequence && !isOptions) {
|
|
20087
|
+
// {a},b}
|
|
20088
|
+
if (m.post.match(/,(?!,).*\}/)) {
|
|
20089
|
+
str = m.pre + '{' + m.body + escClose + m.post;
|
|
20090
|
+
return expand_(str);
|
|
20091
|
+
}
|
|
20092
|
+
return [str];
|
|
20093
|
+
}
|
|
20094
|
+
let n;
|
|
20095
|
+
if (isSequence) {
|
|
20096
|
+
n = m.body.split(/\.\./);
|
|
20097
|
+
}
|
|
20098
|
+
else {
|
|
20099
|
+
n = parseCommaParts(m.body);
|
|
20100
|
+
if (n.length === 1 && n[0] !== undefined) {
|
|
20101
|
+
// x{{a,b}}y ==> x{a}y x{b}y
|
|
20102
|
+
n = expand_(n[0], false).map(embrace);
|
|
20103
|
+
//XXX is this necessary? Can't seem to hit it in tests.
|
|
20104
|
+
/* c8 ignore start */
|
|
20105
|
+
if (n.length === 1) {
|
|
20106
|
+
return post.map(p => m.pre + n[0] + p);
|
|
20107
|
+
}
|
|
20108
|
+
/* c8 ignore stop */
|
|
20109
|
+
}
|
|
20110
|
+
}
|
|
20111
|
+
// at this point, n is the parts, and we know it's not a comma set
|
|
20112
|
+
// with a single entry.
|
|
20113
|
+
let N;
|
|
20114
|
+
if (isSequence && n[0] !== undefined && n[1] !== undefined) {
|
|
20115
|
+
const x = numeric(n[0]);
|
|
20116
|
+
const y = numeric(n[1]);
|
|
20117
|
+
const width = Math.max(n[0].length, n[1].length);
|
|
20118
|
+
let incr = n.length === 3 && n[2] !== undefined ? Math.abs(numeric(n[2])) : 1;
|
|
20119
|
+
let test = lte;
|
|
20120
|
+
const reverse = y < x;
|
|
20121
|
+
if (reverse) {
|
|
20122
|
+
incr *= -1;
|
|
20123
|
+
test = gte;
|
|
20124
|
+
}
|
|
20125
|
+
const pad = n.some(isPadded);
|
|
20126
|
+
N = [];
|
|
20127
|
+
for (let i = x; test(i, y); i += incr) {
|
|
20128
|
+
let c;
|
|
20129
|
+
if (isAlphaSequence) {
|
|
20130
|
+
c = String.fromCharCode(i);
|
|
20131
|
+
if (c === '\\') {
|
|
20132
|
+
c = '';
|
|
20133
|
+
}
|
|
20134
|
+
}
|
|
20135
|
+
else {
|
|
20136
|
+
c = String(i);
|
|
20137
|
+
if (pad) {
|
|
20138
|
+
const need = width - c.length;
|
|
20139
|
+
if (need > 0) {
|
|
20140
|
+
const z = new Array(need + 1).join('0');
|
|
20141
|
+
if (i < 0) {
|
|
20142
|
+
c = '-' + z + c.slice(1);
|
|
20143
|
+
}
|
|
20144
|
+
else {
|
|
20145
|
+
c = z + c;
|
|
20146
|
+
}
|
|
20147
|
+
}
|
|
20148
|
+
}
|
|
20149
|
+
}
|
|
20150
|
+
N.push(c);
|
|
20151
|
+
}
|
|
20152
|
+
}
|
|
20153
|
+
else {
|
|
20154
|
+
N = [];
|
|
20155
|
+
for (let j = 0; j < n.length; j++) {
|
|
20156
|
+
N.push.apply(N, expand_(n[j], false));
|
|
20157
|
+
}
|
|
20158
|
+
}
|
|
20159
|
+
for (let j = 0; j < N.length; j++) {
|
|
20160
|
+
for (let k = 0; k < post.length; k++) {
|
|
20161
|
+
const expansion = pre + N[j] + post[k];
|
|
20162
|
+
if (!isTop || isSequence || expansion) {
|
|
20163
|
+
expansions.push(expansion);
|
|
20164
|
+
}
|
|
20165
|
+
}
|
|
20166
|
+
}
|
|
20167
|
+
}
|
|
20168
|
+
return expansions;
|
|
20205
20169
|
}
|
|
20206
|
-
|
|
20207
|
-
var braceExpansionExports = /*@__PURE__*/ requireBraceExpansion();
|
|
20208
|
-
var expand = /*@__PURE__*/getDefaultExportFromCjs(braceExpansionExports);
|
|
20209
20170
|
|
|
20210
20171
|
const MAX_PATTERN_LENGTH = 1024 * 64;
|
|
20211
20172
|
const assertValidPattern = (pattern) => {
|
|
@@ -20866,7 +20827,7 @@ class AST {
|
|
|
20866
20827
|
return [s, unescape(this.toString()), false, false];
|
|
20867
20828
|
}
|
|
20868
20829
|
// XXX abstract out this map method
|
|
20869
|
-
let bodyDotAllowed = !repeated || allowDot || dot ||
|
|
20830
|
+
let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot
|
|
20870
20831
|
? ''
|
|
20871
20832
|
: this.#partsToRegExp(true);
|
|
20872
20833
|
if (bodyDotAllowed === body) {
|
|
@@ -22326,25 +22287,39 @@ function resolveArrayElementType(ctx, node, scope) {
|
|
|
22326
22287
|
scope
|
|
22327
22288
|
);
|
|
22328
22289
|
}
|
|
22329
|
-
function resolveStringType(ctx, node, scope) {
|
|
22290
|
+
function resolveStringType(ctx, node, scope, typeParameters) {
|
|
22330
22291
|
switch (node.type) {
|
|
22331
22292
|
case "StringLiteral":
|
|
22332
22293
|
return [node.value];
|
|
22333
22294
|
case "TSLiteralType":
|
|
22334
|
-
return resolveStringType(ctx, node.literal, scope);
|
|
22295
|
+
return resolveStringType(ctx, node.literal, scope, typeParameters);
|
|
22335
22296
|
case "TSUnionType":
|
|
22336
|
-
return node.types.map((t) => resolveStringType(ctx, t, scope)).flat();
|
|
22297
|
+
return node.types.map((t) => resolveStringType(ctx, t, scope, typeParameters)).flat();
|
|
22337
22298
|
case "TemplateLiteral": {
|
|
22338
22299
|
return resolveTemplateKeys(ctx, node, scope);
|
|
22339
22300
|
}
|
|
22340
22301
|
case "TSTypeReference": {
|
|
22341
22302
|
const resolved = resolveTypeReference(ctx, node, scope);
|
|
22342
22303
|
if (resolved) {
|
|
22343
|
-
return resolveStringType(ctx, resolved, scope);
|
|
22304
|
+
return resolveStringType(ctx, resolved, scope, typeParameters);
|
|
22344
22305
|
}
|
|
22345
22306
|
if (node.typeName.type === "Identifier") {
|
|
22346
|
-
const
|
|
22347
|
-
|
|
22307
|
+
const name = node.typeName.name;
|
|
22308
|
+
if (typeParameters && typeParameters[name]) {
|
|
22309
|
+
return resolveStringType(
|
|
22310
|
+
ctx,
|
|
22311
|
+
typeParameters[name],
|
|
22312
|
+
scope,
|
|
22313
|
+
typeParameters
|
|
22314
|
+
);
|
|
22315
|
+
}
|
|
22316
|
+
const getParam = (index = 0) => resolveStringType(
|
|
22317
|
+
ctx,
|
|
22318
|
+
node.typeParameters.params[index],
|
|
22319
|
+
scope,
|
|
22320
|
+
typeParameters
|
|
22321
|
+
);
|
|
22322
|
+
switch (name) {
|
|
22348
22323
|
case "Extract":
|
|
22349
22324
|
return getParam(1);
|
|
22350
22325
|
case "Exclude": {
|
|
@@ -22431,7 +22406,8 @@ function resolveBuiltin(ctx, node, name, scope, typeParameters) {
|
|
|
22431
22406
|
const picked = resolveStringType(
|
|
22432
22407
|
ctx,
|
|
22433
22408
|
node.typeParameters.params[1],
|
|
22434
|
-
scope
|
|
22409
|
+
scope,
|
|
22410
|
+
typeParameters
|
|
22435
22411
|
);
|
|
22436
22412
|
const res2 = { props: {}, calls: t.calls };
|
|
22437
22413
|
for (const key of picked) {
|
|
@@ -22443,7 +22419,8 @@ function resolveBuiltin(ctx, node, name, scope, typeParameters) {
|
|
|
22443
22419
|
const omitted = resolveStringType(
|
|
22444
22420
|
ctx,
|
|
22445
22421
|
node.typeParameters.params[1],
|
|
22446
|
-
scope
|
|
22422
|
+
scope,
|
|
22423
|
+
typeParameters
|
|
22447
22424
|
);
|
|
22448
22425
|
const res = { props: {}, calls: t.calls };
|
|
22449
22426
|
for (const key in t.props) {
|
|
@@ -23094,13 +23071,8 @@ function inferRuntimeType(ctx, node, scope = node._ownerScope || ctxToScope(ctx)
|
|
|
23094
23071
|
case "TSTypeReference": {
|
|
23095
23072
|
const resolved = resolveTypeReference(ctx, node, scope);
|
|
23096
23073
|
if (resolved) {
|
|
23097
|
-
if (resolved.type === "TSTypeAliasDeclaration") {
|
|
23098
|
-
return
|
|
23099
|
-
ctx,
|
|
23100
|
-
resolved.typeAnnotation,
|
|
23101
|
-
resolved._ownerScope,
|
|
23102
|
-
isKeyOf
|
|
23103
|
-
);
|
|
23074
|
+
if (resolved.type === "TSTypeAliasDeclaration" && resolved.typeAnnotation.type === "TSFunctionType") {
|
|
23075
|
+
return ["Function"];
|
|
23104
23076
|
}
|
|
23105
23077
|
return inferRuntimeType(ctx, resolved, resolved._ownerScope, isKeyOf);
|
|
23106
23078
|
}
|
|
@@ -25002,7 +24974,7 @@ function mergeSourceMaps(scriptMap, templateMap, templateLineOffset) {
|
|
|
25002
24974
|
return generator.toJSON();
|
|
25003
24975
|
}
|
|
25004
24976
|
|
|
25005
|
-
const version = "3.5.
|
|
24977
|
+
const version = "3.5.17";
|
|
25006
24978
|
const parseCache = parseCache$1;
|
|
25007
24979
|
const errorMessages = {
|
|
25008
24980
|
...CompilerDOM.errorMessages,
|