diff --git a/extras/build/animate.js b/extras/build/animate.js index 2db5549f520..4438147f872 100644 --- a/extras/build/animate.js +++ b/extras/build/animate.js @@ -1,73 +1,90 @@ -const packageName = 'animate.css' +const packageName = "animate.css"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { join, resolve, basename } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { join, resolve, basename } = require("path"); -const dist = resolve(__dirname, '../animate') +const dist = resolve(__dirname, "../animate"); -const pkgFolder = resolve(__dirname, `../node_modules/${ packageName }/`) -const cssFiles = glob.sync(pkgFolder + '/source/*/*.css') -const cssNames = new Set() +const pkgFolder = resolve(__dirname, `../node_modules/${packageName}/`); +const cssFiles = tinyglobby.sync(pkgFolder + "/source/*/*.css"); +const cssNames = new Set(); -const inAnimations = [] -const outAnimations = [] -const generalAnimations = [] +const inAnimations = []; +const outAnimations = []; +const generalAnimations = []; -function extract (file) { - const name = basename(file).match(/(.*)\.css/)[ 1 ] +function extract(file) { + const name = basename(file).match(/(.*)\.css/)[1]; if (cssNames.has(name)) { - return + return; } - copySync(file, join(dist, name + '.css')) - cssNames.add(name) + copySync(file, join(dist, name + ".css")); + cssNames.add(name); - if (name.indexOf('In') > -1) { - inAnimations.push(name) - } - else if (name.indexOf('Out') > -1) { - outAnimations.push(name) - } - else { - generalAnimations.push(name) + if (name.indexOf("In") > -1) { + inAnimations.push(name); + } else if (name.indexOf("Out") > -1) { + outAnimations.push(name); + } else { + generalAnimations.push(name); } } -function getList (prefix) { +function getList(prefix) { return ` -${ prefix }generalAnimations = ${ JSON.stringify(generalAnimations, null, 2) } +${prefix}generalAnimations = ${JSON.stringify(generalAnimations, null, 2)} -${ prefix }inAnimations = ${ JSON.stringify(inAnimations, null, 2) } +${prefix}inAnimations = ${JSON.stringify(inAnimations, null, 2)} -${ prefix }outAnimations = ${ JSON.stringify(outAnimations, null, 2) } -`.replace(/"/g, '\'') +${prefix}outAnimations = ${JSON.stringify(outAnimations, null, 2)} +`.replace(/"/g, "'"); } if (cssFiles.length === 0) { - console.log('WARNING. Animate.css skipped completely') -} -else { - cssFiles.forEach(file => { - extract(file) - }) - - generalAnimations.sort() - inAnimations.sort() - outAnimations.sort() - - copySync(join(pkgFolder, 'LICENSE'), join(dist, 'LICENSE')) - - const common = getList('module.exports.') - - writeFileSync(join(dist, 'animate-list.js'), common, 'utf-8') - writeFileSync(join(dist, 'animate-list.mjs'), getList('export const '), 'utf-8') - writeFileSync(join(dist, 'animate-list.common.js'), common, 'utf-8') - - writeFileSync(join(dist, 'animate-list.d.ts'), getList('export type ').replace(/\[/g, '').replace(/\]/g, ';').replace(/\ {2}'/g, ' | \'').replace(/,/g, ''), 'utf-8') - writeFileSync(join(dist, 'animate-list.common.d.ts'), getList('export type ').replace(/\[/g, '').replace(/\]/g, ';').replace(/\ {2}'/g, ' | \'').replace(/,/g, ''), 'utf-8') + console.log("WARNING. Animate.css skipped completely"); +} else { + cssFiles.forEach((file) => { + extract(file); + }); + + generalAnimations.sort(); + inAnimations.sort(); + outAnimations.sort(); + + copySync(join(pkgFolder, "LICENSE"), join(dist, "LICENSE")); + + const common = getList("module.exports."); + + writeFileSync(join(dist, "animate-list.js"), common, "utf-8"); + writeFileSync( + join(dist, "animate-list.mjs"), + getList("export const "), + "utf-8", + ); + writeFileSync(join(dist, "animate-list.common.js"), common, "utf-8"); + + writeFileSync( + join(dist, "animate-list.d.ts"), + getList("export type ") + .replace(/\[/g, "") + .replace(/\]/g, ";") + .replace(/\ {2}'/g, " | '") + .replace(/,/g, ""), + "utf-8", + ); + writeFileSync( + join(dist, "animate-list.common.d.ts"), + getList("export type ") + .replace(/\[/g, "") + .replace(/\]/g, ";") + .replace(/\ {2}'/g, " | '") + .replace(/,/g, ""), + "utf-8", + ); } diff --git a/extras/build/bootstrap-icons.js b/extras/build/bootstrap-icons.js index 61138118158..db8ce2c38e0 100644 --- a/extras/build/bootstrap-icons.js +++ b/extras/build/bootstrap-icons.js @@ -1,88 +1,102 @@ -const packageName = 'bootstrap-icons' -const distName = 'bootstrap-icons' -const iconSetName = 'Bootstrap' -const prefix = 'bi' +const packageName = "bootstrap-icons"; +const distName = "bootstrap-icons"; +const iconSetName = "Bootstrap"; +const prefix = "bi"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { resolve, join } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { resolve, join } = require("path"); -const skipped = [] -const distFolder = resolve(__dirname, '../bootstrap-icons') -const { defaultNameMapper, extract, writeExports, copyCssFile } = require('./utils') +const skipped = []; +const distFolder = resolve(__dirname, "../bootstrap-icons"); +const { + defaultNameMapper, + extract, + writeExports, + copyCssFile, +} = require("./utils"); -const svgFolder = resolve(__dirname, `../node_modules/${ packageName }/icons/`) -const svgFiles = glob.sync(svgFolder + '/*.svg') -let iconNames = new Set() +const svgFolder = resolve(__dirname, `../node_modules/${packageName}/icons/`); +const svgFiles = tinyglobby.sync(svgFolder + "/*.svg"); +let iconNames = new Set(); -const svgExports = [] -const typeExports = [] +const svgExports = []; +const typeExports = []; -svgFiles.forEach(file => { - const name = defaultNameMapper(file, prefix) +svgFiles.forEach((file) => { + const name = defaultNameMapper(file, prefix); if (iconNames.has(name)) { - return + return; } try { - const { svgDef, typeDef } = extract(file, name) - svgExports.push(svgDef) - typeExports.push(typeDef) - - iconNames.add(name) - } - catch (err) { - console.error(err) - skipped.push(name) + const { svgDef, typeDef } = extract(file, name); + svgExports.push(svgDef); + typeExports.push(typeDef); + + iconNames.add(name); + } catch (err) { + console.error(err); + skipped.push(name); } -}) +}); -iconNames = [ ...iconNames ] +iconNames = [...iconNames]; svgExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); typeExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); iconNames.sort((a, b) => { - return ('' + a).localeCompare(b) -}) - -writeExports(iconSetName, packageName, distFolder, svgExports, typeExports, skipped) + return ("" + a).localeCompare(b); +}); + +writeExports( + iconSetName, + packageName, + distFolder, + svgExports, + typeExports, + skipped, +); // then update webfont files -const webfont = [ - 'bootstrap-icons.woff', - 'bootstrap-icons.woff2' -] +const webfont = ["bootstrap-icons.woff", "bootstrap-icons.woff2"]; -webfont.forEach(file => { +webfont.forEach((file) => { copySync( - resolve(__dirname, `../node_modules/${ packageName }/font/fonts/${ file }`), - resolve(__dirname, `../bootstrap-icons/${ file }`) - ) -}) + resolve(__dirname, `../node_modules/${packageName}/font/fonts/${file}`), + resolve(__dirname, `../bootstrap-icons/${file}`), + ); +}); copyCssFile({ - from: resolve(__dirname, `../node_modules/${ packageName }/font/bootstrap-icons.css`), - to: resolve(__dirname, '../bootstrap-icons/bootstrap-icons.css'), - replaceFn: content => { - return content.replace(/src:[^;]+;/, 'src: url("./bootstrap-icons.woff2") format("woff2"), url("./bootstrap-icons.woff") format("woff");') - } -}) + from: resolve( + __dirname, + `../node_modules/${packageName}/font/bootstrap-icons.css`, + ), + to: resolve(__dirname, "../bootstrap-icons/bootstrap-icons.css"), + replaceFn: (content) => { + return content.replace( + /src:[^;]+;/, + 'src: url("./bootstrap-icons.woff2") format("woff2"), url("./bootstrap-icons.woff") format("woff");', + ); + }, +}); copySync( - resolve(__dirname, `../node_modules/${ packageName }/LICENSE`), - resolve(__dirname, '../bootstrap-icons/LICENSE') -) + resolve(__dirname, `../node_modules/${packageName}/LICENSE`), + resolve(__dirname, "../bootstrap-icons/LICENSE"), +); // write the JSON file -const file = resolve(__dirname, join('..', distName, 'icons.json')) -writeFileSync(file, JSON.stringify([ ...iconNames ].sort(), null, 2), 'utf-8') +const file = resolve(__dirname, join("..", distName, "icons.json")); +writeFileSync(file, JSON.stringify([...iconNames].sort(), null, 2), "utf-8"); -console.log(`${ distName } done with ${ iconNames.length } icons`) +console.log(`${distName} done with ${iconNames.length} icons`); diff --git a/extras/build/eva-icons.js b/extras/build/eva-icons.js index be636d1c68a..f83ee60d4b5 100644 --- a/extras/build/eva-icons.js +++ b/extras/build/eva-icons.js @@ -1,93 +1,105 @@ -const packageName = 'eva-icons' -const distName = 'eva-icons' -const iconSetName = 'Eva-Icons' -const prefix = 'eva' +const packageName = "eva-icons"; +const distName = "eva-icons"; +const iconSetName = "Eva-Icons"; +const prefix = "eva"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { resolve, join } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { resolve, join } = require("path"); -const skipped = [] -const distFolder = resolve(__dirname, '../eva-icons') -const { defaultNameMapper, extract, writeExports, copyCssFile, getBanner } = require('./utils') +const skipped = []; +const distFolder = resolve(__dirname, "../eva-icons"); +const { + defaultNameMapper, + extract, + writeExports, + copyCssFile, + getBanner, +} = require("./utils"); -const svgFolder = resolve(__dirname, `../node_modules/${ packageName }/`) -const iconTypes = [ 'fill', 'outline' ] -let iconNames = new Set() +const svgFolder = resolve(__dirname, `../node_modules/${packageName}/`); +const iconTypes = ["fill", "outline"]; +let iconNames = new Set(); -const svgExports = [] -const typeExports = [] +const svgExports = []; +const typeExports = []; -iconTypes.forEach(type => { - const svgFiles = glob.sync(svgFolder + `/${ type }/svg/*.svg`) +iconTypes.forEach((type) => { + const svgFiles = tinyglobby.sync(svgFolder + `/${type}/svg/*.svg`); - svgFiles.forEach(file => { - const name = defaultNameMapper(file, prefix) + svgFiles.forEach((file) => { + const name = defaultNameMapper(file, prefix); if (iconNames.has(name)) { - return + return; } try { - const { svgDef, typeDef } = extract(file, name) - svgExports.push(svgDef) - typeExports.push(typeDef) - - iconNames.add(name) - } - catch (err) { - console.error(err) - skipped.push(name) + const { svgDef, typeDef } = extract(file, name); + svgExports.push(svgDef); + typeExports.push(typeDef); + + iconNames.add(name); + } catch (err) { + console.error(err); + skipped.push(name); } - }) -}) + }); +}); -iconNames = [ ...iconNames ] +iconNames = [...iconNames]; svgExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); typeExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); iconNames.sort((a, b) => { - return ('' + a).localeCompare(b) -}) - -writeExports(iconSetName, packageName, distFolder, svgExports, typeExports, skipped) + return ("" + a).localeCompare(b); +}); + +writeExports( + iconSetName, + packageName, + distFolder, + svgExports, + typeExports, + skipped, +); // then update webfont files -const webfont = [ - 'Eva-Icons.woff2', - 'Eva-Icons.woff' -] +const webfont = ["Eva-Icons.woff2", "Eva-Icons.woff"]; -webfont.forEach(file => { +webfont.forEach((file) => { copySync( - resolve(__dirname, `../node_modules/${ packageName }/style/fonts/${ file }`), - resolve(__dirname, `../eva-icons/${ file }`) - ) -}) + resolve(__dirname, `../node_modules/${packageName}/style/fonts/${file}`), + resolve(__dirname, `../eva-icons/${file}`), + ); +}); copyCssFile({ - from: resolve(__dirname, `../node_modules/${ packageName }/style/eva-icons.css`), - to: resolve(__dirname, '../eva-icons/eva-icons.css'), - replaceFn: content => ( - getBanner('Eva Icons', packageName) - + ( - content - .replace('@font-face {', '@font-face {\nfont-display: block;') - .replace('src: url("./fonts/Eva-Icons.eot");', '') - .replace(/src:[^;]+;/, 'src: url("./Eva-Icons.woff2") format("woff2"), url("./Eva-Icons.woff") format("woff");') - ) - ) -}) + from: resolve( + __dirname, + `../node_modules/${packageName}/style/eva-icons.css`, + ), + to: resolve(__dirname, "../eva-icons/eva-icons.css"), + replaceFn: (content) => + getBanner("Eva Icons", packageName) + + content + .replace("@font-face {", "@font-face {\nfont-display: block;") + .replace('src: url("./fonts/Eva-Icons.eot");', "") + .replace( + /src:[^;]+;/, + 'src: url("./Eva-Icons.woff2") format("woff2"), url("./Eva-Icons.woff") format("woff");', + ), +}); // write the JSON file -const file = resolve(__dirname, join('..', distName, 'icons.json')) -writeFileSync(file, JSON.stringify([ ...iconNames ].sort(), null, 2), 'utf-8') +const file = resolve(__dirname, join("..", distName, "icons.json")); +writeFileSync(file, JSON.stringify([...iconNames].sort(), null, 2), "utf-8"); -console.log(`${ distName } done with ${ iconNames.length } icons`) +console.log(`${distName} done with ${iconNames.length} icons`); diff --git a/extras/build/fontawesome-v5.js b/extras/build/fontawesome-v5.js index 984eb67a206..1cb3d66e1b6 100644 --- a/extras/build/fontawesome-v5.js +++ b/extras/build/fontawesome-v5.js @@ -1,88 +1,94 @@ -const packageName = '@fortawesome/fontawesome-free' -const distName = 'fontawesome-v5' -const iconSetName = 'Fontawesome Free' -const prefix = 'fa' +const packageName = "@fortawesome/fontawesome-free"; +const distName = "fontawesome-v5"; +const iconSetName = "Fontawesome Free"; +const prefix = "fa"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { resolve, join } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { resolve, join } = require("path"); -const skipped = [] -const distFolder = resolve(__dirname, '../fontawesome-v5') -const { defaultNameMapper, extract, writeExports } = require('./utils') +const skipped = []; +const distFolder = resolve(__dirname, "../fontawesome-v5"); +const { defaultNameMapper, extract, writeExports } = require("./utils"); -const svgFolder = resolve(__dirname, `../node_modules/${ packageName }/svgs/`) -const iconTypes = [ 'brands', 'regular', 'solid' ] -let iconNames = new Set() +const svgFolder = resolve(__dirname, `../node_modules/${packageName}/svgs/`); +const iconTypes = ["brands", "regular", "solid"]; +let iconNames = new Set(); -const svgExports = [] -const typeExports = [] +const svgExports = []; +const typeExports = []; -iconTypes.forEach(type => { - const svgFiles = glob.sync(svgFolder + `/${ type }/*.svg`) +iconTypes.forEach((type) => { + const svgFiles = tinyglobby.sync(svgFolder + `/${type}/*.svg`); - svgFiles.forEach(file => { - const name = defaultNameMapper(file, prefix + type.charAt(0)) + svgFiles.forEach((file) => { + const name = defaultNameMapper(file, prefix + type.charAt(0)); if (iconNames.has(name)) { - return + return; } try { - const { svgDef, typeDef } = extract(file, name) - svgExports.push(svgDef) - typeExports.push(typeDef) - - iconNames.add(name) - } - catch (err) { - console.error(err) - skipped.push(name) + const { svgDef, typeDef } = extract(file, name); + svgExports.push(svgDef); + typeExports.push(typeDef); + + iconNames.add(name); + } catch (err) { + console.error(err); + skipped.push(name); } - }) -}) + }); +}); -iconNames = [ ...iconNames ] +iconNames = [...iconNames]; svgExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); typeExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); iconNames.sort((a, b) => { - return ('' + a).localeCompare(b) -}) - -writeExports(iconSetName, packageName, distFolder, svgExports, typeExports, skipped) + return ("" + a).localeCompare(b); +}); + +writeExports( + iconSetName, + packageName, + distFolder, + svgExports, + typeExports, + skipped, +); // then update webfont files const webfont = [ - 'fa-brands-400.woff', - 'fa-brands-400.woff2', - 'fa-regular-400.woff', - 'fa-regular-400.woff2', - 'fa-solid-900.woff', - 'fa-solid-900.woff2' -] - -webfont.forEach(file => { + "fa-brands-400.woff", + "fa-brands-400.woff2", + "fa-regular-400.woff", + "fa-regular-400.woff2", + "fa-solid-900.woff", + "fa-solid-900.woff2", +]; + +webfont.forEach((file) => { copySync( - resolve(__dirname, `../node_modules/${ packageName }/webfonts/${ file }`), - resolve(__dirname, `../fontawesome-v5/${ file }`) - ) -}) + resolve(__dirname, `../node_modules/${packageName}/webfonts/${file}`), + resolve(__dirname, `../fontawesome-v5/${file}`), + ); +}); copySync( - resolve(__dirname, `../node_modules/${ packageName }/LICENSE.txt`), - resolve(__dirname, '../fontawesome-v5/LICENSE.txt') -) + resolve(__dirname, `../node_modules/${packageName}/LICENSE.txt`), + resolve(__dirname, "../fontawesome-v5/LICENSE.txt"), +); // write the JSON file -const file = resolve(__dirname, join('..', distName, 'icons.json')) -writeFileSync(file, JSON.stringify([ ...iconNames ].sort(), null, 2), 'utf-8') +const file = resolve(__dirname, join("..", distName, "icons.json")); +writeFileSync(file, JSON.stringify([...iconNames].sort(), null, 2), "utf-8"); -console.log(`${ distName } done with ${ iconNames.length } icons`) +console.log(`${distName} done with ${iconNames.length} icons`); diff --git a/extras/build/fontawesome-v6.js b/extras/build/fontawesome-v6.js index fb28ea34ffa..54d5ed642af 100644 --- a/extras/build/fontawesome-v6.js +++ b/extras/build/fontawesome-v6.js @@ -1,96 +1,107 @@ -const packageName = '@fortawesome/fontawesome-free' -const distName = 'fontawesome-v6' -const iconSetName = 'Fontawesome Free' -const prefix = 'fa' +const packageName = "@fortawesome/fontawesome-free"; +const distName = "fontawesome-v6"; +const iconSetName = "Fontawesome Free"; +const prefix = "fa"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { resolve, join } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { resolve, join } = require("path"); -const skipped = [] -const distFolder = resolve(__dirname, '../fontawesome-v6') -const { defaultNameMapper, extract, writeExports, copyCssFile } = require('./utils') +const skipped = []; +const distFolder = resolve(__dirname, "../fontawesome-v6"); +const { + defaultNameMapper, + extract, + writeExports, + copyCssFile, +} = require("./utils"); -const svgFolder = resolve(__dirname, `../node_modules/${ packageName }/svgs/`) -const iconTypes = [ 'brands', 'regular', 'solid' ] -let iconNames = new Set() +const svgFolder = resolve(__dirname, `../node_modules/${packageName}/svgs/`); +const iconTypes = ["brands", "regular", "solid"]; +let iconNames = new Set(); -const svgExports = [] -const typeExports = [] +const svgExports = []; +const typeExports = []; -iconTypes.forEach(type => { - const svgFiles = glob.sync(svgFolder + `/${ type }/*.svg`) +iconTypes.forEach((type) => { + const svgFiles = tinyglobby.sync(svgFolder + `/${type}/*.svg`); - svgFiles.forEach(file => { - const name = defaultNameMapper(file, prefix + type.charAt(0)) + svgFiles.forEach((file) => { + const name = defaultNameMapper(file, prefix + type.charAt(0)); if (iconNames.has(name)) { - return + return; } try { - const { svgDef, typeDef } = extract(file, name) - svgExports.push(svgDef) - typeExports.push(typeDef) - - iconNames.add(name) - } - catch (err) { - console.error(err) - skipped.push(name) + const { svgDef, typeDef } = extract(file, name); + svgExports.push(svgDef); + typeExports.push(typeDef); + + iconNames.add(name); + } catch (err) { + console.error(err); + skipped.push(name); } - }) -}) + }); +}); -iconNames = [ ...iconNames ] +iconNames = [...iconNames]; svgExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); typeExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); iconNames.sort((a, b) => { - return ('' + a).localeCompare(b) -}) - -writeExports(iconSetName, packageName, distFolder, svgExports, typeExports, skipped) + return ("" + a).localeCompare(b); +}); + +writeExports( + iconSetName, + packageName, + distFolder, + svgExports, + typeExports, + skipped, +); // then update webfont files const webfont = [ - 'fa-brands-400.ttf', - 'fa-brands-400.woff2', - 'fa-regular-400.ttf', - 'fa-regular-400.woff2', - 'fa-solid-900.ttf', - 'fa-solid-900.woff2', - 'fa-v4compatibility.ttf', - 'fa-v4compatibility.woff2' -] - -webfont.forEach(file => { + "fa-brands-400.ttf", + "fa-brands-400.woff2", + "fa-regular-400.ttf", + "fa-regular-400.woff2", + "fa-solid-900.ttf", + "fa-solid-900.woff2", + "fa-v4compatibility.ttf", + "fa-v4compatibility.woff2", +]; + +webfont.forEach((file) => { copySync( - resolve(__dirname, `../node_modules/${ packageName }/webfonts/${ file }`), - resolve(__dirname, `../fontawesome-v6/${ file }`) - ) -}) + resolve(__dirname, `../node_modules/${packageName}/webfonts/${file}`), + resolve(__dirname, `../fontawesome-v6/${file}`), + ); +}); copyCssFile({ - from: resolve(__dirname, `../node_modules/${ packageName }/css/all.css`), - to: resolve(__dirname, '../fontawesome-v6/fontawesome-v6.css'), - replaceFn: content => content.replace(/\.\.\/webfonts/g, '\.') -}) + from: resolve(__dirname, `../node_modules/${packageName}/css/all.css`), + to: resolve(__dirname, "../fontawesome-v6/fontawesome-v6.css"), + replaceFn: (content) => content.replace(/\.\.\/webfonts/g, "."), +}); copySync( - resolve(__dirname, `../node_modules/${ packageName }/LICENSE.txt`), - resolve(__dirname, '../fontawesome-v6/LICENSE.txt') -) + resolve(__dirname, `../node_modules/${packageName}/LICENSE.txt`), + resolve(__dirname, "../fontawesome-v6/LICENSE.txt"), +); // write the JSON file -const file = resolve(__dirname, join('..', distName, 'icons.json')) -writeFileSync(file, JSON.stringify([ ...iconNames ].sort(), null, 2), 'utf-8') +const file = resolve(__dirname, join("..", distName, "icons.json")); +writeFileSync(file, JSON.stringify([...iconNames].sort(), null, 2), "utf-8"); -console.log(`${ distName } done with ${ iconNames.length } icons`) +console.log(`${distName} done with ${iconNames.length} icons`); diff --git a/extras/build/ionicons-v7.js b/extras/build/ionicons-v7.js index c752fce1d6e..a520518e6b0 100644 --- a/extras/build/ionicons-v7.js +++ b/extras/build/ionicons-v7.js @@ -1,66 +1,75 @@ -const packageName = 'ionicons' -const distName = 'ionicons-v7' -const iconSetName = 'Ionicons' -const prefix = 'ion' +const packageName = "ionicons"; +const distName = "ionicons-v7"; +const iconSetName = "Ionicons"; +const prefix = "ion"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { resolve, join } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { resolve, join } = require("path"); -const skipped = [] -const distFolder = resolve(__dirname, `../${ distName }`) -const { defaultNameMapper, extract, writeExports } = require('./utils') +const skipped = []; +const distFolder = resolve(__dirname, `../${distName}`); +const { defaultNameMapper, extract, writeExports } = require("./utils"); -const svgFolder = resolve(__dirname, `../node_modules/${ packageName }/dist/svg/`) -const svgFiles = glob.sync(svgFolder + '/*.svg') -let iconNames = new Set() +const svgFolder = resolve( + __dirname, + `../node_modules/${packageName}/dist/svg/`, +); +const svgFiles = tinyglobby.sync(svgFolder + "/*.svg"); +let iconNames = new Set(); -const svgExports = [] -const typeExports = [] +const svgExports = []; +const typeExports = []; -svgFiles.forEach(file => { - const name = defaultNameMapper(file, prefix) +svgFiles.forEach((file) => { + const name = defaultNameMapper(file, prefix); if (iconNames.has(name)) { - return + return; } try { - const { svgDef, typeDef } = extract(file, name) - svgExports.push(svgDef) - typeExports.push(typeDef) + const { svgDef, typeDef } = extract(file, name); + svgExports.push(svgDef); + typeExports.push(typeDef); - iconNames.add(name) + iconNames.add(name); + } catch (err) { + console.error(err); + skipped.push(name); } - catch (err) { - console.error(err) - skipped.push(name) - } -}) +}); -iconNames = [ ...iconNames ] +iconNames = [...iconNames]; svgExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); typeExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); iconNames.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); -writeExports(iconSetName, packageName, distFolder, svgExports, typeExports, skipped) +writeExports( + iconSetName, + packageName, + distFolder, + svgExports, + typeExports, + skipped, +); copySync( - resolve(__dirname, `../node_modules/${ packageName }/LICENSE`), - resolve(__dirname, `../${ distName }/LICENSE`) -) + resolve(__dirname, `../node_modules/${packageName}/LICENSE`), + resolve(__dirname, `../${distName}/LICENSE`), +); // write the JSON file -const file = resolve(__dirname, join('..', distName, 'icons.json')) -writeFileSync(file, JSON.stringify([ ...iconNames ].sort(), null, 2), 'utf-8') +const file = resolve(__dirname, join("..", distName, "icons.json")); +writeFileSync(file, JSON.stringify([...iconNames].sort(), null, 2), "utf-8"); -console.log(`${ distName } done with ${ iconNames.length } icons`) +console.log(`${distName} done with ${iconNames.length} icons`); diff --git a/extras/build/line-awesome.js b/extras/build/line-awesome.js index 11c1091d960..d057db65ca2 100644 --- a/extras/build/line-awesome.js +++ b/extras/build/line-awesome.js @@ -1,100 +1,124 @@ -const packageName = 'line-awesome' -const distName = 'line-awesome' -const iconSetName = 'Line Awesome' +const packageName = "line-awesome"; +const distName = "line-awesome"; +const iconSetName = "Line Awesome"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { resolve, join } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { resolve, join } = require("path"); -const skipped = [] -const distFolder = resolve(__dirname, '../line-awesome') -const { defaultNameMapper, extract, writeExports, copyCssFile, getBanner } = require('./utils') +const skipped = []; +const distFolder = resolve(__dirname, "../line-awesome"); +const { + defaultNameMapper, + extract, + writeExports, + copyCssFile, + getBanner, +} = require("./utils"); -const svgFolder = resolve(__dirname, `../node_modules/${ packageName }/svg/`) -const svgFiles = glob.sync(svgFolder + '/*.svg') -let iconNames = new Set() +const svgFolder = resolve(__dirname, `../node_modules/${packageName}/svg/`); +const svgFiles = tinyglobby.sync(svgFolder + "/*.svg"); +let iconNames = new Set(); -const svgExports = [] -const typeExports = [] +const svgExports = []; +const typeExports = []; -svgFiles.forEach(file => { - const name = defaultNameMapper(file, 'la') +svgFiles.forEach((file) => { + const name = defaultNameMapper(file, "la"); if (iconNames.has(name)) { - return + return; } try { - const { svgDef, typeDef } = extract(file, name) - svgExports.push(svgDef) - typeExports.push(typeDef) - - iconNames.add(name) - } - catch (err) { - console.error(err) - skipped.push(name) + const { svgDef, typeDef } = extract(file, name); + svgExports.push(svgDef); + typeExports.push(typeDef); + + iconNames.add(name); + } catch (err) { + console.error(err); + skipped.push(name); } -}) +}); -iconNames = [ ...iconNames ] +iconNames = [...iconNames]; svgExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); typeExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); iconNames.sort((a, b) => { - return ('' + a).localeCompare(b) -}) - -writeExports(iconSetName, packageName, distFolder, svgExports, typeExports, skipped) + return ("" + a).localeCompare(b); +}); + +writeExports( + iconSetName, + packageName, + distFolder, + svgExports, + typeExports, + skipped, +); // then update webfont files const webfont = [ - 'la-brands-400.woff', - 'la-brands-400.woff2', - 'la-regular-400.woff', - 'la-regular-400.woff2', - 'la-solid-900.woff', - 'la-solid-900.woff2' -] - -webfont.forEach(file => { + "la-brands-400.woff", + "la-brands-400.woff2", + "la-regular-400.woff", + "la-regular-400.woff2", + "la-solid-900.woff", + "la-solid-900.woff2", +]; + +webfont.forEach((file) => { copySync( - resolve(__dirname, `../node_modules/${ packageName }/dist/line-awesome/fonts/${ file }`), - resolve(__dirname, `../line-awesome/${ file }`) - ) -}) + resolve( + __dirname, + `../node_modules/${packageName}/dist/line-awesome/fonts/${file}`, + ), + resolve(__dirname, `../line-awesome/${file}`), + ); +}); copyCssFile({ - from: resolve(__dirname, `../node_modules/${ packageName }/dist/line-awesome/css/line-awesome.css`), - to: resolve(__dirname, '../line-awesome/line-awesome.css'), - replaceFn: content => ( - getBanner('Line Awesome', packageName) - + ( - content - .replace(/src:[^;]+la-brands-400[^;]+;/, '') - .replace(/src:[^;]+la-brands-400[^;]+;/, 'src: url("./la-brands-400.woff2") format("woff2"), url("./la-brands-400.woff") format("woff");') - .replace(/src:[^;]+la-regular-400[^;]+;/, '') - .replace(/src:[^;]+la-regular-400[^;]+;/, 'src: url("./la-regular-400.woff2") format("woff2"), url("./la-regular-400.woff") format("woff");') - .replace(/src:[^;]+la-solid-900[^;]+;/, '') - .replace(/src:[^;]+la-solid-900[^;]+;/, 'src: url("./la-solid-900.woff2") format("woff2"), url("./la-solid-900.woff") format("woff");') - ) - ) -}) + from: resolve( + __dirname, + `../node_modules/${packageName}/dist/line-awesome/css/line-awesome.css`, + ), + to: resolve(__dirname, "../line-awesome/line-awesome.css"), + replaceFn: (content) => + getBanner("Line Awesome", packageName) + + content + .replace(/src:[^;]+la-brands-400[^;]+;/, "") + .replace( + /src:[^;]+la-brands-400[^;]+;/, + 'src: url("./la-brands-400.woff2") format("woff2"), url("./la-brands-400.woff") format("woff");', + ) + .replace(/src:[^;]+la-regular-400[^;]+;/, "") + .replace( + /src:[^;]+la-regular-400[^;]+;/, + 'src: url("./la-regular-400.woff2") format("woff2"), url("./la-regular-400.woff") format("woff");', + ) + .replace(/src:[^;]+la-solid-900[^;]+;/, "") + .replace( + /src:[^;]+la-solid-900[^;]+;/, + 'src: url("./la-solid-900.woff2") format("woff2"), url("./la-solid-900.woff") format("woff");', + ), +}); copySync( - resolve(__dirname, `../node_modules/${ packageName }/LICENSE.md`), - resolve(__dirname, '../line-awesome/LICENSE.md') -) + resolve(__dirname, `../node_modules/${packageName}/LICENSE.md`), + resolve(__dirname, "../line-awesome/LICENSE.md"), +); // write the JSON file -const file = resolve(__dirname, join('..', distName, 'icons.json')) -writeFileSync(file, JSON.stringify([ ...iconNames ].sort(), null, 2), 'utf-8') +const file = resolve(__dirname, join("..", distName, "icons.json")); +writeFileSync(file, JSON.stringify([...iconNames].sort(), null, 2), "utf-8"); -console.log(`${ distName } done with ${ iconNames.length } icons`) +console.log(`${distName} done with ${iconNames.length} icons`); diff --git a/extras/build/mdi-v7.js b/extras/build/mdi-v7.js index 452a3b3508c..a90fd1fe3e5 100644 --- a/extras/build/mdi-v7.js +++ b/extras/build/mdi-v7.js @@ -1,97 +1,120 @@ -const packageName = '@mdi/svg' -const distName = 'mdi-v7' -const iconSetName = 'MDI' -const prefix = 'mdi' +const packageName = "@mdi/svg"; +const distName = "mdi-v7"; +const iconSetName = "MDI"; +const prefix = "mdi"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { resolve, join } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { resolve, join } = require("path"); -const skipped = [] -const distFolder = resolve(__dirname, `../${ distName }`) -const { defaultNameMapper, extract, writeExports, copyCssFile, getBanner } = require('./utils') +const skipped = []; +const distFolder = resolve(__dirname, `../${distName}`); +const { + defaultNameMapper, + extract, + writeExports, + copyCssFile, + getBanner, +} = require("./utils"); -const svgFolder = resolve(__dirname, `../node_modules/${ packageName }/svg/`) -const svgFiles = glob.sync(svgFolder + '/**/*.svg') -let iconNames = new Set() +const svgFolder = resolve(__dirname, `../node_modules/${packageName}/svg/`); +const svgFiles = tinyglobby.sync(svgFolder + "/**/*.svg"); +let iconNames = new Set(); -const svgExports = [] -const typeExports = [] +const svgExports = []; +const typeExports = []; -svgFiles.forEach(file => { - const name = defaultNameMapper(file, prefix) +svgFiles.forEach((file) => { + const name = defaultNameMapper(file, prefix); if (iconNames.has(name)) { - return + return; } try { - const { svgDef, typeDef } = extract(file, name) - svgExports.push(svgDef) - typeExports.push(typeDef) - - iconNames.add(name) - } - catch (err) { - console.error(err) - skipped.push(name) + const { svgDef, typeDef } = extract(file, name); + svgExports.push(svgDef); + typeExports.push(typeDef); + + iconNames.add(name); + } catch (err) { + console.error(err); + skipped.push(name); } -}) +}); -iconNames = [ ...iconNames ] +iconNames = [...iconNames]; svgExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); typeExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); iconNames.sort((a, b) => { - return ('' + a).localeCompare(b) -}) - -writeExports(iconSetName, packageName, distFolder, svgExports, typeExports, skipped) + return ("" + a).localeCompare(b); +}); + +writeExports( + iconSetName, + packageName, + distFolder, + svgExports, + typeExports, + skipped, +); // then update webfont files const webfont = [ - 'materialdesignicons-webfont.woff', - 'materialdesignicons-webfont.woff2' -] + "materialdesignicons-webfont.woff", + "materialdesignicons-webfont.woff2", +]; -webfont.forEach(file => { +webfont.forEach((file) => { copySync( - resolve(__dirname, `../node_modules/@mdi/font/fonts/${ file }`), - resolve(__dirname, `../${ distName }/${ file }`) - ) -}) + resolve(__dirname, `../node_modules/@mdi/font/fonts/${file}`), + resolve(__dirname, `../${distName}/${file}`), + ); +}); copyCssFile({ - from: resolve(__dirname, '../node_modules/@mdi/font/css/materialdesignicons.css'), - to: resolve(__dirname, '../mdi-v7/mdi-v7.css'), - replaceFn: content => { - return content - .replace('/* MaterialDesignIcons.com */', getBanner('MaterialDesignIcons.com', packageName)) - .replace('/*# sourceMappingURL=materialdesignicons.css.map */', '') - // has two "src:" lines, remove first then replace second: - .replace(/src:[^;]+;/, '') - .replace(/src:[^;]+;/, 'src: url("./materialdesignicons-webfont.woff2") format("woff2"), url("./materialdesignicons-webfont.woff") format("woff");') - } -}) + from: resolve( + __dirname, + "../node_modules/@mdi/font/css/materialdesignicons.css", + ), + to: resolve(__dirname, "../mdi-v7/mdi-v7.css"), + replaceFn: (content) => { + return ( + content + .replace( + "/* MaterialDesignIcons.com */", + getBanner("MaterialDesignIcons.com", packageName), + ) + .replace("/*# sourceMappingURL=materialdesignicons.css.map */", "") + // has two "src:" lines, remove first then replace second: + .replace(/src:[^;]+;/, "") + .replace( + /src:[^;]+;/, + 'src: url("./materialdesignicons-webfont.woff2") format("woff2"), url("./materialdesignicons-webfont.woff") format("woff");', + ) + ); + }, +}); copySync( - resolve(__dirname, '../node_modules/@mdi/font/LICENSE'), - resolve(__dirname, `../${ distName }/license.md`) -) + resolve(__dirname, "../node_modules/@mdi/font/LICENSE"), + resolve(__dirname, `../${distName}/license.md`), +); copySync( - resolve(__dirname, '../node_modules/@mdi/svg/LICENSE'), - resolve(__dirname, `../${ distName }/LICENSE`) -) + resolve(__dirname, "../node_modules/@mdi/svg/LICENSE"), + resolve(__dirname, `../${distName}/LICENSE`), +); // write the JSON file -const file = resolve(__dirname, join('..', distName, 'icons.json')) -writeFileSync(file, JSON.stringify([ ...iconNames ].sort(), null, 2), 'utf-8') +const file = resolve(__dirname, join("..", distName, "icons.json")); +writeFileSync(file, JSON.stringify([...iconNames].sort(), null, 2), "utf-8"); -console.log(`${ distName } done with ${ iconNames.length } icons`) +console.log(`${distName} done with ${iconNames.length} icons`); diff --git a/extras/build/themify.js b/extras/build/themify.js index cba4a1c74af..5f2404511b3 100644 --- a/extras/build/themify.js +++ b/extras/build/themify.js @@ -1,90 +1,100 @@ -const packageName = 'themify-icons' -const distName = 'themify' -const iconSetName = 'Themify' -const prefix = 'ti' -const version = '1.0.1' +const packageName = "themify-icons"; +const distName = "themify"; +const iconSetName = "Themify"; +const prefix = "ti"; +const version = "1.0.1"; // ------------ -const glob = require('glob') -const { copySync } = require('fs-extra') -const { writeFileSync } = require('fs') -const { resolve, join } = require('path') +const tinyglobby = require("tinyglobby"); +const { copySync } = require("fs-extra"); +const { writeFileSync } = require("fs"); +const { resolve, join } = require("path"); -const skipped = [] -const distFolder = resolve(__dirname, '../themify') -const { defaultNameMapper, extract, writeExports, copyCssFile, getBanner } = require('./utils') +const skipped = []; +const distFolder = resolve(__dirname, "../themify"); +const { + defaultNameMapper, + extract, + writeExports, + copyCssFile, + getBanner, +} = require("./utils"); -const svgFolder = resolve(__dirname, `../node_modules/${ packageName }/SVG/`) -const svgFiles = glob.sync(svgFolder + '/*.svg') -let iconNames = new Set() +const svgFolder = resolve(__dirname, `../node_modules/${packageName}/SVG/`); +const svgFiles = tinyglobby.sync(svgFolder + "/*.svg"); +let iconNames = new Set(); -const svgExports = [] -const typeExports = [] +const svgExports = []; +const typeExports = []; -svgFiles.forEach(file => { - const name = defaultNameMapper(file, prefix) +svgFiles.forEach((file) => { + const name = defaultNameMapper(file, prefix); if (iconNames.has(name)) { - return + return; } try { - const { svgDef, typeDef } = extract(file, name) - svgExports.push(svgDef) - typeExports.push(typeDef) - - iconNames.add(name) - } - catch (err) { - console.error(err) - skipped.push(name) + const { svgDef, typeDef } = extract(file, name); + svgExports.push(svgDef); + typeExports.push(typeDef); + + iconNames.add(name); + } catch (err) { + console.error(err); + skipped.push(name); } -}) +}); -iconNames = [ ...iconNames ] +iconNames = [...iconNames]; svgExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); typeExports.sort((a, b) => { - return ('' + a).localeCompare(b) -}) + return ("" + a).localeCompare(b); +}); iconNames.sort((a, b) => { - return ('' + a).localeCompare(b) -}) - -writeExports(iconSetName, version, distFolder, svgExports, typeExports, skipped) + return ("" + a).localeCompare(b); +}); + +writeExports( + iconSetName, + version, + distFolder, + svgExports, + typeExports, + skipped, +); // then update webfont files -const webfont = [ - 'themify.woff' -] +const webfont = ["themify.woff"]; -webfont.forEach(file => { +webfont.forEach((file) => { copySync( - resolve(__dirname, `../node_modules/${ packageName }/fonts/${ file }`), - resolve(__dirname, `../themify/${ file }`) - ) -}) + resolve(__dirname, `../node_modules/${packageName}/fonts/${file}`), + resolve(__dirname, `../themify/${file}`), + ); +}); copyCssFile({ - from: resolve(__dirname, `../node_modules/${ packageName }/css/themify-icons.css`), - to: resolve(__dirname, '../themify/themify.css'), - replaceFn: content => ( - getBanner('Themify Icons', packageName) - + ( - content - .replace(/src:[^;]+;/, '') - .replace(/src:[^;]+;/, 'src: url(\'./themify.woff\') format(\'woff\');') - .replace('font-display: swap;', 'font-display: block;') - .replace('[class^="ti-"], [class*=" ti-"]', '.themify-icon') - ) - ) -}) + from: resolve( + __dirname, + `../node_modules/${packageName}/css/themify-icons.css`, + ), + to: resolve(__dirname, "../themify/themify.css"), + replaceFn: (content) => + getBanner("Themify Icons", packageName) + + content + .replace(/src:[^;]+;/, "") + .replace(/src:[^;]+;/, "src: url('./themify.woff') format('woff');") + .replace("font-display: swap;", "font-display: block;") + .replace('[class^="ti-"], [class*=" ti-"]', ".themify-icon"), +}); // write the JSON file -const file = resolve(__dirname, join('..', distName, 'icons.json')) -writeFileSync(file, JSON.stringify([ ...iconNames ].sort(), null, 2), 'utf-8') +const file = resolve(__dirname, join("..", distName, "icons.json")); +writeFileSync(file, JSON.stringify([...iconNames].sort(), null, 2), "utf-8"); -console.log(`${ distName } done with ${ iconNames.length } icons`) +console.log(`${distName} done with ${iconNames.length} icons`); diff --git a/extras/package.json b/extras/package.json index 7db4051dae5..fd7697c14b5 100644 --- a/extras/package.json +++ b/extras/package.json @@ -162,9 +162,9 @@ "cross-spawn": "^7.0.6", "eva-icons": "1.1.3", "fs-extra": "11.2.0", - "glob": "11.0.0", "ionicons": "7.4.0", "line-awesome": "1.3.0", - "themify-icons": "github:lykmapipo/themify-icons" + "themify-icons": "github:lykmapipo/themify-icons", + "tinyglobby": "^0.2.10" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 37672c63447..1cbea444c16 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -554,8 +554,8 @@ importers: extras: devDependencies: '@fortawesome/fontawesome-free': - specifier: 6.6.0 - version: 6.6.0 + specifier: 6.7.1 + version: 6.7.1 '@mdi/font': specifier: 7.4.47 version: 7.4.47 @@ -583,9 +583,6 @@ importers: fs-extra: specifier: 11.2.0 version: 11.2.0 - glob: - specifier: 11.0.0 - version: 11.0.0 ionicons: specifier: 7.4.0 version: 7.4.0 @@ -595,6 +592,9 @@ importers: themify-icons: specifier: github:lykmapipo/themify-icons version: https://codeload.github.com/lykmapipo/themify-icons/tar.gz/9600186b24a7242f0e1e0a186983e6253301bb5d + tinyglobby: + specifier: ^0.2.10 + version: 0.2.10 ui: devDependencies: @@ -1943,8 +1943,8 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@fortawesome/fontawesome-free@6.6.0': - resolution: {integrity: sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow==} + '@fortawesome/fontawesome-free@6.7.1': + resolution: {integrity: sha512-ALIk/MOh5gYe1TG/ieS5mVUsk7VUIJTJKPMK9rFFqOgfp0Q3d5QiBXbcOMwUvs37fyZVCz46YjOE6IFeOAXCHA==} engines: {node: '>=6'} '@gar/promisify@1.1.3': @@ -4414,11 +4414,6 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@11.0.0: - resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} - engines: {node: 20 || >=22} - hasBin: true - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -4972,10 +4967,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.0.2: - resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} - engines: {node: 20 || >=22} - jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} @@ -5235,10 +5226,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.0.2: - resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} - engines: {node: 20 || >=22} - lru-cache@4.0.1: resolution: {integrity: sha512-MX0ZnRoVTWXBiNe9dysqKXjvhmQgHsOirh/2rerIVJ8sbQeMxc5OPj0HDpVV3bYjdE6GTHrPf8BEHJqWHFkjHA==} @@ -5786,10 +5773,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - path-to-regexp@0.1.10: resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} @@ -9002,7 +8985,7 @@ snapshots: '@eslint/js@8.57.1': {} - '@fortawesome/fontawesome-free@6.6.0': {} + '@fortawesome/fontawesome-free@6.7.1': {} '@gar/promisify@1.1.3': {} @@ -12259,15 +12242,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.0: - 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 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -12838,10 +12812,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.0.2: - dependencies: - '@isaacs/cliui': 8.0.2 - jake@10.9.2: dependencies: async: 3.2.6 @@ -13106,8 +13076,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.0.2: {} - lru-cache@4.0.1: dependencies: pseudomap: 1.0.2 @@ -13647,11 +13615,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-scurry@2.0.0: - dependencies: - lru-cache: 11.0.2 - minipass: 7.1.2 - path-to-regexp@0.1.10: {} path-type@2.0.0: