diff --git a/.changeset/eleven-lizards-build.md b/.changeset/eleven-lizards-build.md new file mode 100644 index 0000000..e2ac20e --- /dev/null +++ b/.changeset/eleven-lizards-build.md @@ -0,0 +1,11 @@ +--- +"@icona/generator": minor +"@icona/types": minor +--- + +- Add `vue2`, `vue3` generate function +- Remove `flutter`, `font` generate function (cause unstable) +- Add `genIndexFile` option in `react`, `vue2`, `vue3` +- Remove `generator`, only `generate` functions +- Remove `@icona/utils` package (merge into `@icona/generator` +- Refactoring variables name, some logics diff --git a/.yarn/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-5718f26708.zip b/.yarn/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-5718f26708.zip new file mode 100644 index 0000000..1a4763a Binary files /dev/null and b/.yarn/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-5718f26708.zip differ diff --git a/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-83b85f72c5.zip b/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-83b85f72c5.zip new file mode 100644 index 0000000..a572422 Binary files /dev/null and b/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-83b85f72c5.zip differ diff --git a/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-d89597752f.zip b/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-d89597752f.zip new file mode 100644 index 0000000..8bf87a9 Binary files /dev/null and b/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-d89597752f.zip differ diff --git a/.yarn/cache/@tsconfig-node10-npm-1.0.11-ab23db00e2-51fe47d55f.zip b/.yarn/cache/@tsconfig-node10-npm-1.0.11-ab23db00e2-51fe47d55f.zip new file mode 100644 index 0000000..2d94bd2 Binary files /dev/null and b/.yarn/cache/@tsconfig-node10-npm-1.0.11-ab23db00e2-51fe47d55f.zip differ diff --git a/.yarn/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-5ce29a41b1.zip b/.yarn/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-5ce29a41b1.zip new file mode 100644 index 0000000..001dd13 Binary files /dev/null and b/.yarn/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-5ce29a41b1.zip differ diff --git a/.yarn/cache/@tsconfig-node14-npm-1.0.3-15321421d2-19275fe80c.zip b/.yarn/cache/@tsconfig-node14-npm-1.0.3-15321421d2-19275fe80c.zip new file mode 100644 index 0000000..9b825a0 Binary files /dev/null and b/.yarn/cache/@tsconfig-node14-npm-1.0.3-15321421d2-19275fe80c.zip differ diff --git a/.yarn/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-2023197859.zip b/.yarn/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-2023197859.zip new file mode 100644 index 0000000..2638f0f Binary files /dev/null and b/.yarn/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-2023197859.zip differ diff --git a/.yarn/cache/@types-findup-sync-npm-4.0.2-1e27f1848a-b8ec6a9f6c.zip b/.yarn/cache/@types-findup-sync-npm-4.0.2-1e27f1848a-b8ec6a9f6c.zip deleted file mode 100644 index 0aa6f94..0000000 Binary files a/.yarn/cache/@types-findup-sync-npm-4.0.2-1e27f1848a-b8ec6a9f6c.zip and /dev/null differ diff --git a/.yarn/cache/@types-findup-sync-npm-4.0.5-59c38956dd-578e891568.zip b/.yarn/cache/@types-findup-sync-npm-4.0.5-59c38956dd-578e891568.zip new file mode 100644 index 0000000..cf969f5 Binary files /dev/null and b/.yarn/cache/@types-findup-sync-npm-4.0.5-59c38956dd-578e891568.zip differ diff --git a/.yarn/cache/@types-micromatch-npm-4.0.2-f1717d74e1-6c678e9c62.zip b/.yarn/cache/@types-micromatch-npm-4.0.2-f1717d74e1-6c678e9c62.zip deleted file mode 100644 index 0ac19a7..0000000 Binary files a/.yarn/cache/@types-micromatch-npm-4.0.2-f1717d74e1-6c678e9c62.zip and /dev/null differ diff --git a/.yarn/cache/@types-micromatch-npm-4.0.9-c49f1284da-109920dd54.zip b/.yarn/cache/@types-micromatch-npm-4.0.9-c49f1284da-109920dd54.zip new file mode 100644 index 0000000..31773e8 Binary files /dev/null and b/.yarn/cache/@types-micromatch-npm-4.0.9-c49f1284da-109920dd54.zip differ diff --git a/.yarn/cache/@types-node-npm-20.14.9-a4571e1932-5e9eda1ac8.zip b/.yarn/cache/@types-node-npm-20.14.9-a4571e1932-5e9eda1ac8.zip new file mode 100644 index 0000000..b4de973 Binary files /dev/null and b/.yarn/cache/@types-node-npm-20.14.9-a4571e1932-5e9eda1ac8.zip differ diff --git a/.yarn/cache/acorn-npm-8.12.0-10680c055b-ae142de873.zip b/.yarn/cache/acorn-npm-8.12.0-10680c055b-ae142de873.zip new file mode 100644 index 0000000..c6f4620 Binary files /dev/null and b/.yarn/cache/acorn-npm-8.12.0-10680c055b-ae142de873.zip differ diff --git a/.yarn/cache/acorn-walk-npm-8.3.3-868c75184d-0f09d351fc.zip b/.yarn/cache/acorn-walk-npm-8.3.3-868c75184d-0f09d351fc.zip new file mode 100644 index 0000000..3ff55b0 Binary files /dev/null and b/.yarn/cache/acorn-walk-npm-8.3.3-868c75184d-0f09d351fc.zip differ diff --git a/.yarn/cache/arg-npm-4.1.3-1748b966a8-544af8dd3f.zip b/.yarn/cache/arg-npm-4.1.3-1748b966a8-544af8dd3f.zip new file mode 100644 index 0000000..21128e2 Binary files /dev/null and b/.yarn/cache/arg-npm-4.1.3-1748b966a8-544af8dd3f.zip differ diff --git a/.yarn/cache/create-require-npm-1.1.1-839884ca2e-a9a1503d43.zip b/.yarn/cache/create-require-npm-1.1.1-839884ca2e-a9a1503d43.zip new file mode 100644 index 0000000..afbfac2 Binary files /dev/null and b/.yarn/cache/create-require-npm-1.1.1-839884ca2e-a9a1503d43.zip differ diff --git a/.yarn/cache/diff-npm-4.0.2-73133c7102-f2c09b0ce4.zip b/.yarn/cache/diff-npm-4.0.2-73133c7102-f2c09b0ce4.zip new file mode 100644 index 0000000..e532815 Binary files /dev/null and b/.yarn/cache/diff-npm-4.0.2-73133c7102-f2c09b0ce4.zip differ diff --git a/.yarn/cache/make-error-npm-1.3.6-ccb85d9458-b86e5e0e25.zip b/.yarn/cache/make-error-npm-1.3.6-ccb85d9458-b86e5e0e25.zip new file mode 100644 index 0000000..7f7dc18 Binary files /dev/null and b/.yarn/cache/make-error-npm-1.3.6-ccb85d9458-b86e5e0e25.zip differ diff --git a/.yarn/cache/ts-node-npm-10.9.2-3f3890b9ac-fde256c907.zip b/.yarn/cache/ts-node-npm-10.9.2-3f3890b9ac-fde256c907.zip new file mode 100644 index 0000000..437dc2b Binary files /dev/null and b/.yarn/cache/ts-node-npm-10.9.2-3f3890b9ac-fde256c907.zip differ diff --git a/.yarn/cache/tslib-npm-2.6.3-0fd136b3be-74fce0e100.zip b/.yarn/cache/tslib-npm-2.6.3-0fd136b3be-74fce0e100.zip new file mode 100644 index 0000000..78a6372 Binary files /dev/null and b/.yarn/cache/tslib-npm-2.6.3-0fd136b3be-74fce0e100.zip differ diff --git a/.yarn/cache/typescript-npm-5.5.3-9d4a463231-4b4f143134.zip b/.yarn/cache/typescript-npm-5.5.3-9d4a463231-4b4f143134.zip new file mode 100644 index 0000000..e669393 Binary files /dev/null and b/.yarn/cache/typescript-npm-5.5.3-9d4a463231-4b4f143134.zip differ diff --git a/.yarn/cache/typescript-patch-afd76499e8-6853be4607.zip b/.yarn/cache/typescript-patch-afd76499e8-6853be4607.zip new file mode 100644 index 0000000..b2e58ec Binary files /dev/null and b/.yarn/cache/typescript-patch-afd76499e8-6853be4607.zip differ diff --git a/.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-3192ef6f3f.zip b/.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-3192ef6f3f.zip new file mode 100644 index 0000000..6ab5ae6 Binary files /dev/null and b/.yarn/cache/undici-types-npm-5.26.5-de4f7c7bb9-3192ef6f3f.zip differ diff --git a/.yarn/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-78089ad549.zip b/.yarn/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-78089ad549.zip new file mode 100644 index 0000000..005ea72 Binary files /dev/null and b/.yarn/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-78089ad549.zip differ diff --git a/.yarn/cache/yn-npm-3.1.1-8ad4259784-2c487b0e14.zip b/.yarn/cache/yn-npm-3.1.1-8ad4259784-2c487b0e14.zip new file mode 100644 index 0000000..4a31162 Binary files /dev/null and b/.yarn/cache/yn-npm-3.1.1-8ad4259784-2c487b0e14.zip differ diff --git a/packages/generator/README.md b/packages/generator/README.md index 837dbd3..f27420f 100644 --- a/packages/generator/README.md +++ b/packages/generator/README.md @@ -10,55 +10,140 @@ yarn add -D @icona/generator ## Usage -```js +```ts +// icona.js (ts also available) +import type { + DrawableConfig, + PDFConfig, + PNGConfig, + ReactConfig, + SVGConfig, + Vue2Config, + Vue3Config, +} from "@icona/generator"; import { generate } from "@icona/generator"; -generate({ - config: { - svg: { - active: true, // you can disable svg generator if you set false - path: "svg", // will generate svg files in svg folder - svgoConfig: {}, - }, - drawable: { - active: true, // you can disable drawable generator if you set false - path: "drawable", // will generate xml files in drawable folder - svg2vectordrawableConfig: {}, - defaultColor: "#000000", // default color for android vector drawable - }, - pdf: { - active: true, // you can disable pdf generator if you set false - path: "pdf", // will generate pdf files in pdf folder - pdfKitConfig: {}, - svgToPdfOptions: {}, - }, - react: { - active: true, // you can disable react generator if you set false - path: "react", // will generate react component files in react folder - svgrConfig: {}, - }, - png: { - active: false, - genMode: "recreate", - path: "png", +const svgConfig: SVGConfig = { + path: "svg", + svgoConfig: { + js2svg: { + indent: 2, + pretty: true, }, - font: { - genMode: "recreate", - active: true, - svgToFontOptions: { - src: "svg", - dist: "font", - fontName: "seed-icon", + plugins: [ + { + name: "addAttributesToSVGElement", + params: { + attributes: [{ "data-seed-icon": "true" }], + }, }, + { + name: "convertColors", + params: { + currentColor: true, + }, + }, + { + name: "removeAttrs", + params: { + attrs: ["id"], + }, + }, + ], + }, +}; + +const pdfConfig: PDFConfig = { + active: false, + path: "pdf", + pdfKitConfig: { + size: [24, 24], + margin: 0, + layout: "landscape", + }, + svgToPdfOptions: { + assumePt: true, + width: 24, + height: 24, + }, +}; + +const drawableConfig: DrawableConfig = { + active: false, + path: "drawable", + svg2vectordrawableConfig: {}, + defaultColor: "@color/gray900", +}; + +const reactConfig: ReactConfig = { + active: true, + path: "react", + genIndexFile: true, + svgrConfig: { + jsxRuntime: "classic", + plugins: ["@svgr/plugin-svgo", "@svgr/plugin-jsx", "@svgr/plugin-prettier"], + prettierConfig: { + tabWidth: 2, + useTabs: false, + singleQuote: true, + semi: true, }, - flutter: { - active: true, - ttfPath: "font/seed-icon.ttf", - fileName: "SeedIcons", - fontFamily: "SeedIcon", - genMode: "recreate", - path: "flutter", + svgoConfig: { + plugins: [ + { + name: "addAttributesToSVGElement", + params: { + attributes: [{ "data-seed-icon": "true" }], + }, + }, + { + name: "convertColors", + params: { + currentColor: true, + }, + }, + { + name: "removeAttrs", + params: { + attrs: ["id"], + }, + }, + ], }, + typescript: true, + dimensions: false, + }, +}; + +const pngConfig: PNGConfig = { + active: false, + genMode: "recreate", + path: "png", +}; + +const vue2Config: Vue2Config = { + path: "packages/vue2", + active: false, + genIndexFile: true, + genShimFile: true, +}; + +const vue3Config: Vue3Config = { + path: "packages/vue3", + active: false, + genIndexFile: true, + genShimFile: true, +}; + +generate({ + config: { + svg: svgConfig, + drawable: drawableConfig, + pdf: pdfConfig, + react: reactConfig, + png: pngConfig, + vue2: vue2Config, + vue3: vue3Config, }, }); ``` @@ -70,8 +155,6 @@ generate({ - [pdfkit (PDF)](https://pdfkit.org/docs/getting_started.html#document-structure) - [svg-to-pdfkit (PDF)](https://github.com/alafr/SVG-to-PDFKit) - [svgr (React Components)](https://react-svgr.com/) -- [svgtofont (Font Files)](https://www.npmjs.com/package/svgtofont) -- [opentype.js (Flutter Icons)](https://github.com/opentypejs/opentype.js) you configure each library options in `config` object. If you want to see real example, you can see [here (seed-icon)](https://github.com/daangn/seed-icon/blob/main/icona.js) diff --git a/packages/generator/package.json b/packages/generator/package.json index ab633c2..600d5c8 100644 --- a/packages/generator/package.json +++ b/packages/generator/package.json @@ -26,10 +26,10 @@ }, "dependencies": { "@icona/types": "^0.6.0", - "@icona/utils": "^0.6.0", "@svgr/core": "^8.0.0", "@types/cli-progress": "^3.11.5", "cli-progress": "^3.12.0", + "findup-sync": "^5.0.0", "opentype.js": "^1.3.4", "pdfkit": "^0.13.0", "svg-to-pdfkit": "^0.1.8", @@ -38,6 +38,7 @@ "svgtofont": "^4.2.0" }, "devDependencies": { + "@types/findup-sync": "^4.0.5", "@types/opentype.js": "^1.3.8", "nanobundle": "^1.6.0", "prettier": "^2.8.8", diff --git a/packages/generator/src/constants.ts b/packages/generator/src/constants.ts new file mode 100644 index 0000000..78752c0 --- /dev/null +++ b/packages/generator/src/constants.ts @@ -0,0 +1,3 @@ +export const ICONA_FOLDER = ".icona"; +export const ICONA_ICONS_FILE = "icons.json"; +export const ICONA_CONFIG_FILE_NAME = "icona.config"; diff --git a/packages/generator/src/core/drawable.ts b/packages/generator/src/core/drawable.ts index 5c6af7d..0b8bfb5 100644 --- a/packages/generator/src/core/drawable.ts +++ b/packages/generator/src/core/drawable.ts @@ -1,30 +1,29 @@ -import type { GenerateDrawableConfig, IconaIconData } from "@icona/types"; +import type { DrawableConfig, IconaIconData } from "@icona/types"; +import { writeFile } from "fs/promises"; +import { resolve } from "path"; +import svg2vectordrawable from "svg2vectordrawable"; + +import { createBar } from "../utils/bar"; import { deleteAllFilesInDir, getIconaIconsFile, - getProjectRootPath, + getTargetPath, makeFolderIfNotExistFromRoot, -} from "@icona/utils"; -import { Presets, SingleBar } from "cli-progress"; -import { writeFile } from "fs/promises"; -import { resolve } from "path"; -import svg2vectordrawable from "svg2vectordrawable"; +} from "../utils/file"; -interface GenerateDrawableFunction { +interface Props { /** * @description Icona icons data * @default .icona/icons.json */ icons?: Record | null; - config: GenerateDrawableConfig; + + config: DrawableConfig; } -export const generateDrawable = async ({ - icons = getIconaIconsFile(), - config, -}: GenerateDrawableFunction) => { - const projectPath = getProjectRootPath(); - const path = config.path || "drawable"; +export const generateDrawable = async (props: Props) => { + const { config, icons = getIconaIconsFile() } = props; + const targetPath = getTargetPath(config.path || "drawable"); const drawableConfig = config.svg2vectordrawableConfig || {}; const defaultColor = config.defaultColor; @@ -34,30 +33,27 @@ export const generateDrawable = async ({ const iconData = Object.entries(icons); if (iconData.length !== 0) { - makeFolderIfNotExistFromRoot(path); + makeFolderIfNotExistFromRoot(targetPath); } if (config.genMode === "recreate") { - deleteAllFilesInDir(resolve(projectPath, path)); + deleteAllFilesInDir(targetPath); } - console.log(`\nDrawable Generate in \`${path}\` folder...`); + console.log(`\nDrawable Generate in \`${targetPath}\` folder...`); - const bar = new SingleBar( - { - format: "Drawable Generate | {bar} | {percentage}% | {value}/{total}", - hideCursor: true, - }, - Presets.shades_grey, - ); + const bar = createBar({ + name: "Drawable", + total: iconData.length, + }); - bar.start(iconData.length, 0); + bar.start(); // TODO: Name transform option for (const [name, data] of iconData) { const { svg } = data; - const drawablePath = resolve(projectPath, path, `${name}.xml`); + const drawablePath = resolve(targetPath, `${name}.xml`); let drawable = await svg2vectordrawable(svg, drawableConfig); // NOTE(@junghyeonsu): DRAWABLE_DEFAULT_COLOR = "#FF212124" diff --git a/packages/generator/src/core/flutter.ts b/packages/generator/src/core/flutter.ts deleted file mode 100644 index c15e76f..0000000 --- a/packages/generator/src/core/flutter.ts +++ /dev/null @@ -1,102 +0,0 @@ -import type { GenerateDartConfig } from "@icona/types"; -import { - deleteAllFilesInDir, - getProjectRootPath, - makeFolderIfNotExistFromRoot, -} from "@icona/utils"; -import { readFileSync, writeFileSync } from "fs"; -import type { GlyphSet } from "opentype.js"; -import opentype from "opentype.js"; -import { resolve } from "path"; - -interface GenerateDartFunction { - config: GenerateDartConfig; -} - -const dartTemplate = ({ - glyphs, - fileName, - fontFamily, -}: { - glyphs: GlyphSet; - fileName: GenerateDartConfig["fileName"]; - fontFamily: GenerateDartConfig["fontFamily"]; -}) => `/// To use this font, place it in your fonts/ directory and include the -/// following in your pubspec.yaml -/// -/// flutter: -/// fonts: -/// - family: ${fontFamily} -/// fonts: -/// - asset: fonts/seed-icon.ttf -/// -/// -/// - -import 'package:flutter/widgets.dart'; - -class ${fileName} { - ${fileName}._(); - - static const _fontFam = '${fontFamily}'; - static const String? _fontPkg = null; - ${new Array(glyphs.length) - .fill(0) - .map((_, i) => { - const glyph = glyphs.get(i); - if (i === 0) return null; // NOTE: There is no glyph at index 0 - if (!glyph) return null; - const code = glyph?.unicode?.toString(16); - const name = glyph?.name; - return ` static const IconData ${name} = - IconData(0x${code}, fontFamily: _fontFam, fontPackage: _fontPkg);`; - }) - .join("\n")} -} -`; - -/** - * @description SVG 폴더를 기준으로 폰트 파일들을 생성합니다. - */ -export const generateDart = async ({ config }: GenerateDartFunction) => { - const { - genMode, - path = "flutter", - ttfPath, - fileName = "SeedIcons", - fontFamily = "SeedIcon", - } = config; - - const projectPath = getProjectRootPath(); - - const resolvedTtfPath = resolve(projectPath, ttfPath); - const resolvedDistPath = resolve(projectPath, path); - - if (!resolvedTtfPath) { - console.error( - `\n[@Icona/generator] Dart File need ttf file. Please check ttf file path or You can generate font file with font option`, - ); - return; - } - - if (genMode === "recreate") { - deleteAllFilesInDir(resolve(projectPath, path)); - } - - console.log(`\n[@Icona/generator] Dart Generate in \`${path}\` folder...`); - - const { buffer } = readFileSync(ttfPath); - const ttf = opentype.parse(buffer); - - const template = dartTemplate({ - glyphs: ttf.glyphs, - fileName, - fontFamily, - }); - - // make dart file - makeFolderIfNotExistFromRoot(path); - writeFileSync(resolve(resolvedDistPath, `${fileName}.dart`), template); - - console.log(`\n[@Icona/generator] Dart Generate Success!!`); -}; diff --git a/packages/generator/src/core/font.ts b/packages/generator/src/core/font.ts deleted file mode 100644 index eaf1d6a..0000000 --- a/packages/generator/src/core/font.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { GenerateFontConfig } from "@icona/types"; -import { deleteAllFilesInDir, getProjectRootPath } from "@icona/utils"; -import { resolve } from "path"; -import svgtofont from "svgtofont"; - -interface GenerateFontFunction { - /** - * @description Icona icons data - * @default .icona/icons.json - */ - config: GenerateFontConfig; -} - -/** - * @description SVG 폴더를 기준으로 폰트 파일들을 생성합니다. - */ -export const generateFont = async ({ config }: GenerateFontFunction) => { - const { genMode, svgToFontOptions } = config; - - const projectPath = getProjectRootPath(); - - const src = resolve(projectPath, svgToFontOptions?.src || "svg"); - const dist = resolve(projectPath, svgToFontOptions?.dist || "font"); - // NOTE: css 옵션을 넣어주지 않으면 error가 throw됨 - const css = svgToFontOptions?.css || false; - const name = svgToFontOptions?.fontName || "icona"; - - if (genMode === "recreate") { - deleteAllFilesInDir(resolve(projectPath, dist)); - } - - console.log(`\n[@Icona/generator] Font Generate in \`${dist}\` folder...`); - - const options = { - ...svgToFontOptions, - name, - src, - dist, - css, - }; - - await svgtofont(options); - - console.log(`\n[@Icona/generator] Font Generate Success!!`); -}; diff --git a/packages/generator/src/core/pdf.ts b/packages/generator/src/core/pdf.ts index 685c209..e170a72 100644 --- a/packages/generator/src/core/pdf.ts +++ b/packages/generator/src/core/pdf.ts @@ -1,31 +1,30 @@ -import type { GeneratePDFConfig, IconaIconData } from "@icona/types"; -import { - deleteAllFilesInDir, - getIconaIconsFile, - getProjectRootPath, - makeFolderIfNotExistFromRoot, -} from "@icona/utils"; -import { Presets, SingleBar } from "cli-progress"; +import type { IconaIconData, PDFConfig } from "@icona/types"; import { createWriteStream } from "fs"; import { resolve } from "path"; import PDFDocument from "pdfkit"; import SVGtoPDF from "svg-to-pdfkit"; -interface GeneratePDFFunction { +import { createBar } from "../utils/bar"; +import { + deleteAllFilesInDir, + getIconaIconsFile, + getTargetPath, + makeFolderIfNotExistFromRoot, +} from "../utils/file"; + +interface Props { /** * @description Icona icons data * @default .icona/icons.json */ icons?: Record | null; - config: GeneratePDFConfig; + + config: PDFConfig; } -export const generatePDF = ({ - icons = getIconaIconsFile(), - config, -}: GeneratePDFFunction) => { - const projectPath = getProjectRootPath(); - const path = config.path || "pdf"; +export const generatePDF = (props: Props) => { + const { config, icons = getIconaIconsFile() } = props; + const targetPath = getTargetPath(config.path || "pdf"); const pdfkitConfig = config.pdfKitConfig || {}; const { x, y, ...restSvgToPdfOptions } = config.svgToPdfOptions || {}; @@ -35,29 +34,26 @@ export const generatePDF = ({ const iconData = Object.entries(icons); if (iconData.length !== 0) { - makeFolderIfNotExistFromRoot(path); + makeFolderIfNotExistFromRoot(targetPath); } if (config.genMode === "recreate") { - deleteAllFilesInDir(resolve(projectPath, path)); + deleteAllFilesInDir(targetPath); } - console.log(`\nPDF Generate in \`${path}\` folder...`); + console.log(`\nPDF Generate in \`${targetPath}\` folder...`); - const bar = new SingleBar( - { - format: "PDF Generate | {bar} | {percentage}% | {value}/{total}", - hideCursor: true, - }, - Presets.shades_grey, - ); + const bar = createBar({ + name: "PDF", + total: iconData.length, + }); - bar.start(iconData.length, 0); + bar.start(); // TODO: Name transform option for (const [name, data] of iconData) { const { svg } = data; - const svgPath = resolve(projectPath, path, `${name}.pdf`); + const svgPath = resolve(targetPath, `${name}.pdf`); /** * @see https://github.com/foliojs/pdfkit/blob/4ec77ddc8c090c8d0d57fbd72cff433e9ce0d733/docs/getting_started.md?plain=1#L194 diff --git a/packages/generator/src/core/png.ts b/packages/generator/src/core/png.ts index 2b17f9b..c8a6fc4 100644 --- a/packages/generator/src/core/png.ts +++ b/packages/generator/src/core/png.ts @@ -1,29 +1,28 @@ -import type { GeneratePNGConfig, IconaIconData } from "@icona/types"; +import type { IconaIconData, PNGConfig } from "@icona/types"; +import { writeFile } from "fs/promises"; +import { resolve } from "path"; + +import { createBar } from "../utils/bar"; import { deleteAllFilesInDir, getIconaIconsFile, - getProjectRootPath, + getTargetPath, makeFolderIfNotExistFromRoot, -} from "@icona/utils"; -import { Presets, SingleBar } from "cli-progress"; -import { writeFile } from "fs/promises"; -import { join, resolve } from "path"; +} from "../utils/file"; -interface GeneratePNGFunction { +interface Props { /** * @description Icona icons data * @default .icona/icons.json */ icons?: Record | null; - config: GeneratePNGConfig; + + config: PNGConfig; } -export const generatePNG = async ({ - icons = getIconaIconsFile(), - config, -}: GeneratePNGFunction) => { - const projectPath = getProjectRootPath(); - const path = config.path || "png"; +export const generatePNG = async (props: Props) => { + const { config, icons = getIconaIconsFile() } = props; + const targetPath = getTargetPath(config.path || "png"); const scales = ["1x", "2x", "3x", "4x"] as const; if (!icons) { @@ -32,19 +31,19 @@ export const generatePNG = async ({ const iconData = Object.entries(icons); if (iconData.length !== 0) { - makeFolderIfNotExistFromRoot(path); + makeFolderIfNotExistFromRoot(targetPath); scales.forEach((scale) => { - makeFolderIfNotExistFromRoot(join(path, scale)); + makeFolderIfNotExistFromRoot(resolve(targetPath, scale)); }); } if (config.genMode === "recreate") { scales.forEach((scale) => { - deleteAllFilesInDir(resolve(projectPath, join(path, scale))); + deleteAllFilesInDir(resolve(targetPath, scale)); }); } - console.log(`\nPNG Generate in \`${path}\` folder...`); + console.log(`\nPNG Generate in \`${targetPath}\` folder...`); const iconaData = Object.entries(icons); // TODO: Name transform option @@ -52,22 +51,19 @@ export const generatePNG = async ({ const iconaScaleData = iconaData.filter(([, data]) => data.png[scale]); if (iconaScaleData.length === 0) continue; - const bar = new SingleBar( - { - format: `Drawable Generate ${scale} | {bar} | {percentage}% | {value}/{total}`, - hideCursor: true, - }, - Presets.shades_grey, - ); + const bar = createBar({ + name: `PNG ${scale}`, + total: iconaScaleData.length, + }); - bar.start(iconaScaleData.length, 0); + bar.start(); for (const [name, data] of iconaScaleData) { const base64 = data.png[scale]; if (!base64) return; const buffer = Buffer.from(base64, "base64"); - const filePath = resolve(projectPath, join(path, scale, `${name}.png`)); + const filePath = resolve(targetPath, scale, `${name}.png`); await writeFile(filePath, buffer); bar.increment(); diff --git a/packages/generator/src/core/react.ts b/packages/generator/src/core/react.ts index 113cee6..9966b50 100644 --- a/packages/generator/src/core/react.ts +++ b/packages/generator/src/core/react.ts @@ -1,31 +1,33 @@ -import type { GenerateReactConfig, IconaIconData } from "@icona/types"; -import { - deleteAllFilesInDir, - getIconaIconsFile, - getProjectRootPath, - makeFolderIfNotExistFromRoot, -} from "@icona/utils"; +import type { IconaIconData, ReactConfig } from "@icona/types"; import type { Config } from "@svgr/core"; import { transform } from "@svgr/core"; -import { Presets, SingleBar } from "cli-progress"; import { writeFile } from "fs/promises"; import { resolve } from "path"; -interface GenerateReactFunction { +import { createBar } from "../utils/bar"; +import { + deleteAllFilesInDir, + getIconaIconsFile, + getTargetPath, + makeFolderIfNotExistFromRoot, +} from "../utils/file"; +import { generateIndexFileTemplate, ignores } from "../utils/template"; + +interface Props { /** * @description Icona icons data * @default .icona/icons.json */ icons?: Record | null; - config: GenerateReactConfig; + + config: ReactConfig; } -export const generateReact = async ({ - icons = getIconaIconsFile(), - config, -}: GenerateReactFunction) => { - const projectPath = getProjectRootPath(); - const path = config.path || "react"; +export const generateReact = async (props: Props) => { + const { config, icons = getIconaIconsFile() } = props; + const { genIndexFile } = config; + const componentNames = []; + const targetPath = getTargetPath(config.path || "react"); const svgrConfig = config.svgrConfig || {}; if (!icons) { @@ -34,24 +36,21 @@ export const generateReact = async ({ const iconData = Object.entries(icons); if (iconData.length !== 0) { - makeFolderIfNotExistFromRoot(path); + makeFolderIfNotExistFromRoot(targetPath); } if (config.genMode === "recreate") { - deleteAllFilesInDir(resolve(projectPath, path)); + deleteAllFilesInDir(targetPath); } - console.log(`\nReact Generate in \`${path}\` folder...`); + console.log(`\nReact Generate in \`${targetPath}\` folder...`); - const bar = new SingleBar( - { - format: "React Generate | {bar} | {percentage}% | {value}/{total}", - hideCursor: true, - }, - Presets.shades_grey, - ); + const bar = createBar({ + name: "React", + total: iconData.length, + }); - bar.start(iconData.length, 0); + bar.start(); // TODO: Name transform option for (const [name, data] of iconData) { @@ -62,15 +61,27 @@ export const generateReact = async ({ .replace(/_[a-z]/g, (ch) => ch[1].toUpperCase()) .replace(/-[a-z]/g, (ch) => ch[1].toUpperCase()); + componentNames.push(componentName); + const component = await transform(svg, svgrConfig as Config, { componentName, }); - const svgPath = resolve(projectPath, path, `${componentName}.tsx`); + const svgPath = resolve(targetPath, `${componentName}.tsx`); + const content = `${ignores}\n${component}`; - await writeFile(svgPath, component, "utf-8"); + await writeFile(svgPath, content, "utf-8"); bar.increment(); } + if (genIndexFile) { + const index = generateIndexFileTemplate({ + componentNames, + ext: null, + }); + const content = `${ignores}\n${index}`; + await writeFile(resolve(targetPath, "index.ts"), content, "utf-8"); + } + bar.stop(); }; diff --git a/packages/generator/src/core/svg.ts b/packages/generator/src/core/svg.ts index c866022..916202d 100644 --- a/packages/generator/src/core/svg.ts +++ b/packages/generator/src/core/svg.ts @@ -1,30 +1,29 @@ -import type { GenerateSVGConfig, IconaIconData } from "@icona/types"; +import type { IconaIconData, SVGConfig } from "@icona/types"; +import { writeFile } from "fs/promises"; +import { resolve } from "path"; +import { optimize } from "svgo"; + +import { createBar } from "../utils/bar"; import { deleteAllFilesInDir, getIconaIconsFile, - getProjectRootPath, + getTargetPath, makeFolderIfNotExistFromRoot, -} from "@icona/utils"; -import { Presets, SingleBar } from "cli-progress"; -import { writeFile } from "fs/promises"; -import { resolve } from "path"; -import { optimize } from "svgo"; +} from "../utils/file"; -interface GenerateSVGFunction { +interface Props { /** * @description Icona icons data * @default .icona/icons.json */ icons?: Record | null; - config: GenerateSVGConfig; + + config: SVGConfig; } -export const generateSVG = async ({ - icons = getIconaIconsFile(), - config, -}: GenerateSVGFunction) => { - const projectPath = getProjectRootPath(); - const path = config.path || "svg"; +export const generateSVG = async (props: Props) => { + const { config, icons = getIconaIconsFile() } = props; + const targetPath = getTargetPath(config.path || "svg"); const svgoConfig = config.svgoConfig || {}; if (!icons) { @@ -33,24 +32,21 @@ export const generateSVG = async ({ const iconData = Object.entries(icons); if (iconData.length !== 0) { - makeFolderIfNotExistFromRoot(path); + makeFolderIfNotExistFromRoot(targetPath); } if (config.genMode === "recreate") { - deleteAllFilesInDir(resolve(projectPath, path)); + deleteAllFilesInDir(targetPath); } - console.log(`\nSVG Generate in \`${path}\` folder...`); + console.log(`\nSVG Generate in \`${targetPath}\` folder...`); - const bar = new SingleBar( - { - format: "SVG Generate | {bar} | {percentage}% | {value}/{total}", - hideCursor: true, - }, - Presets.shades_grey, - ); + const bar = createBar({ + name: "SVG", + total: iconData.length, + }); - bar.start(iconData.length, 0); + bar.start(); // TODO: Name transform option for (const [name, data] of iconData) { @@ -62,7 +58,7 @@ export const generateSVG = async ({ } const { data: optimizedSvg } = optimize(svg, svgoConfig); - const svgPath = resolve(projectPath, path, `${name}.svg`); + const svgPath = resolve(targetPath, `${name}.svg`); await writeFile(svgPath, optimizedSvg, "utf-8"); bar.increment(); } diff --git a/packages/generator/src/core/vue2.ts b/packages/generator/src/core/vue2.ts new file mode 100644 index 0000000..f33776c --- /dev/null +++ b/packages/generator/src/core/vue2.ts @@ -0,0 +1,121 @@ +import type { IconaIconData, Vue2Config } from "@icona/types"; +import { writeFile } from "fs/promises"; +import { resolve } from "path"; + +import { createBar } from "../utils/bar"; +import { toPascalCase } from "../utils/case"; +import { + deleteAllFilesInDir, + getIconaIconsFile, + getTargetPath, + makeFolderIfNotExistFromRoot, +} from "../utils/file"; +import { generateIndexFileTemplate, ignores } from "../utils/template"; + +const shimsTemplate = () => `${ignores}\ndeclare module "*.vue" { + import Vue from 'vue' + export default Vue +}\n`; + +const componentTemplate = (name: string, svg: string) => `${ignores}\n + + +`; + +interface Props { + /** + * @description Icona icons data + * @default .icona/icons.json + */ + icons?: Record | null; + config: Vue2Config; +} + +const createShimFile = async (targetPath: string) => { + await writeFile( + resolve(targetPath, "shims-vue.d.ts"), + shimsTemplate(), + "utf8", + ); +}; + +export const generateVue2 = async (props: Props) => { + const { config, icons = getIconaIconsFile() } = props; + const targetPath = getTargetPath(config.path || "vue2"); + const { genShimFile, genIndexFile } = config; + const componentNames = []; + + if (!icons) { + throw new Error("There is no icons data"); + } + const iconData = Object.entries(icons); + + if (iconData.length !== 0) { + makeFolderIfNotExistFromRoot(targetPath); + } + + if (config.genMode === "recreate") { + deleteAllFilesInDir(targetPath); + } + + console.log(`\nVue2 Generate in \`${targetPath}\` folder...`); + + const bar = createBar({ + name: "Vue2", + total: iconData.length, + }); + + bar.start(); + + for (const [name, data] of iconData) { + const { svg } = data; + + const componentName = toPascalCase(name); + const svgPath = resolve(targetPath, `${componentName}.vue`); + componentNames.push(componentName); + + // SVG 파일 내용을 Vue 컴포넌트로 변환 + const convertedSvg = svg + .replace(/width="([^"]+)"/, ':width="size"') + .replace(/height="([^"]+)"/, ':height="size"'); + + const component = componentTemplate(componentName, convertedSvg); + + await writeFile(svgPath, component, "utf-8"); + + bar.increment(); + } + + if (genShimFile) { + await createShimFile(targetPath); + } + + if (genIndexFile) { + const content = generateIndexFileTemplate({ + componentNames, + ext: "vue", + }); + await writeFile(resolve(targetPath, "index.ts"), content, "utf-8"); + } + + bar.stop(); +}; diff --git a/packages/generator/src/core/vue3.ts b/packages/generator/src/core/vue3.ts new file mode 100644 index 0000000..4a98048 --- /dev/null +++ b/packages/generator/src/core/vue3.ts @@ -0,0 +1,124 @@ +import type { IconaIconData, Vue3Config } from "@icona/types"; +import { writeFile } from "fs/promises"; +import { resolve } from "path"; + +import { createBar } from "../utils/bar"; +import { toPascalCase } from "../utils/case"; +import { + deleteAllFilesInDir, + getIconaIconsFile, + getTargetPath, + makeFolderIfNotExistFromRoot, +} from "../utils/file"; +import { generateIndexFileTemplate, ignores } from "../utils/template"; + +const shimsTemplate = () => `${ignores}\ndeclare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +}\n`; + +// Vue 컴포넌트 템플릿 +const componentTemplate = (name: string, svg: string) => `${ignores}\n + + +`; + +interface Props { + /** + * @description Icona icons data + * @default .icona/icons.json + */ + icons?: Record | null; + config: Vue3Config; +} + +const createShimFile = async (targetPath: string) => { + await writeFile( + resolve(targetPath, "shims-vue.d.ts"), + shimsTemplate(), + "utf8", + ); +}; + +export const generateVue3 = async (props: Props) => { + const { config, icons = getIconaIconsFile() } = props; + const targetPath = getTargetPath(config.path || "vue3"); + const { genShimFile, genIndexFile } = config; + const componentNames = []; + if (!icons) { + throw new Error("There is no icons data"); + } + const iconData = Object.entries(icons); + + if (iconData.length !== 0) { + makeFolderIfNotExistFromRoot(targetPath); + } + + if (config.genMode === "recreate") { + deleteAllFilesInDir(targetPath); + } + + console.log(`\nVue3 Generate in \`${targetPath}\` folder...`); + + const bar = createBar({ + name: "Vue3", + total: iconData.length, + }); + + bar.start(); + + for (const [name, data] of iconData) { + const { svg } = data; + + const componentName = toPascalCase(name); + const svgPath = resolve(targetPath, `${componentName}.vue`); + componentNames.push(componentName); + + // SVG 파일 내용을 Vue 컴포넌트로 변환 + const convertedSvg = svg + .replace(/width="([^"]+)"/, ':width="size"') + .replace(/height="([^"]+)"/, ':height="size"'); + + const component = componentTemplate(componentName, convertedSvg); + + await writeFile(svgPath, component, "utf-8"); + + bar.increment(); + } + + if (genShimFile) { + await createShimFile(targetPath); + } + + if (genIndexFile) { + const content = generateIndexFileTemplate({ + componentNames, + ext: "vue", + }); + await writeFile(resolve(targetPath, "index.ts"), content, "utf-8"); + } + + bar.stop(); +}; diff --git a/packages/generator/src/generator.ts b/packages/generator/src/generator.ts index d0d9de9..570a40a 100644 --- a/packages/generator/src/generator.ts +++ b/packages/generator/src/generator.ts @@ -1,55 +1,40 @@ import type { IconaConfig, IconaIconData } from "@icona/types"; -import { getIconaIconsFile } from "@icona/utils"; import { generateDrawable } from "./core/drawable.js"; -import { generateDart } from "./core/flutter.js"; -import { generateFont } from "./core/font.js"; import { generatePDF } from "./core/pdf.js"; import { generatePNG } from "./core/png.js"; import { generateReact } from "./core/react.js"; import { generateSVG } from "./core/svg.js"; +import { generateVue2 } from "./core/vue2.js"; +import { generateVue3 } from "./core/vue3.js"; +import { getIconaIconsFile } from "./utils/file"; -export const generator = ( - icons: Record, - config: IconaConfig, -) => { - const { pdf, drawable, react, svg, png, font, flutter } = config; - - const generate = async () => { - console.log("[@Icona/generator] Start generating..."); - - if (svg?.active) await generateSVG({ icons, config: svg }); - if (react?.active) await generateReact({ icons, config: react }); - if (pdf?.active) generatePDF({ icons, config: pdf }); - if (drawable?.active) await generateDrawable({ icons, config: drawable }); - if (png?.active) await generatePNG({ icons, config: png }); - if (font?.active) await generateFont({ config: font }); - if (flutter?.active) await generateDart({ config: flutter }); - - console.log("\n[@Icona/generator] Finish generating!!!"); - }; - - return { generate }; -}; - -interface GenerateFunction { +interface Props { /** * @description Icona icons data * @default .icona/icons.json */ icons?: Record | null; + config: IconaConfig; } -export const generate = async ({ - icons = getIconaIconsFile(), - config, -}: GenerateFunction) => { +export const generate = async (props: Props) => { + const { config, icons = getIconaIconsFile() } = props; if (!icons) { throw new Error( "[@Icona/generator] There is no `icons.json` file in .icona folder", ); } - const { generate: fn } = generator(icons, config); - await fn(); + const { pdf, drawable, react, svg, png, vue2, vue3 } = config; + + console.log("[@Icona/generator] Start generating..."); + await generateSVG({ icons, config: svg }); // SVG is required + if (png?.active) await generatePNG({ icons, config: png }); + if (pdf?.active) generatePDF({ icons, config: pdf }); + if (drawable?.active) await generateDrawable({ icons, config: drawable }); + if (react?.active) await generateReact({ icons, config: react }); + if (vue2?.active) await generateVue2({ icons, config: vue2 }); + if (vue3?.active) await generateVue3({ icons, config: vue3 }); + console.log("\n[@Icona/generator] Finish generating!!!"); }; diff --git a/packages/generator/src/index.ts b/packages/generator/src/index.ts index 672033c..d02b169 100644 --- a/packages/generator/src/index.ts +++ b/packages/generator/src/index.ts @@ -1,21 +1,41 @@ +import type { + DrawableConfig, + IconaConfig, + PDFConfig, + PNGConfig, + ReactConfig, + SVGConfig, + Vue2Config, + Vue3Config, +} from "@icona/types"; + import { generateDrawable } from "./core/drawable.js"; -import { generateDart } from "./core/flutter.js"; -import { generateFont } from "./core/font.js"; import { generatePDF } from "./core/pdf.js"; import { generatePNG } from "./core/png.js"; import { generateReact } from "./core/react.js"; import { generateSVG } from "./core/svg.js"; -import { generate, generator } from "./generator.js"; +import { generateVue2 } from "./core/vue2.js"; +import { generateVue3 } from "./core/vue3.js"; +import { generate } from "./generator.js"; export { generate, - generateDart, generateDrawable, - generateFont, generatePDF, generatePNG, generateReact, generateSVG, + generateVue2, + generateVue3, }; -export default generator; +export type { + DrawableConfig, + IconaConfig, + PDFConfig, + PNGConfig, + ReactConfig, + SVGConfig, + Vue2Config, + Vue3Config, +}; diff --git a/packages/generator/src/utils/bar.ts b/packages/generator/src/utils/bar.ts new file mode 100644 index 0000000..73016a1 --- /dev/null +++ b/packages/generator/src/utils/bar.ts @@ -0,0 +1,31 @@ +import { Presets, SingleBar } from "cli-progress"; + +interface Props { + name: string; + + total: number; +} + +export const createBar = ({ name, total }: Props) => { + const bar = new SingleBar( + { + format: `${name} Generate | {bar} | {percentage}% | {value}/{total}`, + hideCursor: true, + }, + Presets.shades_grey, + ); + + const start = () => { + bar.start(total, 0); + }; + + const stop = () => { + bar.stop(); + }; + + const increment = () => { + bar.increment(); + }; + + return { start, stop, increment }; +}; diff --git a/packages/generator/src/utils/case.ts b/packages/generator/src/utils/case.ts new file mode 100644 index 0000000..a0f8134 --- /dev/null +++ b/packages/generator/src/utils/case.ts @@ -0,0 +1,15 @@ +/** + * @description Convert a kebab-case or snake_case string to camelCase. + */ +export const toCamelCase = (str: string) => { + return str.replace(/[_-](\w)/g, (_, char) => char.toUpperCase()); +}; + +/** + * @description Convert a kebab-case or snake_case string to PascalCase. + */ +export const toPascalCase = (str: string) => { + return str + .replace(/[_-](\w)/g, (_, char) => char.toUpperCase()) + .replace(/^\w/, (char) => char.toUpperCase()); +}; diff --git a/packages/generator/src/utils/file.ts b/packages/generator/src/utils/file.ts new file mode 100644 index 0000000..8672460 --- /dev/null +++ b/packages/generator/src/utils/file.ts @@ -0,0 +1,77 @@ +import type { IconaIconData } from "@icona/types"; +import findup from "findup-sync"; +import { + existsSync, + mkdirSync, + readdirSync, + readFileSync, + unlinkSync, +} from "fs"; +import { dirname, join, resolve } from "path"; + +import { ICONA_FOLDER, ICONA_ICONS_FILE } from "../constants"; + +const getProjectRootPath = (): string => { + const packageJsonPath = findup("package.json"); + if (!packageJsonPath) { + throw new Error( + "No package.json file found in the project. Icona requires a package.json file in the root path.", + ); + } + return resolve(dirname(packageJsonPath)); +}; + +const getIconaFolderPath = (): string => + resolve(getProjectRootPath(), ICONA_FOLDER); + +const getIconaIconsPath = (): string => + resolve(getIconaFolderPath(), ICONA_ICONS_FILE); + +const getIconaIconsFile = (): Record | null => { + const iconsPath = getIconaIconsPath(); + if (!existsSync(iconsPath)) return null; + + try { + return JSON.parse(readFileSync(iconsPath, "utf-8")); + } catch (error) { + throw new Error("Failed to read or parse icons.json file."); + } +}; + +const makeFolderIfNotExistFromRoot = (targetPath: string): void => { + const projectPath = getProjectRootPath(); + const fullPath = resolve(projectPath, targetPath); + if (!existsSync(fullPath)) { + mkdirSync(fullPath, { recursive: true }); + } +}; + +const deleteAllFilesInDir = (dirPath: string): void => { + if (!existsSync(dirPath)) { + console.log(`Directory ${dirPath} does not exist.`); + return; + } + + try { + readdirSync(dirPath).forEach((file) => { + unlinkSync(join(dirPath, file)); + }); + } catch (error) { + console.error(`Error while deleting files in directory ${dirPath}:`, error); + } +}; + +const getTargetPath = (path: string): string => { + const projectPath = getProjectRootPath(); + return resolve(projectPath, path); +}; + +export { + deleteAllFilesInDir, + getIconaFolderPath, + getIconaIconsFile, + getIconaIconsPath, + getProjectRootPath, + getTargetPath, + makeFolderIfNotExistFromRoot, +}; diff --git a/packages/generator/src/utils/template.ts b/packages/generator/src/utils/template.ts new file mode 100644 index 0000000..f0ef45a --- /dev/null +++ b/packages/generator/src/utils/template.ts @@ -0,0 +1,20 @@ +// index.vue 파일 내용을 생성하는 함수 +interface GenerateIndexFileTemplateProps { + componentNames: string[]; + ext: string | null; +} + +export const ignores = `/* eslint-disable */ // @ts-nocheck @ts-ignore`; + +export const generateIndexFileTemplate = ( + props: GenerateIndexFileTemplateProps, +) => { + const { componentNames, ext } = props; + const imports = componentNames + .map((name) => { + const importName = ext ? `${name}.${ext}` : name; + return `export { default as ${name} } from "./${importName}";`; + }) + .join("\n"); + return `${ignores}\n${imports}\n`; +}; diff --git a/packages/types/package.json b/packages/types/package.json index 5fd8bb7..fe58b8d 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -19,7 +19,6 @@ "@types/prettier": "^2.7.3", "@types/svg-to-pdfkit": "^0.1.0", "svgo": "^3.0.2", - "svgtofont": "^4.2.0", "typescript": "^5.1.3" }, "packageManager": "yarn@3.5.1", diff --git a/packages/types/src/data.d.ts b/packages/types/src/data.d.ts index 3b0e753..a029cca 100644 --- a/packages/types/src/data.d.ts +++ b/packages/types/src/data.d.ts @@ -1,13 +1,13 @@ type Base64 = string; -export interface Style { +export interface SVGStyleOptions { width: number; height: number; } export interface IconaIconData { name: string; - style: Style; + style: SVGStyleOptions; svg: string; png: { "1x": Base64 | null; diff --git a/packages/types/src/lib.d.ts b/packages/types/src/lib.d.ts index e384870..3746ffc 100644 --- a/packages/types/src/lib.d.ts +++ b/packages/types/src/lib.d.ts @@ -1,7 +1,43 @@ import type { Config as SvgrConfig } from "@svgr/core"; import type { SVGtoPDFOptions as LibSVGtoPDFOptions } from "svg-to-pdfkit"; import type { Config as SvgoConfig } from "svgo"; -import type { SvgToFontOptions } from "svgtofont"; + +/** + * @param overwrite overwrite existing files in folder + * @param recreate rm -rf all files and generate new files in folder + */ +type GenerateMode = "recreate" | "overwrite"; + +interface BaseConfig { + /** + * @default overwrite + */ + genMode?: GenerateMode; + + /** + * files path that will be generated + */ + path?: string; + + /** + * generate files in folder + * @default false + */ + active: boolean; +} + +export interface SVGConfig extends Omit { + /** + * Config (svgo) + * @see https://github.com/svg/svgo#configuration + */ + svgoConfig?: SvgoConfig; +} + +type SvgToPdfOptions = { + x?: number; + y?: number; +} & LibSVGtoPDFOptions; type PDFKitConfig = PDFKit.PDFDocumentOptions & { /** @@ -27,34 +63,7 @@ type PDFKitConfig = PDFKit.PDFDocumentOptions & { info?: PDFKit.PDFDocumentOptions["info"]; }; -export type SvgToPdfOptions = { - x?: number; - y?: number; -} & LibSVGtoPDFOptions; -/** - * @param overwrite overwrite existing files in folder - * @param recreate rm -rf all files and generate new files in folder - */ -export type GenerateMode = "recreate" | "overwrite"; - -export interface GeneratePDFConfig { - /** - * @default overwrite - */ - genMode?: GenerateMode; - - /** - * generate drawable pdf files - * @default false - */ - active: boolean; - - /** - * pdf files path that will be generated - * @default pdf - */ - path?: string; - +export interface PDFConfig extends BaseConfig { /** * PDFKit.PDFDocumentOptions * @see https://pdfkit.org/docs/getting_started.html#document-structure @@ -71,54 +80,14 @@ export interface GeneratePDFConfig { svgToPdfOptions?: SvgToPdfOptions; } -export interface GenerateReactConfig { - /** - * @default overwrite - */ - genMode?: GenerateMode; - - /** - * generate drawable react files - * @default false - */ - active: boolean; - - /** - * react component files path that will be generated - * @default react - */ - path?: string; - +export interface ReactConfig extends BaseConfig { /** * Config (@svgr/core) * @see https://react-svgr.com/docs/options/ */ svgrConfig?: SvgrConfig; -} - -export interface GenerateSVGConfig { - /** - * @default overwrite - */ - genMode?: GenerateMode; - /** - * generate drawable svg files - * @default true - */ - active: boolean; - - /** - * svg files path that will be generated - * @default svg - */ - path?: string; - - /** - * Config (svgo) - * @see https://github.com/svg/svgo#configuration - */ - svgoConfig?: SvgoConfig; + genIndexFile?: boolean; } interface Svg2vectordrawableOptions { @@ -129,24 +98,7 @@ interface Svg2vectordrawableOptions { tint?: string; } -export interface GenerateDrawableConfig { - /** - * @default overwrite - */ - genMode?: GenerateMode; - - /** - * generate drawable xml files - * @default false - */ - active: boolean; - - /** - * xml files path that will be generated - * @default xml - */ - path?: string; - +export interface DrawableConfig extends BaseConfig { /** * Config (svg2vectordrawable) * @see https://github.com/Ashung/svg2vectordrawable @@ -161,84 +113,26 @@ export interface GenerateDrawableConfig { defaultColor?: string; } -export interface GeneratePNGConfig { - /** - * @default overwrite - */ - genMode?: GenerateMode; - - /** - * generate drawable PNG files - * @default false - */ - active: boolean; - - /** - * xml files path that will be generated - * @default xml - */ - path?: string; -} - -export interface GenerateFontConfig { - /** - * @default overwrite - */ - genMode?: GenerateMode; +export interface PNGConfig extends BaseConfig {} - /** - * generate drawable PNG files - * @default false - */ - active: boolean; +export interface Vue2Config extends BaseConfig { + genShimFile?: boolean; - /** - * @see https://wangchujiang.com/svgtofont/#options - */ - svgToFontOptions?: SvgToFontOptions; + genIndexFile?: boolean; } -export interface GenerateDartConfig { - /** - * @default overwrite - */ - genMode?: GenerateMode; - - /** - * generate dart file - */ - active: boolean; - - /** - * ttf file path - */ - ttfPath: string; - - /** - * dart files path that will be generated - * @default flutter - */ - path?: string; +export interface Vue3Config extends BaseConfig { + genShimFile?: boolean; - /** - * flutter className and file name - * @default SeedIcons - */ - fileName?: string; - - /** - * flutter font family - * @default SeedIcon - */ - fontFamily?: string; + genIndexFile?: boolean; } export interface IconaConfig { - svg: GenerateSVGConfig; - react: GenerateReactConfig; - pdf: GeneratePDFConfig; - drawable: GenerateDrawableConfig; - png: GeneratePNGConfig; - font: GenerateFontConfig; - flutter: GenerateDartConfig; + svg: SVGConfig; + react: ReactConfig; + pdf: PDFConfig; + drawable: DrawableConfig; + png: PNGConfig; + vue2: Vue2Config; + vue3: Vue3Config; } diff --git a/packages/utils/.gitignore b/packages/utils/.gitignore deleted file mode 100644 index 1521c8b..0000000 --- a/packages/utils/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dist diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md deleted file mode 100644 index 807dcf9..0000000 --- a/packages/utils/CHANGELOG.md +++ /dev/null @@ -1,149 +0,0 @@ -# @icona/utils - -## 0.6.0 - -### Minor Changes - -- 1ef6f48: feat: - - - (generator): Add `.dart` generate method - - This is for flutter projects and Need `.ttf` file to generate `.dart` file (You can use `font` option) - -### Patch Changes - -- Updated dependencies [1ef6f48] - - @icona/types@0.6.0 - -## 0.5.0 - -### Minor Changes - -- af4efe8: - (generator) Added `svgtofont` package to generate `font` (eot, ttf, woff, woff2, svg) files from `SVG` files. - - (generator) Added `config.font` method in `generate` function to generate `font` files. - - (generator) Added `generateFont` method - -### Patch Changes - -- Updated dependencies [af4efe8] - - @icona/types@0.5.0 - -## 0.4.1 - -### Patch Changes - -- 51a6e58: fix: png, pdf bar no stop issue -- Updated dependencies [51a6e58] - - @icona/types@0.4.1 - -## 0.4.0 - -### Minor Changes - -- b04ef92: feat: add progress bar & change async & change png folder name (x1 -> 1x) - -### Patch Changes - -- Updated dependencies [b04ef92] - - @icona/types@0.4.0 - -## 0.3.0 - -### Minor Changes - -- b9e4030: feat: Extract PNG images by scale - -### Patch Changes - -- Updated dependencies [b9e4030] - - @icona/types@0.3.0 - -## 0.2.2 - -### Patch Changes - -- ccd993b: chore: 폴더가 없을 때 deleteAllFilesInDir 예외처리 및 폴더 생성은 한번만 -- Updated dependencies [ccd993b] - - @icona/types@0.2.2 - -## 0.2.1 - -### Patch Changes - -- 76e145e: chore: change SvgToPdfOptions type -- Updated dependencies [76e145e] - - @icona/types@0.2.1 - -## 0.2.0 - -### Minor Changes - -- c43e052: feat: add generate mode option - - - `overwrite` (default): overwrite existing files in folder - - `recreate`: rm -rf all files and generate new files in folder - -### Patch Changes - -- Updated dependencies [c43e052] - - @icona/types@0.2.0 - -## 0.1.0 - -### Minor Changes - -- 9e98a6d: PNG 내보내기 & width, height 정보 받기 -- ae02a6f: Add png export - -### Patch Changes - -- Updated dependencies [9e98a6d] -- Updated dependencies [ae02a6f] - - @icona/types@0.1.0 - -## 0.0.13 - -### Patch Changes - -- 6868b2a: change .icons file data struct - -## 0.0.12 - -### Patch Changes - -- 6475f78: fix pdf options - -## 0.0.10 - -### Patch Changes - -- c62dc32: Not use CLI, instead Generator - -## 0.0.9 - -### Patch Changes - -- 68f7418: bump test - -## 0.0.8 - -### Patch Changes - -- 8bd5ea3: bump test - -## 0.0.7 - -### Patch Changes - -- 9d4053c: bump - -## 0.0.3 - -### Patch Changes - -- 1ed9754: bump - -## 0.0.2 - -### Patch Changes - -- 78ce9d5: Init diff --git a/packages/utils/README.md b/packages/utils/README.md deleted file mode 100644 index e5a2e91..0000000 --- a/packages/utils/README.md +++ /dev/null @@ -1 +0,0 @@ -# icona-utils diff --git a/packages/utils/package.json b/packages/utils/package.json deleted file mode 100644 index 0aab5c5..0000000 --- a/packages/utils/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@icona/utils", - "version": "0.6.0", - "repository": { - "type": "git", - "url": "git+https://github.com/daangn/icona.git", - "directory": "packages/icona-utils" - }, - "type": "module", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "require": "./dist/index.cjs" - } - }, - "main": "./dist/index.js", - "files": [ - "dist", - "src" - ], - "scripts": { - "build": "nanobundle build", - "clean": "nanobundle clean", - "prepack": "yarn build" - }, - "dependencies": { - "@icona/types": "^0.6.0", - "findup-sync": "^5.0.0" - }, - "devDependencies": { - "@types/findup-sync": "^4.0.2", - "@types/node": "^20.3.1", - "nanobundle": "^1.6.0", - "typescript": "^5.1.3" - }, - "packageManager": "yarn@3.5.1", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts deleted file mode 100644 index 27c1e06..0000000 --- a/packages/utils/src/index.ts +++ /dev/null @@ -1,91 +0,0 @@ -// TODO: Need test code for this file. -import type { IconaIconData } from "@icona/types"; -import findup from "findup-sync"; -import { - existsSync, - mkdirSync, - readdirSync, - readFileSync, - unlinkSync, - writeFileSync, -} from "fs"; -import path, { dirname, resolve } from "path"; - -export const ICONA_FOLDER = ".icona"; -export const ICONA_ICONS_FILE = "icons.json"; - -export const ICONA_CONFIG_FILE_NAME = "icona.config"; - -export const getProjectRootPath = () => { - const packageJsonPath = findup("package.json"); - if (!packageJsonPath) { - throw new Error( - "There is no package.json file in your project, Icona need package.json file in your project root path", - ); - } - return resolve(dirname(packageJsonPath)); -}; - -export const getIconaFolderPath = () => { - return resolve(getProjectRootPath(), ICONA_FOLDER); -}; - -export const getIconaIconsPath = () => { - return resolve(getIconaFolderPath(), ICONA_ICONS_FILE); -}; - -export const getIconaConfigPath = () => { - const ts = resolve(getProjectRootPath(), `${ICONA_CONFIG_FILE_NAME}.ts`); - const js = resolve(getProjectRootPath(), `${ICONA_CONFIG_FILE_NAME}.js`); - - if (!existsSync(ts) && !existsSync(js)) { - throw new Error( - `There is no ${ICONA_CONFIG_FILE_NAME}.ts or ${ICONA_CONFIG_FILE_NAME}.js file in your project, Icona need ${ICONA_CONFIG_FILE_NAME}.ts or ${ICONA_CONFIG_FILE_NAME}.js file in your project root path`, - ); - } - - if (existsSync(ts)) { - return ts; - } - - return js; -}; - -export const getIconaIconsFile = () => { - if (!existsSync(getIconaIconsPath())) { - return null; - } - - return JSON.parse(readFileSync(getIconaIconsPath(), "utf-8")) as Record< - string, - IconaIconData - >; -}; - -export const makeFolderIfNotExistFromRoot = (targetPath: string) => { - const projectPath = getProjectRootPath(); - if (!existsSync(resolve(projectPath, targetPath))) { - mkdirSync(resolve(projectPath, targetPath)); - } -}; - -export const generateConfigFile = (config: string) => { - const configPath = getIconaConfigPath(); - const iconaFolderPath = getIconaFolderPath(); - - makeFolderIfNotExistFromRoot(iconaFolderPath); - - writeFileSync(configPath, config); -}; - -export const deleteAllFilesInDir = (dirPath: string) => { - if (!existsSync(dirPath)) return; - - try { - readdirSync(dirPath).forEach((file) => { - unlinkSync(path.join(dirPath, file)); - }); - } catch (error) { - console.log(error); - } -}; diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json deleted file mode 100644 index 0862b40..0000000 --- a/packages/utils/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "node", - "resolveJsonModule": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "declaration": true, - "outDir": "dist" - }, - "include": ["src"], -} diff --git a/test/.gitignore b/test/.gitignore index 8327883..5a93b82 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -4,3 +4,5 @@ pdf png react svg + +packages/* \ No newline at end of file diff --git a/test/flutter/SeedIcons.dart b/test/flutter/SeedIcons.dart deleted file mode 100644 index 3f19e45..0000000 --- a/test/flutter/SeedIcons.dart +++ /dev/null @@ -1,1188 +0,0 @@ -/// To use this font, place it in your fonts/ directory and include the -/// following in your pubspec.yaml -/// -/// flutter: -/// fonts: -/// - family: SeedIcon -/// fonts: -/// - asset: fonts/seed-icon.ttf -/// -/// -/// -import 'package:flutter/widgets.dart'; - -class SeedIcons { - SeedIcons._(); - - static const _fontFam = 'SeedIcon'; - static const String? _fontPkg = null; - - static const IconData icon_add_circle_fill = - IconData(0xea01, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_add_circle_regular = - IconData(0xea02, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_add_circle_thin = - IconData(0xea03, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_add_fill = - IconData(0xea04, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_add_regular = - IconData(0xea05, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_add_thin = - IconData(0xea06, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_aeb_fill = - IconData(0xea07, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_aeb_regular = - IconData(0xea08, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_aeb_thin = - IconData(0xea09, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_android_share_fill = - IconData(0xea0a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_android_share_regular = - IconData(0xea0b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_android_share_thin = - IconData(0xea0c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_downward_fill = - IconData(0xea0d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_downward_regular = - IconData(0xea0e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_downward_thin = - IconData(0xea0f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_drop_down_fill = - IconData(0xea10, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_drop_down_regular = - IconData(0xea11, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_drop_down_thin = - IconData(0xea12, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_drop_up_fill = - IconData(0xea13, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_drop_up_regular = - IconData(0xea14, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_drop_up_thin = - IconData(0xea15, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_fill = - IconData(0xea16, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_regular = - IconData(0xea17, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_thin = - IconData(0xea18, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_upward_fill = - IconData(0xea19, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_upward_regular = - IconData(0xea1a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_arrow_upward_thin = - IconData(0xea1b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_article_fill = - IconData(0xea1c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_article_regular = - IconData(0xea1d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_article_thin = - IconData(0xea1e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_backward_fill = - IconData(0xea1f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_backward_regular = - IconData(0xea20, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_backward_thin = - IconData(0xea21, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bill_fill = - IconData(0xea22, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bill_regular = - IconData(0xea23, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bill_thin = - IconData(0xea24, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bold_fill = - IconData(0xea25, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bold_regular = - IconData(0xea26, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bold_thin = - IconData(0xea27, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bookmark_fill = - IconData(0xea28, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bookmark_list_fill = - IconData(0xea29, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bookmark_list_regular = - IconData(0xea2a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bookmark_list_thin = - IconData(0xea2b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bookmark_regular = - IconData(0xea2c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_bookmark_thin = - IconData(0xea2d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_calendar_fill = - IconData(0xea2e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_calendar_regular = - IconData(0xea2f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_calendar_thin = - IconData(0xea30, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_call_declined_fill = - IconData(0xea31, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_call_declined_regular = - IconData(0xea32, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_call_declined_thin = - IconData(0xea33, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_call_fill = - IconData(0xea34, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_call_regular = - IconData(0xea35, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_call_thin = - IconData(0xea36, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_camera_fill = - IconData(0xea37, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_camera_regular = - IconData(0xea38, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_camera_thin = - IconData(0xea39, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_around_view_fill = - IconData(0xea3a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_around_view_regular = - IconData(0xea3b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_around_view_thin = - IconData(0xea3c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_blind_spot_fill = - IconData(0xea3d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_blind_spot_regular = - IconData(0xea3e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_blind_spot_thin = - IconData(0xea3f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_cruise_control_fill = - IconData(0xea40, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_cruise_control_regular = - IconData(0xea41, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_cruise_control_thin = - IconData(0xea42, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_epb_fill = - IconData(0xea43, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_epb_regular = - IconData(0xea44, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_epb_thin = - IconData(0xea45, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_fill = - IconData(0xea46, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_heated_seat_fill = - IconData(0xea47, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_heated_seat_regular = - IconData(0xea48, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_heated_seat_thin = - IconData(0xea49, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_heated_steering_wheel_fill = - IconData(0xea4a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_heated_steering_wheel_regular = - IconData(0xea4b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_heated_steering_wheel_thin = - IconData(0xea4c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_ldws_fill = - IconData(0xea4d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_ldws_regular = - IconData(0xea4e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_ldws_thin = - IconData(0xea4f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_leather_seat_fill = - IconData(0xea50, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_leather_seat_regular = - IconData(0xea51, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_leather_seat_thin = - IconData(0xea52, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_navigation_fill = - IconData(0xea53, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_navigation_regular = - IconData(0xea54, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_navigation_thin = - IconData(0xea55, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_power_trunk_fill = - IconData(0xea56, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_power_trunk_regular = - IconData(0xea57, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_power_trunk_thin = - IconData(0xea58, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_rear_camera_fill = - IconData(0xea59, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_rear_camera_regular = - IconData(0xea5a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_rear_camera_thin = - IconData(0xea5b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_rear_sensor_fill = - IconData(0xea5c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_rear_sensor_regular = - IconData(0xea5d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_rear_sensor_thin = - IconData(0xea5e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_regular = - IconData(0xea5f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_smart_key_fill = - IconData(0xea60, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_smart_key_regular = - IconData(0xea61, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_smart_key_thin = - IconData(0xea62, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_thin = - IconData(0xea63, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_ventilation_seat_fill = - IconData(0xea64, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_ventilation_seat_regular = - IconData(0xea65, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_car_ventilation_seat_thin = - IconData(0xea66, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_cart_fill = - IconData(0xea67, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_cart_regular = - IconData(0xea68, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_cart_thin = - IconData(0xea69, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_certification_fill = - IconData(0xea6a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_certification_regular = - IconData(0xea6b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_certification_thin = - IconData(0xea6c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_challenge_fill = - IconData(0xea6d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_challenge_regular = - IconData(0xea6e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_challenge_thin = - IconData(0xea6f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chart_fill = - IconData(0xea70, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chart_regular = - IconData(0xea71, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chart_thin = - IconData(0xea72, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chat_bubble_check_fill = - IconData(0xea73, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chat_bubble_check_regular = - IconData(0xea74, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chat_bubble_check_thin = - IconData(0xea75, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chatting_fill = - IconData(0xea76, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chatting_regular = - IconData(0xea77, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chatting_send_fill = - IconData(0xea78, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chatting_send_regular = - IconData(0xea79, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chatting_send_thin = - IconData(0xea7a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chatting_thin = - IconData(0xea7b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_check_fill = - IconData(0xea7c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_check_flower_fill = - IconData(0xea7d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_check_flower_regular = - IconData(0xea7e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_check_flower_thin = - IconData(0xea7f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_check_regular = - IconData(0xea80, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_check_thin = - IconData(0xea81, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chevron_left_fill = - IconData(0xea82, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chevron_left_regular = - IconData(0xea83, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chevron_left_thin = - IconData(0xea84, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chevron_right_fill = - IconData(0xea85, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chevron_right_regular = - IconData(0xea86, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_chevron_right_thin = - IconData(0xea87, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_click_fill = - IconData(0xea88, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_click_regular = - IconData(0xea89, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_click_thin = - IconData(0xea8a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_clock_fill = - IconData(0xea8b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_clock_regular = - IconData(0xea8c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_clock_thin = - IconData(0xea8d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_close_fill = - IconData(0xea8e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_close_regular = - IconData(0xea8f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_close_thin = - IconData(0xea90, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_cobuying_fill = - IconData(0xea91, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_cobuying_regular = - IconData(0xea92, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_cobuying_thin = - IconData(0xea93, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_community_fill = - IconData(0xea94, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_community_regular = - IconData(0xea95, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_community_thin = - IconData(0xea96, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_condo_fill = - IconData(0xea97, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_condo_regular = - IconData(0xea98, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_condo_thin = - IconData(0xea99, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_fill = - IconData(0xea9a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_pay_fill = - IconData(0xea9b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_pay_regular = - IconData(0xea9c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_pay_thin = - IconData(0xea9d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_profile_fill = - IconData(0xea9e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_profile_regular = - IconData(0xea9f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_profile_thin = - IconData(0xeaa0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_regular = - IconData(0xeaa1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_confirmation_thin = - IconData(0xeaa2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_contents_fill = - IconData(0xeaa3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_contents_regular = - IconData(0xeaa4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_contents_thin = - IconData(0xeaa5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_convert_fill = - IconData(0xeaa6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_convert_regular = - IconData(0xeaa7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_convert_thin = - IconData(0xeaa8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_copy_fill = - IconData(0xeaa9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_copy_regular = - IconData(0xeaaa, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_copy_thin = - IconData(0xeaab, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_download_done_fill = - IconData(0xeaac, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_download_done_regular = - IconData(0xeaad, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_download_done_thin = - IconData(0xeaae, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_fill = - IconData(0xeaaf, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_regular = - IconData(0xeab0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_thin = - IconData(0xeab1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_used_fill = - IconData(0xeab2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_used_regular = - IconData(0xeab3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_coupon_used_thin = - IconData(0xeab4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_delete_keyboard_fill = - IconData(0xeab5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_delete_keyboard_regular = - IconData(0xeab6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_delete_keyboard_thin = - IconData(0xeab7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_delivery_fill = - IconData(0xeab8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_delivery_regular = - IconData(0xeab9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_delivery_thin = - IconData(0xeaba, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_download_fill = - IconData(0xeabb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_download_regular = - IconData(0xeabc, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_download_thin = - IconData(0xeabd, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_edit_fill = - IconData(0xeabe, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_edit_regular = - IconData(0xeabf, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_edit_thin = - IconData(0xeac0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_emoticon_bad_fill = - IconData(0xeac1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_emoticon_bad_regular = - IconData(0xeac2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_emoticon_bad_thin = - IconData(0xeac3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_emoticon_fill = - IconData(0xeac4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_emoticon_regular = - IconData(0xeac5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_emoticon_thin = - IconData(0xeac6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_fill = - IconData(0xeac7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_less_fill = - IconData(0xeac8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_less_regular = - IconData(0xeac9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_less_thin = - IconData(0xeaca, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_more_fill = - IconData(0xeacb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_more_regular = - IconData(0xeacc, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_more_thin = - IconData(0xeacd, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_regular = - IconData(0xeace, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_expand_thin = - IconData(0xeacf, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_file_fill = - IconData(0xead0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_file_regular = - IconData(0xead1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_file_thin = - IconData(0xead2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_filter02_fill = - IconData(0xead3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_filter02_regular = - IconData(0xead4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_filter02_thin = - IconData(0xead5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_forward_fill = - IconData(0xead6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_forward_regular = - IconData(0xead7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_forward_thin = - IconData(0xead8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gender_fill = - IconData(0xead9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gender_regular = - IconData(0xeada, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gender_thin = - IconData(0xeadb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_global_fill = - IconData(0xeadc, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_global_regular = - IconData(0xeadd, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_global_thin = - IconData(0xeade, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_enable2_fill = - IconData(0xeadf, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_enable2_regular = - IconData(0xeae0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_enable2_thin = - IconData(0xeae1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_enable_fill = - IconData(0xeae2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_enable_regular = - IconData(0xeae3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_enable_thin = - IconData(0xeae4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_fill = - IconData(0xeae5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_regular = - IconData(0xeae6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_gps_thin = - IconData(0xeae7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_groupchat_king_fill = - IconData(0xeae8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_groupchat_king_regular = - IconData(0xeae9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_groupchat_king_thin = - IconData(0xeaea, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_handle_fill = - IconData(0xeaeb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_handle_regular = - IconData(0xeaec, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_handle_thin = - IconData(0xeaed, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_hashtag_fill = - IconData(0xeaee, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_hashtag_regular = - IconData(0xeaef, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_hashtag_thin = - IconData(0xeaf0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_headphone_fill = - IconData(0xeaf1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_headphone_regular = - IconData(0xeaf2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_headphone_thin = - IconData(0xeaf3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_heart_fill = - IconData(0xeaf4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_heart_regular = - IconData(0xeaf5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_heart_thin = - IconData(0xeaf6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_help_fill = - IconData(0xeaf7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_help_regular = - IconData(0xeaf8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_help_thin = - IconData(0xeaf9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_helpcenter_fill = - IconData(0xeafa, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_helpcenter_regular = - IconData(0xeafb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_helpcenter_thin = - IconData(0xeafc, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_helper_fill = - IconData(0xeafd, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_helper_regular = - IconData(0xeafe, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_helper_thin = - IconData(0xeaff, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_home_fill = - IconData(0xeb00, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_home_regular = - IconData(0xeb01, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_home_thin = - IconData(0xeb02, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_house_fill = - IconData(0xeb03, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_house_regular = - IconData(0xeb04, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_house_thin = - IconData(0xeb05, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_housekeeping_book_fill = - IconData(0xeb06, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_housekeeping_book_regular = - IconData(0xeb07, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_housekeeping_book_thin = - IconData(0xeb08, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_import_fill = - IconData(0xeb09, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_import_regular = - IconData(0xeb0a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_import_thin = - IconData(0xeb0b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_info_fill = - IconData(0xeb0c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_info_regular = - IconData(0xeb0d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_info_thin = - IconData(0xeb0e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_interest_fill = - IconData(0xeb0f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_interest_list_fill = - IconData(0xeb10, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_interest_list_regular = - IconData(0xeb11, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_interest_list_thin = - IconData(0xeb12, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_interest_regular = - IconData(0xeb13, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_interest_thin = - IconData(0xeb14, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_invite_fill = - IconData(0xeb15, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_invite_regular = - IconData(0xeb16, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_invite_thin = - IconData(0xeb17, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_ios_share_fill = - IconData(0xeb18, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_ios_share_regular = - IconData(0xeb19, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_ios_share_thin = - IconData(0xeb1a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_jobs_fill = - IconData(0xeb1b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_jobs_regular = - IconData(0xeb1c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_jobs_thin = - IconData(0xeb1d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_keyboard_hiding_fill = - IconData(0xeb1e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_keyboard_hiding_regular = - IconData(0xeb1f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_keyboard_hiding_thin = - IconData(0xeb20, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_keyword_fill = - IconData(0xeb21, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_keyword_regular = - IconData(0xeb22, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_keyword_thin = - IconData(0xeb23, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_laptop_fill = - IconData(0xeb24, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_laptop_regular = - IconData(0xeb25, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_laptop_thin = - IconData(0xeb26, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_leaf_fill = - IconData(0xeb27, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_leaf_regular = - IconData(0xeb28, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_leaf_thin = - IconData(0xeb29, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_card_fill = - IconData(0xeb2a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_card_regular = - IconData(0xeb2b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_card_thin = - IconData(0xeb2c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_check_fill = - IconData(0xeb2d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_check_regular = - IconData(0xeb2e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_check_thin = - IconData(0xeb2f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_fill = - IconData(0xeb30, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_regular = - IconData(0xeb31, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_select_fill = - IconData(0xeb32, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_select_regular = - IconData(0xeb33, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_select_thin = - IconData(0xeb34, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_thin = - IconData(0xeb35, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_thumbnail_fill = - IconData(0xeb36, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_thumbnail_regular = - IconData(0xeb37, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_list_thumbnail_thin = - IconData(0xeb38, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_location_fill = - IconData(0xeb39, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_location_regular = - IconData(0xeb3a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_location_thin = - IconData(0xeb3b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_lock_fill = - IconData(0xeb3c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_lock_regular = - IconData(0xeb3d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_lock_thin = - IconData(0xeb3e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_loudspeaker_fill = - IconData(0xeb3f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_loudspeaker_regular = - IconData(0xeb40, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_loudspeaker_thin = - IconData(0xeb41, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_map_fill = - IconData(0xeb42, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_map_regular = - IconData(0xeb43, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_map_thin = - IconData(0xeb44, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_market_check_fill = - IconData(0xeb45, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_market_check_regular = - IconData(0xeb46, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_market_check_thin = - IconData(0xeb47, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_market_fill = - IconData(0xeb48, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_market_regular = - IconData(0xeb49, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_market_thin = - IconData(0xeb4a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mention_fill = - IconData(0xeb4b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mention_regular = - IconData(0xeb4c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mention_thin = - IconData(0xeb4d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_menu_fill = - IconData(0xeb4e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_menu_regular = - IconData(0xeb4f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_menu_thin = - IconData(0xeb50, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mic_fill = - IconData(0xeb51, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mic_off_fill = - IconData(0xeb52, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mic_off_regular = - IconData(0xeb53, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mic_off_thin = - IconData(0xeb54, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mic_regular = - IconData(0xeb55, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mic_thin = - IconData(0xeb56, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mission_fill = - IconData(0xeb57, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mission_regular = - IconData(0xeb58, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mission_thin = - IconData(0xeb59, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mobile_fill = - IconData(0xeb5a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mobile_regular = - IconData(0xeb5b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_mobile_thin = - IconData(0xeb5c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_money_send_fill = - IconData(0xeb5d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_money_send_regular = - IconData(0xeb5e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_money_send_thin = - IconData(0xeb5f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_money_won_fill = - IconData(0xeb60, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_money_won_regular = - IconData(0xeb61, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_money_won_thin = - IconData(0xeb62, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_moon_fill = - IconData(0xeb63, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_moon_regular = - IconData(0xeb64, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_moon_thin = - IconData(0xeb65, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_more_horiz_fill = - IconData(0xeb66, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_more_horiz_regular = - IconData(0xeb67, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_more_horiz_thin = - IconData(0xeb68, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_more_vert_fill = - IconData(0xeb69, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_more_vert_regular = - IconData(0xeb6a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_more_vert_thin = - IconData(0xeb6b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_my_fill = - IconData(0xeb6c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_my_profile_fill = - IconData(0xeb6d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_my_profile_regular = - IconData(0xeb6e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_my_profile_thin = - IconData(0xeb6f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_my_regular = - IconData(0xeb70, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_my_thin = - IconData(0xeb71, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_near_me_fill = - IconData(0xeb72, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_near_me_regular = - IconData(0xeb73, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_near_me_thin = - IconData(0xeb74, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_newtopic_fill = - IconData(0xeb75, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_newtopic_regular = - IconData(0xeb76, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_newtopic_thin = - IconData(0xeb77, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_note_fill = - IconData(0xeb78, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_note_regular = - IconData(0xeb79, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_note_thin = - IconData(0xeb7a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_fall_fill = - IconData(0xeb7b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_fall_regular = - IconData(0xeb7c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_fall_thin = - IconData(0xeb7d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_fill = - IconData(0xeb7e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_off_fill = - IconData(0xeb7f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_off_regular = - IconData(0xeb80, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_off_thin = - IconData(0xeb81, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_regular = - IconData(0xeb82, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_notification_thin = - IconData(0xeb83, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_order_fill = - IconData(0xeb84, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_order_regular = - IconData(0xeb85, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_order_thin = - IconData(0xeb86, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_pause_fill = - IconData(0xeb87, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_pause_regular = - IconData(0xeb88, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_pause_thin = - IconData(0xeb89, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_payment_fill = - IconData(0xeb8a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_payment_regular = - IconData(0xeb8b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_payment_thin = - IconData(0xeb8c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_percent_fill = - IconData(0xeb8d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_percent_regular = - IconData(0xeb8e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_percent_thin = - IconData(0xeb8f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_crop_fill = - IconData(0xeb90, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_crop_regular = - IconData(0xeb91, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_crop_thin = - IconData(0xeb92, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_draw_fill = - IconData(0xeb93, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_draw_regular = - IconData(0xeb94, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_draw_thin = - IconData(0xeb95, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_fill = - IconData(0xeb96, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_regular = - IconData(0xeb97, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_rotate_fill = - IconData(0xeb98, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_rotate_regular = - IconData(0xeb99, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_rotate_thin = - IconData(0xeb9a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_edit_thin = - IconData(0xeb9b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_fill = - IconData(0xeb9c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_regular = - IconData(0xeb9d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_several_fill = - IconData(0xeb9e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_several_regular = - IconData(0xeb9f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_several_thin = - IconData(0xeba0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_photo_thin = - IconData(0xeba1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_play_fill = - IconData(0xeba2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_play_regular = - IconData(0xeba3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_play_thin = - IconData(0xeba4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_poll_fill = - IconData(0xeba5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_poll_regular = - IconData(0xeba6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_poll_thin = - IconData(0xeba7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_price_won_fill = - IconData(0xeba8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_price_won_regular = - IconData(0xeba9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_price_won_thin = - IconData(0xebaa, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_product_fill = - IconData(0xebab, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_product_regular = - IconData(0xebac, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_product_thin = - IconData(0xebad, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_profile_badge_fill = - IconData(0xebae, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_profile_badge_regular = - IconData(0xebaf, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_profile_badge_thin = - IconData(0xebb0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_profile_fill = - IconData(0xebb1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_profile_regular = - IconData(0xebb2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_profile_thin = - IconData(0xebb3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_prohibition_fill = - IconData(0xebb4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_prohibition_regular = - IconData(0xebb5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_prohibition_thin = - IconData(0xebb6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_pushpin_fill = - IconData(0xebb7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_pushpin_regular = - IconData(0xebb8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_pushpin_thin = - IconData(0xebb9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_question_check_fill = - IconData(0xebba, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_question_check_regular = - IconData(0xebbb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_question_check_thin = - IconData(0xebbc, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_redo_fill = - IconData(0xebbd, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_redo_regular = - IconData(0xebbe, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_redo_thin = - IconData(0xebbf, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_refund_fill = - IconData(0xebc0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_refund_regular = - IconData(0xebc1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_refund_thin = - IconData(0xebc2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_remove_circle_fill = - IconData(0xebc3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_remove_circle_regular = - IconData(0xebc4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_remove_circle_thin = - IconData(0xebc5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_fill = - IconData(0xebc6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_mission_fill = - IconData(0xebc7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_mission_regular = - IconData(0xebc8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_mission_thin = - IconData(0xebc9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_re_fill = - IconData(0xebca, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_re_regular = - IconData(0xebcb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_re_thin = - IconData(0xebcc, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_regular = - IconData(0xebcd, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reply_thin = - IconData(0xebce, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_report_fill = - IconData(0xebcf, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_report_regular = - IconData(0xebd0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_report_thin = - IconData(0xebd1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reservation_fill = - IconData(0xebd2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reservation_regular = - IconData(0xebd3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_reservation_thin = - IconData(0xebd4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_restaurant_fill = - IconData(0xebd5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_restaurant_regular = - IconData(0xebd6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_restaurant_thin = - IconData(0xebd7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_retry_fill = - IconData(0xebd8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_retry_regular = - IconData(0xebd9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_retry_thin = - IconData(0xebda, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_review_star_fill = - IconData(0xebdb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_review_star_regular = - IconData(0xebdc, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_review_star_thin = - IconData(0xebdd, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_scanner_fill = - IconData(0xebde, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_scanner_regular = - IconData(0xebdf, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_scanner_thin = - IconData(0xebe0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_search_doc_fill = - IconData(0xebe1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_search_doc_regular = - IconData(0xebe2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_search_doc_thin = - IconData(0xebe3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_search_fill = - IconData(0xebe4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_search_regular = - IconData(0xebe5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_search_thin = - IconData(0xebe6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sell_fill = - IconData(0xebe7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sell_regular = - IconData(0xebe8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sell_thin = - IconData(0xebe9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_setting_fill = - IconData(0xebea, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_setting_regular = - IconData(0xebeb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_setting_thin = - IconData(0xebec, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_signout_fill = - IconData(0xebed, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_signout_regular = - IconData(0xebee, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_signout_thin = - IconData(0xebef, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sort_fill = - IconData(0xebf0, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sort_regular = - IconData(0xebf1, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sort_thin = - IconData(0xebf2, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_story_article_fill = - IconData(0xebf3, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_story_article_regular = - IconData(0xebf4, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_story_article_thin = - IconData(0xebf5, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_story_fill = - IconData(0xebf6, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_story_regular = - IconData(0xebf7, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_story_thin = - IconData(0xebf8, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_subtract_circle_fill = - IconData(0xebf9, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_subtract_circle_regular = - IconData(0xebfa, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_subtract_circle_thin = - IconData(0xebfb, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_subtraction_fill = - IconData(0xebfc, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_subtraction_regular = - IconData(0xebfd, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_subtraction_thin = - IconData(0xebfe, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_suggest_fill = - IconData(0xebff, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_suggest_regular = - IconData(0xec00, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_suggest_thin = - IconData(0xec01, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sun_fill = - IconData(0xec02, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sun_regular = - IconData(0xec03, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_sun_thin = - IconData(0xec04, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_talkingdown_fill = - IconData(0xec05, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_talkingdown_regular = - IconData(0xec06, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_talkingdown_thin = - IconData(0xec07, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_talkingup_fill = - IconData(0xec08, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_talkingup_regular = - IconData(0xec09, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_talkingup_thin = - IconData(0xec0a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_text_fill = - IconData(0xec0b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_text_regular = - IconData(0xec0c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_text_thin = - IconData(0xec0d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_thumb_down_fill = - IconData(0xec0e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_thumb_down_regular = - IconData(0xec0f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_thumb_down_thin = - IconData(0xec10, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_thumb_up_fill = - IconData(0xec11, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_thumb_up_regular = - IconData(0xec12, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_thumb_up_thin = - IconData(0xec13, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_toolbox_fill = - IconData(0xec14, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_toolbox_regular = - IconData(0xec15, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_toolbox_thin = - IconData(0xec16, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_translate_fill = - IconData(0xec17, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_translate_regular = - IconData(0xec18, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_translate_thin = - IconData(0xec19, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_trash_fill = - IconData(0xec1a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_trash_regular = - IconData(0xec1b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_trash_thin = - IconData(0xec1c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_undo_fill = - IconData(0xec1d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_undo_regular = - IconData(0xec1e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_undo_thin = - IconData(0xec1f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_user_group_fill = - IconData(0xec20, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_user_group_regular = - IconData(0xec21, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_user_group_thin = - IconData(0xec22, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_video_fill = - IconData(0xec23, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_video_regular = - IconData(0xec24, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_video_thin = - IconData(0xec25, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_view_count_fill = - IconData(0xec26, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_view_count_off_fill = - IconData(0xec27, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_view_count_off_regular = - IconData(0xec28, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_view_count_off_thin = - IconData(0xec29, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_view_count_regular = - IconData(0xec2a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_view_count_thin = - IconData(0xec2b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_volume_off_fill = - IconData(0xec2c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_volume_off_regular = - IconData(0xec2d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_volume_off_thin = - IconData(0xec2e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_volume_on_fill = - IconData(0xec2f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_volume_on_regular = - IconData(0xec30, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_volume_on_thin = - IconData(0xec31, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_vote_fill = - IconData(0xec32, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_vote_regular = - IconData(0xec33, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_vote_thin = - IconData(0xec34, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_voucher_fill = - IconData(0xec35, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_voucher_regular = - IconData(0xec36, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_voucher_thin = - IconData(0xec37, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_walk_fill = - IconData(0xec38, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_walk_regular = - IconData(0xec39, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_walk_thin = - IconData(0xec3a, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_warning_fill = - IconData(0xec3b, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_warning_regular = - IconData(0xec3c, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_warning_thin = - IconData(0xec3d, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_fill = - IconData(0xec3e, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_frequent_use_fill = - IconData(0xec3f, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_frequent_use_regular = - IconData(0xec40, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_frequent_use_thin = - IconData(0xec41, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_regular = - IconData(0xec42, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_story_fill = - IconData(0xec43, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_story_regular = - IconData(0xec44, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_story_thin = - IconData(0xec45, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData icon_write_thin = - IconData(0xec46, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData rabbit = - IconData(0xec47, fontFamily: _fontFam, fontPackage: _fontPkg); - static const IconData turtle = - IconData(0xec48, fontFamily: _fontFam, fontPackage: _fontPkg); -} diff --git a/test/icona.js b/test/icona.js deleted file mode 100644 index c9d04e2..0000000 --- a/test/icona.js +++ /dev/null @@ -1,120 +0,0 @@ -import { generate } from "@icona/generator"; - -generate({ - config: { - svg: { - active: false, - path: "svg", - svgoConfig: { - js2svg: { - indent: 2, - pretty: true, - }, - plugins: [ - { - name: "addAttributesToSVGElement", - params: { - attributes: [{ "data-seed-icon": true }], - }, - }, - { - name: "convertColors", - params: { - currentColor: true, - }, - }, - { - name: "removeAttrs", - params: { - attrs: ["id"], - }, - }, - ], - }, - }, - drawable: { - active: false, - path: "drawable", - svg2vectordrawableConfig: {}, - defaultColor: "@color/gray900", - }, - pdf: { - active: false, - path: "pdf", - pdfKitConfig: { - size: [24, 24], - margin: 0, - layout: "landscape", - }, - svgToPdfOptions: { - assumePt: true, - width: 24, - height: 24, - }, - }, - react: { - active: false, - path: "react", - svgrConfig: { - jsxRuntime: "classic", - plugins: [ - "@svgr/plugin-svgo", - "@svgr/plugin-jsx", - "@svgr/plugin-prettier", - ], - prettierConfig: { - tabWidth: 2, - useTabs: false, - singleQuote: true, - semi: true, - }, - svgoConfig: { - plugins: [ - { - name: "addAttributesToSVGElement", - params: { - attributes: [{ "data-seed-icon": true }], - }, - }, - { - name: "convertColors", - params: { - currentColor: true, - }, - }, - { - name: "removeAttrs", - params: { - attrs: ["id"], - }, - }, - ], - }, - typescript: true, - dimensions: false, - }, - }, - png: { - active: false, - genMode: "recreate", - path: "png", - }, - font: { - genMode: "recreate", - active: true, - svgToFontOptions: { - src: "svg", - dist: "font", - fontName: "seed-icon", - }, - }, - flutter: { - active: true, - ttfPath: "font/seed-icon.ttf", - fileName: "SeedIcons", - fontFamily: "SeedIcon", - genMode: "recreate", - path: "flutter", - }, - }, -}); diff --git a/test/icona.ts b/test/icona.ts new file mode 100644 index 0000000..e5bd57b --- /dev/null +++ b/test/icona.ts @@ -0,0 +1,134 @@ +import type { + DrawableConfig, + PDFConfig, + PNGConfig, + ReactConfig, + SVGConfig, + Vue2Config, + Vue3Config, +} from "@icona/generator"; +import { generate } from "@icona/generator"; + +const svgConfig: SVGConfig = { + path: "svg", + svgoConfig: { + js2svg: { + indent: 2, + pretty: true, + }, + plugins: [ + { + name: "addAttributesToSVGElement", + params: { + attributes: [{ "data-seed-icon": "true" }], + }, + }, + { + name: "convertColors", + params: { + currentColor: true, + }, + }, + { + name: "removeAttrs", + params: { + attrs: ["id"], + }, + }, + ], + }, +}; + +const pdfConfig: PDFConfig = { + active: false, + path: "pdf", + pdfKitConfig: { + size: [24, 24], + margin: 0, + layout: "landscape", + }, + svgToPdfOptions: { + assumePt: true, + width: 24, + height: 24, + }, +}; + +const drawableConfig: DrawableConfig = { + active: false, + path: "drawable", + svg2vectordrawableConfig: {}, + defaultColor: "@color/gray900", +}; + +const reactConfig: ReactConfig = { + active: true, + path: "react", + genIndexFile: true, + svgrConfig: { + jsxRuntime: "classic", + plugins: ["@svgr/plugin-svgo", "@svgr/plugin-jsx", "@svgr/plugin-prettier"], + prettierConfig: { + tabWidth: 2, + useTabs: false, + singleQuote: true, + semi: true, + }, + svgoConfig: { + plugins: [ + { + name: "addAttributesToSVGElement", + params: { + attributes: [{ "data-seed-icon": "true" }], + }, + }, + { + name: "convertColors", + params: { + currentColor: true, + }, + }, + { + name: "removeAttrs", + params: { + attrs: ["id"], + }, + }, + ], + }, + typescript: true, + dimensions: false, + }, +}; + +const pngConfig: PNGConfig = { + active: false, + genMode: "recreate", + path: "png", +}; + +const vue2Config: Vue2Config = { + path: "packages/vue2", + active: false, + genIndexFile: true, + genShimFile: true, +}; + +const vue3Config: Vue3Config = { + path: "packages/vue3", + active: false, + genIndexFile: true, + genShimFile: true, +}; + +generate({ + config: { + svg: svgConfig, + drawable: drawableConfig, + pdf: pdfConfig, + react: reactConfig, + png: pngConfig, + vue2: vue2Config, + vue3: vue3Config, + }, +}); diff --git a/test/package.json b/test/package.json index df36543..7e0140b 100644 --- a/test/package.json +++ b/test/package.json @@ -5,13 +5,17 @@ "type": "module", "scripts": { "gen": "yarn generate", - "generate": "node ./icona.js" + "generate": "node --no-warnings=ExperimentalWarning --loader ts-node/esm icona.ts" }, "dependencies": { "@icona/generator": "workspace:^" }, "devDependencies": { - "@icona/types": "workspace:^" + "@icona/types": "workspace:^", + "@types/node": "^20.14.9", + "ts-node": "^10.9.2", + "tslib": "^2.6.3", + "typescript": "^5.5.3" }, "packageManager": "yarn@3.5.1" } diff --git a/test/tsconfig.json b/test/tsconfig.json new file mode 100644 index 0000000..f858d0d --- /dev/null +++ b/test/tsconfig.json @@ -0,0 +1,24 @@ +{ + // This is an alias to @tsconfig/node16: https://github.com/tsconfig/bases + "extends": "ts-node/node16/tsconfig.json", + + // Most ts-node options can be specified here using their programmatic names. + "ts-node": { + // It is faster to skip typechecking. + // Remove if you want ts-node to do typechecking. + "files": true, + "esm": true, + + "compilerOptions": { + // compilerOptions specified here will override those declared below, + // but *only* in ts-node. Useful if you want ts-node and tsc to use + // different options with a single tsconfig.json. + } + }, + "compilerOptions": { + // typescript options here + "module": "ESNext", + "moduleResolution": "Node", + "target": "ESNext", + } +} diff --git a/yarn.lock b/yarn.lock index 26274d8..41c92d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3070,6 +3070,15 @@ __metadata: languageName: node linkType: hard +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + languageName: node + linkType: hard + "@emotion/babel-plugin@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/babel-plugin@npm:11.11.0" @@ -3659,6 +3668,10 @@ __metadata: dependencies: "@icona/generator": "workspace:^" "@icona/types": "workspace:^" + "@types/node": ^20.14.9 + ts-node: ^10.9.2 + tslib: ^2.6.3 + typescript: ^5.5.3 languageName: unknown linkType: soft @@ -3667,11 +3680,12 @@ __metadata: resolution: "@icona/generator@workspace:packages/generator" dependencies: "@icona/types": ^0.6.0 - "@icona/utils": ^0.6.0 "@svgr/core": ^8.0.0 "@types/cli-progress": ^3.11.5 + "@types/findup-sync": ^4.0.5 "@types/opentype.js": ^1.3.8 cli-progress: ^3.12.0 + findup-sync: ^5.0.0 nanobundle: ^1.6.0 opentype.js: ^1.3.4 pdfkit: ^0.13.0 @@ -3720,20 +3734,6 @@ __metadata: "@types/prettier": ^2.7.3 "@types/svg-to-pdfkit": ^0.1.0 svgo: ^3.0.2 - svgtofont: ^4.2.0 - typescript: ^5.1.3 - languageName: unknown - linkType: soft - -"@icona/utils@^0.6.0, @icona/utils@workspace:packages/utils": - version: 0.0.0-use.local - resolution: "@icona/utils@workspace:packages/utils" - dependencies: - "@icona/types": ^0.6.0 - "@types/findup-sync": ^4.0.2 - "@types/node": ^20.3.1 - findup-sync: ^5.0.0 - nanobundle: ^1.6.0 typescript: ^5.1.3 languageName: unknown linkType: soft @@ -3770,6 +3770,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/resolve-uri@npm:^3.0.3": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 + languageName: node + linkType: hard + "@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" @@ -3791,6 +3798,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": ^3.0.3 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.18 resolution: "@jridgewell/trace-mapping@npm:0.3.18" @@ -4118,6 +4135,34 @@ __metadata: languageName: node linkType: hard +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node10@npm:1.0.11" + checksum: 51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff + languageName: node + linkType: hard + "@types/babel__core@npm:^7.20.1": version: 7.20.1 resolution: "@types/babel__core@npm:7.20.1" @@ -4175,12 +4220,12 @@ __metadata: languageName: node linkType: hard -"@types/findup-sync@npm:^4.0.2": - version: 4.0.2 - resolution: "@types/findup-sync@npm:4.0.2" +"@types/findup-sync@npm:^4.0.5": + version: 4.0.5 + resolution: "@types/findup-sync@npm:4.0.5" dependencies: - "@types/micromatch": "*" - checksum: b8ec6a9f6cf30424ddcc44120a0a6cfa596924f17cb8b08a79d8737524b5fbcf957a5ecbc79c4927059b9399666d1c14739dd46f9bcde8b0d869df71b8af82bd + "@types/micromatch": ^4.0.0 + checksum: 578e891568bb9b102df88011b294d590be38f957d084e2ae515ffdf24d32dcd45918f4902752e8691cb6e96ac16b753bc678d61f809bc59eb32a9aba9fbbd709 languageName: node linkType: hard @@ -4233,12 +4278,12 @@ __metadata: languageName: node linkType: hard -"@types/micromatch@npm:*": - version: 4.0.2 - resolution: "@types/micromatch@npm:4.0.2" +"@types/micromatch@npm:^4.0.0": + version: 4.0.9 + resolution: "@types/micromatch@npm:4.0.9" dependencies: "@types/braces": "*" - checksum: 6c678e9c625d5b422c6d2c1001da1c502ecc4457248343bbd324b79fd798a6563e336a4d79630d80e8202312013dd7cf8b4440afa644d04477abd26fde6fba24 + checksum: 109920dd54116dc9b52a2973221230f0db98f119c5c20169f84358c4f956fe7c9f20b645824c1fcdf872ad2beb7c795fb503663da3283c4896785c23443abc32 languageName: node linkType: hard @@ -4270,6 +4315,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^20.14.9": + version: 20.14.9 + resolution: "@types/node@npm:20.14.9" + dependencies: + undici-types: ~5.26.4 + checksum: 5e9eda1ac8c6cc6bcd1063903ae195eaede9aad1bdad00408a919409cfbcdd2d6535aa3d50346f0d385528f9e03dafc7d1b3bad25aedb1dcd79a6ad39d06c35d + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0, @types/normalize-package-data@npm:^2.4.1": version: 2.4.1 resolution: "@types/normalize-package-data@npm:2.4.1" @@ -4639,6 +4693,24 @@ __metadata: languageName: node linkType: hard +"acorn-walk@npm:^8.1.1": + version: 8.3.3 + resolution: "acorn-walk@npm:8.3.3" + dependencies: + acorn: ^8.11.0 + checksum: 0f09d351fc30b69b2b9982bf33dc30f3d35a34e030e5f1ed3c49fc4e3814a192bf3101e4c30912a0595410f5e91bb70ddba011ea73398b3ecbfe41c7334c6dd0 + languageName: node + linkType: hard + +"acorn@npm:^8.11.0, acorn@npm:^8.4.1": + version: 8.12.0 + resolution: "acorn@npm:8.12.0" + bin: + acorn: bin/acorn + checksum: ae142de8739ef15a5d936c550c1d267fc4dedcdbe62ad1aa2c0009afed1de84dd0a584684a5d200bb55d8db14f3e09a95c6e92a5303973c04b9a7413c36d1df0 + languageName: node + linkType: hard + "acorn@npm:^8.5.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" @@ -4792,6 +4864,13 @@ __metadata: languageName: node linkType: hard +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -5762,6 +5841,13 @@ __metadata: languageName: node linkType: hard +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + languageName: node + linkType: hard + "cross-spawn@npm:^5.1.0": version: 5.1.0 resolution: "cross-spawn@npm:5.1.0" @@ -6192,6 +6278,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -9062,6 +9155,13 @@ __metadata: languageName: node linkType: hard +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + languageName: node + linkType: hard + "make-fetch-happen@npm:^10.0.3": version: 10.2.1 resolution: "make-fetch-happen@npm:10.2.1" @@ -11973,6 +12073,44 @@ __metadata: languageName: node linkType: hard +"ts-node@npm:^10.9.2": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@tsconfig/node10": ^1.0.7 + "@tsconfig/node12": ^1.0.7 + "@tsconfig/node14": ^1.0.0 + "@tsconfig/node16": ^1.0.2 + acorn: ^8.4.1 + acorn-walk: ^8.1.1 + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + v8-compile-cache-lib: ^3.0.1 + yn: 3.1.1 + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac + languageName: node + linkType: hard + "tsconfck@npm:^2.1.0": version: 2.1.1 resolution: "tsconfck@npm:2.1.1" @@ -12027,6 +12165,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.6.3": + version: 2.6.3 + resolution: "tslib@npm:2.6.3" + checksum: 74fce0e100f1ebd95b8995fbbd0e6c91bdd8f4c35c00d4da62e285a3363aaa534de40a80db30ecfd388ed7c313c42d930ee0eaf108e8114214b180eec3dbe6f5 + languageName: node + linkType: hard + "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" @@ -12171,6 +12316,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^5.5.3": + version: 5.5.3 + resolution: "typescript@npm:5.5.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 4b4f14313484d5c86064d04ba892544801fa551f5cf72719b540b498056fec7fc192d0bbdb2ba1448e759b1548769956da9e43e7c16781e8d8856787b0575004 + languageName: node + linkType: hard + "typescript@patch:typescript@^5.0.4#~builtin, typescript@patch:typescript@^5.1.3#~builtin": version: 5.1.3 resolution: "typescript@patch:typescript@npm%3A5.1.3#~builtin::version=5.1.3&hash=77c9e2" @@ -12181,6 +12336,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@^5.5.3#~builtin": + version: 5.5.3 + resolution: "typescript@patch:typescript@npm%3A5.5.3#~builtin::version=5.5.3&hash=77c9e2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 6853be4607706cc1ad2f16047cf1cd72d39f79acd5f9716e1d23bc0e462c7f59be7458fe58a21665e7657a05433d7ab8419d093a5a4bd5f3a33f879b35d2769b + languageName: node + linkType: hard + "ufo@npm:^1.1.2": version: 1.1.2 resolution: "ufo@npm:1.1.2" @@ -12228,6 +12393,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -12426,6 +12598,13 @@ __metadata: languageName: node linkType: hard +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 + languageName: node + linkType: hard + "validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -12808,6 +12987,13 @@ __metadata: languageName: node linkType: hard +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0"