diff --git a/package.json b/package.json index 40542046eb..d7067f705e 100644 --- a/package.json +++ b/package.json @@ -60,8 +60,6 @@ "cssnano": "7.1.2", "esbuild": "0.27.0", "execa": "9.6.0", - "fast-glob": "3.3.3", - "glob": "13.0.0", "ignore-walk": "8.0.0", "js-yaml": "4.1.1", "postcss": "8.5.6", diff --git a/packages/frontend-embed/package.json b/packages/frontend-embed/package.json index 6122f2cab6..cdf13120c0 100644 --- a/packages/frontend-embed/package.json +++ b/packages/frontend-embed/package.json @@ -56,7 +56,6 @@ "cross-env": "10.1.0", "eslint-plugin-import": "2.32.0", "eslint-plugin-vue": "10.6.2", - "fast-glob": "3.3.3", "happy-dom": "20.0.11", "intersection-observer": "0.12.2", "micromatch": "4.0.8", diff --git a/packages/frontend-shared/build.js b/packages/frontend-shared/build.js index 9941114757..07e98ad182 100644 --- a/packages/frontend-shared/build.js +++ b/packages/frontend-shared/build.js @@ -3,14 +3,13 @@ import { fileURLToPath } from 'node:url'; import { dirname } from 'node:path'; import * as esbuild from 'esbuild'; import { build } from 'esbuild'; -import { globSync } from 'glob'; import { execa } from 'execa'; const _filename = fileURLToPath(import.meta.url); const _dirname = dirname(_filename); const _package = JSON.parse(fs.readFileSync(_dirname + '/package.json', 'utf-8')); -const entryPoints = globSync('./js/**/**.{ts,tsx}'); +const entryPoints = fs.globSync('./js/**/**.{ts,tsx}'); /** @type {import('esbuild').BuildOptions} */ const options = { diff --git a/packages/frontend/.storybook/generate.tsx b/packages/frontend/.storybook/generate.tsx index 89d4214141..6005049dde 100644 --- a/packages/frontend/.storybook/generate.tsx +++ b/packages/frontend/.storybook/generate.tsx @@ -3,12 +3,11 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { existsSync, readFileSync } from 'node:fs'; +import { existsSync, readFileSync, globSync } from 'node:fs'; import { writeFile } from 'node:fs/promises'; import { basename, dirname } from 'node:path/posix'; import { GENERATOR, type State, generate } from 'astring'; import type * as estree from 'estree'; -import glob from 'fast-glob'; import { format } from 'prettier'; interface SatisfiesExpression extends estree.BaseExpression { @@ -439,38 +438,37 @@ function toStories(component: string): Promise { // glob('src/{components,pages,ui,widgets}/**/*.vue') (async () => { - const globs = await Promise.all([ - glob('src/components/global/Mk*.vue'), - glob('src/components/global/RouterView.vue'), - glob('src/components/MkAbuseReportWindow.vue'), - glob('src/components/MkAccountMoved.vue'), - glob('src/components/MkAchievements.vue'), - glob('src/components/MkAnalogClock.vue'), - glob('src/components/MkAnimBg.vue'), - glob('src/components/MkAnnouncementDialog.vue'), - glob('src/components/MkAntennaEditor.vue'), - glob('src/components/MkAntennaEditorDialog.vue'), - glob('src/components/MkAsUi.vue'), - glob('src/components/MkAutocomplete.vue'), - glob('src/components/MkAvatars.vue'), - glob('src/components/Mk[B-E]*.vue'), - glob('src/components/MkFlashPreview.vue'), - glob('src/components/MkGalleryPostPreview.vue'), - glob('src/components/MkSignupServerRules.vue'), - glob('src/components/MkUserSetupDialog.vue'), - glob('src/components/MkUserSetupDialog.*.vue'), - glob('src/components/MkImgPreviewDialog.vue'), - glob('src/components/MkInstanceCardMini.vue'), - glob('src/components/MkInviteCode.vue'), - glob('src/components/MkTagItem.vue'), - glob('src/components/MkRoleSelectDialog.vue'), - glob('src/components/grid/MkGrid.vue'), - glob('src/pages/admin/custom-emojis-manager2.vue'), - glob('src/pages/admin/overview.ap-requests.vue'), - glob('src/pages/user/home.vue'), - glob('src/pages/search.vue'), - ]); - const components = globs.flat(); + const components = [ + globSync('src/components/global/Mk*.vue'), + globSync('src/components/global/RouterView.vue'), + globSync('src/components/MkAbuseReportWindow.vue'), + globSync('src/components/MkAccountMoved.vue'), + globSync('src/components/MkAchievements.vue'), + globSync('src/components/MkAnalogClock.vue'), + globSync('src/components/MkAnimBg.vue'), + globSync('src/components/MkAnnouncementDialog.vue'), + globSync('src/components/MkAntennaEditor.vue'), + globSync('src/components/MkAntennaEditorDialog.vue'), + globSync('src/components/MkAsUi.vue'), + globSync('src/components/MkAutocomplete.vue'), + globSync('src/components/MkAvatars.vue'), + globSync('src/components/Mk[B-E]*.vue'), + globSync('src/components/MkFlashPreview.vue'), + globSync('src/components/MkGalleryPostPreview.vue'), + globSync('src/components/MkSignupServerRules.vue'), + globSync('src/components/MkUserSetupDialog.vue'), + globSync('src/components/MkUserSetupDialog.*.vue'), + globSync('src/components/MkImgPreviewDialog.vue'), + globSync('src/components/MkInstanceCardMini.vue'), + globSync('src/components/MkInviteCode.vue'), + globSync('src/components/MkTagItem.vue'), + globSync('src/components/MkRoleSelectDialog.vue'), + globSync('src/components/grid/MkGrid.vue'), + globSync('src/pages/admin/custom-emojis-manager2.vue'), + globSync('src/pages/admin/overview.ap-requests.vue'), + globSync('src/pages/user/home.vue'), + globSync('src/pages/search.vue'), + ].flat(); await Promise.all(components.map(async (component) => { const stories = component.replace(/\.vue$/, '.stories.ts'); await writeFile(stories, await toStories(component)); diff --git a/packages/frontend/lib/vite-plugin-create-search-index.ts b/packages/frontend/lib/vite-plugin-create-search-index.ts index f17b43b0e3..cfbba0823c 100644 --- a/packages/frontend/lib/vite-plugin-create-search-index.ts +++ b/packages/frontend/lib/vite-plugin-create-search-index.ts @@ -16,7 +16,6 @@ import { type PluginOption } from 'vite'; import fs from 'node:fs'; -import { glob } from 'glob'; import JSON5 from 'json5'; import MagicString, { SourceMap } from 'magic-string'; import path from 'node:path' @@ -724,7 +723,7 @@ export function pluginCreateSearchIndexVirtualModule(options: Options, asigner: async load(id) { if (id == '\0' + allSearchIndexFile) { - const files = await Promise.all(options.targetFilePaths.map(async (filePathPattern) => await glob(filePathPattern))).then(paths => paths.flat()); + const files = options.targetFilePaths.map((filePathPattern) => fs.globSync(filePathPattern)).flat(); let generatedFile = ''; let arrayElements = ''; for (let file of files) { diff --git a/packages/frontend/package.json b/packages/frontend/package.json index c9d49201c4..785dbbcfab 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -128,7 +128,6 @@ "cypress": "15.7.0", "eslint-plugin-import": "2.32.0", "eslint-plugin-vue": "10.6.2", - "fast-glob": "3.3.3", "happy-dom": "20.0.11", "intersection-observer": "0.12.2", "micromatch": "4.0.8", diff --git a/packages/i18n/build.ts b/packages/i18n/build.ts index a6bbf7dc63..21bf2996b4 100644 --- a/packages/i18n/build.ts +++ b/packages/i18n/build.ts @@ -10,7 +10,6 @@ import { watch as chokidarWatch } from 'chokidar'; import * as esbuild from 'esbuild'; import { build } from 'esbuild'; import { execa } from 'execa'; -import { globSync } from 'glob'; import { generateLocaleInterface } from './scripts/generateLocaleInterface.js'; import type { BuildOptions, BuildResult, Plugin, PluginBuild } from 'esbuild'; @@ -22,7 +21,7 @@ const _rootPackage = JSON.parse(fs.readFileSync(resolve(_rootPackageDir, 'packag const _frontendLocalesDir = resolve(_dirname, '../../built/_frontend_dist_/locales'); const _localesDir = resolve(_rootPackageDir, 'locales'); -const entryPoints = globSync('./src/**/**.{ts,tsx}'); +const entryPoints = fs.globSync('./src/**/**.{ts,tsx}'); const options: BuildOptions = { entryPoints, diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 6ba41632e8..0354c26d15 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -35,7 +35,6 @@ "chokidar": "4.0.3", "esbuild": "0.27.0", "execa": "9.6.0", - "glob": "11.1.0", "nodemon": "3.1.11", "tsx": "4.20.6", "typescript": "5.9.3" diff --git a/packages/icons-subsetter/package.json b/packages/icons-subsetter/package.json index 2c6eac150b..597520ff36 100644 --- a/packages/icons-subsetter/package.json +++ b/packages/icons-subsetter/package.json @@ -19,7 +19,6 @@ "dependencies": { "@tabler/icons-webfont": "3.35.0", "harfbuzzjs": "0.4.13", - "tiny-glob": "0.2.9", "tsx": "4.20.6", "typescript": "5.9.3", "wawoff2": "2.0.1" diff --git a/packages/icons-subsetter/src/generator.ts b/packages/icons-subsetter/src/generator.ts index 1a9e3d8fd2..811972baae 100644 --- a/packages/icons-subsetter/src/generator.ts +++ b/packages/icons-subsetter/src/generator.ts @@ -3,9 +3,8 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { promises as fsp, existsSync } from 'fs'; -import path from 'path'; -import glob from 'tiny-glob'; +import { promises as fsp, existsSync } from 'node:fs'; +import path from 'node:path'; import { generateSubsettedFont } from './subsetter.js'; const filesToScan = { @@ -47,8 +46,8 @@ async function main() { const iconsToPack = new Set(); const cwd = path.resolve(process.cwd(), '../../'); - const files = await glob(dir, { cwd }); - for (const file of files) { + const files = fsp.glob(dir, { cwd }); + for await (const file of files) { //console.log(`Scanning ${file}`); const content = await fsp.readFile(path.resolve(cwd, file), 'utf-8'); const classRegex = /ti-[a-z0-9-]+/g; diff --git a/packages/misskey-bubble-game/build.js b/packages/misskey-bubble-game/build.js index 5d534cc6fd..1a6f87a8e8 100644 --- a/packages/misskey-bubble-game/build.js +++ b/packages/misskey-bubble-game/build.js @@ -3,14 +3,13 @@ import { fileURLToPath } from 'node:url'; import { dirname } from 'node:path'; import * as esbuild from 'esbuild'; import { build } from 'esbuild'; -import { globSync } from 'glob'; import { execa } from 'execa'; const _filename = fileURLToPath(import.meta.url); const _dirname = dirname(_filename); const _package = JSON.parse(fs.readFileSync(_dirname + '/package.json', 'utf-8')); -const entryPoints = globSync('./src/**/**.{ts,tsx}'); +const entryPoints = fs.globSync('./src/**/**.{ts,tsx}'); /** @type {import('esbuild').BuildOptions} */ const options = { diff --git a/packages/misskey-bubble-game/package.json b/packages/misskey-bubble-game/package.json index 8dd68aec44..978d77e0e4 100644 --- a/packages/misskey-bubble-game/package.json +++ b/packages/misskey-bubble-game/package.json @@ -31,7 +31,6 @@ "@typescript-eslint/parser": "8.48.0", "esbuild": "0.27.0", "execa": "9.6.0", - "glob": "11.1.0", "nodemon": "3.1.11", "typescript": "5.9.3" }, diff --git a/packages/misskey-js/build.js b/packages/misskey-js/build.js index b794592815..68535556d3 100644 --- a/packages/misskey-js/build.js +++ b/packages/misskey-js/build.js @@ -3,14 +3,13 @@ import { fileURLToPath } from 'node:url'; import { dirname } from 'node:path'; import * as esbuild from 'esbuild'; import { build } from 'esbuild'; -import { globSync } from 'glob'; import { execa } from 'execa'; const _filename = fileURLToPath(import.meta.url); const _dirname = dirname(_filename); const _package = JSON.parse(fs.readFileSync(_dirname + '/package.json', 'utf-8')); -const entryPoints = globSync('./src/**/**.{ts,tsx}'); +const entryPoints = fs.globSync('./src/**/**.{ts,tsx}'); /** @type {import('esbuild').BuildOptions} */ const options = { diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index 1c0e6ceee6..c549eaf0e4 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -44,7 +44,6 @@ "@vitest/coverage-v8": "4.0.13", "esbuild": "0.27.0", "execa": "9.6.0", - "glob": "13.0.0", "ncp": "2.0.0", "nodemon": "3.1.11", "tsd": "0.33.0", diff --git a/packages/misskey-reversi/build.js b/packages/misskey-reversi/build.js index 5d534cc6fd..1a6f87a8e8 100644 --- a/packages/misskey-reversi/build.js +++ b/packages/misskey-reversi/build.js @@ -3,14 +3,13 @@ import { fileURLToPath } from 'node:url'; import { dirname } from 'node:path'; import * as esbuild from 'esbuild'; import { build } from 'esbuild'; -import { globSync } from 'glob'; import { execa } from 'execa'; const _filename = fileURLToPath(import.meta.url); const _dirname = dirname(_filename); const _package = JSON.parse(fs.readFileSync(_dirname + '/package.json', 'utf-8')); -const entryPoints = globSync('./src/**/**.{ts,tsx}'); +const entryPoints = fs.globSync('./src/**/**.{ts,tsx}'); /** @type {import('esbuild').BuildOptions} */ const options = { diff --git a/packages/misskey-reversi/package.json b/packages/misskey-reversi/package.json index 30eace87fe..85c829204e 100644 --- a/packages/misskey-reversi/package.json +++ b/packages/misskey-reversi/package.json @@ -29,7 +29,6 @@ "@typescript-eslint/parser": "8.48.0", "esbuild": "0.27.0", "execa": "9.6.0", - "glob": "11.1.0", "nodemon": "3.1.11", "typescript": "5.9.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c9fa1c4a01..56a73fb5fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,12 +22,6 @@ importers: execa: specifier: 9.6.0 version: 9.6.0 - fast-glob: - specifier: 3.3.3 - version: 3.3.3 - glob: - specifier: 13.0.0 - version: 13.0.0 ignore-walk: specifier: 8.0.0 version: 8.0.0 @@ -1011,9 +1005,6 @@ importers: eslint-plugin-vue: specifier: 10.6.2 version: 10.6.2(@stylistic/eslint-plugin@5.5.0(eslint@9.39.1))(@typescript-eslint/parser@8.48.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)) - fast-glob: - specifier: 3.3.3 - version: 3.3.3 happy-dom: specifier: 20.0.11 version: 20.0.11 @@ -1250,9 +1241,6 @@ importers: eslint-plugin-vue: specifier: 10.6.2 version: 10.6.2(@stylistic/eslint-plugin@5.5.0(eslint@9.39.1))(@typescript-eslint/parser@8.48.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(vue-eslint-parser@10.2.0(eslint@9.39.1)) - fast-glob: - specifier: 3.3.3 - version: 3.3.3 happy-dom: specifier: 20.0.11 version: 20.0.11 @@ -1354,9 +1342,6 @@ importers: execa: specifier: 9.6.0 version: 9.6.0 - glob: - specifier: 11.1.0 - version: 11.1.0 nodemon: specifier: 3.1.11 version: 3.1.11 @@ -1375,9 +1360,6 @@ importers: harfbuzzjs: specifier: 0.4.13 version: 0.4.13 - tiny-glob: - specifier: 0.2.9 - version: 0.2.9 tsx: specifier: 4.20.6 version: 4.20.6 @@ -1434,9 +1416,6 @@ importers: execa: specifier: 9.6.0 version: 9.6.0 - glob: - specifier: 11.1.0 - version: 11.1.0 nodemon: specifier: 3.1.11 version: 3.1.11 @@ -1477,9 +1456,6 @@ importers: execa: specifier: 9.6.0 version: 9.6.0 - glob: - specifier: 13.0.0 - version: 13.0.0 ncp: specifier: 2.0.0 version: 2.0.0 @@ -1553,9 +1529,6 @@ importers: execa: specifier: 9.6.0 version: 9.6.0 - glob: - specifier: 11.1.0 - version: 11.1.0 nodemon: specifier: 3.1.11 version: 3.1.11 @@ -7283,10 +7256,6 @@ packages: engines: {node: 20 || >=22} hasBin: true - glob@13.0.0: - resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} - engines: {node: 20 || >=22} - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -7307,16 +7276,10 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - google-protobuf@3.21.4: resolution: {integrity: sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==} @@ -10509,9 +10472,6 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -18789,12 +18749,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 2.0.1 - glob@13.0.0: - dependencies: - minimatch: 10.1.1 - minipass: 7.1.2 - path-scurry: 2.0.1 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -18817,8 +18771,6 @@ snapshots: define-properties: 1.2.1 gopd: 1.2.0 - globalyzer@0.1.0: {} - globby@11.1.0: dependencies: array-union: 2.1.0 @@ -18828,8 +18780,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globrex@0.1.2: {} - google-protobuf@3.21.4: optional: true @@ -22588,11 +22538,6 @@ snapshots: through@2.3.8: {} - tiny-glob@0.2.9: - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - tiny-invariant@1.3.3: {} tinybench@2.9.0: {} diff --git a/scripts/tarball.mjs b/scripts/tarball.mjs index fddbe3b04a..d1fe4de4f5 100644 --- a/scripts/tarball.mjs +++ b/scripts/tarball.mjs @@ -3,11 +3,10 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { createWriteStream } from 'node:fs'; +import { createWriteStream, promises as fsp } from 'node:fs'; import { mkdir } from 'node:fs/promises'; import { resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; -import glob from 'fast-glob'; import walk from 'ignore-walk'; import { Pack } from 'tar/pack'; import meta from '../package.json' with { type: "json" }; @@ -25,7 +24,7 @@ export default async function build() { const pack = new Pack({ cwd, gzip: true }); const patterns = await walk({ path: cwd, ignoreFiles: ['.gitignore'] }); - for await (const entry of glob.stream(patterns, { cwd, ignore, dot: true })) { + for await (const entry of fsp.glob(patterns, { cwd, ignore, dot: true })) { pack.add(entry); }