@vue/compiler-sfc 3.4.0-beta.3 → 3.4.0-rc.1
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
CHANGED
|
@@ -17767,21 +17767,24 @@ class TypeScope {
|
|
|
17767
17767
|
this.imports = imports;
|
|
17768
17768
|
this.types = types;
|
|
17769
17769
|
this.declares = declares;
|
|
17770
|
+
this.isGenericScope = false;
|
|
17770
17771
|
this.resolvedImportSources = /* @__PURE__ */ Object.create(null);
|
|
17771
17772
|
this.exportedTypes = /* @__PURE__ */ Object.create(null);
|
|
17772
17773
|
this.exportedDeclares = /* @__PURE__ */ Object.create(null);
|
|
17773
17774
|
}
|
|
17774
17775
|
}
|
|
17775
17776
|
function resolveTypeElements(ctx, node, scope, typeParameters) {
|
|
17776
|
-
|
|
17777
|
+
const canCache = !typeParameters;
|
|
17778
|
+
if (canCache && node._resolvedElements) {
|
|
17777
17779
|
return node._resolvedElements;
|
|
17778
17780
|
}
|
|
17779
|
-
|
|
17781
|
+
const resolved = innerResolveTypeElements(
|
|
17780
17782
|
ctx,
|
|
17781
17783
|
node,
|
|
17782
17784
|
node._ownerScope || scope || ctxToScope(ctx),
|
|
17783
17785
|
typeParameters
|
|
17784
17786
|
);
|
|
17787
|
+
return canCache ? node._resolvedElements = resolved : resolved;
|
|
17785
17788
|
}
|
|
17786
17789
|
function innerResolveTypeElements(ctx, node, scope, typeParameters) {
|
|
17787
17790
|
var _a, _b;
|
|
@@ -17832,8 +17835,9 @@ function innerResolveTypeElements(ctx, node, scope, typeParameters) {
|
|
|
17832
17835
|
}
|
|
17833
17836
|
const resolved = resolveTypeReference(ctx, node, scope);
|
|
17834
17837
|
if (resolved) {
|
|
17835
|
-
|
|
17838
|
+
let typeParams;
|
|
17836
17839
|
if ((resolved.type === "TSTypeAliasDeclaration" || resolved.type === "TSInterfaceDeclaration") && resolved.typeParameters && node.typeParameters) {
|
|
17840
|
+
typeParams = /* @__PURE__ */ Object.create(null);
|
|
17837
17841
|
resolved.typeParameters.params.forEach((p, i) => {
|
|
17838
17842
|
let param = typeParameters && typeParameters[p.name];
|
|
17839
17843
|
if (!param)
|
|
@@ -17922,6 +17926,7 @@ function typeElementsToMap(ctx, elements, scope = ctxToScope(ctx), typeParameter
|
|
|
17922
17926
|
if (e.type === "TSPropertySignature" || e.type === "TSMethodSignature") {
|
|
17923
17927
|
if (typeParameters) {
|
|
17924
17928
|
scope = createChildScope(scope);
|
|
17929
|
+
scope.isGenericScope = true;
|
|
17925
17930
|
Object.assign(scope.types, typeParameters);
|
|
17926
17931
|
}
|
|
17927
17932
|
e._ownerScope = scope;
|
|
@@ -18219,16 +18224,18 @@ function resolveBuiltin(ctx, node, name, scope, typeParameters) {
|
|
|
18219
18224
|
}
|
|
18220
18225
|
}
|
|
18221
18226
|
function resolveTypeReference(ctx, node, scope, name, onlyExported = false) {
|
|
18222
|
-
|
|
18227
|
+
const canCache = !(scope == null ? void 0 : scope.isGenericScope);
|
|
18228
|
+
if (canCache && node._resolvedReference) {
|
|
18223
18229
|
return node._resolvedReference;
|
|
18224
18230
|
}
|
|
18225
|
-
|
|
18231
|
+
const resolved = innerResolveTypeReference(
|
|
18226
18232
|
ctx,
|
|
18227
18233
|
scope || ctxToScope(ctx),
|
|
18228
18234
|
name || getReferenceName(node),
|
|
18229
18235
|
node,
|
|
18230
18236
|
onlyExported
|
|
18231
18237
|
);
|
|
18238
|
+
return canCache ? node._resolvedReference = resolved : resolved;
|
|
18232
18239
|
}
|
|
18233
18240
|
function innerResolveTypeReference(ctx, scope, name, node, onlyExported) {
|
|
18234
18241
|
if (typeof name === "string") {
|
|
@@ -20258,6 +20265,7 @@ let __temp${any}, __restore${any}
|
|
|
20258
20265
|
}
|
|
20259
20266
|
const { code, ast, preamble, tips, errors } = compileTemplate({
|
|
20260
20267
|
filename,
|
|
20268
|
+
ast: sfc.template.ast,
|
|
20261
20269
|
source: sfc.template.content,
|
|
20262
20270
|
inMap: sfc.template.map,
|
|
20263
20271
|
...options.templateOptions,
|
|
@@ -20559,7 +20567,7 @@ function isStaticNode(node) {
|
|
|
20559
20567
|
return false;
|
|
20560
20568
|
}
|
|
20561
20569
|
|
|
20562
|
-
const version = "3.4.0-
|
|
20570
|
+
const version = "3.4.0-rc.1";
|
|
20563
20571
|
const parseCache = parseCache$1;
|
|
20564
20572
|
const walk = estreeWalker.walk;
|
|
20565
20573
|
const shouldTransformRef = () => false;
|
package/dist/compiler-sfc.d.ts
CHANGED
|
@@ -432,6 +432,7 @@ declare class TypeScope {
|
|
|
432
432
|
types: Record<string, ScopeTypeNode>;
|
|
433
433
|
declares: Record<string, ScopeTypeNode>;
|
|
434
434
|
constructor(filename: string, source: string, offset?: number, imports?: Record<string, Import>, types?: Record<string, ScopeTypeNode>, declares?: Record<string, ScopeTypeNode>);
|
|
435
|
+
isGenericScope: boolean;
|
|
435
436
|
resolvedImportSources: Record<string, string>;
|
|
436
437
|
exportedTypes: Record<string, ScopeTypeNode>;
|
|
437
438
|
exportedDeclares: Record<string, ScopeTypeNode>;
|
|
@@ -17032,12 +17032,23 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
17032
17032
|
} else if (node.type === "ObjectProperty" && parent.type === "ObjectPattern") {
|
|
17033
17033
|
node.inPattern = true;
|
|
17034
17034
|
} else if (isFunctionType(node)) {
|
|
17035
|
-
|
|
17035
|
+
if (node.scopeIds) {
|
|
17036
|
+
node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
17037
|
+
} else {
|
|
17038
|
+
walkFunctionParams(
|
|
17039
|
+
node,
|
|
17040
|
+
(id) => markScopeIdentifier(node, id, knownIds)
|
|
17041
|
+
);
|
|
17042
|
+
}
|
|
17036
17043
|
} else if (node.type === "BlockStatement") {
|
|
17037
|
-
|
|
17038
|
-
node,
|
|
17039
|
-
|
|
17040
|
-
|
|
17044
|
+
if (node.scopeIds) {
|
|
17045
|
+
node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
17046
|
+
} else {
|
|
17047
|
+
walkBlockDeclarations(
|
|
17048
|
+
node,
|
|
17049
|
+
(id) => markScopeIdentifier(node, id, knownIds)
|
|
17050
|
+
);
|
|
17051
|
+
}
|
|
17041
17052
|
}
|
|
17042
17053
|
},
|
|
17043
17054
|
leave(node, parent) {
|
|
@@ -17156,16 +17167,19 @@ function extractIdentifiers$1(param, nodes = []) {
|
|
|
17156
17167
|
}
|
|
17157
17168
|
return nodes;
|
|
17158
17169
|
}
|
|
17159
|
-
function
|
|
17160
|
-
const { name } = child;
|
|
17161
|
-
if (node.scopeIds && node.scopeIds.has(name)) {
|
|
17162
|
-
return;
|
|
17163
|
-
}
|
|
17170
|
+
function markKnownIds(name, knownIds) {
|
|
17164
17171
|
if (name in knownIds) {
|
|
17165
17172
|
knownIds[name]++;
|
|
17166
17173
|
} else {
|
|
17167
17174
|
knownIds[name] = 1;
|
|
17168
17175
|
}
|
|
17176
|
+
}
|
|
17177
|
+
function markScopeIdentifier(node, child, knownIds) {
|
|
17178
|
+
const { name } = child;
|
|
17179
|
+
if (node.scopeIds && node.scopeIds.has(name)) {
|
|
17180
|
+
return;
|
|
17181
|
+
}
|
|
17182
|
+
markKnownIds(name, knownIds);
|
|
17169
17183
|
(node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name);
|
|
17170
17184
|
}
|
|
17171
17185
|
const isFunctionType = (node) => {
|
|
@@ -17370,7 +17384,7 @@ const isMemberExpressionNode = (path, context) => {
|
|
|
17370
17384
|
plugins: context.expressionPlugins
|
|
17371
17385
|
});
|
|
17372
17386
|
ret = unwrapTSNode(ret);
|
|
17373
|
-
return ret.type === "MemberExpression" || ret.type === "OptionalMemberExpression" || ret.type === "Identifier";
|
|
17387
|
+
return ret.type === "MemberExpression" || ret.type === "OptionalMemberExpression" || ret.type === "Identifier" && ret.name !== "undefined";
|
|
17374
17388
|
} catch (e) {
|
|
17375
17389
|
return false;
|
|
17376
17390
|
}
|
|
@@ -17655,12 +17669,6 @@ const tokenizer$2 = new Tokenizer$1(stack, {
|
|
|
17655
17669
|
loc: getLoc(start - 1, end),
|
|
17656
17670
|
codegenNode: void 0
|
|
17657
17671
|
};
|
|
17658
|
-
if (tokenizer$2.inSFCRoot) {
|
|
17659
|
-
currentOpenTag.innerLoc = getLoc(
|
|
17660
|
-
end + fastForward(end) + 1,
|
|
17661
|
-
end
|
|
17662
|
-
);
|
|
17663
|
-
}
|
|
17664
17672
|
},
|
|
17665
17673
|
onopentagend(end) {
|
|
17666
17674
|
endOpenTag(end);
|
|
@@ -17978,6 +17986,9 @@ function getSlice(start, end) {
|
|
|
17978
17986
|
return currentInput.slice(start, end);
|
|
17979
17987
|
}
|
|
17980
17988
|
function endOpenTag(end) {
|
|
17989
|
+
if (tokenizer$2.inSFCRoot) {
|
|
17990
|
+
currentOpenTag.innerLoc = getLoc(end + 1, end + 1);
|
|
17991
|
+
}
|
|
17981
17992
|
addNode(currentOpenTag);
|
|
17982
17993
|
const { tag, ns } = currentOpenTag;
|
|
17983
17994
|
if (ns === 0 && currentOptions.isPreTag(tag)) {
|
|
@@ -18011,7 +18022,7 @@ function onCloseTag(el, end, isImplied = false) {
|
|
|
18011
18022
|
if (isImplied) {
|
|
18012
18023
|
setLocEnd(el.loc, backTrack(end, 60));
|
|
18013
18024
|
} else {
|
|
18014
|
-
setLocEnd(el.loc, end +
|
|
18025
|
+
setLocEnd(el.loc, end + 1);
|
|
18015
18026
|
}
|
|
18016
18027
|
if (tokenizer$2.inSFCRoot) {
|
|
18017
18028
|
if (el.children.length) {
|
|
@@ -18048,13 +18059,6 @@ function onCloseTag(el, end, isImplied = false) {
|
|
|
18048
18059
|
tokenizer$2.inXML = false;
|
|
18049
18060
|
}
|
|
18050
18061
|
}
|
|
18051
|
-
function fastForward(start, c) {
|
|
18052
|
-
let offset = 0;
|
|
18053
|
-
while (currentInput.charCodeAt(start + offset) !== 62 && start + offset < currentInput.length) {
|
|
18054
|
-
offset++;
|
|
18055
|
-
}
|
|
18056
|
-
return offset;
|
|
18057
|
-
}
|
|
18058
18062
|
function backTrack(index, c) {
|
|
18059
18063
|
let i = index;
|
|
18060
18064
|
while (currentInput.charCodeAt(i) !== c && i >= 0)
|
|
@@ -45823,21 +45827,24 @@ class TypeScope {
|
|
|
45823
45827
|
this.imports = imports;
|
|
45824
45828
|
this.types = types;
|
|
45825
45829
|
this.declares = declares;
|
|
45830
|
+
this.isGenericScope = false;
|
|
45826
45831
|
this.resolvedImportSources = /* @__PURE__ */ Object.create(null);
|
|
45827
45832
|
this.exportedTypes = /* @__PURE__ */ Object.create(null);
|
|
45828
45833
|
this.exportedDeclares = /* @__PURE__ */ Object.create(null);
|
|
45829
45834
|
}
|
|
45830
45835
|
}
|
|
45831
45836
|
function resolveTypeElements(ctx, node, scope, typeParameters) {
|
|
45832
|
-
|
|
45837
|
+
const canCache = !typeParameters;
|
|
45838
|
+
if (canCache && node._resolvedElements) {
|
|
45833
45839
|
return node._resolvedElements;
|
|
45834
45840
|
}
|
|
45835
|
-
|
|
45841
|
+
const resolved = innerResolveTypeElements(
|
|
45836
45842
|
ctx,
|
|
45837
45843
|
node,
|
|
45838
45844
|
node._ownerScope || scope || ctxToScope(ctx),
|
|
45839
45845
|
typeParameters
|
|
45840
45846
|
);
|
|
45847
|
+
return canCache ? node._resolvedElements = resolved : resolved;
|
|
45841
45848
|
}
|
|
45842
45849
|
function innerResolveTypeElements(ctx, node, scope, typeParameters) {
|
|
45843
45850
|
var _a, _b;
|
|
@@ -45888,8 +45895,9 @@ function innerResolveTypeElements(ctx, node, scope, typeParameters) {
|
|
|
45888
45895
|
}
|
|
45889
45896
|
const resolved = resolveTypeReference(ctx, node, scope);
|
|
45890
45897
|
if (resolved) {
|
|
45891
|
-
|
|
45898
|
+
let typeParams;
|
|
45892
45899
|
if ((resolved.type === "TSTypeAliasDeclaration" || resolved.type === "TSInterfaceDeclaration") && resolved.typeParameters && node.typeParameters) {
|
|
45900
|
+
typeParams = /* @__PURE__ */ Object.create(null);
|
|
45893
45901
|
resolved.typeParameters.params.forEach((p, i) => {
|
|
45894
45902
|
let param = typeParameters && typeParameters[p.name];
|
|
45895
45903
|
if (!param)
|
|
@@ -45978,6 +45986,7 @@ function typeElementsToMap(ctx, elements, scope = ctxToScope(ctx), typeParameter
|
|
|
45978
45986
|
if (e.type === "TSPropertySignature" || e.type === "TSMethodSignature") {
|
|
45979
45987
|
if (typeParameters) {
|
|
45980
45988
|
scope = createChildScope(scope);
|
|
45989
|
+
scope.isGenericScope = true;
|
|
45981
45990
|
Object.assign(scope.types, typeParameters);
|
|
45982
45991
|
}
|
|
45983
45992
|
e._ownerScope = scope;
|
|
@@ -46274,16 +46283,18 @@ function resolveBuiltin(ctx, node, name, scope, typeParameters) {
|
|
|
46274
46283
|
}
|
|
46275
46284
|
}
|
|
46276
46285
|
function resolveTypeReference(ctx, node, scope, name, onlyExported = false) {
|
|
46277
|
-
|
|
46286
|
+
const canCache = !(scope == null ? void 0 : scope.isGenericScope);
|
|
46287
|
+
if (canCache && node._resolvedReference) {
|
|
46278
46288
|
return node._resolvedReference;
|
|
46279
46289
|
}
|
|
46280
|
-
|
|
46290
|
+
const resolved = innerResolveTypeReference(
|
|
46281
46291
|
ctx,
|
|
46282
46292
|
scope || ctxToScope(ctx),
|
|
46283
46293
|
name || getReferenceName(node),
|
|
46284
46294
|
node,
|
|
46285
46295
|
onlyExported
|
|
46286
46296
|
);
|
|
46297
|
+
return canCache ? node._resolvedReference = resolved : resolved;
|
|
46287
46298
|
}
|
|
46288
46299
|
function innerResolveTypeReference(ctx, scope, name, node, onlyExported) {
|
|
46289
46300
|
if (typeof name === "string") {
|
|
@@ -48245,6 +48256,7 @@ let __temp${any}, __restore${any}
|
|
|
48245
48256
|
}
|
|
48246
48257
|
const { code, ast, preamble, tips, errors } = compileTemplate(__spreadProps(__spreadValues({
|
|
48247
48258
|
filename,
|
|
48259
|
+
ast: sfc.template.ast,
|
|
48248
48260
|
source: sfc.template.content,
|
|
48249
48261
|
inMap: sfc.template.map
|
|
48250
48262
|
}, options.templateOptions), {
|
|
@@ -48544,7 +48556,7 @@ function isStaticNode(node) {
|
|
|
48544
48556
|
return false;
|
|
48545
48557
|
}
|
|
48546
48558
|
|
|
48547
|
-
const version = "3.4.0-
|
|
48559
|
+
const version = "3.4.0-rc.1";
|
|
48548
48560
|
const parseCache = parseCache$1;
|
|
48549
48561
|
const walk = walk$2;
|
|
48550
48562
|
const shouldTransformRef = () => false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/compiler-sfc",
|
|
3
|
-
"version": "3.4.0-
|
|
3
|
+
"version": "3.4.0-rc.1",
|
|
4
4
|
"description": "@vue/compiler-sfc",
|
|
5
5
|
"main": "dist/compiler-sfc.cjs.js",
|
|
6
6
|
"module": "dist/compiler-sfc.esm-browser.js",
|
|
@@ -32,18 +32,18 @@
|
|
|
32
32
|
},
|
|
33
33
|
"homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@babel/parser": "^7.23.
|
|
35
|
+
"@babel/parser": "^7.23.6",
|
|
36
36
|
"estree-walker": "^2.0.2",
|
|
37
37
|
"magic-string": "^0.30.5",
|
|
38
38
|
"postcss": "^8.4.32",
|
|
39
39
|
"source-map-js": "^1.0.2",
|
|
40
|
-
"@vue/compiler-
|
|
41
|
-
"@vue/compiler-
|
|
42
|
-
"@vue/
|
|
43
|
-
"@vue/
|
|
40
|
+
"@vue/compiler-core": "3.4.0-rc.1",
|
|
41
|
+
"@vue/compiler-ssr": "3.4.0-rc.1",
|
|
42
|
+
"@vue/compiler-dom": "3.4.0-rc.1",
|
|
43
|
+
"@vue/shared": "3.4.0-rc.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@babel/types": "^7.23.
|
|
46
|
+
"@babel/types": "^7.23.6",
|
|
47
47
|
"@vue/consolidate": "^0.17.3",
|
|
48
48
|
"hash-sum": "^2.0.0",
|
|
49
49
|
"lru-cache": "^10.1.0",
|