@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,24 +1,53 @@
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
36
  exports.generateTemplate = generateTemplate;
4
37
  const codeFeatures_1 = require("../codeFeatures");
5
- const names = require("../names");
38
+ const names = __importStar(require("../names"));
6
39
  const utils_1 = require("../utils");
7
40
  const merge_1 = require("../utils/merge");
8
- const src_1 = require("./src");
9
41
  function* generateTemplate(options, ctx, selfType) {
10
42
  yield* generateSetupExposed(options, ctx);
11
43
  yield* generateTemplateCtx(options, ctx, selfType);
12
- yield* generateTemplateComponents(options);
13
- yield* generateTemplateDirectives(options);
14
- if (options.styleCodegen) {
15
- yield* options.styleCodegen.codes;
16
- }
17
- if (options.templateCodegen) {
18
- yield* options.templateCodegen.codes;
44
+ yield* generateTemplateComponents(options, ctx);
45
+ yield* generateTemplateDirectives(options, ctx);
46
+ if (options.templateAndStyleCodes.length) {
47
+ yield* options.templateAndStyleCodes;
19
48
  }
20
49
  }
21
- function* generateTemplateCtx({ vueCompilerOptions, script, styleCodegen, scriptSetupRanges, fileName }, ctx, selfType) {
50
+ function* generateTemplateCtx({ vueCompilerOptions, templateAndStyleTypes, scriptSetupRanges, fileName }, ctx, selfType) {
22
51
  const exps = [];
23
52
  const emitTypes = [];
24
53
  const propTypes = [];
@@ -28,13 +57,10 @@ function* generateTemplateCtx({ vueCompilerOptions, script, styleCodegen, script
28
57
  if (selfType) {
29
58
  exps.push([`{} as InstanceType<__VLS_PickNotAny<typeof ${selfType}, new () => {}>>`]);
30
59
  }
31
- else if (typeof script?.src === 'object') {
32
- exps.push([`{} as typeof import('${(0, src_1.resolveSrcPath)(script.src.text)}').default`]);
33
- }
34
60
  else {
35
61
  exps.push([`{} as import('${vueCompilerOptions.lib}').ComponentPublicInstance`]);
36
62
  }
37
- if (styleCodegen?.generatedTypes.has(names.StyleModules)) {
63
+ if (templateAndStyleTypes.has(names.StyleModules)) {
38
64
  exps.push([`{} as ${names.StyleModules}`]);
39
65
  }
40
66
  if (scriptSetupRanges?.defineEmits) {
@@ -69,37 +95,49 @@ function* generateTemplateCtx({ vueCompilerOptions, script, styleCodegen, script
69
95
  yield* (0, merge_1.generateSpreadMerge)(exps);
70
96
  yield utils_1.endOfLine;
71
97
  }
72
- function* generateTemplateComponents(options) {
73
- const types = [`typeof ${names.ctx}`];
74
- if (options.script && options.scriptRanges?.componentOptions?.components) {
75
- const { components } = options.scriptRanges.componentOptions;
98
+ function* generateTemplateComponents({ vueCompilerOptions, script, scriptRanges }, ctx) {
99
+ const types = [];
100
+ if (ctx.generatedTypes.has(names.SetupExposed)) {
101
+ types.push(names.SetupExposed);
102
+ }
103
+ if (script && scriptRanges?.exportDefault?.options?.components) {
104
+ const { components } = scriptRanges.exportDefault.options;
76
105
  yield `const __VLS_componentsOption = `;
77
- yield* (0, utils_1.generateSfcBlockSection)(options.script, components.start, components.end, codeFeatures_1.codeFeatures.navigation);
106
+ yield* (0, utils_1.generateSfcBlockSection)(script, components.start, components.end, codeFeatures_1.codeFeatures.navigation);
78
107
  yield utils_1.endOfLine;
79
108
  types.push(`typeof __VLS_componentsOption`);
80
109
  }
81
- yield `type __VLS_LocalComponents = ${types.join(` & `)}${utils_1.endOfLine}`;
110
+ yield `type __VLS_LocalComponents = ${types.length ? types.join(` & `) : `{}`}${utils_1.endOfLine}`;
111
+ yield `type __VLS_GlobalComponents = ${vueCompilerOptions.target >= 3.5
112
+ ? `import('${vueCompilerOptions.lib}').GlobalComponents`
113
+ : `import('${vueCompilerOptions.lib}').GlobalComponents & Pick<typeof import('${vueCompilerOptions.lib}'), 'Transition' | 'TransitionGroup' | 'KeepAlive' | 'Suspense' | 'Teleport'>`}${utils_1.endOfLine}`;
82
114
  yield `let ${names.components}!: __VLS_LocalComponents & __VLS_GlobalComponents${utils_1.endOfLine}`;
115
+ yield `let ${names.intrinsics}!: ${vueCompilerOptions.target >= 3.3
116
+ ? `import('${vueCompilerOptions.lib}/jsx-runtime').JSX.IntrinsicElements`
117
+ : `globalThis.JSX.IntrinsicElements`}${utils_1.endOfLine}`;
83
118
  }
84
- function* generateTemplateDirectives(options) {
85
- const types = [`typeof ${names.ctx}`];
86
- if (options.script && options.scriptRanges?.componentOptions?.directives) {
87
- const { directives } = options.scriptRanges.componentOptions;
119
+ function* generateTemplateDirectives({ vueCompilerOptions, script, scriptRanges }, ctx) {
120
+ const types = [];
121
+ if (ctx.generatedTypes.has(names.SetupExposed)) {
122
+ types.push(names.SetupExposed);
123
+ }
124
+ if (script && scriptRanges?.exportDefault?.options?.directives) {
125
+ const { directives } = scriptRanges.exportDefault.options;
88
126
  yield `const __VLS_directivesOption = `;
89
- yield* (0, utils_1.generateSfcBlockSection)(options.script, directives.start, directives.end, codeFeatures_1.codeFeatures.navigation);
127
+ yield* (0, utils_1.generateSfcBlockSection)(script, directives.start, directives.end, codeFeatures_1.codeFeatures.navigation);
90
128
  yield utils_1.endOfLine;
91
129
  types.push(`__VLS_ResolveDirectives<typeof __VLS_directivesOption>`);
92
130
  }
93
- yield `type __VLS_LocalDirectives = ${types.join(` & `)}${utils_1.endOfLine}`;
94
- yield `let ${names.directives}!: __VLS_LocalDirectives & __VLS_GlobalDirectives${utils_1.endOfLine}`;
131
+ yield `type __VLS_LocalDirectives = ${types.length ? types.join(` & `) : `{}`}${utils_1.endOfLine}`;
132
+ yield `let ${names.directives}!: __VLS_LocalDirectives & import('${vueCompilerOptions.lib}').GlobalDirectives${utils_1.endOfLine}`;
95
133
  }
96
- function* generateSetupExposed({ setupExposed }, ctx) {
97
- if (!setupExposed.size) {
134
+ function* generateSetupExposed({ vueCompilerOptions, exposed }, ctx) {
135
+ if (!exposed.size) {
98
136
  return;
99
137
  }
100
138
  ctx.generatedTypes.add(names.SetupExposed);
101
- yield `type ${names.SetupExposed} = __VLS_ProxyRefs<{${utils_1.newLine}`;
102
- for (const bindingName of setupExposed) {
139
+ yield `type ${names.SetupExposed} = import('${vueCompilerOptions.lib}').ShallowUnwrapRef<{${utils_1.newLine}`;
140
+ for (const bindingName of exposed) {
103
141
  const token = Symbol(bindingName.length);
104
142
  yield ['', undefined, 0, { __linkedToken: token }];
105
143
  yield `${bindingName}: typeof `;
@@ -1,6 +1,6 @@
1
1
  import type { Code, Sfc, VueCompilerOptions } from '../../types';
2
2
  export interface StyleCodegenOptions {
3
- ts: typeof import('typescript');
3
+ typescript: typeof import('typescript');
4
4
  vueCompilerOptions: VueCompilerOptions;
5
5
  styles: Sfc['styles'];
6
6
  setupRefs: Set<string>;
@@ -8,24 +8,23 @@ export interface StyleCodegenOptions {
8
8
  }
9
9
  export { generate as generateStyle };
10
10
  declare function generate(options: StyleCodegenOptions): {
11
- codes: Code[];
12
11
  generatedTypes: Set<string>;
13
12
  currentInfo: {
14
- ignoreError?: boolean;
13
+ ignoreError?: boolean | undefined;
15
14
  expectError?: {
16
15
  token: number;
17
16
  node: import("@vue/compiler-dom").CommentNode;
18
- };
17
+ } | undefined;
19
18
  generic?: {
20
19
  content: string;
21
20
  offset: number;
22
- };
21
+ } | undefined;
23
22
  };
24
23
  resolveCodeFeatures: (features: import("../../types").VueCodeInformation) => import("../../types").VueCodeInformation;
25
24
  inVFor: boolean;
26
25
  slots: {
27
26
  name: string;
28
- offset?: number;
27
+ offset?: number | undefined;
29
28
  tagRange: [number, number];
30
29
  nodeLoc: any;
31
30
  propsVar: string;
@@ -46,7 +45,7 @@ declare function generate(options: StyleCodegenOptions): {
46
45
  singleRootElTypes: Set<string>;
47
46
  singleRootNodes: Set<import("@vue/compiler-dom").ElementNode | null>;
48
47
  addTemplateRef(name: string, typeExp: string, offset: number): void;
49
- recordComponentAccess(source: string, name: string, offset?: number): void;
48
+ recordComponentAccess(source: string, name: string, offset?: number | undefined): void;
50
49
  scopes: Set<string>[];
51
50
  components: (() => string)[];
52
51
  declare(...varNames: string[]): void;
@@ -55,6 +54,7 @@ declare function generate(options: StyleCodegenOptions): {
55
54
  getHoistVariable(originalVar: string): string;
56
55
  generateHoistVariables(): Generator<string, void, unknown>;
57
56
  generateConditionGuards(): Generator<string, void, unknown>;
58
- enter(node: import("@vue/compiler-dom").RootNode | import("@vue/compiler-dom").TemplateChildNode | import("@vue/compiler-dom").SimpleExpressionNode): boolean;
59
- exit(): Generator<Code>;
57
+ enter(node: import("@vue/compiler-dom").RootNode | import("@vue/compiler-dom").SimpleExpressionNode | import("@vue/compiler-dom").TemplateChildNode): boolean;
58
+ exit(): Generator<Code, any, any>;
59
+ codes: Code[];
60
60
  };
@@ -1,8 +1,41 @@
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
36
  exports.generateStyleModules = generateStyleModules;
4
37
  const codeFeatures_1 = require("../codeFeatures");
5
- const names = require("../names");
38
+ const names = __importStar(require("../names"));
6
39
  const utils_1 = require("../utils");
7
40
  const common_1 = require("./common");
8
41
  function* generateStyleModules({ styles, vueCompilerOptions }, ctx) {
@@ -102,21 +102,21 @@ export type TemplateCodegenContext = ReturnType<typeof createTemplateCodegenCont
102
102
  export declare function createTemplateCodegenContext(): {
103
103
  generatedTypes: Set<string>;
104
104
  readonly currentInfo: {
105
- ignoreError?: boolean;
105
+ ignoreError?: boolean | undefined;
106
106
  expectError?: {
107
107
  token: number;
108
108
  node: CompilerDOM.CommentNode;
109
- };
109
+ } | undefined;
110
110
  generic?: {
111
111
  content: string;
112
112
  offset: number;
113
- };
113
+ } | undefined;
114
114
  };
115
115
  resolveCodeFeatures: (features: VueCodeInformation) => VueCodeInformation;
116
116
  inVFor: boolean;
117
117
  slots: {
118
118
  name: string;
119
- offset?: number;
119
+ offset?: number | undefined;
120
120
  tagRange: [number, number];
121
121
  nodeLoc: any;
122
122
  propsVar: string;
@@ -137,7 +137,7 @@ export declare function createTemplateCodegenContext(): {
137
137
  singleRootElTypes: Set<string>;
138
138
  singleRootNodes: Set<CompilerDOM.ElementNode | null>;
139
139
  addTemplateRef(name: string, typeExp: string, offset: number): void;
140
- recordComponentAccess(source: string, name: string, offset?: number): void;
140
+ recordComponentAccess(source: string, name: string, offset?: number | undefined): void;
141
141
  scopes: Set<string>[];
142
142
  components: (() => string)[];
143
143
  declare(...varNames: string[]): void;
@@ -146,6 +146,6 @@ export declare function createTemplateCodegenContext(): {
146
146
  getHoistVariable(originalVar: string): string;
147
147
  generateHoistVariables(): Generator<string, void, unknown>;
148
148
  generateConditionGuards(): Generator<string, void, unknown>;
149
- enter(node: CompilerDOM.RootNode | CompilerDOM.TemplateChildNode | CompilerDOM.SimpleExpressionNode): boolean;
150
- exit(): Generator<Code>;
149
+ enter(node: CompilerDOM.RootNode | CompilerDOM.SimpleExpressionNode | CompilerDOM.TemplateChildNode): boolean;
150
+ exit(): Generator<Code, any, any>;
151
151
  };
@@ -1,7 +1,40 @@
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
36
  exports.createTemplateCodegenContext = createTemplateCodegenContext;
4
- const CompilerDOM = require("@vue/compiler-dom");
37
+ const CompilerDOM = __importStar(require("@vue/compiler-dom"));
5
38
  const codeFeatures_1 = require("../codeFeatures");
6
39
  const utils_1 = require("../utils");
7
40
  const boundary_1 = require("../utils/boundary");
@@ -1,14 +1,47 @@
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
36
  exports.generateComponent = generateComponent;
4
37
  exports.generateElement = generateElement;
5
- const CompilerDOM = require("@vue/compiler-dom");
38
+ const CompilerDOM = __importStar(require("@vue/compiler-dom"));
6
39
  const shared_1 = require("@vue/shared");
7
40
  const muggle_string_1 = require("muggle-string");
8
41
  const shared_2 = require("../../utils/shared");
9
42
  const codeFeatures_1 = require("../codeFeatures");
10
43
  const inlayHints_1 = require("../inlayHints");
11
- const names = require("../names");
44
+ const names = __importStar(require("../names"));
12
45
  const utils_1 = require("../utils");
13
46
  const boundary_1 = require("../utils/boundary");
14
47
  const camelized_1 = require("../utils/camelized");
@@ -77,8 +110,8 @@ function* generateComponent(options, ctx, node) {
77
110
  yield utils_1.endOfLine;
78
111
  }
79
112
  else {
80
- yield `let ${componentVar}!: __VLS_WithComponent<'${tag}', __VLS_LocalComponents`;
81
- yield originalNames.has(options.selfComponentName)
113
+ yield `let ${componentVar}!: __VLS_WithComponent<'${tag}', __VLS_LocalComponents, __VLS_GlobalComponents`;
114
+ yield originalNames.has(options.componentName)
82
115
  ? `, typeof ${names._export}`
83
116
  : `, void`;
84
117
  for (const name of originalNames) {
@@ -100,6 +133,14 @@ function* generateComponent(options, ctx, node) {
100
133
  yield ` | typeof ${names.components}.`;
101
134
  yield* (0, camelized_1.generateCamelized)((0, shared_1.capitalize)(tag), 'template', startTagOffset, codeFeatures_1.codeFeatures.navigation);
102
135
  }
136
+ if (endTagOffset !== undefined) {
137
+ yield ` | typeof ${names.components}.`;
138
+ yield* (0, camelized_1.generateCamelized)(tag, 'template', endTagOffset, codeFeatures_1.codeFeatures.navigation);
139
+ if (tag[0] !== tag[0].toUpperCase()) {
140
+ yield ` | typeof ${names.components}.`;
141
+ yield* (0, camelized_1.generateCamelized)((0, shared_1.capitalize)(tag), 'template', endTagOffset, codeFeatures_1.codeFeatures.navigation);
142
+ }
143
+ }
103
144
  yield `} */${utils_1.newLine}`;
104
145
  // auto import support
105
146
  yield* (0, camelized_1.generateCamelized)(tag, 'template', startTagOffset, codeFeatures_1.codeFeatures.importCompletionOnly);
@@ -122,7 +163,7 @@ function* generateComponentBody(options, ctx, node, tag, tagOffset, props, compo
122
163
  const ctxVar = ctx.getInternalVariable();
123
164
  const propsVar = ctx.getInternalVariable();
124
165
  yield `// @ts-ignore${utils_1.newLine}`;
125
- yield `const ${functionalVar} = __VLS_asFunctionalComponent(${componentVar}, new ${componentVar}({${utils_1.newLine}`;
166
+ yield `const ${functionalVar} = ${options.vueCompilerOptions.checkUnknownProps ? '__VLS_asFunctionalComponent0' : '__VLS_asFunctionalComponent1'}(${componentVar}, new ${componentVar}({${utils_1.newLine}`;
126
167
  yield* (0, muggle_string_1.toString)(propCodes);
127
168
  yield `}))${utils_1.endOfLine}`;
128
169
  yield `const `;
@@ -185,7 +226,7 @@ function* generateComponentBody(options, ctx, node, tag, tagOffset, props, compo
185
226
  function* generateElement(options, ctx, node) {
186
227
  const [startTagOffset, endTagOffset] = (0, shared_2.getElementTagOffsets)(node, options.template);
187
228
  const failedPropExps = [];
188
- yield `__VLS_asFunctionalElement(${names.intrinsics}`;
229
+ yield `${options.vueCompilerOptions.checkUnknownProps ? `__VLS_asFunctionalElement0` : `__VLS_asFunctionalElement1`}(${names.intrinsics}`;
189
230
  yield* (0, propertyAccess_1.generatePropertyAccess)(options, ctx, node.tag, startTagOffset, codeFeatures_1.codeFeatures.withoutHighlightAndCompletion);
190
231
  if (endTagOffset !== undefined) {
191
232
  yield `, `;
@@ -220,7 +261,7 @@ function* generateElement(options, ctx, node) {
220
261
  yield* (0, templateChild_1.generateTemplateChild)(options, ctx, child);
221
262
  }
222
263
  }
223
- function* generateStyleScopedClassReferences({ template, ts }, node) {
264
+ function* generateStyleScopedClassReferences({ template, typescript: ts }, node) {
224
265
  for (const prop of node.props) {
225
266
  if (prop.type === CompilerDOM.NodeTypes.ATTRIBUTE
226
267
  && prop.name === 'class'
@@ -1,11 +1,44 @@
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
36
  exports.generateElementDirectives = generateElementDirectives;
4
37
  exports.generateModifiers = generateModifiers;
5
- const CompilerDOM = require("@vue/compiler-dom");
38
+ const CompilerDOM = __importStar(require("@vue/compiler-dom"));
6
39
  const shared_1 = require("@vue/shared");
7
40
  const codeFeatures_1 = require("../codeFeatures");
8
- const names = require("../names");
41
+ const names = __importStar(require("../names"));
9
42
  const utils_1 = require("../utils");
10
43
  const boundary_1 = require("../utils/boundary");
11
44
  const camelized_1 = require("../utils/camelized");
@@ -33,7 +66,7 @@ function* generateElementDirectives(options, ctx, node) {
33
66
  const token = yield* (0, boundary_1.startBoundary)('template', prop.loc.start.offset, codeFeatures_1.codeFeatures.verification);
34
67
  yield `__VLS_asFunctionalDirective(`;
35
68
  yield* generateIdentifier(options, ctx, prop);
36
- yield `)(null!, { ...__VLS_directiveBindingRestFields, `;
69
+ yield `, {} as import('${options.vueCompilerOptions.lib}').ObjectDirective)(null!, { ...__VLS_directiveBindingRestFields, `;
37
70
  yield* generateArg(options, ctx, prop);
38
71
  yield* generateModifiers(options, ctx, prop);
39
72
  yield* generateValue(options, ctx, prop);
@@ -1,11 +1,44 @@
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
36
  exports.generateElementEvents = generateElementEvents;
4
37
  exports.generateEventArg = generateEventArg;
5
38
  exports.generateEventExpression = generateEventExpression;
6
39
  exports.generateModelEventExpression = generateModelEventExpression;
7
40
  exports.isCompoundExpression = isCompoundExpression;
8
- const CompilerDOM = require("@vue/compiler-dom");
41
+ const CompilerDOM = __importStar(require("@vue/compiler-dom"));
9
42
  const shared_1 = require("@vue/shared");
10
43
  const codeFeatures_1 = require("../codeFeatures");
11
44
  const utils_1 = require("../utils");
@@ -89,8 +122,8 @@ function* generateEventArg(options, name, start, directive = 'on', features) {
89
122
  }
90
123
  function* generateEventExpression(options, ctx, prop) {
91
124
  if (prop.exp?.type === CompilerDOM.NodeTypes.SIMPLE_EXPRESSION) {
92
- const ast = (0, utils_1.getTypeScriptAST)(options.ts, options.template, prop.exp.content);
93
- const isCompound = isCompoundExpression(options.ts, ast);
125
+ const ast = (0, utils_1.getTypeScriptAST)(options.typescript, options.template, prop.exp.content);
126
+ const isCompound = isCompoundExpression(options.typescript, ast);
94
127
  const interpolation = (0, interpolation_1.generateInterpolation)(options, ctx, options.template, codeFeatures_1.codeFeatures.all, prop.exp.content, prop.exp.loc.start.offset, isCompound ? `` : `(`, isCompound ? `` : `)`);
95
128
  if (isCompound) {
96
129
  yield `(...[$event]) => {${utils_1.newLine}`;
@@ -1,14 +1,47 @@
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
36
  exports.generateElementProps = generateElementProps;
4
37
  exports.generatePropExp = generatePropExp;
5
- const CompilerDOM = require("@vue/compiler-dom");
38
+ const CompilerDOM = __importStar(require("@vue/compiler-dom"));
6
39
  const shared_1 = require("@vue/shared");
7
40
  const picomatch_1 = require("picomatch");
8
41
  const shared_2 = require("../../utils/shared");
9
42
  const codeFeatures_1 = require("../codeFeatures");
10
43
  const inlayHints_1 = require("../inlayHints");
11
- const names = require("../names");
44
+ const names = __importStar(require("../names"));
12
45
  const utils_1 = require("../utils");
13
46
  const boundary_1 = require("../utils/boundary");
14
47
  const camelized_1 = require("../utils/camelized");
@@ -1,7 +1,7 @@
1
1
  import type * as ts from 'typescript';
2
2
  import type { Code, Sfc, VueCompilerOptions } from '../../types';
3
3
  export interface TemplateCodegenOptions {
4
- ts: typeof ts;
4
+ typescript: typeof ts;
5
5
  vueCompilerOptions: VueCompilerOptions;
6
6
  template: NonNullable<Sfc['template']>;
7
7
  setupRefs: Set<string>;
@@ -10,28 +10,27 @@ export interface TemplateCodegenOptions {
10
10
  propsAssignName?: string;
11
11
  slotsAssignName?: string;
12
12
  inheritAttrs: boolean;
13
- selfComponentName: string;
13
+ componentName: string;
14
14
  }
15
15
  export { generate as generateTemplate };
16
16
  declare function generate(options: TemplateCodegenOptions): {
17
- codes: Code[];
18
17
  generatedTypes: Set<string>;
19
18
  currentInfo: {
20
- ignoreError?: boolean;
19
+ ignoreError?: boolean | undefined;
21
20
  expectError?: {
22
21
  token: number;
23
22
  node: import("@vue/compiler-dom").CommentNode;
24
- };
23
+ } | undefined;
25
24
  generic?: {
26
25
  content: string;
27
26
  offset: number;
28
- };
27
+ } | undefined;
29
28
  };
30
29
  resolveCodeFeatures: (features: import("../../types").VueCodeInformation) => import("../../types").VueCodeInformation;
31
30
  inVFor: boolean;
32
31
  slots: {
33
32
  name: string;
34
- offset?: number;
33
+ offset?: number | undefined;
35
34
  tagRange: [number, number];
36
35
  nodeLoc: any;
37
36
  propsVar: string;
@@ -52,7 +51,7 @@ declare function generate(options: TemplateCodegenOptions): {
52
51
  singleRootElTypes: Set<string>;
53
52
  singleRootNodes: Set<import("@vue/compiler-dom").ElementNode | null>;
54
53
  addTemplateRef(name: string, typeExp: string, offset: number): void;
55
- recordComponentAccess(source: string, name: string, offset?: number): void;
54
+ recordComponentAccess(source: string, name: string, offset?: number | undefined): void;
56
55
  scopes: Set<string>[];
57
56
  components: (() => string)[];
58
57
  declare(...varNames: string[]): void;
@@ -61,6 +60,7 @@ declare function generate(options: TemplateCodegenOptions): {
61
60
  getHoistVariable(originalVar: string): string;
62
61
  generateHoistVariables(): Generator<string, void, unknown>;
63
62
  generateConditionGuards(): Generator<string, void, unknown>;
64
- enter(node: import("@vue/compiler-dom").RootNode | import("@vue/compiler-dom").TemplateChildNode | import("@vue/compiler-dom").SimpleExpressionNode): boolean;
65
- exit(): Generator<Code>;
63
+ enter(node: import("@vue/compiler-dom").RootNode | import("@vue/compiler-dom").SimpleExpressionNode | import("@vue/compiler-dom").TemplateChildNode): boolean;
64
+ exit(): Generator<Code, any, any>;
65
+ codes: Code[];
66
66
  };