dcntui 0.1.1 → 0.1.3
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/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +22 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/utils/detect-css.d.ts +8 -0
- package/dist/utils/detect-css.d.ts.map +1 -0
- package/dist/utils/detect-css.js +67 -0
- package/dist/utils/detect-css.js.map +1 -0
- package/dist/utils/detect-framework.d.ts.map +1 -1
- package/dist/utils/detect-framework.js +1 -19
- package/dist/utils/detect-framework.js.map +1 -1
- package/dist/utils/helpers.d.ts +5 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +23 -0
- package/dist/utils/helpers.js.map +1 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAmHjD"}
|
package/dist/commands/init.js
CHANGED
|
@@ -4,6 +4,7 @@ import fs from 'node:fs';
|
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { renderBanner } from '../utils/banner.js';
|
|
6
6
|
import { detectFramework, FRAMEWORK_OPTIONS } from '../utils/detect-framework.js';
|
|
7
|
+
import { CSS_OPTIONS, detectCss } from '../utils/detect-css.js';
|
|
7
8
|
const CONFIG_FILE = 'dcntui.config.json';
|
|
8
9
|
export async function initCommand() {
|
|
9
10
|
console.clear();
|
|
@@ -69,5 +70,26 @@ export async function initCommand() {
|
|
|
69
70
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
70
71
|
const frameworkLabel = FRAMEWORK_OPTIONS.find((f) => f.value === framework).label;
|
|
71
72
|
clack.log.success(chalk.green(`Framework set to ${chalk.bold(frameworkLabel)}.`));
|
|
73
|
+
const detectedCss = detectCss(cwd);
|
|
74
|
+
if (detectedCss) {
|
|
75
|
+
const detected = CSS_OPTIONS.find((c) => c.value === detectedCss);
|
|
76
|
+
clack.log.info(`Detected CSS strategy: ${chalk.cyan(detected.label)}`);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
clack.log.warn('Could not auto-detect a CSS strategy. Please select one manually.');
|
|
80
|
+
}
|
|
81
|
+
const css = await clack.select({
|
|
82
|
+
message: 'CSS strategy:',
|
|
83
|
+
options: CSS_OPTIONS,
|
|
84
|
+
initialValue: detectedCss ?? 'css'
|
|
85
|
+
});
|
|
86
|
+
if (clack.isCancel(css)) {
|
|
87
|
+
clack.outro(chalk.yellow('Initialization cancelled.'));
|
|
88
|
+
process.exit(0);
|
|
89
|
+
}
|
|
90
|
+
config['css'] = css;
|
|
91
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
92
|
+
const cssLabel = CSS_OPTIONS.find((c) => c.value === css).label;
|
|
93
|
+
clack.log.success(chalk.green(`CSS strategy set to ${chalk.bold(cssLabel)}.`));
|
|
72
94
|
}
|
|
73
95
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type CssStrategy = 'tailwind-v4' | 'tailwind-v3' | 'scss' | 'css';
|
|
2
|
+
export interface CssOption {
|
|
3
|
+
value: CssStrategy;
|
|
4
|
+
label: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const CSS_OPTIONS: CssOption[];
|
|
7
|
+
export declare function detectCss(cwd: string): CssStrategy | null;
|
|
8
|
+
//# sourceMappingURL=detect-css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-css.d.ts","sourceRoot":"","sources":["../../src/utils/detect-css.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,EAKlC,CAAC;AAoCF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAgCzD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import fg from 'fast-glob';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { fileExists, hasDep, readPackageJson } from './helpers.js';
|
|
4
|
+
export const CSS_OPTIONS = [
|
|
5
|
+
{ value: 'tailwind-v4', label: 'Tailwind CSS v4' },
|
|
6
|
+
{ value: 'tailwind-v3', label: 'Tailwind CSS v3' },
|
|
7
|
+
{ value: 'scss', label: 'SASS / SCSS' },
|
|
8
|
+
{ value: 'css', label: 'Plain CSS' }
|
|
9
|
+
];
|
|
10
|
+
const IGNORE = ['**/node_modules/**', '**/.git/**', '**/dist/**', '**/.next/**', '**/.svelte-kit/**', '**/build/**'];
|
|
11
|
+
function hasTailwindV4Import(cwd) {
|
|
12
|
+
const cssFiles = fg.sync('**/*.css', { cwd, ignore: IGNORE, deep: 4, absolute: true });
|
|
13
|
+
const pattern = /@import\s+['"]tailwindcss['"]/;
|
|
14
|
+
for (const file of cssFiles) {
|
|
15
|
+
try {
|
|
16
|
+
if (pattern.test(fs.readFileSync(file, 'utf-8')))
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
// unreadable file — skip
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
function hasScssFiles(cwd) {
|
|
26
|
+
return fg.sync('**/*.scss', { cwd, ignore: IGNORE, deep: 4 }).length > 0;
|
|
27
|
+
}
|
|
28
|
+
function tailwindMajorVersion(pkg) {
|
|
29
|
+
const deps = {
|
|
30
|
+
...pkg['dependencies'],
|
|
31
|
+
...pkg['devDependencies']
|
|
32
|
+
};
|
|
33
|
+
const raw = deps['tailwindcss'];
|
|
34
|
+
if (!raw)
|
|
35
|
+
return null;
|
|
36
|
+
const match = raw.match(/(\d+)\./);
|
|
37
|
+
return match ? parseInt(match[1], 10) : null;
|
|
38
|
+
}
|
|
39
|
+
export function detectCss(cwd) {
|
|
40
|
+
const pkg = readPackageJson(cwd);
|
|
41
|
+
if (!pkg)
|
|
42
|
+
return null;
|
|
43
|
+
const hasConfigJs = fileExists(cwd, 'tailwind.config.js');
|
|
44
|
+
const hasConfigTs = fileExists(cwd, 'tailwind.config.ts');
|
|
45
|
+
const hasTailwindConfig = hasConfigJs || hasConfigTs;
|
|
46
|
+
if (!hasTailwindConfig && hasTailwindV4Import(cwd)) {
|
|
47
|
+
return 'tailwind-v4';
|
|
48
|
+
}
|
|
49
|
+
const twMajor = tailwindMajorVersion(pkg);
|
|
50
|
+
if (!hasTailwindConfig && twMajor !== null && twMajor >= 4) {
|
|
51
|
+
return 'tailwind-v4';
|
|
52
|
+
}
|
|
53
|
+
if (hasTailwindConfig) {
|
|
54
|
+
return 'tailwind-v3';
|
|
55
|
+
}
|
|
56
|
+
if (twMajor !== null && twMajor === 3) {
|
|
57
|
+
return 'tailwind-v3';
|
|
58
|
+
}
|
|
59
|
+
if (hasDep(pkg, 'sass') || hasDep(pkg, 'sass-embedded')) {
|
|
60
|
+
return 'scss';
|
|
61
|
+
}
|
|
62
|
+
if (hasScssFiles(cwd)) {
|
|
63
|
+
return 'scss';
|
|
64
|
+
}
|
|
65
|
+
return 'css';
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=detect-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-css.js","sourceRoot":"","sources":["../../src/utils/detect-css.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-framework.d.ts","sourceRoot":"","sources":["../../src/utils/detect-framework.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect-framework.d.ts","sourceRoot":"","sources":["../../src/utils/detect-framework.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,iBAAiB,EAAE,eAAe,EAM9C,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAwB7D"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import path from 'node:path';
|
|
1
|
+
import { dirExists, hasDep, readPackageJson } from './helpers.js';
|
|
3
2
|
export const FRAMEWORK_OPTIONS = [
|
|
4
3
|
{ value: 'next-app', label: 'Next.js App Router' },
|
|
5
4
|
{ value: 'next-pages', label: 'Next.js Pages Router' },
|
|
@@ -7,23 +6,6 @@ export const FRAMEWORK_OPTIONS = [
|
|
|
7
6
|
{ value: 'svelte', label: 'Svelte' },
|
|
8
7
|
{ value: 'react', label: 'React' }
|
|
9
8
|
];
|
|
10
|
-
function readPackageJson(cwd) {
|
|
11
|
-
try {
|
|
12
|
-
const raw = fs.readFileSync(path.join(cwd, 'package.json'), 'utf-8');
|
|
13
|
-
return JSON.parse(raw);
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function hasDep(pkg, name) {
|
|
20
|
-
const deps = (pkg['dependencies'] ?? {});
|
|
21
|
-
const dev = (pkg['devDependencies'] ?? {});
|
|
22
|
-
return name in deps || name in dev;
|
|
23
|
-
}
|
|
24
|
-
function dirExists(cwd, dir) {
|
|
25
|
-
return fs.existsSync(path.join(cwd, dir));
|
|
26
|
-
}
|
|
27
9
|
export function detectFramework(cwd) {
|
|
28
10
|
const pkg = readPackageJson(cwd);
|
|
29
11
|
if (!pkg)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-framework.js","sourceRoot":"","sources":["../../src/utils/detect-framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"detect-framework.js","sourceRoot":"","sources":["../../src/utils/detect-framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAUlE,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAClD,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACtD,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;IAC3C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;CACnC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC;QAAE,OAAO,YAAY,CAAC;IAEtD,IAAI,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE3C,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE3E,IAAI,SAAS,IAAI,CAAC,WAAW;YAAE,OAAO,UAAU,CAAC;QACjD,IAAI,WAAW,IAAI,CAAC,SAAS;YAAE,OAAO,YAAY,CAAC;QAEnD,IAAI,SAAS,IAAI,WAAW;YAAE,OAAO,UAAU,CAAC;QAEhD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAEzC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function readPackageJson(cwd: string): Record<string, unknown> | null;
|
|
2
|
+
export declare function hasDep(pkg: Record<string, unknown>, name: string): boolean;
|
|
3
|
+
export declare function dirExists(cwd: string, dir: string): boolean;
|
|
4
|
+
export declare function fileExists(cwd: string, ...segments: string[]): boolean;
|
|
5
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAQ3E;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAEtE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export function readPackageJson(cwd) {
|
|
4
|
+
try {
|
|
5
|
+
const raw = fs.readFileSync(path.join(cwd, 'package.json'), 'utf-8');
|
|
6
|
+
return JSON.parse(raw);
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function hasDep(pkg, name) {
|
|
13
|
+
const deps = (pkg['dependencies'] ?? {});
|
|
14
|
+
const dev = (pkg['devDependencies'] ?? {});
|
|
15
|
+
return name in deps || name in dev;
|
|
16
|
+
}
|
|
17
|
+
export function dirExists(cwd, dir) {
|
|
18
|
+
return fs.existsSync(path.join(cwd, dir));
|
|
19
|
+
}
|
|
20
|
+
export function fileExists(cwd, ...segments) {
|
|
21
|
+
return fs.existsSync(path.join(cwd, ...segments));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAA4B,EAAE,IAAY;IAC/D,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAA2B,CAAC;IACnE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAA2B,CAAC;IAErE,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,GAAW;IAChD,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,GAAG,QAAkB;IAC3D,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dcntui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "CLI for initializing DCNT UI and adding components to projects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@clack/prompts": "^0.7.0",
|
|
20
20
|
"chalk": "^5.3.0",
|
|
21
|
-
"commander": "^12.0.0"
|
|
21
|
+
"commander": "^12.0.0",
|
|
22
|
+
"fast-glob": "^3.3.3"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
24
25
|
"@types/node": "^20.0.0",
|