Browse Source

Merge branch 'main' into perf-improve-font-generation-time

pull/1316/head
kakkokari-gtyih 5 months ago
parent
commit
72cf530862
  1. 2
      package.json
  2. 73
      packages/icons-webfont/.build/build-utilities.mjs
  3. 77
      packages/icons-webfont/.build/build-webfont.mjs
  4. 5
      packages/icons-webfont/package.json
  5. 197
      pnpm-lock.yaml

2
package.json

@ -110,7 +110,7 @@
"release": true
}
},
"packageManager": "pnpm@7.17.0",
"packageManager": "pnpm@8.15.9",
"dependencies": {
"crypto-js": "^4.2.0"
}

73
packages/icons-webfont/.build/build-utilities.mjs

@ -0,0 +1,73 @@
import fsPromises from 'node:fs/promises';
import {createReadStream} from 'node:fs';
import {SVGIcons2SVGFontStream} from "svgicons2svgfont";
/**
* @typedef {stream.Readable & { metadata?: import('svgicons2svgfont').FileMetadata }} Svgicons2svgfontStream
*/
/**
*
* @param name {string} name
* @return {import('svgicons2svgfont').FileMetadata}
*/
function getMetadataFromSvgName(name) {
// we process uUnicode-Name.svg
const firstHyphen = name.indexOf('-');
const unicode = name.slice(1, firstHyphen);
const iconName = name.slice(firstHyphen + 1, -4);
const unicodeChar = String.fromCodePoint(parseInt(unicode, 16));
return {
unicode: [unicodeChar],
name: iconName,
}
}
/**
*
* @param path {string} The directory contains SVG files
* @return {Promise<Svgicons2svgfontStream[]>}
*/
export async function loadSvgFiles(path) {
const svgFiles = await fsPromises.readdir(path).then(files => files.filter(file => file.endsWith('.svg')));
svgFiles.sort();
return svgFiles.map(file => {
/** @type {Svgicons2svgfontStream} */
const stream = createReadStream(`${path}/${file}`);
stream.metadata = getMetadataFromSvgName(file);
return stream;
});
}
/**
*
* @param svgStreams {Svgicons2svgfontStream[]} SVG files
* @return {Promise<string>}
*/
export async function buildSvgFont(svgStreams) {
const fontStream = new SVGIcons2SVGFontStream({
fontName: 'tabler-icons',
normalize: true,
fontHeight: 1000,
descent: 100,
ascent: 900,
fixedWidth: false,
});
const fontStreamPromise = new Promise((resolve, reject) => {
const buffers = [];
fontStream.on('data', chunk => buffers.push(chunk));
fontStream.on('finish', () => {
resolve(buffers.join(''));
});
fontStream.on('error', reject);
});
svgStreams.forEach(stream => {
fontStream.write(stream);
});
fontStream.end();
return await fontStreamPromise;
}

77
packages/icons-webfont/.build/build-webfont.mjs

@ -1,10 +1,12 @@
import { webfont } from "webfont";
import * as fs from 'fs'
import * as fs from 'node:fs'
import template from 'lodash.template'
import { getPackageDir, getPackageJson, getAliases, types, asyncForEach, toPascalCase } from '../../../.build/helpers.mjs'
import { strokes, fontHeight } from './build-config.mjs'
import { buildSvgFont, loadSvgFiles } from './build-utilities.mjs'
import svg2ttf from 'svg2ttf'
import ttf2woff from 'ttf2woff'
import wawoff2 from 'wawoff2'
const formats = ['ttf', 'woff', 'woff2']
const p = getPackageJson()
const DIR = getPackageDir('icons-webfont')
@ -30,48 +32,39 @@ for (const strokeName in strokes) {
await asyncForEach(types, async type => {
console.log(`Building ${strokeName} webfont for ${type} icons`)
await webfont({
files: `icons-outlined/${strokeName}/${type}/*.svg`,
fontName: 'tabler-icons',
prependUnicode: true,
formats,
normalize: true,
fontHeight,
descent: 100,
ascent: 900,
fixedWidth: false
})
.then((result) => {
formats.forEach(format => {
fs.writeFileSync(`${DIR}/dist/fonts/tabler-icons${strokeName !== "400" ? `-${strokeName}` : ''}${type !== 'all' ? `-${type}` : ''}.${format}`, result[format])
})
const svgFiles = await loadSvgFiles(`icons-outlined/${strokeName}/${type}`);
const svgFontFileSource = await buildSvgFont(svgFiles);
const ttfFile = Buffer.from(svg2ttf(svgFontFileSource).buffer);
const woffFile = Buffer.from(ttf2woff(ttfFile).buffer);
const woff2File = await wawoff2.compress(ttfFile);
const fileName = `tabler-icons${strokeName !== "400" ? `-${strokeName}` : ''}${type !== 'all' ? `-${type}` : ''}`;
//fs.writeFileSync(`${DIR}/dist/fonts/${fileName}.svg`, svgFontFileSource); // for debug
fs.writeFileSync(`${DIR}/dist/fonts/${fileName}.ttf`, ttfFile);
fs.writeFileSync(`${DIR}/dist/fonts/${fileName}.woff`, woffFile);
fs.writeFileSync(`${DIR}/dist/fonts/${fileName}.woff2`, woff2File);
const glyphs = result.glyphsData
.map(icon => icon.metadata)
.sort(function (a, b) {
return ('' + a.name).localeCompare(b.name)
})
const glyphs = svgFiles.map(f => f.metadata)
.sort(function (a, b) {
return a.name.localeCompare(b.name)
})
const options = {
name: `Tabler Icons ${strokeName}${type !== 'all' ? ` ${toPascalCase(type)}` : ''}`,
fileName: `tabler-icons${strokeName !== "400" ? `-${strokeName}` : ''}${type !== 'all' ? `-${type}` : ''}`,
glyphs,
v: p.version,
aliases: (type === 'all' ? getAlliasesFlat() : aliases[type]) || {}
}
const options = {
name: `Tabler Icons${type !== 'all' ? ` ${toPascalCase(type)}` : ''}`,
fileName,
glyphs,
v: p.version,
aliases: (type === 'all' ? getAlliasesFlat() : aliases[type]) || {}
}
//scss
const compiled = template(fs.readFileSync(`${DIR}/.build/iconfont.scss`).toString())
const resultSCSS = compiled(options)
fs.writeFileSync(`${DIR}/dist/tabler-icons${strokeName !== "400" ? `-${strokeName}` : ''}${type !== 'all' ? `-${type}` : ''}.scss`, resultSCSS)
//scss
const compiled = template(fs.readFileSync(`${DIR}/.build/iconfont.scss`).toString())
const resultSCSS = compiled(options)
fs.writeFileSync(`${DIR}/dist/${fileName}.scss`, resultSCSS)
//html
const compiledHtml = template(fs.readFileSync(`${DIR}/.build/iconfont.html`).toString())
const resultHtml = compiledHtml(options)
fs.writeFileSync(`${DIR}/dist/tabler-icons${strokeName !== "400" ? `-${strokeName}` : ''}${type !== 'all' ? `-${type}` : ''}.html`, resultHtml)
})
.catch((error) => {
throw error;
});
//html
const compiledHtml = template(fs.readFileSync(`${DIR}/.build/iconfont.html`).toString())
const resultHtml = compiledHtml(options)
fs.writeFileSync(`${DIR}/dist/${fileName}.html`, resultHtml)
})
}

5
packages/icons-webfont/package.json

@ -48,6 +48,9 @@
"devDependencies": {
"execa": "^9.5.2",
"sass": "^1.71.1",
"webfont": "^11.2.26"
"svg2ttf": "^6.0.3",
"svgicons2svgfont": "^15.0.0",
"ttf2woff": "^3.0.0",
"wawoff2": "^2.0.1"
}
}

197
pnpm-lock.yaml

@ -309,9 +309,18 @@ importers:
sass:
specifier: ^1.71.1
version: 1.83.1
webfont:
specifier: ^11.2.26
version: 11.2.26(chokidar@3.6.0)
svg2ttf:
specifier: ^6.0.3
version: 6.0.3
svgicons2svgfont:
specifier: ^15.0.0
version: 15.0.1
ttf2woff:
specifier: ^3.0.0
version: 3.0.0
wawoff2:
specifier: ^2.0.1
version: 2.0.1
test/test-preact:
dependencies:
@ -2352,6 +2361,9 @@ packages:
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
'@types/sax@1.2.7':
resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
'@types/scheduler@0.23.0':
resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
@ -3055,6 +3067,10 @@ packages:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
commander@12.1.0:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@ -3366,10 +3382,6 @@ packages:
diffable-html@4.1.0:
resolution: {integrity: sha512-++kyNek+YBLH8cLXS+iTj/Hiy2s5qkRJEJ8kgu/WHbFrVY2vz9xPFUT+fii2zGF0m1CaojDlQJjkfrCt7YWM1g==}
dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
doctypes@1.1.0:
resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==}
@ -3967,9 +3979,6 @@ packages:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
geometry-interfaces@1.1.4:
resolution: {integrity: sha512-qD6OdkT6NcES9l4Xx3auTpwraQruU7dARbQPVO71MKvkGYw5/z/oIiGymuFXrRaEQa5Y67EIojUpaLeGEa5hGA==}
get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
@ -4070,10 +4079,6 @@ packages:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines: {node: '>= 0.4'}
globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
globby@14.0.1:
resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==}
engines: {node: '>=18'}
@ -4610,9 +4615,6 @@ packages:
resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
engines: {node: '>=16'}
isarray@0.0.1:
resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
@ -5285,9 +5287,6 @@ packages:
napi-build-utils@1.0.2:
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
neatequal@1.0.0:
resolution: {integrity: sha512-sVt5awO4a4w24QmAthdrCPiVRW3naB8FGLdyadin01BH+6BzNPEBwGrpwCczQvPlULS6uXTItTe1PJ5P0kYm7A==}
negotiator@0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
@ -5747,10 +5746,6 @@ packages:
path-to-regexp@6.3.0:
resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
path-type@5.0.0:
resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
engines: {node: '>=12'}
@ -6068,9 +6063,6 @@ packages:
resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
engines: {node: '>=8'}
readable-stream@1.1.14:
resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==}
readable-stream@2.3.8:
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
@ -6181,10 +6173,6 @@ packages:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
resolve-from@5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
resolve-package-path@3.1.0:
resolution: {integrity: sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA==}
engines: {node: 10.* || >= 12}
@ -6683,9 +6671,6 @@ packages:
resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
engines: {node: '>= 0.4'}
string_decoder@0.10.31:
resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
string_decoder@1.1.1:
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
@ -6817,17 +6802,17 @@ packages:
resolution: {integrity: sha512-nfSJw3wFJCB8lVupuhD4SZjExZS72W2CF4QDr9tHRxXlbmTUqWKU3uDMMf3EIgryC6Pl458G+Ct9jesM5NUBXQ==}
engines: {node: '>=8'}
svg-pathdata@6.0.3:
resolution: {integrity: sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==}
engines: {node: '>=12.0.0'}
svg-pathdata@7.1.0:
resolution: {integrity: sha512-wrvKHXZSYZyODOj5E1l1bMTIo8sR7YCH0E4SA8IgLgMsZq4RypslpYvNSsrdg4ThD6du2KWPyVeKinkqUelGhg==}
engines: {node: '>=20.11.1'}
svg2ttf@6.0.3:
resolution: {integrity: sha512-CgqMyZrbOPpc+WqH7aga4JWkDPso23EgypLsbQ6gN3uoPWwwiLjXvzgrwGADBExvCRJrWFzAeK1bSoSpE7ixSQ==}
hasBin: true
svgicons2svgfont@10.0.6:
resolution: {integrity: sha512-fUgQEVg3XwTbOHvlXahHGqCet5Wvfo1bV4DCvbSRvjsOCPCRunYbG4dUJCPegps37BMph3eOrfoobhH5AWuC6A==}
engines: {node: '>=12.0.0'}
svgicons2svgfont@15.0.1:
resolution: {integrity: sha512-rE3BoIipD6DxBejPswalKRZZYA+7sy4miHqiHgXB0zI1xJD3gSCVrXh2R6Sdh9E4XDTxYp7gDxGW2W8DIBif/g==}
engines: {node: '>=20.11.1'}
hasBin: true
svgo@3.3.2:
@ -6920,6 +6905,9 @@ packages:
resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
engines: {node: '>=18'}
transformation-matrix@3.0.0:
resolution: {integrity: sha512-C6NlNnD6T8JqDeY4BpGznuve4d8/JlLDZLcJbnnx7gQKoyk01+uk2XYVFjBGqvNsVxJUpUwb3WZpjpdPr+05FQ==}
trim-newlines@3.0.1:
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
engines: {node: '>=8'}
@ -6930,12 +6918,8 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
ttf2eot@2.0.0:
resolution: {integrity: sha512-U56aG2Ylw7psLOmakjemAzmpqVgeadwENg9oaDjaZG5NYX4WB6+7h74bNPcc+0BXsoU5A/XWiHabDXyzFOmsxQ==}
hasBin: true
ttf2woff@2.0.2:
resolution: {integrity: sha512-X68badwBjAy/+itU49scLjXUL094up+rHuYk+YAOTTBYSUMOmLZ7VyhZJuqQESj1gnyLAC2/5V8Euv+mExmyPA==}
ttf2woff@3.0.0:
resolution: {integrity: sha512-OvmFcj70PhmAsVQKfC15XoKH55cRWuaRzvr2fpTNhTNer6JBpG8n6vOhRrIgxMjcikyYt88xqYXMMVapJ4Rjvg==}
hasBin: true
tuf-js@1.1.7:
@ -7192,11 +7176,6 @@ packages:
validate-peer-dependencies@1.2.0:
resolution: {integrity: sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA==}
varstream@0.3.2:
resolution: {integrity: sha512-OpR3Usr9dGZZbDttlTxdviGdxiURI0prX68+DuaN/JfIDbK9ZOmREKM6PgmelsejMnhgjXmEEEgf+E4NbsSqMg==}
engines: {node: '>=0.10.*'}
hasBin: true
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@ -7347,11 +7326,6 @@ packages:
resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
engines: {node: '>= 14'}
webfont@11.2.26:
resolution: {integrity: sha512-ms9abzcJGMBj5yVTpNfAcyQB0SNzmi10aBlKLC7kAt1TQ5eZqieRhvhxN1BrXaizWV0nksp6vLqBfaJmBWmF7Q==}
engines: {node: '>= 12.0.0'}
hasBin: true
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
@ -7512,10 +7486,6 @@ packages:
xml-reader@2.4.3:
resolution: {integrity: sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==}
xml2js@0.4.23:
resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==}
engines: {node: '>=4.0.0'}
xml2js@0.5.0:
resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
engines: {node: '>=4.0.0'}
@ -7569,6 +7539,10 @@ packages:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
yerror@8.0.0:
resolution: {integrity: sha512-FemWD5/UqNm8ffj8oZIbjWXIF2KE0mZssggYpdaQkWDDgXBQ/35PNIxEuz6/YLn9o0kOxDBNJe8x8k9ljD7k/g==}
engines: {node: '>=18.16.0'}
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@ -9936,6 +9910,10 @@ snapshots:
'@types/resolve@1.20.2': {}
'@types/sax@1.2.7':
dependencies:
'@types/node': 22.10.5
'@types/scheduler@0.23.0': {}
'@types/stack-utils@2.0.3': {}
@ -10765,6 +10743,8 @@ snapshots:
commander@10.0.1: {}
commander@12.1.0: {}
commander@2.20.3: {}
commander@5.1.0: {}
@ -11068,10 +11048,6 @@ snapshots:
dependencies:
htmlparser2: 3.10.1
dir-glob@3.0.1:
dependencies:
path-type: 4.0.0
doctypes@1.1.0: {}
dom-accessibility-api@0.5.16: {}
@ -11750,8 +11726,6 @@ snapshots:
gensync@1.0.0-beta.2: {}
geometry-interfaces@1.1.4: {}
get-caller-file@2.0.5: {}
get-east-asian-width@1.3.0: {}
@ -11884,15 +11858,6 @@ snapshots:
define-properties: 1.2.1
gopd: 1.2.0
globby@11.1.0:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.3
ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0
globby@14.0.1:
dependencies:
'@sindresorhus/merge-streams': 2.3.0
@ -12439,8 +12404,6 @@ snapshots:
dependencies:
is-inside-container: 1.0.0
isarray@0.0.1: {}
isarray@1.0.0: {}
isarray@2.0.5: {}
@ -13323,10 +13286,6 @@ snapshots:
napi-build-utils@1.0.2: {}
neatequal@1.0.0:
dependencies:
varstream: 0.3.2
negotiator@0.6.3: {}
negotiator@0.6.4: {}
@ -13868,8 +13827,6 @@ snapshots:
path-to-regexp@6.3.0: {}
path-type@4.0.0: {}
path-type@5.0.0: {}
pathe@1.1.2: {}
@ -14289,13 +14246,6 @@ snapshots:
parse-json: 5.2.0
type-fest: 0.6.0
readable-stream@1.1.14:
dependencies:
core-util-is: 1.0.3
inherits: 2.0.4
isarray: 0.0.1
string_decoder: 0.10.31
readable-stream@2.3.8:
dependencies:
core-util-is: 1.0.3
@ -14454,8 +14404,6 @@ snapshots:
resolve-from@4.0.0: {}
resolve-from@5.0.0: {}
resolve-package-path@3.1.0:
dependencies:
path-root: 0.1.1
@ -15071,8 +15019,6 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.0.0
string_decoder@0.10.31: {}
string_decoder@1.1.1:
dependencies:
safe-buffer: 5.1.2
@ -15199,7 +15145,9 @@ snapshots:
transitivePeerDependencies:
- debug
svg-pathdata@6.0.3: {}
svg-pathdata@7.1.0:
dependencies:
yerror: 8.0.0
svg2ttf@6.0.3:
dependencies:
@ -15210,15 +15158,18 @@ snapshots:
microbuffer: 1.0.0
svgpath: 2.6.0
svgicons2svgfont@10.0.6:
svgicons2svgfont@15.0.1:
dependencies:
commander: 7.2.0
geometry-interfaces: 1.1.4
glob: 7.2.3
neatequal: 1.0.0
readable-stream: 3.6.2
'@types/sax': 1.2.7
commander: 12.1.0
debug: 4.4.0
glob: 11.0.1
sax: 1.4.1
svg-pathdata: 6.0.3
svg-pathdata: 7.1.0
transformation-matrix: 3.0.0
yerror: 8.0.0
transitivePeerDependencies:
- supports-color
svgo@3.3.2:
dependencies:
@ -15320,21 +15271,17 @@ snapshots:
dependencies:
punycode: 2.3.1
transformation-matrix@3.0.0: {}
trim-newlines@3.0.1: {}
true-case-path@2.2.1: {}
tslib@2.8.1: {}
ttf2eot@2.0.0:
dependencies:
argparse: 1.0.10
microbuffer: 1.0.0
ttf2woff@2.0.2:
ttf2woff@3.0.0:
dependencies:
argparse: 1.0.10
microbuffer: 1.0.0
argparse: 2.0.1
pako: 1.0.11
tuf-js@1.1.7:
@ -15565,10 +15512,6 @@ snapshots:
resolve-package-path: 3.1.0
semver: 7.6.3
varstream@0.3.2:
dependencies:
readable-stream: 1.1.14
vary@1.1.2: {}
vite-node@1.6.0(@types/node@22.10.5)(sass@1.83.1)(terser@5.37.0):
@ -15723,25 +15666,6 @@ snapshots:
web-streams-polyfill@4.0.0-beta.3: {}
webfont@11.2.26(chokidar@3.6.0):
dependencies:
cosmiconfig: 5.2.1
deepmerge: 4.3.1
globby: 11.1.0
meow: 9.0.0
nunjucks: 3.2.4(chokidar@3.6.0)
p-limit: 3.1.0
parse-json: 5.2.0
resolve-from: 5.0.0
svg2ttf: 6.0.3
svgicons2svgfont: 10.0.6
ttf2eot: 2.0.0
ttf2woff: 2.0.2
wawoff2: 2.0.1
xml2js: 0.4.23
transitivePeerDependencies:
- chokidar
webidl-conversions@3.0.1: {}
webidl-conversions@7.0.0: {}
@ -15909,11 +15833,6 @@ snapshots:
eventemitter3: 2.0.3
xml-lexer: 0.2.2
xml2js@0.4.23:
dependencies:
sax: 1.4.1
xmlbuilder: 11.0.1
xml2js@0.5.0:
dependencies:
sax: 1.4.1
@ -15968,6 +15887,8 @@ snapshots:
y18n: 5.0.8
yargs-parser: 21.1.1
yerror@8.0.0: {}
yocto-queue@0.1.0: {}
yocto-queue@1.1.1: {}

Loading…
Cancel
Save