@smart-coder-labs/apple-design-system 1.2.3 → 1.3.1
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 +38 -13
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +2 -1
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +94 -27
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/update-components.d.ts.map +1 -1
- package/dist/cli/commands/update-components.js +2 -1
- package/dist/cli/commands/update-components.js.map +1 -1
- package/dist/cli/utils/config.d.ts +9 -0
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +12 -0
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/cli/utils/framework.d.ts +9 -0
- package/dist/cli/utils/framework.d.ts.map +1 -0
- package/dist/cli/utils/framework.js +68 -0
- package/dist/cli/utils/framework.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,44 +32,69 @@ npm install -D @smart-coder-labs/apple-design-system
|
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
## 💻 CLI
|
|
35
|
+
## 💻 CLI
|
|
36
36
|
|
|
37
|
-
El Design System
|
|
37
|
+
El Design System incluye una CLI integrada inspirada en shadcn/ui — descargás el código fuente de los componentes directamente a tu proyecto, no importás un paquete.
|
|
38
38
|
|
|
39
39
|
### `init`
|
|
40
40
|
|
|
41
|
-
Configura tu proyecto automáticamente
|
|
41
|
+
Configura tu proyecto. **Detecta automáticamente el framework** leyendo los archivos de config y `package.json`.
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
44
|
npx @smart-coder-labs/apple-design-system init
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
+
```
|
|
48
|
+
🍏 Apple Design System — Initialization
|
|
49
|
+
|
|
50
|
+
Detected framework: Next.js (App Router — RSC enabled)
|
|
51
|
+
Is this correct? › Yes
|
|
52
|
+
|
|
53
|
+
Project root directory? › ./src
|
|
54
|
+
Where to install components? › ./src/components/ui
|
|
55
|
+
Global CSS file path? › ./src/index.css
|
|
56
|
+
Install required dependencies now? › Yes
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Frameworks soportados:** Next.js (App Router y Pages Router), Vite, Astro, Remix / React Router.
|
|
60
|
+
|
|
61
|
+
La configuración se guarda en `design-system.json`:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"framework": "next",
|
|
66
|
+
"rsc": true,
|
|
67
|
+
"componentsDir": "./src/components/ui",
|
|
68
|
+
"globalCss": "./src/index.css",
|
|
69
|
+
"components": {}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
> **`rsc: true`** — Next.js App Router. Los componentes conservan `'use client'`.
|
|
74
|
+
> **`rsc: false`** — Vite, Astro, Remix, Next.js Pages Router. `'use client'` se elimina automáticamente al instalar.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
47
78
|
### `add`
|
|
48
79
|
|
|
49
|
-
Añade componentes
|
|
80
|
+
Añade componentes a tu proyecto. Detecta dependencias entre componentes automáticamente.
|
|
50
81
|
|
|
51
82
|
```bash
|
|
52
83
|
npx @smart-coder-labs/apple-design-system add Button Card
|
|
53
84
|
```
|
|
54
85
|
|
|
55
|
-
|
|
56
|
-
1. Descarga el código del componente a `./components/ui`.
|
|
57
|
-
2. Instala automáticamente las dependencias necesarias (`framer-motion`, `radix-ui`, etc.) solo para ese componente.
|
|
86
|
+
Sin argumentos abre un selector interactivo (instalar todo o elegir específicos).
|
|
58
87
|
|
|
59
88
|
---
|
|
60
89
|
|
|
61
90
|
### `update`
|
|
62
91
|
|
|
63
|
-
Actualiza los componentes instalados
|
|
92
|
+
Actualiza los componentes ya instalados a la última versión del registry.
|
|
64
93
|
|
|
65
94
|
```bash
|
|
66
|
-
npx @smart-coder-labs/apple-design-system update
|
|
95
|
+
npx @smart-coder-labs/apple-design-system update
|
|
67
96
|
```
|
|
68
97
|
|
|
69
|
-
Esto:
|
|
70
|
-
1. Comprueba si hay versiones nuevas de los componentes en tu carpeta `components/ui`.
|
|
71
|
-
2. Te pregunta antes de sobrescribir cualquier archivo.
|
|
72
|
-
|
|
73
98
|
---
|
|
74
99
|
|
|
75
100
|
## ✨ Características
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../cli/commands/add.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,GAAG,GAAU,YAAY,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../cli/commands/add.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,GAAG,GAAU,YAAY,MAAM,EAAE,kBAoF7C,CAAC"}
|
package/dist/cli/commands/add.js
CHANGED
|
@@ -74,7 +74,8 @@ const add = async (components) => {
|
|
|
74
74
|
const componentDir = path_1.default.resolve(process.cwd(), config.componentsDir, component);
|
|
75
75
|
await fs_extra_1.default.ensureDir(componentDir);
|
|
76
76
|
for (const file of files) {
|
|
77
|
-
|
|
77
|
+
const content = config.rsc ? file.content : (0, config_1.stripUseClient)(file.content);
|
|
78
|
+
await fs_extra_1.default.writeFile(path_1.default.join(componentDir, file.name), content);
|
|
78
79
|
}
|
|
79
80
|
await (0, config_1.recordInstall)(config, component, dsVersion, "folder");
|
|
80
81
|
spinner.succeed(`Installed ${component}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../cli/commands/add.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,wDAA0B;AAC1B,kDAA0B;AAC1B,8CAAsB;AACtB,gDAAkG;AAClG,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../cli/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../cli/commands/init.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,IAAI,qBA0LhB,CAAC"}
|
|
@@ -10,49 +10,109 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
10
10
|
const chalk_1 = __importDefault(require("chalk"));
|
|
11
11
|
const ora_1 = __importDefault(require("ora"));
|
|
12
12
|
const registry_1 = require("../utils/registry");
|
|
13
|
+
const framework_1 = require("../utils/framework");
|
|
14
|
+
const FRAMEWORK_CHOICES = [
|
|
15
|
+
{ title: "Next.js (App Router)", value: "next-app" },
|
|
16
|
+
{ title: "Next.js (Pages Router)", value: "next-pages" },
|
|
17
|
+
{ title: "Vite", value: "vite" },
|
|
18
|
+
{ title: "Astro", value: "astro" },
|
|
19
|
+
{ title: "Remix / React Router", value: "remix" },
|
|
20
|
+
{ title: "Other", value: "unknown" },
|
|
21
|
+
];
|
|
22
|
+
function resolveRsc(value) {
|
|
23
|
+
if (value === "next-app")
|
|
24
|
+
return { framework: "next", rsc: true };
|
|
25
|
+
if (value === "next-pages")
|
|
26
|
+
return { framework: "next", rsc: false };
|
|
27
|
+
return { framework: value, rsc: false };
|
|
28
|
+
}
|
|
13
29
|
const init = async () => {
|
|
14
|
-
console.log(chalk_1.default.bold.green("🍏 Apple Design System Initialization"));
|
|
15
|
-
|
|
30
|
+
console.log(chalk_1.default.bold.green("\n🍏 Apple Design System — Initialization\n"));
|
|
31
|
+
// ── 1. Auto-detect framework ──────────────────────────────────────────────
|
|
32
|
+
const detected = (0, framework_1.detectFramework)(process.cwd());
|
|
33
|
+
if (detected.framework !== "unknown") {
|
|
34
|
+
const rscNote = detected.rsc ? chalk_1.default.gray(" (App Router — RSC enabled)") : "";
|
|
35
|
+
console.log(chalk_1.default.cyan(`Detected framework: `) +
|
|
36
|
+
chalk_1.default.bold(detected.label) +
|
|
37
|
+
rscNote);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.log(chalk_1.default.yellow("Could not auto-detect framework."));
|
|
41
|
+
}
|
|
42
|
+
// ── 2. Confirm or override ────────────────────────────────────────────────
|
|
43
|
+
let framework = detected.framework;
|
|
44
|
+
let rsc = detected.rsc;
|
|
45
|
+
if (detected.framework !== "unknown") {
|
|
46
|
+
const { confirm } = await (0, prompts_1.default)({
|
|
47
|
+
type: "confirm",
|
|
48
|
+
name: "confirm",
|
|
49
|
+
message: `Is this correct?`,
|
|
50
|
+
initial: true,
|
|
51
|
+
});
|
|
52
|
+
if (!confirm) {
|
|
53
|
+
const { choice } = await (0, prompts_1.default)({
|
|
54
|
+
type: "select",
|
|
55
|
+
name: "choice",
|
|
56
|
+
message: "Select your framework:",
|
|
57
|
+
choices: FRAMEWORK_CHOICES,
|
|
58
|
+
});
|
|
59
|
+
const resolved = resolveRsc(choice);
|
|
60
|
+
framework = resolved.framework;
|
|
61
|
+
rsc = resolved.rsc;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const { choice } = await (0, prompts_1.default)({
|
|
66
|
+
type: "select",
|
|
67
|
+
name: "choice",
|
|
68
|
+
message: "Select your framework:",
|
|
69
|
+
choices: FRAMEWORK_CHOICES,
|
|
70
|
+
});
|
|
71
|
+
const resolved = resolveRsc(choice);
|
|
72
|
+
framework = resolved.framework;
|
|
73
|
+
rsc = resolved.rsc;
|
|
74
|
+
}
|
|
75
|
+
// ── 3. Rest of project config ─────────────────────────────────────────────
|
|
16
76
|
const response = await (0, prompts_1.default)([
|
|
17
77
|
{
|
|
18
78
|
type: "text",
|
|
19
79
|
name: "projectRoot",
|
|
20
|
-
message: "
|
|
80
|
+
message: "Project root directory?",
|
|
21
81
|
initial: "./src",
|
|
22
82
|
},
|
|
23
83
|
{
|
|
24
84
|
type: "text",
|
|
25
85
|
name: "componentsDir",
|
|
26
|
-
message: "Where
|
|
86
|
+
message: "Where to install components?",
|
|
27
87
|
initial: (prev) => `${prev}/components/ui`,
|
|
28
88
|
},
|
|
29
89
|
{
|
|
30
90
|
type: "text",
|
|
31
91
|
name: "globalCss",
|
|
32
|
-
message: "
|
|
33
|
-
initial: (
|
|
92
|
+
message: "Global CSS file path?",
|
|
93
|
+
initial: (_prev, values) => `${values.projectRoot}/index.css`,
|
|
34
94
|
},
|
|
35
95
|
{
|
|
36
96
|
type: "confirm",
|
|
37
97
|
name: "installDeps",
|
|
38
|
-
message: "
|
|
98
|
+
message: "Install required dependencies now?",
|
|
39
99
|
initial: true,
|
|
40
100
|
},
|
|
41
101
|
]);
|
|
42
102
|
const spin = (0, ora_1.default)("Configuring project...").start();
|
|
43
|
-
//
|
|
103
|
+
// ── 4. Write design-system.json ───────────────────────────────────────────
|
|
44
104
|
const config = {
|
|
105
|
+
framework,
|
|
106
|
+
rsc,
|
|
45
107
|
componentsDir: response.componentsDir,
|
|
46
108
|
globalCss: response.globalCss,
|
|
109
|
+
components: {},
|
|
47
110
|
};
|
|
48
111
|
await fs_extra_1.default.writeJSON("design-system.json", config, { spaces: 2 });
|
|
49
|
-
spin.succeed("
|
|
50
|
-
//
|
|
112
|
+
spin.succeed("Created design-system.json");
|
|
113
|
+
// ── 5. Ensure directories ─────────────────────────────────────────────────
|
|
51
114
|
const resolvedComponentsDir = path_1.default.resolve(process.cwd(), response.componentsDir);
|
|
52
115
|
await fs_extra_1.default.ensureDir(resolvedComponentsDir);
|
|
53
|
-
// Also create a lib/utils.ts for cn helper if it doesn't exist
|
|
54
|
-
// We try to infer lib location from componentsDir or projectRoot
|
|
55
|
-
// If components are in src/components/ui, lib should be src/lib
|
|
56
116
|
const utilsDir = path_1.default.resolve(process.cwd(), response.projectRoot, "lib");
|
|
57
117
|
const utilsPath = path_1.default.resolve(utilsDir, "utils.ts");
|
|
58
118
|
if (!fs_extra_1.default.existsSync(utilsPath)) {
|
|
@@ -64,9 +124,9 @@ export function cn(...inputs: ClassValue[]) {
|
|
|
64
124
|
return twMerge(clsx(inputs))
|
|
65
125
|
}
|
|
66
126
|
`);
|
|
67
|
-
console.log(chalk_1.default.green(`Created ${path_1.default.relative(process.cwd(), utilsPath)}
|
|
127
|
+
console.log(chalk_1.default.green(`Created ${path_1.default.relative(process.cwd(), utilsPath)}`));
|
|
68
128
|
}
|
|
69
|
-
// Fetch and
|
|
129
|
+
// ── 6. Fetch and write global CSS ─────────────────────────────────────────
|
|
70
130
|
spin.text = "Fetching global styles...";
|
|
71
131
|
const cssContent = await (0, registry_1.getGlobalCss)();
|
|
72
132
|
if (cssContent) {
|
|
@@ -75,45 +135,52 @@ export function cn(...inputs: ClassValue[]) {
|
|
|
75
135
|
const cssPath = path_1.default.resolve(stylesDir, "apple-ds.css");
|
|
76
136
|
await fs_extra_1.default.writeFile(cssPath, cssContent);
|
|
77
137
|
console.log(chalk_1.default.green(`Created ${path_1.default.relative(process.cwd(), cssPath)}`));
|
|
78
|
-
// Inject CSS import into global CSS if provided
|
|
79
138
|
if (response.globalCss) {
|
|
80
139
|
const globalCssPath = path_1.default.resolve(process.cwd(), response.globalCss);
|
|
81
140
|
if (fs_extra_1.default.existsSync(globalCssPath)) {
|
|
82
141
|
let existingCss = await fs_extra_1.default.readFile(globalCssPath, "utf-8");
|
|
83
|
-
// Calculate relative path from global CSS to apple-ds.css
|
|
84
142
|
const globalCssDir = path_1.default.dirname(globalCssPath);
|
|
85
143
|
const relativePath = path_1.default.relative(globalCssDir, cssPath);
|
|
86
|
-
// Ensure it starts with ./ or ../
|
|
87
144
|
const importPath = relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
|
|
88
145
|
const importStatement = `@import '${importPath}';`;
|
|
89
146
|
if (!existingCss.includes("apple-ds.css")) {
|
|
90
|
-
// Prepend to file
|
|
91
147
|
await fs_extra_1.default.writeFile(globalCssPath, `${importStatement}\n${existingCss}`);
|
|
92
148
|
console.log(chalk_1.default.green(`Updated ${response.globalCss} with design system styles.`));
|
|
93
149
|
}
|
|
94
150
|
}
|
|
95
151
|
else {
|
|
96
|
-
console.log(chalk_1.default.yellow(`
|
|
152
|
+
console.log(chalk_1.default.yellow(`CSS file not found at ${response.globalCss}. Skipping import.`));
|
|
97
153
|
}
|
|
98
154
|
}
|
|
99
155
|
}
|
|
100
156
|
else {
|
|
101
|
-
spin.warn("Failed to fetch global styles.
|
|
157
|
+
spin.warn("Failed to fetch global styles. Install styles manually.");
|
|
102
158
|
}
|
|
159
|
+
// ── 7. Install deps ───────────────────────────────────────────────────────
|
|
103
160
|
if (response.installDeps) {
|
|
104
161
|
spin.start("Installing dependencies...");
|
|
105
162
|
try {
|
|
106
|
-
const { execSync } = require(
|
|
107
|
-
execSync(
|
|
163
|
+
const { execSync } = require("child_process");
|
|
164
|
+
execSync("npm install clsx tailwind-merge cva framer-motion lucide-react", {
|
|
165
|
+
stdio: "inherit",
|
|
166
|
+
});
|
|
108
167
|
spin.succeed("Dependencies installed.");
|
|
109
168
|
}
|
|
110
|
-
catch
|
|
111
|
-
spin.fail("Failed to install dependencies.
|
|
169
|
+
catch {
|
|
170
|
+
spin.fail("Failed to install dependencies. Run manually:");
|
|
112
171
|
console.log(chalk_1.default.cyan("npm install clsx tailwind-merge cva framer-motion lucide-react"));
|
|
113
172
|
}
|
|
114
173
|
}
|
|
115
|
-
|
|
116
|
-
|
|
174
|
+
// ── 8. Framework-specific hints ───────────────────────────────────────────
|
|
175
|
+
if (framework === "astro") {
|
|
176
|
+
console.log(chalk_1.default.yellow("\n⚠ Astro: Components use React — make sure to add the React integration\n" +
|
|
177
|
+
" and use client:* directives when mounting them in .astro files."));
|
|
178
|
+
}
|
|
179
|
+
if (!rsc && framework !== "astro") {
|
|
180
|
+
console.log(chalk_1.default.gray("\nℹ 'use client' directives are stripped from components (not needed outside Next.js App Router)."));
|
|
181
|
+
}
|
|
182
|
+
console.log(chalk_1.default.bold.green("\n✓ Project initialized."));
|
|
183
|
+
console.log(`Run ${chalk_1.default.cyan("npx apple-design-system add")} to install components.`);
|
|
117
184
|
};
|
|
118
185
|
exports.init = init;
|
|
119
186
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../cli/commands/init.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,wDAA0B;AAC1B,kDAA0B;AAC1B,8CAAsB;AACtB,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../cli/commands/init.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,wDAA0B;AAC1B,kDAA0B;AAC1B,8CAAsB;AACtB,gDAAiD;AACjD,kDAAqE;AAErE,MAAM,iBAAiB,GAAG;IACxB,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE;IACpD,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE;IACxD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAClC,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE;IACjD,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;CACrC,CAAC;AAEF,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAClE,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACrE,OAAO,EAAE,SAAS,EAAE,KAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACvD,CAAC;AAEM,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAE7E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,IAAA,2BAAe,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAChC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1B,OAAO,CACV,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,6EAA6E;IAC7E,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACnC,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IAEvB,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC;gBAC/B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,iBAAiB;aAC3B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC/B,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC;YAC/B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE,iBAAiB;SAC3B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IACrB,CAAC;IAED,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAO,EAAC;QAC7B;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,OAAO;SACjB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,gBAAgB;SACnD;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE,CAAC,KAAa,EAAE,MAA+B,EAAE,EAAE,CAC1D,GAAG,MAAM,CAAC,WAAW,YAAY;SACpC;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,oCAAoC;YAC7C,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAA,aAAG,EAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEnD,6EAA6E;IAC7E,MAAM,MAAM,GAAG;QACb,SAAS;QACT,GAAG;QACH,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,MAAM,kBAAE,CAAC,SAAS,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAE3C,6EAA6E;IAC7E,MAAM,qBAAqB,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAClF,MAAM,kBAAE,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAErD,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,kBAAE,CAAC,SAAS,CAChB,SAAS,EACT;;;;;;CAML,CACI,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,IAAA,uBAAY,GAAE,CAAC;IAExC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,kBAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACxD,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7E,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtE,IAAI,kBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,IAAI,WAAW,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC5D,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACjD,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC1D,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;gBACrF,MAAM,eAAe,GAAG,YAAY,UAAU,IAAI,CAAC;gBAEnD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC1C,MAAM,kBAAE,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,eAAe,KAAK,WAAW,EAAE,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,QAAQ,CAAC,SAAS,6BAA6B,CAAC,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yBAAyB,QAAQ,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACvE,CAAC;IAED,6EAA6E;IAC7E,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAC9C,QAAQ,CAAC,gEAAgE,EAAE;gBACzE,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,4EAA4E;YAC1E,mEAAmE,CACtE,CACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAG,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,mGAAmG,CACpG,CACF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CACT,OAAO,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,yBAAyB,CAC1E,CAAC;AACJ,CAAC,CAAC;AA1LW,QAAA,IAAI,QA0Lf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-components.d.ts","sourceRoot":"","sources":["../../../cli/commands/update-components.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"update-components.d.ts","sourceRoot":"","sources":["../../../cli/commands/update-components.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,qBAwG5B,CAAC"}
|
|
@@ -74,7 +74,8 @@ const updateComponents = async () => {
|
|
|
74
74
|
const componentDir = path_1.default.resolve(resolvedComponentsDir, component);
|
|
75
75
|
await fs_extra_1.default.ensureDir(componentDir);
|
|
76
76
|
for (const file of files) {
|
|
77
|
-
|
|
77
|
+
const content = config.rsc ? file.content : (0, config_1.stripUseClient)(file.content);
|
|
78
|
+
await fs_extra_1.default.writeFile(path_1.default.join(componentDir, file.name), content);
|
|
78
79
|
}
|
|
79
80
|
await (0, config_1.recordInstall)(config, component, dsVersion, "folder");
|
|
80
81
|
updateSpinner.succeed(`Updated ${component}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-components.js","sourceRoot":"","sources":["../../../cli/commands/update-components.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,kDAA0B;AAC1B,8CAAsB;AACtB,sDAA8B;AAC9B,gDAAkG;AAClG,
|
|
1
|
+
{"version":3,"file":"update-components.js","sourceRoot":"","sources":["../../../cli/commands/update-components.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,22 @@ export interface ComponentRecord {
|
|
|
4
4
|
installedAt: string;
|
|
5
5
|
updatedAt: string;
|
|
6
6
|
}
|
|
7
|
+
import type { Framework } from "./framework";
|
|
7
8
|
export interface DesignSystemConfig {
|
|
8
9
|
componentsDir: string;
|
|
9
10
|
globalCss?: string;
|
|
11
|
+
framework: Framework;
|
|
12
|
+
/** True when using React Server Components (Next.js App Router). */
|
|
13
|
+
rsc: boolean;
|
|
10
14
|
components: Record<string, ComponentRecord>;
|
|
11
15
|
}
|
|
12
16
|
export declare function loadConfig(): Promise<DesignSystemConfig>;
|
|
13
17
|
export declare function saveConfig(config: DesignSystemConfig): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Strips the `'use client'` directive from a file's content.
|
|
20
|
+
* Used for non-RSC projects (Vite, Astro, Remix, Next.js Pages Router).
|
|
21
|
+
*/
|
|
22
|
+
export declare function stripUseClient(content: string): string;
|
|
14
23
|
export declare function recordInstall(config: DesignSystemConfig, componentName: string, version: string, type: "folder" | "flat"): Promise<DesignSystemConfig>;
|
|
15
24
|
/**
|
|
16
25
|
* Detect installed components from disk.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../cli/utils/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../cli/utils/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,oEAAoE;IACpE,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAUD,wBAAsB,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAY9D;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,kBAAkB,EAC1B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,QAAQ,GAAG,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAU7B;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,qBAAqB,EAAE,MAAM,EAC7B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BnB"}
|
package/dist/cli/utils/config.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.loadConfig = loadConfig;
|
|
7
7
|
exports.saveConfig = saveConfig;
|
|
8
|
+
exports.stripUseClient = stripUseClient;
|
|
8
9
|
exports.recordInstall = recordInstall;
|
|
9
10
|
exports.detectInstalledComponents = detectInstalledComponents;
|
|
10
11
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
@@ -12,6 +13,8 @@ const path_1 = __importDefault(require("path"));
|
|
|
12
13
|
const CONFIG_FILE = "design-system.json";
|
|
13
14
|
const DEFAULT_CONFIG = {
|
|
14
15
|
componentsDir: "./components/ui",
|
|
16
|
+
framework: "unknown",
|
|
17
|
+
rsc: false,
|
|
15
18
|
components: {},
|
|
16
19
|
};
|
|
17
20
|
async function loadConfig() {
|
|
@@ -31,6 +34,15 @@ async function loadConfig() {
|
|
|
31
34
|
async function saveConfig(config) {
|
|
32
35
|
await fs_extra_1.default.writeJSON(CONFIG_FILE, config, { spaces: 2 });
|
|
33
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Strips the `'use client'` directive from a file's content.
|
|
39
|
+
* Used for non-RSC projects (Vite, Astro, Remix, Next.js Pages Router).
|
|
40
|
+
*/
|
|
41
|
+
function stripUseClient(content) {
|
|
42
|
+
return content
|
|
43
|
+
.replace(/^['"]use client['"];?\s*\n?/m, "")
|
|
44
|
+
.trimStart();
|
|
45
|
+
}
|
|
34
46
|
async function recordInstall(config, componentName, version, type) {
|
|
35
47
|
const now = new Date().toISOString();
|
|
36
48
|
const existing = config.components[componentName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../cli/utils/config.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../cli/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type Framework = "next" | "vite" | "astro" | "remix" | "unknown";
|
|
2
|
+
export interface FrameworkInfo {
|
|
3
|
+
framework: Framework;
|
|
4
|
+
/** True when the project uses React Server Components (Next.js App Router). */
|
|
5
|
+
rsc: boolean;
|
|
6
|
+
label: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function detectFramework(cwd?: string): FrameworkInfo;
|
|
9
|
+
//# sourceMappingURL=framework.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../../cli/utils/framework.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,+EAA+E;IAC/E,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAwDD,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,aAAa,CAW1E"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.detectFramework = detectFramework;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const CONFIG_FILES = [
|
|
10
|
+
{ file: ["next.config.js", "next.config.ts", "next.config.mjs", "next.config.cjs"], framework: "next" },
|
|
11
|
+
{ file: ["astro.config.mjs", "astro.config.ts", "astro.config.js"], framework: "astro" },
|
|
12
|
+
{ file: ["react-router.config.ts", "react-router.config.js", "remix.config.js"], framework: "remix" },
|
|
13
|
+
{ file: ["vite.config.ts", "vite.config.js", "vite.config.mts", "vite.config.mjs"], framework: "vite" },
|
|
14
|
+
];
|
|
15
|
+
const FRAMEWORK_LABELS = {
|
|
16
|
+
next: "Next.js",
|
|
17
|
+
vite: "Vite",
|
|
18
|
+
astro: "Astro",
|
|
19
|
+
remix: "Remix / React Router",
|
|
20
|
+
unknown: "Unknown",
|
|
21
|
+
};
|
|
22
|
+
function hasAppRouter(cwd) {
|
|
23
|
+
return (fs_extra_1.default.existsSync(path_1.default.join(cwd, "app")) ||
|
|
24
|
+
fs_extra_1.default.existsSync(path_1.default.join(cwd, "src", "app")));
|
|
25
|
+
}
|
|
26
|
+
function detectFromConfigFiles(cwd) {
|
|
27
|
+
for (const { file, framework } of CONFIG_FILES) {
|
|
28
|
+
const files = Array.isArray(file) ? file : [file];
|
|
29
|
+
if (files.some((f) => fs_extra_1.default.existsSync(path_1.default.join(cwd, f)))) {
|
|
30
|
+
return framework;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
function detectFromPackageJson(cwd) {
|
|
36
|
+
const pkgPath = path_1.default.join(cwd, "package.json");
|
|
37
|
+
if (!fs_extra_1.default.existsSync(pkgPath))
|
|
38
|
+
return null;
|
|
39
|
+
try {
|
|
40
|
+
const pkg = fs_extra_1.default.readJSONSync(pkgPath);
|
|
41
|
+
const deps = {
|
|
42
|
+
...pkg.dependencies,
|
|
43
|
+
...pkg.devDependencies,
|
|
44
|
+
};
|
|
45
|
+
if (deps["next"])
|
|
46
|
+
return "next";
|
|
47
|
+
if (deps["astro"])
|
|
48
|
+
return "astro";
|
|
49
|
+
if (deps["@remix-run/react"] || deps["react-router"])
|
|
50
|
+
return "remix";
|
|
51
|
+
if (deps["vite"])
|
|
52
|
+
return "vite";
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// ignore
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
function detectFramework(cwd = process.cwd()) {
|
|
60
|
+
const framework = detectFromConfigFiles(cwd) ?? detectFromPackageJson(cwd) ?? "unknown";
|
|
61
|
+
const rsc = framework === "next" && hasAppRouter(cwd);
|
|
62
|
+
return {
|
|
63
|
+
framework,
|
|
64
|
+
rsc,
|
|
65
|
+
label: FRAMEWORK_LABELS[framework],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=framework.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../../cli/utils/framework.ts"],"names":[],"mappings":"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"}
|