mirror of
https://github.com/tabler/tabler-icons.git
synced 2025-09-02 10:24:07 +02:00
chore: use svgicons2svgfont, svg2ttf, ttf2woff, wawoff2 instead of webfont (#1312)
This commit is contained in:
@@ -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
Normal file
73
packages/icons-webfont/.build/build-utilities.mjs
Normal file
@@ -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;
|
||||
}
|
@@ -1,12 +1,13 @@
|
||||
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 {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')
|
||||
const fontHeight = 1000
|
||||
|
||||
const strokes = {
|
||||
200: 1,
|
||||
@@ -36,48 +37,39 @@ for (const strokeName in strokes) {
|
||||
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 glyphs = result.glyphsData
|
||||
.map(icon => icon.metadata)
|
||||
.sort(function (a, b) {
|
||||
return ('' + a.name).localeCompare(b.name)
|
||||
})
|
||||
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 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]) || {}
|
||||
}
|
||||
|
||||
//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)
|
||||
|
||||
//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)
|
||||
const glyphs = svgFiles.map(f => f.metadata)
|
||||
.sort(function (a, b) {
|
||||
return a.name.localeCompare(b.name)
|
||||
})
|
||||
.catch((error) => {
|
||||
throw error;
|
||||
});
|
||||
|
||||
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/${fileName}.scss`, resultSCSS)
|
||||
|
||||
//html
|
||||
const compiledHtml = template(fs.readFileSync(`${DIR}/.build/iconfont.html`).toString())
|
||||
const resultHtml = compiledHtml(options)
|
||||
fs.writeFileSync(`${DIR}/dist/${fileName}.html`, resultHtml)
|
||||
})
|
||||
}
|
||||
|
@@ -47,6 +47,9 @@
|
||||
],
|
||||
"devDependencies": {
|
||||
"sass": "^1.71.1",
|
||||
"webfont": "^11.2.26"
|
||||
"svg2ttf": "^6.0.3",
|
||||
"svgicons2svgfont": "^15.0.0",
|
||||
"ttf2woff": "^3.0.0",
|
||||
"wawoff2": "^2.0.1"
|
||||
}
|
||||
}
|
||||
|
228
pnpm-lock.yaml
generated
228
pnpm-lock.yaml
generated
@@ -306,9 +306,18 @@ importers:
|
||||
sass:
|
||||
specifier: ^1.71.1
|
||||
version: 1.83.1
|
||||
webfont:
|
||||
specifier: ^11.2.26
|
||||
version: 11.2.26
|
||||
svg2ttf:
|
||||
specifier: ^6.0.3
|
||||
version: 6.0.3
|
||||
svgicons2svgfont:
|
||||
specifier: ^15.0.0
|
||||
version: 15.0.0
|
||||
ttf2woff:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0
|
||||
wawoff2:
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1
|
||||
|
||||
test/test-preact:
|
||||
dependencies:
|
||||
@@ -4323,6 +4332,12 @@ packages:
|
||||
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
|
||||
dev: true
|
||||
|
||||
/@types/sax@1.2.7:
|
||||
resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
|
||||
dependencies:
|
||||
'@types/node': 22.10.5
|
||||
dev: true
|
||||
|
||||
/@types/scheduler@0.23.0:
|
||||
resolution: {integrity: sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==}
|
||||
dev: true
|
||||
@@ -5091,6 +5106,7 @@ packages:
|
||||
/braces@3.0.3:
|
||||
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
|
||||
engines: {node: '>=8'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
fill-range: 7.1.1
|
||||
dev: true
|
||||
@@ -5643,6 +5659,11 @@ packages:
|
||||
engines: {node: '>=14'}
|
||||
dev: true
|
||||
|
||||
/commander@12.1.0:
|
||||
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
|
||||
engines: {node: '>=18'}
|
||||
dev: true
|
||||
|
||||
/commander@2.20.3:
|
||||
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
|
||||
dev: true
|
||||
@@ -6151,6 +6172,7 @@ packages:
|
||||
resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
|
||||
engines: {node: '>=0.10'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
/detect-newline@3.1.0:
|
||||
@@ -6175,13 +6197,6 @@ packages:
|
||||
htmlparser2: 3.10.1
|
||||
dev: true
|
||||
|
||||
/dir-glob@3.0.1:
|
||||
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
path-type: 4.0.0
|
||||
dev: true
|
||||
|
||||
/doctypes@1.1.0:
|
||||
resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==}
|
||||
dev: true
|
||||
@@ -7062,6 +7077,7 @@ packages:
|
||||
/fill-range@7.1.1:
|
||||
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
|
||||
engines: {node: '>=8'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
to-regex-range: 5.0.1
|
||||
dev: true
|
||||
@@ -7308,10 +7324,6 @@ packages:
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/geometry-interfaces@1.1.4:
|
||||
resolution: {integrity: sha512-qD6OdkT6NcES9l4Xx3auTpwraQruU7dARbQPVO71MKvkGYw5/z/oIiGymuFXrRaEQa5Y67EIojUpaLeGEa5hGA==}
|
||||
dev: true
|
||||
|
||||
/get-caller-file@2.0.5:
|
||||
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
||||
engines: {node: 6.* || 8.* || >= 10.*}
|
||||
@@ -7434,6 +7446,19 @@ packages:
|
||||
path-scurry: 1.11.1
|
||||
dev: true
|
||||
|
||||
/glob@11.0.1:
|
||||
resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==}
|
||||
engines: {node: 20 || >=22}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
foreground-child: 3.3.0
|
||||
jackspeak: 4.0.2
|
||||
minimatch: 10.0.1
|
||||
minipass: 7.1.2
|
||||
package-json-from-dist: 1.0.1
|
||||
path-scurry: 2.0.0
|
||||
dev: true
|
||||
|
||||
/glob@7.1.7:
|
||||
resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
|
||||
deprecated: Glob versions prior to v9 are no longer supported
|
||||
@@ -7497,18 +7522,6 @@ packages:
|
||||
gopd: 1.2.0
|
||||
dev: true
|
||||
|
||||
/globby@11.1.0:
|
||||
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
|
||||
engines: {node: '>=10'}
|
||||
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
|
||||
dev: true
|
||||
|
||||
/globby@14.0.1:
|
||||
resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -8159,6 +8172,7 @@ packages:
|
||||
/is-extglob@2.1.1:
|
||||
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
/is-finalizationregistry@1.1.1:
|
||||
@@ -8202,6 +8216,7 @@ packages:
|
||||
/is-glob@4.0.3:
|
||||
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
is-extglob: 2.1.1
|
||||
dev: true
|
||||
@@ -8271,6 +8286,7 @@ packages:
|
||||
/is-number@7.0.0:
|
||||
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
|
||||
engines: {node: '>=0.12.0'}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
/is-obj@2.0.0:
|
||||
@@ -8434,10 +8450,6 @@ packages:
|
||||
is-inside-container: 1.0.0
|
||||
dev: true
|
||||
|
||||
/isarray@0.0.1:
|
||||
resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
|
||||
dev: true
|
||||
|
||||
/isarray@1.0.0:
|
||||
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
|
||||
dev: true
|
||||
@@ -8491,6 +8503,13 @@ packages:
|
||||
'@pkgjs/parseargs': 0.11.0
|
||||
dev: true
|
||||
|
||||
/jackspeak@4.0.2:
|
||||
resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
|
||||
engines: {node: 20 || >=22}
|
||||
dependencies:
|
||||
'@isaacs/cliui': 8.0.2
|
||||
dev: true
|
||||
|
||||
/jake@10.9.2:
|
||||
resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -9033,6 +9052,11 @@ packages:
|
||||
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
|
||||
dev: true
|
||||
|
||||
/lru-cache@11.0.2:
|
||||
resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
|
||||
engines: {node: 20 || >=22}
|
||||
dev: true
|
||||
|
||||
/lru-cache@5.1.1:
|
||||
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
|
||||
dependencies:
|
||||
@@ -9496,6 +9520,7 @@ packages:
|
||||
/micromatch@4.0.8:
|
||||
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
|
||||
engines: {node: '>=8.6'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
braces: 3.0.3
|
||||
picomatch: 2.3.1
|
||||
@@ -9572,6 +9597,13 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/minimatch@10.0.1:
|
||||
resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
|
||||
engines: {node: 20 || >=22}
|
||||
dependencies:
|
||||
brace-expansion: 2.0.1
|
||||
dev: true
|
||||
|
||||
/minimatch@3.0.8:
|
||||
resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==}
|
||||
dependencies:
|
||||
@@ -9800,12 +9832,6 @@ packages:
|
||||
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
|
||||
dev: true
|
||||
|
||||
/neatequal@1.0.0:
|
||||
resolution: {integrity: sha512-sVt5awO4a4w24QmAthdrCPiVRW3naB8FGLdyadin01BH+6BzNPEBwGrpwCczQvPlULS6uXTItTe1PJ5P0kYm7A==}
|
||||
dependencies:
|
||||
varstream: 0.3.2
|
||||
dev: true
|
||||
|
||||
/negotiator@0.6.3:
|
||||
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
@@ -10457,6 +10483,10 @@ packages:
|
||||
netmask: 2.0.2
|
||||
dev: true
|
||||
|
||||
/package-json-from-dist@1.0.1:
|
||||
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
|
||||
dev: true
|
||||
|
||||
/package-json@8.1.1:
|
||||
resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==}
|
||||
engines: {node: '>=14.16'}
|
||||
@@ -10658,13 +10688,16 @@ packages:
|
||||
minipass: 7.1.2
|
||||
dev: true
|
||||
|
||||
/path-to-regexp@6.3.0:
|
||||
resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
|
||||
/path-scurry@2.0.0:
|
||||
resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
|
||||
engines: {node: 20 || >=22}
|
||||
dependencies:
|
||||
lru-cache: 11.0.2
|
||||
minipass: 7.1.2
|
||||
dev: true
|
||||
|
||||
/path-type@4.0.0:
|
||||
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
||||
engines: {node: '>=8'}
|
||||
/path-to-regexp@6.3.0:
|
||||
resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
|
||||
dev: true
|
||||
|
||||
/path-type@5.0.0:
|
||||
@@ -10708,6 +10741,7 @@ packages:
|
||||
/picomatch@2.3.1:
|
||||
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
||||
engines: {node: '>=8.6'}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
/picomatch@4.0.2:
|
||||
@@ -11306,15 +11340,6 @@ packages:
|
||||
type-fest: 0.6.0
|
||||
dev: true
|
||||
|
||||
/readable-stream@1.1.14:
|
||||
resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==}
|
||||
dependencies:
|
||||
core-util-is: 1.0.3
|
||||
inherits: 2.0.4
|
||||
isarray: 0.0.1
|
||||
string_decoder: 0.10.31
|
||||
dev: true
|
||||
|
||||
/readable-stream@2.3.8:
|
||||
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
|
||||
dependencies:
|
||||
@@ -11553,11 +11578,6 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/resolve-from@5.0.0:
|
||||
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/resolve-package-path@3.1.0:
|
||||
resolution: {integrity: sha512-2oC2EjWbMJwvSN6Z7DbDfJMnD8MYEouaLn5eIX0j8XwPsYCVIyY9bbnX88YHVkbr8XHqvZrYbxaLPibfTYKZMA==}
|
||||
engines: {node: 10.* || >= 12}
|
||||
@@ -12537,10 +12557,6 @@ packages:
|
||||
es-object-atoms: 1.0.0
|
||||
dev: true
|
||||
|
||||
/string_decoder@0.10.31:
|
||||
resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
|
||||
dev: true
|
||||
|
||||
/string_decoder@1.1.1:
|
||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||
dependencies:
|
||||
@@ -12765,9 +12781,11 @@ packages:
|
||||
- debug
|
||||
dev: true
|
||||
|
||||
/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'}
|
||||
dependencies:
|
||||
yerror: 8.0.0
|
||||
dev: true
|
||||
|
||||
/svg2ttf@6.0.3:
|
||||
@@ -12782,18 +12800,21 @@ packages:
|
||||
svgpath: 2.6.0
|
||||
dev: true
|
||||
|
||||
/svgicons2svgfont@10.0.6:
|
||||
resolution: {integrity: sha512-fUgQEVg3XwTbOHvlXahHGqCet5Wvfo1bV4DCvbSRvjsOCPCRunYbG4dUJCPegps37BMph3eOrfoobhH5AWuC6A==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
/svgicons2svgfont@15.0.0:
|
||||
resolution: {integrity: sha512-X5iL08aZJRKwYAGcl6ykQg0T6ce8yGpLdccqMXp6mreObpSdjlME9dRKPFIvFWX9/KTvPFAuYnX1gCaqjw7QUA==}
|
||||
engines: {node: '>=20.11.1'}
|
||||
hasBin: true
|
||||
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-js: 2.7.6
|
||||
yerror: 8.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/svgo@3.3.2:
|
||||
@@ -12927,6 +12948,7 @@ packages:
|
||||
/to-regex-range@5.0.1:
|
||||
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
|
||||
engines: {node: '>=8.0'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
is-number: 7.0.0
|
||||
dev: true
|
||||
@@ -12961,6 +12983,11 @@ packages:
|
||||
punycode: 2.3.1
|
||||
dev: true
|
||||
|
||||
/transformation-matrix-js@2.7.6:
|
||||
resolution: {integrity: sha512-1CxDIZmCQ3vA0GGnkdMQqxUXVm3xXAFmglPYRS1hr37LzSg22TC7QAWOT38OmdUvMEs/rqcnkFoAsqvzdiluDg==}
|
||||
deprecated: Package no longer supported. Contact support@npmjs.com for more info.
|
||||
dev: true
|
||||
|
||||
/trim-newlines@3.0.1:
|
||||
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -12974,20 +13001,11 @@ packages:
|
||||
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
|
||||
dev: true
|
||||
|
||||
/ttf2eot@2.0.0:
|
||||
resolution: {integrity: sha512-U56aG2Ylw7psLOmakjemAzmpqVgeadwENg9oaDjaZG5NYX4WB6+7h74bNPcc+0BXsoU5A/XWiHabDXyzFOmsxQ==}
|
||||
/ttf2woff@3.0.0:
|
||||
resolution: {integrity: sha512-OvmFcj70PhmAsVQKfC15XoKH55cRWuaRzvr2fpTNhTNer6JBpG8n6vOhRrIgxMjcikyYt88xqYXMMVapJ4Rjvg==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
argparse: 1.0.10
|
||||
microbuffer: 1.0.0
|
||||
dev: true
|
||||
|
||||
/ttf2woff@2.0.2:
|
||||
resolution: {integrity: sha512-X68badwBjAy/+itU49scLjXUL094up+rHuYk+YAOTTBYSUMOmLZ7VyhZJuqQESj1gnyLAC2/5V8Euv+mExmyPA==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
argparse: 1.0.10
|
||||
microbuffer: 1.0.0
|
||||
argparse: 2.0.1
|
||||
pako: 1.0.11
|
||||
dev: true
|
||||
|
||||
@@ -13408,14 +13426,6 @@ packages:
|
||||
semver: 7.6.3
|
||||
dev: true
|
||||
|
||||
/varstream@0.3.2:
|
||||
resolution: {integrity: sha512-OpR3Usr9dGZZbDttlTxdviGdxiURI0prX68+DuaN/JfIDbK9ZOmREKM6PgmelsejMnhgjXmEEEgf+E4NbsSqMg==}
|
||||
engines: {node: '>=0.10.*'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
readable-stream: 1.1.14
|
||||
dev: true
|
||||
|
||||
/vary@1.1.2:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
@@ -13680,29 +13690,6 @@ packages:
|
||||
engines: {node: '>= 14'}
|
||||
dev: true
|
||||
|
||||
/webfont@11.2.26:
|
||||
resolution: {integrity: sha512-ms9abzcJGMBj5yVTpNfAcyQB0SNzmi10aBlKLC7kAt1TQ5eZqieRhvhxN1BrXaizWV0nksp6vLqBfaJmBWmF7Q==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
hasBin: true
|
||||
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
|
||||
dev: true
|
||||
|
||||
/webidl-conversions@3.0.1:
|
||||
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
|
||||
dev: true
|
||||
@@ -13993,14 +13980,6 @@ packages:
|
||||
xml-lexer: 0.2.2
|
||||
dev: true
|
||||
|
||||
/xml2js@0.4.23:
|
||||
resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
dependencies:
|
||||
sax: 1.4.1
|
||||
xmlbuilder: 11.0.1
|
||||
dev: true
|
||||
|
||||
/xml2js@0.5.0:
|
||||
resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
@@ -14094,6 +14073,11 @@ packages:
|
||||
yargs-parser: 21.1.1
|
||||
dev: true
|
||||
|
||||
/yerror@8.0.0:
|
||||
resolution: {integrity: sha512-FemWD5/UqNm8ffj8oZIbjWXIF2KE0mZssggYpdaQkWDDgXBQ/35PNIxEuz6/YLn9o0kOxDBNJe8x8k9ljD7k/g==}
|
||||
engines: {node: '>=18.16.0'}
|
||||
dev: true
|
||||
|
||||
/yocto-queue@0.1.0:
|
||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||
engines: {node: '>=10'}
|
||||
|
Reference in New Issue
Block a user