diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 1d2a969b9b..217f82149e 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -29,8 +29,8 @@ jobs: - name: Install dependencies run: pnpm i --frozen-lockfile - - name: Fetch Crowdin token for pulling languages - run: pnpm docs:crowdin + - name: Init Crowdin token + run: pnpm run docs:crowdin-credentials env: CROWDIN_TOKEN: ${{secrets.CROWDIN_TOKEN}} diff --git a/.github/workflows/staging-preview.yml b/.github/workflows/staging-preview.yml index 678815398f..e64c0f2949 100644 --- a/.github/workflows/staging-preview.yml +++ b/.github/workflows/staging-preview.yml @@ -31,7 +31,7 @@ jobs: run: pnpm build - name: Init Crowdin token - run: pnpm docs:crowdin + run: pnpm run docs:crowdin-credentials env: CROWDIN_TOKEN: ${{secrets.CROWDIN_TOKEN}} diff --git a/build/info.ts b/build/build-info.ts similarity index 84% rename from build/info.ts rename to build/build-info.ts index bfe53503cb..349bd8e4be 100644 --- a/build/info.ts +++ b/build/build-info.ts @@ -1,5 +1,6 @@ import path from 'path' import { epOutput } from './utils/paths' +import { EP_PKG } from './utils/constants' import type { ModuleFormat } from 'rollup' export const modules = ['esm', 'cjs'] as const @@ -31,7 +32,7 @@ export const buildConfig: Record = { path: path.resolve(epOutput, 'es'), }, bundle: { - path: 'element-plus/es', + path: `${EP_PKG}/es`, }, }, cjs: { @@ -43,9 +44,13 @@ export const buildConfig: Record = { path: path.resolve(epOutput, 'lib'), }, bundle: { - path: 'element-plus/lib', + path: `${EP_PKG}/lib`, }, }, } +export const buildConfigEntries = Object.entries( + buildConfig +) as BuildConfigEntries + export type BuildConfig = typeof buildConfig export type BuildConfigEntries = [Module, BuildInfo][] diff --git a/build/component.ts b/build/component.ts deleted file mode 100644 index cd7241c883..0000000000 --- a/build/component.ts +++ /dev/null @@ -1,122 +0,0 @@ -import fs from 'fs' -import path from 'path' -import { series, parallel } from 'gulp' -import { rollup } from 'rollup' -import vue from 'rollup-plugin-vue' -import css from 'rollup-plugin-css-only' -import { nodeResolve } from '@rollup/plugin-node-resolve' -import commonjs from '@rollup/plugin-commonjs' -import esbuild from 'rollup-plugin-esbuild' -import { sync as globSync } from 'fast-glob' -import filesize from 'rollup-plugin-filesize' - -import { compRoot, buildOutput } from './utils/paths' -import { - generateExternal, - rollupPathRewriter, - writeBundles, -} from './utils/rollup' -import { run } from './utils/process' -import { withTaskName } from './utils/gulp' - -import { genComponentTypes } from './component-types' -import { buildConfig } from './info' -import reporter from './size-reporter' - -import type { OutputOptions } from 'rollup' -import type { Module, BuildConfigEntries } from './info' - -const plugins = [ - css(), - vue({ - target: 'browser', - // css: false, - }), - nodeResolve(), - commonjs(), - esbuild(), -] - -async function getComponents() { - const files = globSync('*', { - cwd: compRoot, - onlyDirectories: true, - }) - return files.map((file) => ({ - path: path.resolve(compRoot, file), - name: file, - })) -} - -export async function buildEachComponent() { - const componentPaths = await getComponents() - const external = await generateExternal({ full: false }) - const pathRewriter = await rollupPathRewriter() - - const builds = componentPaths.map( - async ({ path: p, name: componentName }) => { - const entry = path.resolve(p, 'index.ts') - if (!fs.existsSync(entry)) return - - const rollupConfig = { - input: entry, - plugins, - external, - } - const opts = (Object.entries(buildConfig) as BuildConfigEntries).map( - ([module, config]): OutputOptions => ({ - format: config.format, - file: path.resolve( - config.output.path, - 'components', - componentName, - 'index.js' - ), - exports: module === 'cjs' ? 'named' : undefined, - paths: pathRewriter(module), - plugins: [filesize({ reporter })], - }) - ) - - const bundle = await rollup(rollupConfig) - await writeBundles(bundle, opts) - } - ) - await Promise.all(builds) -} - -export async function buildComponentEntry() { - const entry = path.resolve(compRoot, 'index.ts') - const config = { - input: entry, - plugins, - external: () => true, - } - const opts = Object.values(buildConfig).map( - (config): OutputOptions => ({ - format: config.format, - file: path.resolve(config.output.path, 'components/index.js'), - plugins: [filesize({ reporter })], - }) - ) - - const bundle = await rollup(config) - await writeBundles(bundle, opts) -} - -function copyTypes() { - const src = `${buildOutput}/types/components/` - const copy = (module: Module) => - withTaskName(`copyTypes:${module}`, () => - run(`rsync -a ${src} ${buildConfig[module].output.path}/components/`) - ) - - return parallel(copy('esm'), copy('cjs')) -} - -export const buildComponent = series( - parallel(genComponentTypes, buildEachComponent, buildComponentEntry), - copyTypes() -) - -export { genComponentTypes } diff --git a/build/entry-types.ts b/build/entry-types.ts deleted file mode 100644 index 27dcd3f5e3..0000000000 --- a/build/entry-types.ts +++ /dev/null @@ -1,82 +0,0 @@ -import path from 'path' -import fs from 'fs/promises' -import { bold } from 'chalk' -import glob from 'fast-glob' -import { Project, ScriptTarget, ModuleKind } from 'ts-morph' -import { parallel } from 'gulp' -import { epRoot, buildOutput, projRoot } from './utils/paths' -import { yellow, green } from './utils/log' -import { buildConfig } from './info' -import { withTaskName } from './utils/gulp' -import { run } from './utils/process' -import type { Module } from './info' - -import type { SourceFile } from 'ts-morph' - -const TSCONFIG_PATH = path.resolve(projRoot, 'tsconfig.json') - -export const genEntryTypes = async () => { - const files = await glob('*.ts', { - cwd: epRoot, - absolute: true, - onlyFiles: true, - }) - const project = new Project({ - compilerOptions: { - module: ModuleKind.ESNext, - allowJs: true, - emitDeclarationOnly: true, - noEmitOnError: false, - outDir: path.resolve(buildOutput, 'entry/types'), - target: ScriptTarget.ESNext, - rootDir: epRoot, - strict: false, - }, - skipFileDependencyResolution: true, - tsConfigFilePath: TSCONFIG_PATH, - skipAddingFilesFromTsConfig: true, - }) - const sourceFiles: SourceFile[] = [] - files.map((f) => { - const sourceFile = project.addSourceFileAtPath(f) - sourceFiles.push(sourceFile) - }) - project.addSourceFilesAtPaths(path.resolve(projRoot, 'typings', '*.d.ts')) - - const diagnostics = project.getPreEmitDiagnostics() - - console.log(project.formatDiagnosticsWithColorAndContext(diagnostics)) - - await project.emit({ - emitOnlyDtsFiles: true, - }) - - const tasks = sourceFiles.map(async (sourceFile) => { - yellow(`Emitting file: ${bold(sourceFile.getFilePath())}`) - - const emitOutput = sourceFile.getEmitOutput() - for (const outputFile of emitOutput.getOutputFiles()) { - const filepath = outputFile.getFilePath() - - await fs.mkdir(path.dirname(filepath), { recursive: true }) - await fs.writeFile( - filepath, - outputFile.getText().replaceAll('@element-plus', '.'), - 'utf8' - ) - green(`Definition for file: ${bold(sourceFile.getBaseName())} generated`) - } - }) - - await Promise.all(tasks) -} - -export const copyEntryTypes = (() => { - const src = path.resolve(buildOutput, 'entry/types') - const copy = (module: Module) => - withTaskName(`copyEntryTypes:${module}`, () => - run(`rsync -a ${src}/ ${buildConfig[module].output.path}/`) - ) - - return parallel(copy('esm'), copy('cjs')) -})() diff --git a/build/full-bundle.ts b/build/full-bundle.ts index e54cc6e8d0..b2f636aeb6 100644 --- a/build/full-bundle.ts +++ b/build/full-bundle.ts @@ -1,64 +1,44 @@ import path from 'path' -import fs from 'fs' import { nodeResolve } from '@rollup/plugin-node-resolve' import { rollup } from 'rollup' import commonjs from '@rollup/plugin-commonjs' import vue from 'rollup-plugin-vue' import esbuild from 'rollup-plugin-esbuild' import replace from '@rollup/plugin-replace' +import filesize from 'rollup-plugin-filesize' import { parallel } from 'gulp' -import { genEntryTypes } from './entry-types' -import { RollupResolveEntryPlugin } from './rollup-plugin-entry' +import { version } from '../packages/element-plus/version' +import { ElementPlusAlias } from './plugins/element-plus-alias' import { epRoot, epOutput } from './utils/paths' -import { yellow, green } from './utils/log' -import { - generateExternal, - rollupPathRewriter, - writeBundles, -} from './utils/rollup' -import { buildConfig } from './info' -import { run } from './utils/process' +import { generateExternal, writeBundles } from './utils/rollup' + import { withTaskName } from './utils/gulp' -import type { BuildConfigEntries } from './info' - -import type { RollupOptions, OutputOptions, InputOptions } from 'rollup' - -const getConfig = async ( - opt: { - minify?: boolean - sourceMap?: boolean - plugins?: InputOptions['plugins'] - } = {} -): Promise => ({ - input: path.resolve(epRoot, 'index.ts'), - plugins: [ - nodeResolve(), - vue({ - target: 'browser', - // css: false, - exposeFilename: false, - }), - commonjs(), - esbuild({ - minify: opt.minify, - sourceMap: opt.sourceMap, - }), - replace({ - 'process.env.NODE_ENV': JSON.stringify('production'), - }), - ...(opt.plugins ?? []), - ], - external: await generateExternal({ full: true }), -}) export const buildFull = (minify: boolean) => async () => { - const bundle = await rollup( - await getConfig({ - plugins: [RollupResolveEntryPlugin()], - minify, - sourceMap: minify, - }) - ) + const bundle = await rollup({ + input: path.resolve(epRoot, 'index.ts'), + plugins: [ + await ElementPlusAlias(), + nodeResolve({ + extensions: ['.mjs', '.js', '.json', '.ts'], + }), + vue({ + target: 'browser', + exposeFilename: false, + }), + commonjs(), + esbuild({ minify, sourceMap: minify }), + replace({ + 'process.env.NODE_ENV': JSON.stringify('production'), + + // options + preventAssignment: true, + }), + filesize(), + ], + external: await generateExternal({ full: true }), + }) + const banner = `/*! Element Plus v${version} */\n` await writeBundles(bundle, [ { format: 'umd', @@ -69,6 +49,7 @@ export const buildFull = (minify: boolean) => async () => { vue: 'Vue', }, sourcemap: minify, + banner, }, { format: 'esm', @@ -77,51 +58,12 @@ export const buildFull = (minify: boolean) => async () => { `dist/index.full${minify ? '.min' : ''}.mjs` ), sourcemap: minify, + banner, }, ]) } -export const buildEntry = async () => { - const entryFiles = await fs.promises.readdir(epRoot, { - withFileTypes: true, - }) - - const entryPoints = entryFiles - .filter((f) => f.isFile()) - .filter((f) => !['package.json', 'README.md'].includes(f.name)) - .map((f) => path.resolve(epRoot, f.name)) - - const bundle = await rollup({ - ...(await getConfig()), - input: entryPoints, - external: () => true, - }) - - yellow('Generating entries') - const rewriter = await rollupPathRewriter() - writeBundles( - bundle, - (Object.entries(buildConfig) as BuildConfigEntries).map( - ([module, config]): OutputOptions => ({ - format: config.format, - dir: config.output.path, - exports: config.format === 'cjs' ? 'named' : undefined, - paths: rewriter(module), - }) - ) - ) - green('entries generated') -} - -export const copyFullStyle = () => - Promise.all([ - run(`cp ${epOutput}/theme-chalk/index.css ${epOutput}/dist/index.css`), - run(`cp -R ${epOutput}/theme-chalk/fonts ${epOutput}/dist/fonts`), - ]) - export const buildFullBundle = parallel( withTaskName('buildFullMinified', buildFull(true)), - withTaskName('buildFull', buildFull(false)), - buildEntry, - genEntryTypes + withTaskName('buildFull', buildFull(false)) ) diff --git a/build/gulpfile.ts b/build/gulpfile.ts index 0853b2991d..67732e41dd 100644 --- a/build/gulpfile.ts +++ b/build/gulpfile.ts @@ -1,54 +1,66 @@ import path from 'path' import { series, parallel } from 'gulp' -import { copyStyle } from './style' -import { copyEntryTypes } from './entry-types' import { run } from './utils/process' import { withTaskName } from './utils/gulp' -import { epOutput, epPackage, projRoot } from './utils/paths' -import { copyFullStyle } from './full-bundle' +import { buildOutput, epOutput, epPackage, projRoot } from './utils/paths' +import { buildConfig } from './build-info' +import type { TaskFunction } from 'gulp' +import type { Module } from './build-info' const runTask = (name: string) => withTaskName(name, () => run(`pnpm run build ${name}`)) -export const copySourceCode = async () => { - await run(`cp -R packages ${epOutput}`) - await run(`cp ${epPackage} ${epOutput}/package.json`) +export const copyFiles = () => { + const copyTypings = async () => { + const src = path.resolve(projRoot, 'typings', 'global.d.ts') + await run(`cp ${src} ${epOutput}`) + } + + return Promise.all([ + run(`cp ${epPackage} ${path.join(epOutput, 'package.json')}`), + run(`cp README.md ${epOutput}`), + copyTypings(), + ]) } -export const copyREADME = async () => { - await run(`cp README.md ${epOutput}`) +export const copyTypesDefinitions: TaskFunction = (done) => { + const src = `${buildOutput}/types/` + const copy = (module: Module) => + withTaskName(`copyTypes:${module}`, () => + run(`rsync -a ${src} ${buildConfig[module].output.path}/`) + ) + + return parallel(copy('esm'), copy('cjs'))(done) } -export const copyDefinitions = async () => { - const files = [path.resolve(projRoot, 'typings', 'global.d.ts')] - await run(`cp ${files.join(' ')} ${epOutput}`) +export const copyFullStyle = async () => { + await run(`mkdir -p ${epOutput}/dist/fonts`) + await Promise.all([ + run(`cp ${epOutput}/theme-chalk/index.css ${epOutput}/dist/index.css`), + run(`cp -R ${epOutput}/theme-chalk/fonts ${epOutput}/dist`), + ]) } export default series( withTaskName('clean', () => run('pnpm run clean')), parallel( - runTask('buildComponent'), - runTask('buildStyle'), + runTask('buildModules'), runTask('buildFullBundle'), + runTask('generateTypesDefinitions'), runTask('buildHelper'), - withTaskName('buildEachPackages', () => - run('pnpm run --filter ./packages --parallel --stream build') + series( + withTaskName('buildThemeChalk', () => + run('pnpm run -C packages/theme-chalk build') + ), + copyFullStyle ) ), - parallel( - copyStyle(), - copyFullStyle, - copyEntryTypes, - copySourceCode, - copyREADME, - copyDefinitions - ) + parallel(copyTypesDefinitions, copyFiles) ) -export * from './component' -export * from './style' +export * from './types-definitions' +export * from './modules' export * from './full-bundle' -export * from './entry-types' export * from './helper' diff --git a/build/modules.ts b/build/modules.ts new file mode 100644 index 0000000000..e9c2430039 --- /dev/null +++ b/build/modules.ts @@ -0,0 +1,57 @@ +import { rollup } from 'rollup' +import vue from 'rollup-plugin-vue' +import css from 'rollup-plugin-css-only' +import { nodeResolve } from '@rollup/plugin-node-resolve' +import commonjs from '@rollup/plugin-commonjs' +import esbuild from 'rollup-plugin-esbuild' +import filesize from 'rollup-plugin-filesize' +import glob from 'fast-glob' +import { epRoot, pkgRoot } from './utils/paths' +import { ElementPlusAlias } from './plugins/element-plus-alias' +import { generateExternal, writeBundles } from './utils/rollup' +import { excludeFiles } from './utils/pkg' +import { reporter } from './plugins/size-reporter' +import { buildConfigEntries } from './build-info' +import type { OutputOptions } from 'rollup' + +export const buildModules = async () => { + const input = excludeFiles( + await glob('**/*.{js,ts,vue}', { + cwd: pkgRoot, + absolute: true, + onlyFiles: true, + }) + ) + const bundle = await rollup({ + input, + plugins: [ + await ElementPlusAlias(), + css(), + vue({ target: 'browser' }), + nodeResolve({ + extensions: ['.mjs', '.js', '.json', '.ts'], + }), + commonjs(), + esbuild({ + sourceMap: true, + }), + filesize({ reporter }), + ], + external: await generateExternal({ full: false }), + treeshake: false, + }) + await writeBundles( + bundle, + buildConfigEntries.map(([module, config]): OutputOptions => { + return { + format: config.format, + dir: config.output.path, + exports: module === 'cjs' ? 'named' : undefined, + preserveModules: true, + preserveModulesRoot: epRoot, + sourcemap: true, + entryFileNames: `[name].${config.ext}`, + } + }) + ) +} diff --git a/build/packages.ts b/build/packages.ts deleted file mode 100644 index 5725e0be9f..0000000000 --- a/build/packages.ts +++ /dev/null @@ -1,54 +0,0 @@ -import path from 'path' -import ts from 'gulp-typescript' -import { src, dest, series, parallel } from 'gulp' -import { withTaskName, gulpPathRewriter } from './utils/gulp' -import { buildConfig } from './info' -import { epOutput, projRoot } from './utils/paths' -import { getPackageManifest } from './utils/pkg' -import { EP_PREFIX } from './constants' -import type { BuildConfigEntries } from './info' - -export const buildPackage = (pkgPath: string) => { - const manifest = getPackageManifest(path.resolve(pkgPath, 'package.json')) - const pkgName = manifest.name!.replace(`${EP_PREFIX}/`, '') - - const tasks = (Object.entries(buildConfig) as BuildConfigEntries).map( - ([module, config]) => { - const output = path.resolve(pkgPath, 'dist', config.output.name) - - const build = () => { - const tsConfig = path.resolve(projRoot, 'tsconfig.json') - const inputs = [ - '**/*.ts', - '!node_modules', - '!gulpfile.ts', - '!__test?(s)__/*', - '!test?(s)/*', - path.resolve(projRoot, 'typings', '*.d.ts'), - ] - return withTaskName(`build:${pkgName}:${module}`, () => - src(inputs) - .pipe( - ts.createProject(tsConfig, { - module: config.module, - strict: false, - })() - ) - .pipe(gulpPathRewriter(module)) - .pipe(dest(output)) - ) - } - - const copy = () => - withTaskName(`copy:${pkgName}:${module}`, () => - src(`${output}/**`).pipe( - dest(path.resolve(epOutput, config.output.name, pkgName)) - ) - ) - - return series(build(), copy()) - } - ) - - return parallel(...tasks) -} diff --git a/build/plugins/element-plus-alias.ts b/build/plugins/element-plus-alias.ts new file mode 100644 index 0000000000..40140f49aa --- /dev/null +++ b/build/plugins/element-plus-alias.ts @@ -0,0 +1,29 @@ +import { EP_PKG, EP_PREFIX } from '../utils/constants' +import { getDistPackages } from '../utils/pkg' +import type { Plugin } from 'rollup' + +export async function ElementPlusAlias(): Promise { + const pkgs = await getDistPackages() + + return { + name: 'element-plus-alias-plugin', + resolveId(id, importer, options) { + if (!id.startsWith(EP_PREFIX)) return + + const THEME_CHALK = `${EP_PREFIX}/theme-chalk` + if (id.startsWith(THEME_CHALK)) { + return { + id: id.replaceAll(THEME_CHALK, `${EP_PKG}/theme-chalk`), + external: 'absolute', + } + } + + let updatedId = id + for (const pkg of pkgs) { + if (id.startsWith(pkg.name)) + updatedId = updatedId.replace(pkg.name, pkg.dir) + } + return this.resolve(id, importer, { skipSelf: true, ...options }) + }, + } +} diff --git a/build/plugins/size-reporter.ts b/build/plugins/size-reporter.ts new file mode 100644 index 0000000000..3da6903d82 --- /dev/null +++ b/build/plugins/size-reporter.ts @@ -0,0 +1,9 @@ +import { cyan, bold, yellow, green } from 'chalk' + +import type { FileSizeReporter } from 'rollup-plugin-filesize' + +export const reporter: FileSizeReporter = (opt, outputOptions, info) => { + return `${cyan(bold(info.fileName))}: bundle size ${yellow( + info.bundleSize + )} -> minified ${green(info.minSize)}` +} diff --git a/build/rollup-plugin-entry.ts b/build/rollup-plugin-entry.ts deleted file mode 100644 index 5cfdf626a7..0000000000 --- a/build/rollup-plugin-entry.ts +++ /dev/null @@ -1,23 +0,0 @@ -import path from 'path' -import type { Plugin } from 'rollup' - -export function RollupResolveEntryPlugin(): Plugin { - return { - name: 'element-plus-entry-plugin', - transform(code, id) { - if (id.includes('packages')) { - return { - code: code.replace( - /@element-plus\/(components|directives|utils|hooks|tokens|locale)/g, - `${path.relative( - path.dirname(id), - path.resolve(__dirname, '../packages') - )}/$1` - ), - map: null, - } - } - return { code, map: null } - }, - } -} diff --git a/build/size-reporter.ts b/build/size-reporter.ts deleted file mode 100644 index b2d6f9babd..0000000000 --- a/build/size-reporter.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { cyan, bold, yellow, green } from 'chalk' - -import type { FileSizeReporter } from 'rollup-plugin-filesize' - -const reporter: FileSizeReporter = (opt, outputOptions, info) => { - const values = [ - info.fileName ? [`${outputOptions.file?.split('packages/').pop()}`] : [], - - [`${info.bundleSize}`], - ...(info.minSize ? [`${info.minSize}`] : []), - ] - - return `${cyan(bold(values[0]))}: bundle size ${yellow( - values[1] - )} -> minified ${green(values[2])}` -} - -export default reporter diff --git a/build/style.ts b/build/style.ts deleted file mode 100644 index 8c2c3daead..0000000000 --- a/build/style.ts +++ /dev/null @@ -1,44 +0,0 @@ -import path from 'path' -import { parallel, dest, src } from 'gulp' -import ts from 'gulp-typescript' -import { buildOutput, compRoot } from './utils/paths' -import { buildConfig } from './info' -import { withTaskName, gulpPathRewriter } from './utils/gulp' -import { run } from './utils/process' - -import type { Module } from './info' - -const inputs = path.resolve(compRoot, '**/style/*.ts') -const output = path.resolve(buildOutput, 'styles') - -const tsProject = (module: Module) => - ts.createProject('tsconfig.json', { - declaration: true, - target: 'ESNext', - skipLibCheck: true, - module: buildConfig[module].module, - })() - -const build = (module: Module) => - withTaskName(`buildStyle:${module}`, () => - src(inputs) - .pipe(gulpPathRewriter(module)) - .pipe(tsProject(module)) - .pipe(dest(path.resolve(output, buildConfig[module].output.name))) - ) - -export const buildStyle = parallel(build('esm'), build('cjs')) - -export const copyStyle = () => { - const copy = (module: Module) => { - const config = buildConfig[module] - const src = path.resolve(buildOutput, 'styles', config.output.name) - const dst = path.resolve(config.output.path, 'components') - - return withTaskName(`copyStyle:${module}`, () => - run(`rsync -a ${src}/ ${dst}/`) - ) - } - - return parallel(copy('esm'), copy('cjs')) -} diff --git a/build/component-types.ts b/build/types-definitions.ts similarity index 82% rename from build/component-types.ts rename to build/types-definitions.ts index e9853b4ef9..fb5b08ad04 100644 --- a/build/component-types.ts +++ b/build/types-definitions.ts @@ -6,9 +6,10 @@ import glob from 'fast-glob' import { bold } from 'chalk' import { green, red, yellow } from './utils/log' -import { buildOutput, compRoot, projRoot } from './utils/paths' +import { buildOutput, pkgRoot, projRoot } from './utils/paths' -import { pathRewriter } from './utils/pkg' +import { excludeFiles, pathRewriter } from './utils/pkg' +import { run } from './utils/process' import type { SourceFile } from 'ts-morph' const TSCONFIG_PATH = path.resolve(projRoot, 'tsconfig.json') @@ -17,7 +18,7 @@ const outDir = path.resolve(buildOutput, 'types') /** * fork = require( https://github.com/egoist/vue-dts-gen/blob/main/src/index.ts */ -export const genComponentTypes = async () => { +export const generateTypesDefinitions = async () => { const project = new Project({ compilerOptions: { allowJs: true, @@ -35,27 +36,12 @@ export const genComponentTypes = async () => { skipAddingFilesFromTsConfig: true, }) - const excludedFiles = [ - /\/demo\/\w+\.vue$/, - 'mock', - 'package.json', - 'spec', - 'test', - 'css', - '.DS_Store', - 'node_modules', - ] - const filePaths = ( - await glob('**/*', { - cwd: compRoot, - onlyFiles: true, + const filePaths = excludeFiles( + await glob('**/*.{js,ts,vue}', { + cwd: pkgRoot, absolute: true, + onlyFiles: true, }) - ).filter( - (path) => - !excludedFiles.some((f) => - f instanceof RegExp ? f.test(path) : path.includes(f) - ) ) const sourceFiles: SourceFile[] = [] @@ -93,7 +79,6 @@ export const genComponentTypes = async () => { ) const diagnostics = project.getPreEmitDiagnostics() - console.log(project.formatDiagnosticsWithColorAndContext(diagnostics)) await project.emit({ @@ -101,7 +86,7 @@ export const genComponentTypes = async () => { }) const tasks = sourceFiles.map(async (sourceFile) => { - const relativePath = path.relative(compRoot, sourceFile.getFilePath()) + const relativePath = path.relative(pkgRoot, sourceFile.getFilePath()) yellow(`Generating definition for file: ${bold(relativePath)}`) const emitOutput = sourceFile.getEmitOutput() @@ -119,14 +104,22 @@ export const genComponentTypes = async () => { await fs.writeFile( filepath, - pathRewriter('esm', true)(outputFile.getText()), + pathRewriter('esm')(outputFile.getText()), 'utf8' ) green(`Definition for file: ${bold(relativePath)} generated`) }) + await Promise.all(tasks) }) await Promise.all(tasks) + + const epFiles = await glob('**/*', { + cwd: path.resolve(outDir, 'element-plus'), + absolute: true, + }) + await run(`mv ${epFiles.join(' ')} ${outDir}`) + await run(`rmdir ${path.resolve(outDir, 'element-plus')}`) } diff --git a/build/constants.ts b/build/utils/constants.ts similarity index 52% rename from build/constants.ts rename to build/utils/constants.ts index 32cdbde1d5..730c8a84b4 100644 --- a/build/constants.ts +++ b/build/utils/constants.ts @@ -1 +1,2 @@ export const EP_PREFIX = '@element-plus' +export const EP_PKG = 'element-plus' diff --git a/build/utils/gulp.ts b/build/utils/gulp.ts index 6916b7fe63..300d8d080c 100644 --- a/build/utils/gulp.ts +++ b/build/utils/gulp.ts @@ -1,17 +1,4 @@ -import through2 from 'through2' -import { pathRewriter } from './pkg' import type { TaskFunction } from 'gulp' -import type { Module } from '../info' export const withTaskName = (name: string, fn: T) => Object.assign(fn, { displayName: name }) - -export const gulpPathRewriter = (module: Module) => { - const rewriter = pathRewriter(module, true) - - return through2.obj((file, _, cb) => { - const contents: string = file.contents.toString() - file.contents = Buffer.from(rewriter(contents)) - cb(null, file) - }) -} diff --git a/build/utils/log.ts b/build/utils/log.ts index 3cebc83756..c2635002fd 100644 --- a/build/utils/log.ts +++ b/build/utils/log.ts @@ -4,6 +4,7 @@ import chalk from 'chalk' export function cyan(str: string) { console.log(chalk.cyan(str)) } + export function yellow(str: string) { console.log(chalk.yellow(str)) } diff --git a/build/utils/pkg.ts b/build/utils/pkg.ts index 9045a2d80c..48f19c6ae7 100644 --- a/build/utils/pkg.ts +++ b/build/utils/pkg.ts @@ -1,24 +1,18 @@ import findWorkspacePackages from '@pnpm/find-workspace-packages' -import { buildConfig } from '../info' -import { EP_PREFIX } from '../constants' -import { projRoot } from './paths' -import type { Module } from '../info' +import { buildConfig } from '../build-info' +import { EP_PREFIX } from './constants' +import { pkgRoot, projRoot } from './paths' +import type { Module } from '../build-info' import type { ProjectManifest } from '@pnpm/types' export const getWorkspacePackages = () => findWorkspacePackages(projRoot) -export const getWorkspaceNames = async () => { +export const getWorkspaceNames = async (dir = projRoot) => { const pkgs = await findWorkspacePackages(projRoot) return pkgs + .filter((pkg) => pkg.dir.startsWith(dir)) .map((pkg) => pkg.manifest.name) .filter((name): name is string => !!name) } -export const getWorkspacePackageManifest = async ( - name: string -): Promise => { - const packages = await getWorkspacePackages() - const { manifest } = packages.find((pkg) => pkg.manifest.name === name)! - return manifest -} export const getPackageManifest = (pkgPath: string) => { // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -31,13 +25,35 @@ export const getPackageDependencies = (pkgPath: string): string[] => { return Object.keys(dependencies ?? {}) } -export const pathRewriter = (module: Module, replaceAll: boolean) => { - const replaceName = replaceAll ? 'replaceAll' : 'replace' +export const pathRewriter = (module: Module) => { const config = buildConfig[module] return (id: string) => { - id = id[replaceName](`${EP_PREFIX}/theme-chalk`, 'element-plus/theme-chalk') - id = id[replaceName](`${EP_PREFIX}/`, `${config.bundle.path}/`) + id = id.replaceAll(`${EP_PREFIX}/theme-chalk`, 'element-plus/theme-chalk') + // TODO: handle @element-plus/icons + id = id.replaceAll(`${EP_PREFIX}/`, `${config.bundle.path}/`) return id } } + +export const excludeFiles = (files: string[]) => { + const excludes = ['node_modules', 'test', 'mock', 'gulpfile', 'dist'] + return files.filter( + (path) => !excludes.some((exclude) => path.includes(exclude)) + ) +} + +/** + * get package list (theme-chalk excluded) + */ +export const getDistPackages = async () => + (await getWorkspacePackages()) + .map((pkg) => ({ name: pkg.manifest.name, dir: pkg.dir })) + .filter( + (pkg): pkg is { name: string; dir: string } => + !!pkg.name && + !!pkg.dir && + pkg.name.startsWith(EP_PREFIX) && + pkg.dir.startsWith(pkgRoot) && + pkg.name !== `${EP_PREFIX}/theme-chalk` + ) diff --git a/build/utils/process.ts b/build/utils/process.ts index 70ba9db3a6..aea9b1727e 100644 --- a/build/utils/process.ts +++ b/build/utils/process.ts @@ -1,13 +1,11 @@ import { spawn } from 'child_process' -import { green } from './log' +import { green } from 'chalk' import { projRoot } from './paths' export const run = async (command: string, cwd: string = projRoot) => new Promise((resolve, reject) => { - const args = command.split(' ') - const cmd = args.shift()! - - green(`run: ${cmd} ${args.join(' ')}`) + const [cmd, ...args] = command.split(' ') + console.log(`run: ${green(`${cmd} ${args.join(' ')}`)}`) const app = spawn(cmd, args, { cwd, stdio: 'inherit', diff --git a/build/utils/rollup.ts b/build/utils/rollup.ts index e78c62421b..7983fa6cfe 100644 --- a/build/utils/rollup.ts +++ b/build/utils/rollup.ts @@ -1,26 +1,15 @@ -import { EP_PREFIX } from '../constants' import { epPackage } from './paths' -import { - getWorkspacePackages, - getPackageDependencies, - getWorkspaceNames, - pathRewriter, -} from './pkg' -import type { Module } from '../info' +import { getPackageDependencies } from './pkg' import type { OutputOptions, RollupBuild } from 'rollup' export const generateExternal = async (options: { full: boolean }) => { - const monoPackages = (await getWorkspacePackages()) - .map((pkg) => pkg.manifest.name) - // filter root package - .filter((name): name is string => !!name) - return (id: string) => { const packages: string[] = ['vue'] if (!options.full) { - const depPackages = getPackageDependencies(epPackage) - packages.push('@vue', ...monoPackages, ...depPackages) + packages.push('element-plus/theme-chalk') + // dependencies + packages.push('@vue', ...getPackageDependencies(epPackage)) } return [...new Set(packages)].some( @@ -32,21 +21,3 @@ export const generateExternal = async (options: { full: boolean }) => { export function writeBundles(bundle: RollupBuild, options: OutputOptions[]) { return Promise.all(options.map((option) => bundle.write(option))) } - -export const rollupPathRewriter = async () => { - const workspacePkgs = (await getWorkspaceNames()).filter((pkg) => - pkg.startsWith(EP_PREFIX) - ) - - return (module: Module) => { - const rewriter = pathRewriter(module, false) - - return (id: string) => { - if (workspacePkgs.some((pkg) => id.startsWith(pkg))) { - return rewriter(id) - } else { - return '' - } - } - } -} diff --git a/build/crowdin-credentials.ts b/docs/.vitepress/build/crowdin-credentials.ts similarity index 50% rename from build/crowdin-credentials.ts rename to docs/.vitepress/build/crowdin-credentials.ts index 3885dbbc24..a8eac436f0 100644 --- a/build/crowdin-credentials.ts +++ b/docs/.vitepress/build/crowdin-credentials.ts @@ -1,22 +1,26 @@ import path from 'path' -import fs from 'fs' +import fs from 'fs/promises' import chalk from 'chalk' -import { errorAndExit } from './utils/log' +import { errorAndExit } from '../../../build/utils/log' +import { docRoot } from '../utils/paths' const credentialPlaceholder = 'API_TOKEN_PLACEHOLDER' const CREDENTIAL = process.env.CROWDIN_TOKEN +if (!CREDENTIAL) { + errorAndExit(new Error('Environment variable CROWDIN_TOKEN cannot be empty')) +} ;(async () => { console.info(chalk.cyan('Fetching Crowdin credential')) - const configPath = path.resolve(__dirname, '../docs/crowdin.yml') + const configPath = path.resolve(docRoot, 'crowdin.yml') try { - const file = await fs.promises.readFile(configPath, { + const file = await fs.readFile(configPath, { encoding: 'utf-8', }) - await fs.promises.writeFile( + await fs.writeFile( configPath, - file.replace(credentialPlaceholder, CREDENTIAL!) + file.replace(credentialPlaceholder, CREDENTIAL) ) console.info(chalk.green('Crowdin credential update successfully')) } catch (e: any) { diff --git a/docs/.vitepress/build/crowdin-generate.ts b/docs/.vitepress/build/crowdin-generate.ts index 872f164157..de36a98c71 100644 --- a/docs/.vitepress/build/crowdin-generate.ts +++ b/docs/.vitepress/build/crowdin-generate.ts @@ -3,6 +3,7 @@ import path from 'path' import chalk from 'chalk' import { docRoot } from '../utils/paths' +import { errorAndExit } from '../../../build/utils/log' // NB: this file is only for generating files that enables developers to develop the website. const componentLocaleRoot = path.resolve(docRoot, '.vitepress/crowdin') @@ -101,11 +102,10 @@ main() .then(() => { console.log(chalk.green('Locale for website development generated')) }) - .catch((e) => { - if (e.message === exists) { + .catch((err) => { + if (err.message === exists) { // do nothing } else { - console.log(chalk.red(e.message)) - throw e + errorAndExit(err) } }) diff --git a/docs/package.json b/docs/package.json index 69a4b7509c..3aee4c0111 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,7 +5,8 @@ "dev": "pnpm gen-locale && vitepress dev .", "build": "cross-env NODE_ENV=production && vitepress build .", "serve": "cross-env NODE_ENV=production && vitepress serve .", - "gen-locale": "rimraf .vitepress/i18n && sucrase-node .vitepress/build/crowdin-generate.ts" + "gen-locale": "rimraf .vitepress/i18n && sucrase-node .vitepress/build/crowdin-generate.ts", + "crowdin-credentials": "sucrase-node .vitepress/build/crowdin-credentials.ts" }, "dependencies": { "@vueuse/core": "^6.7.3", diff --git a/package.json b/package.json index 746d1bbbeb..081f34b978 100644 --- a/package.json +++ b/package.json @@ -14,19 +14,19 @@ "test": "jest", "dev": "pnpm -C play dev", "gen": "bash ./scripts/gc.sh", - "gen:version": "sucrase-node build/gen-version.ts", - "update:version": "sucrase-node build/update-version.ts", + "gen:version": "sucrase-node scripts/gen-version.ts", + "update:version": "sucrase-node scripts/update-version.ts", "clean": "pnpm run clean:lib && pnpm run clean -r --stream", "clean:lib": "rimraf dist", - "build": "gulp -f build/gulpfile.ts", + "build": "gulp --require sucrase/register/ts -f build/gulpfile.ts", "format": "prettier --write .", "lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --max-warnings 0 && pretty-quick --check --branch dev", "lint:fix": "eslint --fix . --ext .vue,.js,.ts,.jsx,.tsx && pretty-quick --branch dev", - "docs:dev": "pnpm -C docs dev", - "docs:build": "pnpm -C docs build", - "docs:serve": "pnpm -C docs serve", - "docs:gen-locale": "pnpm -C docs gen-locale", - "docs:crowdin": "sucrase-node build/crowdin-credentials.ts", + "docs:dev": "pnpm run -C docs dev", + "docs:build": "pnpm run -C docs build", + "docs:serve": "pnpm run -C docs serve", + "docs:gen-locale": "pnpm run -C docs gen-locale", + "docs:crowdin-credentials": "pnpm run -C docs crowdin-credentials", "prepare": "husky install", "postinstall": "pnpm gen:version" }, @@ -57,7 +57,7 @@ "@element-plus/tokens": "workspace:*", "@element-plus/utils": "workspace:*", "@popperjs/core": "^2.10.2", - "@vueuse/core": "~6.1.0", + "@vueuse/core": "^6.7.3", "async-validator": "^4.0.7", "dayjs": "^1.10.7", "lodash": "^4.17.21", @@ -68,11 +68,11 @@ "devDependencies": { "@commitlint/cli": "^13.2.1", "@commitlint/config-conventional": "^13.2.0", - "@pnpm/find-workspace-packages": "^3.1.19", + "@pnpm/find-workspace-packages": "^3.1.20", "@pnpm/logger": "^4.0.0", "@pnpm/types": "^7.4.0", "@rollup/plugin-commonjs": "^15.1.0", - "@rollup/plugin-node-resolve": "^9.0.0", + "@rollup/plugin-node-resolve": "^13.0.6", "@rollup/plugin-replace": "^3.0.0", "@sucrase/jest-plugin": "^2.1.1", "@types/gulp": "^4.0.9", @@ -87,7 +87,7 @@ "chalk": "^4.1.2", "components-helper": "^1.0.4", "cz-conventional-changelog": "^3.3.0", - "esbuild": "~0.13.8", + "esbuild": "~0.13.9", "eslint": "^8.0.1", "eslint-config-prettier": "^8.3.0", "eslint-define-config": "^1.1.1", @@ -118,6 +118,6 @@ "vue": "^3.2.20", "vue-jest": "5.0.0-alpha.10", "vue-router": "^4.0.12", - "vue-tsc": "^0.28.7" + "vue-tsc": "^0.28.8" } } diff --git a/packages/directives/gulpfile.ts b/packages/directives/gulpfile.ts deleted file mode 100644 index db84bd9736..0000000000 --- a/packages/directives/gulpfile.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { buildPackage } from '../../build/packages' - -export default buildPackage(__dirname) diff --git a/packages/directives/package.json b/packages/directives/package.json index 0a5774223f..cfd31ac124 100644 --- a/packages/directives/package.json +++ b/packages/directives/package.json @@ -10,9 +10,5 @@ "peerDependencies": { "vue": "^3.2.0" }, - "scripts": { - "clean": "rimraf dist", - "build": "gulp" - }, "gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd" } diff --git a/packages/element-plus/package.json b/packages/element-plus/package.json index 4b29e291ad..e7f8b42301 100644 --- a/packages/element-plus/package.json +++ b/packages/element-plus/package.json @@ -12,8 +12,17 @@ "vue" ], "license": "MIT", + "exports": { + ".": { + "require": "./lib/index.js", + "import": "./es/index.mjs" + }, + "./es": "./es/index.mjs", + "./lib": "./lib/index.js", + "./*": "./*" + }, "main": "lib/index.js", - "module": "es/index.js", + "module": "es/index.mjs", "style": "dist/index.css", "unpkg": "dist/index.full.js", "jsdelivr": "dist/index.full.js", @@ -22,7 +31,9 @@ "theme-chalk/*.css", "theme-chalk/src/*.scss", "es/components/*/style/*", - "lib/components/*/style/*" + "lib/components/*/style/*", + "lib/components/*/src/**", + "es/components/*/src/**" ], "repository": { "type": "git", @@ -37,7 +48,7 @@ "dependencies": { "@element-plus/icons": "^0.0.11", "@popperjs/core": "^2.10.2", - "@vueuse/core": "~6.1.0", + "@vueuse/core": "^6.7.3", "async-validator": "^4.0.7", "dayjs": "^1.10.7", "lodash": "^4.17.21", diff --git a/packages/hooks/gulpfile.ts b/packages/hooks/gulpfile.ts deleted file mode 100644 index db84bd9736..0000000000 --- a/packages/hooks/gulpfile.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { buildPackage } from '../../build/packages' - -export default buildPackage(__dirname) diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 179773240d..a413cc691d 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -11,9 +11,5 @@ "peerDependencies": { "vue": "^3.2.0" }, - "scripts": { - "clean": "rimraf dist", - "build": "gulp" - }, "gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd" } diff --git a/packages/hooks/use-form-item/index.ts b/packages/hooks/use-form-item/index.ts index 13429916fc..ff6c7ea820 100644 --- a/packages/hooks/use-form-item/index.ts +++ b/packages/hooks/use-form-item/index.ts @@ -4,7 +4,7 @@ import { buildProps } from '@element-plus/utils/props' import { useGlobalConfig } from '@element-plus/utils/util' import type { ExtractPropTypes } from 'vue' -import type { MaybeRef } from '@vueuse/shared' +import type { MaybeRef } from '@vueuse/core' const sizes = ['', 'large', 'medium', 'small', 'mini'] as const diff --git a/packages/locale/gulpfile.ts b/packages/locale/gulpfile.ts deleted file mode 100644 index db84bd9736..0000000000 --- a/packages/locale/gulpfile.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { buildPackage } from '../../build/packages' - -export default buildPackage(__dirname) diff --git a/packages/locale/package.json b/packages/locale/package.json index 92976cabca..4f15cd7402 100644 --- a/packages/locale/package.json +++ b/packages/locale/package.json @@ -8,9 +8,5 @@ "jsdelivr": "index.js", "types": "index.d.ts", "license": "MIT", - "scripts": { - "clean": "rimraf dist", - "build": "gulp" - }, "gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd" } diff --git a/packages/theme-chalk/package.json b/packages/theme-chalk/package.json index 71b0859865..498eaaa69a 100644 --- a/packages/theme-chalk/package.json +++ b/packages/theme-chalk/package.json @@ -8,7 +8,7 @@ "style": "index.css", "scripts": { "clean": "rimraf dist", - "build": "gulp" + "build": "gulp --require sucrase/register/ts" }, "repository": { "type": "git", diff --git a/packages/tokens/gulpfile.ts b/packages/tokens/gulpfile.ts deleted file mode 100644 index db84bd9736..0000000000 --- a/packages/tokens/gulpfile.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { buildPackage } from '../../build/packages' - -export default buildPackage(__dirname) diff --git a/packages/tokens/package.json b/packages/tokens/package.json index 89a6d55aa3..4aabb3dda7 100644 --- a/packages/tokens/package.json +++ b/packages/tokens/package.json @@ -5,10 +5,6 @@ "peerDependencies": { "vue": "^3.2.0" }, - "scripts": { - "clean": "rimraf dist", - "build": "gulp" - }, "main": "index.ts", "module": "index.ts", "types": "index.d.js", diff --git a/packages/utils/gulpfile.ts b/packages/utils/gulpfile.ts deleted file mode 100644 index db84bd9736..0000000000 --- a/packages/utils/gulpfile.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { buildPackage } from '../../build/packages' - -export default buildPackage(__dirname) diff --git a/packages/utils/package.json b/packages/utils/package.json index 9eb65b5a31..46c527d182 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -5,9 +5,5 @@ "peerDependencies": { "vue": "^3.2.0" }, - "scripts": { - "clean": "rimraf dist", - "build": "gulp" - }, "gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1e8481587..28ea5062d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,12 +15,12 @@ importers: '@element-plus/theme-chalk': workspace:* '@element-plus/tokens': workspace:* '@element-plus/utils': workspace:* - '@pnpm/find-workspace-packages': ^3.1.19 + '@pnpm/find-workspace-packages': ^3.1.20 '@pnpm/logger': ^4.0.0 '@pnpm/types': ^7.4.0 '@popperjs/core': ^2.10.2 '@rollup/plugin-commonjs': ^15.1.0 - '@rollup/plugin-node-resolve': ^9.0.0 + '@rollup/plugin-node-resolve': ^13.0.6 '@rollup/plugin-replace': ^3.0.0 '@sucrase/jest-plugin': ^2.1.1 '@types/gulp': ^4.0.9 @@ -32,13 +32,13 @@ importers: '@typescript-eslint/parser': ^5.1.0 '@vue/compiler-sfc': ^3.2.20 '@vue/test-utils': 2.0.0-rc.15 - '@vueuse/core': ~6.1.0 + '@vueuse/core': ^6.7.3 async-validator: ^4.0.7 chalk: ^4.1.2 components-helper: ^1.0.4 cz-conventional-changelog: ^3.3.0 dayjs: ^1.10.7 - esbuild: ~0.13.8 + esbuild: ~0.13.9 eslint: ^8.0.1 eslint-config-prettier: ^8.3.0 eslint-define-config: ^1.1.1 @@ -73,7 +73,7 @@ importers: vue: ^3.2.20 vue-jest: 5.0.0-alpha.10 vue-router: ^4.0.12 - vue-tsc: ^0.28.7 + vue-tsc: ^0.28.8 dependencies: '@element-plus/components': link:packages/components '@element-plus/directives': link:packages/directives @@ -85,7 +85,7 @@ importers: '@element-plus/tokens': link:packages/tokens '@element-plus/utils': link:packages/utils '@popperjs/core': 2.10.2 - '@vueuse/core': 6.1.0_vue@3.2.20 + '@vueuse/core': 6.7.3_vue@3.2.20 async-validator: 4.0.7 dayjs: 1.10.7 lodash: 4.17.21 @@ -95,11 +95,11 @@ importers: devDependencies: '@commitlint/cli': 13.2.1 '@commitlint/config-conventional': 13.2.0 - '@pnpm/find-workspace-packages': 3.1.19_@pnpm+logger@4.0.0 + '@pnpm/find-workspace-packages': 3.1.20_@pnpm+logger@4.0.0 '@pnpm/logger': 4.0.0 '@pnpm/types': 7.4.0 '@rollup/plugin-commonjs': 15.1.0_rollup@2.58.0 - '@rollup/plugin-node-resolve': 9.0.0_rollup@2.58.0 + '@rollup/plugin-node-resolve': 13.0.6_rollup@2.58.0 '@rollup/plugin-replace': 3.0.0_rollup@2.58.0 '@sucrase/jest-plugin': 2.1.1 '@types/gulp': 4.0.9 @@ -114,7 +114,7 @@ importers: chalk: 4.1.2 components-helper: 1.0.4 cz-conventional-changelog: 3.3.0 - esbuild: 0.13.8 + esbuild: 0.13.9 eslint: 8.0.1 eslint-config-prettier: 8.3.0_eslint@8.0.1 eslint-define-config: 1.1.1 @@ -133,7 +133,7 @@ importers: rimraf: 3.0.2 rollup: 2.58.0 rollup-plugin-css-only: 3.1.0_rollup@2.58.0 - rollup-plugin-esbuild: 4.6.0_esbuild@0.13.8+rollup@2.58.0 + rollup-plugin-esbuild: 4.6.0_esbuild@0.13.9+rollup@2.58.0 rollup-plugin-filesize: 9.1.1 rollup-plugin-vue: 6.0.0_@vue+compiler-sfc@3.2.20 sass: 1.43.3 @@ -145,7 +145,7 @@ importers: vue: 3.2.20 vue-jest: 5.0.0-alpha.10_0afda5a8ee2bde20d828cf7b22352ce5 vue-router: 4.0.12_vue@3.2.20 - vue-tsc: 0.28.7_typescript@4.4.4 + vue-tsc: 0.28.8_typescript@4.4.4 docs: specifiers: @@ -190,7 +190,7 @@ importers: specifiers: '@element-plus/icons': ^0.0.11 '@popperjs/core': ^2.10.2 - '@vueuse/core': ~6.1.0 + '@vueuse/core': ^6.7.3 async-validator: ^4.0.7 dayjs: ^1.10.7 lodash: ^4.17.21 @@ -200,7 +200,7 @@ importers: dependencies: '@element-plus/icons': 0.0.11 '@popperjs/core': 2.10.2 - '@vueuse/core': 6.1.0_vue@3.2.20 + '@vueuse/core': 6.7.3_vue@3.2.20 async-validator: 4.0.7 dayjs: 1.10.7 lodash: 4.17.21 @@ -250,9 +250,9 @@ importers: vite: ^2.6.10 dependencies: '@vitejs/plugin-vue': 1.9.3_vite@2.6.10 - vite: 2.6.10 + vite: 2.6.10_sass@1.43.3 devDependencies: - unplugin-vue-components: 0.16.0_vite@2.6.10 + unplugin-vue-components: 0.16.0_5526dbcc4fc39ff4d6a8525c3fd94908 packages: @@ -1304,15 +1304,15 @@ packages: load-json-file: 6.2.0 dev: true - /@pnpm/cli-utils/0.6.27_@pnpm+logger@4.0.0: - resolution: {integrity: sha512-7c4+Bcm5d59H7VbcgYwS2ewCZojlh/XEpxnNOPDsHnDjCutlQNKd+LidPbaJcBpLmrhebHCIfcK/fIHm3H3Qtg==} + /@pnpm/cli-utils/0.6.28_@pnpm+logger@4.0.0: + resolution: {integrity: sha512-hIVSsH5x+iQRLJz5tGQ0vXDb9UzMRmrdRNl+F3zAkx4toBvsvuCwRjH15KUvLRImGtfgwU1J2mr+lnvGbGlBPw==} engines: {node: '>=12.17'} peerDependencies: '@pnpm/logger': ^4.0.0 dependencies: '@pnpm/cli-meta': 2.0.0 - '@pnpm/config': 13.3.0_@pnpm+logger@4.0.0 - '@pnpm/default-reporter': 8.3.3_@pnpm+logger@4.0.0 + '@pnpm/config': 13.4.0_@pnpm+logger@4.0.0 + '@pnpm/default-reporter': 8.3.4_@pnpm+logger@4.0.0 '@pnpm/error': 2.0.0 '@pnpm/logger': 4.0.0 '@pnpm/manifest-utils': 2.1.0_@pnpm+logger@4.0.0 @@ -1322,8 +1322,8 @@ packages: load-json-file: 6.2.0 dev: true - /@pnpm/config/13.3.0_@pnpm+logger@4.0.0: - resolution: {integrity: sha512-qJAdMUMtKZNizmM41KVTNUtHmd8Y3hS39eOQo/WSNfz5ihZc+tIloh+EHTQXBrYZghatUTg1kTR1GvQQPYUH0Q==} + /@pnpm/config/13.4.0_@pnpm+logger@4.0.0: + resolution: {integrity: sha512-R4p48ulA84JBeRVbv3T0YdjWDyUzFaSO2K2dqaC8b7M1XKWYWCSnXMZeQh5eHt534NznQBjD/nAXna49cK/igA==} engines: {node: '>=12.17'} dependencies: '@pnpm/constants': 5.0.0 @@ -1357,11 +1357,11 @@ packages: '@pnpm/types': 7.4.0 dev: true - /@pnpm/default-reporter/8.3.3_@pnpm+logger@4.0.0: - resolution: {integrity: sha512-nvc/Hplwph9y3td9tXTcjQKdAvTa7EJldKUVgIN2mfsGO01ReLmwLDlmAe0tQZ3vbylX+ZJMNXduPcSwqimikg==} + /@pnpm/default-reporter/8.3.4_@pnpm+logger@4.0.0: + resolution: {integrity: sha512-c44uPNqi9tVRbgVrVf4JWgn+6lK+6J8XXf6qL1j4H/Vx62aLLEVVEQ8kBtb9Ohv6NkwE14Xe1JUGtSKo38cwIA==} engines: {node: '>=12.17'} dependencies: - '@pnpm/config': 13.3.0_@pnpm+logger@4.0.0 + '@pnpm/config': 13.4.0_@pnpm+logger@4.0.0 '@pnpm/core-loggers': 6.0.4_@pnpm+logger@4.0.0 '@pnpm/error': 2.0.0 '@pnpm/types': 7.4.0 @@ -1375,7 +1375,7 @@ packages: right-pad: 1.0.1 rxjs: 7.4.0 semver: 7.3.5 - stacktracey: 1.2.127 + stacktracey: 2.1.7 string-length: 4.0.2 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -1387,11 +1387,11 @@ packages: engines: {node: '>=12.17'} dev: true - /@pnpm/find-workspace-packages/3.1.19_@pnpm+logger@4.0.0: - resolution: {integrity: sha512-PllCHDIeEBlBPpGei5L/XYgwUaza+YhKpxpFbMPIbQWApBNF0o8pR8FxfS2ig05w+2HzJ1ewqCCPaXl5GqfRtw==} + /@pnpm/find-workspace-packages/3.1.20_@pnpm+logger@4.0.0: + resolution: {integrity: sha512-QOEO8S6axdH9Mr6iEybuHzPjnaWk+1xvZrmVdid5dD+y2R9oXnsLkYtyURh/P6pfUJ0D6WTZcSnA3Z9kzUOWyw==} engines: {node: '>=12.17'} dependencies: - '@pnpm/cli-utils': 0.6.27_@pnpm+logger@4.0.0 + '@pnpm/cli-utils': 0.6.28_@pnpm+logger@4.0.0 '@pnpm/constants': 5.0.0 '@pnpm/types': 7.4.0 find-packages: 8.0.5 @@ -1529,15 +1529,15 @@ packages: rollup: 2.58.0 dev: true - /@rollup/plugin-node-resolve/9.0.0_rollup@2.58.0: - resolution: {integrity: sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==} + /@rollup/plugin-node-resolve/13.0.6_rollup@2.58.0: + resolution: {integrity: sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==} engines: {node: '>= 10.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0 + rollup: ^2.42.0 dependencies: '@rollup/pluginutils': 3.1.0_rollup@2.58.0 '@types/resolve': 1.17.1 - builtin-modules: 3.1.0 + builtin-modules: 3.2.0 deepmerge: 4.2.2 is-module: 1.0.0 resolve: 1.20.0 @@ -1785,6 +1785,10 @@ packages: resolution: {integrity: sha512-yV1nWZPlMFpoXyoknm4S56y2nlTAuFYaJuQtYRAOU7xA/FJ9RY0Xm7QOkaYMMmr8ESdHIuUb6oQgR/0+2NqlyA==} dev: true + /@types/node/16.11.4: + resolution: {integrity: sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ==} + dev: true + /@types/normalize-package-data/2.4.0: resolution: {integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==} dev: true @@ -1800,7 +1804,7 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 14.11.10 + '@types/node': 16.11.4 dev: true /@types/sass/1.16.1: @@ -1989,18 +1993,18 @@ packages: peerDependencies: vite: ^2.5.10 dependencies: - vite: 2.6.10 + vite: 2.6.10_sass@1.43.3 dev: false - /@volar/code-gen/0.28.7: - resolution: {integrity: sha512-cprWUzpGVCPsBpTKVUhfHEYpJBsjLYe/quvtU+PLAsXS7EcxSG+jMPNXWUyB6IhBcW5hrgMhIYfuWzhOvEESxQ==} + /@volar/code-gen/0.28.8: + resolution: {integrity: sha512-zoU+qz5Txx2HNWxDp0ACxOj2/fSFvqKaj9spAuqSQbZvrf+FWN8cnuod/JCBRhHnvb4ie9Z/NLkMid6Hfxirag==} dependencies: - '@volar/shared': 0.28.7 - '@volar/source-map': 0.28.7 + '@volar/shared': 0.28.8 + '@volar/source-map': 0.28.8 dev: true - /@volar/html2pug/0.28.7: - resolution: {integrity: sha512-HdxZYKVJJv3lRJfOB1sbyAdqyowVRMbvQtCejcvqEvAjaU7PYJLd974RMKf9eSpalFXtnRwXRZKKlNz18jicsQ==} + /@volar/html2pug/0.28.8: + resolution: {integrity: sha512-Yli7lNeRky100ubeCg0f47itPzOZx1rC/3yDkbeAOnL1blyNK7hvMEquth+EwWl8W1qEnpdqFJQR2CY5cntyjw==} dependencies: domelementtype: 2.2.0 domhandler: 4.2.2 @@ -2008,29 +2012,29 @@ packages: pug: 3.0.2 dev: true - /@volar/shared/0.28.7: - resolution: {integrity: sha512-binrWo2vjrQhUSBc7f/cn3Jq/qTLz+2kc13R+htWPxEBXPHcAqOspkOzLN9J3jQ4q4TA4kK1ZiSKGdIz4e41Tg==} + /@volar/shared/0.28.8: + resolution: {integrity: sha512-jYm3HUbRjd5QPbBNvfD+W2fZxGjzY7QspRNAlbv0onL5zcFTz2kAQb/CYxp7WLxwKiLqjQ9A4G5BbBZvhzeMQw==} dependencies: upath: 2.0.1 vscode-jsonrpc: 8.0.0-next.3 vscode-uri: 3.0.2 dev: true - /@volar/source-map/0.28.7: - resolution: {integrity: sha512-cjF0Em5MXtG687eenrURqJMNE6sN/MQzUtrrCsEp+bvP7Eaje0ugdhV9IZo0Q3aufbhtyUU7MOezptvhEiP+YA==} + /@volar/source-map/0.28.8: + resolution: {integrity: sha512-+j6Mted0Dz2zD67dWqGg0pDomFWRrU/xYn36RjQd+UOgBEYV6i7aWqTNosc3W8FXbzbZoKosZfvEPVNpxbmxNg==} dependencies: - '@volar/shared': 0.28.7 + '@volar/shared': 0.28.8 dev: true - /@volar/transforms/0.28.7: - resolution: {integrity: sha512-0quLXRC8rxHb/Ptmp8qr730cE8gCGZrJuoDEQ1+XE0IKGyF+jhvqJsdjh5JL8vdBQbkV5Vpo7pSo5mwUPAarSQ==} + /@volar/transforms/0.28.8: + resolution: {integrity: sha512-1oUw0luHZlBPgq3ZmkZMhIyXAvX3G5Rzp5Zx5jnMRK40yn/rUB2S+VSw1XNbb9HvG+WAOc8uLEJfaeDYNkfxqg==} dependencies: - '@volar/shared': 0.28.7 + '@volar/shared': 0.28.8 vscode-languageserver: 8.0.0-next.3 dev: true - /@vscode/emmet-helper/2.8.1: - resolution: {integrity: sha512-4aVKk7sjtNPLKqVq5Td1EgtB+4kE/enExA4RUpYmVVKawqusRemZ+LzzzBxxnHRTOrIBermY8kXQsqjutDPyYQ==} + /@vscode/emmet-helper/2.8.2: + resolution: {integrity: sha512-A/+pkBYQq2JTow1A2flfTmEOmiF780KpdkoX7VBjQ7wujeA+CFUPd17YdeIa9aim20+J5Jp7SFujPDwVFiQucQ==} dependencies: emmet: 2.3.4 jsonc-parser: 2.3.1 @@ -3029,8 +3033,8 @@ packages: ieee754: 1.2.1 dev: true - /builtin-modules/3.1.0: - resolution: {integrity: sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==} + /builtin-modules/3.2.0: + resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} engines: {node: '>=6'} dev: true @@ -4179,6 +4183,15 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: false + optional: true + + /esbuild-android-arm64/0.13.9: + resolution: {integrity: sha512-Ty0hKldtjJVLHwUwbKR4GFPiXBo5iQ3aE1OLBar9lh3myaRkUGEb+Ypl74LEKa0+t/9lS3Ev1N5+5P2Sq6UvNQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true /esbuild-darwin-64/0.13.8: @@ -4186,6 +4199,15 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: false + optional: true + + /esbuild-darwin-64/0.13.9: + resolution: {integrity: sha512-Ay0/b98v0oYp3ApXNQ7QPbaSkCT9WjBU6h8bMB1SYrQ/PmHgwph91fb9V0pfOLKK1rYWypfrNbI0MyT2tWN+rQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true /esbuild-darwin-arm64/0.13.8: @@ -4193,6 +4215,15 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: false + optional: true + + /esbuild-darwin-arm64/0.13.9: + resolution: {integrity: sha512-nJB8chaJdWathCe6EyIiMIqfyEzbuXPyNsPlL3bYRB1zFCF8feXT874D4IHbJ/w8B6BpY3sM1Clr/I/DK8E4ow==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true /esbuild-freebsd-64/0.13.8: @@ -4200,6 +4231,15 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: false + optional: true + + /esbuild-freebsd-64/0.13.9: + resolution: {integrity: sha512-ktaBujf12XLkVXLGx7WjFcmh1tt34tm7gP4pHkhvbzbHrq+BbXwcl4EsW+5JT9VNKl7slOGf4Qnua/VW7ZcnIw==} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true /esbuild-freebsd-arm64/0.13.8: @@ -4207,6 +4247,15 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: false + optional: true + + /esbuild-freebsd-arm64/0.13.9: + resolution: {integrity: sha512-vVa5zps4dmwpXwv/amxVpIWvFJuUPWQkpV+PYtZUW9lqjXsQ3LBHP51Q1cXZZBIrqwszLsEyJPa5GuDOY15hzQ==} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true /esbuild-linux-32/0.13.8: @@ -4214,6 +4263,15 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: false + optional: true + + /esbuild-linux-32/0.13.9: + resolution: {integrity: sha512-HxoW9QNqhO8VW1l7aBiYQH4lobeHq85+blZ4nlZ7sg5CNhGRRwnMlV6S08VYKz6V0YKnHb5OqJxx2HZuTZ7tgQ==} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-64/0.13.8: @@ -4221,6 +4279,15 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: false + optional: true + + /esbuild-linux-64/0.13.9: + resolution: {integrity: sha512-L+eAR8o1lAUr9g64RXnBLuWZjAItAOWSUpvkchpa6QvSnXFA/nG6PgGsOBEqhDXl9qYEpGI0ReDrFkf8ByapvQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-arm/0.13.8: @@ -4228,6 +4295,15 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: false + optional: true + + /esbuild-linux-arm/0.13.9: + resolution: {integrity: sha512-DT0S+ufCVXatPZHjkCaBgZSFIV8FzY4GEHz/BlkitTWzUvT1dIUXjPIRPnqBUVa+0AyS1bZSfHzv9hTT4LHz7A==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-arm64/0.13.8: @@ -4235,6 +4311,15 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: false + optional: true + + /esbuild-linux-arm64/0.13.9: + resolution: {integrity: sha512-IjbhZpW5VQYK4nVI4dj/mLvH5oXAIf57OI8BYVkCqrdVXJwR8nVrSqux3zJSY+ElrkOK3DtG9iTPpmqvBXaU0g==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-mips64le/0.13.8: @@ -4242,6 +4327,15 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: false + optional: true + + /esbuild-linux-mips64le/0.13.9: + resolution: {integrity: sha512-ec9RgAM4r+fe1ZmG16qeMwEHdcIvqeW8tpnpkfSQu9T4487KtQF6lg3TQasTarrLLEe7Qpy+E+r4VwC8eeZySQ==} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-linux-ppc64le/0.13.8: @@ -4249,6 +4343,15 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: false + optional: true + + /esbuild-linux-ppc64le/0.13.9: + resolution: {integrity: sha512-7b2/wg8T1n/L1BgCWlMSez0aXfGkNjFuOqMBQdnTti3LRuUwzGJcrhRf/FdZGJ5/evML9mqu60vLRuXW1TdXCg==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true /esbuild-netbsd-64/0.13.8: @@ -4256,6 +4359,15 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: false + optional: true + + /esbuild-netbsd-64/0.13.9: + resolution: {integrity: sha512-PiZu3h4+Szj0iZPgvuD2Y0isOXnlNetmF6jMcOwW54BScwynW24/baE+z7PfDyNFgjV04Ga2THdcpbKBDhgWQw==} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true optional: true /esbuild-openbsd-64/0.13.8: @@ -4263,6 +4375,15 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: false + optional: true + + /esbuild-openbsd-64/0.13.9: + resolution: {integrity: sha512-SJKN4Ez+ilY7mu+1gAdGQ9N6dktBfbEkiOAvw+hT7xHrNnTnrTGH0FT4qx9dazB9HX6D04L4PXmVOyynqi+oEQ==} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true optional: true /esbuild-sunos-64/0.13.8: @@ -4270,6 +4391,15 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: false + optional: true + + /esbuild-sunos-64/0.13.9: + resolution: {integrity: sha512-9N0RjZ7cElE8ifrS0nBrLQgBMQNPiIIKO2GzLXy7Ms8AM3KjfLiV2G2+9O0B9paXjRAHchIwazTeOyeWb1vyWA==} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true optional: true /esbuild-windows-32/0.13.8: @@ -4277,6 +4407,15 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: false + optional: true + + /esbuild-windows-32/0.13.9: + resolution: {integrity: sha512-awxWs1kns+RfjhqBbTbdlePjqZrAE2XMaAQJNg9dtu+C7ghC3QKsqXbu0C26OuF5YeAdJcq9q+IdG6WPLjvj9w==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true /esbuild-windows-64/0.13.8: @@ -4284,6 +4423,15 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: false + optional: true + + /esbuild-windows-64/0.13.9: + resolution: {integrity: sha512-VmA9GQMCzOr8rFfD72Dum1+AWhJui7ZO6sYwp6rBHYu4vLmWITTSUsd/zgXXmZuHBPkkvxLJLF8XsKFCRKflJA==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true /esbuild-windows-arm64/0.13.8: @@ -4291,6 +4439,15 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: false + optional: true + + /esbuild-windows-arm64/0.13.9: + resolution: {integrity: sha512-P/jPY2JwmTpgEPh9BkXpCe690tcDSSo0K9BHTniSeEAEz26kPpqldVa4XDm0R+hNnFA7ecEgNskr4QAxE1ry0w==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true /esbuild/0.12.29: @@ -4321,6 +4478,31 @@ packages: esbuild-windows-32: 0.13.8 esbuild-windows-64: 0.13.8 esbuild-windows-arm64: 0.13.8 + dev: false + + /esbuild/0.13.9: + resolution: {integrity: sha512-8bYcckmisXjGvBMeylp1PRtu21uOoCDFAgXGGF2BR241zYQDN6ZLNvcmQlnQ7olG0p6PRWmJI8WVH3ca8viPuw==} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-arm64: 0.13.9 + esbuild-darwin-64: 0.13.9 + esbuild-darwin-arm64: 0.13.9 + esbuild-freebsd-64: 0.13.9 + esbuild-freebsd-arm64: 0.13.9 + esbuild-linux-32: 0.13.9 + esbuild-linux-64: 0.13.9 + esbuild-linux-arm: 0.13.9 + esbuild-linux-arm64: 0.13.9 + esbuild-linux-mips64le: 0.13.9 + esbuild-linux-ppc64le: 0.13.9 + esbuild-netbsd-64: 0.13.9 + esbuild-openbsd-64: 0.13.9 + esbuild-sunos-64: 0.13.9 + esbuild-windows-32: 0.13.9 + esbuild-windows-64: 0.13.9 + esbuild-windows-arm64: 0.13.9 + dev: true /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -5113,8 +5295,8 @@ packages: engines: {node: '>=8.0.0'} dev: true - /get-source/1.0.42: - resolution: {integrity: sha512-uM5xCIG5w2meVbiZaID4ajH6J8OfApqhlKXtZwsS/IIM9PLb0b2kc5sRdy78yEDfxsIYEWNk0OVxai6OpDCExA==} + /get-source/2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 @@ -8855,7 +9037,7 @@ packages: rollup: 2.58.0 dev: true - /rollup-plugin-esbuild/4.6.0_esbuild@0.13.8+rollup@2.58.0: + /rollup-plugin-esbuild/4.6.0_esbuild@0.13.9+rollup@2.58.0: resolution: {integrity: sha512-fjihkrOCy7qeNDd1VmtWw39UA4b6a96NVrsuK6eg1SArnWoS3G4xLoW7liF0oRQU7+ONPr/Gjxz9cv+WLRhaGA==} engines: {node: '>=12'} peerDependencies: @@ -8863,7 +9045,7 @@ packages: rollup: ^1.20.0 || ^2.0.0 dependencies: '@rollup/pluginutils': 4.1.1 - esbuild: 0.13.8 + esbuild: 0.13.9 joycon: 3.0.1 jsonc-parser: 3.0.0 rollup: 2.58.0 @@ -9335,11 +9517,11 @@ packages: escape-string-regexp: 2.0.0 dev: true - /stacktracey/1.2.127: - resolution: {integrity: sha512-tj3BObW/adLIAQGGQ0flRTADrCv6KQ4VgncUO8NrQ7pk/H6pGMtXxQLjZYw66eqPDTC1DHtnBwGSmG+Wx/D/kg==} + /stacktracey/2.1.7: + resolution: {integrity: sha512-/w8uiORLKmSndIoXcrs09yAfwr34rMpToeXageRKM2a5UhNOLLp1Iag6UP7O0IOYd7zDLNQVOUYHruXmK5dv0w==} dependencies: as-table: 1.0.55 - get-source: 1.0.42 + get-source: 2.0.12 dev: true /static-extend/0.1.2: @@ -10090,7 +10272,7 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unplugin-vue-components/0.16.0_vite@2.6.10: + /unplugin-vue-components/0.16.0_5526dbcc4fc39ff4d6a8525c3fd94908: resolution: {integrity: sha512-BM/5p6/btLgDjUxf290cKbzbaGow95NFibhp+TSQhL0wyb1Q6sP0nmlqOvGnpLANFq0+urXxXDloMLlTJH6Fww==} engines: {node: '>=14'} peerDependencies: @@ -10105,7 +10287,8 @@ packages: magic-string: 0.25.7 minimatch: 3.0.4 resolve: 1.20.0 - unplugin: 0.2.16_vite@2.6.10 + unplugin: 0.2.16_rollup@2.58.0+vite@2.6.10 + vue: 3.2.20 transitivePeerDependencies: - rollup - supports-color @@ -10113,7 +10296,7 @@ packages: - webpack dev: true - /unplugin/0.2.16_vite@2.6.10: + /unplugin/0.2.16_rollup@2.58.0+vite@2.6.10: resolution: {integrity: sha512-KkXatHba0baJszSHW+2e8EQU/5Bz7rYwzYXu8wUeq97tE6K3wvub+7OWSuRv04LttvzNLsJ2jXEyR35gofv74Q==} peerDependencies: rollup: ^2.50.0 @@ -10127,7 +10310,8 @@ packages: webpack: optional: true dependencies: - vite: 2.6.10 + rollup: 2.58.0 + vite: 2.6.10_sass@1.43.3 webpack-virtual-modules: 0.4.3 dev: true @@ -10312,7 +10496,7 @@ packages: fsevents: 2.3.2 dev: true - /vite/2.6.10: + /vite/2.6.10_sass@1.43.3: resolution: {integrity: sha512-XbevwpDJMs3lKiGEj0UQScsOCpwHIjFgfzPnFVkPgnxsF9oPv1uGyckLg58XkXv6LnO46KN9yZqJzINFmAxtUg==} engines: {node: '>=12.2.0'} hasBin: true @@ -10332,6 +10516,7 @@ packages: postcss: 8.3.11 resolve: 1.20.0 rollup: 2.58.0 + sass: 1.43.3 optionalDependencies: fsevents: 2.3.2 dev: false @@ -10443,22 +10628,22 @@ packages: resolution: {integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==} dev: true - /vscode-pug-languageservice/0.28.7: - resolution: {integrity: sha512-LMeR/be3qm63xsamMFCn9/fcu0PKeIS1ci7ou9CcOwxIK7Zr/vGAmG2K0uNIKzm/w7I20F6855RVf9Ne2QHb4Q==} + /vscode-pug-languageservice/0.28.8: + resolution: {integrity: sha512-qMs5OPyKINc1SSR6lkLEp7PCvySeuA7fkU6yqmMLmhR5reEhks5T6QqpYrOfbsMco3wkKnqp7p4CA/Xo282Rhw==} dependencies: - '@volar/code-gen': 0.28.7 - '@volar/shared': 0.28.7 - '@volar/source-map': 0.28.7 - '@volar/transforms': 0.28.7 + '@volar/code-gen': 0.28.8 + '@volar/shared': 0.28.8 + '@volar/source-map': 0.28.8 + '@volar/transforms': 0.28.8 pug-lexer: 5.0.1 pug-parser: 6.0.0 vscode-languageserver: 8.0.0-next.3 dev: true - /vscode-typescript-languageservice/0.28.7: - resolution: {integrity: sha512-CLrcnDlISMl9cKLFVubKfaa2fp0Y1sULeCoqUw0JsBRcz+2U67ETalUkolr8iw59oGwINybJ/VyfWnsNFLt9FA==} + /vscode-typescript-languageservice/0.28.8: + resolution: {integrity: sha512-qtvAkVQzMrJS/aaSdgVIaiUpy4e2o4wD2dml+L6Efsn0pzkM9EqAbRWNQP/gc1rcNRcvu1kFVCFdLag/eAKFag==} dependencies: - '@volar/shared': 0.28.7 + '@volar/shared': 0.28.8 semver: 7.3.5 upath: 2.0.1 vscode-languageserver: 8.0.0-next.3 @@ -10473,15 +10658,15 @@ packages: resolution: {integrity: sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==} dev: true - /vscode-vue-languageservice/0.28.7: - resolution: {integrity: sha512-zguYZIDTqtTL4rPBZewqdTu2wpivlcw/dah6BcRKPSdJIXIncvCy/BoS0mKb+AvME6ltiQBTCAoF98d8XZRfxg==} + /vscode-vue-languageservice/0.28.8: + resolution: {integrity: sha512-IPKLwOyzLXWsNqd3LOBZ/nuB/Jkoyp+UVw5fwa5stZxBmc7zLaZJEnXWmsDMBYZQsc+6D4TJK2mO8Tvh52RiFQ==} dependencies: - '@volar/code-gen': 0.28.7 - '@volar/html2pug': 0.28.7 - '@volar/shared': 0.28.7 - '@volar/source-map': 0.28.7 - '@volar/transforms': 0.28.7 - '@vscode/emmet-helper': 2.8.1 + '@volar/code-gen': 0.28.8 + '@volar/html2pug': 0.28.8 + '@volar/shared': 0.28.8 + '@volar/source-map': 0.28.8 + '@volar/transforms': 0.28.8 + '@vscode/emmet-helper': 2.8.2 '@vue/compiler-dom': 3.2.20 '@vue/reactivity': 3.2.20 '@vue/shared': 3.2.20 @@ -10492,8 +10677,8 @@ packages: vscode-json-languageservice: 4.1.8 vscode-languageserver: 8.0.0-next.3 vscode-languageserver-textdocument: 1.0.2 - vscode-pug-languageservice: 0.28.7 - vscode-typescript-languageservice: 0.28.7 + vscode-pug-languageservice: 0.28.8 + vscode-typescript-languageservice: 0.28.8 dev: true /vue-demi/0.11.4_vue@3.2.20: @@ -10567,14 +10752,15 @@ packages: vue: 3.2.20 dev: true - /vue-tsc/0.28.7_typescript@4.4.4: - resolution: {integrity: sha512-s3H29Aa2PVpJ0EKPGKllTIwgmcOTNe+Uo3jHkX+F+wSYBmVLt7ZHeYJD5K35PwM6QZ2ryKcaDn5cDIq683Gb1g==} + /vue-tsc/0.28.8_typescript@4.4.4: + resolution: {integrity: sha512-nvS0+hzklcOZXlO5Hjfh7eWAE4r5VJNlcgT25Knp7Sh7rX7GKUj0faKj/bPupJuVQSfti7cAfVItAYw3JsM0QA==} hasBin: true peerDependencies: typescript: '*' dependencies: + '@volar/shared': 0.28.8 typescript: 4.4.4 - vscode-vue-languageservice: 0.28.7 + vscode-vue-languageservice: 0.28.8 dev: true /vue/3.2.20: diff --git a/scripts/.eslintrc.js b/scripts/.eslintrc.js new file mode 100644 index 0000000000..0c567a8612 --- /dev/null +++ b/scripts/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + rules: { + 'no-console': 'off', + }, +} diff --git a/build/gen-version.ts b/scripts/gen-version.ts similarity index 100% rename from build/gen-version.ts rename to scripts/gen-version.ts diff --git a/build/update-version.ts b/scripts/update-version.ts similarity index 85% rename from build/update-version.ts rename to scripts/update-version.ts index a302e76a10..b7117f9485 100644 --- a/build/update-version.ts +++ b/scripts/update-version.ts @@ -1,7 +1,7 @@ import fs from 'fs' -import { epPackage } from './utils/paths' -import { cyan, red, yellow, green } from './utils/log' -import { getPackageManifest } from './utils/pkg' +import { epPackage } from '../build/utils/paths' +import { cyan, red, yellow, green } from '../build/utils/log' +import { getPackageManifest } from '../build/utils/pkg' const tagVersion = process.env.TAG_VERSION const gitHead = process.env.GIT_HEAD