zard-cli 1.0.0 → 1.0.2
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 +14 -8
- package/commands/add/component-installer.d.ts +1 -1
- package/commands/add/component-installer.d.ts.map +1 -1
- package/commands/add/component-installer.js +21 -4
- package/commands/add/component-installer.js.map +1 -1
- package/commands/add/component-selector.js +1 -1
- package/commands/add/dark-mode-setup.d.ts +2 -0
- package/commands/add/dark-mode-setup.d.ts.map +1 -1
- package/commands/add/dark-mode-setup.js +15 -1
- package/commands/add/dark-mode-setup.js.map +1 -1
- package/commands/add/index.d.ts.map +1 -1
- package/commands/add/index.js +27 -13
- package/commands/add/index.js.map +1 -1
- package/commands/add/wizard.d.ts +1 -1
- package/commands/init/config-prompter.d.ts +13 -3
- package/commands/init/config-prompter.d.ts.map +1 -1
- package/commands/init/config-prompter.js +11 -10
- package/commands/init/config-prompter.js.map +1 -1
- package/commands/init/dependencies.d.ts.map +1 -1
- package/commands/init/dependencies.js +8 -4
- package/commands/init/dependencies.js.map +1 -1
- package/commands/init/index.d.ts.map +1 -1
- package/commands/init/index.js +36 -8
- package/commands/init/index.js.map +1 -1
- package/commands/init/library-peers.d.ts +28 -0
- package/commands/init/library-peers.d.ts.map +1 -0
- package/commands/init/library-peers.js +61 -0
- package/commands/init/library-peers.js.map +1 -0
- package/commands/init/project-kind.js +1 -1
- package/commands/init/project-kind.js.map +1 -1
- package/commands/init/steps.js +49 -15
- package/commands/init/steps.js.map +1 -1
- package/commands/init/tailwind-setup.d.ts.map +1 -1
- package/commands/init/tailwind-setup.js +15 -1
- package/commands/init/tailwind-setup.js.map +1 -1
- package/commands/init/wizard.d.ts +5 -2
- package/commands/init/wizard.d.ts.map +1 -1
- package/commands/init/wizard.js +6 -5
- package/commands/init/wizard.js.map +1 -1
- package/core/registry/registry-data.d.ts.map +1 -1
- package/core/registry/registry-data.js +17 -0
- package/core/registry/registry-data.js.map +1 -1
- package/core/themes/index.d.ts +1 -1
- package/core/themes/index.js +1 -1
- package/package.json +1 -1
- package/ui/text-input.d.ts +1 -1
- package/utils/config.d.ts +3 -3
- package/utils/config.js +2 -2
- package/utils/get-project-info.d.ts.map +1 -1
- package/utils/get-project-info.js +71 -1
- package/utils/get-project-info.js.map +1 -1
- package/utils/http-client.js +2 -2
- package/utils/icon-catalog.js +4 -4
- package/utils/package-manager.js +2 -2
- package/utils/registry.d.ts +23 -1
- package/utils/registry.d.ts.map +1 -1
- package/utils/registry.js +40 -9
- package/utils/registry.js.map +1 -1
- package/utils/schema-version.js +1 -1
package/README.md
CHANGED
|
@@ -55,8 +55,13 @@ npx zard-cli init
|
|
|
55
55
|
| `-c, --cwd <cwd>` | Working directory, defaults to the current one |
|
|
56
56
|
| `-t, --type <type>` | Project type: `angular`, `angular-library`, `nx`, `nx-library` or `analog` |
|
|
57
57
|
| `-p, --project <name>` | Which workspace project to configure, when more than one is compatible |
|
|
58
|
+
| `--css <path>` | The global stylesheet that receives the theme |
|
|
59
|
+
| `--app-config <path>` | The app.config.ts that receives `provideZard()` (ignored for libraries) |
|
|
60
|
+
| `--base-color <color>` | Theme base color: `neutral`, `stone`, `zinc`, `gray` or `slate` |
|
|
61
|
+
| `--components-alias` | Import alias for components, defaults to `@/shared/components` |
|
|
62
|
+
| `--utils-alias` | Import alias for utils, defaults to `@/shared/utils` |
|
|
58
63
|
|
|
59
|
-
Outside a terminal (CI, pipes) pass `--yes`, and
|
|
64
|
+
Every question the wizard asks has a flag. Outside a terminal (CI, pipes) pass `--yes`, and the flags answer the questions:
|
|
60
65
|
|
|
61
66
|
```bash
|
|
62
67
|
npx zard-cli init --yes --type nx --project web
|
|
@@ -70,13 +75,14 @@ Adds components, blocks and utilities, resolving their dependencies.
|
|
|
70
75
|
npx zard-cli add [components...]
|
|
71
76
|
```
|
|
72
77
|
|
|
73
|
-
| Option
|
|
74
|
-
|
|
|
75
|
-
| `-y, --yes`
|
|
76
|
-
| `-o, --overwrite`
|
|
77
|
-
| `-c, --cwd <cwd>`
|
|
78
|
-
| `-a, --all`
|
|
79
|
-
| `-p, --path <path>`
|
|
78
|
+
| Option | Description |
|
|
79
|
+
| --------------------- | -------------------------------------------------------------- |
|
|
80
|
+
| `-y, --yes` | Skip the confirmation prompt |
|
|
81
|
+
| `-o, --overwrite` | Overwrite existing files |
|
|
82
|
+
| `-c, --cwd <cwd>` | Working directory, defaults to the current one |
|
|
83
|
+
| `-a, --all` | Add every available component |
|
|
84
|
+
| `-p, --path <path>` | Write the components somewhere other than the configured alias |
|
|
85
|
+
| `--index-html <path>` | The index.html that receives the dark-mode theme script |
|
|
80
86
|
|
|
81
87
|
```bash
|
|
82
88
|
npx zard-cli add dialog # one component
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Config } from '../../utils/config';
|
|
1
|
+
import { Config } from '../../utils/config.js';
|
|
2
2
|
export declare function validateTargetPath(targetDir: string, projectRoot: string): void;
|
|
3
3
|
export declare function installComponent(componentName: string, targetDir: string, config: Config & {
|
|
4
4
|
resolvedPaths: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-installer.d.ts","sourceRoot":"","sources":["../../../src/commands/add/component-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component-installer.d.ts","sourceRoot":"","sources":["../../../src/commands/add/component-installer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAO3C,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAS/E;AAED,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,EACvC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GACxD,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { isPublishableLibrary } from '../init/library-peers.js';
|
|
1
2
|
import { CliError, InstallError } from '../../utils/errors.js';
|
|
2
3
|
import { logger } from '../../utils/logger.js';
|
|
3
|
-
import { fetchComponent } from '../../utils/registry.js';
|
|
4
|
+
import { fetchComponent, relativizeImports } from '../../utils/registry.js';
|
|
4
5
|
import { promises as fs } from 'node:fs';
|
|
5
6
|
import * as path from 'node:path';
|
|
6
7
|
export function validateTargetPath(targetDir, projectRoot) {
|
|
@@ -21,7 +22,7 @@ export async function installComponent(componentName, targetDir, config, options
|
|
|
21
22
|
const writtenFiles = [];
|
|
22
23
|
try {
|
|
23
24
|
for (const file of component.files) {
|
|
24
|
-
const filePath = await installComponentFile(file, targetDir);
|
|
25
|
+
const filePath = await installComponentFile(file, targetDir, libraryTargets(config));
|
|
25
26
|
writtenFiles.push(filePath);
|
|
26
27
|
}
|
|
27
28
|
}
|
|
@@ -36,11 +37,27 @@ export async function installComponent(componentName, targetDir, config, options
|
|
|
36
37
|
throw new InstallError(`Failed to install component "${componentName}": ${error instanceof Error ? error.message : error}`, componentName);
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
+
/**
|
|
41
|
+
* In a publishable library, the directory each alias stands for — `null` anywhere else.
|
|
42
|
+
*
|
|
43
|
+
* Applications keep the aliases, which their own build resolves. A library is
|
|
44
|
+
* bundled by ng-packagr, which leaves aliased imports external: see
|
|
45
|
+
* `relativizeImports`.
|
|
46
|
+
*/
|
|
47
|
+
function libraryTargets(config) {
|
|
48
|
+
if (!isPublishableLibrary(config, config.resolvedPaths['baseUrl']))
|
|
49
|
+
return null;
|
|
50
|
+
return Object.fromEntries(['components', 'utils', 'core', 'services', 'blocks'].map(key => [
|
|
51
|
+
config.aliases[key],
|
|
52
|
+
config.resolvedPaths[key],
|
|
53
|
+
]));
|
|
54
|
+
}
|
|
55
|
+
async function installComponentFile(file, targetDir, targets) {
|
|
40
56
|
const filePath = path.join(targetDir, file.name);
|
|
41
57
|
const fileDir = path.dirname(filePath);
|
|
58
|
+
const content = targets ? relativizeImports(file.content, filePath, targets) : file.content;
|
|
42
59
|
await fs.mkdir(fileDir, { recursive: true });
|
|
43
|
-
await fs.writeFile(filePath,
|
|
60
|
+
await fs.writeFile(filePath, content, 'utf8');
|
|
44
61
|
return filePath;
|
|
45
62
|
}
|
|
46
63
|
//# sourceMappingURL=component-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-installer.js","sourceRoot":"","sources":["../../../src/commands/add/component-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component-installer.js","sourceRoot":"","sources":["../../../src/commands/add/component-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ export declare function updateProvideZardWithDarkMode(cwd: string, resolvedConfi
|
|
|
3
3
|
resolvedPaths: {
|
|
4
4
|
core: string;
|
|
5
5
|
services: string;
|
|
6
|
+
baseUrl: string;
|
|
6
7
|
};
|
|
7
8
|
aliases?: Config['aliases'];
|
|
9
|
+
projectType?: Config['projectType'];
|
|
8
10
|
}): Promise<void>;
|
|
9
11
|
//# sourceMappingURL=dark-mode-setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dark-mode-setup.d.ts","sourceRoot":"","sources":["../../../src/commands/add/dark-mode-setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dark-mode-setup.d.ts","sourceRoot":"","sources":["../../../src/commands/add/dark-mode-setup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAmCnD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,MAAM,EACX,cAAc,EAAE;IACd,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;CACrC,GACA,OAAO,CAAC,IAAI,CAAC,CAwCf"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isPublishableLibrary } from '../init/library-peers.js';
|
|
1
2
|
import { logger } from '../../utils/logger.js';
|
|
2
3
|
import { withImport } from '../../utils/source-file.js';
|
|
3
4
|
import { existsSync } from 'fs';
|
|
@@ -6,6 +7,19 @@ import * as path from 'path';
|
|
|
6
7
|
function getDarkModeImport(servicesAlias) {
|
|
7
8
|
return `import { ZardDarkMode } from '${servicesAlias ?? '@/shared/services'}/dark-mode';`;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* How providezard.ts reaches the services folder.
|
|
12
|
+
*
|
|
13
|
+
* An application keeps the alias. A library imports it relatively: ng-packagr
|
|
14
|
+
* leaves aliased imports external, and the published package would point at a
|
|
15
|
+
* path only the library's workspace maps — see `relativizeImports`.
|
|
16
|
+
*/
|
|
17
|
+
function servicesSpecifier(provideZardPath, resolvedConfig) {
|
|
18
|
+
if (!isPublishableLibrary(resolvedConfig, resolvedConfig.resolvedPaths.baseUrl)) {
|
|
19
|
+
return resolvedConfig.aliases?.services;
|
|
20
|
+
}
|
|
21
|
+
return path.relative(path.dirname(provideZardPath), resolvedConfig.resolvedPaths.services).split(path.sep).join('/');
|
|
22
|
+
}
|
|
9
23
|
const DARK_MODE_INITIALIZER = 'provideAppInitializer(() => inject(ZardDarkMode).init())';
|
|
10
24
|
export async function updateProvideZardWithDarkMode(cwd, resolvedConfig) {
|
|
11
25
|
const provideZardPath = path.join(resolvedConfig.resolvedPaths.core, 'provider/providezard.ts');
|
|
@@ -24,7 +38,7 @@ export async function updateProvideZardWithDarkMode(cwd, resolvedConfig) {
|
|
|
24
38
|
if (!content.includes('provideAppInitializer')) {
|
|
25
39
|
content = content.replace(/import \{ (.*) \} from '@angular\/core';/, "import { $1, provideAppInitializer } from '@angular/core';");
|
|
26
40
|
}
|
|
27
|
-
content = withImport(content, getDarkModeImport(resolvedConfig
|
|
41
|
+
content = withImport(content, getDarkModeImport(servicesSpecifier(provideZardPath, resolvedConfig)));
|
|
28
42
|
content = content.replace(/return makeEnvironmentProviders\(\[(.*?)\]\);/s, (match, providers) => {
|
|
29
43
|
const trimmedProviders = providers.trim();
|
|
30
44
|
if (trimmedProviders) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dark-mode-setup.js","sourceRoot":"","sources":["../../../src/commands/add/dark-mode-setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dark-mode-setup.js","sourceRoot":"","sources":["../../../src/commands/add/dark-mode-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,UAAU,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,SAAS,iBAAiB,CAAC,aAAsB;IAC/C,OAAO,iCAAiC,aAAa,IAAI,mBAAmB,cAAc,CAAC;AAC7F,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,eAAuB,EACvB,cAIC;IAED,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAChF,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvH,CAAC;AAED,MAAM,qBAAqB,GAAG,0DAA0D,CAAC;AAEzF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,GAAW,EACX,cAIC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;IAEhG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAEjE,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,0CAA0C,EAC1C,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,0CAA0C,EAC1C,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAErG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,gDAAgD,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QAC/F,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,oCAAoC,qBAAqB,KAAK,gBAAgB,KAAK,CAAC;QAC7F,CAAC;QACD,OAAO,oCAAoC,qBAAqB,KAAK,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/add/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/add/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,eAAO,MAAM,GAAG,SAmGZ,CAAC"}
|
package/commands/add/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { installComponent, validateTargetPath } from '
|
|
2
|
-
import { selectComponents } from '
|
|
3
|
-
import { updateProvideZardWithDarkMode } from '
|
|
4
|
-
import { getAllInstallableNames, getTargetDir, resolveDependencies, } from '
|
|
5
|
-
import { setupTypeset, setupUtilities } from '
|
|
6
|
-
import { runAddWizard } from '
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import { installComponent, validateTargetPath } from './component-installer.js';
|
|
2
|
+
import { selectComponents } from './component-selector.js';
|
|
3
|
+
import { updateProvideZardWithDarkMode } from './dark-mode-setup.js';
|
|
4
|
+
import { getAllInstallableNames, getTargetDir, resolveDependencies, } from './dependency-resolver.js';
|
|
5
|
+
import { setupTypeset, setupUtilities } from './stylesheet-setup.js';
|
|
6
|
+
import { runAddWizard } from './wizard.js';
|
|
7
|
+
import { syncLibraryPeerDependencies } from '../init/library-peers.js';
|
|
8
|
+
import { indexHtmlFor } from '../init/project-kind.js';
|
|
9
|
+
import { injectThemeScript } from '../init/theme-loader.js';
|
|
9
10
|
import { isInteractive, printReport, WizardCancelledError } from '../../ui/index.js';
|
|
10
11
|
import { pinAllForAngular } from '../../utils/angular-compat.js';
|
|
11
12
|
import { getConfig, resolveConfigPaths } from '../../utils/config.js';
|
|
@@ -27,6 +28,7 @@ export const add = new Command()
|
|
|
27
28
|
.option('-c, --cwd <cwd>', 'the working directory. defaults to the current directory.', process.cwd())
|
|
28
29
|
.option('-a, --all', 'add all available components', false)
|
|
29
30
|
.option('-p, --path <path>', 'the path to add the component to.')
|
|
31
|
+
.option('--index-html <path>', 'the index.html that receives the dark-mode theme script.')
|
|
30
32
|
.action(async (components, options) => {
|
|
31
33
|
const cwd = path.resolve(options.cwd);
|
|
32
34
|
validateWorkingDirectory(cwd);
|
|
@@ -51,18 +53,29 @@ export const add = new Command()
|
|
|
51
53
|
dependencies: pinAllForAngular(dependenciesToInstall, projectInfo.angularVersion),
|
|
52
54
|
};
|
|
53
55
|
},
|
|
54
|
-
installDependencies: (packages) =>
|
|
56
|
+
installDependencies: async (packages) => {
|
|
57
|
+
await installDependencies(packages, cwd, config.packageManager);
|
|
58
|
+
await syncLibraryPeerDependencies(cwd, config, packages);
|
|
59
|
+
},
|
|
55
60
|
installComponent: (component) => installComponent(component.name, getTargetDir(component, resolvedConfig, cwd, options.path), resolvedConfig, {
|
|
56
61
|
customPath: Boolean(options.path),
|
|
57
62
|
isBlock: component.isBlock,
|
|
58
63
|
}),
|
|
59
64
|
setupDarkMode: async (indexHtml) => {
|
|
60
|
-
|
|
65
|
+
// A library has no index.html of its own — it belongs to the consuming app —
|
|
66
|
+
// so a missing file is a note, not a reason to abort the whole install.
|
|
67
|
+
if (existsSync(path.resolve(cwd, indexHtml))) {
|
|
68
|
+
await injectThemeScript(cwd, indexHtml);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
logger.warn(`${indexHtml} not found: add the dark-mode theme script to the app's index.html by hand, ` +
|
|
72
|
+
'or run `zard-cli add dark-mode --overwrite --index-html <path>`.');
|
|
73
|
+
}
|
|
61
74
|
await updateProvideZardWithDarkMode(cwd, resolvedConfig);
|
|
62
75
|
},
|
|
63
76
|
setupTypeset: () => setupTypeset(resolvedConfig.resolvedPaths.tailwindCss),
|
|
64
77
|
setupUtilities: () => setupUtilities(resolvedConfig.resolvedPaths.tailwindCss),
|
|
65
|
-
defaultIndexHtml: indexHtmlFor(config.projectType, config.baseUrl),
|
|
78
|
+
defaultIndexHtml: options.indexHtml ?? indexHtmlFor(config.projectType, config.baseUrl),
|
|
66
79
|
};
|
|
67
80
|
if (!isInteractive()) {
|
|
68
81
|
// See the note in `init`: without this, falling back to text mode is
|
|
@@ -132,8 +145,9 @@ async function runHeadless(preselected, options, actions) {
|
|
|
132
145
|
if (installed.includes('utilities')) {
|
|
133
146
|
await actions.setupUtilities();
|
|
134
147
|
}
|
|
135
|
-
|
|
136
|
-
|
|
148
|
+
// `--index-html` answers what the wizard asks; without it, the project's own index.html.
|
|
149
|
+
if (installed.includes('dark-mode')) {
|
|
150
|
+
await actions.setupDarkMode(actions.defaultIndexHtml);
|
|
137
151
|
}
|
|
138
152
|
if (failed.length) {
|
|
139
153
|
throw new CliError(`Failed to install: ${failed.join(', ')}`, 'INSTALL_FAILED');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,GAEpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAkB,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAe,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/add/index.ts"],"names":[],"mappings":"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"}
|
package/commands/add/wizard.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ComponentMeta } from '
|
|
1
|
+
import { type ComponentMeta } from './dependency-resolver.js';
|
|
2
2
|
import { type LogRecord } from '../../ui/index.js';
|
|
3
3
|
export interface AddWizardOptions {
|
|
4
4
|
/** Components already given on the command line — they skip selection. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ProjectKind } from '
|
|
1
|
+
import { type ProjectKind } from './project-kind.js';
|
|
2
2
|
import { type Config } from '../../utils/config.js';
|
|
3
3
|
import { type ProjectInfo } from '../../utils/get-project-info.js';
|
|
4
4
|
import { z } from 'zod';
|
|
@@ -12,10 +12,10 @@ export declare const configSchema: z.ZodObject<{
|
|
|
12
12
|
rtl: z.ZodBoolean;
|
|
13
13
|
projectType: z.ZodEnum<{
|
|
14
14
|
angular: "angular";
|
|
15
|
-
|
|
15
|
+
analog: "analog";
|
|
16
16
|
nx: "nx";
|
|
17
|
+
"angular-library": "angular-library";
|
|
17
18
|
"nx-library": "nx-library";
|
|
18
|
-
analog: "analog";
|
|
19
19
|
}>;
|
|
20
20
|
appConfigFile: z.ZodString;
|
|
21
21
|
packageManager: z.ZodEnum<{
|
|
@@ -69,6 +69,16 @@ export declare function defaultAnswers(projectInfo: ProjectInfo, kind?: ProjectK
|
|
|
69
69
|
* does not treat `\` as a separator, so a Windows-style path collapsed to `.`
|
|
70
70
|
* and silently fell back to `src/app`.
|
|
71
71
|
*/
|
|
72
|
+
/** The answers a flag can give up front: `--css`, `--app-config`, `--base-color` and the two aliases. */
|
|
73
|
+
export type PresetAnswers = Partial<Pick<InitAnswers, 'globalCss' | 'appConfig' | 'theme' | 'componentsAlias' | 'utilsAlias'>>;
|
|
74
|
+
/**
|
|
75
|
+
* The defaults with whatever the flags already answered on top.
|
|
76
|
+
*
|
|
77
|
+
* Headless, that is the whole answer; in the wizard, it is what each question
|
|
78
|
+
* opens filled with. A library has no app.config, so `--app-config` does not
|
|
79
|
+
* apply there — writing it would register providers in a file init never edits.
|
|
80
|
+
*/
|
|
81
|
+
export declare function withPresets(answers: InitAnswers, presets?: PresetAnswers): InitAnswers;
|
|
72
82
|
export declare function deriveBaseUrl(appConfigFile: string): string;
|
|
73
83
|
export declare function buildConfig(answers: InitAnswers, packageManager: 'npm' | 'yarn' | 'pnpm' | 'bun'): Config;
|
|
74
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-prompter.d.ts","sourceRoot":"","sources":["../../../src/commands/init/config-prompter.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,gCAAgC,CAAC;AAIzF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU,mCAAmC,CAAC;AAE3D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBvB,CAAC;AAEH,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAmBD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,cAAiC,EACrC,WAAW,CAAC,EAAE,MAAM,GACnB,WAAW,CA4Bb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG3D;AAOD,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CA2BzG;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAE/D,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAO7F"}
|
|
1
|
+
{"version":3,"file":"config-prompter.d.ts","sourceRoot":"","sources":["../../../src/commands/init/config-prompter.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,gCAAgC,CAAC;AAIzF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU,mCAAmC,CAAC;AAE3D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBvB,CAAC;AAEH,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAmBD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,cAAiC,EACrC,WAAW,CAAC,EAAE,MAAM,GACnB,WAAW,CA4Bb;AAED;;;;;;;;;;;GAWG;AACH,yGAAyG;AACzG,MAAM,MAAM,aAAa,GAAG,OAAO,CACjC,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,iBAAiB,GAAG,YAAY,CAAC,CAC1F,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,aAAkB,GAAG,WAAW,CAK1F;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG3D;AAOD,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CA2BzG;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAE/D,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAO7F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { candidateProjects, detectProjectKind, fallbackRootFor, isLibraryKind, libraryBaseUrl, libraryStylesPath, } from '
|
|
1
|
+
import { candidateProjects, detectProjectKind, fallbackRootFor, isLibraryKind, libraryBaseUrl, libraryStylesPath, } from './project-kind.js';
|
|
2
2
|
import { SOURCE_ICON_FAMILY } from '../../core/icons/index.js';
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { readFile } from 'node:fs/promises';
|
|
@@ -71,17 +71,18 @@ export function defaultAnswers(projectInfo, kind = detectProjectKind(projectInfo
|
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* The defaults with whatever the flags already answered on top.
|
|
75
75
|
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* app.config is exactly the root of the app's code.
|
|
80
|
-
*
|
|
81
|
-
* Separators are normalized before `dirname`, not after: on POSIX `path.dirname`
|
|
82
|
-
* does not treat `\` as a separator, so a Windows-style path collapsed to `.`
|
|
83
|
-
* and silently fell back to `src/app`.
|
|
76
|
+
* Headless, that is the whole answer; in the wizard, it is what each question
|
|
77
|
+
* opens filled with. A library has no app.config, so `--app-config` does not
|
|
78
|
+
* apply there — writing it would register providers in a file init never edits.
|
|
84
79
|
*/
|
|
80
|
+
export function withPresets(answers, presets = {}) {
|
|
81
|
+
const defined = Object.fromEntries(Object.entries(presets).filter(([, value]) => value));
|
|
82
|
+
if (isLibraryKind(answers.kind))
|
|
83
|
+
delete defined.appConfig;
|
|
84
|
+
return { ...answers, ...defined };
|
|
85
|
+
}
|
|
85
86
|
export function deriveBaseUrl(appConfigFile) {
|
|
86
87
|
const dir = path.posix.dirname(appConfigFile.replace(/\\/g, '/'));
|
|
87
88
|
return dir === '.' ? 'src/app' : dir;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-prompter.js","sourceRoot":"","sources":["../../../src/commands/init/config-prompter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config-prompter.js","sourceRoot":"","sources":["../../../src/commands/init/config-prompter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/commands/init/dependencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/commands/init/dependencies.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAKlF,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C/G"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { syncLibraryPeerDependencies } from './library-peers.js';
|
|
2
|
+
import { bundlerFor, isLibraryKind } from './project-kind.js';
|
|
2
3
|
import { iconPackagesFor } from '../../core/icons/index.js';
|
|
3
4
|
import { pinAllForAngular } from '../../utils/angular-compat.js';
|
|
4
5
|
import { getProjectInfo } from '../../utils/get-project-info.js';
|
|
@@ -33,10 +34,13 @@ export async function installDependencies(cwd, config, projectInfo) {
|
|
|
33
34
|
]);
|
|
34
35
|
if (!missingDeps.length && !missingDevDeps.length) {
|
|
35
36
|
logger.info('All dependencies are already installed.');
|
|
36
|
-
return;
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
else {
|
|
39
|
+
await installPackagesWithRetry(missingDeps, cwd, config.packageManager, false);
|
|
40
|
+
await installPackagesWithRetry(missingDevDeps, cwd, config.packageManager, true);
|
|
41
|
+
}
|
|
42
|
+
// A library's components import these, and the theme it ships loads Tailwind and its plugin.
|
|
43
|
+
await syncLibraryPeerDependencies(cwd, config, [...deps, ...tailwindPackages(config.projectType)]);
|
|
40
44
|
}
|
|
41
45
|
/**
|
|
42
46
|
* What Tailwind needs to run in that kind of project.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/commands/init/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAoB,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAElG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,MAAc,EAAE,WAAyB;IAC9F,MAAM,IAAI,GAAG,WAAW,IAAI,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAExD,+EAA+E;IAC/E,6EAA6E;IAC7E,wBAAwB;IACxB,EAAE;IACF,2EAA2E;IAC3E,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,IAAI,GAAG,gBAAgB,CAC3B;QACE,cAAc;QACd,0BAA0B;QAC1B,MAAM;QACN,gBAAgB;QAChB,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;KAChD,EACD,IAAI,CAAC,cAAc,CACpB,CAAC;IACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAErD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC3F,CAAC;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,uBAAuB,CAAC,IAAI,EAAE,GAAG,CAAC;QAClC,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC;KACtC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/commands/init/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAoB,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAElG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,MAAc,EAAE,WAAyB;IAC9F,MAAM,IAAI,GAAG,WAAW,IAAI,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAExD,+EAA+E;IAC/E,6EAA6E;IAC7E,wBAAwB;IACxB,EAAE;IACF,2EAA2E;IAC3E,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,IAAI,GAAG,gBAAgB,CAC3B;QACE,cAAc;QACd,0BAA0B;QAC1B,MAAM;QACN,gBAAgB;QAChB,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;KAChD,EACD,IAAI,CAAC,cAAc,CACpB,CAAC;IACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAErD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC3F,CAAC;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,uBAAuB,CAAC,IAAI,EAAE,GAAG,CAAC;QAClC,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC;KACtC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,wBAAwB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAC/E,MAAM,wBAAwB,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;IAED,6FAA6F;IAC7F,MAAM,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,gBAAgB,CAAC,IAA2B;IACnD,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;IAEtD,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,MAAM;QAChC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,mBAAmB,CAAC;QAClC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,IAAI,SA0Eb,CAAC"}
|
package/commands/init/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { buildConfig, defaultAnswers, inspectCssFile } from '
|
|
2
|
-
import { candidateProjects, detectProjectKind, isLibraryKind, PROJECT_KINDS, } from '
|
|
3
|
-
import { buildInitSteps } from '
|
|
4
|
-
import { runInitWizard } from '
|
|
1
|
+
import { buildConfig, defaultAnswers, inspectCssFile, withPresets, } from './config-prompter.js';
|
|
2
|
+
import { candidateProjects, detectProjectKind, isLibraryKind, PROJECT_KINDS, } from './project-kind.js';
|
|
3
|
+
import { buildInitSteps } from './steps.js';
|
|
4
|
+
import { runInitWizard } from './wizard.js';
|
|
5
5
|
import { isInteractive, printReport, WizardCancelledError } from '../../ui/index.js';
|
|
6
6
|
import { CliError } from '../../utils/errors.js';
|
|
7
7
|
import { getProjectInfo } from '../../utils/get-project-info.js';
|
|
@@ -9,6 +9,7 @@ import { loadIconCatalog } from '../../utils/icon-catalog.js';
|
|
|
9
9
|
import { logger, spinner } from '../../utils/logger.js';
|
|
10
10
|
import { detectPackageManager, suggestedRunner } from '../../utils/package-manager.js';
|
|
11
11
|
import { getRegistryUrl } from '../../utils/registry.js';
|
|
12
|
+
import { getAvailableThemes } from '../../utils/theme-selector.js';
|
|
12
13
|
import { Command } from 'commander';
|
|
13
14
|
import { existsSync } from 'node:fs';
|
|
14
15
|
import * as path from 'node:path';
|
|
@@ -19,12 +20,18 @@ export const init = new Command()
|
|
|
19
20
|
.option('-c, --cwd <cwd>', 'the working directory. defaults to the current directory.', process.cwd())
|
|
20
21
|
.option('-t, --type <type>', `the project type: ${PROJECT_KINDS.map(kind => kind.value).join(', ')}.`)
|
|
21
22
|
.option('-p, --project <name>', 'the workspace project to configure. defaults to the first compatible one.')
|
|
23
|
+
.option('--css <path>', 'the global stylesheet that receives the theme (in a library, the file init creates).')
|
|
24
|
+
.option('--app-config <path>', 'the app.config.ts that receives provideZard(). ignored for libraries.')
|
|
25
|
+
.option('--base-color <color>', `the theme base color: ${getAvailableThemes().join(', ')}.`)
|
|
26
|
+
.option('--components-alias <alias>', 'the import alias for components. defaults to @/shared/components.')
|
|
27
|
+
.option('--utils-alias <alias>', 'the import alias for utils. defaults to @/shared/utils.')
|
|
22
28
|
.action(async (options) => {
|
|
23
29
|
const cwd = path.resolve(options.cwd);
|
|
24
30
|
validateWorkingDirectory(cwd);
|
|
25
31
|
const projectInfo = await getProjectInfo(cwd);
|
|
26
32
|
validateAngularProject(projectInfo);
|
|
27
33
|
const kind = resolveKind(options.type);
|
|
34
|
+
const presets = resolvePresets(options);
|
|
28
35
|
const projectRoot = resolveProjectRoot(options.project, kind ?? detectProjectKind(projectInfo), projectInfo);
|
|
29
36
|
const isReInitializing = existsSync(path.resolve(cwd, 'components.json'));
|
|
30
37
|
const packageManager = await detectPackageManager(cwd);
|
|
@@ -43,6 +50,7 @@ export const init = new Command()
|
|
|
43
50
|
yes: options.yes,
|
|
44
51
|
kind,
|
|
45
52
|
projectRoot,
|
|
53
|
+
presets,
|
|
46
54
|
});
|
|
47
55
|
return;
|
|
48
56
|
}
|
|
@@ -56,6 +64,7 @@ export const init = new Command()
|
|
|
56
64
|
buildSteps,
|
|
57
65
|
presetKind: kind,
|
|
58
66
|
presetProjectRoot: projectRoot,
|
|
67
|
+
presetAnswers: presets,
|
|
59
68
|
});
|
|
60
69
|
reportSuccess(config, buildSteps(config), logs);
|
|
61
70
|
}
|
|
@@ -108,6 +117,24 @@ function resolveKind(value) {
|
|
|
108
117
|
}
|
|
109
118
|
return kind.value;
|
|
110
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* The answers given as flags.
|
|
122
|
+
*
|
|
123
|
+
* Every question the wizard asks has one, so CI — and anyone who already knows
|
|
124
|
+
* the answers — can configure a project without a terminal to draw on.
|
|
125
|
+
*/
|
|
126
|
+
function resolvePresets(options) {
|
|
127
|
+
if (options.baseColor && !getAvailableThemes().includes(options.baseColor)) {
|
|
128
|
+
throw new CliError(`Unknown base color "${options.baseColor}". Expected one of: ${getAvailableThemes().join(', ')}.`, 'UNKNOWN_BASE_COLOR');
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
globalCss: options.css,
|
|
132
|
+
appConfig: options.appConfig,
|
|
133
|
+
theme: options.baseColor,
|
|
134
|
+
componentsAlias: options.componentsAlias,
|
|
135
|
+
utilsAlias: options.utilsAlias,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
111
138
|
/** The root of the project asked for with `--project`, looked up among the compatible ones. */
|
|
112
139
|
function resolveProjectRoot(name, kind, projectInfo) {
|
|
113
140
|
if (!name)
|
|
@@ -131,12 +158,12 @@ async function runHeadless(options) {
|
|
|
131
158
|
throw new CliError('Running without an interactive terminal requires --yes, since init overwrites your global CSS.', 'NOT_INTERACTIVE');
|
|
132
159
|
}
|
|
133
160
|
const kind = options.kind ?? detectProjectKind(options.projectInfo);
|
|
134
|
-
const answers = defaultAnswers(options.projectInfo, kind, options.projectRoot);
|
|
161
|
+
const answers = withPresets(defaultAnswers(options.projectInfo, kind, options.projectRoot), options.presets);
|
|
135
162
|
const cssState = await inspectCssFile(options.cwd, answers.globalCss);
|
|
136
163
|
// In a library the theme CSS is created by init, so its absence is expected;
|
|
137
164
|
// in an application the file has to be there and wired into the build.
|
|
138
165
|
if (cssState === 'missing' && !isLibraryKind(answers.kind)) {
|
|
139
|
-
throw new CliError(`CSS file not found at: ${answers.globalCss}.
|
|
166
|
+
throw new CliError(`CSS file not found at: ${answers.globalCss}. Pass the right one with --css, or run init in an interactive terminal.`, 'CSS_NOT_FOUND');
|
|
140
167
|
}
|
|
141
168
|
const config = buildConfig(answers, options.packageManager);
|
|
142
169
|
const steps = options.buildSteps(config);
|
|
@@ -176,8 +203,9 @@ function nextStepsFor(config) {
|
|
|
176
203
|
return ['You can now add components using:'];
|
|
177
204
|
}
|
|
178
205
|
return [
|
|
179
|
-
'The consuming app still needs
|
|
180
|
-
|
|
206
|
+
'The consuming app still needs the Tailwind PostCSS pipeline (tailwindcss, @tailwindcss/postcss,',
|
|
207
|
+
'postcss, tailwindcss-animate and a .postcssrc.json), to register provideZard() in its',
|
|
208
|
+
`app.config.ts and to import the theme tokens from this library's ${path.basename(config.tailwind.css)}.`,
|
|
181
209
|
'',
|
|
182
210
|
'You can now add components using:',
|
|
183
211
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"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"}
|