feature: vor und nachteile

This commit is contained in:
Hikyu
2026-05-31 13:54:31 +02:00
parent 552a947a1c
commit e3dad17446
23270 changed files with 3024794 additions and 200 deletions
@@ -0,0 +1,10 @@
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
}) : x)(function(x) {
if (typeof require !== "undefined") return require.apply(this, arguments);
throw Error('Dynamic require of "' + x + '" is not supported');
});
export {
__require
};
@@ -0,0 +1,753 @@
import {
DIRECTIVE_IMPORT_PREFIX,
DISABLE_COMMENT,
getNameFromFilePath,
getTransformedPath,
isExclude,
matchGlobs,
normalizeComponentInfo,
parseId,
pascalCase,
resolveAlias,
shouldTransform,
stringifyComponentImport
} from "./chunk-X53Y3GEO.js";
// src/core/unplugin.ts
import { existsSync as existsSync2 } from "node:fs";
import process2 from "node:process";
import { createFilter } from "@rollup/pluginutils";
import chokidar from "chokidar";
import { createUnplugin } from "unplugin";
// src/core/context.ts
import { relative as relative2 } from "node:path";
import process from "node:process";
import { slash as slash3, throttle, toArray as toArray2 } from "@antfu/utils";
import Debug5 from "debug";
// src/core/declaration.ts
import { existsSync } from "node:fs";
import { mkdir, readFile, writeFile as writeFile_ } from "node:fs/promises";
import { dirname, isAbsolute, relative } from "node:path";
import { notNullish as notNullish2, slash } from "@antfu/utils";
// src/core/type-imports/detect.ts
import { notNullish } from "@antfu/utils";
import { isPackageExists } from "local-pkg";
// src/core/type-imports/index.ts
var TypeImportPresets = [
{
from: "vue-router",
names: [
"RouterView",
"RouterLink"
]
},
{
from: "vue-starport",
names: [
"Starport",
"StarportCarrier"
]
}
];
// src/core/type-imports/detect.ts
function detectTypeImports() {
return TypeImportPresets.map((i) => isPackageExists(i.from) ? i : void 0).filter(notNullish);
}
function resolveTypeImports(imports) {
return imports.flatMap((i) => i.names.map((n) => ({ from: i.from, name: n, as: n })));
}
// src/core/declaration.ts
var multilineCommentsRE = /\/\*.*?\*\//gs;
var singlelineCommentsRE = /\/\/.*$/gm;
function extractImports(code) {
return Object.fromEntries(Array.from(code.matchAll(/['"]?([^\s'"]+)['"]?\s*:\s*(.+?)[,;\n]/g)).map((i) => [i[1], i[2]]));
}
function parseDeclaration(code) {
if (!code)
return;
code = code.replace(multilineCommentsRE, "").replace(singlelineCommentsRE, "");
const imports = {
component: {},
directive: {}
};
const componentDeclaration = /export\s+interface\s+GlobalComponents\s*\{.*?\}/s.exec(code)?.[0];
if (componentDeclaration)
imports.component = extractImports(componentDeclaration);
const directiveDeclaration = /export\s+interface\s+ComponentCustomProperties\s*\{.*?\}/s.exec(code)?.[0];
if (directiveDeclaration)
imports.directive = extractImports(directiveDeclaration);
return imports;
}
function stringifyComponentInfo(filepath, { from: path, as: name, name: importName }, importPathTransform) {
if (!name)
return void 0;
path = getTransformedPath(path, importPathTransform);
const related = isAbsolute(path) ? `./${relative(dirname(filepath), path)}` : path;
const entry = `typeof import('${slash(related)}')['${importName || "default"}']`;
return [name, entry];
}
function stringifyComponentsInfo(filepath, components, importPathTransform) {
return Object.fromEntries(
components.map((info) => stringifyComponentInfo(filepath, info, importPathTransform)).filter(notNullish2)
);
}
function getDeclarationImports(ctx, filepath) {
const component = stringifyComponentsInfo(filepath, [
...Object.values({
...ctx.componentNameMap,
...ctx.componentCustomMap
}),
...resolveTypeImports(ctx.options.types)
], ctx.options.importPathTransform);
const directive = stringifyComponentsInfo(
filepath,
Object.values(ctx.directiveCustomMap),
ctx.options.importPathTransform
);
if (Object.keys(component).length + Object.keys(directive).length === 0)
return;
return { component, directive };
}
function stringifyDeclarationImports(imports) {
return Object.entries(imports).sort(([a], [b]) => a.localeCompare(b)).map(([name, v]) => {
if (!/^\w+$/.test(name))
name = `'${name}'`;
return `${name}: ${v}`;
});
}
function getDeclaration(ctx, filepath, originalImports) {
const imports = getDeclarationImports(ctx, filepath);
if (!imports)
return;
const declarations = {
component: stringifyDeclarationImports({ ...originalImports?.component, ...imports.component }),
directive: stringifyDeclarationImports({ ...originalImports?.directive, ...imports.directive })
};
let code = `/* eslint-disable */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}
/* prettier-ignore */
declare module 'vue' {`;
if (Object.keys(declarations.component).length > 0) {
code += `
export interface GlobalComponents {
${declarations.component.join("\n ")}
}`;
}
if (Object.keys(declarations.directive).length > 0) {
code += `
export interface ComponentCustomProperties {
${declarations.directive.join("\n ")}
}`;
}
code += "\n}\n";
return code;
}
async function writeFile(filePath, content) {
await mkdir(dirname(filePath), { recursive: true });
return await writeFile_(filePath, content, "utf-8");
}
async function writeDeclaration(ctx, filepath, removeUnused = false) {
const originalContent = existsSync(filepath) ? await readFile(filepath, "utf-8") : "";
const originalImports = removeUnused ? void 0 : parseDeclaration(originalContent);
const code = getDeclaration(ctx, filepath, originalImports);
if (!code)
return;
if (code !== originalContent)
await writeFile(filepath, code);
}
// src/core/fs/glob.ts
import Debug from "debug";
import fg from "fast-glob";
var debug = Debug("unplugin-vue-components:glob");
function searchComponents(ctx) {
debug(`started with: [${ctx.options.globs.join(", ")}]`);
const root = ctx.root;
const files = fg.sync(ctx.options.globs, {
ignore: ["node_modules"],
onlyFiles: true,
cwd: root,
absolute: true
});
if (!files.length && !ctx.options.resolvers?.length)
console.warn("[unplugin-vue-components] no components found");
debug(`${files.length} components found.`);
ctx.addComponents(files);
}
// src/core/options.ts
import { join, resolve } from "node:path";
import { slash as slash2, toArray } from "@antfu/utils";
import { getPackageInfoSync, isPackageExists as isPackageExists2 } from "local-pkg";
var defaultOptions = {
dirs: "src/components",
extensions: "vue",
deep: true,
dts: isPackageExists2("typescript"),
directoryAsNamespace: false,
collapseSamePrefixes: false,
globalNamespaces: [],
resolvers: [],
importPathTransform: (v) => v,
allowOverrides: false
};
function normalizeResolvers(resolvers) {
return toArray(resolvers).flat().map((r) => typeof r === "function" ? { resolve: r, type: "component" } : r);
}
function resolveGlobsExclude(root, glob) {
const excludeReg = /^!/;
return `${excludeReg.test(glob) ? "!" : ""}${resolve(root, glob.replace(excludeReg, ""))}`;
}
function resolveOptions(options, root) {
const resolved = Object.assign({}, defaultOptions, options);
resolved.resolvers = normalizeResolvers(resolved.resolvers);
resolved.extensions = toArray(resolved.extensions);
if (resolved.globs) {
resolved.globs = toArray(resolved.globs).map((glob) => slash2(resolveGlobsExclude(root, glob)));
resolved.resolvedDirs = [];
} else {
const extsGlob = resolved.extensions.length === 1 ? resolved.extensions : `{${resolved.extensions.join(",")}}`;
resolved.dirs = toArray(resolved.dirs);
resolved.resolvedDirs = resolved.dirs.map((i) => slash2(resolveGlobsExclude(root, i)));
resolved.globs = resolved.resolvedDirs.map(
(i) => resolved.deep ? slash2(join(i, `**/*.${extsGlob}`)) : slash2(join(i, `*.${extsGlob}`))
);
if (!resolved.extensions.length)
throw new Error("[unplugin-vue-components] `extensions` option is required to search for components");
}
resolved.dts = !resolved.dts ? false : resolve(
root,
typeof resolved.dts === "string" ? resolved.dts : "components.d.ts"
);
if (!resolved.types && resolved.dts)
resolved.types = detectTypeImports();
resolved.types = resolved.types || [];
resolved.root = root;
resolved.version = resolved.version ?? getVueVersion(root);
if (resolved.version < 2 || resolved.version >= 4)
throw new Error(`[unplugin-vue-components] unsupported version: ${resolved.version}`);
resolved.transformer = options.transformer || `vue${Math.trunc(resolved.version)}`;
resolved.directives = typeof options.directives === "boolean" ? options.directives : !resolved.resolvers.some((i) => i.type === "directive") ? false : resolved.version >= 3;
return resolved;
}
function getVueVersion(root) {
const raw = getPackageInfoSync("vue", { paths: [join(root, "/")] })?.version || "3";
const version = +raw.split(".").slice(0, 2).join(".");
if (version === 2.7)
return 2.7;
else if (version < 2.7)
return 2;
return 3;
}
// src/core/transformer.ts
import Debug4 from "debug";
import MagicString from "magic-string";
// src/core/transforms/component.ts
import Debug2 from "debug";
var debug2 = Debug2("unplugin-vue-components:transform:component");
function resolveVue2(code, s) {
const results = [];
for (const match of code.matchAll(/\b(_c|h)\(\s*['"](.+?)["']([,)])/g)) {
const [full, renderFunctionName, matchedName, append] = match;
if (match.index != null && matchedName && !matchedName.startsWith("_")) {
const start = match.index;
const end = start + full.length;
results.push({
rawName: matchedName,
replace: (resolved) => s.overwrite(start, end, `${renderFunctionName}(${resolved}${append}`)
});
}
}
return results;
}
function resolveVue3(code, s) {
const results = [];
for (const match of code.matchAll(/_resolveComponent\d*\("(.+?)"\)/g)) {
const matchedName = match[1];
if (match.index != null && matchedName && !matchedName.startsWith("_")) {
const start = match.index;
const end = start + match[0].length;
results.push({
rawName: matchedName,
replace: (resolved) => s.overwrite(start, end, resolved)
});
}
}
return results;
}
async function transformComponent(code, transformer2, s, ctx, sfcPath) {
let no = 0;
const results = transformer2 === "vue2" ? resolveVue2(code, s) : resolveVue3(code, s);
for (const { rawName, replace } of results) {
debug2(`| ${rawName}`);
const name = pascalCase(rawName);
ctx.updateUsageMap(sfcPath, [name]);
const component = await ctx.findComponent(name, "component", [sfcPath]);
if (component) {
const varName = `__unplugin_components_${no}`;
s.prepend(`${stringifyComponentImport({ ...component, as: varName }, ctx)};
`);
no += 1;
replace(varName);
}
}
debug2(`^ (${no})`);
}
// src/core/transforms/directive/index.ts
import Debug3 from "debug";
// src/core/transforms/directive/vue2.ts
import { importModule, isPackageExists as isPackageExists3 } from "local-pkg";
function getRenderFnStart(program) {
const renderFn = program.body.find(
(node) => node.type === "VariableDeclaration" && node.declarations[0].id.type === "Identifier" && ["render", "_sfc_render"].includes(node.declarations[0].id.name)
);
const start = renderFn?.declarations[0].init?.body?.start;
if (start === null || start === void 0)
throw new Error("[unplugin-vue-components:directive] Cannot find render function position.");
return start + 1;
}
async function resolveVue22(code, s) {
if (!isPackageExists3("@babel/parser"))
throw new Error('[unplugin-vue-components:directive] To use Vue 2 directive you will need to install Babel first: "npm install -D @babel/parser"');
const { parse } = await importModule("@babel/parser");
const { program } = parse(code, {
sourceType: "module"
});
const nodes = [];
const { walk } = await import("./src-QRDHCXVL.js");
walk(program, {
enter(node) {
if (node.type === "CallExpression")
nodes.push(node);
}
});
if (nodes.length === 0)
return [];
let _renderStart;
const getRenderStart = () => {
if (_renderStart !== void 0)
return _renderStart;
return _renderStart = getRenderFnStart(program);
};
const results = [];
for (const node of nodes) {
const { callee, arguments: args } = node;
if (callee.type !== "Identifier" || callee.name !== "_c" || args[1]?.type !== "ObjectExpression")
continue;
const directives = args[1].properties.find(
(property) => property.type === "ObjectProperty" && property.key.type === "Identifier" && property.key.name === "directives"
)?.value;
if (!directives || directives.type !== "ArrayExpression")
continue;
for (const directive of directives.elements) {
if (directive?.type !== "ObjectExpression")
continue;
const nameNode = directive.properties.find(
(p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "name"
)?.value;
if (nameNode?.type !== "StringLiteral")
continue;
const name = nameNode.value;
if (!name || name.startsWith("_"))
continue;
results.push({
rawName: name,
replace: (resolved) => {
s.prependLeft(getRenderStart(), `
this.$options.directives["${name}"] = ${resolved};`);
}
});
}
}
return results;
}
// src/core/transforms/directive/vue3.ts
function resolveVue32(code, s) {
const results = [];
for (const match of code.matchAll(/_resolveDirective\("(.+?)"\)/g)) {
const matchedName = match[1];
if (match.index != null && matchedName && !matchedName.startsWith("_")) {
const start = match.index;
const end = start + match[0].length;
results.push({
rawName: matchedName,
replace: (resolved) => s.overwrite(start, end, resolved)
});
}
}
return results;
}
// src/core/transforms/directive/index.ts
var debug3 = Debug3("unplugin-vue-components:transform:directive");
async function transformDirective(code, transformer2, s, ctx, sfcPath) {
let no = 0;
const results = await (transformer2 === "vue2" ? resolveVue22(code, s) : resolveVue32(code, s));
for (const { rawName, replace } of results) {
debug3(`| ${rawName}`);
const name = `${DIRECTIVE_IMPORT_PREFIX}${pascalCase(rawName)}`;
ctx.updateUsageMap(sfcPath, [name]);
const directive = await ctx.findComponent(name, "directive", [sfcPath]);
if (!directive)
continue;
const varName = `__unplugin_directives_${no}`;
s.prepend(`${stringifyComponentImport({ ...directive, as: varName }, ctx)};
`);
no += 1;
replace(varName);
}
debug3(`^ (${no})`);
}
// src/core/transformer.ts
var debug4 = Debug4("unplugin-vue-components:transformer");
function transformer(ctx, transformer2) {
return async (code, id, path) => {
ctx.searchGlob();
const sfcPath = ctx.normalizePath(path);
debug4(sfcPath);
const s = new MagicString(code);
await transformComponent(code, transformer2, s, ctx, sfcPath);
if (ctx.options.directives)
await transformDirective(code, transformer2, s, ctx, sfcPath);
s.prepend(DISABLE_COMMENT);
const result = { code: s.toString() };
if (ctx.sourcemap)
result.map = s.generateMap({ source: id, includeContent: true, hires: "boundary" });
return result;
};
}
// src/core/context.ts
var debug5 = {
components: Debug5("unplugin-vue-components:context:components"),
search: Debug5("unplugin-vue-components:context:search"),
hmr: Debug5("unplugin-vue-components:context:hmr"),
declaration: Debug5("unplugin-vue-components:declaration"),
env: Debug5("unplugin-vue-components:env")
};
var Context = class {
constructor(rawOptions) {
this.rawOptions = rawOptions;
this.options = resolveOptions(rawOptions, this.root);
this.generateDeclaration = throttle(500, this._generateDeclaration.bind(this), { noLeading: false });
this.setTransformer(this.options.transformer);
}
options;
transformer = void 0;
_componentPaths = /* @__PURE__ */ new Set();
_componentNameMap = {};
_componentUsageMap = {};
_componentCustomMap = {};
_directiveCustomMap = {};
_server;
root = process.cwd();
sourcemap = true;
alias = {};
setRoot(root) {
if (this.root === root)
return;
debug5.env("root", root);
this.root = root;
this.options = resolveOptions(this.rawOptions, this.root);
}
setTransformer(name) {
debug5.env("transformer", name);
this.transformer = transformer(this, name || "vue3");
}
transform(code, id) {
const { path, query } = parseId(id);
return this.transformer(code, id, path, query);
}
setupViteServer(server) {
if (this._server === server)
return;
this._server = server;
this.setupWatcher(server.watcher);
}
setupWatcher(watcher) {
const { globs } = this.options;
watcher.on("unlink", (path) => {
if (!matchGlobs(path, globs))
return;
path = slash3(path);
this.removeComponents(path);
this.onUpdate(path);
});
watcher.on("add", (path) => {
if (!matchGlobs(path, globs))
return;
path = slash3(path);
this.addComponents(path);
this.onUpdate(path);
});
}
/**
* start watcher for webpack
*/
setupWatcherWebpack(watcher, emitUpdate) {
const { globs } = this.options;
watcher.on("unlink", (path) => {
if (!matchGlobs(path, globs))
return;
path = slash3(path);
this.removeComponents(path);
emitUpdate(path, "unlink");
});
watcher.on("add", (path) => {
if (!matchGlobs(path, globs))
return;
path = slash3(path);
this.addComponents(path);
emitUpdate(path, "add");
});
}
/**
* Record the usage of components
* @param path
* @param paths paths of used components
*/
updateUsageMap(path, paths) {
if (!this._componentUsageMap[path])
this._componentUsageMap[path] = /* @__PURE__ */ new Set();
paths.forEach((p) => {
this._componentUsageMap[path].add(p);
});
}
addComponents(paths) {
debug5.components("add", paths);
const size = this._componentPaths.size;
toArray2(paths).forEach((p) => this._componentPaths.add(p));
if (this._componentPaths.size !== size) {
this.updateComponentNameMap();
return true;
}
return false;
}
addCustomComponents(info) {
if (info.as)
this._componentCustomMap[info.as] = info;
}
addCustomDirectives(info) {
if (info.as)
this._directiveCustomMap[info.as] = info;
}
removeComponents(paths) {
debug5.components("remove", paths);
const size = this._componentPaths.size;
toArray2(paths).forEach((p) => this._componentPaths.delete(p));
if (this._componentPaths.size !== size) {
this.updateComponentNameMap();
return true;
}
return false;
}
onUpdate(path) {
this.generateDeclaration();
if (!this._server)
return;
const payload = {
type: "update",
updates: []
};
const timestamp = +/* @__PURE__ */ new Date();
const name = pascalCase(getNameFromFilePath(path, this.options));
Object.entries(this._componentUsageMap).forEach(([key, values]) => {
if (values.has(name)) {
const r = `/${slash3(relative2(this.root, key))}`;
payload.updates.push({
acceptedPath: r,
path: r,
timestamp,
type: "js-update"
});
}
});
if (payload.updates.length)
this._server.ws.send(payload);
}
updateComponentNameMap() {
this._componentNameMap = {};
Array.from(this._componentPaths).forEach((path) => {
const name = pascalCase(getNameFromFilePath(path, this.options));
if (isExclude(name, this.options.excludeNames)) {
debug5.components("exclude", name);
return;
}
if (this._componentNameMap[name] && !this.options.allowOverrides) {
console.warn(`[unplugin-vue-components] component "${name}"(${path}) has naming conflicts with other components, ignored.`);
return;
}
this._componentNameMap[name] = {
as: name,
from: path
};
});
}
async findComponent(name, type, excludePaths = []) {
let info = this._componentNameMap[name];
if (info && !excludePaths.includes(info.from) && !excludePaths.includes(info.from.slice(1)))
return info;
for (const resolver of this.options.resolvers) {
if (resolver.type !== type)
continue;
const result = await resolver.resolve(type === "directive" ? name.slice(DIRECTIVE_IMPORT_PREFIX.length) : name);
if (!result)
continue;
if (typeof result === "string") {
info = {
as: name,
from: result
};
} else {
info = {
as: name,
...normalizeComponentInfo(result)
};
}
if (type === "component")
this.addCustomComponents(info);
else if (type === "directive")
this.addCustomDirectives(info);
return info;
}
return void 0;
}
normalizePath(path) {
return resolveAlias(path, this.viteConfig?.resolve?.alias || this.viteConfig?.alias || []);
}
relative(path) {
if (path.startsWith("/") && !path.startsWith(this.root))
return slash3(path.slice(1));
return slash3(relative2(this.root, path));
}
_searched = false;
/**
* This search for components in with the given options.
* Will be called multiple times to ensure file loaded,
* should normally run only once.
*/
searchGlob() {
if (this._searched)
return;
searchComponents(this);
debug5.search(this._componentNameMap);
this._searched = true;
}
_generateDeclaration(removeUnused = !this._server) {
if (!this.options.dts)
return;
debug5.declaration("generating");
return writeDeclaration(this, this.options.dts, removeUnused);
}
generateDeclaration;
get componentNameMap() {
return this._componentNameMap;
}
get componentCustomMap() {
return this._componentCustomMap;
}
get directiveCustomMap() {
return this._directiveCustomMap;
}
};
// src/core/unplugin.ts
var PLUGIN_NAME = "unplugin:webpack";
var unplugin_default = createUnplugin((options = {}) => {
const filter = createFilter(
options.include || [/\.vue$/, /\.vue\?vue/, /\.vue\?v=/],
options.exclude || [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/, /[\\/]\.nuxt[\\/]/]
);
const ctx = new Context(options);
const api = {
async findComponent(name, filename) {
return await ctx.findComponent(name, "component", filename ? [filename] : []);
},
stringifyImport(info) {
return stringifyComponentImport(info, ctx);
}
};
return {
name: "unplugin-vue-components",
enforce: "post",
api,
transformInclude(id) {
return filter(id);
},
async transform(code, id) {
if (!shouldTransform(code))
return null;
try {
const result = await ctx.transform(code, id);
ctx.generateDeclaration();
return result;
} catch (e) {
this.error(e);
}
},
vite: {
configResolved(config) {
ctx.setRoot(config.root);
ctx.sourcemap = true;
if (config.plugins.find((i) => i.name === "vite-plugin-vue2"))
ctx.setTransformer("vue2");
if (ctx.options.dts) {
ctx.searchGlob();
if (!existsSync2(ctx.options.dts))
ctx.generateDeclaration();
}
if (config.build.watch && config.command === "build")
ctx.setupWatcher(chokidar.watch(ctx.options.globs));
},
configureServer(server) {
ctx.setupViteServer(server);
}
},
webpack(compiler) {
let watcher;
let fileDepQueue = [];
compiler.hooks.watchRun.tap(PLUGIN_NAME, () => {
if (!watcher && compiler.watching) {
watcher = compiler.watching;
ctx.setupWatcherWebpack(chokidar.watch(ctx.options.globs), (path, type) => {
fileDepQueue.push({ path, type });
process2.nextTick(() => {
watcher.invalidate();
});
});
}
});
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
if (fileDepQueue.length) {
fileDepQueue.forEach(({ path, type }) => {
if (type === "unlink")
compilation.fileDependencies.delete(path);
else
compilation.fileDependencies.add(path);
});
fileDepQueue = [];
}
});
}
};
});
export {
unplugin_default
};
@@ -0,0 +1,207 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/core/utils.ts
var _path = require('path');
var _process = require('process'); var _process2 = _interopRequireDefault(_process);
var _utils = require('@antfu/utils');
var _localpkg = require('local-pkg');
var _minimatch = require('minimatch');
// src/core/constants.ts
var DISABLE_COMMENT = "/* unplugin-vue-components disabled */";
var DIRECTIVE_IMPORT_PREFIX = "v";
// src/core/utils.ts
var isSSR = Boolean(_process2.default.env.SSR || _process2.default.env.SSG || _process2.default.env.VITE_SSR || _process2.default.env.VITE_SSG);
function pascalCase(str) {
return capitalize(camelCase(str));
}
function camelCase(str) {
return str.replace(/-(\w)/g, (_, c) => c ? c.toUpperCase() : "");
}
function kebabCase(key) {
const result = key.replace(/([A-Z])/g, " $1").trim();
return result.split(" ").join("-").toLowerCase();
}
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
function parseId(id) {
const index = id.indexOf("?");
if (index < 0) {
return { path: id, query: {} };
} else {
const query = Object.fromEntries(new URLSearchParams(id.slice(index)));
return {
path: id.slice(0, index),
query
};
}
}
function isEmpty(value) {
if (!value || value === null || value === void 0 || Array.isArray(value) && Object.keys(value).length <= 0)
return true;
else
return false;
}
function matchGlobs(filepath, globs) {
for (const glob of globs) {
const isNegated = glob.startsWith("!");
const match = _minimatch.minimatch.call(void 0, _utils.slash.call(void 0, filepath), isNegated ? glob.slice(1) : glob);
if (match)
return !isNegated;
}
return false;
}
function getTransformedPath(path, importPathTransform) {
if (importPathTransform) {
const result = importPathTransform(path);
if (result != null)
path = result;
}
return path;
}
function stringifyImport(info) {
if (typeof info === "string")
return `import '${info}'`;
if (!info.as)
return `import '${info.from}'`;
else if (info.name)
return `import { ${info.name} as ${info.as} } from '${info.from}'`;
else
return `import ${info.as} from '${info.from}'`;
}
function normalizeComponentInfo(info) {
if ("path" in info) {
return {
from: info.path,
as: info.name,
name: info.importName,
sideEffects: info.sideEffects
};
}
return info;
}
function stringifyComponentImport({ as: name, from: path, name: importName, sideEffects }, ctx) {
path = getTransformedPath(path, ctx.options.importPathTransform);
const imports = [
stringifyImport({ as: name, from: path, name: importName })
];
if (sideEffects)
_utils.toArray.call(void 0, sideEffects).forEach((i) => imports.push(stringifyImport(i)));
return imports.join(";");
}
function getNameFromFilePath(filePath, options) {
const { resolvedDirs, directoryAsNamespace, globalNamespaces, collapseSamePrefixes, root } = options;
const parsedFilePath = _path.parse.call(void 0, _utils.slash.call(void 0, filePath));
let strippedPath = "";
for (const dir of resolvedDirs) {
if (parsedFilePath.dir.startsWith(dir)) {
strippedPath = parsedFilePath.dir.slice(dir.length);
break;
}
}
let folders = strippedPath.slice(1).split("/").filter(Boolean);
let filename = parsedFilePath.name;
if (filename === "index" && !directoryAsNamespace) {
if (isEmpty(folders))
folders = parsedFilePath.dir.slice(root.length + 1).split("/").filter(Boolean);
filename = `${folders.slice(-1)[0]}`;
return filename;
}
if (directoryAsNamespace) {
if (globalNamespaces.some((name) => folders.includes(name)))
folders = folders.filter((f) => !globalNamespaces.includes(f));
folders = folders.map((f) => f.replace(/[^a-z0-9\-]/gi, ""));
if (filename.toLowerCase() === "index")
filename = "";
if (!isEmpty(folders)) {
let namespaced = [...folders, filename];
if (collapseSamePrefixes) {
const collapsed = [];
for (const fileOrFolderName of namespaced) {
let cumulativePrefix = "";
let didCollapse = false;
const pascalCasedName = pascalCase(fileOrFolderName);
for (const parentFolder of [...collapsed].reverse()) {
cumulativePrefix = `${parentFolder}${cumulativePrefix}`;
if (pascalCasedName.startsWith(cumulativePrefix)) {
const collapseSamePrefix = pascalCasedName.slice(cumulativePrefix.length);
collapsed.push(collapseSamePrefix);
didCollapse = true;
break;
}
}
if (!didCollapse)
collapsed.push(pascalCasedName);
}
namespaced = collapsed;
}
filename = namespaced.filter(Boolean).join("-");
}
return filename;
}
return filename;
}
function resolveAlias(filepath, alias) {
const result = filepath;
if (Array.isArray(alias)) {
for (const { find, replacement } of alias)
result.replace(find, replacement);
}
return result;
}
async function getPkgVersion(pkgName, defaultVersion) {
try {
const isExist = _localpkg.isPackageExists.call(void 0, pkgName);
if (isExist) {
const pkg = await _localpkg.getPackageInfo.call(void 0, pkgName);
return _nullishCoalesce(_optionalChain([pkg, 'optionalAccess', _2 => _2.version]), () => ( defaultVersion));
} else {
return defaultVersion;
}
} catch (err) {
console.error(err);
return defaultVersion;
}
}
function shouldTransform(code) {
if (code.includes(DISABLE_COMMENT))
return false;
return true;
}
function isExclude(name, exclude) {
if (!exclude)
return false;
if (typeof exclude === "string")
return name === exclude;
if (exclude instanceof RegExp)
return !!name.match(exclude);
if (Array.isArray(exclude)) {
for (const item of exclude) {
if (name === item || name.match(item))
return true;
}
}
return false;
}
exports.DISABLE_COMMENT = DISABLE_COMMENT; exports.DIRECTIVE_IMPORT_PREFIX = DIRECTIVE_IMPORT_PREFIX; exports.isSSR = isSSR; exports.pascalCase = pascalCase; exports.camelCase = camelCase; exports.kebabCase = kebabCase; exports.parseId = parseId; exports.matchGlobs = matchGlobs; exports.getTransformedPath = getTransformedPath; exports.normalizeComponentInfo = normalizeComponentInfo; exports.stringifyComponentImport = stringifyComponentImport; exports.getNameFromFilePath = getNameFromFilePath; exports.resolveAlias = resolveAlias; exports.getPkgVersion = getPkgVersion; exports.shouldTransform = shouldTransform; exports.isExclude = isExclude;
@@ -0,0 +1,10 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
}) : x)(function(x) {
if (typeof require !== "undefined") return require.apply(this, arguments);
throw Error('Dynamic require of "' + x + '" is not supported');
});
exports.__require = __require;
@@ -0,0 +1,753 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
var _chunkMU27IQTBcjs = require('./chunk-MU27IQTB.cjs');
// src/core/unplugin.ts
var _fs = require('fs');
var _process = require('process'); var _process2 = _interopRequireDefault(_process);
var _pluginutils = require('@rollup/pluginutils');
var _chokidar = require('chokidar'); var _chokidar2 = _interopRequireDefault(_chokidar);
var _unplugin = require('unplugin');
// src/core/context.ts
var _path = require('path');
var _utils = require('@antfu/utils');
var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
// src/core/declaration.ts
var _promises = require('fs/promises');
// src/core/type-imports/detect.ts
var _localpkg = require('local-pkg');
// src/core/type-imports/index.ts
var TypeImportPresets = [
{
from: "vue-router",
names: [
"RouterView",
"RouterLink"
]
},
{
from: "vue-starport",
names: [
"Starport",
"StarportCarrier"
]
}
];
// src/core/type-imports/detect.ts
function detectTypeImports() {
return TypeImportPresets.map((i) => _localpkg.isPackageExists.call(void 0, i.from) ? i : void 0).filter(_utils.notNullish);
}
function resolveTypeImports(imports) {
return imports.flatMap((i) => i.names.map((n) => ({ from: i.from, name: n, as: n })));
}
// src/core/declaration.ts
var multilineCommentsRE = /\/\*.*?\*\//gs;
var singlelineCommentsRE = /\/\/.*$/gm;
function extractImports(code) {
return Object.fromEntries(Array.from(code.matchAll(/['"]?([^\s'"]+)['"]?\s*:\s*(.+?)[,;\n]/g)).map((i) => [i[1], i[2]]));
}
function parseDeclaration(code) {
if (!code)
return;
code = code.replace(multilineCommentsRE, "").replace(singlelineCommentsRE, "");
const imports = {
component: {},
directive: {}
};
const componentDeclaration = _optionalChain([/export\s+interface\s+GlobalComponents\s*\{.*?\}/s, 'access', _ => _.exec, 'call', _2 => _2(code), 'optionalAccess', _3 => _3[0]]);
if (componentDeclaration)
imports.component = extractImports(componentDeclaration);
const directiveDeclaration = _optionalChain([/export\s+interface\s+ComponentCustomProperties\s*\{.*?\}/s, 'access', _4 => _4.exec, 'call', _5 => _5(code), 'optionalAccess', _6 => _6[0]]);
if (directiveDeclaration)
imports.directive = extractImports(directiveDeclaration);
return imports;
}
function stringifyComponentInfo(filepath, { from: path, as: name, name: importName }, importPathTransform) {
if (!name)
return void 0;
path = _chunkMU27IQTBcjs.getTransformedPath.call(void 0, path, importPathTransform);
const related = _path.isAbsolute.call(void 0, path) ? `./${_path.relative.call(void 0, _path.dirname.call(void 0, filepath), path)}` : path;
const entry = `typeof import('${_utils.slash.call(void 0, related)}')['${importName || "default"}']`;
return [name, entry];
}
function stringifyComponentsInfo(filepath, components, importPathTransform) {
return Object.fromEntries(
components.map((info) => stringifyComponentInfo(filepath, info, importPathTransform)).filter(_utils.notNullish)
);
}
function getDeclarationImports(ctx, filepath) {
const component = stringifyComponentsInfo(filepath, [
...Object.values({
...ctx.componentNameMap,
...ctx.componentCustomMap
}),
...resolveTypeImports(ctx.options.types)
], ctx.options.importPathTransform);
const directive = stringifyComponentsInfo(
filepath,
Object.values(ctx.directiveCustomMap),
ctx.options.importPathTransform
);
if (Object.keys(component).length + Object.keys(directive).length === 0)
return;
return { component, directive };
}
function stringifyDeclarationImports(imports) {
return Object.entries(imports).sort(([a], [b]) => a.localeCompare(b)).map(([name, v]) => {
if (!/^\w+$/.test(name))
name = `'${name}'`;
return `${name}: ${v}`;
});
}
function getDeclaration(ctx, filepath, originalImports) {
const imports = getDeclarationImports(ctx, filepath);
if (!imports)
return;
const declarations = {
component: stringifyDeclarationImports({ ..._optionalChain([originalImports, 'optionalAccess', _7 => _7.component]), ...imports.component }),
directive: stringifyDeclarationImports({ ..._optionalChain([originalImports, 'optionalAccess', _8 => _8.directive]), ...imports.directive })
};
let code = `/* eslint-disable */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}
/* prettier-ignore */
declare module 'vue' {`;
if (Object.keys(declarations.component).length > 0) {
code += `
export interface GlobalComponents {
${declarations.component.join("\n ")}
}`;
}
if (Object.keys(declarations.directive).length > 0) {
code += `
export interface ComponentCustomProperties {
${declarations.directive.join("\n ")}
}`;
}
code += "\n}\n";
return code;
}
async function writeFile(filePath, content) {
await _promises.mkdir.call(void 0, _path.dirname.call(void 0, filePath), { recursive: true });
return await _promises.writeFile.call(void 0, filePath, content, "utf-8");
}
async function writeDeclaration(ctx, filepath, removeUnused = false) {
const originalContent = _fs.existsSync.call(void 0, filepath) ? await _promises.readFile.call(void 0, filepath, "utf-8") : "";
const originalImports = removeUnused ? void 0 : parseDeclaration(originalContent);
const code = getDeclaration(ctx, filepath, originalImports);
if (!code)
return;
if (code !== originalContent)
await writeFile(filepath, code);
}
// src/core/fs/glob.ts
var _fastglob = require('fast-glob'); var _fastglob2 = _interopRequireDefault(_fastglob);
var debug = _debug2.default.call(void 0, "unplugin-vue-components:glob");
function searchComponents(ctx) {
debug(`started with: [${ctx.options.globs.join(", ")}]`);
const root = ctx.root;
const files = _fastglob2.default.sync(ctx.options.globs, {
ignore: ["node_modules"],
onlyFiles: true,
cwd: root,
absolute: true
});
if (!files.length && !_optionalChain([ctx, 'access', _9 => _9.options, 'access', _10 => _10.resolvers, 'optionalAccess', _11 => _11.length]))
console.warn("[unplugin-vue-components] no components found");
debug(`${files.length} components found.`);
ctx.addComponents(files);
}
// src/core/options.ts
var defaultOptions = {
dirs: "src/components",
extensions: "vue",
deep: true,
dts: _localpkg.isPackageExists.call(void 0, "typescript"),
directoryAsNamespace: false,
collapseSamePrefixes: false,
globalNamespaces: [],
resolvers: [],
importPathTransform: (v) => v,
allowOverrides: false
};
function normalizeResolvers(resolvers) {
return _utils.toArray.call(void 0, resolvers).flat().map((r) => typeof r === "function" ? { resolve: r, type: "component" } : r);
}
function resolveGlobsExclude(root, glob) {
const excludeReg = /^!/;
return `${excludeReg.test(glob) ? "!" : ""}${_path.resolve.call(void 0, root, glob.replace(excludeReg, ""))}`;
}
function resolveOptions(options, root) {
const resolved = Object.assign({}, defaultOptions, options);
resolved.resolvers = normalizeResolvers(resolved.resolvers);
resolved.extensions = _utils.toArray.call(void 0, resolved.extensions);
if (resolved.globs) {
resolved.globs = _utils.toArray.call(void 0, resolved.globs).map((glob) => _utils.slash.call(void 0, resolveGlobsExclude(root, glob)));
resolved.resolvedDirs = [];
} else {
const extsGlob = resolved.extensions.length === 1 ? resolved.extensions : `{${resolved.extensions.join(",")}}`;
resolved.dirs = _utils.toArray.call(void 0, resolved.dirs);
resolved.resolvedDirs = resolved.dirs.map((i) => _utils.slash.call(void 0, resolveGlobsExclude(root, i)));
resolved.globs = resolved.resolvedDirs.map(
(i) => resolved.deep ? _utils.slash.call(void 0, _path.join.call(void 0, i, `**/*.${extsGlob}`)) : _utils.slash.call(void 0, _path.join.call(void 0, i, `*.${extsGlob}`))
);
if (!resolved.extensions.length)
throw new Error("[unplugin-vue-components] `extensions` option is required to search for components");
}
resolved.dts = !resolved.dts ? false : _path.resolve.call(void 0,
root,
typeof resolved.dts === "string" ? resolved.dts : "components.d.ts"
);
if (!resolved.types && resolved.dts)
resolved.types = detectTypeImports();
resolved.types = resolved.types || [];
resolved.root = root;
resolved.version = _nullishCoalesce(resolved.version, () => ( getVueVersion(root)));
if (resolved.version < 2 || resolved.version >= 4)
throw new Error(`[unplugin-vue-components] unsupported version: ${resolved.version}`);
resolved.transformer = options.transformer || `vue${Math.trunc(resolved.version)}`;
resolved.directives = typeof options.directives === "boolean" ? options.directives : !resolved.resolvers.some((i) => i.type === "directive") ? false : resolved.version >= 3;
return resolved;
}
function getVueVersion(root) {
const raw = _optionalChain([_localpkg.getPackageInfoSync.call(void 0, "vue", { paths: [_path.join.call(void 0, root, "/")] }), 'optionalAccess', _12 => _12.version]) || "3";
const version = +raw.split(".").slice(0, 2).join(".");
if (version === 2.7)
return 2.7;
else if (version < 2.7)
return 2;
return 3;
}
// src/core/transformer.ts
var _magicstring = require('magic-string'); var _magicstring2 = _interopRequireDefault(_magicstring);
// src/core/transforms/component.ts
var debug2 = _debug2.default.call(void 0, "unplugin-vue-components:transform:component");
function resolveVue2(code, s) {
const results = [];
for (const match of code.matchAll(/\b(_c|h)\(\s*['"](.+?)["']([,)])/g)) {
const [full, renderFunctionName, matchedName, append] = match;
if (match.index != null && matchedName && !matchedName.startsWith("_")) {
const start = match.index;
const end = start + full.length;
results.push({
rawName: matchedName,
replace: (resolved) => s.overwrite(start, end, `${renderFunctionName}(${resolved}${append}`)
});
}
}
return results;
}
function resolveVue3(code, s) {
const results = [];
for (const match of code.matchAll(/_resolveComponent\d*\("(.+?)"\)/g)) {
const matchedName = match[1];
if (match.index != null && matchedName && !matchedName.startsWith("_")) {
const start = match.index;
const end = start + match[0].length;
results.push({
rawName: matchedName,
replace: (resolved) => s.overwrite(start, end, resolved)
});
}
}
return results;
}
async function transformComponent(code, transformer2, s, ctx, sfcPath) {
let no = 0;
const results = transformer2 === "vue2" ? resolveVue2(code, s) : resolveVue3(code, s);
for (const { rawName, replace } of results) {
debug2(`| ${rawName}`);
const name = _chunkMU27IQTBcjs.pascalCase.call(void 0, rawName);
ctx.updateUsageMap(sfcPath, [name]);
const component = await ctx.findComponent(name, "component", [sfcPath]);
if (component) {
const varName = `__unplugin_components_${no}`;
s.prepend(`${_chunkMU27IQTBcjs.stringifyComponentImport.call(void 0, { ...component, as: varName }, ctx)};
`);
no += 1;
replace(varName);
}
}
debug2(`^ (${no})`);
}
// src/core/transforms/directive/index.ts
// src/core/transforms/directive/vue2.ts
function getRenderFnStart(program) {
const renderFn = program.body.find(
(node) => node.type === "VariableDeclaration" && node.declarations[0].id.type === "Identifier" && ["render", "_sfc_render"].includes(node.declarations[0].id.name)
);
const start = _optionalChain([renderFn, 'optionalAccess', _13 => _13.declarations, 'access', _14 => _14[0], 'access', _15 => _15.init, 'optionalAccess', _16 => _16.body, 'optionalAccess', _17 => _17.start]);
if (start === null || start === void 0)
throw new Error("[unplugin-vue-components:directive] Cannot find render function position.");
return start + 1;
}
async function resolveVue22(code, s) {
if (!_localpkg.isPackageExists.call(void 0, "@babel/parser"))
throw new Error('[unplugin-vue-components:directive] To use Vue 2 directive you will need to install Babel first: "npm install -D @babel/parser"');
const { parse } = await _localpkg.importModule.call(void 0, "@babel/parser");
const { program } = parse(code, {
sourceType: "module"
});
const nodes = [];
const { walk } = await Promise.resolve().then(() => _interopRequireWildcard(require("./src-KNP44FKK.cjs")));
walk(program, {
enter(node) {
if (node.type === "CallExpression")
nodes.push(node);
}
});
if (nodes.length === 0)
return [];
let _renderStart;
const getRenderStart = () => {
if (_renderStart !== void 0)
return _renderStart;
return _renderStart = getRenderFnStart(program);
};
const results = [];
for (const node of nodes) {
const { callee, arguments: args } = node;
if (callee.type !== "Identifier" || callee.name !== "_c" || _optionalChain([args, 'access', _18 => _18[1], 'optionalAccess', _19 => _19.type]) !== "ObjectExpression")
continue;
const directives = _optionalChain([args, 'access', _20 => _20[1], 'access', _21 => _21.properties, 'access', _22 => _22.find, 'call', _23 => _23(
(property) => property.type === "ObjectProperty" && property.key.type === "Identifier" && property.key.name === "directives"
), 'optionalAccess', _24 => _24.value]);
if (!directives || directives.type !== "ArrayExpression")
continue;
for (const directive of directives.elements) {
if (_optionalChain([directive, 'optionalAccess', _25 => _25.type]) !== "ObjectExpression")
continue;
const nameNode = _optionalChain([directive, 'access', _26 => _26.properties, 'access', _27 => _27.find, 'call', _28 => _28(
(p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "name"
), 'optionalAccess', _29 => _29.value]);
if (_optionalChain([nameNode, 'optionalAccess', _30 => _30.type]) !== "StringLiteral")
continue;
const name = nameNode.value;
if (!name || name.startsWith("_"))
continue;
results.push({
rawName: name,
replace: (resolved) => {
s.prependLeft(getRenderStart(), `
this.$options.directives["${name}"] = ${resolved};`);
}
});
}
}
return results;
}
// src/core/transforms/directive/vue3.ts
function resolveVue32(code, s) {
const results = [];
for (const match of code.matchAll(/_resolveDirective\("(.+?)"\)/g)) {
const matchedName = match[1];
if (match.index != null && matchedName && !matchedName.startsWith("_")) {
const start = match.index;
const end = start + match[0].length;
results.push({
rawName: matchedName,
replace: (resolved) => s.overwrite(start, end, resolved)
});
}
}
return results;
}
// src/core/transforms/directive/index.ts
var debug3 = _debug2.default.call(void 0, "unplugin-vue-components:transform:directive");
async function transformDirective(code, transformer2, s, ctx, sfcPath) {
let no = 0;
const results = await (transformer2 === "vue2" ? resolveVue22(code, s) : resolveVue32(code, s));
for (const { rawName, replace } of results) {
debug3(`| ${rawName}`);
const name = `${_chunkMU27IQTBcjs.DIRECTIVE_IMPORT_PREFIX}${_chunkMU27IQTBcjs.pascalCase.call(void 0, rawName)}`;
ctx.updateUsageMap(sfcPath, [name]);
const directive = await ctx.findComponent(name, "directive", [sfcPath]);
if (!directive)
continue;
const varName = `__unplugin_directives_${no}`;
s.prepend(`${_chunkMU27IQTBcjs.stringifyComponentImport.call(void 0, { ...directive, as: varName }, ctx)};
`);
no += 1;
replace(varName);
}
debug3(`^ (${no})`);
}
// src/core/transformer.ts
var debug4 = _debug2.default.call(void 0, "unplugin-vue-components:transformer");
function transformer(ctx, transformer2) {
return async (code, id, path) => {
ctx.searchGlob();
const sfcPath = ctx.normalizePath(path);
debug4(sfcPath);
const s = new (0, _magicstring2.default)(code);
await transformComponent(code, transformer2, s, ctx, sfcPath);
if (ctx.options.directives)
await transformDirective(code, transformer2, s, ctx, sfcPath);
s.prepend(_chunkMU27IQTBcjs.DISABLE_COMMENT);
const result = { code: s.toString() };
if (ctx.sourcemap)
result.map = s.generateMap({ source: id, includeContent: true, hires: "boundary" });
return result;
};
}
// src/core/context.ts
var debug5 = {
components: _debug2.default.call(void 0, "unplugin-vue-components:context:components"),
search: _debug2.default.call(void 0, "unplugin-vue-components:context:search"),
hmr: _debug2.default.call(void 0, "unplugin-vue-components:context:hmr"),
declaration: _debug2.default.call(void 0, "unplugin-vue-components:declaration"),
env: _debug2.default.call(void 0, "unplugin-vue-components:env")
};
var Context = (_class = class {
constructor(rawOptions) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);_class.prototype.__init9.call(this);_class.prototype.__init10.call(this);
this.rawOptions = rawOptions;
this.options = resolveOptions(rawOptions, this.root);
this.generateDeclaration = _utils.throttle.call(void 0, 500, this._generateDeclaration.bind(this), { noLeading: false });
this.setTransformer(this.options.transformer);
}
__init() {this.transformer = void 0}
__init2() {this._componentPaths = /* @__PURE__ */ new Set()}
__init3() {this._componentNameMap = {}}
__init4() {this._componentUsageMap = {}}
__init5() {this._componentCustomMap = {}}
__init6() {this._directiveCustomMap = {}}
__init7() {this.root = _process2.default.cwd()}
__init8() {this.sourcemap = true}
__init9() {this.alias = {}}
setRoot(root) {
if (this.root === root)
return;
debug5.env("root", root);
this.root = root;
this.options = resolveOptions(this.rawOptions, this.root);
}
setTransformer(name) {
debug5.env("transformer", name);
this.transformer = transformer(this, name || "vue3");
}
transform(code, id) {
const { path, query } = _chunkMU27IQTBcjs.parseId.call(void 0, id);
return this.transformer(code, id, path, query);
}
setupViteServer(server) {
if (this._server === server)
return;
this._server = server;
this.setupWatcher(server.watcher);
}
setupWatcher(watcher) {
const { globs } = this.options;
watcher.on("unlink", (path) => {
if (!_chunkMU27IQTBcjs.matchGlobs.call(void 0, path, globs))
return;
path = _utils.slash.call(void 0, path);
this.removeComponents(path);
this.onUpdate(path);
});
watcher.on("add", (path) => {
if (!_chunkMU27IQTBcjs.matchGlobs.call(void 0, path, globs))
return;
path = _utils.slash.call(void 0, path);
this.addComponents(path);
this.onUpdate(path);
});
}
/**
* start watcher for webpack
*/
setupWatcherWebpack(watcher, emitUpdate) {
const { globs } = this.options;
watcher.on("unlink", (path) => {
if (!_chunkMU27IQTBcjs.matchGlobs.call(void 0, path, globs))
return;
path = _utils.slash.call(void 0, path);
this.removeComponents(path);
emitUpdate(path, "unlink");
});
watcher.on("add", (path) => {
if (!_chunkMU27IQTBcjs.matchGlobs.call(void 0, path, globs))
return;
path = _utils.slash.call(void 0, path);
this.addComponents(path);
emitUpdate(path, "add");
});
}
/**
* Record the usage of components
* @param path
* @param paths paths of used components
*/
updateUsageMap(path, paths) {
if (!this._componentUsageMap[path])
this._componentUsageMap[path] = /* @__PURE__ */ new Set();
paths.forEach((p) => {
this._componentUsageMap[path].add(p);
});
}
addComponents(paths) {
debug5.components("add", paths);
const size = this._componentPaths.size;
_utils.toArray.call(void 0, paths).forEach((p) => this._componentPaths.add(p));
if (this._componentPaths.size !== size) {
this.updateComponentNameMap();
return true;
}
return false;
}
addCustomComponents(info) {
if (info.as)
this._componentCustomMap[info.as] = info;
}
addCustomDirectives(info) {
if (info.as)
this._directiveCustomMap[info.as] = info;
}
removeComponents(paths) {
debug5.components("remove", paths);
const size = this._componentPaths.size;
_utils.toArray.call(void 0, paths).forEach((p) => this._componentPaths.delete(p));
if (this._componentPaths.size !== size) {
this.updateComponentNameMap();
return true;
}
return false;
}
onUpdate(path) {
this.generateDeclaration();
if (!this._server)
return;
const payload = {
type: "update",
updates: []
};
const timestamp = +/* @__PURE__ */ new Date();
const name = _chunkMU27IQTBcjs.pascalCase.call(void 0, _chunkMU27IQTBcjs.getNameFromFilePath.call(void 0, path, this.options));
Object.entries(this._componentUsageMap).forEach(([key, values]) => {
if (values.has(name)) {
const r = `/${_utils.slash.call(void 0, _path.relative.call(void 0, this.root, key))}`;
payload.updates.push({
acceptedPath: r,
path: r,
timestamp,
type: "js-update"
});
}
});
if (payload.updates.length)
this._server.ws.send(payload);
}
updateComponentNameMap() {
this._componentNameMap = {};
Array.from(this._componentPaths).forEach((path) => {
const name = _chunkMU27IQTBcjs.pascalCase.call(void 0, _chunkMU27IQTBcjs.getNameFromFilePath.call(void 0, path, this.options));
if (_chunkMU27IQTBcjs.isExclude.call(void 0, name, this.options.excludeNames)) {
debug5.components("exclude", name);
return;
}
if (this._componentNameMap[name] && !this.options.allowOverrides) {
console.warn(`[unplugin-vue-components] component "${name}"(${path}) has naming conflicts with other components, ignored.`);
return;
}
this._componentNameMap[name] = {
as: name,
from: path
};
});
}
async findComponent(name, type, excludePaths = []) {
let info = this._componentNameMap[name];
if (info && !excludePaths.includes(info.from) && !excludePaths.includes(info.from.slice(1)))
return info;
for (const resolver of this.options.resolvers) {
if (resolver.type !== type)
continue;
const result = await resolver.resolve(type === "directive" ? name.slice(_chunkMU27IQTBcjs.DIRECTIVE_IMPORT_PREFIX.length) : name);
if (!result)
continue;
if (typeof result === "string") {
info = {
as: name,
from: result
};
} else {
info = {
as: name,
..._chunkMU27IQTBcjs.normalizeComponentInfo.call(void 0, result)
};
}
if (type === "component")
this.addCustomComponents(info);
else if (type === "directive")
this.addCustomDirectives(info);
return info;
}
return void 0;
}
normalizePath(path) {
return _chunkMU27IQTBcjs.resolveAlias.call(void 0, path, _optionalChain([this, 'access', _31 => _31.viteConfig, 'optionalAccess', _32 => _32.resolve, 'optionalAccess', _33 => _33.alias]) || _optionalChain([this, 'access', _34 => _34.viteConfig, 'optionalAccess', _35 => _35.alias]) || []);
}
relative(path) {
if (path.startsWith("/") && !path.startsWith(this.root))
return _utils.slash.call(void 0, path.slice(1));
return _utils.slash.call(void 0, _path.relative.call(void 0, this.root, path));
}
__init10() {this._searched = false}
/**
* This search for components in with the given options.
* Will be called multiple times to ensure file loaded,
* should normally run only once.
*/
searchGlob() {
if (this._searched)
return;
searchComponents(this);
debug5.search(this._componentNameMap);
this._searched = true;
}
_generateDeclaration(removeUnused = !this._server) {
if (!this.options.dts)
return;
debug5.declaration("generating");
return writeDeclaration(this, this.options.dts, removeUnused);
}
get componentNameMap() {
return this._componentNameMap;
}
get componentCustomMap() {
return this._componentCustomMap;
}
get directiveCustomMap() {
return this._directiveCustomMap;
}
}, _class);
// src/core/unplugin.ts
var PLUGIN_NAME = "unplugin:webpack";
var unplugin_default = _unplugin.createUnplugin.call(void 0, (options = {}) => {
const filter = _pluginutils.createFilter.call(void 0,
options.include || [/\.vue$/, /\.vue\?vue/, /\.vue\?v=/],
options.exclude || [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/, /[\\/]\.nuxt[\\/]/]
);
const ctx = new Context(options);
const api = {
async findComponent(name, filename) {
return await ctx.findComponent(name, "component", filename ? [filename] : []);
},
stringifyImport(info) {
return _chunkMU27IQTBcjs.stringifyComponentImport.call(void 0, info, ctx);
}
};
return {
name: "unplugin-vue-components",
enforce: "post",
api,
transformInclude(id) {
return filter(id);
},
async transform(code, id) {
if (!_chunkMU27IQTBcjs.shouldTransform.call(void 0, code))
return null;
try {
const result = await ctx.transform(code, id);
ctx.generateDeclaration();
return result;
} catch (e) {
this.error(e);
}
},
vite: {
configResolved(config) {
ctx.setRoot(config.root);
ctx.sourcemap = true;
if (config.plugins.find((i) => i.name === "vite-plugin-vue2"))
ctx.setTransformer("vue2");
if (ctx.options.dts) {
ctx.searchGlob();
if (!_fs.existsSync.call(void 0, ctx.options.dts))
ctx.generateDeclaration();
}
if (config.build.watch && config.command === "build")
ctx.setupWatcher(_chokidar2.default.watch(ctx.options.globs));
},
configureServer(server) {
ctx.setupViteServer(server);
}
},
webpack(compiler) {
let watcher;
let fileDepQueue = [];
compiler.hooks.watchRun.tap(PLUGIN_NAME, () => {
if (!watcher && compiler.watching) {
watcher = compiler.watching;
ctx.setupWatcherWebpack(_chokidar2.default.watch(ctx.options.globs), (path, type) => {
fileDepQueue.push({ path, type });
_process2.default.nextTick(() => {
watcher.invalidate();
});
});
}
});
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
if (fileDepQueue.length) {
fileDepQueue.forEach(({ path, type }) => {
if (type === "unlink")
compilation.fileDependencies.delete(path);
else
compilation.fileDependencies.add(path);
});
fileDepQueue = [];
}
});
}
};
});
exports.unplugin_default = unplugin_default;
@@ -0,0 +1,207 @@
// src/core/utils.ts
import { parse } from "node:path";
import process from "node:process";
import { slash, toArray } from "@antfu/utils";
import {
getPackageInfo,
isPackageExists
} from "local-pkg";
import { minimatch } from "minimatch";
// src/core/constants.ts
var DISABLE_COMMENT = "/* unplugin-vue-components disabled */";
var DIRECTIVE_IMPORT_PREFIX = "v";
// src/core/utils.ts
var isSSR = Boolean(process.env.SSR || process.env.SSG || process.env.VITE_SSR || process.env.VITE_SSG);
function pascalCase(str) {
return capitalize(camelCase(str));
}
function camelCase(str) {
return str.replace(/-(\w)/g, (_, c) => c ? c.toUpperCase() : "");
}
function kebabCase(key) {
const result = key.replace(/([A-Z])/g, " $1").trim();
return result.split(" ").join("-").toLowerCase();
}
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
function parseId(id) {
const index = id.indexOf("?");
if (index < 0) {
return { path: id, query: {} };
} else {
const query = Object.fromEntries(new URLSearchParams(id.slice(index)));
return {
path: id.slice(0, index),
query
};
}
}
function isEmpty(value) {
if (!value || value === null || value === void 0 || Array.isArray(value) && Object.keys(value).length <= 0)
return true;
else
return false;
}
function matchGlobs(filepath, globs) {
for (const glob of globs) {
const isNegated = glob.startsWith("!");
const match = minimatch(slash(filepath), isNegated ? glob.slice(1) : glob);
if (match)
return !isNegated;
}
return false;
}
function getTransformedPath(path, importPathTransform) {
if (importPathTransform) {
const result = importPathTransform(path);
if (result != null)
path = result;
}
return path;
}
function stringifyImport(info) {
if (typeof info === "string")
return `import '${info}'`;
if (!info.as)
return `import '${info.from}'`;
else if (info.name)
return `import { ${info.name} as ${info.as} } from '${info.from}'`;
else
return `import ${info.as} from '${info.from}'`;
}
function normalizeComponentInfo(info) {
if ("path" in info) {
return {
from: info.path,
as: info.name,
name: info.importName,
sideEffects: info.sideEffects
};
}
return info;
}
function stringifyComponentImport({ as: name, from: path, name: importName, sideEffects }, ctx) {
path = getTransformedPath(path, ctx.options.importPathTransform);
const imports = [
stringifyImport({ as: name, from: path, name: importName })
];
if (sideEffects)
toArray(sideEffects).forEach((i) => imports.push(stringifyImport(i)));
return imports.join(";");
}
function getNameFromFilePath(filePath, options) {
const { resolvedDirs, directoryAsNamespace, globalNamespaces, collapseSamePrefixes, root } = options;
const parsedFilePath = parse(slash(filePath));
let strippedPath = "";
for (const dir of resolvedDirs) {
if (parsedFilePath.dir.startsWith(dir)) {
strippedPath = parsedFilePath.dir.slice(dir.length);
break;
}
}
let folders = strippedPath.slice(1).split("/").filter(Boolean);
let filename = parsedFilePath.name;
if (filename === "index" && !directoryAsNamespace) {
if (isEmpty(folders))
folders = parsedFilePath.dir.slice(root.length + 1).split("/").filter(Boolean);
filename = `${folders.slice(-1)[0]}`;
return filename;
}
if (directoryAsNamespace) {
if (globalNamespaces.some((name) => folders.includes(name)))
folders = folders.filter((f) => !globalNamespaces.includes(f));
folders = folders.map((f) => f.replace(/[^a-z0-9\-]/gi, ""));
if (filename.toLowerCase() === "index")
filename = "";
if (!isEmpty(folders)) {
let namespaced = [...folders, filename];
if (collapseSamePrefixes) {
const collapsed = [];
for (const fileOrFolderName of namespaced) {
let cumulativePrefix = "";
let didCollapse = false;
const pascalCasedName = pascalCase(fileOrFolderName);
for (const parentFolder of [...collapsed].reverse()) {
cumulativePrefix = `${parentFolder}${cumulativePrefix}`;
if (pascalCasedName.startsWith(cumulativePrefix)) {
const collapseSamePrefix = pascalCasedName.slice(cumulativePrefix.length);
collapsed.push(collapseSamePrefix);
didCollapse = true;
break;
}
}
if (!didCollapse)
collapsed.push(pascalCasedName);
}
namespaced = collapsed;
}
filename = namespaced.filter(Boolean).join("-");
}
return filename;
}
return filename;
}
function resolveAlias(filepath, alias) {
const result = filepath;
if (Array.isArray(alias)) {
for (const { find, replacement } of alias)
result.replace(find, replacement);
}
return result;
}
async function getPkgVersion(pkgName, defaultVersion) {
try {
const isExist = isPackageExists(pkgName);
if (isExist) {
const pkg = await getPackageInfo(pkgName);
return pkg?.version ?? defaultVersion;
} else {
return defaultVersion;
}
} catch (err) {
console.error(err);
return defaultVersion;
}
}
function shouldTransform(code) {
if (code.includes(DISABLE_COMMENT))
return false;
return true;
}
function isExclude(name, exclude) {
if (!exclude)
return false;
if (typeof exclude === "string")
return name === exclude;
if (exclude instanceof RegExp)
return !!name.match(exclude);
if (Array.isArray(exclude)) {
for (const item of exclude) {
if (name === item || name.match(item))
return true;
}
}
return false;
}
export {
DISABLE_COMMENT,
DIRECTIVE_IMPORT_PREFIX,
isSSR,
pascalCase,
camelCase,
kebabCase,
parseId,
matchGlobs,
getTransformedPath,
normalizeComponentInfo,
stringifyComponentImport,
getNameFromFilePath,
resolveAlias,
getPkgVersion,
shouldTransform,
isExclude
};
@@ -0,0 +1 @@
"use strict";
+12
View File
@@ -0,0 +1,12 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkUDMRZUV6cjs = require('./chunk-UDMRZUV6.cjs');
require('./chunk-MU27IQTB.cjs');
require('./chunk-OBGZSXTJ.cjs');
require('./chunk-ZBPRDZS4.cjs');
// src/esbuild.ts
var esbuild_default = _chunkUDMRZUV6cjs.unplugin_default.esbuild;
exports.default = esbuild_default;
@@ -0,0 +1,9 @@
import * as esbuild from 'esbuild';
import { Options } from './types.cjs';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options: Options) => esbuild.Plugin;
export { _default as default };
+9
View File
@@ -0,0 +1,9 @@
import * as esbuild from 'esbuild';
import { Options } from './types.js';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options: Options) => esbuild.Plugin;
export { _default as default };
+12
View File
@@ -0,0 +1,12 @@
import {
unplugin_default
} from "./chunk-5PFDJXKB.js";
import "./chunk-X53Y3GEO.js";
import "./chunk-3RG5ZIWI.js";
import "./chunk-6F4PWJZI.js";
// src/esbuild.ts
var esbuild_default = unplugin_default.esbuild;
export {
esbuild_default as default
};
+16
View File
@@ -0,0 +1,16 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkUDMRZUV6cjs = require('./chunk-UDMRZUV6.cjs');
var _chunkMU27IQTBcjs = require('./chunk-MU27IQTB.cjs');
require('./chunk-OBGZSXTJ.cjs');
require('./chunk-ZBPRDZS4.cjs');
exports.camelCase = _chunkMU27IQTBcjs.camelCase; exports.default = _chunkUDMRZUV6cjs.unplugin_default; exports.kebabCase = _chunkMU27IQTBcjs.kebabCase; exports.pascalCase = _chunkMU27IQTBcjs.pascalCase;
+13
View File
@@ -0,0 +1,13 @@
import * as unplugin from 'unplugin';
import { Options } from './types.cjs';
export { ComponentInfo, ComponentResolveResult, ComponentResolver, ComponentResolverFunction, ComponentResolverObject, ComponentsImportMap, ImportInfo, ImportInfoLegacy, Matcher, PublicPluginAPI, ResolvedOptions, SideEffectsInfo, SupportedTransformer, Transformer, TypeImport } from './types.cjs';
import '@antfu/utils';
import '@rollup/pluginutils';
declare const _default: unplugin.UnpluginInstance<Options, boolean>;
declare function pascalCase(str: string): string;
declare function camelCase(str: string): string;
declare function kebabCase(key: string): string;
export { Options, camelCase, _default as default, kebabCase, pascalCase };
+13
View File
@@ -0,0 +1,13 @@
import * as unplugin from 'unplugin';
import { Options } from './types.js';
export { ComponentInfo, ComponentResolveResult, ComponentResolver, ComponentResolverFunction, ComponentResolverObject, ComponentsImportMap, ImportInfo, ImportInfoLegacy, Matcher, PublicPluginAPI, ResolvedOptions, SideEffectsInfo, SupportedTransformer, Transformer, TypeImport } from './types.js';
import '@antfu/utils';
import '@rollup/pluginutils';
declare const _default: unplugin.UnpluginInstance<Options, boolean>;
declare function pascalCase(str: string): string;
declare function camelCase(str: string): string;
declare function kebabCase(key: string): string;
export { Options, camelCase, _default as default, kebabCase, pascalCase };
+16
View File
@@ -0,0 +1,16 @@
import {
unplugin_default
} from "./chunk-5PFDJXKB.js";
import {
camelCase,
kebabCase,
pascalCase
} from "./chunk-X53Y3GEO.js";
import "./chunk-3RG5ZIWI.js";
import "./chunk-6F4PWJZI.js";
export {
camelCase,
unplugin_default as default,
kebabCase,
pascalCase
};
+18
View File
@@ -0,0 +1,18 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkUDMRZUV6cjs = require('./chunk-UDMRZUV6.cjs');
require('./chunk-MU27IQTB.cjs');
require('./chunk-OBGZSXTJ.cjs');
require('./chunk-ZBPRDZS4.cjs');
// src/nuxt.ts
var _kit = require('@nuxt/kit');
var nuxt_default = _kit.defineNuxtModule.call(void 0, {
setup(options) {
_kit.addWebpackPlugin.call(void 0, _chunkUDMRZUV6cjs.unplugin_default.webpack(options));
_kit.addVitePlugin.call(void 0, _chunkUDMRZUV6cjs.unplugin_default.vite(options));
}
});
exports.default = nuxt_default;
+9
View File
@@ -0,0 +1,9 @@
import * as _nuxt_schema from '@nuxt/schema';
import { Options } from './types.cjs';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: _nuxt_schema.NuxtModule<Options, Options, false>;
export { _default as default };
+9
View File
@@ -0,0 +1,9 @@
import * as _nuxt_schema from '@nuxt/schema';
import { Options } from './types.js';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: _nuxt_schema.NuxtModule<Options, Options, false>;
export { _default as default };
+18
View File
@@ -0,0 +1,18 @@
import {
unplugin_default
} from "./chunk-5PFDJXKB.js";
import "./chunk-X53Y3GEO.js";
import "./chunk-3RG5ZIWI.js";
import "./chunk-6F4PWJZI.js";
// src/nuxt.ts
import { addVitePlugin, addWebpackPlugin, defineNuxtModule } from "@nuxt/kit";
var nuxt_default = defineNuxtModule({
setup(options) {
addWebpackPlugin(unplugin_default.webpack(options));
addVitePlugin(unplugin_default.vite(options));
}
});
export {
nuxt_default as default
};
File diff suppressed because it is too large Load Diff
+554
View File
@@ -0,0 +1,554 @@
import { ComponentResolver, ComponentResolveResult } from './types.cjs';
import { FilterPattern } from '@rollup/pluginutils';
import '@antfu/utils';
import 'unplugin';
interface AntDesignVueResolverOptions {
/**
* exclude components that do not require automatic import
*
* @default []
*/
exclude?: string[];
/**
* import style along with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'less' | 'css-in-js';
/**
* resolve `ant-design-vue' icons
*
* requires package `@ant-design/icons-vue`
*
* @default false
*/
resolveIcons?: boolean;
/**
* @deprecated use `importStyle: 'css'` instead
*/
importCss?: boolean;
/**
* @deprecated use `importStyle: 'less'` instead
*/
importLess?: boolean;
/**
* use commonjs build default false
*/
cjs?: boolean;
/**
* rename package
*
* @default 'ant-design-vue'
*/
packageName?: string;
/**
* customize prefix of component
* @default 'A'
*/
prefix?: string;
}
/**
* Resolver for Ant Design Vue
*
* Requires ant-design-vue@v2.2.0-beta.6 or later
*
* See https://github.com/antfu/unplugin-vue-components/issues/26#issuecomment-789767941 for more details
*
* @author @yangss3
* @link https://antdv.com/
*/
declare function AntDesignVueResolver(options?: AntDesignVueResolverOptions): ComponentResolver;
type DisallowResolveIconOption = undefined | false | {
enable: false;
};
type AllowResolveIconOption = true | {
enable: true;
iconPrefix?: string;
};
type ResolveIconsOption = DisallowResolveIconOption | AllowResolveIconOption;
interface ArcoResolverOptions {
/**
* exclude components that do not require automatic import
*
* @default []
*/
exclude?: string | RegExp | (string | RegExp)[];
/**
* import style css or less with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'less';
/**
* resolve icons
*
* @default false
*/
resolveIcons?: ResolveIconsOption;
/**
* Control style automatic import
*
* @default true
*/
sideEffect?: boolean;
}
/**
* Resolver for Arco Design Vue
*
* Requires arco-design/web-vue@2.11.0 or later
*
* @author @flsion
* @link https://arco.design/ for arco-design
*
*/
declare function ArcoResolver(options?: ArcoResolverOptions): ComponentResolver;
interface BootstrapVueResolverOptions {
/**
* Auto import for directives.
*
* @default true
*/
directives?: boolean;
}
/**
* Resolver for BootstrapVue
*
* @link https://github.com/bootstrap-vue/bootstrap-vue
*/
declare function BootstrapVueResolver(_options?: BootstrapVueResolverOptions): ComponentResolver[];
/**
* Resolver for BootstrapVueNext
*
* @link https://github.com/bootstrap-vue/bootstrap-vue-next
*
* @deprecated use `import { BootstrapVueNextResolver } from 'bootstrap-vue-next'` instead
*/
declare function BootstrapVueNextResolver(_options?: BootstrapVueResolverOptions): Array<ComponentResolver>;
/**
* Resolver for legacy BootstrapVue3 apps
*
* @deprecated use BootstrapVueNextResolver with https://github.com/bootstrap-vue/bootstrap-vue-next
* @link https://www.npmjs.com/package/bootstrap-vue-3
*/
declare function BootstrapVue3Resolver(_options?: BootstrapVueResolverOptions): Array<ComponentResolver>;
interface DevResolverOptions {
/**
* bring in components and styles
*
* @default true
*/
importStyle?: boolean;
/**
* auto import for directives
*
* @default true
*/
directives?: boolean;
/**
* use umd lib file
*/
ssr?: boolean;
}
declare function DevUiResolver(options?: DevResolverOptions): ComponentResolver[];
interface ElementPlusResolverOptions {
/**
* import style css or sass with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'sass';
/**
* use commonjs lib & source css or scss for ssr
*/
ssr?: boolean;
/**
* specify element-plus version to load style
*
* @default installed version
*/
version?: string;
/**
* auto import for directives
*
* @default true
*/
directives?: boolean;
/**
* exclude component name, if match do not resolve the name
*/
exclude?: RegExp;
/**
* a list of component names that have no styles, so resolving their styles file should be prevented
*/
noStylesComponents?: string[];
/**
* nightly version
*/
nightly?: boolean;
}
/**
* Resolver for Element Plus
*
* See https://github.com/antfu/vite-plugin-components/pull/28 for more details
* See https://github.com/antfu/vite-plugin-components/issues/117 for more details
*
* @author @develar @nabaonan @sxzz
* @link https://element-plus.org/ for element-plus
*
*/
declare function ElementPlusResolver(options?: ElementPlusResolverOptions): ComponentResolver[];
interface ElementUiResolverOptions {
/**
* import style css or sass with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'sass';
/**
* exclude component name, if match do not resolve the name
*/
exclude?: RegExp;
}
/**
* Resolver for Element-UI
* @link https://element.eleme.cn/#/zh-CN
* @version @element-ui ^2.15.3, @vue ^2.6.14
* @author @nabaonan
*/
declare function ElementUiResolver(options?: ElementUiResolverOptions): ComponentResolver;
interface HeadlessUiResolverOptions {
/**
* prefix for headless ui components used in templates
*
* @default ""
*/
prefix?: string;
}
/**
* Resolver for headlessui
*
* @link https://github.com/tailwindlabs/headlessui
*/
declare function HeadlessUiResolver(options?: HeadlessUiResolverOptions): ComponentResolver;
interface IduxResolverOptions {
/**
* exclude components that do not require automatic import
*
* @default []
*/
exclude?: string[];
/**
* import style along with components
*/
importStyle?: 'css' | 'less';
/**
* theme for import style
*
* @default 'default' for 1.x version
*/
importStyleTheme?: string;
/**
* The scope of the packages.
*
* @default '@idux'
*/
scope?: string;
/**
* specify idux version to load style
*
* @default installed version
*/
version?: string;
}
/**
* Resolver for `@idux/cdk`, `@idux/components` and ``@idux/pro``
*
* @link https://idux.site
*/
declare function IduxResolver(options?: IduxResolverOptions): ComponentResolver;
/**
* Resolver for Inkline
*
* @author @alexgrozav
* @link https://github.com/inkline/inkline
*/
declare function InklineResolver(): ComponentResolver;
/**
* source: https://github.com/nuxt-modules/ionic/blob/main/src/imports.ts
* @author @danielroe
*/
declare const IonicBuiltInComponents: string[];
/**
* Resolver for ionic framework
*
* @author @mathsgod @reslear
* @link https://ionicframework.com/
*/
declare function IonicResolver(): ComponentResolver;
interface LayuiVueResolverOptions {
/**
* import style along with components
*
* @default 'css'
*/
importStyle?: boolean | 'css';
/**
* resolve '@layui/layui-vue' icons
* requires package `@layui/icons-vue`
*
* @default false
*/
resolveIcons?: boolean;
/**
* exclude components that do not require automatic import
*
*/
exclude?: FilterPattern;
}
/**
* Resolver for layui-vue
*
* @link http://www.layui-vue.com/ for layui-vue
*
*/
declare function LayuiVueResolver(options?: LayuiVueResolverOptions): ComponentResolver;
/**
* Resolver for Naive UI
*
* @author @antfu
* @link https://www.naiveui.com/
*/
declare function NaiveUiResolver(): ComponentResolver;
interface PrimeVueResolverOptions {
/**
* import style along with components
*
* @default true
*/
importStyle?: boolean;
/**
* import `primeicons' icons
*
* requires package `primeicons`
*
* @default true
*/
importIcons?: boolean;
/**
* imports a free theme - set theme name here (e.g. saga-blue)
*
* @default ''
*/
importTheme?: string;
/**
* prefix for components (e.g. 'P' to resolve Menu from PMenu)
*
* @default ''
*/
prefix?: string;
}
/**
* Resolver for PrimeVue - If you're using a component with the same tag as an native HTML element (e.g. button) the component must be in uppercase
*
* @link https://github.com/primefaces/primevue
*/
declare function PrimeVueResolver(options?: PrimeVueResolverOptions): ComponentResolver;
/**
* Resolver for Quasar
*
* @link https://github.com/quasarframework/quasar
*/
declare function QuasarResolver(): ComponentResolver;
interface TDesignResolverOptions {
/**
* select the specified library
* @default 'vue'
*/
library?: 'vue' | 'vue-next' | 'react' | 'mobile-vue' | 'mobile-react';
/**
* resolve `tdesign-icons'
* @default false
*/
resolveIcons?: boolean;
/**
* whether to import ESM version
* @default false
*/
esm?: boolean;
/**
* exclude component name, if match do not resolve the name
*
*/
exclude?: FilterPattern;
}
declare function TDesignResolver(options?: TDesignResolverOptions): ComponentResolver;
interface VantResolverOptions {
/**
* import style css or less along with components
*
* @default true
*/
importStyle?: boolean | 'css' | 'less';
}
/**
* Resolver for Vant
*
* @link https://github.com/youzan/vant
*/
declare function VantResolver(options?: VantResolverOptions): ComponentResolver;
interface VarletUIResolverOptions {
/**
* support vue version
* vue3 use @varlet/ui, vue2 use @varlet-vue2/ui
*
* @default 'vue3'
*/
version?: 'vue3' | 'vue2';
/**
* import style along with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'less';
/**
* style entry file extname
*
* @default '.mjs'
*/
styleExtname?: string;
/**
* auto import for directives
*
* @default true
*/
directives?: boolean;
/**
* compatible with unplugin-auto-import
*
* @default false
*/
autoImport?: boolean;
/**
* @deprecated use `importStyle: 'css'` instead
*/
importCss?: boolean;
/**
* @deprecated use `importStyle: 'less'` instead
*/
importLess?: boolean;
}
declare function getResolved(name: string, options: VarletUIResolverOptions): ComponentResolveResult;
/**
* Resolver for VarletUI
*
* @link https://github.com/varletjs/varlet
* @link https://github.com/varletjs/varlet-vue2
*/
declare function VarletUIResolver(options?: VarletUIResolverOptions): ComponentResolver[];
interface VeuiPeerConfig {
/**
* The package name of the peer module.
*/
package: string;
/**
* The directory path of the peer module.
* @default 'components'
*/
path?: string;
/**
* The file name template for the peer module.
* @default '{module}.css'
*/
fileName?: `${string}{module}${string}`;
/**
* The text transform to be applied to the '{module}' part of the file name.
* @default 'kebab-case'
*/
transform?: 'kebab-case' | 'camelCase' | 'PascalCase' | false;
}
type SupportedLocale = 'en-US' | 'zh-Hans';
interface VeuiResolverOptions {
/**
* The alias of 'veui` package.
* @default 'veui'
*/
alias?: string;
/**
* Peer modules to be injected.
*/
modules?: VeuiPeerConfig[];
/**
* Locale modules to be injected.
* @default 'zh-Hans'
*/
locale?: SupportedLocale | SupportedLocale[] | false;
/**
* Global modules to be injected to all components.
* @default []
*/
global?: string[];
}
/**
* Resolver for VEUI
*
* @link https://github.com/ecomfe/veui
*/
declare function VeuiResolver(options?: VeuiResolverOptions): ComponentResolver;
/**
* Resolver for View UI
* @requires @originjs/vite-plugin-commonjs
* @author @nabaonan
* @link https://www.iviewui.com/
* @description has known problems list below
* - select component render error PR: https://github.com/view-design/ViewUI/pull/944, choose can't display value,because click option trigger twice,at second time,select value turn into undefined.
* - scroll component has a template syntax called lang='html',it is require html-loader,but vite plugin not support yet,remove it can run. relate pr: https://github.com/view-design/ViewUI/pull/985
*/
declare function ViewUiResolver(): ComponentResolver;
/**
* Resolver for Vuetify
*
* @link https://github.com/vuetifyjs/vuetify
*/
declare function VuetifyResolver(): ComponentResolver;
/**
* Resolver for Vuetify 3 Beta
*
* @link https://github.com/vuetifyjs/vuetify
*/
declare function Vuetify3Resolver(): ComponentResolver;
/**
* Resolver for VueUse
*
* @link https://github.com/vueuse/vueuse
*/
declare function VueUseComponentsResolver(): ComponentResolver;
/**
* Resolver for VueUse
*
* @link https://github.com/vueuse/vueuse
*/
declare function VueUseDirectiveResolver(): ComponentResolver;
export { type AllowResolveIconOption, AntDesignVueResolver, type AntDesignVueResolverOptions, ArcoResolver, type ArcoResolverOptions, BootstrapVue3Resolver, BootstrapVueNextResolver, BootstrapVueResolver, type BootstrapVueResolverOptions, type DevResolverOptions, DevUiResolver, type DisallowResolveIconOption, ElementPlusResolver, type ElementPlusResolverOptions, ElementUiResolver, type ElementUiResolverOptions, HeadlessUiResolver, type HeadlessUiResolverOptions, IduxResolver, type IduxResolverOptions, InklineResolver, IonicBuiltInComponents, IonicResolver, LayuiVueResolver, type LayuiVueResolverOptions, NaiveUiResolver, PrimeVueResolver, type PrimeVueResolverOptions, QuasarResolver, type ResolveIconsOption, TDesignResolver, type TDesignResolverOptions, VantResolver, type VantResolverOptions, VarletUIResolver, type VarletUIResolverOptions, VeuiResolver, type VeuiResolverOptions, ViewUiResolver, VueUseComponentsResolver, VueUseDirectiveResolver, Vuetify3Resolver, VuetifyResolver, getResolved };
+554
View File
@@ -0,0 +1,554 @@
import { ComponentResolver, ComponentResolveResult } from './types.js';
import { FilterPattern } from '@rollup/pluginutils';
import '@antfu/utils';
import 'unplugin';
interface AntDesignVueResolverOptions {
/**
* exclude components that do not require automatic import
*
* @default []
*/
exclude?: string[];
/**
* import style along with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'less' | 'css-in-js';
/**
* resolve `ant-design-vue' icons
*
* requires package `@ant-design/icons-vue`
*
* @default false
*/
resolveIcons?: boolean;
/**
* @deprecated use `importStyle: 'css'` instead
*/
importCss?: boolean;
/**
* @deprecated use `importStyle: 'less'` instead
*/
importLess?: boolean;
/**
* use commonjs build default false
*/
cjs?: boolean;
/**
* rename package
*
* @default 'ant-design-vue'
*/
packageName?: string;
/**
* customize prefix of component
* @default 'A'
*/
prefix?: string;
}
/**
* Resolver for Ant Design Vue
*
* Requires ant-design-vue@v2.2.0-beta.6 or later
*
* See https://github.com/antfu/unplugin-vue-components/issues/26#issuecomment-789767941 for more details
*
* @author @yangss3
* @link https://antdv.com/
*/
declare function AntDesignVueResolver(options?: AntDesignVueResolverOptions): ComponentResolver;
type DisallowResolveIconOption = undefined | false | {
enable: false;
};
type AllowResolveIconOption = true | {
enable: true;
iconPrefix?: string;
};
type ResolveIconsOption = DisallowResolveIconOption | AllowResolveIconOption;
interface ArcoResolverOptions {
/**
* exclude components that do not require automatic import
*
* @default []
*/
exclude?: string | RegExp | (string | RegExp)[];
/**
* import style css or less with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'less';
/**
* resolve icons
*
* @default false
*/
resolveIcons?: ResolveIconsOption;
/**
* Control style automatic import
*
* @default true
*/
sideEffect?: boolean;
}
/**
* Resolver for Arco Design Vue
*
* Requires arco-design/web-vue@2.11.0 or later
*
* @author @flsion
* @link https://arco.design/ for arco-design
*
*/
declare function ArcoResolver(options?: ArcoResolverOptions): ComponentResolver;
interface BootstrapVueResolverOptions {
/**
* Auto import for directives.
*
* @default true
*/
directives?: boolean;
}
/**
* Resolver for BootstrapVue
*
* @link https://github.com/bootstrap-vue/bootstrap-vue
*/
declare function BootstrapVueResolver(_options?: BootstrapVueResolverOptions): ComponentResolver[];
/**
* Resolver for BootstrapVueNext
*
* @link https://github.com/bootstrap-vue/bootstrap-vue-next
*
* @deprecated use `import { BootstrapVueNextResolver } from 'bootstrap-vue-next'` instead
*/
declare function BootstrapVueNextResolver(_options?: BootstrapVueResolverOptions): Array<ComponentResolver>;
/**
* Resolver for legacy BootstrapVue3 apps
*
* @deprecated use BootstrapVueNextResolver with https://github.com/bootstrap-vue/bootstrap-vue-next
* @link https://www.npmjs.com/package/bootstrap-vue-3
*/
declare function BootstrapVue3Resolver(_options?: BootstrapVueResolverOptions): Array<ComponentResolver>;
interface DevResolverOptions {
/**
* bring in components and styles
*
* @default true
*/
importStyle?: boolean;
/**
* auto import for directives
*
* @default true
*/
directives?: boolean;
/**
* use umd lib file
*/
ssr?: boolean;
}
declare function DevUiResolver(options?: DevResolverOptions): ComponentResolver[];
interface ElementPlusResolverOptions {
/**
* import style css or sass with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'sass';
/**
* use commonjs lib & source css or scss for ssr
*/
ssr?: boolean;
/**
* specify element-plus version to load style
*
* @default installed version
*/
version?: string;
/**
* auto import for directives
*
* @default true
*/
directives?: boolean;
/**
* exclude component name, if match do not resolve the name
*/
exclude?: RegExp;
/**
* a list of component names that have no styles, so resolving their styles file should be prevented
*/
noStylesComponents?: string[];
/**
* nightly version
*/
nightly?: boolean;
}
/**
* Resolver for Element Plus
*
* See https://github.com/antfu/vite-plugin-components/pull/28 for more details
* See https://github.com/antfu/vite-plugin-components/issues/117 for more details
*
* @author @develar @nabaonan @sxzz
* @link https://element-plus.org/ for element-plus
*
*/
declare function ElementPlusResolver(options?: ElementPlusResolverOptions): ComponentResolver[];
interface ElementUiResolverOptions {
/**
* import style css or sass with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'sass';
/**
* exclude component name, if match do not resolve the name
*/
exclude?: RegExp;
}
/**
* Resolver for Element-UI
* @link https://element.eleme.cn/#/zh-CN
* @version @element-ui ^2.15.3, @vue ^2.6.14
* @author @nabaonan
*/
declare function ElementUiResolver(options?: ElementUiResolverOptions): ComponentResolver;
interface HeadlessUiResolverOptions {
/**
* prefix for headless ui components used in templates
*
* @default ""
*/
prefix?: string;
}
/**
* Resolver for headlessui
*
* @link https://github.com/tailwindlabs/headlessui
*/
declare function HeadlessUiResolver(options?: HeadlessUiResolverOptions): ComponentResolver;
interface IduxResolverOptions {
/**
* exclude components that do not require automatic import
*
* @default []
*/
exclude?: string[];
/**
* import style along with components
*/
importStyle?: 'css' | 'less';
/**
* theme for import style
*
* @default 'default' for 1.x version
*/
importStyleTheme?: string;
/**
* The scope of the packages.
*
* @default '@idux'
*/
scope?: string;
/**
* specify idux version to load style
*
* @default installed version
*/
version?: string;
}
/**
* Resolver for `@idux/cdk`, `@idux/components` and ``@idux/pro``
*
* @link https://idux.site
*/
declare function IduxResolver(options?: IduxResolverOptions): ComponentResolver;
/**
* Resolver for Inkline
*
* @author @alexgrozav
* @link https://github.com/inkline/inkline
*/
declare function InklineResolver(): ComponentResolver;
/**
* source: https://github.com/nuxt-modules/ionic/blob/main/src/imports.ts
* @author @danielroe
*/
declare const IonicBuiltInComponents: string[];
/**
* Resolver for ionic framework
*
* @author @mathsgod @reslear
* @link https://ionicframework.com/
*/
declare function IonicResolver(): ComponentResolver;
interface LayuiVueResolverOptions {
/**
* import style along with components
*
* @default 'css'
*/
importStyle?: boolean | 'css';
/**
* resolve '@layui/layui-vue' icons
* requires package `@layui/icons-vue`
*
* @default false
*/
resolveIcons?: boolean;
/**
* exclude components that do not require automatic import
*
*/
exclude?: FilterPattern;
}
/**
* Resolver for layui-vue
*
* @link http://www.layui-vue.com/ for layui-vue
*
*/
declare function LayuiVueResolver(options?: LayuiVueResolverOptions): ComponentResolver;
/**
* Resolver for Naive UI
*
* @author @antfu
* @link https://www.naiveui.com/
*/
declare function NaiveUiResolver(): ComponentResolver;
interface PrimeVueResolverOptions {
/**
* import style along with components
*
* @default true
*/
importStyle?: boolean;
/**
* import `primeicons' icons
*
* requires package `primeicons`
*
* @default true
*/
importIcons?: boolean;
/**
* imports a free theme - set theme name here (e.g. saga-blue)
*
* @default ''
*/
importTheme?: string;
/**
* prefix for components (e.g. 'P' to resolve Menu from PMenu)
*
* @default ''
*/
prefix?: string;
}
/**
* Resolver for PrimeVue - If you're using a component with the same tag as an native HTML element (e.g. button) the component must be in uppercase
*
* @link https://github.com/primefaces/primevue
*/
declare function PrimeVueResolver(options?: PrimeVueResolverOptions): ComponentResolver;
/**
* Resolver for Quasar
*
* @link https://github.com/quasarframework/quasar
*/
declare function QuasarResolver(): ComponentResolver;
interface TDesignResolverOptions {
/**
* select the specified library
* @default 'vue'
*/
library?: 'vue' | 'vue-next' | 'react' | 'mobile-vue' | 'mobile-react';
/**
* resolve `tdesign-icons'
* @default false
*/
resolveIcons?: boolean;
/**
* whether to import ESM version
* @default false
*/
esm?: boolean;
/**
* exclude component name, if match do not resolve the name
*
*/
exclude?: FilterPattern;
}
declare function TDesignResolver(options?: TDesignResolverOptions): ComponentResolver;
interface VantResolverOptions {
/**
* import style css or less along with components
*
* @default true
*/
importStyle?: boolean | 'css' | 'less';
}
/**
* Resolver for Vant
*
* @link https://github.com/youzan/vant
*/
declare function VantResolver(options?: VantResolverOptions): ComponentResolver;
interface VarletUIResolverOptions {
/**
* support vue version
* vue3 use @varlet/ui, vue2 use @varlet-vue2/ui
*
* @default 'vue3'
*/
version?: 'vue3' | 'vue2';
/**
* import style along with components
*
* @default 'css'
*/
importStyle?: boolean | 'css' | 'less';
/**
* style entry file extname
*
* @default '.mjs'
*/
styleExtname?: string;
/**
* auto import for directives
*
* @default true
*/
directives?: boolean;
/**
* compatible with unplugin-auto-import
*
* @default false
*/
autoImport?: boolean;
/**
* @deprecated use `importStyle: 'css'` instead
*/
importCss?: boolean;
/**
* @deprecated use `importStyle: 'less'` instead
*/
importLess?: boolean;
}
declare function getResolved(name: string, options: VarletUIResolverOptions): ComponentResolveResult;
/**
* Resolver for VarletUI
*
* @link https://github.com/varletjs/varlet
* @link https://github.com/varletjs/varlet-vue2
*/
declare function VarletUIResolver(options?: VarletUIResolverOptions): ComponentResolver[];
interface VeuiPeerConfig {
/**
* The package name of the peer module.
*/
package: string;
/**
* The directory path of the peer module.
* @default 'components'
*/
path?: string;
/**
* The file name template for the peer module.
* @default '{module}.css'
*/
fileName?: `${string}{module}${string}`;
/**
* The text transform to be applied to the '{module}' part of the file name.
* @default 'kebab-case'
*/
transform?: 'kebab-case' | 'camelCase' | 'PascalCase' | false;
}
type SupportedLocale = 'en-US' | 'zh-Hans';
interface VeuiResolverOptions {
/**
* The alias of 'veui` package.
* @default 'veui'
*/
alias?: string;
/**
* Peer modules to be injected.
*/
modules?: VeuiPeerConfig[];
/**
* Locale modules to be injected.
* @default 'zh-Hans'
*/
locale?: SupportedLocale | SupportedLocale[] | false;
/**
* Global modules to be injected to all components.
* @default []
*/
global?: string[];
}
/**
* Resolver for VEUI
*
* @link https://github.com/ecomfe/veui
*/
declare function VeuiResolver(options?: VeuiResolverOptions): ComponentResolver;
/**
* Resolver for View UI
* @requires @originjs/vite-plugin-commonjs
* @author @nabaonan
* @link https://www.iviewui.com/
* @description has known problems list below
* - select component render error PR: https://github.com/view-design/ViewUI/pull/944, choose can't display value,because click option trigger twice,at second time,select value turn into undefined.
* - scroll component has a template syntax called lang='html',it is require html-loader,but vite plugin not support yet,remove it can run. relate pr: https://github.com/view-design/ViewUI/pull/985
*/
declare function ViewUiResolver(): ComponentResolver;
/**
* Resolver for Vuetify
*
* @link https://github.com/vuetifyjs/vuetify
*/
declare function VuetifyResolver(): ComponentResolver;
/**
* Resolver for Vuetify 3 Beta
*
* @link https://github.com/vuetifyjs/vuetify
*/
declare function Vuetify3Resolver(): ComponentResolver;
/**
* Resolver for VueUse
*
* @link https://github.com/vueuse/vueuse
*/
declare function VueUseComponentsResolver(): ComponentResolver;
/**
* Resolver for VueUse
*
* @link https://github.com/vueuse/vueuse
*/
declare function VueUseDirectiveResolver(): ComponentResolver;
export { type AllowResolveIconOption, AntDesignVueResolver, type AntDesignVueResolverOptions, ArcoResolver, type ArcoResolverOptions, BootstrapVue3Resolver, BootstrapVueNextResolver, BootstrapVueResolver, type BootstrapVueResolverOptions, type DevResolverOptions, DevUiResolver, type DisallowResolveIconOption, ElementPlusResolver, type ElementPlusResolverOptions, ElementUiResolver, type ElementUiResolverOptions, HeadlessUiResolver, type HeadlessUiResolverOptions, IduxResolver, type IduxResolverOptions, InklineResolver, IonicBuiltInComponents, IonicResolver, LayuiVueResolver, type LayuiVueResolverOptions, NaiveUiResolver, PrimeVueResolver, type PrimeVueResolverOptions, QuasarResolver, type ResolveIconsOption, TDesignResolver, type TDesignResolverOptions, VantResolver, type VantResolverOptions, VarletUIResolver, type VarletUIResolverOptions, VeuiResolver, type VeuiResolverOptions, ViewUiResolver, VueUseComponentsResolver, VueUseDirectiveResolver, Vuetify3Resolver, VuetifyResolver, getResolved };
File diff suppressed because it is too large Load Diff
+12
View File
@@ -0,0 +1,12 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkUDMRZUV6cjs = require('./chunk-UDMRZUV6.cjs');
require('./chunk-MU27IQTB.cjs');
require('./chunk-OBGZSXTJ.cjs');
require('./chunk-ZBPRDZS4.cjs');
// src/rollup.ts
var rollup_default = _chunkUDMRZUV6cjs.unplugin_default.rollup;
exports.default = rollup_default;
+9
View File
@@ -0,0 +1,9 @@
import * as rollup from 'rollup';
import { Options } from './types.cjs';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options: Options) => rollup.Plugin<any> | rollup.Plugin<any>[];
export { _default as default };
+9
View File
@@ -0,0 +1,9 @@
import * as rollup from 'rollup';
import { Options } from './types.js';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options: Options) => rollup.Plugin<any> | rollup.Plugin<any>[];
export { _default as default };
+12
View File
@@ -0,0 +1,12 @@
import {
unplugin_default
} from "./chunk-5PFDJXKB.js";
import "./chunk-X53Y3GEO.js";
import "./chunk-3RG5ZIWI.js";
import "./chunk-6F4PWJZI.js";
// src/rollup.ts
var rollup_default = unplugin_default.rollup;
export {
rollup_default as default
};
+12
View File
@@ -0,0 +1,12 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkUDMRZUV6cjs = require('./chunk-UDMRZUV6.cjs');
require('./chunk-MU27IQTB.cjs');
require('./chunk-OBGZSXTJ.cjs');
require('./chunk-ZBPRDZS4.cjs');
// src/rspack.ts
var rspack_default = _chunkUDMRZUV6cjs.unplugin_default.rspack;
exports.default = rspack_default;
+8
View File
@@ -0,0 +1,8 @@
import { Options } from './types.cjs';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options: Options) => RspackPluginInstance;
export { _default as default };
+8
View File
@@ -0,0 +1,8 @@
import { Options } from './types.js';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options: Options) => RspackPluginInstance;
export { _default as default };
+12
View File
@@ -0,0 +1,12 @@
import {
unplugin_default
} from "./chunk-5PFDJXKB.js";
import "./chunk-X53Y3GEO.js";
import "./chunk-3RG5ZIWI.js";
import "./chunk-6F4PWJZI.js";
// src/rspack.ts
var rspack_default = unplugin_default.rspack;
export {
rspack_default as default
};
@@ -0,0 +1,262 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-OBGZSXTJ.cjs');
// node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/walker.js
var WalkerBase = class {
constructor() {
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
this.context = {
skip: () => this.should_skip = true,
remove: () => this.should_remove = true,
replace: (node) => this.replacement = node
};
}
/**
* @template {Node} Parent
* @param {Parent | null | undefined} parent
* @param {keyof Parent | null | undefined} prop
* @param {number | null | undefined} index
* @param {Node} node
*/
replace(parent, prop, index, node) {
if (parent && prop) {
if (index != null) {
parent[prop][index] = node;
} else {
parent[prop] = node;
}
}
}
/**
* @template {Node} Parent
* @param {Parent | null | undefined} parent
* @param {keyof Parent | null | undefined} prop
* @param {number | null | undefined} index
*/
remove(parent, prop, index) {
if (parent && prop) {
if (index !== null && index !== void 0) {
parent[prop].splice(index, 1);
} else {
delete parent[prop];
}
}
}
};
// node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/sync.js
var SyncWalker = class extends WalkerBase {
/**
*
* @param {SyncHandler} [enter]
* @param {SyncHandler} [leave]
*/
constructor(enter, leave) {
super();
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
this.context = {
skip: () => this.should_skip = true,
remove: () => this.should_remove = true,
replace: (node) => this.replacement = node
};
this.enter = enter;
this.leave = leave;
}
/**
* @template {Node} Parent
* @param {Node} node
* @param {Parent | null} parent
* @param {keyof Parent} [prop]
* @param {number | null} [index]
* @returns {Node | null}
*/
visit(node, parent, prop, index) {
if (node) {
if (this.enter) {
const _should_skip = this.should_skip;
const _should_remove = this.should_remove;
const _replacement = this.replacement;
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
this.enter.call(this.context, node, parent, prop, index);
if (this.replacement) {
node = this.replacement;
this.replace(parent, prop, index, node);
}
if (this.should_remove) {
this.remove(parent, prop, index);
}
const skipped = this.should_skip;
const removed = this.should_remove;
this.should_skip = _should_skip;
this.should_remove = _should_remove;
this.replacement = _replacement;
if (skipped) return node;
if (removed) return null;
}
let key;
for (key in node) {
const value = node[key];
if (value && typeof value === "object") {
if (Array.isArray(value)) {
const nodes = (
/** @type {Array<unknown>} */
value
);
for (let i = 0; i < nodes.length; i += 1) {
const item = nodes[i];
if (isNode(item)) {
if (!this.visit(item, node, key, i)) {
i--;
}
}
}
} else if (isNode(value)) {
this.visit(value, node, key, null);
}
}
}
if (this.leave) {
const _replacement = this.replacement;
const _should_remove = this.should_remove;
this.replacement = null;
this.should_remove = false;
this.leave.call(this.context, node, parent, prop, index);
if (this.replacement) {
node = this.replacement;
this.replace(parent, prop, index, node);
}
if (this.should_remove) {
this.remove(parent, prop, index);
}
const removed = this.should_remove;
this.replacement = _replacement;
this.should_remove = _should_remove;
if (removed) return null;
}
}
return node;
}
};
function isNode(value) {
return value !== null && typeof value === "object" && "type" in value && typeof value.type === "string";
}
// node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/async.js
var AsyncWalker = class extends WalkerBase {
/**
*
* @param {AsyncHandler} [enter]
* @param {AsyncHandler} [leave]
*/
constructor(enter, leave) {
super();
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
this.context = {
skip: () => this.should_skip = true,
remove: () => this.should_remove = true,
replace: (node) => this.replacement = node
};
this.enter = enter;
this.leave = leave;
}
/**
* @template {Node} Parent
* @param {Node} node
* @param {Parent | null} parent
* @param {keyof Parent} [prop]
* @param {number | null} [index]
* @returns {Promise<Node | null>}
*/
async visit(node, parent, prop, index) {
if (node) {
if (this.enter) {
const _should_skip = this.should_skip;
const _should_remove = this.should_remove;
const _replacement = this.replacement;
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
await this.enter.call(this.context, node, parent, prop, index);
if (this.replacement) {
node = this.replacement;
this.replace(parent, prop, index, node);
}
if (this.should_remove) {
this.remove(parent, prop, index);
}
const skipped = this.should_skip;
const removed = this.should_remove;
this.should_skip = _should_skip;
this.should_remove = _should_remove;
this.replacement = _replacement;
if (skipped) return node;
if (removed) return null;
}
let key;
for (key in node) {
const value = node[key];
if (value && typeof value === "object") {
if (Array.isArray(value)) {
const nodes = (
/** @type {Array<unknown>} */
value
);
for (let i = 0; i < nodes.length; i += 1) {
const item = nodes[i];
if (isNode2(item)) {
if (!await this.visit(item, node, key, i)) {
i--;
}
}
}
} else if (isNode2(value)) {
await this.visit(value, node, key, null);
}
}
}
if (this.leave) {
const _replacement = this.replacement;
const _should_remove = this.should_remove;
this.replacement = null;
this.should_remove = false;
await this.leave.call(this.context, node, parent, prop, index);
if (this.replacement) {
node = this.replacement;
this.replace(parent, prop, index, node);
}
if (this.should_remove) {
this.remove(parent, prop, index);
}
const removed = this.should_remove;
this.replacement = _replacement;
this.should_remove = _should_remove;
if (removed) return null;
}
}
return node;
}
};
function isNode2(value) {
return value !== null && typeof value === "object" && "type" in value && typeof value.type === "string";
}
// node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/index.js
function walk(ast, { enter, leave }) {
const instance = new SyncWalker(enter, leave);
return instance.visit(ast, null);
}
async function asyncWalk(ast, { enter, leave }) {
const instance = new AsyncWalker(enter, leave);
return await instance.visit(ast, null);
}
exports.asyncWalk = asyncWalk; exports.walk = walk;
+262
View File
@@ -0,0 +1,262 @@
import "./chunk-3RG5ZIWI.js";
// node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/walker.js
var WalkerBase = class {
constructor() {
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
this.context = {
skip: () => this.should_skip = true,
remove: () => this.should_remove = true,
replace: (node) => this.replacement = node
};
}
/**
* @template {Node} Parent
* @param {Parent | null | undefined} parent
* @param {keyof Parent | null | undefined} prop
* @param {number | null | undefined} index
* @param {Node} node
*/
replace(parent, prop, index, node) {
if (parent && prop) {
if (index != null) {
parent[prop][index] = node;
} else {
parent[prop] = node;
}
}
}
/**
* @template {Node} Parent
* @param {Parent | null | undefined} parent
* @param {keyof Parent | null | undefined} prop
* @param {number | null | undefined} index
*/
remove(parent, prop, index) {
if (parent && prop) {
if (index !== null && index !== void 0) {
parent[prop].splice(index, 1);
} else {
delete parent[prop];
}
}
}
};
// node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/sync.js
var SyncWalker = class extends WalkerBase {
/**
*
* @param {SyncHandler} [enter]
* @param {SyncHandler} [leave]
*/
constructor(enter, leave) {
super();
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
this.context = {
skip: () => this.should_skip = true,
remove: () => this.should_remove = true,
replace: (node) => this.replacement = node
};
this.enter = enter;
this.leave = leave;
}
/**
* @template {Node} Parent
* @param {Node} node
* @param {Parent | null} parent
* @param {keyof Parent} [prop]
* @param {number | null} [index]
* @returns {Node | null}
*/
visit(node, parent, prop, index) {
if (node) {
if (this.enter) {
const _should_skip = this.should_skip;
const _should_remove = this.should_remove;
const _replacement = this.replacement;
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
this.enter.call(this.context, node, parent, prop, index);
if (this.replacement) {
node = this.replacement;
this.replace(parent, prop, index, node);
}
if (this.should_remove) {
this.remove(parent, prop, index);
}
const skipped = this.should_skip;
const removed = this.should_remove;
this.should_skip = _should_skip;
this.should_remove = _should_remove;
this.replacement = _replacement;
if (skipped) return node;
if (removed) return null;
}
let key;
for (key in node) {
const value = node[key];
if (value && typeof value === "object") {
if (Array.isArray(value)) {
const nodes = (
/** @type {Array<unknown>} */
value
);
for (let i = 0; i < nodes.length; i += 1) {
const item = nodes[i];
if (isNode(item)) {
if (!this.visit(item, node, key, i)) {
i--;
}
}
}
} else if (isNode(value)) {
this.visit(value, node, key, null);
}
}
}
if (this.leave) {
const _replacement = this.replacement;
const _should_remove = this.should_remove;
this.replacement = null;
this.should_remove = false;
this.leave.call(this.context, node, parent, prop, index);
if (this.replacement) {
node = this.replacement;
this.replace(parent, prop, index, node);
}
if (this.should_remove) {
this.remove(parent, prop, index);
}
const removed = this.should_remove;
this.replacement = _replacement;
this.should_remove = _should_remove;
if (removed) return null;
}
}
return node;
}
};
function isNode(value) {
return value !== null && typeof value === "object" && "type" in value && typeof value.type === "string";
}
// node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/async.js
var AsyncWalker = class extends WalkerBase {
/**
*
* @param {AsyncHandler} [enter]
* @param {AsyncHandler} [leave]
*/
constructor(enter, leave) {
super();
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
this.context = {
skip: () => this.should_skip = true,
remove: () => this.should_remove = true,
replace: (node) => this.replacement = node
};
this.enter = enter;
this.leave = leave;
}
/**
* @template {Node} Parent
* @param {Node} node
* @param {Parent | null} parent
* @param {keyof Parent} [prop]
* @param {number | null} [index]
* @returns {Promise<Node | null>}
*/
async visit(node, parent, prop, index) {
if (node) {
if (this.enter) {
const _should_skip = this.should_skip;
const _should_remove = this.should_remove;
const _replacement = this.replacement;
this.should_skip = false;
this.should_remove = false;
this.replacement = null;
await this.enter.call(this.context, node, parent, prop, index);
if (this.replacement) {
node = this.replacement;
this.replace(parent, prop, index, node);
}
if (this.should_remove) {
this.remove(parent, prop, index);
}
const skipped = this.should_skip;
const removed = this.should_remove;
this.should_skip = _should_skip;
this.should_remove = _should_remove;
this.replacement = _replacement;
if (skipped) return node;
if (removed) return null;
}
let key;
for (key in node) {
const value = node[key];
if (value && typeof value === "object") {
if (Array.isArray(value)) {
const nodes = (
/** @type {Array<unknown>} */
value
);
for (let i = 0; i < nodes.length; i += 1) {
const item = nodes[i];
if (isNode2(item)) {
if (!await this.visit(item, node, key, i)) {
i--;
}
}
}
} else if (isNode2(value)) {
await this.visit(value, node, key, null);
}
}
}
if (this.leave) {
const _replacement = this.replacement;
const _should_remove = this.should_remove;
this.replacement = null;
this.should_remove = false;
await this.leave.call(this.context, node, parent, prop, index);
if (this.replacement) {
node = this.replacement;
this.replace(parent, prop, index, node);
}
if (this.should_remove) {
this.remove(parent, prop, index);
}
const removed = this.should_remove;
this.replacement = _replacement;
this.should_remove = _should_remove;
if (removed) return null;
}
}
return node;
}
};
function isNode2(value) {
return value !== null && typeof value === "object" && "type" in value && typeof value.type === "string";
}
// node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/index.js
function walk(ast, { enter, leave }) {
const instance = new SyncWalker(enter, leave);
return instance.visit(ast, null);
}
async function asyncWalk(ast, { enter, leave }) {
const instance = new AsyncWalker(enter, leave);
return await instance.visit(ast, null);
}
export {
asyncWalk,
walk
};
+1
View File
@@ -0,0 +1 @@
"use strict";require('./chunk-ZBPRDZS4.cjs');
+172
View File
@@ -0,0 +1,172 @@
import { Awaitable } from '@antfu/utils';
import { FilterPattern } from '@rollup/pluginutils';
import { TransformResult } from 'unplugin';
interface ImportInfoLegacy {
/**
* @deprecated renamed to `as`
*/
name?: string;
/**
* @deprecated renamed to `name`
*/
importName?: string;
/**
* @deprecated renamed to `from`
*/
path: string;
sideEffects?: SideEffectsInfo;
}
interface ImportInfo {
as?: string;
name?: string;
from: string;
}
type SideEffectsInfo = (ImportInfo | string)[] | ImportInfo | string | undefined;
interface ComponentInfo extends ImportInfo {
sideEffects?: SideEffectsInfo;
}
type ComponentResolveResult = Awaitable<string | ComponentInfo | null | undefined | void>;
type ComponentResolverFunction = (name: string) => ComponentResolveResult;
interface ComponentResolverObject {
type: 'component' | 'directive';
resolve: ComponentResolverFunction;
}
type ComponentResolver = ComponentResolverFunction | ComponentResolverObject;
type Matcher = (id: string) => boolean | null | undefined;
type Transformer = (code: string, id: string, path: string, query: Record<string, string>) => Awaitable<TransformResult | null>;
type SupportedTransformer = 'vue3' | 'vue2';
interface PublicPluginAPI {
/**
* Resolves a component using the configured resolvers.
*/
findComponent: (name: string, filename?: string) => Promise<ComponentInfo | undefined>;
/**
* Obtain an import statement for a resolved component.
*/
stringifyImport: (info: ComponentInfo) => string;
}
/**
* Plugin options.
*/
interface Options {
/**
* RegExp or glob to match files to be transformed
*/
include?: FilterPattern;
/**
* RegExp or glob to match files to NOT be transformed
*/
exclude?: FilterPattern;
/**
* RegExp or string to match component names that will NOT be imported
*/
excludeNames?: FilterPattern;
/**
* Relative paths to the directory to search for components.
* @default 'src/components'
*/
dirs?: string | string[];
/**
* Valid file extensions for components.
* @default ['vue']
*/
extensions?: string | string[];
/**
* Glob patterns to match file names to be detected as components.
*
* When specified, the `dirs`, `extensions`, and `directoryAsNamespace` options will be ignored.
*/
globs?: string | string[];
/**
* Search for subdirectories
* @default true
*/
deep?: boolean;
/**
* Allow subdirectories as namespace prefix for components
* @default false
*/
directoryAsNamespace?: boolean;
/**
* Collapse same prefixes (camel-sensitive) of folders and components
* to prevent duplication inside namespaced component name.
*
* Works when `directoryAsNamespace: true`
* @default false
*/
collapseSamePrefixes?: boolean;
/**
* Subdirectory paths for ignoring namespace prefixes
*
* Works when `directoryAsNamespace: true`
* @default "[]"
*/
globalNamespaces?: string[];
/**
* Pass a custom function to resolve the component importing path from the component name.
*
* The component names are always in PascalCase
*/
resolvers?: (ComponentResolver | ComponentResolver[])[];
/**
* Apply custom transform over the path for importing
*/
importPathTransform?: (path: string) => string | undefined;
/**
* Transformer to apply
*
* @default 'vue3'
*/
transformer?: SupportedTransformer;
/**
* Generate TypeScript declaration for global components
*
* Accept boolean or a path related to project root
*
* @see https://github.com/vuejs/core/pull/3399
* @see https://github.com/johnsoncodehk/volar#using
* @default true
*/
dts?: boolean | string;
/**
* Do not emit warning on component overriding
*
* @default false
*/
allowOverrides?: boolean;
/**
* auto import for directives.
*
* default: `true` for Vue 3, `false` for Vue 2
*
* Babel is needed to do the transformation for Vue 2, it's disabled by default for performance concerns.
* To install Babel, run: `npm install -D @babel/parser`
* @default undefined
*/
directives?: boolean;
/**
* Only provide types of components in library (registered globally)
*/
types?: TypeImport[];
/**
* Vue version of project. It will detect automatically if not specified.
*/
version?: 2 | 2.7 | 3;
}
type ResolvedOptions = Omit<Required<Options>, 'resolvers' | 'extensions' | 'dirs' | 'globalComponentsDeclaration'> & {
resolvers: ComponentResolverObject[];
extensions: string[];
dirs: string[];
resolvedDirs: string[];
globs: string[];
dts: string | false;
root: string;
};
type ComponentsImportMap = Record<string, string[] | undefined>;
interface TypeImport {
from: string;
names: string[];
}
export type { ComponentInfo, ComponentResolveResult, ComponentResolver, ComponentResolverFunction, ComponentResolverObject, ComponentsImportMap, ImportInfo, ImportInfoLegacy, Matcher, Options, PublicPluginAPI, ResolvedOptions, SideEffectsInfo, SupportedTransformer, Transformer, TypeImport };
+172
View File
@@ -0,0 +1,172 @@
import { Awaitable } from '@antfu/utils';
import { FilterPattern } from '@rollup/pluginutils';
import { TransformResult } from 'unplugin';
interface ImportInfoLegacy {
/**
* @deprecated renamed to `as`
*/
name?: string;
/**
* @deprecated renamed to `name`
*/
importName?: string;
/**
* @deprecated renamed to `from`
*/
path: string;
sideEffects?: SideEffectsInfo;
}
interface ImportInfo {
as?: string;
name?: string;
from: string;
}
type SideEffectsInfo = (ImportInfo | string)[] | ImportInfo | string | undefined;
interface ComponentInfo extends ImportInfo {
sideEffects?: SideEffectsInfo;
}
type ComponentResolveResult = Awaitable<string | ComponentInfo | null | undefined | void>;
type ComponentResolverFunction = (name: string) => ComponentResolveResult;
interface ComponentResolverObject {
type: 'component' | 'directive';
resolve: ComponentResolverFunction;
}
type ComponentResolver = ComponentResolverFunction | ComponentResolverObject;
type Matcher = (id: string) => boolean | null | undefined;
type Transformer = (code: string, id: string, path: string, query: Record<string, string>) => Awaitable<TransformResult | null>;
type SupportedTransformer = 'vue3' | 'vue2';
interface PublicPluginAPI {
/**
* Resolves a component using the configured resolvers.
*/
findComponent: (name: string, filename?: string) => Promise<ComponentInfo | undefined>;
/**
* Obtain an import statement for a resolved component.
*/
stringifyImport: (info: ComponentInfo) => string;
}
/**
* Plugin options.
*/
interface Options {
/**
* RegExp or glob to match files to be transformed
*/
include?: FilterPattern;
/**
* RegExp or glob to match files to NOT be transformed
*/
exclude?: FilterPattern;
/**
* RegExp or string to match component names that will NOT be imported
*/
excludeNames?: FilterPattern;
/**
* Relative paths to the directory to search for components.
* @default 'src/components'
*/
dirs?: string | string[];
/**
* Valid file extensions for components.
* @default ['vue']
*/
extensions?: string | string[];
/**
* Glob patterns to match file names to be detected as components.
*
* When specified, the `dirs`, `extensions`, and `directoryAsNamespace` options will be ignored.
*/
globs?: string | string[];
/**
* Search for subdirectories
* @default true
*/
deep?: boolean;
/**
* Allow subdirectories as namespace prefix for components
* @default false
*/
directoryAsNamespace?: boolean;
/**
* Collapse same prefixes (camel-sensitive) of folders and components
* to prevent duplication inside namespaced component name.
*
* Works when `directoryAsNamespace: true`
* @default false
*/
collapseSamePrefixes?: boolean;
/**
* Subdirectory paths for ignoring namespace prefixes
*
* Works when `directoryAsNamespace: true`
* @default "[]"
*/
globalNamespaces?: string[];
/**
* Pass a custom function to resolve the component importing path from the component name.
*
* The component names are always in PascalCase
*/
resolvers?: (ComponentResolver | ComponentResolver[])[];
/**
* Apply custom transform over the path for importing
*/
importPathTransform?: (path: string) => string | undefined;
/**
* Transformer to apply
*
* @default 'vue3'
*/
transformer?: SupportedTransformer;
/**
* Generate TypeScript declaration for global components
*
* Accept boolean or a path related to project root
*
* @see https://github.com/vuejs/core/pull/3399
* @see https://github.com/johnsoncodehk/volar#using
* @default true
*/
dts?: boolean | string;
/**
* Do not emit warning on component overriding
*
* @default false
*/
allowOverrides?: boolean;
/**
* auto import for directives.
*
* default: `true` for Vue 3, `false` for Vue 2
*
* Babel is needed to do the transformation for Vue 2, it's disabled by default for performance concerns.
* To install Babel, run: `npm install -D @babel/parser`
* @default undefined
*/
directives?: boolean;
/**
* Only provide types of components in library (registered globally)
*/
types?: TypeImport[];
/**
* Vue version of project. It will detect automatically if not specified.
*/
version?: 2 | 2.7 | 3;
}
type ResolvedOptions = Omit<Required<Options>, 'resolvers' | 'extensions' | 'dirs' | 'globalComponentsDeclaration'> & {
resolvers: ComponentResolverObject[];
extensions: string[];
dirs: string[];
resolvedDirs: string[];
globs: string[];
dts: string | false;
root: string;
};
type ComponentsImportMap = Record<string, string[] | undefined>;
interface TypeImport {
from: string;
names: string[];
}
export type { ComponentInfo, ComponentResolveResult, ComponentResolver, ComponentResolverFunction, ComponentResolverObject, ComponentsImportMap, ImportInfo, ImportInfoLegacy, Matcher, Options, PublicPluginAPI, ResolvedOptions, SideEffectsInfo, SupportedTransformer, Transformer, TypeImport };
+1
View File
@@ -0,0 +1 @@
import "./chunk-6F4PWJZI.js";
+12
View File
@@ -0,0 +1,12 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkUDMRZUV6cjs = require('./chunk-UDMRZUV6.cjs');
require('./chunk-MU27IQTB.cjs');
require('./chunk-OBGZSXTJ.cjs');
require('./chunk-ZBPRDZS4.cjs');
// src/vite.ts
var vite_default = _chunkUDMRZUV6cjs.unplugin_default.vite;
exports.default = vite_default;
+11
View File
@@ -0,0 +1,11 @@
import { Plugin } from 'vite';
import { Options, PublicPluginAPI } from './types.cjs';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options?: Options | undefined) => Plugin & {
api: PublicPluginAPI;
};
export { _default as default };
+11
View File
@@ -0,0 +1,11 @@
import { Plugin } from 'vite';
import { Options, PublicPluginAPI } from './types.js';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options?: Options | undefined) => Plugin & {
api: PublicPluginAPI;
};
export { _default as default };
+12
View File
@@ -0,0 +1,12 @@
import {
unplugin_default
} from "./chunk-5PFDJXKB.js";
import "./chunk-X53Y3GEO.js";
import "./chunk-3RG5ZIWI.js";
import "./chunk-6F4PWJZI.js";
// src/vite.ts
var vite_default = unplugin_default.vite;
export {
vite_default as default
};
+12
View File
@@ -0,0 +1,12 @@
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
var _chunkUDMRZUV6cjs = require('./chunk-UDMRZUV6.cjs');
require('./chunk-MU27IQTB.cjs');
require('./chunk-OBGZSXTJ.cjs');
require('./chunk-ZBPRDZS4.cjs');
// src/webpack.ts
var webpack_default = _chunkUDMRZUV6cjs.unplugin_default.webpack;
exports.default = webpack_default;
@@ -0,0 +1,9 @@
import * as webpack from 'webpack';
import { Options } from './types.cjs';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options: Options) => webpack.WebpackPluginInstance;
export { _default as default };
+9
View File
@@ -0,0 +1,9 @@
import * as webpack from 'webpack';
import { Options } from './types.js';
import '@antfu/utils';
import '@rollup/pluginutils';
import 'unplugin';
declare const _default: (options: Options) => webpack.WebpackPluginInstance;
export { _default as default };
+12
View File
@@ -0,0 +1,12 @@
import {
unplugin_default
} from "./chunk-5PFDJXKB.js";
import "./chunk-X53Y3GEO.js";
import "./chunk-3RG5ZIWI.js";
import "./chunk-6F4PWJZI.js";
// src/webpack.ts
var webpack_default = unplugin_default.webpack;
export {
webpack_default as default
};