{"version":3,"file":"cli.mjs","names":[],"sources":["../src/tasks/build-sprites.ts","../src/cli.ts"],"sourcesContent":["import type { SvgSpriteBuilder } from '../core/builder.ts';\n\nexport interface BuildSpritesParams {\n  input: string | string[];\n  builder: SvgSpriteBuilder;\n}\n\nexport async function buildSprites({ builder, input }: BuildSpritesParams) {\n  try {\n    builder.clear();\n    await builder.load(input);\n    return await builder.build();\n  } catch (error) {\n    builder.__.log.error(error, 'Failed to start watching sprites');\n    throw error;\n  }\n}\n","import { toArray } from '@neodx/std';\nimport { Command } from 'commander';\nimport { z } from 'zod';\nimport { createSvgSpriteBuilder } from './core/builder.ts';\nimport { buildSprites } from './tasks/build-sprites';\n\nexport function createCli(cwd = process.cwd()) {\n  const program = new Command('sprite');\n\n  program\n    .option('--dry-run', 'Show generated files but dont generate it')\n    .option('--verbose', 'Show more logs')\n    .option('--root <root>', 'Root folder for inputs, useful for correct groups naming', '')\n    .option('--group', 'Should we group icons?', false)\n    .option('--optimize', 'Should we group icons?', true)\n    .option('-i, --input <input>', 'Glob/globs to icons files', '**/*.svg')\n    .option('-o, --output <output>', 'Path to generated sprite/sprites folder', 'public/sprites')\n    .option('-d, --definitions <definitions>', 'Path to generated TS file with sprite meta')\n    .option(\n      '--reset-color-values <resetColorValues>',\n      'An array of colors to replace as `currentColor`'\n    )\n    .option(\n      '--reset-unknown-colors',\n      'Should we replace unknown colors with `currentColor`?',\n      false\n    )\n    .option(\n      '--reset-color-properties <resetColorProperties>',\n      'An array of SVG properties to replace with `currentColor`'\n    )\n    .action(({ dryRun, verbose, ...options }) => {\n      const { resetColorValues, resetColorProperties, resetUnknownColors, input, ...other } =\n        Options.parse(options);\n      const builder = createSvgSpriteBuilder({\n        ...other,\n        resetColors:\n          resetColorValues || resetUnknownColors\n            ? {\n                replace: resetColorValues\n                  ? {\n                      from: resetColorValues,\n                      to: 'currentColor'\n                    }\n                  : [],\n                properties: resetColorProperties,\n                replaceUnknown: resetUnknownColors ? 'currentColor' : undefined\n              }\n            : [],\n        log: verbose ? 'debug' : 'info',\n        vfs: {\n          path: cwd,\n          readonly: dryRun\n        }\n      });\n\n      builder.__.log\n        .warn(`The @neodx/svg CLI is deprecated in favor of the programmatic API and may be removed in a future major release.\nIt remains supported in 1.x. To migrate, use the programmatic API: https://neodx.pages.dev/svg/api/index.html\nYou can also read the migration guide: https://neodx.pages.dev/svg/migration.html\n`);\n\n      return buildSprites({\n        builder,\n        input\n      }).then(() => undefined);\n    });\n\n  return program;\n}\n\nconst toArrayOrString = z\n  .string()\n  .or(z.string().array())\n  .transform(input => toArray(input).flatMap(value => value.split(',').map(chunk => chunk.trim())));\n\nexport const Options = z.object({\n  root: z.string(),\n  input: toArrayOrString,\n  group: z.boolean(),\n  output: z.string(),\n  optimize: z.boolean(),\n  definitions: z.string().optional(),\n  resetColorValues: toArrayOrString.optional(),\n  resetUnknownColors: z.boolean().optional(),\n  resetColorProperties: toArrayOrString.optional()\n});\n"],"mappings":";;;;;AAOA,eAAsB,aAAa,EAAE,SAAS,SAA6B;CACzE,IAAI;EACF,QAAQ,MAAM;EACd,MAAM,QAAQ,KAAK,KAAK;EACxB,OAAO,MAAM,QAAQ,MAAM;CAC7B,SAAS,OAAO;EACd,QAAQ,GAAG,IAAI,MAAM,OAAO,kCAAkC;EAC9D,MAAM;CACR;AACF;;;ACVA,SAAgB,UAAU,MAAM,QAAQ,IAAI,GAAG;CAC7C,MAAM,UAAU,IAAI,QAAQ,QAAQ;CAEpC,QACG,OAAO,aAAa,2CAA2C,CAAC,CAChE,OAAO,aAAa,gBAAgB,CAAC,CACrC,OAAO,iBAAiB,4DAA4D,EAAE,CAAC,CACvF,OAAO,WAAW,0BAA0B,KAAK,CAAC,CAClD,OAAO,cAAc,0BAA0B,IAAI,CAAC,CACpD,OAAO,uBAAuB,6BAA6B,UAAU,CAAC,CACtE,OAAO,yBAAyB,2CAA2C,gBAAgB,CAAC,CAC5F,OAAO,mCAAmC,4CAA4C,CAAC,CACvF,OACC,2CACA,iDACF,CAAC,CACA,OACC,0BACA,yDACA,KACF,CAAC,CACA,OACC,mDACA,2DACF,CAAC,CACA,QAAQ,EAAE,QAAQ,SAAS,GAAG,cAAc;EAC3C,MAAM,EAAE,kBAAkB,sBAAsB,oBAAoB,OAAO,GAAG,UAC5E,QAAQ,MAAM,OAAO;EACvB,MAAM,UAAU,uBAAuB;GACrC,GAAG;GACH,aACE,oBAAoB,qBAChB;IACE,SAAS,mBACL;KACE,MAAM;KACN,IAAI;IACN,IACA,CAAC;IACL,YAAY;IACZ,gBAAgB,qBAAqB,iBAAiB,KAAA;GACxD,IACA,CAAC;GACP,KAAK,UAAU,UAAU;GACzB,KAAK;IACH,MAAM;IACN,UAAU;GACZ;EACF,CAAC;EAED,QAAQ,GAAG,IACR,KAAK;;;CAGb;EAEK,OAAO,aAAa;GAClB;GACA;EACF,CAAC,CAAC,CAAC,WAAW,KAAA,CAAS;CACzB,CAAC;CAEH,OAAO;AACT;AAEA,MAAM,kBAAkB,EACrB,OAAO,CAAC,CACR,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CACtB,WAAU,UAAS,QAAQ,KAAK,CAAC,CAAC,SAAQ,UAAS,MAAM,MAAM,GAAG,CAAC,CAAC,KAAI,UAAS,MAAM,KAAK,CAAC,CAAC,CAAC;AAElG,MAAa,UAAU,EAAE,OAAO;CAC9B,MAAM,EAAE,OAAO;CACf,OAAO;CACP,OAAO,EAAE,QAAQ;CACjB,QAAQ,EAAE,OAAO;CACjB,UAAU,EAAE,QAAQ;CACpB,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,kBAAkB,gBAAgB,SAAS;CAC3C,oBAAoB,EAAE,QAAQ,CAAC,CAAC,SAAS;CACzC,sBAAsB,gBAAgB,SAAS;AACjD,CAAC"}