diff --git a/e2e/helper.ts b/e2e/helper.ts index 411228738..42ea2f373 100644 --- a/e2e/helper.ts +++ b/e2e/helper.ts @@ -2,7 +2,7 @@ import { JSDOM } from 'jsdom' import type { Page } from 'playwright' -export async function sleep(delay: number) { +export function sleep(delay: number) { return new Promise(resolve => setTimeout(resolve, delay)) } @@ -43,7 +43,7 @@ export async function assetLocaleHead(page: Page, headSelector: string) { }, [headHandle, localeHeadValue] ) - headHandle?.dispose() + await headHandle?.dispose() } export function getDom(html: string) { @@ -57,10 +57,7 @@ export function getDataFromDom(dom: Document, selector: string) { ) } -export async function assertLocaleHeadWithDom( - dom: Document, - headSelector: string -) { +export function assertLocaleHeadWithDom(dom: Document, headSelector: string) { const localeHead = getDataFromDom(dom, headSelector) const headData = [...localeHead.link, ...localeHead.meta] for (const head of headData) { diff --git a/eslint.config.mjs b/eslint.config.mjs index 98e9110b2..bed4f8485 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,12 +1,9 @@ import globals from 'globals' import js from '@eslint/js' -import { FlatCompat } from '@eslint/eslintrc' import ts from 'typescript-eslint' -import eslintConfigPrettier from 'eslint-config-prettier' +import pritter from 'eslint-config-prettier' +import vue from 'eslint-plugin-vue' -const vue = extendVuePlugin('plugin:vue/vue3-recommended', ts.parser) - -/** @type { import("eslint").Linter.FlatConfig[] } */ export default [ // ignore globally { @@ -24,11 +21,6 @@ export default [ ] }, - js.configs.recommended, - ...ts.configs.recommended, - eslintConfigPrettier, - ...vue, - // globals { // files: ['**/*.js', '**/*.ts', '**/*.vue', '**/*.json'], @@ -45,6 +37,44 @@ export default [ } }, + js.configs.recommended, + + //...ts.configs.recommended, + ...ts.configs.recommendedTypeChecked, + { + files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts', '**/*.vue'], + languageOptions: { + parserOptions: { + project: true, + tsconfigRootDir: import.meta.dirname, + parser: ts.parser, + extraFileExtensions: ['.vue'] + } + }, + rules: { + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/no-unsafe-assignment': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/no-unsafe-argument': 'off', + '@typescript-eslint/no-unsafe-return': 'off', + '@typescript-eslint/no-unsafe-enum-comparison': 'off', + '@typescript-eslint/no-unnecessary-type-assertion': 'off', + '@typescript-eslint/unbound-method': 'off', + '@typescript-eslint/no-implied-eval': 'off', + '@typescript-eslint/no-redundant-type-constituents': 'off', + '@typescript-eslint/restrict-template-expressions': 'off', + '@typescript-eslint/no-base-to-string': 'off' + } + }, + { + files: ['**/*.js', '**/*.cjs', '**/*.mjs'], + ...ts.configs.disableTypeChecked + }, + + ...vue.configs['flat/recommended'], + + pritter, + // custom rules { rules: { @@ -64,34 +94,3 @@ export default [ } } ] - -/** - * extend eslint-plugin-vue with @typescript-eslint/parser - * (NOTE: eslint-plugin-vue flat config WIP currently https://github.com/vuejs/eslint-plugin-vue/issues/1291) - * - * @param { 'plugin:vue/vue3-essential' | 'plugin:vue/vue3-strongly-recommended' | 'plugin:vue/vue3-recommended' } vueConfigPattern - * @param { import("typescript-eslint").Config.parser } tsParser - * - * @return { import("eslint").Linter.FlatConfig[] } - */ -function extendVuePlugin(vueConfigPattern, tsParser) { - const compat = new FlatCompat() - const vuePlugin = compat.extends(vueConfigPattern) - const vueLangOptions = vuePlugin[2] - vueLangOptions.files = [ - '**/*.vue', - '**/*.ts', - '**/*.tsx', - '**/*.mts', - '**/*.cts' - ] - vueLangOptions.languageOptions = { - // NOTE: - // https://eslint.vuejs.org/user-guide/#how-to-use-a-custom-parser - parserOptions: { - parser: tsParser - }, - ecmaVersion: 'latest' - } - return vuePlugin -} diff --git a/package.json b/package.json index 1d40a91ae..5618f55b0 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "docs:dev": "vitepress dev docs", "docs:serve": "vitepress serve docs", "docs:setup": "pnpm build:typed && pnpm docs:apigen", + "eslint:inspector": "npx @eslint/config-inspector", "example:ssr": "cd examples/ssr/vite && pnpm dev", "fix": "run-p lint:fix format:fix", "format:fix": "run-p \"format:prettier --write\" format:package", @@ -69,7 +70,6 @@ "test:unit": "cross-env TZ=UTC vitest run -c ./vitest.unit.config.ts" }, "devDependencies": { - "@eslint/eslintrc": "^3.0.0", "@eslint/js": "^8.57.0", "@intlify/core-base": "workspace:*", "@intlify/message-compiler": "workspace:*", @@ -81,11 +81,13 @@ "@rollup/plugin-terser": "^0.4.3", "@secretlint/secretlint-rule-preset-recommend": "^3.1.0", "@textlint-rule/textlint-rule-no-unmatched-pair": "^2.0.0", + "@types/brotli": "^1.3.4", + "@types/eslint": "^8.56.7", "@types/js-yaml": "^4.0.5", "@types/jsdom": "^21.1.1", + "@types/minimist": "^1.2.5", "@types/node": "^20.11.21", - "@typescript-eslint/eslint-plugin": "^6.5.0", - "@typescript-eslint/parser": "^6.5.0", + "@types/rc": "^1.2.4", "@vitest/coverage-v8": "^1.3.0", "api-docs-gen": "^0.4.0", "benchmark": "^2.1.4", @@ -95,7 +97,7 @@ "esbuild-register": "^3.5.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-vue": "^9.22.0", + "eslint-plugin-vue": "^9.24.0", "execa": "^5.0.0", "fixpack": "^4.0.0", "globals": "^15.0.0", @@ -114,7 +116,7 @@ "playwright": "^1.34.0", "prettier": "^3.2.5", "rc": "^1.2.8", - "rimraf": "^3.0.2", + "rimraf": "^5.0.5", "rollup": "^3.29.2", "rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-globals": "^1.4.0", @@ -141,7 +143,7 @@ "trash-cli": "^5.0.0", "tslib": "^2.6.2", "typescript": "^5.3.3", - "typescript-eslint": "^7.1.0", + "typescript-eslint": "^7.5.0", "vitepress": "1.0.2", "vitest": "^1.3.0", "vue": "3.4.21", diff --git a/packages/format-explorer/src/App.vue b/packages/format-explorer/src/App.vue index 594d0f3ea..a018b3cf4 100644 --- a/packages/format-explorer/src/App.vue +++ b/packages/format-explorer/src/App.vue @@ -72,6 +72,7 @@ async function compile( lastSuccessCode = evalCode.toString() + `\n\n// Check the console for the AST` lastSuccessfulMap = + // eslint-disable-next-line @typescript-eslint/await-thenable options.sourceMap && map ? await new SourceMapConsumer(map) : null lastSuccessfulMap?.computeColumnSpans() } catch (e: unknown) { @@ -222,11 +223,7 @@ const onChangeOptions = async (options: CompileOptions) => { @change-model="onChangeModel" @ready="onReadyInput" /> - + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2bfc92e04..905e305c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,9 +12,6 @@ importers: .: devDependencies: - '@eslint/eslintrc': - specifier: ^3.0.0 - version: 3.0.2 '@eslint/js': specifier: ^8.57.0 version: 8.57.0 @@ -48,21 +45,27 @@ importers: '@textlint-rule/textlint-rule-no-unmatched-pair': specifier: ^2.0.0 version: 2.0.2 + '@types/brotli': + specifier: ^1.3.4 + version: 1.3.4 + '@types/eslint': + specifier: ^8.56.7 + version: 8.56.7 '@types/js-yaml': specifier: ^4.0.5 version: 4.0.9 '@types/jsdom': specifier: ^21.1.1 version: 21.1.6 + '@types/minimist': + specifier: ^1.2.5 + version: 1.2.5 '@types/node': specifier: ^20.11.21 version: 20.11.21 - '@typescript-eslint/eslint-plugin': - specifier: ^6.5.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/parser': - specifier: ^6.5.0 - version: 6.21.0(eslint@8.57.0)(typescript@5.3.3) + '@types/rc': + specifier: ^1.2.4 + version: 1.2.4 '@vitest/coverage-v8': specifier: ^1.3.0 version: 1.3.1(vitest@1.3.1) @@ -91,8 +94,8 @@ importers: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) eslint-plugin-vue: - specifier: ^9.22.0 - version: 9.22.0(eslint@8.57.0) + specifier: ^9.24.0 + version: 9.24.0(eslint@8.57.0) execa: specifier: ^5.0.0 version: 5.1.1 @@ -148,8 +151,8 @@ importers: specifier: ^1.2.8 version: 1.2.8 rimraf: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^5.0.5 + version: 5.0.5 rollup: specifier: ^3.29.2 version: 3.29.4 @@ -229,8 +232,8 @@ importers: specifier: ^5.3.3 version: 5.3.3 typescript-eslint: - specifier: ^7.1.0 - version: 7.1.0(eslint@8.57.0)(typescript@5.3.3) + specifier: ^7.5.0 + version: 7.5.0(eslint@8.57.0)(typescript@5.3.3) vitepress: specifier: 1.0.2 version: 1.0.2(@algolia/client-search@4.22.1)(@types/node@20.11.21)(search-insights@2.13.0)(typescript@5.3.3) @@ -1649,23 +1652,6 @@ packages: - supports-color dev: true - /@eslint/eslintrc@3.0.2: - resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4(supports-color@6.1.0) - espree: 10.0.1 - globals: 14.0.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/js@8.57.0: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1886,6 +1872,18 @@ packages: vue: 3.4.20(typescript@5.3.3) dev: true + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} @@ -2169,6 +2167,13 @@ packages: '@parcel/watcher-win32-x64': 2.4.1 dev: true + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + /@rollup/plugin-commonjs@25.0.7(rollup@3.29.4): resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} engines: {node: '>=14.0.0'} @@ -2842,12 +2847,25 @@ packages: '@types/node': 20.11.21 dev: true + /@types/brotli@1.3.4: + resolution: {integrity: sha512-cKYjgaS2DMdCKF7R0F5cgx1nfBYObN2ihIuPGQ4/dlIY6RpV7OWNwe9L8V4tTVKL2eZqOkNM9FM/rgTvLf4oXw==} + dependencies: + '@types/node': 20.11.21 + dev: true + /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: '@types/node': 20.11.21 dev: true + /@types/eslint@8.56.7: + resolution: {integrity: sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true @@ -2960,6 +2978,12 @@ packages: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} dev: true + /@types/rc@1.2.4: + resolution: {integrity: sha512-xD6+epQoMH79A1uwmJIq25D+XZ57jUzCQ1DGSvs3tGKdx7QDYOOaMh6m5KBkEIW4+Cy5++bZ7NLDfdpNiYVKYA==} + dependencies: + '@types/minimist': 1.2.5 + dev: true + /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true @@ -2995,38 +3019,9 @@ packages: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: true - /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4(supports-color@6.1.0) - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin@7.5.0(@typescript-eslint/parser@7.5.0)(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 eslint: ^8.56.0 @@ -3036,11 +3031,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.5.0 + '@typescript-eslint/type-utils': 7.5.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.5.0 debug: 4.3.4(supports-color@6.1.0) eslint: 8.57.0 graphemer: 1.4.0 @@ -3053,30 +3048,9 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4(supports-color@6.1.0) - eslint: 8.57.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser@7.5.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -3084,10 +3058,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/scope-manager': 7.5.0 + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.5.0 debug: 4.3.4(supports-color@6.1.0) eslint: 8.57.0 typescript: 5.3.3 @@ -3095,45 +3069,17 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - dev: true - - /@typescript-eslint/scope-manager@7.1.0: - resolution: {integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/scope-manager@7.5.0: + resolution: {integrity: sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/visitor-keys': 7.5.0 dev: true - /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) - debug: 4.3.4(supports-color@6.1.0) - eslint: 8.57.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/type-utils@7.5.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -3141,8 +3087,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.3.3) + '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4(supports-color@6.1.0) eslint: 8.57.0 ts-api-utils: 1.2.1(typescript@5.3.3) @@ -3151,49 +3097,22 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/types@7.1.0: - resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4(supports-color@6.1.0) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color + /@typescript-eslint/types@7.5.0: + resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} + engines: {node: ^18.18.0 || >=20.0.0} dev: true - /@typescript-eslint/typescript-estree@7.1.0(typescript@5.3.3): - resolution: {integrity: sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@7.5.0(typescript@5.3.3): + resolution: {integrity: sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/visitor-keys': 7.5.0 debug: 4.3.4(supports-color@6.1.0) globby: 11.1.0 is-glob: 4.0.3 @@ -3205,37 +3124,18 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - eslint: 8.57.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils@7.5.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.5.0 + '@typescript-eslint/types': 7.5.0 + '@typescript-eslint/typescript-estree': 7.5.0(typescript@5.3.3) eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: @@ -3243,19 +3143,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@7.1.0: - resolution: {integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/visitor-keys@7.5.0: + resolution: {integrity: sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/types': 7.5.0 eslint-visitor-keys: 3.4.3 dev: true @@ -5549,6 +5441,10 @@ packages: resolution: {integrity: sha512-tzBmM2mFSnAq5BuxPSyin6qXb3yMe1wufJN7L7ZPcEWS5S+jI2dhKQEoqHVEcSMMXo/j5lcWpX5jzA6wLSmX6w==} dev: true + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true @@ -5581,6 +5477,10 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + /emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} @@ -5846,14 +5746,15 @@ packages: eslint: 8.57.0 dev: true - /eslint-plugin-vue@9.22.0(eslint@8.57.0): - resolution: {integrity: sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg==} + /eslint-plugin-vue@9.24.0(eslint@8.57.0): + resolution: {integrity: sha512-9SkJMvF8NGMT9aQCwFc5rj8Wo1XWSMSHk36i7ZwdI614BU7sIOR28ZjuFPKp8YGymZN12BSEbiSwa7qikp+PBw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) eslint: 8.57.0 + globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.15 @@ -5897,11 +5798,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - /eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5949,15 +5845,6 @@ packages: - supports-color dev: true - /espree@10.0.1: - resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 4.0.0 - dev: true - /espree@6.2.1: resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} engines: {node: '>=6.0.0'} @@ -6487,6 +6374,14 @@ packages: resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==} dev: true + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -6727,6 +6622,18 @@ packages: is-glob: 4.0.3 dev: true + /glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.2 + dev: true + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -6797,11 +6704,6 @@ packages: type-fest: 0.20.2 dev: true - /globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - dev: true - /globals@15.0.0: resolution: {integrity: sha512-m/C/yR4mjO6pXDTm9/R/SpYTAIyaUB4EOzcaaMEl7mds7Mshct9GfejiJNQGjHHbdMPey13Kpu4TMbYi9ex1pw==} engines: {node: '>=18'} @@ -7828,6 +7730,15 @@ packages: textextensions: 3.3.0 dev: true + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true @@ -8321,6 +8232,11 @@ packages: get-func-name: 2.0.2 dev: true + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -8832,6 +8748,11 @@ packages: engines: {node: '>=8'} dev: true + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /minisearch@6.3.0: resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} dev: true @@ -9590,6 +9511,14 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + dev: true + /path-to-glob-pattern@1.0.2: resolution: {integrity: sha512-ryF65N5MBB9XOjE5mMOi+0bMrh1F0ORQmqDSSERvv5zD62Cfc5QC6rK1AR1xuDIG1I091CkNENblbteWy1bXgw==} dev: true @@ -10410,6 +10339,14 @@ packages: glob: 7.2.3 dev: true + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 10.3.12 + dev: true + /ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} dependencies: @@ -11177,6 +11114,15 @@ packages: strip-ansi: 6.0.1 dev: true + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + /string-width@7.1.0: resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} engines: {node: '>=18'} @@ -11936,9 +11882,9 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript-eslint@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-GfAALH4zoqae5mIfHr7WU3BsULHP73hjwF8vCmyTkH3IXHXjqg3JNWwUcd8CwOTLIr4tjRTZQWpToyESPnpOhg==} - engines: {node: ^16.0.0 || >=18.0.0} + /typescript-eslint@7.5.0(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-eKhF39LRi2xYvvXh3h3S+mCxC01dZTIZBlka25o39i81VeQG+OZyfC4i2GEDspNclMRdXkg9uGhmvWMhjph2XQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -11946,8 +11892,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.5.0(@typescript-eslint/parser@7.5.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.5.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.5.0(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 typescript: 5.3.3 transitivePeerDependencies: @@ -12876,6 +12823,24 @@ packages: strip-ansi: 5.2.0 dev: true + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + /wrap-ansi@9.0.0: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} diff --git a/scripts/aliases.ts b/scripts/aliases.ts index c09180414..fb1ea3ea7 100644 --- a/scripts/aliases.ts +++ b/scripts/aliases.ts @@ -2,12 +2,12 @@ import { readdirSync, statSync } from 'node:fs' import { resolve } from 'node:path' import { fileURLToPath } from 'node:url' -const resolveEntryForPkg = p => +const resolveEntryForPkg = (p: string) => resolve(fileURLToPath(import.meta.url), `../../packages/${p}/src/index.ts`) const dirs = readdirSync(new URL('../packages', import.meta.url)) -const entries = { +const entries: Record = { 'vue-i18n': resolveEntryForPkg('vue-i18n'), 'vue-i18n-bridge': resolveEntryForPkg('vue-i18n-bridge'), 'petite-vue-i18n': resolveEntryForPkg('petite-vue-i18n') diff --git a/scripts/build.ts b/scripts/build.ts index 1306f3d18..dfe806ad2 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -14,13 +14,13 @@ pnpm build core --formats cjs ``` */ -import { promisify } from 'util' -import { promises as fs } from 'fs' +import { promisify } from 'node:util' +import { promises as fs } from 'node:fs' import path from 'pathe' import pc from 'picocolors' import execa from 'execa' -import os from 'os' -import { gzip as _gzip } from 'zlib' +import os from 'node:os' +import { gzip as _gzip } from 'node:zlib' import { compress } from 'brotli' import { targets as allTargets, @@ -30,10 +30,9 @@ import { } from './utils' import minimist from 'minimist' import { Extractor, ExtractorConfig } from '@microsoft/api-extractor' -import { default as _rimraf } from 'rimraf' +import { rimrafSync } from 'rimraf' const gzip = promisify(_gzip) -const rimraf = promisify(_rimraf) async function main() { const args = minimist(process.argv.slice(2)) @@ -53,10 +52,7 @@ async function main() { async function run() { if (isRelease) { // remove build cache for release builds to avoid outdated enum values - // @ts-ignore - await rimraf( - path.resolve(path.dirname('.'), './node_modules/.rts2_cache') - ) + rimrafSync(path.resolve(path.dirname('.'), './node_modules/.rts2_cache')) } if (!targets.length) { targets = await allTargets() @@ -85,6 +81,7 @@ async function main() { ret.push(p) if (maxConcurrency <= source.length) { + // @ts-expect-error const e = p.then(() => executing.splice(executing.indexOf(e), 1)) executing.push(e) if (executing.length >= maxConcurrency) { @@ -115,8 +112,7 @@ async function main() { // if building a specific format, do not remove dist. if (!formats) { - // @ts-ignore - await rimraf(`${pkgDir}/dist`) + rimrafSync(`${pkgDir}/dist`) } const env = @@ -197,7 +193,7 @@ async function main() { ) } catch (e) { console.error( - `Failed in opening Vue type definition file with error code: ${e.code}` + `Failed in opening Vue type definition file with error code: ${(e as NodeJS.ErrnoException).code}` ) process.exitCode = 1 } @@ -220,8 +216,7 @@ async function main() { ) } - // @ts-ignore - await rimraf(`${pkgDir}/dist/packages`) + rimrafSync(`${pkgDir}/dist/packages`) } } diff --git a/scripts/dev.ts b/scripts/dev.ts index c9e8af2b6..ad5b87916 100644 --- a/scripts/dev.ts +++ b/scripts/dev.ts @@ -19,6 +19,8 @@ __DEV__=false pnpm run dev import execa from 'execa' import { fuzzyMatchTarget } from './utils' import minimist from 'minimist' + +// eslint-disable-next-line @typescript-eslint/no-floating-promises ;(async () => { const args = minimist(process.argv.slice(2)) const target = args._.length @@ -29,6 +31,7 @@ import minimist from 'minimist' const { stdout } = await execa('git', ['rev-parse', 'HEAD']) const commit = stdout.slice(0, 7) + // eslint-disable-next-line @typescript-eslint/no-floating-promises execa( 'rollup', [ diff --git a/scripts/fixpack.ts b/scripts/fixpack.ts index 819b0f831..0899fcf1e 100644 --- a/scripts/fixpack.ts +++ b/scripts/fixpack.ts @@ -1,8 +1,10 @@ import pc from 'picocolors' +// @ts-ignore import fixpack from 'fixpack' import { resolve, dirname } from 'pathe' import rc from 'rc' import { targets, readJson } from './utils' +// eslint-disable-next-line @typescript-eslint/no-floating-promises ;(async () => { const allTargets = await targets() const defaultConfig = await readJson( diff --git a/scripts/postprocess.ts b/scripts/postprocess.ts index b1aace5ff..132a4044d 100644 --- a/scripts/postprocess.ts +++ b/scripts/postprocess.ts @@ -1,5 +1,5 @@ import path from 'pathe' -import { promises as fs } from 'fs' +import { promises as fs } from 'node:fs' function replaceWithCompositionApi(source: string, target: string) { return source.replace( diff --git a/scripts/utils.ts b/scripts/utils.ts index 2296303a6..7535f3e64 100644 --- a/scripts/utils.ts +++ b/scripts/utils.ts @@ -1,4 +1,4 @@ -import { promises as fs } from 'fs' +import { promises as fs } from 'node:fs' import { resolve, dirname } from 'pathe' import pc from 'picocolors' @@ -54,7 +54,7 @@ export const fuzzyMatchTarget = async ( } } -export async function checkSizeDistFiles(target) { +export async function checkSizeDistFiles(target: string) { const dirs = await fs.readdir(`${target}/dist`) return dirs.filter(file => /prod.[cm]js$/.test(file)) } diff --git a/scripts/vitest.unit.globalSetup.ts b/scripts/vitest.unit.globalSetup.ts index d3d5a4bda..43b5102fd 100644 --- a/scripts/vitest.unit.globalSetup.ts +++ b/scripts/vitest.unit.globalSetup.ts @@ -1,3 +1,3 @@ -export async function setup() { +export function setup() { console.log('ICU version:', process.versions.icu) } diff --git a/shim.d.ts b/shim.d.ts index 5993e11c0..6c6d87747 100644 --- a/shim.d.ts +++ b/shim.d.ts @@ -10,6 +10,7 @@ declare global { interface ProcessEnv { E2E_BROWSER?: 'chromium' | 'firefox' | 'webkit' CI?: string + GITHUB_ACTIONS?: string } } } diff --git a/tsconfig.json b/tsconfig.json index 42b97a816..1c016710e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -52,6 +52,7 @@ "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + "resolveJsonModule": true, /* Include modules imported with '.json' extension. */ /* Source Map Options */ // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ @@ -72,10 +73,12 @@ "packages/global.d.ts", "packages/*/src", "packages/*/test", + "packages/*/*.config.ts", "test-dts", - "scripts/vitest.*.ts", - "e2e/**/*.ts", - "shim.d.ts" + "scripts", + "e2e", + "shim.d.ts", + "*.config.ts" ], "exclude": ["node_modules"] } diff --git a/vitest.config.ts b/vitest.config.ts index bb87f6295..e85a05eb6 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,12 +1,12 @@ import { defineConfig, UserConfig } from 'vitest/config' -import pkg from './package.json' +import { version } from './package.json' import { entries } from './scripts/aliases' export default defineConfig({ define: { __DEV__: true, __TEST__: true, - __VERSION__: JSON.stringify(pkg.version), + __VERSION__: JSON.stringify(version), __BROWSER__: false, __GLOBAL__: false, __RUNTIME__: false, @@ -27,6 +27,6 @@ export default defineConfig({ test: { globals: true, // disable threads on GH actions to speed it up - threads: !process.env.GITHUB_ACTIONS + pool: process.env.GITHUB_ACTIONS ? undefined : 'threads' } }) as UserConfig