@yuuvis/client-cli 19.9.0 → 19.10.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.
Files changed (69) hide show
  1. package/README.md +48 -0
  2. package/cli/commands/generate/theme.d.ts +6 -0
  3. package/cli/commands/generate/theme.js +65 -0
  4. package/cli/commands/generate/theme.js.map +1 -0
  5. package/cli/options/options-generate-theme.json +41 -0
  6. package/cli/utils.js.map +1 -1
  7. package/package.json +2 -1
  8. package/schematics/app-manifest.d.ts +1 -1
  9. package/schematics/app-manifest.js +1 -1
  10. package/schematics/app-manifest.js.map +1 -1
  11. package/schematics/commands/angular-json.d.ts +2 -2
  12. package/schematics/commands/angular-json.js +3 -16
  13. package/schematics/commands/angular-json.js.map +1 -1
  14. package/schematics/commands/app-config-ts.d.ts +12 -3
  15. package/schematics/commands/app-config-ts.js +76 -2
  16. package/schematics/commands/app-config-ts.js.map +1 -1
  17. package/schematics/commands/library-component.d.ts +4 -4
  18. package/schematics/commands/library-component.js +12 -16
  19. package/schematics/commands/library-component.js.map +1 -1
  20. package/schematics/commands/styles-scss.d.ts +52 -0
  21. package/schematics/commands/styles-scss.js +91 -0
  22. package/schematics/commands/styles-scss.js.map +1 -0
  23. package/schematics/commands/typescript-file.d.ts +10 -0
  24. package/schematics/commands/typescript-file.js +48 -1
  25. package/schematics/commands/typescript-file.js.map +1 -1
  26. package/schematics/factories/add-app/index.js +1 -1
  27. package/schematics/factories/add-app/index.js.map +1 -1
  28. package/schematics/factories/add-language/index.d.ts +1 -1
  29. package/schematics/factories/collection.json +5 -0
  30. package/schematics/factories/generate-app/index.js +6 -8
  31. package/schematics/factories/generate-app/index.js.map +1 -1
  32. package/schematics/factories/generate-theme/generate-theme.model.d.ts +15 -0
  33. package/schematics/factories/generate-theme/generate-theme.model.js +3 -0
  34. package/schematics/factories/generate-theme/generate-theme.model.js.map +1 -0
  35. package/schematics/factories/generate-theme/index.d.ts +3 -0
  36. package/schematics/factories/generate-theme/index.js +122 -0
  37. package/schematics/factories/generate-theme/index.js.map +1 -0
  38. package/schematics/factories/generate-theme/schema.json +59 -0
  39. package/schematics/files/_scripts/extract-client-version.js +4 -0
  40. package/schematics/files/_src_app/app.component.html.template +1 -0
  41. package/schematics/files/_src_app/app.component.ts.template +7 -7
  42. package/schematics/files/_src_app/app.config.ts.template +1 -1
  43. package/schematics/files/_src_app/app.markers.ts.template +1 -0
  44. package/schematics/files/_src_styles_theme/__themeName__.config.scss.template +113 -0
  45. package/schematics/files/_src_styles_theme/__themeName__.theme.scss.template +5 -0
  46. package/schematics/patches/impl/0003.patch.d.ts +2 -2
  47. package/schematics/patches/impl/0003.patch.js.map +1 -1
  48. package/schematics/patches/impl/0004.patch.d.ts +9 -0
  49. package/schematics/patches/impl/0004.patch.js +37 -0
  50. package/schematics/patches/impl/0004.patch.js.map +1 -0
  51. package/schematics/patches/impl/0005.patch.d.ts +9 -0
  52. package/schematics/patches/impl/0005.patch.js +39 -0
  53. package/schematics/patches/impl/0005.patch.js.map +1 -0
  54. package/schematics/project-metadata.d.ts +2 -2
  55. package/schematics/registry-config.d.ts +18 -0
  56. package/schematics/registry-config.js +111 -0
  57. package/schematics/registry-config.js.map +1 -0
  58. package/schematics/rules/clean-up-ng-app.js +0 -1
  59. package/schematics/rules/clean-up-ng-app.js.map +1 -1
  60. package/schematics/rules/copy-resources.d.ts +2 -1
  61. package/schematics/rules/copy-resources.js +15 -3
  62. package/schematics/rules/copy-resources.js.map +1 -1
  63. package/schematics/rules/generate-theme.d.ts +6 -0
  64. package/schematics/rules/generate-theme.js +25 -0
  65. package/schematics/rules/generate-theme.js.map +1 -0
  66. package/schematics/schematics-util.d.ts +9 -0
  67. package/schematics/schematics-util.js +199 -43
  68. package/schematics/schematics-util.js.map +1 -1
  69. package/schematics/types/main-json.d.ts +26 -26
package/README.md CHANGED
@@ -155,3 +155,51 @@ yuv patch apply <patchID>
155
155
  # short form
156
156
  yuv p a <patchID>
157
157
  ```
158
+
159
+ ### generate theme
160
+
161
+ Creates a custom Material Design 3 (M3) theme for your yuuvis client application. Generates SCSS files with color palettes and automatically integrates the theme into your application.
162
+
163
+ ```bash
164
+ yuv generate theme <name> --primaryColor <hex-color>
165
+
166
+ # short forms
167
+ yuv g theme <name> --primaryColor <hex-color>
168
+ yuv g t <name> --primaryColor <hex-color>
169
+ ```
170
+
171
+ The `<name>` argument is required and becomes the theme name used for file names and the CSS body class. If `--primaryColor` is omitted you will be prompted for it interactively.
172
+
173
+ #### Options
174
+
175
+ **Required:**
176
+ - `<name>`: Positional argument — the theme name (used for file names and CSS class names).
177
+ - `--primaryColor`: The primary hex color code **without** the leading `#`. Prompted interactively if omitted.
178
+
179
+ **Optional:**
180
+ - `--secondaryColor`: Hex color for the secondary palette without `#`. If omitted, derived from the primary color.
181
+ - `--tertiaryColor`: Hex color for the tertiary palette without `#`. If omitted, derived from the primary color.
182
+ - `--neutralColor`: Hex color for the neutral palette without `#`. If omitted, derived from the primary color.
183
+ - `--neutralVariantColor`: Hex color for the neutral variant palette without `#`. If omitted, derived from the primary color.
184
+ - `--errorColor`: Hex color for the error palette without `#`. If omitted, uses the Material default.
185
+ - `--hasDarkTheme`: Generate a dark variant of the theme. Default: `true`.
186
+ - `--hasLightTheme`: Generate a light variant of the theme. Default: `true`.
187
+ - `--includeHighContrast`: Generate high contrast override theme mixins. Default: `false`.
188
+
189
+ #### What Gets Generated
190
+
191
+ Running the command creates the following files (the target application is detected automatically from the workspace):
192
+
193
+ ```
194
+ src/styles/<name>/
195
+ ├── <name>_theme-colors.scss # M3 tonal palettes (via @angular/material)
196
+ ├── <name>.config.scss # Material theme configuration and yuuvis token overrides
197
+ └── <name>.theme.scss # Theme entry file — applies the theme to body.<name>
198
+ ```
199
+
200
+ It also automatically updates:
201
+ - `src/styles.scss` — adds the theme import
202
+ - `src/app/app.config.ts` — adds/updates the `provideYuvCustomTheme` provider (with `label`, `description`, `hasDarkTheme`, `hasLightTheme`)
203
+ - `src/app/app.markers.ts` — adds `marker()` calls for the theme's label and description i18n keys (file is created if absent)
204
+
205
+ For full details see [GENERATE-THEME.md](../GENERATE-THEME.md).
@@ -0,0 +1,6 @@
1
+ import { CommandBuilder, Options } from 'yargs';
2
+ export declare const command: string;
3
+ export declare const aliases: string[];
4
+ export declare const desc: string;
5
+ export declare const builder: CommandBuilder<Options>;
6
+ export declare const handler: (argv: any) => Promise<void>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.handler = exports.builder = exports.desc = exports.aliases = exports.command = void 0;
16
+ const child_process_1 = require("child_process");
17
+ const utils_1 = require("../../utils");
18
+ const chalk_1 = __importDefault(require("chalk"));
19
+ const inquirer_1 = __importDefault(require("inquirer"));
20
+ const options_generate_theme_json_1 = __importDefault(require("../../options/options-generate-theme.json"));
21
+ exports.command = 'theme <name>';
22
+ exports.aliases = ['t'];
23
+ exports.desc = 'Generate a new yuuvis client theme.';
24
+ const HEX_COLOR_REGEX = /^[0-9A-Fa-f]{6}$/;
25
+ function isValidHexColor(value) {
26
+ return HEX_COLOR_REGEX.test(value);
27
+ }
28
+ const builder = (yargs) => {
29
+ return yargs.string('theme').version(false).options(options_generate_theme_json_1.default);
30
+ };
31
+ exports.builder = builder;
32
+ const handler = (argv) => __awaiter(void 0, void 0, void 0, function* () {
33
+ if (!argv.primaryColor) {
34
+ const response = yield inquirer_1.default.prompt([
35
+ {
36
+ type: "input",
37
+ name: "primaryColor",
38
+ message: "Specify the primary color (hex code without #, e.g., 'FF5733'):",
39
+ validate: (input) => /^[0-9A-Fa-f]{6}$/.test(input) || "Please enter a valid 6-character hex color code (e.g., 'FF5733').",
40
+ },
41
+ ]);
42
+ argv.primaryColor = argv['primary-color'] = String(response.primaryColor);
43
+ }
44
+ const colorOptions = [
45
+ { key: 'primaryColor', label: '--primaryColor' },
46
+ { key: 'secondaryColor', label: '--secondaryColor' },
47
+ { key: 'tertiaryColor', label: '--tertiaryColor' },
48
+ { key: 'neutralColor', label: '--neutralColor' },
49
+ { key: 'neutralVariantColor', label: '--neutralVariantColor' },
50
+ { key: 'errorColor', label: '--errorColor' },
51
+ ];
52
+ for (const { key, label } of colorOptions) {
53
+ const value = argv[key];
54
+ if (value !== undefined && !isValidHexColor(String(value))) {
55
+ console.error(chalk_1.default.red(`Invalid hex color for ${label}: '${value}'. Please provide a 6-character hex code without '#' (e.g. 'FF5733').`));
56
+ process.exit(1);
57
+ }
58
+ }
59
+ (0, child_process_1.execSync)(`${(0, utils_1.getSchematicsBin)()} @yuuvis/client-cli:generate-theme ${(0, utils_1.serializeOptions)(argv)}`, {
60
+ cwd: process.cwd(),
61
+ stdio: 'inherit'
62
+ });
63
+ });
64
+ exports.handler = handler;
65
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../../src/cli/commands/generate/theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAAyC;AAEzC,uCAAiE;AACjE,kDAA0B;AAC1B,wDAAgC;AAEhC,4GAAgE;AAEnD,QAAA,OAAO,GAAW,cAAc,CAAC;AACjC,QAAA,OAAO,GAAa,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAW,qCAAqC,CAAC;AAElE,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAE3C,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAEM,MAAM,OAAO,GAA4B,CAAC,KAAU,EAAE,EAAE;IAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qCAAO,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEK,MAAM,OAAO,GAAG,CAAO,IAAS,EAAE,EAAE;IACzC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACrC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,iEAAiE;gBAC1E,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAC1B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,mEAAmE;aACxG;SACF,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,YAAY,GAA0C;QAC1D,EAAE,GAAG,EAAE,cAAc,EAAS,KAAK,EAAE,gBAAgB,EAAE;QACvD,EAAE,GAAG,EAAE,gBAAgB,EAAO,KAAK,EAAE,kBAAkB,EAAE;QACzD,EAAE,GAAG,EAAE,eAAe,EAAQ,KAAK,EAAE,iBAAiB,EAAE;QACxD,EAAE,GAAG,EAAE,cAAc,EAAS,KAAK,EAAE,gBAAgB,EAAE;QACvD,EAAE,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,uBAAuB,EAAE;QAC9D,EAAE,GAAG,EAAE,YAAY,EAAW,KAAK,EAAE,cAAc,EAAE;KACtD,CAAC;IAEF,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM,KAAK,uEAAuE,CAAC,CAAC,CAAC;YAC3I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAA,wBAAQ,EAAC,GAAG,IAAA,wBAAgB,GAAE,sCAAsC,IAAA,wBAAgB,EAAC,IAAI,CAAC,EAAE,EAAE;QAC5F,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAnCW,QAAA,OAAO,WAmClB"}
@@ -0,0 +1,41 @@
1
+ {
2
+ "primaryColor": {
3
+ "description": "Hex color code for the primary Angular Material color palette (without the leading #, e.g. 'FF5733').",
4
+ "type": "string"
5
+ },
6
+ "secondaryColor": {
7
+ "type": "string",
8
+ "description": "Hex color code for the secondary Angular Material color palette (without the leading #). Defaults to a neutral gray."
9
+ },
10
+ "tertiaryColor": {
11
+ "type": "string",
12
+ "description": "Hex color code for the tertiary Angular Material color palette (without the leading #). Defaults to a neutral gray."
13
+ },
14
+ "neutralColor": {
15
+ "type": "string",
16
+ "description": "Hex color code for the neutral Angular Material color palette (without the leading #). Defaults to a neutral gray."
17
+ },
18
+ "neutralVariantColor": {
19
+ "type": "string",
20
+ "description": "Hex color code for the neutral variant Angular Material color palette (without the leading #). Defaults to a neutral gray."
21
+ },
22
+ "errorColor": {
23
+ "type": "string",
24
+ "description": "Hex color code for the error Angular Material color palette (without the leading #). Defaults to a red."
25
+ },
26
+ "includeHighContrast": {
27
+ "type": "boolean",
28
+ "default": false,
29
+ "description": "Include high contrast override theme mixins in the generated theme."
30
+ },
31
+ "hasDarkTheme": {
32
+ "type": "boolean",
33
+ "default": true,
34
+ "description": "Generate a dark variant of the theme."
35
+ },
36
+ "hasLightTheme": {
37
+ "type": "boolean",
38
+ "default": true,
39
+ "description": "Generate a light variant of the theme."
40
+ }
41
+ }
package/cli/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":";;AAGA,4CAEC;AAOD,4CAaC;AAOD,8CAiBC;AAjDD,2BAAgC;AAChC,+BAAwD;AAExD,SAAgB,gBAAgB;IAC9B,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,OAAY;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,6BAA6B;SAC5E,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAE,2BAA2B;SACzE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAK,wBAAwB;SACvE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,KAAK;gBAAE,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,oCAAoC;YAClE,OAAO,EAAE,CAAC,CAAC,gCAAgC;QAC7C,CAAC;QACD,OAAO,KAAK,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,mCAAmC;IACnE,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,SAAiB;IACjD,MAAM,YAAY,GAAG,cAAc,CAAA;IACnC,IAAI,WAAW,GAAG,IAAA,cAAO,EAAC,SAAS,CAAC,CAAC;IAErC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE,CAAC;YAChC,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,MAAM,UAAU,GAAG,IAAA,cAAO,EAAC,WAAW,CAAC,CAAC;QACxC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM;QACR,CAAC;QACD,WAAW,GAAG,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":";;AAGA,4CAEC;AAOD,4CAaC;AAOD,8CAiBC;AAjDD,2BAAgC;AAChC,+BAA8C;AAE9C,SAAgB,gBAAgB;IAC9B,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,OAAY;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,6BAA6B;SAC5E,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,2BAA2B;SACxE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,wBAAwB;SACnE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,KAAK;gBAAE,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,oCAAoC;YAClE,OAAO,EAAE,CAAC,CAAC,gCAAgC;QAC7C,CAAC;QACD,OAAO,KAAK,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,mCAAmC;IACnE,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,SAAiB;IACjD,MAAM,YAAY,GAAG,cAAc,CAAC;IACpC,IAAI,WAAW,GAAG,IAAA,cAAO,EAAC,SAAS,CAAC,CAAC;IAErC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE,CAAC;YAChC,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,MAAM,UAAU,GAAG,IAAA,cAAO,EAAC,WAAW,CAAC,CAAC;QACxC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM;QACR,CAAC;QACD,WAAW,GAAG,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuuvis/client-cli",
3
- "version": "19.9.0",
3
+ "version": "19.10.0",
4
4
  "main": "index.js",
5
5
  "schematics": "./schematics/factories/collection.json",
6
6
  "bin": {
@@ -30,6 +30,7 @@
30
30
  "semver": "^7.7.2",
31
31
  "typescript": "^5.8.3",
32
32
  "yargs": "^17.7.2",
33
+ "npm-registry-fetch": "^18.0.0",
33
34
  "zod": "^3.24.2"
34
35
  }
35
36
  }
@@ -84,6 +84,6 @@ declare const ManifestSchema: z.ZodObject<{
84
84
  extension?: string | undefined;
85
85
  }>;
86
86
  export type AppManifest = z.infer<typeof ManifestSchema>;
87
- export declare function parseManifest(content: string): AppManifest;
87
+ export declare function parseManifest(content: string | unknown): AppManifest;
88
88
  export declare function writeManifest(filePath: string, manifest: AppManifest): void;
89
89
  export {};
@@ -28,7 +28,7 @@ const ManifestSchema = zod_1.z.object({
28
28
  extension: zod_1.z.string().optional()
29
29
  });
30
30
  function parseManifest(content) {
31
- const jsonData = JSON.parse(content);
31
+ const jsonData = typeof content === 'string' ? JSON.parse(content) : content;
32
32
  return ManifestSchema.parse(jsonData);
33
33
  }
34
34
  function writeManifest(filePath, manifest) {
@@ -1 +1 @@
1
- {"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../../src/schematics/app-manifest.ts"],"names":[],"mappings":";;;;;AA4BA,sCAGC;AAED,sCAMC;AAvCD,4CAAoB;AACpB,6BAAwB;AAExB,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;IACtB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE;IACrB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH,SAAgB,aAAa,CAAC,OAAe;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB,EAAE,QAAqB;IACnE,IAAI,CAAC;QACH,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../../src/schematics/app-manifest.ts"],"names":[],"mappings":";;;;;AA4BA,sCAGC;AAED,sCAMC;AAvCD,4CAAoB;AACpB,6BAAwB;AAExB,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;IACtB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE;IACrB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH,SAAgB,aAAa,CAAC,OAAyB;IACrD,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7E,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB,EAAE,QAAqB;IACnE,IAAI,CAAC;QACH,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -98,10 +98,10 @@ export declare class AngularJsonEditor {
98
98
  /**
99
99
  * Creates a new AngularJsonEditor instance.
100
100
  * @param tree The Angular DevKit Tree to operate on.
101
- * @param path The path to the angular.json file. Defaults to 'angular.json'.
101
+ * @param path The path to the angular.json file. Defaults to '/angular.json'.
102
102
  * @returns A Promise that resolves to a new AngularJsonEditor instance.
103
103
  */
104
- static create(tree: Tree, path?: string): Promise<AngularJsonEditor>;
104
+ static create(tree: Tree, path?: string): AngularJsonEditor;
105
105
  /**
106
106
  * Executes the given command on the angular.json file.
107
107
  * @param command The command to execute on the angular.json file.
@@ -1,17 +1,7 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.AngularJsonEditor = exports.UpdateStylePreprocessorOptionsForTestsCommand = exports.SetStyleForProjectCommand = exports.UpdateDevFileReplacementsForProjectCommand = exports.UpdateInitialBudgetForProjectCommand = exports.AddAllowedCommonJsDependenciesToProjectCommand = exports.AddBuildOptionsScriptsToProjectCommand = exports.AddBuildOptionsAssetsToProjectCommand = exports.CompositeAngularJsonCommand = void 0;
13
4
  const schematics_1 = require("@angular-devkit/schematics");
14
- const project_util_1 = require("../project-util");
15
5
  /**
16
6
  * Composite command that executes multiple AngularJsonCommand instances.
17
7
  */
@@ -183,14 +173,11 @@ class AngularJsonEditor {
183
173
  /**
184
174
  * Creates a new AngularJsonEditor instance.
185
175
  * @param tree The Angular DevKit Tree to operate on.
186
- * @param path The path to the angular.json file. Defaults to 'angular.json'.
176
+ * @param path The path to the angular.json file. Defaults to '/angular.json'.
187
177
  * @returns A Promise that resolves to a new AngularJsonEditor instance.
188
178
  */
189
- static create(tree, path) {
190
- return __awaiter(this, void 0, void 0, function* () {
191
- const angularJsonPath = path !== null && path !== void 0 ? path : (yield (0, project_util_1.getAngularJsonPath)(tree));
192
- return new AngularJsonEditor(tree, angularJsonPath);
193
- });
179
+ static create(tree, path = '/angular.json') {
180
+ return new AngularJsonEditor(tree, path);
194
181
  }
195
182
  /**
196
183
  * Executes the given command on the angular.json file.
@@ -1 +1 @@
1
- {"version":3,"file":"angular-json.js","sourceRoot":"","sources":["../../../src/schematics/commands/angular-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-json.js","sourceRoot":"","sources":["../../../src/schematics/commands/angular-json.ts"],"names":[],"mappings":";;;AAAA,2DAAuE;AAgBvE;;GAEG;AACH,MAAa,2BAA2B;IACtC,YAA6B,QAA8B;QAA9B,aAAQ,GAAR,QAAQ,CAAsB;IAAG,CAAC;IAE/D;;;OAGG;IACH,OAAO,CAAC,WAAgB;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE,CAAC;CACF;AAVD,kEAUC;AAED;;GAEG;AACH,MAAa,qCAAqC;IAChD,YAA6B,WAAmB,EAAmB,MAA2B;QAAjE,gBAAW,GAAX,WAAW,CAAQ;QAAmB,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAClG,OAAO,CAAC,WAAgB;;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,KAAK,0CAAE,OAAO,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;CACF;AAVD,sFAUC;AAED;;GAEG;AACH,MAAa,sCAAsC;IACjD,YAA6B,WAAmB,EAAmB,OAAiB;QAAvD,gBAAW,GAAX,WAAW,CAAQ;QAAmB,YAAO,GAAP,OAAO,CAAU;IAAG,CAAC;IACxF,OAAO,CAAC,WAAgB;;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,KAAK,0CAAE,OAAO,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAVD,wFAUC;AAED;;GAEG;AACH,MAAa,8CAA8C;IACzD,YAA6B,WAAmB,EAAmB,YAAsB;QAA5D,gBAAW,GAAX,WAAW,CAAQ;QAAmB,iBAAY,GAAZ,YAAY,CAAU;IAAG,CAAC;IAC7F,OAAO,CAAC,WAAgB;;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,KAAK,0CAAE,OAAO,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,CAAC;YAC9C,YAAY,CAAC,2BAA2B,GAAG,EAAE,CAAC;QAChD,CAAC;QACD,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC;CACF;AAVD,wGAUC;AAED;;GAEG;AACH,MAAa,oCAAoC;IAC/C,YAA6B,WAAmB,EAAmB,MAA0D;QAAhG,gBAAW,GAAX,WAAW,CAAQ;QAAmB,WAAM,GAAN,MAAM,CAAoD;IAAG,CAAC;IACjI,OAAO,CAAC,WAAgB;;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,KAAK,0CAAE,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACrE,IAAI,aAAa,EAAE,CAAC;YACjB,CAAC,gBAAgB,EAAE,cAAc,CAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACnC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAdD,oFAcC;AAED;;GAEG;AACH,MAAa,0CAA0C;IACrD,YAA6B,WAAmB,EAAmB,gBAAqD;QAA3F,gBAAW,GAAX,WAAW,CAAQ;QAAmB,qBAAgB,GAAhB,gBAAgB,CAAqC;IAAG,CAAC;IAC5H,OAAO,CAAC,WAAgB;;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAA,MAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,KAAK,0CAAE,cAAc,0CAAE,WAAW,CAAC;QACxE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,gCAAmB,CAAC,oDAAoD,IAAI,CAAC,WAAW,oBAAoB,CAAC,CAAC;QAC1H,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAChC,SAAS,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5D,CAAC;CACF;AAbD,gGAaC;AAED;;GAEG;AACH,MAAa,yBAAyB;IACpC,YAA6B,WAAmB,EAAmB,KAAqB;QAA3D,gBAAW,GAAX,WAAW,CAAQ;QAAmB,UAAK,GAAL,KAAK,CAAgB;IAAG,CAAC;IAC5F,OAAO,CAAC,WAAgB;;QACtB,MAAM,sBAAsB,GAAG,+BAA+B,CAAC;QAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAE5C,UAAU,CAAC,sBAAsB,CAAC,mCAC7B,CAAC,MAAA,UAAU,CAAC,sBAAsB,CAAC,mCAAI,EAAE,CAAC,KAC7C,KAAK,EAAE,IAAI,CAAC,KAAK,GAClB,CAAC;QACF,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAClC,CAAC;CACF;AAbD,8DAaC;AAED,MAAa,6CAA6C;IACxD,YAA6B,WAAmB,EAAmB,YAAsB;QAA5D,gBAAW,GAAX,WAAW,CAAQ;QAAmB,iBAAY,GAAZ,YAAY,CAAU;IAAG,CAAC;IAC7F,OAAO,CAAC,WAAgB;;;QACtB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,SAAS,0CAAE,IAAI,CAAA,EAAE,CAAC;YAC7B,MAAM,IAAI,gCAAmB,CAAC,sCAAsC,IAAI,CAAC,WAAW,oBAAoB,CAAC,CAAC;QAC5G,CAAC;QAED,YAAA,OAAO,CAAC,SAAS,CAAC,IAAI,EAAC,OAAO,uCAAP,OAAO,GAAK,EAAE,EAAC;QACtC,YAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAC,wBAAwB,uCAAxB,wBAAwB,GAAK,EAAE,YAAY,EAAE,EAAE,EAAE,EAAC;QACjF,YAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAC,YAAY,uCAAZ,YAAY,GAAK,EAAE,EAAC;QAE5E,0CAA0C;QAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApBD,sGAoBC;AAED;;GAEG;AACH,MAAa,iBAAiB;IAC5B,YAAqC,IAAU,EAAmB,IAAY;QAAzC,SAAI,GAAJ,IAAI,CAAM;QAAmB,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAElF;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,IAAU,EAAE,OAAe,eAAe;QACtD,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,OAA2B;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACK,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,gCAAmB,CAAC,6BAA6B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,gCAAmB,CAAC,kCAAkC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACK,IAAI,CAAC,WAAgB;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;CACF;AAzDD,8CAyDC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,WAAgB,EAAE,WAAmB;IACvD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,gCAAmB,CAAC,YAAY,WAAW,8BAA8B,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,6 +1,6 @@
1
- import ts from "typescript";
2
- import { TypeScriptFileCommand } from "./typescript-file";
3
- import { UpdateRecorder } from "@angular-devkit/schematics";
1
+ import ts from 'typescript';
2
+ import { TypeScriptFileCommand } from './typescript-file';
3
+ import { UpdateRecorder } from '@angular-devkit/schematics';
4
4
  export interface AppConfigTsCommand extends TypeScriptFileCommand {
5
5
  }
6
6
  export declare class AddShellExtensionsImportCommand implements AppConfigTsCommand {
@@ -9,3 +9,12 @@ export declare class AddShellExtensionsImportCommand implements AppConfigTsComma
9
9
  constructor(appId: string, extensionsFileName: string);
10
10
  execute(sourceFile: ts.SourceFile, recorder: UpdateRecorder, filePath: string): void;
11
11
  }
12
+ export declare class AddOrUpdateProvideYuvCustomThemeCommand implements AppConfigTsCommand {
13
+ private readonly themeName;
14
+ private readonly label;
15
+ private readonly description;
16
+ private readonly hasDarkTheme;
17
+ private readonly hasLightTheme;
18
+ constructor(themeName: string, label: string, description: string, hasDarkTheme: boolean, hasLightTheme: boolean);
19
+ execute(sourceFile: ts.SourceFile, recorder: UpdateRecorder, filePath: string): void;
20
+ }
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AddShellExtensionsImportCommand = void 0;
6
+ exports.AddOrUpdateProvideYuvCustomThemeCommand = exports.AddShellExtensionsImportCommand = void 0;
7
7
  const typescript_1 = __importDefault(require("typescript"));
8
8
  const schematics_1 = require("@angular-devkit/schematics");
9
9
  const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
@@ -24,7 +24,7 @@ class AddShellExtensionsImportCommand {
24
24
  throw new schematics_1.SchematicsException(`importShellExtensions([...]) does not contain a valid array in ${filePath}.`);
25
25
  }
26
26
  // check if the entry already exists
27
- if (argumentArray.elements.some(el => typescript_1.default.isObjectLiteralExpression(el) &&
27
+ if (argumentArray.elements.some((el) => typescript_1.default.isObjectLiteralExpression(el) &&
28
28
  el.properties.some(p => typescript_1.default.isPropertyAssignment(p) &&
29
29
  p.name.getText() === 'id' &&
30
30
  p.initializer.getText().replace(/['"]/g, '') === `${this.appId}.extension`) &&
@@ -41,4 +41,78 @@ class AddShellExtensionsImportCommand {
41
41
  }
42
42
  }
43
43
  exports.AddShellExtensionsImportCommand = AddShellExtensionsImportCommand;
44
+ class AddOrUpdateProvideYuvCustomThemeCommand {
45
+ constructor(themeName, label, description, hasDarkTheme, hasLightTheme) {
46
+ this.themeName = themeName;
47
+ this.label = label;
48
+ this.description = description;
49
+ this.hasDarkTheme = hasDarkTheme;
50
+ this.hasLightTheme = hasLightTheme;
51
+ }
52
+ execute(sourceFile, recorder, filePath) {
53
+ // Find the providers array in appConfig
54
+ const variableStatements = (0, ast_utils_1.findNodes)(sourceFile, typescript_1.default.SyntaxKind.VariableStatement);
55
+ const appConfigVariable = variableStatements.find((v) => v.declarationList.declarations.some((d) => d.name.text === 'appConfig'));
56
+ if (!appConfigVariable) {
57
+ throw new schematics_1.SchematicsException(`Cannot find 'appConfig' declaration in ${filePath}`);
58
+ }
59
+ const appConfigInit = appConfigVariable.declarationList.declarations[0].initializer;
60
+ if (!appConfigInit || !typescript_1.default.isObjectLiteralExpression(appConfigInit)) {
61
+ throw new schematics_1.SchematicsException(`'appConfig' is not initialized with an object in ${filePath}`);
62
+ }
63
+ // Find the providers property
64
+ const providersProperty = appConfigInit.properties.find((prop) => typescript_1.default.isPropertyAssignment(prop)
65
+ && prop.name.text === 'providers');
66
+ if (!providersProperty) {
67
+ throw new schematics_1.SchematicsException(`Cannot find 'providers' array in appConfig in ${filePath}`);
68
+ }
69
+ const providersArray = providersProperty.initializer;
70
+ if (!typescript_1.default.isArrayLiteralExpression(providersArray)) {
71
+ throw new schematics_1.SchematicsException(`'providers' is not an array in ${filePath}`);
72
+ }
73
+ // Find if provideYuvCustomTheme already exists
74
+ const callExpressions = (0, ast_utils_1.findNodes)(providersArray, typescript_1.default.SyntaxKind.CallExpression);
75
+ const provideYuvCustomThemeCall = callExpressions.find((node) => node.expression.getText() === 'provideYuvCustomTheme');
76
+ const themeObject = `{
77
+ key: '${this.themeName}',
78
+ label: '${this.label}',
79
+ description: '${this.description}',
80
+ hasDarkTheme: ${this.hasDarkTheme},
81
+ hasLightTheme: ${this.hasLightTheme}
82
+ }`;
83
+ if (!provideYuvCustomThemeCall) {
84
+ // Add new provideYuvCustomTheme call
85
+ const insertPosition = providersArray.elements.end;
86
+ const prefix = providersArray.elements.length > 0 ? ',\n ' : '\n ';
87
+ const newCall = `provideYuvCustomTheme([${themeObject}])`;
88
+ const insertChange = new change_1.InsertChange(filePath, insertPosition, `${prefix}${newCall}`);
89
+ (0, change_1.applyToUpdateRecorder)(recorder, [insertChange]);
90
+ }
91
+ else {
92
+ // Update existing provideYuvCustomTheme call
93
+ const argumentArray = provideYuvCustomThemeCall.arguments[0];
94
+ if (!typescript_1.default.isArrayLiteralExpression(argumentArray)) {
95
+ throw new schematics_1.SchematicsException(`provideYuvCustomTheme([...]) does not contain a valid array in ${filePath}.`);
96
+ }
97
+ // Check if theme already exists
98
+ const themeExists = argumentArray.elements.some((element) => {
99
+ if (!typescript_1.default.isObjectLiteralExpression(element))
100
+ return false;
101
+ return element.properties.some((prop) => typescript_1.default.isPropertyAssignment(prop) &&
102
+ prop.name.text === 'key' &&
103
+ typescript_1.default.isStringLiteral(prop.initializer) &&
104
+ prop.initializer.text === this.themeName);
105
+ });
106
+ if (themeExists) {
107
+ return; // Theme already exists, nothing to do
108
+ }
109
+ // Add new theme to existing array
110
+ const insertPosition = argumentArray.elements.end;
111
+ const prefix = argumentArray.elements.length > 0 ? ',\n ' : '\n ';
112
+ const insertChange = new change_1.InsertChange(filePath, insertPosition, `${prefix}${themeObject}`);
113
+ (0, change_1.applyToUpdateRecorder)(recorder, [insertChange]);
114
+ }
115
+ }
116
+ }
117
+ exports.AddOrUpdateProvideYuvCustomThemeCommand = AddOrUpdateProvideYuvCustomThemeCommand;
44
118
  //# sourceMappingURL=app-config-ts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-config-ts.js","sourceRoot":"","sources":["../../../src/schematics/commands/app-config-ts.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAE5B,2DAAiF;AACjF,qEAAkE;AAClE,+DAAyF;AAIzF,MAAa,+BAA+B;IAC1C,YAA6B,KAAa,EAAmB,kBAA0B;QAA1D,UAAK,GAAL,KAAK,CAAQ;QAAmB,uBAAkB,GAAlB,kBAAkB,CAAQ;IAAG,CAAC;IAE3F,OAAO,CAAC,UAAyB,EAAE,QAAwB,EAAE,QAAe;QAC1E,MAAM,eAAe,GAAG,IAAA,qBAAS,EAAC,UAAqB,EAAE,oBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACvF,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAC1C,CAAC,IAAI,EAAE,EAAE,CAAE,IAA0B,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,uBAAuB,CACvF,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,gCAAmB,CAAC,kDAAkD,QAAQ,GAAG,CAAC,CAAC;QAC/F,CAAC;QAED,MAAM,aAAa,GAAI,eAAqC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,oBAAE,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,gCAAmB,CAAC,kEAAkE,QAAQ,GAAG,CAAC,CAAC;QAC/G,CAAC;QAED,oCAAoC;QACpC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAC7B,EAAE,CAAC,EAAE,CAAC,oBAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,UAAU,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,CAAC,oBAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI;gBACzB,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,CAC3E;YACD,EAAE,CAAC,UAAU,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,CAAC,oBAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,WAAW;gBAChC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,kBAAkB,CACpD,CACF,EAAE,CAAC;YACF,OAAO,CAAC,uCAAuC;QACjD,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,KAAK,2BAA2B,IAAI,CAAC,kBAAkB,IAAI,CAAC;QAC7F,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,GAAG,SAAS,EAAE,CAAC,CAAC;QACzF,IAAA,8BAAqB,EAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAClD,CAAC;CACF;AAzCD,0EAyCC"}
1
+ {"version":3,"file":"app-config-ts.js","sourceRoot":"","sources":["../../../src/schematics/commands/app-config-ts.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,10 @@ export declare class AddImportToComponentDecoratorCommand implements LibraryComp
16
16
  execute(sourceFile: ts.SourceFile, recorder: UpdateRecorder, filePath: string): void;
17
17
  }
18
18
  /**
19
- * Adds an inline template to a component decorator.
19
+ * Replaces the inline `template` property in a component decorator with a `templateUrl` reference.
20
20
  */
21
- export declare class AddInlineTemplateToComponentDecoratorCommand implements LibraryComponentCommand {
22
- private readonly template;
23
- constructor(template: string);
21
+ export declare class ReplaceTemplateWithTemplateUrlCommand implements LibraryComponentCommand {
22
+ private readonly templateUrl;
23
+ constructor(templateUrl: string);
24
24
  execute(sourceFile: ts.SourceFile, recorder: UpdateRecorder, filePath: string): void;
25
25
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AddInlineTemplateToComponentDecoratorCommand = exports.AddImportToComponentDecoratorCommand = void 0;
3
+ exports.ReplaceTemplateWithTemplateUrlCommand = exports.AddImportToComponentDecoratorCommand = void 0;
4
4
  const schematics_1 = require("@angular-devkit/schematics");
5
5
  const schematics_util_1 = require("../schematics-util");
6
6
  /**
@@ -31,29 +31,25 @@ class AddImportToComponentDecoratorCommand {
31
31
  }
32
32
  exports.AddImportToComponentDecoratorCommand = AddImportToComponentDecoratorCommand;
33
33
  /**
34
- * Adds an inline template to a component decorator.
34
+ * Replaces the inline `template` property in a component decorator with a `templateUrl` reference.
35
35
  */
36
- class AddInlineTemplateToComponentDecoratorCommand {
37
- constructor(template) {
38
- this.template = template;
36
+ class ReplaceTemplateWithTemplateUrlCommand {
37
+ constructor(templateUrl) {
38
+ this.templateUrl = templateUrl;
39
39
  }
40
40
  execute(sourceFile, recorder, filePath) {
41
41
  const componentDecorator = findComponentDecorator(sourceFile, filePath);
42
42
  const templateProperty = (0, schematics_util_1.findDecoratorProperty)(componentDecorator, 'template');
43
- if (templateProperty) {
44
- // 'template' property exists: replace its content
45
- recorder.remove(templateProperty.initializer.pos, templateProperty.initializer.end - templateProperty.initializer.pos);
46
- recorder.insertRight(templateProperty.initializer.pos, this.template);
47
- }
48
- else {
49
- // 'template' property doesn't exist: create it
50
- const decoratorArgs = componentDecorator.expression.arguments[0];
51
- const pos = decoratorArgs.properties.end;
52
- recorder.insertRight(pos, decoratorArgs.properties.length ? `, template: ${this.template}` : `template: ${this.template}`);
43
+ if (!templateProperty) {
44
+ return;
53
45
  }
46
+ const start = templateProperty.getStart(sourceFile);
47
+ const end = templateProperty.end;
48
+ recorder.remove(start, end - start);
49
+ recorder.insertRight(start, `templateUrl: '${this.templateUrl}'`);
54
50
  }
55
51
  }
56
- exports.AddInlineTemplateToComponentDecoratorCommand = AddInlineTemplateToComponentDecoratorCommand;
52
+ exports.ReplaceTemplateWithTemplateUrlCommand = ReplaceTemplateWithTemplateUrlCommand;
57
53
  /**
58
54
  * Finds the component decorator in a source file.
59
55
  * @param sourceFile The TypeScript source file to search in.
@@ -1 +1 @@
1
- {"version":3,"file":"library-component.js","sourceRoot":"","sources":["../../../src/schematics/commands/library-component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library-component.js","sourceRoot":"","sources":["../../../src/schematics/commands/library-component.ts"],"names":[],"mappings":";;;AACA,2DAAiF;AACjF,wDAAwF;AASxF;;GAEG;AACH,MAAa,oCAAoC;IAC/C,YAA6B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAElD,OAAO,CAAC,UAAyB,EAAE,QAAwB,EAAE,QAAgB;QAC3E,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,eAAe,GAAG,IAAA,uCAAqB,EAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC7E,IAAI,eAAe,EAAE,CAAC;YACpB,8DAA8D;YAC9D,MAAM,YAAY,GAAG,eAAe,CAAC,WAAwC,CAAC;YAC9E,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,8BAA8B;gBACrE,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,8CAA8C;YAC9C,MAAM,aAAa,GAAI,kBAAkB,CAAC,UAAgC,CAAC,SAAS,CAAC,CAAC,CAA+B,CAAC;YACtH,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC;YACzC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACjI,CAAC;IACH,CAAC;CACF;AApBD,oFAoBC;AAED;;GAEG;AACH,MAAa,qCAAqC;IAChD,YAA6B,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;IAAG,CAAC;IAEpD,OAAO,CAAC,UAAyB,EAAE,QAAwB,EAAE,QAAgB;QAC3E,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,IAAA,uCAAqB,EAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QAC/E,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC;QACjC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QACpC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACpE,CAAC;CACF;AAdD,sFAcC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,UAAyB,EAAE,QAAgB;IACzE,MAAM,kBAAkB,GAAG,IAAA,6CAA2B,EAAC,UAAU,CAAC,CAAC;IACnE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,gCAAmB,CAAC,oCAAoC,QAAQ,qBAAqB,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ /**
3
+ * Interface for commands that can be executed on a styles.scss file (line array).
4
+ */
5
+ export interface StylesScssCommand {
6
+ execute(lines: string[]): void;
7
+ }
8
+ /**
9
+ * Composite command that executes multiple StylesScssCommand instances.
10
+ */
11
+ export declare class CompositeStylesScssCommand implements StylesScssCommand {
12
+ private readonly commands;
13
+ constructor(commands: StylesScssCommand[]);
14
+ execute(lines: string[]): void;
15
+ }
16
+ /**
17
+ * Adds one or more @use imports if they do not already exist.
18
+ * Each import is inserted after the last existing @use statement,
19
+ * or at the beginning of the file if none are present.
20
+ */
21
+ export declare class AddImportCommand implements StylesScssCommand {
22
+ private readonly importPaths;
23
+ constructor(importPaths: string[]);
24
+ execute(lines: string[]): void;
25
+ }
26
+ /**
27
+ * Editor for a styles.scss file. Reads the file, runs commands on its lines,
28
+ * and writes the result back to the Tree.
29
+ */
30
+ export declare class StylesScssEditor {
31
+ private readonly tree;
32
+ private readonly filePath;
33
+ private constructor();
34
+ static create(tree: Tree, filePath: string): StylesScssEditor;
35
+ /**
36
+ * Runs the given command on the scss file.
37
+ * @param command The command to run.
38
+ */
39
+ run(command: StylesScssCommand): void;
40
+ /**
41
+ * Loads the content of the scss file and returns it as an array of lines.
42
+ * If the file does not exist or cannot be read, it throws an error.
43
+ * @returns An array of lines from the scss file.
44
+ */
45
+ private load;
46
+ /**
47
+ * Saves the given lines to the scss file, overwriting its content.
48
+ * This method overwrites the existing content of the scss file with the provided lines.
49
+ * @param lines The lines to write to the file.
50
+ */
51
+ private save;
52
+ }