@vue/language-core 3.1.8 → 3.2.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.
Files changed (77) hide show
  1. package/index.d.ts +1 -1
  2. package/index.js +25 -3
  3. package/lib/codegen/codeFeatures.d.ts +18 -84
  4. package/lib/codegen/names.d.ts +2 -4
  5. package/lib/codegen/names.js +3 -5
  6. package/lib/codegen/script/component.js +37 -4
  7. package/lib/codegen/script/index.d.ts +4 -12
  8. package/lib/codegen/script/index.js +77 -22
  9. package/lib/codegen/script/scriptSetup.js +52 -14
  10. package/lib/codegen/script/template.js +69 -31
  11. package/lib/codegen/style/index.d.ts +9 -9
  12. package/lib/codegen/style/modules.js +34 -1
  13. package/lib/codegen/template/context.d.ts +7 -7
  14. package/lib/codegen/template/context.js +34 -1
  15. package/lib/codegen/template/element.js +48 -7
  16. package/lib/codegen/template/elementDirectives.js +36 -3
  17. package/lib/codegen/template/elementEvents.js +36 -3
  18. package/lib/codegen/template/elementProps.js +35 -2
  19. package/lib/codegen/template/index.d.ts +10 -10
  20. package/lib/codegen/template/index.js +34 -1
  21. package/lib/codegen/template/interpolation.d.ts +4 -3
  22. package/lib/codegen/template/interpolation.js +37 -4
  23. package/lib/codegen/template/slotOutlet.js +35 -2
  24. package/lib/codegen/template/templateChild.js +34 -1
  25. package/lib/codegen/template/vFor.js +37 -4
  26. package/lib/codegen/template/vIf.js +34 -1
  27. package/lib/codegen/template/vSlot.js +38 -5
  28. package/lib/compilerOptions.d.ts +7 -11
  29. package/lib/compilerOptions.js +48 -89
  30. package/lib/languagePlugin.js +34 -1
  31. package/lib/parsers/scriptRanges.d.ts +26 -16
  32. package/lib/parsers/scriptRanges.js +66 -64
  33. package/lib/parsers/scriptSetupRanges.d.ts +19 -24
  34. package/lib/parsers/scriptSetupRanges.js +13 -15
  35. package/lib/parsers/utils.d.ts +3 -6
  36. package/lib/parsers/utils.js +1 -0
  37. package/lib/plugins/vue-template-inline-css.js +34 -1
  38. package/lib/plugins/vue-template-inline-ts.js +34 -1
  39. package/lib/plugins/vue-tsx.d.ts +36 -114
  40. package/lib/plugins/vue-tsx.js +62 -33
  41. package/lib/plugins.js +17 -14
  42. package/lib/types.d.ts +8 -8
  43. package/lib/utils/collectBindings.d.ts +1 -1
  44. package/lib/utils/forEachTemplateNode.js +34 -1
  45. package/lib/utils/parseSfc.js +34 -1
  46. package/lib/utils/shared.d.ts +1 -1
  47. package/lib/utils/shared.js +2 -1
  48. package/lib/virtualCode/embeddedCodes.js +6 -2
  49. package/lib/virtualCode/index.js +10 -1
  50. package/lib/virtualCode/ir.js +34 -1
  51. package/lib/virtualCode/normalize.js +37 -2
  52. package/package.json +4 -12
  53. package/types/props-fallback.d.ts +5 -0
  54. package/types/template-helpers.d.ts +146 -0
  55. package/types/vue-3.4-shims.d.ts +6 -0
  56. package/lib/codegen/globalTypes.d.ts +0 -3
  57. package/lib/codegen/globalTypes.js +0 -163
  58. package/lib/codegen/script/src.d.ts +0 -3
  59. package/lib/codegen/script/src.js +0 -43
  60. package/lib/codegen/style/classProperty.d.ts +0 -2
  61. package/lib/codegen/style/classProperty.js +0 -18
  62. package/lib/codegen/style/imports.d.ts +0 -2
  63. package/lib/codegen/style/imports.js +0 -27
  64. package/lib/codegen/template/elementChildren.d.ts +0 -5
  65. package/lib/codegen/template/elementChildren.js +0 -12
  66. package/lib/codegen/utils/wrapWith.d.ts +0 -2
  67. package/lib/codegen/utils/wrapWith.js +0 -15
  68. package/lib/virtualFile/computedEmbeddedCodes.d.ts +0 -4
  69. package/lib/virtualFile/computedEmbeddedCodes.js +0 -262
  70. package/lib/virtualFile/computedSfc.d.ts +0 -6
  71. package/lib/virtualFile/computedSfc.js +0 -340
  72. package/lib/virtualFile/computedVueSfc.d.ts +0 -4
  73. package/lib/virtualFile/computedVueSfc.js +0 -41
  74. package/lib/virtualFile/embeddedFile.d.ts +0 -11
  75. package/lib/virtualFile/embeddedFile.js +0 -14
  76. package/lib/virtualFile/vueFile.d.ts +0 -24
  77. package/lib/virtualFile/vueFile.js +0 -49
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
2
  /// <reference types="@volar/typescript" />
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
3
36
  Object.defineProperty(exports, "__esModule", { value: true });
4
37
  exports.createVueLanguagePlugin = createVueLanguagePlugin;
5
38
  exports.getAllExtensions = getAllExtensions;
6
39
  const language_core_1 = require("@volar/language-core");
7
- const CompilerDOM = require("@vue/compiler-dom");
40
+ const CompilerDOM = __importStar(require("@vue/compiler-dom"));
8
41
  const plugins_1 = require("./plugins");
9
42
  const virtualCode_1 = require("./virtualCode");
10
43
  const fileRegistries = {};
@@ -2,22 +2,32 @@ import type * as ts from 'typescript';
2
2
  import type { TextRange, VueCompilerOptions } from '../types';
3
3
  export interface ScriptRanges extends ReturnType<typeof parseScriptRanges> {
4
4
  }
5
- export declare function parseScriptRanges(ts: typeof import('typescript'), ast: ts.SourceFile, vueCompilerOptions: VueCompilerOptions): {
6
- exportDefault: (TextRange & {
7
- expression: TextRange;
5
+ export declare function parseScriptRanges(ts: typeof import('typescript'), sourceFile: ts.SourceFile, vueCompilerOptions: VueCompilerOptions): {
6
+ exportDefault: (TextRange<ts.Node> & {
7
+ expression: TextRange<ts.Expression>;
8
8
  isObjectLiteral: boolean;
9
+ options?: {
10
+ isObjectLiteral: boolean;
11
+ expression: TextRange<ts.Node>;
12
+ args: TextRange<ts.ObjectLiteralExpression>;
13
+ components: TextRange<ts.ObjectLiteralExpression> | undefined;
14
+ directives: TextRange<ts.Node> | undefined;
15
+ name: TextRange<ts.StringLiteral> | undefined;
16
+ inheritAttrs: string | undefined;
17
+ } | undefined;
9
18
  }) | undefined;
10
- componentOptions: {
11
- isObjectLiteral: boolean;
12
- expression: TextRange;
13
- args: TextRange;
14
- argsNode: ts.ObjectLiteralExpression;
15
- components: TextRange | undefined;
16
- componentsNode: ts.ObjectLiteralExpression | undefined;
17
- directives: TextRange | undefined;
18
- name: TextRange | undefined;
19
- inheritAttrs: string | undefined;
20
- } | undefined;
21
- bindings: TextRange[];
22
- components: TextRange[];
19
+ bindings: TextRange<ts.Node>[];
20
+ components: TextRange<ts.Node>[];
23
21
  };
22
+ export declare function parseOptionsFromExtression(ts: typeof import('typescript'), exp: ts.Node, sourceFile: ts.SourceFile): {
23
+ isObjectLiteral: boolean;
24
+ expression: TextRange<ts.Node>;
25
+ args: TextRange<ts.ObjectLiteralExpression>;
26
+ argsNode: ts.ObjectLiteralExpression;
27
+ components: TextRange<ts.ObjectLiteralExpression> | undefined;
28
+ componentsNode: ts.ObjectLiteralExpression | undefined;
29
+ directives: TextRange<ts.ObjectLiteralExpression> | undefined;
30
+ name: TextRange<ts.StringLiteral> | undefined;
31
+ nameNode: ts.StringLiteral | undefined;
32
+ inheritAttrs: string | undefined;
33
+ } | undefined;
@@ -1,88 +1,90 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseScriptRanges = parseScriptRanges;
4
+ exports.parseOptionsFromExtression = parseOptionsFromExtression;
4
5
  const shared_1 = require("../utils/shared");
5
6
  const utils_1 = require("./utils");
6
- function parseScriptRanges(ts, ast, vueCompilerOptions) {
7
+ function parseScriptRanges(ts, sourceFile, vueCompilerOptions) {
7
8
  let exportDefault;
8
- let componentOptions;
9
- const { bindings, components } = (0, utils_1.parseBindingRanges)(ts, ast, vueCompilerOptions.extensions);
10
- ts.forEachChild(ast, raw => {
11
- if (ts.isExportAssignment(raw)) {
9
+ const { bindings, components } = (0, utils_1.parseBindingRanges)(ts, sourceFile, vueCompilerOptions.extensions);
10
+ ts.forEachChild(sourceFile, child => {
11
+ if (ts.isExportAssignment(child)) {
12
12
  exportDefault = {
13
- ..._getStartEnd(raw),
14
- expression: _getStartEnd(raw.expression),
15
- isObjectLiteral: ts.isObjectLiteralExpression(raw.expression),
13
+ ...(0, shared_1.getStartEnd)(ts, child, sourceFile),
14
+ expression: (0, shared_1.getStartEnd)(ts, child.expression, sourceFile),
15
+ isObjectLiteral: ts.isObjectLiteralExpression(child.expression),
16
+ options: parseOptionsFromExtression(ts, child.expression, sourceFile),
16
17
  };
17
- const comment = (0, utils_1.getClosestMultiLineCommentRange)(ts, raw, [], ast);
18
+ const comment = (0, utils_1.getClosestMultiLineCommentRange)(ts, child, [], sourceFile);
18
19
  if (comment) {
19
20
  exportDefault.start = comment.start;
20
21
  }
21
- let node = raw;
22
- while (isAsExpression(node.expression) || ts.isParenthesizedExpression(node.expression)) { // fix https://github.com/vuejs/language-tools/issues/1882
23
- node = node.expression;
24
- }
25
- let obj;
26
- if (ts.isObjectLiteralExpression(node.expression)) {
27
- obj = node.expression;
28
- }
29
- else if (ts.isCallExpression(node.expression) && node.expression.arguments.length) {
30
- const arg0 = node.expression.arguments[0];
31
- if (ts.isObjectLiteralExpression(arg0)) {
32
- obj = arg0;
33
- }
34
- }
35
- if (obj) {
36
- let componentsOptionNode;
37
- let directivesOptionNode;
38
- let nameOptionNode;
39
- let inheritAttrsOption;
40
- ts.forEachChild(obj, node => {
41
- if (ts.isPropertyAssignment(node) && ts.isIdentifier(node.name)) {
42
- const name = _getNodeText(node.name);
43
- if (name === 'components' && ts.isObjectLiteralExpression(node.initializer)) {
44
- componentsOptionNode = node.initializer;
45
- }
46
- else if (name === 'directives' && ts.isObjectLiteralExpression(node.initializer)) {
47
- directivesOptionNode = node.initializer;
48
- }
49
- else if (name === 'name') {
50
- nameOptionNode = node.initializer;
51
- }
52
- else if (name === 'inheritAttrs') {
53
- inheritAttrsOption = _getNodeText(node.initializer);
54
- }
55
- }
56
- });
57
- componentOptions = {
58
- isObjectLiteral: ts.isObjectLiteralExpression(node.expression),
59
- expression: _getStartEnd(node.expression),
60
- args: _getStartEnd(obj),
61
- argsNode: obj,
62
- components: componentsOptionNode ? _getStartEnd(componentsOptionNode) : undefined,
63
- componentsNode: componentsOptionNode,
64
- directives: directivesOptionNode ? _getStartEnd(directivesOptionNode) : undefined,
65
- name: nameOptionNode ? _getStartEnd(nameOptionNode) : undefined,
66
- inheritAttrs: inheritAttrsOption,
67
- };
68
- }
69
22
  }
70
23
  });
71
24
  return {
72
25
  exportDefault,
73
- componentOptions,
74
26
  bindings,
75
27
  components,
76
28
  };
29
+ }
30
+ function parseOptionsFromExtression(ts, exp, sourceFile) {
31
+ let obj;
32
+ while (isAsExpression(ts, exp) || ts.isParenthesizedExpression(exp)) { // fix https://github.com/vuejs/language-tools/issues/1882
33
+ exp = exp.expression;
34
+ }
35
+ if (ts.isObjectLiteralExpression(exp)) {
36
+ obj = exp;
37
+ }
38
+ else if (ts.isCallExpression(exp) && exp.arguments.length) {
39
+ const arg0 = exp.arguments[0];
40
+ if (ts.isObjectLiteralExpression(arg0)) {
41
+ obj = arg0;
42
+ }
43
+ }
44
+ if (obj) {
45
+ let componentsOptionNode;
46
+ let directivesOptionNode;
47
+ let nameOptionNode;
48
+ let inheritAttrsOption;
49
+ ts.forEachChild(obj, node => {
50
+ if (ts.isPropertyAssignment(node) && ts.isIdentifier(node.name)) {
51
+ const name = _getNodeText(node.name);
52
+ if (name === 'components' && ts.isObjectLiteralExpression(node.initializer)) {
53
+ componentsOptionNode = node.initializer;
54
+ }
55
+ else if (name === 'directives' && ts.isObjectLiteralExpression(node.initializer)) {
56
+ directivesOptionNode = node.initializer;
57
+ }
58
+ else if (name === 'name' && ts.isStringLiteral(node.initializer)) {
59
+ nameOptionNode = node.initializer;
60
+ }
61
+ else if (name === 'inheritAttrs') {
62
+ inheritAttrsOption = _getNodeText(node.initializer);
63
+ }
64
+ }
65
+ });
66
+ return {
67
+ isObjectLiteral: ts.isObjectLiteralExpression(exp),
68
+ expression: _getStartEnd(exp),
69
+ args: _getStartEnd(obj),
70
+ argsNode: obj,
71
+ components: componentsOptionNode ? _getStartEnd(componentsOptionNode) : undefined,
72
+ componentsNode: componentsOptionNode,
73
+ directives: directivesOptionNode ? _getStartEnd(directivesOptionNode) : undefined,
74
+ name: nameOptionNode ? _getStartEnd(nameOptionNode) : undefined,
75
+ nameNode: nameOptionNode,
76
+ inheritAttrs: inheritAttrsOption,
77
+ };
78
+ }
77
79
  function _getStartEnd(node) {
78
- return (0, shared_1.getStartEnd)(ts, node, ast);
80
+ return (0, shared_1.getStartEnd)(ts, node, sourceFile);
79
81
  }
80
82
  function _getNodeText(node) {
81
- return (0, shared_1.getNodeText)(ts, node, ast);
82
- }
83
- // isAsExpression is missing in tsc
84
- function isAsExpression(node) {
85
- return node.kind === ts.SyntaxKind.AsExpression;
83
+ return (0, shared_1.getNodeText)(ts, node, sourceFile);
86
84
  }
87
85
  }
86
+ // isAsExpression is missing in tsc
87
+ function isAsExpression(ts, node) {
88
+ return node.kind === ts.SyntaxKind.AsExpression;
89
+ }
88
90
  //# sourceMappingURL=scriptRanges.js.map
@@ -1,12 +1,13 @@
1
1
  import type * as ts from 'typescript';
2
2
  import type { TextRange, VueCompilerOptions } from '../types';
3
- type CallExpressionRange = {
3
+ export interface CallExpressionRange {
4
4
  callExp: TextRange;
5
5
  exp: TextRange;
6
6
  arg?: TextRange;
7
7
  typeArg?: TextRange;
8
- };
9
- type DefineModel = {
8
+ }
9
+ export interface DefineModel {
10
+ arg?: TextRange;
10
11
  localName?: TextRange;
11
12
  name?: TextRange;
12
13
  type?: TextRange;
@@ -15,44 +16,39 @@ type DefineModel = {
15
16
  defaultValue?: TextRange;
16
17
  required?: boolean;
17
18
  comments?: TextRange;
18
- argNode?: ts.Expression;
19
- };
20
- type DefineProps = CallExpressionRange & {
19
+ }
20
+ export interface DefineProps extends CallExpressionRange {
21
21
  name?: string;
22
22
  destructured?: Map<string, ts.Expression | undefined>;
23
23
  destructuredRest?: string;
24
24
  statement: TextRange;
25
- argNode?: ts.Expression;
26
- };
27
- type WithDefaults = Omit<CallExpressionRange, 'typeArg'> & {
28
- argNode?: ts.Expression;
29
- };
30
- type DefineEmits = CallExpressionRange & {
25
+ }
26
+ export interface DefineEmits extends CallExpressionRange {
31
27
  name?: string;
32
28
  hasUnionTypeArg?: boolean;
33
29
  statement: TextRange;
34
- };
35
- type DefineSlots = CallExpressionRange & {
30
+ }
31
+ export interface DefineSlots extends CallExpressionRange {
36
32
  name?: string;
37
33
  statement: TextRange;
38
- };
39
- type DefineOptions = {
34
+ }
35
+ export interface DefineOptions {
40
36
  name?: string;
41
37
  inheritAttrs?: string;
42
- };
43
- type UseTemplateRef = CallExpressionRange & {
38
+ }
39
+ export interface UseTemplateRef extends CallExpressionRange {
44
40
  name?: string;
45
- };
41
+ }
46
42
  export interface ScriptSetupRanges extends ReturnType<typeof parseScriptSetupRanges> {
47
43
  }
48
- export declare function parseScriptSetupRanges(ts: typeof import('typescript'), ast: ts.SourceFile, vueCompilerOptions: VueCompilerOptions): {
44
+ export declare function parseScriptSetupRanges(ts: typeof import('typescript'), sourceFile: ts.SourceFile, vueCompilerOptions: VueCompilerOptions): {
49
45
  leadingCommentEndOffset: number;
50
46
  importSectionEndOffset: number;
51
- bindings: TextRange[];
52
- components: TextRange[];
47
+ bindings: TextRange<ts.Node>[];
48
+ components: TextRange<ts.Node>[];
53
49
  defineModel: DefineModel[];
54
50
  defineProps: DefineProps | undefined;
55
- withDefaults: WithDefaults | undefined;
51
+ withDefaults: CallExpressionRange | undefined;
56
52
  defineEmits: DefineEmits | undefined;
57
53
  defineSlots: DefineSlots | undefined;
58
54
  defineExpose: CallExpressionRange | undefined;
@@ -62,4 +58,3 @@ export declare function parseScriptSetupRanges(ts: typeof import('typescript'),
62
58
  useSlots: CallExpressionRange[];
63
59
  useTemplateRef: UseTemplateRef[];
64
60
  };
65
- export {};
@@ -5,7 +5,7 @@ const collectBindings_1 = require("../utils/collectBindings");
5
5
  const shared_1 = require("../utils/shared");
6
6
  const utils_1 = require("./utils");
7
7
  const tsCheckReg = /^\/\/\s*@ts-(?:no)?check(?:$|\s)/;
8
- function parseScriptSetupRanges(ts, ast, vueCompilerOptions) {
8
+ function parseScriptSetupRanges(ts, sourceFile, vueCompilerOptions) {
9
9
  const defineModel = [];
10
10
  let defineProps;
11
11
  let withDefaults;
@@ -17,13 +17,13 @@ function parseScriptSetupRanges(ts, ast, vueCompilerOptions) {
17
17
  const useCssModule = [];
18
18
  const useSlots = [];
19
19
  const useTemplateRef = [];
20
- const text = ast.text;
20
+ const text = sourceFile.text;
21
21
  const leadingCommentRanges = ts.getLeadingCommentRanges(text, 0)?.reverse() ?? [];
22
22
  const leadingCommentEndOffset = leadingCommentRanges.find(range => tsCheckReg.test(text.slice(range.pos, range.end)))?.end ?? 0;
23
- let { bindings, components } = (0, utils_1.parseBindingRanges)(ts, ast, vueCompilerOptions.extensions);
23
+ let { bindings, components } = (0, utils_1.parseBindingRanges)(ts, sourceFile, vueCompilerOptions.extensions);
24
24
  let foundNonImportExportNode = false;
25
25
  let importSectionEndOffset = 0;
26
- ts.forEachChild(ast, node => {
26
+ ts.forEachChild(sourceFile, node => {
27
27
  if (foundNonImportExportNode
28
28
  || ts.isImportDeclaration(node)
29
29
  || ts.isExportDeclaration(node)
@@ -42,11 +42,11 @@ function parseScriptSetupRanges(ts, ast, vueCompilerOptions) {
42
42
  importSectionEndOffset = commentRange.pos;
43
43
  }
44
44
  else {
45
- importSectionEndOffset = (0, shared_1.getStartEnd)(ts, node, ast).start;
45
+ importSectionEndOffset = (0, shared_1.getStartEnd)(ts, node, sourceFile).start;
46
46
  }
47
47
  foundNonImportExportNode = true;
48
48
  });
49
- ts.forEachChild(ast, node => visitNode(node, [ast]));
49
+ ts.forEachChild(sourceFile, node => visitNode(node, [sourceFile]));
50
50
  const templateRefNames = new Set(useTemplateRef.map(ref => ref.name));
51
51
  bindings = bindings.filter(range => {
52
52
  const name = text.slice(range.start, range.end);
@@ -135,15 +135,14 @@ function parseScriptSetupRanges(ts, ast, vueCompilerOptions) {
135
135
  runtimeType,
136
136
  defaultValue,
137
137
  required,
138
- comments: (0, utils_1.getClosestMultiLineCommentRange)(ts, node, parents, ast),
139
- argNode: options,
138
+ comments: (0, utils_1.getClosestMultiLineCommentRange)(ts, node, parents, sourceFile),
139
+ arg: _getStartEnd(node),
140
140
  });
141
141
  }
142
142
  else if (vueCompilerOptions.macros.defineProps.includes(callText)) {
143
143
  defineProps = {
144
144
  ...parseCallExpressionAssignment(node, parent),
145
- statement: getStatementRange(ts, parents, node, ast),
146
- argNode: node.arguments[0],
145
+ statement: getStatementRange(ts, parents, node, sourceFile),
147
146
  };
148
147
  if (ts.isVariableDeclaration(parent) && ts.isObjectBindingPattern(parent.name)) {
149
148
  defineProps.destructured = new Map();
@@ -172,13 +171,12 @@ function parseScriptSetupRanges(ts, ast, vueCompilerOptions) {
172
171
  callExp: _getStartEnd(node),
173
172
  exp: _getStartEnd(node.expression),
174
173
  arg: arg ? _getStartEnd(arg) : undefined,
175
- argNode: arg,
176
174
  };
177
175
  }
178
176
  else if (vueCompilerOptions.macros.defineEmits.includes(callText)) {
179
177
  defineEmits = {
180
178
  ...parseCallExpressionAssignment(node, parent),
181
- statement: getStatementRange(ts, parents, node, ast),
179
+ statement: getStatementRange(ts, parents, node, sourceFile),
182
180
  };
183
181
  if (node.typeArguments?.length && ts.isTypeLiteralNode(node.typeArguments[0])) {
184
182
  for (const member of node.typeArguments[0].members) {
@@ -195,7 +193,7 @@ function parseScriptSetupRanges(ts, ast, vueCompilerOptions) {
195
193
  else if (vueCompilerOptions.macros.defineSlots.includes(callText)) {
196
194
  defineSlots = {
197
195
  ...parseCallExpressionAssignment(node, parent),
198
- statement: getStatementRange(ts, parents, node, ast),
196
+ statement: getStatementRange(ts, parents, node, sourceFile),
199
197
  };
200
198
  }
201
199
  else if (vueCompilerOptions.macros.defineExpose.includes(callText)) {
@@ -258,10 +256,10 @@ function parseScriptSetupRanges(ts, ast, vueCompilerOptions) {
258
256
  };
259
257
  }
260
258
  function _getStartEnd(node) {
261
- return (0, shared_1.getStartEnd)(ts, node, ast);
259
+ return (0, shared_1.getStartEnd)(ts, node, sourceFile);
262
260
  }
263
261
  function _getNodeText(node) {
264
- return (0, shared_1.getNodeText)(ts, node, ast);
262
+ return (0, shared_1.getNodeText)(ts, node, sourceFile);
265
263
  }
266
264
  }
267
265
  function getStatementRange(ts, parents, node, ast) {
@@ -1,10 +1,7 @@
1
1
  import type * as ts from 'typescript';
2
2
  import type { TextRange } from '../types';
3
3
  export declare function parseBindingRanges(ts: typeof import('typescript'), ast: ts.SourceFile, componentExtsensions: string[]): {
4
- bindings: TextRange[];
5
- components: TextRange[];
4
+ bindings: TextRange<ts.Node>[];
5
+ components: TextRange<ts.Node>[];
6
6
  };
7
- export declare function getClosestMultiLineCommentRange(ts: typeof import('typescript'), node: ts.Node, parents: ts.Node[], ast: ts.SourceFile): {
8
- start: number;
9
- end: number;
10
- } | undefined;
7
+ export declare function getClosestMultiLineCommentRange(ts: typeof import('typescript'), node: ts.Node, parents: ts.Node[], ast: ts.SourceFile): TextRange | undefined;
@@ -85,6 +85,7 @@ function getClosestMultiLineCommentRange(ts, node, parents, ast) {
85
85
  .find(range => range.kind === 3);
86
86
  if (comment) {
87
87
  return {
88
+ node,
88
89
  start: comment.pos,
89
90
  end: comment.end,
90
91
  };
@@ -1,6 +1,39 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const CompilerDOM = require("@vue/compiler-dom");
36
+ const CompilerDOM = __importStar(require("@vue/compiler-dom"));
4
37
  const forEachTemplateNode_1 = require("../utils/forEachTemplateNode");
5
38
  const shared_1 = require("../utils/shared");
6
39
  const shared_2 = require("./shared");
@@ -1,6 +1,39 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const CompilerDOM = require("@vue/compiler-dom");
36
+ const CompilerDOM = __importStar(require("@vue/compiler-dom"));
4
37
  const elementEvents_1 = require("../codegen/template/elementEvents");
5
38
  const templateChild_1 = require("../codegen/template/templateChild");
6
39
  const vFor_1 = require("../codegen/template/vFor");