bdsg-cli 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -36,6 +36,7 @@ bdsg generate palette "#3B82F6" -n primary
36
36
  bdsg generate typography -r golden-ratio
37
37
  bdsg generate spacing -m fibonacci
38
38
  bdsg generate shadows -s material
39
+ bdsg generate gradient "#FF0000" "#0000FF" -s 5
39
40
 
40
41
  # Validate WCAG contrast
41
42
  bdsg validate "#3B82F6" "#FFFFFF"
@@ -159,6 +160,51 @@ Options:
159
160
 
160
161
  Available styles: `material`, `soft`, `hard`
161
162
 
163
+ #### generate gradient
164
+
165
+ *New in v0.2.0*
166
+
167
+ ```bash
168
+ bdsg generate gradient <startColor> <endColor> [options]
169
+
170
+ Arguments:
171
+ startColor Start color in hex format (e.g., #FF0000)
172
+ endColor End color in hex format (e.g., #0000FF)
173
+
174
+ Options:
175
+ -n, --name <name> Gradient name (default: "gradient")
176
+ -s, --steps <steps> Number of color steps (default: "5")
177
+ -e, --easing <easing> Easing function (default: "linear")
178
+ -d, --direction <dir> Hue direction (default: "shorter")
179
+ -o, --output <dir> Output directory (default: "./tokens")
180
+ -f, --format <fmt> Output format: css, json (default: "css")
181
+ ```
182
+
183
+ Available easing: `linear`, `easeIn`, `easeOut`, `easeInOut`
184
+
185
+ Available hue directions: `shorter`, `longer`, `increasing`, `decreasing`
186
+
187
+ **Example:**
188
+
189
+ ```
190
+ $ bdsg generate gradient "#FF0000" "#0000FF" -s 5 -e easeInOut
191
+
192
+ ✔ Gradient generated!
193
+
194
+ File: ./tokens/gradient.css
195
+
196
+ Gradient colors:
197
+ 1: #ff0000
198
+ 2: #e8007b
199
+ 3: #ba00c2
200
+ 4: #7a00f4
201
+ 5: #0000ff
202
+
203
+ CSS Gradients:
204
+ linear: linear-gradient(90deg, #ff0000, #e8007b, #ba00c2, #7a00f4, #0000ff)
205
+ radial: radial-gradient(circle, #ff0000, #e8007b, #ba00c2, #7a00f4, #0000ff)
206
+ ```
207
+
162
208
  ### validate
163
209
 
164
210
  Validate WCAG contrast between two colors with suggestions for accessibility compliance.
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,eAAe,SA+N1B,CAAC"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,eAAe,SAiV1B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { mkdir, writeFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
- import { generatePalette, generateShadows, generateSpacingScale, generateTypographyScale, } from "bdsg";
3
+ import { EASING, generateGradient, generatePalette, generateShadows, generateSpacingScale, generateTypographyScale, toCssGradient, } from "bdsg";
4
4
  import chalk from "chalk";
5
5
  import { Command } from "commander";
6
6
  import ora from "ora";
@@ -172,5 +172,86 @@ export const generateCommand = new Command("generate")
172
172
  console.error(error);
173
173
  process.exit(1);
174
174
  }
175
+ }))
176
+ .addCommand(new Command("gradient")
177
+ .description("Generate a color gradient")
178
+ .argument("<startColor>", "Start color in hex format (e.g., #FF0000)")
179
+ .argument("<endColor>", "End color in hex format (e.g., #0000FF)")
180
+ .option("-n, --name <name>", "Gradient name", "gradient")
181
+ .option("-s, --steps <steps>", "Number of color steps", "5")
182
+ .option("-e, --easing <easing>", "Easing function (linear, easeIn, easeOut, easeInOut)", "linear")
183
+ .option("-d, --direction <direction>", "Hue direction (shorter, longer, increasing, decreasing)", "shorter")
184
+ .option("-o, --output <dir>", "Output directory", "./tokens")
185
+ .option("-f, --format <format>", "Output format (css, json)", "css")
186
+ .action(async (startColor, endColor, options) => {
187
+ const spinner = ora("Generating gradient...").start();
188
+ try {
189
+ const steps = Number.parseInt(options.steps, 10);
190
+ if (Number.isNaN(steps)) {
191
+ spinner.fail(chalk.red("Invalid steps value"));
192
+ console.error(chalk.yellow(` Steps must be a number, got: "${options.steps}"`));
193
+ process.exit(1);
194
+ }
195
+ const validEasings = ["linear", "easeIn", "easeOut", "easeInOut"];
196
+ if (!validEasings.includes(options.easing)) {
197
+ spinner.fail(chalk.red("Invalid easing function"));
198
+ console.error(chalk.yellow(` Valid options: ${validEasings.join(", ")}\n Got: "${options.easing}"`));
199
+ process.exit(1);
200
+ }
201
+ const easingFn = EASING[options.easing];
202
+ const validFormats = ["css", "json"];
203
+ if (!validFormats.includes(options.format)) {
204
+ spinner.fail(chalk.red("Invalid output format"));
205
+ console.error(chalk.yellow(` Valid options: ${validFormats.join(", ")}\n Got: "${options.format}"`));
206
+ process.exit(1);
207
+ }
208
+ const colors = generateGradient(startColor, endColor, steps, {
209
+ easing: easingFn,
210
+ hueDirection: options.direction,
211
+ });
212
+ await mkdir(options.output, { recursive: true });
213
+ if (options.format === "json") {
214
+ const gradient = {
215
+ name: options.name,
216
+ start: startColor,
217
+ end: endColor,
218
+ steps,
219
+ colors,
220
+ css: {
221
+ linear: toCssGradient("linear", colors, 90),
222
+ radial: toCssGradient("radial", colors),
223
+ },
224
+ };
225
+ await writeFile(join(options.output, `${options.name}.json`), JSON.stringify({ gradient }, null, 2));
226
+ }
227
+ else {
228
+ let css = ":root {\n";
229
+ for (let i = 0; i < colors.length; i++) {
230
+ css += ` --${options.name}-${i + 1}: ${colors[i]};\n`;
231
+ }
232
+ css += ` --${options.name}-linear: ${toCssGradient("linear", colors, 90)};\n`;
233
+ css += ` --${options.name}-radial: ${toCssGradient("radial", colors)};\n`;
234
+ css += "}\n";
235
+ await writeFile(join(options.output, `${options.name}.css`), css);
236
+ }
237
+ spinner.succeed(chalk.green("Gradient generated!"));
238
+ console.log(chalk.dim(`\nFile: ${options.output}/${options.name}.${options.format}`));
239
+ console.log();
240
+ // Show preview
241
+ console.log(chalk.bold("Gradient colors:"));
242
+ for (let i = 0; i < colors.length; i++) {
243
+ console.log(` ${i + 1}: ${colors[i]}`);
244
+ }
245
+ console.log();
246
+ console.log(chalk.bold("CSS Gradients:"));
247
+ console.log(` linear: ${toCssGradient("linear", colors, 90)}`);
248
+ console.log(` radial: ${toCssGradient("radial", colors)}`);
249
+ console.log();
250
+ }
251
+ catch (error) {
252
+ spinner.fail(chalk.red("Failed to generate gradient"));
253
+ console.error(error);
254
+ process.exit(1);
255
+ }
175
256
  }));
176
257
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACN,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,uBAAuB,GACvB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACpD,WAAW,CAAC,iCAAiC,CAAC;KAC9C,UAAU,CACV,IAAI,OAAO,CAAC,SAAS,CAAC;KACpB,WAAW,CAAC,4CAA4C,CAAC;KACzD,QAAQ,CAAC,SAAS,EAAE,0CAA0C,CAAC;KAC/D,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,SAAS,CAAC;KACtD,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACjD,CAAC;YACD,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACnC,CAAC;QACH,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,GAAG,WAAW,CAAC;YACtB,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,GAAG,IAAI,aAAa,OAAO,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,CAAC;YAC/D,CAAC;YACD,GAAG,IAAI,KAAK,CAAC;YACb,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CACR,WAAW,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAC7D,CACD,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH;KACA,UAAU,CACV,IAAI,OAAO,CAAC,YAAY,CAAC;KACvB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,IAAI,CAAC;KACzD,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,uBAAuB,CAAC;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACvC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;iBAClC,CAAC;YACH,CAAC;YACD,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,UAAU,CAAC,YAAY,CACvB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC,CACnE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH;KACA,UAAU,CACV,IAAI,OAAO,CAAC,SAAS,CAAC;KACpB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CACN,uBAAuB,EACvB,6CAA6C,EAC7C,WAAW,CACX;KACA,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,GAAG,CAAC;KACtD,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3D,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACvC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;oBACpB,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,EAAE,EAAE,KAAK,CAAC,KAAK;iBACf,CAAC;YACH,CAAC;YACD,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,EACnC,OAAO,CAAC,YAAY,CACpB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH;KACA,UAAU,CACV,IAAI,OAAO,CAAC,SAAS,CAAC;KACpB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CACN,qBAAqB,EACrB,qCAAqC,EACrC,UAAU,CACV;KACA,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,eAAe,CAAC;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;SACpB,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YAClC,CAAC;YACD,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,EACnC,OAAO,CAAC,YAAY,CACpB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACN,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,GACb,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACpD,WAAW,CAAC,iCAAiC,CAAC;KAC9C,UAAU,CACV,IAAI,OAAO,CAAC,SAAS,CAAC;KACpB,WAAW,CAAC,4CAA4C,CAAC;KACzD,QAAQ,CAAC,SAAS,EAAE,0CAA0C,CAAC;KAC/D,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,SAAS,CAAC;KACtD,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACjD,CAAC;YACD,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACnC,CAAC;QACH,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,GAAG,WAAW,CAAC;YACtB,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,GAAG,IAAI,aAAa,OAAO,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,CAAC;YAC/D,CAAC;YACD,GAAG,IAAI,KAAK,CAAC;YACb,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CACR,WAAW,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAC7D,CACD,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH;KACA,UAAU,CACV,IAAI,OAAO,CAAC,YAAY,CAAC;KACvB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,IAAI,CAAC;KACzD,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,uBAAuB,CAAC;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACvC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;iBAClC,CAAC;YACH,CAAC;YACD,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,UAAU,CAAC,YAAY,CACvB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC,CACnE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH;KACA,UAAU,CACV,IAAI,OAAO,CAAC,SAAS,CAAC;KACpB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CACN,uBAAuB,EACvB,6CAA6C,EAC7C,WAAW,CACX;KACA,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,GAAG,CAAC;KACtD,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3D,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACvC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;oBACpB,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,EAAE,EAAE,KAAK,CAAC,KAAK;iBACf,CAAC;YACH,CAAC;YACD,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,EACnC,OAAO,CAAC,YAAY,CACpB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH;KACA,UAAU,CACV,IAAI,OAAO,CAAC,SAAS,CAAC;KACpB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CACN,qBAAqB,EACrB,qCAAqC,EACrC,UAAU,CACV;KACA,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,eAAe,CAAC;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;SACpB,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YAClC,CAAC;YACD,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,EACnC,OAAO,CAAC,YAAY,CACpB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH;KACA,UAAU,CACV,IAAI,OAAO,CAAC,UAAU,CAAC;KACrB,WAAW,CAAC,2BAA2B,CAAC;KACxC,QAAQ,CAAC,cAAc,EAAE,2CAA2C,CAAC;KACrE,QAAQ,CAAC,YAAY,EAAE,yCAAyC,CAAC;KACjE,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,UAAU,CAAC;KACxD,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,GAAG,CAAC;KAC3D,MAAM,CACN,uBAAuB,EACvB,sDAAsD,EACtD,QAAQ,CACR;KACA,MAAM,CACN,6BAA6B,EAC7B,yDAAyD,EACzD,SAAS,CACT;KACA,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,CACZ,KAAK,CAAC,MAAM,CAAC,mCAAmC,OAAO,CAAC,KAAK,GAAG,CAAC,CACjE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CACZ,KAAK,CAAC,MAAM,CACX,oBAAoB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,GAAG,CACzE,CACD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAA6B,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CACZ,KAAK,CAAC,MAAM,CACX,oBAAoB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,GAAG,CACzE,CACD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5D,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAA4B;gBACzC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE,QAAQ;gBACb,KAAK;gBACL,MAAM;gBACN,GAAG,EAAE;oBACJ,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;oBAC3C,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;iBACvC;aACD,CAAC;YACF,MAAM,SAAS,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACrC,CAAC;QACH,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,GAAG,WAAW,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,GAAG,IAAI,OAAO,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YACxD,CAAC;YACD,GAAG,IAAI,OAAO,OAAO,CAAC,IAAI,YAAY,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC;YAC/E,GAAG,IAAI,OAAO,OAAO,CAAC,IAAI,YAAY,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;YAC3E,GAAG,IAAI,KAAK,CAAC;YACb,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CACR,WAAW,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAC7D,CACD,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC,CACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bdsg-cli",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "CLI for design system generation",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,7 +11,7 @@
11
11
  "dev": "tsc --watch"
12
12
  },
13
13
  "dependencies": {
14
- "bdsg": "^0.1.2",
14
+ "bdsg": "^0.2.0",
15
15
  "commander": "^12.0.0",
16
16
  "inquirer": "^9.2.0",
17
17
  "chalk": "^5.3.0",
@@ -1,10 +1,13 @@
1
1
  import { mkdir, writeFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import {
4
+ EASING,
5
+ generateGradient,
4
6
  generatePalette,
5
7
  generateShadows,
6
8
  generateSpacingScale,
7
9
  generateTypographyScale,
10
+ toCssGradient,
8
11
  } from "bdsg";
9
12
  import chalk from "chalk";
10
13
  import { Command } from "commander";
@@ -233,4 +236,118 @@ export const generateCommand = new Command("generate")
233
236
  process.exit(1);
234
237
  }
235
238
  }),
239
+ )
240
+ .addCommand(
241
+ new Command("gradient")
242
+ .description("Generate a color gradient")
243
+ .argument("<startColor>", "Start color in hex format (e.g., #FF0000)")
244
+ .argument("<endColor>", "End color in hex format (e.g., #0000FF)")
245
+ .option("-n, --name <name>", "Gradient name", "gradient")
246
+ .option("-s, --steps <steps>", "Number of color steps", "5")
247
+ .option(
248
+ "-e, --easing <easing>",
249
+ "Easing function (linear, easeIn, easeOut, easeInOut)",
250
+ "linear",
251
+ )
252
+ .option(
253
+ "-d, --direction <direction>",
254
+ "Hue direction (shorter, longer, increasing, decreasing)",
255
+ "shorter",
256
+ )
257
+ .option("-o, --output <dir>", "Output directory", "./tokens")
258
+ .option("-f, --format <format>", "Output format (css, json)", "css")
259
+ .action(async (startColor, endColor, options) => {
260
+ const spinner = ora("Generating gradient...").start();
261
+
262
+ try {
263
+ const steps = Number.parseInt(options.steps, 10);
264
+ if (Number.isNaN(steps)) {
265
+ spinner.fail(chalk.red("Invalid steps value"));
266
+ console.error(
267
+ chalk.yellow(` Steps must be a number, got: "${options.steps}"`),
268
+ );
269
+ process.exit(1);
270
+ }
271
+
272
+ const validEasings = ["linear", "easeIn", "easeOut", "easeInOut"];
273
+ if (!validEasings.includes(options.easing)) {
274
+ spinner.fail(chalk.red("Invalid easing function"));
275
+ console.error(
276
+ chalk.yellow(
277
+ ` Valid options: ${validEasings.join(", ")}\n Got: "${options.easing}"`,
278
+ ),
279
+ );
280
+ process.exit(1);
281
+ }
282
+ const easingFn = EASING[options.easing as keyof typeof EASING];
283
+
284
+ const validFormats = ["css", "json"];
285
+ if (!validFormats.includes(options.format)) {
286
+ spinner.fail(chalk.red("Invalid output format"));
287
+ console.error(
288
+ chalk.yellow(
289
+ ` Valid options: ${validFormats.join(", ")}\n Got: "${options.format}"`,
290
+ ),
291
+ );
292
+ process.exit(1);
293
+ }
294
+
295
+ const colors = generateGradient(startColor, endColor, steps, {
296
+ easing: easingFn,
297
+ hueDirection: options.direction,
298
+ });
299
+
300
+ await mkdir(options.output, { recursive: true });
301
+
302
+ if (options.format === "json") {
303
+ const gradient: Record<string, unknown> = {
304
+ name: options.name,
305
+ start: startColor,
306
+ end: endColor,
307
+ steps,
308
+ colors,
309
+ css: {
310
+ linear: toCssGradient("linear", colors, 90),
311
+ radial: toCssGradient("radial", colors),
312
+ },
313
+ };
314
+ await writeFile(
315
+ join(options.output, `${options.name}.json`),
316
+ JSON.stringify({ gradient }, null, 2),
317
+ );
318
+ } else {
319
+ let css = ":root {\n";
320
+ for (let i = 0; i < colors.length; i++) {
321
+ css += ` --${options.name}-${i + 1}: ${colors[i]};\n`;
322
+ }
323
+ css += ` --${options.name}-linear: ${toCssGradient("linear", colors, 90)};\n`;
324
+ css += ` --${options.name}-radial: ${toCssGradient("radial", colors)};\n`;
325
+ css += "}\n";
326
+ await writeFile(join(options.output, `${options.name}.css`), css);
327
+ }
328
+
329
+ spinner.succeed(chalk.green("Gradient generated!"));
330
+ console.log(
331
+ chalk.dim(
332
+ `\nFile: ${options.output}/${options.name}.${options.format}`,
333
+ ),
334
+ );
335
+ console.log();
336
+
337
+ // Show preview
338
+ console.log(chalk.bold("Gradient colors:"));
339
+ for (let i = 0; i < colors.length; i++) {
340
+ console.log(` ${i + 1}: ${colors[i]}`);
341
+ }
342
+ console.log();
343
+ console.log(chalk.bold("CSS Gradients:"));
344
+ console.log(` linear: ${toCssGradient("linear", colors, 90)}`);
345
+ console.log(` radial: ${toCssGradient("radial", colors)}`);
346
+ console.log();
347
+ } catch (error) {
348
+ spinner.fail(chalk.red("Failed to generate gradient"));
349
+ console.error(error);
350
+ process.exit(1);
351
+ }
352
+ }),
236
353
  );