diff --git a/.eleventy.js b/.eleventy.js index 72a94392..89f21ec8 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,87 +1,58 @@ +// .eleventy.ts import path from "path"; import { EleventyRenderPlugin } from "@11ty/eleventy"; import eleventyNavigationPlugin from "@11ty/eleventy-navigation"; import buildAssets from "./build-assets.js"; - -const now = String(Date.now()); - -// создаем коллекции на основе папок -// например newsByYear = { 2025: [{}], 2024: [{}], ... } -const makeCollection = (collection, folderName) => { +var now = String(Date.now()); +var makeCollection = (collection, folderName) => { const files = collection.getFilteredByGlob(`./pages/${folderName}/**/*.md`); return files.reduce((years, post) => { const year = path.dirname(post.inputPath).split("/").pop(); - if (!years[year]) years[year] = []; - - // добавляем в начало - // years[year].push(post); + if (!years[year]) { + years[year] = []; + } years[year].unshift(post); return years; }, {}); }; - -export default function (eleventyConfig) { - // Enable quiet mode to reduce console noise +function eleventy_default(eleventyConfig) { eleventyConfig.setQuietMode(true); - eleventyConfig.addPlugin(eleventyNavigationPlugin); - - // https://www.11ty.dev/docs/plugins/render/#renderfile eleventyConfig.addPlugin(EleventyRenderPlugin); - - // Copy all images directly to dist. eleventyConfig.addPassthroughCopy({ "src/assets/images": "/assets/images" }); - // Copy robots.txt, etc to dist. eleventyConfig.addPassthroughCopy({ "src/assets/static/*": "/" }); - - // папки для создания авто-коллекций - // @see makeCollection const folders = ["news"]; folders.forEach((folderName) => { - eleventyConfig.addCollection(`${folderName}ByYear`, (collection) => - makeCollection(collection, folderName) + eleventyConfig.addCollection( + `${folderName}ByYear`, + (collection) => makeCollection(collection, folderName) ); }); - - // Отображаем дату в человеко-понятном виде, например 11 февраля - // @example {{ post.date | getHumanDate }} - eleventyConfig.addFilter("getHumanDate", function (dateObj) { + eleventyConfig.addFilter("getHumanDate", function(dateObj) { const date = new Date(dateObj); const options = { + // Type options day: "2-digit", - month: "long", - locale: "ru-RU", + month: "long" }; return date.toLocaleDateString("ru-RU", options); }); - - // фильтр обрезает коллекцию - // @example {{ collection | limit(2) }} - eleventyConfig.addNunjucksFilter("limit", (array, limit) => - array.slice(0, limit) + eleventyConfig.addNunjucksFilter( + "limit", + (array, limit) => ( + // Type array and limit + array.slice(0, limit) + ) ); - - // TODO: фильтр для создания архива по годам - // eleventyConfig.addFilter("getYears", function (collection) { - // return Object.keys(collection); - // }); - - // текущий год доступен глобально eleventyConfig.addGlobalData( "getGlobalCurrentYear", - new Date().getFullYear().toString() + (/* @__PURE__ */ new Date()).getFullYear().toString() ); - - // Add cache busting with {% version %} time string - eleventyConfig.addShortcode("version", function () { + eleventyConfig.addShortcode("version", function() { return now; }); - - // Build JS and CSS assets eleventyConfig.on("beforeBuild", buildAssets); - eleventyConfig.addWatchTarget("./src/assets/"); - return { templateFormats: ["md", "njk", "html"], dir: { @@ -89,7 +60,10 @@ export default function (eleventyConfig) { output: "dist", includes: "../src/_includes", data: "../src/_data", - layouts: "../src/_includes/layouts", - }, + layouts: "../src/_includes/layouts" + } }; +} +export { + eleventy_default as default }; diff --git a/.eleventy.ts b/.eleventy.ts new file mode 100644 index 00000000..396e1f3f --- /dev/null +++ b/.eleventy.ts @@ -0,0 +1,85 @@ +import path from "path"; +import { EleventyRenderPlugin } from "@11ty/eleventy"; +import eleventyNavigationPlugin from "@11ty/eleventy-navigation"; +import buildAssets from "./build-assets.js"; // Points to the compiled .ts output +import type { UserConfig, CollectionItem } from "@11ty/eleventy"; // Import UserConfig and CollectionItem + +const now: string = String(Date.now()); + +// Define a type for the 'years' accumulator object in makeCollection +interface YearCollection { + [year: string]: CollectionItem[]; +} + +// Define a type for the collection API object passed to makeCollection +interface EleventyCollectionApi { + getFilteredByGlob(glob: string): CollectionItem[]; +} + +const makeCollection = (collection: EleventyCollectionApi, folderName: string): YearCollection => { + const files: CollectionItem[] = collection.getFilteredByGlob(`./pages/${folderName}/**/*.md`); + return files.reduce((years: YearCollection, post: CollectionItem) => { + const year = path.dirname(post.inputPath).split("/").pop() as string; // Ensure year is string + if (!years[year]) { + years[year] = []; + } + years[year].unshift(post); + return years; + }, {}); +}; + +export default function (eleventyConfig: UserConfig): UserConfig { // Type eleventyConfig and return type + eleventyConfig.setQuietMode(true); + eleventyConfig.addPlugin(eleventyNavigationPlugin); + eleventyConfig.addPlugin(EleventyRenderPlugin); + + eleventyConfig.addPassthroughCopy({ "src/assets/images": "/assets/images" }); + eleventyConfig.addPassthroughCopy({ "src/assets/static/*": "/" }); + + const folders: string[] = ["news"]; + folders.forEach((folderName: string) => { + eleventyConfig.addCollection(`${folderName}ByYear`, (collection: EleventyCollectionApi) => + makeCollection(collection, folderName) + ); + }); + + eleventyConfig.addFilter("getHumanDate", function (dateObj: string | Date): string { // Type dateObj + const date = new Date(dateObj); + const options: Intl.DateTimeFormatOptions = { // Type options + day: "2-digit", + month: "long", + }; + return date.toLocaleDateString("ru-RU", options); + }); + + eleventyConfig.addNunjucksFilter("limit", (array: any[], limit: number): any[] => // Type array and limit + array.slice(0, limit) + ); + + eleventyConfig.addGlobalData( + "getGlobalCurrentYear", + new Date().getFullYear().toString() + ); + + eleventyConfig.addShortcode("version", function (): string { + return now; + }); + + // Type the buildAssets function if its signature is known, otherwise any + // Assuming buildAssets is async () => Promise as per build-assets.ts + eleventyConfig.on("beforeBuild", buildAssets as () => Promise); + + eleventyConfig.addWatchTarget("./src/assets/"); + + // Ensure the return object matches Eleventy's expected config structure (implicitly typed by UserConfig return type) + return { + templateFormats: ["md", "njk", "html"], + dir: { + input: "pages", + output: "dist", + includes: "../src/_includes", + data: "../src/_data", + layouts: "../src/_includes/layouts", + }, + }; +} diff --git a/build-assets.js b/build-assets.js index 6840afcd..d13229df 100644 --- a/build-assets.js +++ b/build-assets.js @@ -1,64 +1,54 @@ -import { build } from 'esbuild'; -import { YAMLPlugin } from 'esbuild-yaml'; -import { exec } from 'child_process'; - -const input = 'src/assets'; -const output = 'dist/assets'; - -/** - * Собираем JS файлы - */ +// build-assets.ts +import { build } from "esbuild"; +import { YAMLPlugin } from "esbuild-yaml"; +import { exec } from "child_process"; +var input = "src/assets"; +var output = "dist/assets"; async function buildJavaScript(isProduction) { - console.log('= 1 = Сборка JS файлов...'); - await build({ - entryPoints: [`${input}/js/index.js`], - bundle: true, - outdir: `${output}/js`, - minify: isProduction, - sourcemap: !isProduction, - target: 'es6', - plugins: [YAMLPlugin()], - }); + console.log("= 1 = \u0421\u0431\u043E\u0440\u043A\u0430 JS \u0444\u0430\u0439\u043B\u043E\u0432..."); + const options = { + entryPoints: [`${input}/js/index.js`], + bundle: true, + outdir: `${output}/js`, + minify: isProduction, + sourcemap: !isProduction, + target: "es6", + plugins: [YAMLPlugin()] + }; + await build(options); } - -/** - * Собираем CSS файлы с помощью PostCSS - */ async function buildStyles(isProduction) { - console.log('= 2 = Сборка CSS файлов...'); - - const postcssInputs = [ - `${input}/styles/index.css`, - `${input}/styles/critical.css` - ].join(' '); - - const noMapOption = isProduction ? '' : '--no-map'; - const postcssCommand = `postcss ${postcssInputs} --dir ${output}/styles --config postcss.config.cjs ${noMapOption}`; - - return new Promise((resolve, reject) => { - exec(postcssCommand, (error, stdout, stderr) => { - if (error) { - console.error('PostCSS Error:', stderr); - console.error('PostCSS Stdout:', stdout); // Also log stdout for more context - reject(error); - } else { - resolve(); - } - }); + console.log("= 2 = \u0421\u0431\u043E\u0440\u043A\u0430 CSS \u0444\u0430\u0439\u043B\u043E\u0432..."); + const postcssInputs = [ + `${input}/styles/index.css`, + `${input}/styles/critical.css` + ].join(" "); + const noMapOption = isProduction ? "" : "--no-map"; + const postcssCommand = `postcss ${postcssInputs} --dir ${output}/styles --config postcss.config.js ${noMapOption}`; + return new Promise((resolve, reject) => { + exec(postcssCommand, (error, stdout, stderr) => { + if (error) { + console.error("PostCSS Error:", stderr); + console.error("PostCSS Stdout:", stdout); + reject(error); + } else { + resolve(); + } }); + }); +} +async function eleventyBuildAssets() { + const isProduction = process.env.NODE_ENV === "production"; + console.log(`\u041F\u0440\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0443\u0449\u0435\u043D\u043E \u0432 \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u0438: ${isProduction ? "production" : "development"}`); + try { + await buildJavaScript(isProduction); + await buildStyles(isProduction); + console.log("\u2705 CSS \u0438 JS \u0444\u0430\u0439\u043B\u044B \u0441\u043E\u0431\u0440\u0430\u043D\u044B \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u043E."); + } catch (e) { + console.error("Overall build failed:", e); + process.exit(1); + } } - -// Main build function exported for Eleventy -export default async () => { - const isProduction = process.env.NODE_ENV === 'production'; - console.log(`Проложение запущено в окружении: ${isProduction ? 'production' : 'development'}`); - - try { - await buildJavaScript(isProduction); - await buildStyles(isProduction); - console.log('✅ CSS и JS файлы собраны корректно.'); - } catch (e) { - console.error('Overall build failed:', e); - process.exit(1); // Ensure process exits on failure - } +export { + eleventyBuildAssets as default }; diff --git a/build-assets.ts b/build-assets.ts new file mode 100644 index 00000000..0dcba3c1 --- /dev/null +++ b/build-assets.ts @@ -0,0 +1,66 @@ +import { build, BuildOptions } from 'esbuild'; +import { YAMLPlugin } from 'esbuild-yaml'; +import { exec, ChildProcess } from 'child_process'; // Import ChildProcess for typing if needed, though exec types from @types/node are usually sufficient + +const input: string = 'src/assets'; +const output: string = 'dist/assets'; + +/** + * Собираем JS файлы + */ +async function buildJavaScript(isProduction: boolean): Promise { + console.log('= 1 = Сборка JS файлов...'); + const options: BuildOptions = { + entryPoints: [`${input}/js/index.js`], + bundle: true, + outdir: `${output}/js`, + minify: isProduction, + sourcemap: !isProduction, + target: 'es6', + plugins: [YAMLPlugin()], + }; + await build(options); +} + +/** + * Собираем CSS файлы с помощью PostCSS + */ +async function buildStyles(isProduction: boolean): Promise { + console.log('= 2 = Сборка CSS файлов...'); + + const postcssInputs: string = [ + `${input}/styles/index.css`, + `${input}/styles/critical.css` + ].join(' '); + + const noMapOption: string = isProduction ? '' : '--no-map'; + // IMPORTANT: Update to use postcss.config.js + const postcssCommand: string = `postcss ${postcssInputs} --dir ${output}/styles --config postcss.config.js ${noMapOption}`; + + return new Promise((resolve, reject) => { + exec(postcssCommand, (error, stdout, stderr) => { + if (error) { + console.error('PostCSS Error:', stderr); + console.error('PostCSS Stdout:', stdout); // Also log stdout for more context + reject(error); + } else { + resolve(); + } + }); + }); +} + +// Main build function exported for Eleventy +export default async function eleventyBuildAssets(): Promise { + const isProduction: boolean = process.env.NODE_ENV === 'production'; + console.log(`Проложение запущено в окружении: ${isProduction ? 'production' : 'development'}`); + + try { + await buildJavaScript(isProduction); + await buildStyles(isProduction); + console.log('✅ CSS и JS файлы собраны корректно.'); + } catch (e: any) { // Or unknown, then check type + console.error('Overall build failed:', e); + process.exit(1); // Ensure process exits on failure + } +} diff --git a/package.json b/package.json index 7084b6f7..2533bc2f 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,10 @@ }, "scripts": { "clear": "rm -rf ./dist", + "compile:config": "esbuild .eleventy.ts --outfile=.eleventy.js --platform=node --format=esm --bundle --external:path --external:@11ty/eleventy --external:@11ty/eleventy-navigation --external:./build-assets.js && esbuild build-assets.ts --outfile=build-assets.js --platform=node --format=esm --bundle --external:child_process --external:esbuild --external:esbuild-yaml && esbuild postcss.config.ts --outfile=postcss.config.js --platform=node --format=esm --bundle --external:postcss-import --external:postcss-custom-media --external:postcss-preset-env", "start": "yarn watch", - "watch": "yarn clear && eleventy --serve --watch", - "build": "yarn clear && NODE_ENV=production eleventy", + "watch": "yarn clear && yarn compile:config && eleventy --serve --watch", + "build": "yarn clear && yarn compile:config && NODE_ENV=production eleventy", "deploy": "yarn build && yarn transfer", "transfer": "env-cmd -x rsync -az ./dist/ \\$SSH_HOST:\\$SSH_PATH" }, @@ -27,7 +28,10 @@ "postcss-cli": "^11.0.1", "postcss-custom-media": "^10.0.4", "postcss-import": "^16.1.0", - "postcss-preset-env": "^10.2.0" + "postcss-preset-env": "^10.2.0", + "typescript": "^5.0.0", + "@types/node": "^20.0.0", + "tsx": "^4.7.0" }, "dependencies": { "dayjs": "^1.11.6" diff --git a/postcss.config.cjs b/postcss.config.cjs deleted file mode 100644 index 8fdc058d..00000000 --- a/postcss.config.cjs +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - plugins: [ - require('postcss-import'), - require('postcss-custom-media')(), - require('postcss-preset-env')({ - stage: 1, // Поддержка черновиков CSS (0-4, где 4 — стабильные) - }) - ] -}; diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..46c88080 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,19 @@ +// postcss.config.ts +import postcssImport from "postcss-import"; +import postcssCustomMedia from "postcss-custom-media"; +import postcssPresetEnv from "postcss-preset-env"; +var config = { + plugins: [ + postcssImport(), + // postcssImport is a function that returns a plugin + postcssCustomMedia(), + postcssPresetEnv({ + stage: 1 + // Поддержка черновиков CSS (0-4, где 4 — стабильные) + }) + ] +}; +var postcss_config_default = config; +export { + postcss_config_default as default +}; diff --git a/postcss.config.ts b/postcss.config.ts new file mode 100644 index 00000000..a68041e1 --- /dev/null +++ b/postcss.config.ts @@ -0,0 +1,21 @@ +import postcssImport from 'postcss-import'; +import postcssCustomMedia from 'postcss-custom-media'; +import postcssPresetEnv from 'postcss-preset-env'; +import type { Plugin } from 'postcss'; // General type for PostCSS plugins + +// Define a type for the configuration structure if specific one isn't readily available +interface PostcssConfig { + plugins: Plugin[]; +} + +const config: PostcssConfig = { + plugins: [ + postcssImport(), // postcssImport is a function that returns a plugin + postcssCustomMedia(), + postcssPresetEnv({ + stage: 1, // Поддержка черновиков CSS (0-4, где 4 — стабильные) + }) + ] +}; + +export default config; diff --git a/src/_includes/components/footer.njk b/src/_includes/components/footer.njk index 14e83bf1..0923ec4b 100644 --- a/src/_includes/components/footer.njk +++ b/src/_includes/components/footer.njk @@ -5,4 +5,4 @@ - + diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..b79eca27 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", // Or "NodeNext", Bundler is often good with esbuild + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "isolatedModules": true, // Good for esbuild + "strict": true, + "noEmit": true, // True if tsc is only for type checking, esbuild handles transpile + "skipLibCheck": true, // Optional: Speeds up compilation by not checking lib files + "forceConsistentCasingInFileNames": true, + "rootDir": ".", // Or specify more granularly if needed + "baseUrl": ".", // Helps with path resolution if you use paths + "paths": { // Example, adjust if needed + "*": ["node_modules/*"] + }, + "lib": ["ESNext", "DOM"] // Include DOM if any client-side types creep into build scripts, otherwise just ESNext + }, + "include": [ + "build-assets.ts", + ".eleventy.ts", + "postcss.config.ts" + // Add other TS files or patterns like "src/**/*.ts" if client-side TS was in scope + ], + "exclude": [ + "node_modules", + "dist", + "src/LEGACY", // Exclude legacy JS + "pages/**/*.js" // Exclude existing JS page data for now + ] +} diff --git a/yarn.lock b/yarn.lock index 5835557d..1be173d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -497,126 +497,251 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64" integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ== +"@esbuild/aix-ppc64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz#4e0f91776c2b340e75558f60552195f6fad09f18" + integrity sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA== + "@esbuild/android-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f" integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g== +"@esbuild/android-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz#bc766407f1718923f6b8079c8c61bf86ac3a6a4f" + integrity sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg== + "@esbuild/android-arm@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b" integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g== +"@esbuild/android-arm@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.5.tgz#4290d6d3407bae3883ad2cded1081a234473ce26" + integrity sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA== + "@esbuild/android-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163" integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg== +"@esbuild/android-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.5.tgz#40c11d9cbca4f2406548c8a9895d321bc3b35eff" + integrity sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw== + "@esbuild/darwin-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c" integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw== +"@esbuild/darwin-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz#49d8bf8b1df95f759ac81eb1d0736018006d7e34" + integrity sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ== + "@esbuild/darwin-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a" integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg== +"@esbuild/darwin-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz#e27a5d92a14886ef1d492fd50fc61a2d4d87e418" + integrity sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ== + "@esbuild/freebsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce" integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w== +"@esbuild/freebsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz#97cede59d638840ca104e605cdb9f1b118ba0b1c" + integrity sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw== + "@esbuild/freebsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7" integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A== +"@esbuild/freebsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz#71c77812042a1a8190c3d581e140d15b876b9c6f" + integrity sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw== + "@esbuild/linux-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73" integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg== +"@esbuild/linux-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz#f7b7c8f97eff8ffd2e47f6c67eb5c9765f2181b8" + integrity sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg== + "@esbuild/linux-arm@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3" integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg== +"@esbuild/linux-arm@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz#2a0be71b6cd8201fa559aea45598dffabc05d911" + integrity sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw== + "@esbuild/linux-ia32@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19" integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg== +"@esbuild/linux-ia32@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz#763414463cd9ea6fa1f96555d2762f9f84c61783" + integrity sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA== + "@esbuild/linux-loong64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7" integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw== +"@esbuild/linux-loong64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz#428cf2213ff786a502a52c96cf29d1fcf1eb8506" + integrity sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg== + "@esbuild/linux-mips64el@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1" integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ== +"@esbuild/linux-mips64el@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz#5cbcc7fd841b4cd53358afd33527cd394e325d96" + integrity sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg== + "@esbuild/linux-ppc64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951" integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw== +"@esbuild/linux-ppc64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz#0d954ab39ce4f5e50f00c4f8c4fd38f976c13ad9" + integrity sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ== + "@esbuild/linux-riscv64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987" integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA== +"@esbuild/linux-riscv64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz#0e7dd30730505abd8088321e8497e94b547bfb1e" + integrity sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA== + "@esbuild/linux-s390x@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4" integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA== +"@esbuild/linux-s390x@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz#5669af81327a398a336d7e40e320b5bbd6e6e72d" + integrity sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ== + "@esbuild/linux-x64@0.25.0": version "0.25.0" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz" integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw== +"@esbuild/linux-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz#b2357dd153aa49038967ddc1ffd90c68a9d2a0d4" + integrity sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw== + "@esbuild/netbsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b" integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw== +"@esbuild/netbsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz#53b4dfb8fe1cee93777c9e366893bd3daa6ba63d" + integrity sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw== + "@esbuild/netbsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b" integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA== +"@esbuild/netbsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz#a0206f6314ce7dc8713b7732703d0f58de1d1e79" + integrity sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ== + "@esbuild/openbsd-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7" integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw== +"@esbuild/openbsd-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz#2a796c87c44e8de78001d808c77d948a21ec22fd" + integrity sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw== + "@esbuild/openbsd-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde" integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg== +"@esbuild/openbsd-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz#28d0cd8909b7fa3953af998f2b2ed34f576728f0" + integrity sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg== + "@esbuild/sunos-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92" integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg== +"@esbuild/sunos-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz#a28164f5b997e8247d407e36c90d3fd5ddbe0dc5" + integrity sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA== + "@esbuild/win32-arm64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c" integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw== +"@esbuild/win32-arm64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz#6eadbead38e8bd12f633a5190e45eff80e24007e" + integrity sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw== + "@esbuild/win32-ia32@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079" integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA== +"@esbuild/win32-ia32@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz#bab6288005482f9ed2adb9ded7e88eba9a62cc0d" + integrity sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ== + "@esbuild/win32-x64@0.25.0": version "0.25.0" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b" integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ== +"@esbuild/win32-x64@0.25.5": + version "0.25.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz#7fc114af5f6563f19f73324b5d5ff36ece0803d1" + integrity sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" @@ -670,6 +795,13 @@ dependencies: escape-string-regexp "^5.0.0" +"@types/node@^20.0.0": + version "20.17.57" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.57.tgz#f807455e3303ba8ba08fcb1db90619356abfaa99" + integrity sha512-f3T4y6VU4fVQDKVqJV4Uppy8c1p/sVvS3peyqxyWnzkqXFJLRU7Y1Bl7rMS1Qe9z0v4M6McY0Fp9yBsgHJUsWQ== + dependencies: + undici-types "~6.19.2" + a-sync-waterfall@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz" @@ -1115,6 +1247,37 @@ esbuild@^0.25.0: "@esbuild/win32-ia32" "0.25.0" "@esbuild/win32-x64" "0.25.0" +esbuild@~0.25.0: + version "0.25.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.5.tgz#71075054993fdfae76c66586f9b9c1f8d7edd430" + integrity sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.5" + "@esbuild/android-arm" "0.25.5" + "@esbuild/android-arm64" "0.25.5" + "@esbuild/android-x64" "0.25.5" + "@esbuild/darwin-arm64" "0.25.5" + "@esbuild/darwin-x64" "0.25.5" + "@esbuild/freebsd-arm64" "0.25.5" + "@esbuild/freebsd-x64" "0.25.5" + "@esbuild/linux-arm" "0.25.5" + "@esbuild/linux-arm64" "0.25.5" + "@esbuild/linux-ia32" "0.25.5" + "@esbuild/linux-loong64" "0.25.5" + "@esbuild/linux-mips64el" "0.25.5" + "@esbuild/linux-ppc64" "0.25.5" + "@esbuild/linux-riscv64" "0.25.5" + "@esbuild/linux-s390x" "0.25.5" + "@esbuild/linux-x64" "0.25.5" + "@esbuild/netbsd-arm64" "0.25.5" + "@esbuild/netbsd-x64" "0.25.5" + "@esbuild/openbsd-arm64" "0.25.5" + "@esbuild/openbsd-x64" "0.25.5" + "@esbuild/sunos-x64" "0.25.5" + "@esbuild/win32-arm64" "0.25.5" + "@esbuild/win32-ia32" "0.25.5" + "@esbuild/win32-x64" "0.25.5" + escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" @@ -1234,7 +1397,7 @@ fs-extra@^11.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fsevents@~2.3.2: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -1249,6 +1412,13 @@ get-caller-file@^2.0.5: resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-tsconfig@^4.7.5: + version "4.10.1" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.10.1.tgz#d34c1c01f47d65a606c37aa7a177bc3e56ab4b2e" + integrity sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ== + dependencies: + resolve-pkg-maps "^1.0.0" + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" @@ -2100,6 +2270,11 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + resolve@^1.1.7: version "1.22.2" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz" @@ -2306,11 +2481,31 @@ toidentifier@1.0.1: resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +tsx@^4.7.0: + version "4.19.4" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.4.tgz#647b4141f4fdd9d773a9b564876773d2846901f4" + integrity sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q== + dependencies: + esbuild "~0.25.0" + get-tsconfig "^4.7.5" + optionalDependencies: + fsevents "~2.3.3" + +typescript@^5.0.0: + version "5.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== + uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + universalify@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz"