@shadsapp/cli 0.1.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/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env node
2
+ import { THEME_SCHEMA } from "@shadsapp/schema";
3
+ import { runInstall } from "./commands/install.js";
4
+ import { runThemesImport, runThemesList } from "./commands/themes.js";
5
+ import { runValidate } from "./commands/validate.js";
6
+ function printHelp() {
7
+ console.log(`shads — theme tooling for shadcn/ui projects
8
+
9
+ Usage:
10
+ shads install -t <theme> Install theme files into the current project
11
+ shads themes list List public starter themes
12
+ shads themes import <theme> Import a public theme into the current project
13
+ shads validate <file> Validate a theme.json document
14
+ shads schema Print the active theme document schema id
15
+
16
+ Examples:
17
+ npx @shadsapp/cli install -t workspace
18
+ npx @shadsapp/cli themes import workspace
19
+ npx @shadsapp/cli validate theme.json
20
+ `);
21
+ }
22
+ async function main() {
23
+ const [command, subcommand, ...rest] = process.argv.slice(2);
24
+ if (!command || command === "--help" || command === "-h") {
25
+ printHelp();
26
+ return;
27
+ }
28
+ if (command === "schema") {
29
+ console.log(THEME_SCHEMA);
30
+ return;
31
+ }
32
+ if (command === "validate") {
33
+ const filePath = subcommand;
34
+ if (!filePath) {
35
+ console.error("Missing file path. Usage: shads validate <file>");
36
+ process.exitCode = 1;
37
+ return;
38
+ }
39
+ runValidate(filePath);
40
+ return;
41
+ }
42
+ if (command === "install") {
43
+ let themeId = "workspace";
44
+ for (let index = 0; index < rest.length; index += 1) {
45
+ const token = rest[index];
46
+ if (token === "-t" || token === "--theme") {
47
+ themeId = rest[index + 1] ?? themeId;
48
+ index += 1;
49
+ }
50
+ }
51
+ if (subcommand === "-t" || subcommand === "--theme") {
52
+ themeId = rest[0] ?? themeId;
53
+ }
54
+ else if (subcommand && !subcommand.startsWith("-")) {
55
+ themeId = subcommand;
56
+ }
57
+ await runInstall(themeId);
58
+ return;
59
+ }
60
+ if (command === "themes") {
61
+ if (!subcommand || subcommand === "list") {
62
+ runThemesList();
63
+ return;
64
+ }
65
+ if (subcommand === "import") {
66
+ const themeId = rest[0];
67
+ if (!themeId) {
68
+ console.error("Missing theme id. Usage: shads themes import <theme>");
69
+ process.exitCode = 1;
70
+ return;
71
+ }
72
+ await runThemesImport(themeId);
73
+ return;
74
+ }
75
+ }
76
+ console.error(`Unknown command: ${command}`);
77
+ printHelp();
78
+ process.exitCode = 1;
79
+ }
80
+ main().catch((error) => {
81
+ console.error(error instanceof Error ? error.message : error);
82
+ process.exitCode = 1;
83
+ });
84
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runInstall(themeId: string): Promise<void>;
2
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAOA,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe/D"}
@@ -0,0 +1,18 @@
1
+ import { mkdirSync, writeFileSync } from "node:fs";
2
+ import { dirname } from "node:path";
3
+ import { getTheme } from "@shadsapp/themes";
4
+ import { resolveProjectPaths } from "../project.js";
5
+ export async function runInstall(themeId) {
6
+ const bundle = getTheme(themeId);
7
+ const paths = resolveProjectPaths();
8
+ mkdirSync(dirname(paths.themeJson), { recursive: true });
9
+ mkdirSync(dirname(paths.themeCss), { recursive: true });
10
+ writeFileSync(paths.themeJson, `${bundle.themeJson}\n`, "utf8");
11
+ writeFileSync(paths.themeCss, `${bundle.themeCss}\n`, "utf8");
12
+ console.log(`Installed ${bundle.meta.label} theme`);
13
+ console.log(` ${paths.themeJson}`);
14
+ console.log(` ${paths.themeCss}`);
15
+ console.log("");
16
+ console.log("Next: import the CSS in your app entry and open https://shads.app");
17
+ }
18
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAA;IAEnC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvD,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/D,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,MAAM,CAAC,CAAA;IAE7D,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAA;IACnD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA;AAClF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function runThemesList(): void;
2
+ export declare function runThemesImport(themeId: string): Promise<void>;
3
+ //# sourceMappingURL=themes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../src/commands/themes.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAapE"}
@@ -0,0 +1,23 @@
1
+ import { mkdirSync, writeFileSync } from "node:fs";
2
+ import { dirname } from "node:path";
3
+ import { getTheme, listThemes } from "@shadsapp/themes";
4
+ import { resolveProjectPaths } from "../project.js";
5
+ export function runThemesList() {
6
+ const themes = listThemes();
7
+ console.log("Available public themes:\n");
8
+ for (const theme of themes) {
9
+ console.log(` ${theme.id.padEnd(12)} ${theme.label} — ${theme.description}`);
10
+ }
11
+ }
12
+ export async function runThemesImport(themeId) {
13
+ const bundle = getTheme(themeId);
14
+ const paths = resolveProjectPaths();
15
+ mkdirSync(dirname(paths.themeJson), { recursive: true });
16
+ mkdirSync(dirname(paths.themeCss), { recursive: true });
17
+ writeFileSync(paths.themeJson, `${bundle.themeJson}\n`, "utf8");
18
+ writeFileSync(paths.themeCss, `${bundle.themeCss}\n`, "utf8");
19
+ console.log(`Imported ${bundle.meta.label}`);
20
+ console.log(` ${paths.themeJson}`);
21
+ console.log(` ${paths.themeCss}`);
22
+ }
23
+ //# sourceMappingURL=themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../src/commands/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAA;IAEnC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvD,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/D,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,MAAM,CAAC,CAAA;IAE7D,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;AACpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runValidate(filePath: string): void;
2
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAelD"}
@@ -0,0 +1,17 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { parseThemeDocumentInput } from "@shadsapp/schema";
3
+ export function runValidate(filePath) {
4
+ const source = readFileSync(filePath, "utf8");
5
+ const result = parseThemeDocumentInput(source);
6
+ if (!result.ok) {
7
+ console.error(`Invalid theme document: ${filePath}`);
8
+ for (const error of result.errors) {
9
+ console.error(` - ${error}`);
10
+ }
11
+ process.exitCode = 1;
12
+ return;
13
+ }
14
+ const name = result.document.name ?? "(unnamed)";
15
+ console.log(`Valid theme document: ${name}`);
16
+ }
17
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAE1D,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAE9C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAA;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAA;AAC9C,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type ProjectPaths = {
2
+ cwd: string;
3
+ themeJson: string;
4
+ themeCss: string;
5
+ };
6
+ export declare function resolveProjectPaths(cwd?: string): ProjectPaths;
7
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,GAAG,SAAgB,GAAG,YAAY,CA+BrE"}
@@ -0,0 +1,29 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ export function resolveProjectPaths(cwd = process.cwd()) {
4
+ const candidates = [
5
+ {
6
+ themeJson: join(cwd, "theme.json"),
7
+ themeCss: join(cwd, "src/styles/theme.css"),
8
+ },
9
+ {
10
+ themeJson: join(cwd, "theme.json"),
11
+ themeCss: join(cwd, "styles/theme.css"),
12
+ },
13
+ {
14
+ themeJson: join(cwd, "src/theme.json"),
15
+ themeCss: join(cwd, "src/styles/theme.css"),
16
+ },
17
+ ];
18
+ const existing = candidates.find((candidate) => existsSync(candidate.themeJson) || existsSync(candidate.themeCss));
19
+ const fallback = candidates[0] ?? {
20
+ themeJson: join(cwd, "theme.json"),
21
+ themeCss: join(cwd, "src/styles/theme.css"),
22
+ };
23
+ return {
24
+ cwd,
25
+ themeJson: existing?.themeJson ?? fallback.themeJson,
26
+ themeCss: existing?.themeCss ?? fallback.themeCss,
27
+ };
28
+ }
29
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAQhC,MAAM,UAAU,mBAAmB,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACrD,MAAM,UAAU,GAAG;QACjB;YACE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC;SAC5C;QACD;YACE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC;SACxC;QACD;YACE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC;SAC5C;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAC9B,CAAC,SAAS,EAAE,EAAE,CACZ,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CACpE,CAAA;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI;QAChC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;QAClC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC;KAC5C,CAAA;IAED,OAAO;QACL,GAAG;QACH,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,QAAQ,CAAC,SAAS;QACpD,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ;KAClD,CAAA;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@shadsapp/cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI for installing and importing shads themes",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "bin": {
8
+ "shads": "./dist/cli.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc -p tsconfig.json",
15
+ "typecheck": "tsc -p tsconfig.json --noEmit"
16
+ },
17
+ "dependencies": {
18
+ "@shadsapp/schema": "0.1.0",
19
+ "@shadsapp/themes": "0.1.0"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public"
23
+ }
24
+ }