Socket
Socket
Sign inDemoInstall

@vue/language-core

Package Overview
Dependencies
Maintainers
1
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vue/language-core - npm Package Compare versions

Comparing version 2.0.4 to 2.0.5

2

lib/generators/script.js

@@ -981,3 +981,3 @@ "use strict";

offset + 1,
(0, utils_1.disableAllFeatures)({ __combineLastMappping: true }),
(0, utils_1.disableAllFeatures)({ __combineLastMapping: true }),
]);

@@ -984,0 +984,0 @@ yield _(`'`);

@@ -5,2 +5,2 @@ import { type LanguagePlugin } from '@volar/language-core';

import { VueGeneratedCode } from './virtualFile/vueFile';
export declare function createVueLanguagePlugin(ts: typeof import('typescript'), getFileName: (fileId: string) => string, compilerOptions?: ts.CompilerOptions, _vueCompilerOptions?: Partial<VueCompilerOptions>, codegenStack?: boolean, globalTypesHolder?: string): LanguagePlugin<VueGeneratedCode>;
export declare function createVueLanguagePlugin(ts: typeof import('typescript'), getFileName: (fileId: string) => string, isValidGlobalTypesHolder: (fileName: string) => boolean, compilerOptions: ts.CompilerOptions, vueCompilerOptions: VueCompilerOptions, codegenStack?: boolean): LanguagePlugin<VueGeneratedCode>;

@@ -6,6 +6,9 @@ "use strict";

const plugins_1 = require("./plugins");
const ts_1 = require("./utils/ts");
const vueFile_1 = require("./virtualFile/vueFile");
const fileRegistries = [];
function getVueFileRegistry(key, plugins) {
const CompilerDOM = require("@vue/compiler-dom");
const CompilerVue2 = require("./utils/vue2TemplateCompiler");
const normalFileRegistries = [];
const holderFileRegistries = [];
function getVueFileRegistry(isGlobalTypesHolder, key, plugins) {
const fileRegistries = isGlobalTypesHolder ? holderFileRegistries : normalFileRegistries;
let fileRegistry = fileRegistries.find(r => r.key === key

@@ -24,5 +27,4 @@ && r.plugins.length === plugins.length

}
function getFileRegistryKey(compilerOptions, vueCompilerOptions, plugins, globalTypesHolder) {
function getFileRegistryKey(compilerOptions, vueCompilerOptions, plugins) {
const values = [
globalTypesHolder,
...Object.keys(vueCompilerOptions)

@@ -38,6 +40,19 @@ .sort()

}
function createVueLanguagePlugin(ts, getFileName, compilerOptions = {}, _vueCompilerOptions = {}, codegenStack = false, globalTypesHolder) {
const vueCompilerOptions = (0, ts_1.resolveVueCompilerOptions)(_vueCompilerOptions);
function createVueLanguagePlugin(ts, getFileName, isValidGlobalTypesHolder, compilerOptions, vueCompilerOptions, codegenStack = false) {
const allowLanguageIds = new Set(['vue']);
const pluginContext = (0, plugins_1.createPluginContext)(ts, compilerOptions, vueCompilerOptions, codegenStack, globalTypesHolder);
const pluginContext = {
modules: {
'@vue/compiler-dom': vueCompilerOptions.target < 3
? {
...CompilerDOM,
compile: CompilerVue2.compile,
}
: CompilerDOM,
typescript: ts,
},
compilerOptions,
vueCompilerOptions,
codegenStack,
globalTypesHolder: undefined,
};
const plugins = (0, plugins_1.getDefaultVueLanguagePlugins)(pluginContext);

@@ -50,3 +65,2 @@ if (vueCompilerOptions.extensions.includes('.md')) {

}
let generatedCodeRegistry;
return {

@@ -56,37 +70,39 @@ createVirtualCode(fileId, languageId, snapshot) {

const fileName = getFileName(fileId);
if (!generatedCodeRegistry) {
pluginContext.globalTypesHolder ??= fileName;
generatedCodeRegistry = getVueFileRegistry(getFileRegistryKey(compilerOptions, vueCompilerOptions, plugins, pluginContext.globalTypesHolder), vueCompilerOptions.plugins);
if (!pluginContext.globalTypesHolder && isValidGlobalTypesHolder(fileName)) {
pluginContext.globalTypesHolder = fileName;
}
if (generatedCodeRegistry.has(fileId)) {
const reusedResult = generatedCodeRegistry.get(fileId);
reusedResult.update(snapshot);
return reusedResult;
const fileRegistry = getFileRegistry(pluginContext.globalTypesHolder === fileName);
const code = fileRegistry.get(fileId);
if (code) {
code.update(snapshot);
return code;
}
const vueFile = new vueFile_1.VueGeneratedCode(fileName, languageId, snapshot, vueCompilerOptions, plugins, ts, codegenStack);
generatedCodeRegistry.set(fileId, vueFile);
return vueFile;
else {
const code = new vueFile_1.VueGeneratedCode(fileName, languageId, snapshot, vueCompilerOptions, plugins, ts, codegenStack);
fileRegistry.set(fileId, code);
return code;
}
}
},
updateVirtualCode(_fileId, vueFile, snapshot) {
vueFile.update(snapshot);
return vueFile;
updateVirtualCode(_fileId, code, snapshot) {
code.update(snapshot);
return code;
},
disposeVirtualCode(fileId, vueFile, files) {
generatedCodeRegistry?.delete(fileId);
if (vueFile.fileName === pluginContext.globalTypesHolder) {
if (generatedCodeRegistry?.size) {
for (const [fileName, file] of generatedCodeRegistry) {
pluginContext.globalTypesHolder = fileName;
generatedCodeRegistry = getVueFileRegistry(getFileRegistryKey(compilerOptions, vueCompilerOptions, plugins, pluginContext.globalTypesHolder), vueCompilerOptions.plugins);
files?.set(fileId, file.languageId,
disposeVirtualCode(fileId, code, files) {
const isGlobalTypesHolder = code.fileName === pluginContext.globalTypesHolder;
const fileRegistry = getFileRegistry(isGlobalTypesHolder);
fileRegistry.delete(fileId);
if (isGlobalTypesHolder) {
pluginContext.globalTypesHolder = undefined;
const fileRegistry2 = getFileRegistry(false);
for (const [fileId, code] of fileRegistry2) {
if (isValidGlobalTypesHolder(code.fileName)) {
pluginContext.globalTypesHolder = code.fileName;
fileRegistry2.delete(fileId);
// force dirty
{ ...file.snapshot });
files?.delete(fileId);
files?.set(fileId, code.languageId, code.snapshot);
break;
}
}
else {
generatedCodeRegistry = undefined;
pluginContext.globalTypesHolder = undefined;
}
}

@@ -117,4 +133,7 @@ },

};
function getFileRegistry(isGlobalTypesHolder) {
return getVueFileRegistry(isGlobalTypesHolder, getFileRegistryKey(compilerOptions, vueCompilerOptions, plugins), vueCompilerOptions.plugins);
}
}
exports.createVueLanguagePlugin = createVueLanguagePlugin;
//# sourceMappingURL=languageModule.js.map

@@ -1,14 +0,2 @@

import * as CompilerDOM from '@vue/compiler-dom';
import type * as ts from 'typescript';
import { type VueCompilerOptions, type VueLanguagePlugin } from './types';
export declare function createPluginContext(ts: typeof import('typescript'), compilerOptions: ts.CompilerOptions, vueCompilerOptions: VueCompilerOptions, codegenStack: boolean, globalTypesHolder: string | undefined): {
modules: {
typescript: typeof import("typescript");
'@vue/compiler-dom': typeof CompilerDOM;
};
compilerOptions: ts.CompilerOptions;
vueCompilerOptions: VueCompilerOptions;
codegenStack: boolean;
globalTypesHolder: string | undefined;
};
import { type VueLanguagePlugin } from './types';
export declare function getDefaultVueLanguagePlugins(pluginContext: Parameters<VueLanguagePlugin>[0]): {

@@ -25,9 +13,9 @@ version: 2;

}): import("@vue/compiler-sfc").SFCParseResult | undefined;
resolveTemplateCompilerOptions?(options: CompilerDOM.CompilerOptions): CompilerDOM.CompilerOptions;
compileSFCTemplate?(lang: string, template: string, options: CompilerDOM.CompilerOptions): CompilerDOM.CodegenResult | undefined;
updateSFCTemplate?(oldResult: CompilerDOM.CodegenResult, textChange: {
resolveTemplateCompilerOptions?(options: import("@vue/compiler-dom").CompilerOptions): import("@vue/compiler-dom").CompilerOptions;
compileSFCTemplate?(lang: string, template: string, options: import("@vue/compiler-dom").CompilerOptions): import("@vue/compiler-dom").CodegenResult | undefined;
updateSFCTemplate?(oldResult: import("@vue/compiler-dom").CodegenResult, textChange: {
start: number;
end: number;
newText: string;
}): CompilerDOM.CodegenResult | undefined;
}): import("@vue/compiler-dom").CodegenResult | undefined;
getEmbeddedCodes?(fileName: string, sfc: import("./types").Sfc): {

@@ -34,0 +22,0 @@ id: string;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDefaultVueLanguagePlugins = exports.createPluginContext = void 0;
const CompilerDOM = require("@vue/compiler-dom");
exports.getDefaultVueLanguagePlugins = void 0;
const file_html_1 = require("./plugins/file-html");

@@ -15,22 +14,2 @@ const file_md_1 = require("./plugins/file-md");

const types_1 = require("./types");
const CompilerVue2 = require("./utils/vue2TemplateCompiler");
function createPluginContext(ts, compilerOptions, vueCompilerOptions, codegenStack, globalTypesHolder) {
const pluginCtx = {
modules: {
'@vue/compiler-dom': vueCompilerOptions.target < 3
? {
...CompilerDOM,
compile: CompilerVue2.compile,
}
: CompilerDOM,
typescript: ts,
},
compilerOptions,
vueCompilerOptions,
codegenStack,
globalTypesHolder,
};
return pluginCtx;
}
exports.createPluginContext = createPluginContext;
function getDefaultVueLanguagePlugins(pluginContext) {

@@ -50,3 +29,11 @@ const plugins = [

const pluginInstances = plugins
.map(plugin => plugin(pluginContext))
.map(plugin => {
try {
return plugin(pluginContext);
}
catch (err) {
console.warn('[Vue] Failed to create plugin', err);
}
})
.filter((plugin) => !!plugin)
.sort((a, b) => {

@@ -60,3 +47,3 @@ const aOrder = a.order ?? 0;

if (!valid) {
console.warn(`Plugin ${JSON.stringify(plugin.name)} API version incompatible, expected ${JSON.stringify(types_1.pluginVersion)} but got ${JSON.stringify(plugin.version)}`);
console.warn(`[Vue] Plugin ${JSON.stringify(plugin.name)} API version incompatible, expected ${JSON.stringify(types_1.pluginVersion)} but got ${JSON.stringify(plugin.version)}`);
}

@@ -63,0 +50,0 @@ return valid;

@@ -21,3 +21,3 @@ import type * as CompilerDOM from '@vue/compiler-dom';

};
__combineLastMappping?: boolean;
__combineLastMapping?: boolean;
}

@@ -24,0 +24,0 @@ export type CodeAndStack = [code: Code, stack: string];

@@ -124,7 +124,7 @@ "use strict";

else {
console.warn('Load plugin failed:', pluginPath);
console.warn('[Vue] Load plugin failed:', pluginPath);
}
}
catch (error) {
console.warn('Load plugin failed:', pluginPath, error);
console.warn('[Vue] Resolve plugin path failed:', pluginPath, error);
}

@@ -131,0 +131,0 @@ return [];

@@ -175,3 +175,3 @@ "use strict";

}
if (mapping.data.__combineLastMappping) {
if (mapping.data.__combineLastMapping) {
lastValidMapping.sourceOffsets.push(...mapping.sourceOffsets);

@@ -189,3 +189,3 @@ lastValidMapping.generatedOffsets.push(...mapping.generatedOffsets);

snapshot,
mappings: mappings.filter(mapping => !mapping.data.__combineLastMappping),
mappings: mappings.filter(mapping => !mapping.data.__combineLastMapping),
codegenStacks: (0, language_core_1.buildStacks)(file.content, file.contentStacks),

@@ -192,0 +192,0 @@ };

{
"name": "@vue/language-core",
"version": "2.0.4",
"version": "2.0.5",
"license": "MIT",

@@ -15,3 +15,3 @@ "files": [

"dependencies": {
"@volar/language-core": "~2.1.0",
"@volar/language-core": "~2.1.1",
"@vue/compiler-dom": "^3.4.0",

@@ -38,3 +38,3 @@ "@vue/shared": "^3.4.0",

},
"gitHead": "241300968fd3084c7c09139d05691a51a7800fdc"
"gitHead": "62b4fcb0d3f7153b5b2f5571af32f519117d8466"
}

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc