@yuuvis/client-cli 19.8.0 → 19.9.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 (41) hide show
  1. package/README.md +22 -0
  2. package/cli/commands/add/app.js +6 -1
  3. package/cli/commands/add/app.js.map +1 -1
  4. package/cli/commands/add/language.d.ts +6 -0
  5. package/cli/commands/add/language.js +40 -0
  6. package/cli/commands/add/language.js.map +1 -0
  7. package/cli/commands/generate/app.js +3 -1
  8. package/cli/commands/generate/app.js.map +1 -1
  9. package/cli/options/options-add-language.json +7 -0
  10. package/package.json +4 -1
  11. package/schematics/commands/app-config-ts.js +1 -1
  12. package/schematics/commands/app-config-ts.js.map +1 -1
  13. package/schematics/commands/main-json.d.ts +80 -0
  14. package/schematics/commands/main-json.js +107 -0
  15. package/schematics/commands/main-json.js.map +1 -0
  16. package/schematics/commands/package-json.d.ts +20 -7
  17. package/schematics/commands/package-json.js +43 -8
  18. package/schematics/commands/package-json.js.map +1 -1
  19. package/schematics/factories/add-language/index.d.ts +2 -0
  20. package/schematics/factories/add-language/index.js +44 -0
  21. package/schematics/factories/add-language/index.js.map +1 -0
  22. package/schematics/factories/add-language/schema.json +23 -0
  23. package/schematics/factories/collection.json +5 -0
  24. package/schematics/factories/generate-app/index.js +2 -2
  25. package/schematics/factories/generate-app/index.js.map +1 -1
  26. package/schematics/factories/generate-app/schema.json +45 -45
  27. package/schematics/factories/new/index.js +3 -3
  28. package/schematics/factories/new/index.js.map +1 -1
  29. package/schematics/files/_i18n-external/__locale__.json +1 -0
  30. package/schematics/files/_src_assets_i18n/de.json +1 -0
  31. package/schematics/files/_src_assets_i18n/en.json +1 -0
  32. package/schematics/patches/impl/0001.patch.js +2 -2
  33. package/schematics/patches/impl/0001.patch.js.map +1 -1
  34. package/schematics/patches/impl/0003.patch.js +2 -2
  35. package/schematics/patches/impl/0003.patch.js.map +1 -1
  36. package/schematics/rules/copy-resources.d.ts +1 -0
  37. package/schematics/rules/copy-resources.js +16 -0
  38. package/schematics/rules/copy-resources.js.map +1 -1
  39. package/schematics/types/main-json.d.ts +299 -0
  40. package/schematics/types/main-json.js +24 -0
  41. package/schematics/types/main-json.js.map +1 -0
package/README.md CHANGED
@@ -123,6 +123,28 @@ yuv patch list
123
123
  yuv p l
124
124
  ```
125
125
 
126
+ ### add language
127
+
128
+ Adds a new language to the client project. Updates the i18n configuration and creates the necessary translation file.
129
+
130
+ ```bash
131
+ yuv add language <locale> [options]
132
+
133
+ # short form
134
+ yuv a l <locale> [options]
135
+ ```
136
+
137
+ `<locale>`: The locale code of the language to add (e.g. `es` for Spanish, `fr` for French).
138
+
139
+ #### Options
140
+ - `--label`: The display name of the language, written in that language itself (e.g. `Français` for French). If not specified, the locale code is used as label.
141
+
142
+ After the command completes, run the following to finalize the setup:
143
+
144
+ ```bash
145
+ npm run i18n:extract && npm run i18n:collect
146
+ ```
147
+
126
148
  ### patch apply
127
149
 
128
150
  Applies the patch with the given ID to the current client project if necessary.
@@ -8,10 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.handler = exports.builder = exports.desc = exports.aliases = exports.command = void 0;
13
16
  const child_process_1 = require("child_process");
14
17
  const utils_1 = require("../../utils");
18
+ const chalk_1 = __importDefault(require("chalk"));
15
19
  exports.command = "app <name>";
16
20
  exports.aliases = ["a"];
17
21
  exports.desc = "Add an existing app to the client.";
@@ -24,7 +28,8 @@ const handler = (argv) => __awaiter(void 0, void 0, void 0, function* () {
24
28
  cwd: process.cwd(),
25
29
  stdio: "inherit",
26
30
  });
27
- console.log(`App '${argv.name}' added successfully!`);
31
+ console.log(`App '${argv.name}' added successfully!\n` +
32
+ chalk_1.default.yellow('Run "npm run i18n:extract && npm run i18n:collect" to finalize the i18n setup.'));
28
33
  });
29
34
  exports.handler = handler;
30
35
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/cli/commands/add/app.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAAyC;AACzC,uCAAiE;AAEpD,QAAA,OAAO,GAAW,YAAY,CAAC;AAC/B,QAAA,OAAO,GAAa,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAW,oCAAoC,CAAC;AAE1D,MAAM,OAAO,GAA4B,CAAC,KAAU,EAAE,EAAE;IAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEK,MAAM,OAAO,GAAG,CAAO,IAAS,EAAE,EAAE;IAEzC,IAAA,wBAAQ,EAAC,GAAG,IAAA,wBAAgB,GAAE,+BAA+B,IAAA,wBAAgB,EAAC,IAAI,CAAC,EAAE,EAAE;QACrF,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,uBAAuB,CAAC,CAAC;AACxD,CAAC,CAAA,CAAC;AARW,QAAA,OAAO,WAQlB"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/cli/commands/add/app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iDAAyC;AACzC,uCAAiE;AACjE,kDAA0B;AAEb,QAAA,OAAO,GAAW,YAAY,CAAC;AAC/B,QAAA,OAAO,GAAa,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAW,oCAAoC,CAAC;AAE1D,MAAM,OAAO,GAA4B,CAAC,KAAU,EAAE,EAAE;IAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEK,MAAM,OAAO,GAAG,CAAO,IAAS,EAAE,EAAE;IAEzC,IAAA,wBAAQ,EAAC,GAAG,IAAA,wBAAgB,GAAE,+BAA+B,IAAA,wBAAgB,EAAC,IAAI,CAAC,EAAE,EAAE;QACrF,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,yBAAyB;QACtD,eAAK,CAAC,MAAM,CAAC,gFAAgF,CAAC,CAAC,CAAC;AAClG,CAAC,CAAA,CAAC;AATW,QAAA,OAAO,WASlB"}
@@ -0,0 +1,6 @@
1
+ import type { 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,40 @@
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 chalk_1 = __importDefault(require("chalk"));
18
+ const utils_1 = require("../../utils");
19
+ const options_add_language_json_1 = __importDefault(require("../../options/options-add-language.json"));
20
+ exports.command = "language <locale>";
21
+ exports.aliases = ["l"];
22
+ exports.desc = "Add an existing language to the client.";
23
+ const builder = (yargs) => {
24
+ return yargs
25
+ .string("language")
26
+ .version(false)
27
+ .options(options_add_language_json_1.default);
28
+ };
29
+ exports.builder = builder;
30
+ const handler = (argv) => __awaiter(void 0, void 0, void 0, function* () {
31
+ (0, child_process_1.execSync)(`${(0, utils_1.getSchematicsBin)()} @yuuvis/client-cli:add-language ${(0, utils_1.serializeOptions)(argv)}`, {
32
+ cwd: process.cwd(),
33
+ stdio: "inherit",
34
+ });
35
+ const localeDisplayName = argv.label ? `(${argv.label})` : '';
36
+ console.log(`Language '${argv.locale}' ${localeDisplayName} added successfully!\n` +
37
+ chalk_1.default.yellow('Run "npm run i18n:extract && npm run i18n:collect" to finalize the language setup.'));
38
+ });
39
+ exports.handler = handler;
40
+ //# sourceMappingURL=language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.js","sourceRoot":"","sources":["../../../../src/cli/commands/add/language.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iDAAyC;AACzC,kDAA0B;AAC1B,uCAAiE;AACjE,wGAA8D;AACjD,QAAA,OAAO,GAAW,mBAAmB,CAAC;AACtC,QAAA,OAAO,GAAa,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAW,yCAAyC,CAAC;AAE/D,MAAM,OAAO,GAA4B,CAAC,KAAU,EAAE,EAAE;IAC7D,OAAO,KAAK;SACT,MAAM,CAAC,UAAU,CAAC;SAClB,OAAO,CAAC,KAAK,CAAC;SACd,OAAO,CAAC,mCAAO,CAAC,CAAC;AACtB,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEK,MAAM,OAAO,GAAG,CAAO,IAAS,EAAE,EAAE;IAEzC,IAAA,wBAAQ,EAAC,GAAG,IAAA,wBAAgB,GAAE,oCAAoC,IAAA,wBAAgB,EAAC,IAAI,CAAC,EAAE,EAAE;QAC1F,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,OAAO,CAAC,GAAG,CACT,aAAa,IAAI,CAAC,MAAM,KAAK,iBAAiB,wBAAwB;QACtE,eAAK,CAAC,MAAM,CAAC,oFAAoF,CAAC,CACnG,CAAC;AACJ,CAAC,CAAA,CAAC;AAZW,QAAA,OAAO,WAYlB"}
@@ -18,6 +18,7 @@ const child_process_1 = require("child_process");
18
18
  const utils_1 = require("../../utils");
19
19
  const options_generate_app_json_1 = __importDefault(require("../../options/options-generate-app.json"));
20
20
  const utils_2 = require("../../../schematics/utils");
21
+ const chalk_1 = __importDefault(require("chalk"));
21
22
  exports.command = "app <name>";
22
23
  exports.aliases = ["a"];
23
24
  exports.desc = "Generate a new yuuvis client app.";
@@ -86,7 +87,8 @@ const handler = (argv) => __awaiter(void 0, void 0, void 0, function* () {
86
87
  cwd: process.cwd(),
87
88
  stdio: "inherit",
88
89
  });
89
- console.log(`App '${argv.name}' created successfully!`);
90
+ console.log(`App '${argv.name}' created successfully!\n` +
91
+ chalk_1.default.yellow('Run "npm run i18n:extract && npm run i18n:collect" to finalize the i18n setup.'));
90
92
  });
91
93
  exports.handler = handler;
92
94
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/cli/commands/generate/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/cli/commands/generate/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ {
2
+ "label": {
3
+ "describe": "The display name of the language, written in that language itself (e.g. 'Español' for Spanish, 'Français' for French)",
4
+ "type": "string",
5
+ "demandOption": false
6
+ }
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuuvis/client-cli",
3
- "version": "19.8.0",
3
+ "version": "19.9.0",
4
4
  "main": "index.js",
5
5
  "schematics": "./schematics/factories/collection.json",
6
6
  "bin": {
@@ -9,6 +9,7 @@
9
9
  "keywords": [
10
10
  "yuuvis",
11
11
  "yuuvis Momentum",
12
+ "yuuvis shell",
12
13
  "client",
13
14
  "CLI",
14
15
  "custom client"
@@ -16,12 +17,14 @@
16
17
  "author": "OPTIMAL SYSTEMS GmbH <npm@optimal-systems.de>",
17
18
  "license": "MIT",
18
19
  "description": "CLI tool for yuuvis Momentum clients",
20
+ "homepage": "https://shell.yuuvis.org/developer-tools/client-cli",
19
21
  "dependencies": {
20
22
  "@angular-devkit/core": "^19.2.1",
21
23
  "@angular-devkit/schematics": "^19.2.1",
22
24
  "@angular-devkit/schematics-cli": "^19.2.1",
23
25
  "@angular/cli": "^19.2.19",
24
26
  "@schematics/angular": "^19.2.1",
27
+ "chalk": "^4.1.2",
25
28
  "cli-table3": "^0.6.5",
26
29
  "inquirer": "^12.4.3",
27
30
  "semver": "^7.7.2",
@@ -27,7 +27,7 @@ class AddShellExtensionsImportCommand {
27
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
- p.initializer.getText().replace(/['"]/g, '') === this.appId) &&
30
+ p.initializer.getText().replace(/['"]/g, '') === `${this.appId}.extension`) &&
31
31
  el.properties.some(p => typescript_1.default.isPropertyAssignment(p) &&
32
32
  p.name.getText() === 'extension' &&
33
33
  p.initializer.getText() === this.extensionsFileName))) {
@@ -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,IAAI,CAAC,KAAK,CAC5D;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":";;;;;;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"}
@@ -0,0 +1,80 @@
1
+ import { SchematicContext, Tree } from "@angular-devkit/schematics";
2
+ import { MainJson } from "../types/main-json";
3
+ /**
4
+ * Interface for commands that can be executed on a MainJson object.
5
+ */
6
+ export interface MainJsonCommand {
7
+ /**
8
+ * Executes the command on the provided main.json object.
9
+ * @param mainJson The main.json object to modify.
10
+ * @param context The schematic context, used for logging.
11
+ */
12
+ execute(mainJson: MainJson, context: SchematicContext): void;
13
+ }
14
+ /**
15
+ * Composite command that executes multiple MainJsonCommand instances in sequence.
16
+ */
17
+ export declare class CompositeMainJsonCommand implements MainJsonCommand {
18
+ private readonly commands;
19
+ constructor(commands: MainJsonCommand[]);
20
+ /**
21
+ * Executes all commands in the composite command in sequence.
22
+ * @param mainJson The main.json object to modify.
23
+ * @param context The schematic context, used for logging.
24
+ */
25
+ execute(mainJson: MainJson, context: SchematicContext): void;
26
+ }
27
+ /**
28
+ * Adds a new language entry to the `core.languages` array in the main.json file.
29
+ * If the language with the given locale already exists, a warning is logged and no change is made.
30
+ * If the `core` or `core.languages` properties are missing, they are initialized automatically.
31
+ */
32
+ export declare class AddLanguageCommand implements MainJsonCommand {
33
+ private readonly locale;
34
+ private readonly label;
35
+ private readonly fallback?;
36
+ constructor(locale: string, label: string, fallback?: boolean | undefined);
37
+ /**
38
+ * Adds the language to main.json.
39
+ * @param mainJson The main.json object to modify.
40
+ * @param context The schematic context, used for logging.
41
+ */
42
+ execute(mainJson: MainJson, context: SchematicContext): void;
43
+ }
44
+ /**
45
+ * Class for editing a main.json file.
46
+ */
47
+ export declare class MainJsonEditor {
48
+ private readonly tree;
49
+ private readonly path;
50
+ private constructor();
51
+ /**
52
+ * Creates a new MainJsonEditor instance.
53
+ * @param tree The Angular DevKit Tree to operate on.
54
+ * @param path The path to the main.json file.
55
+ * @returns A new MainJsonEditor instance.
56
+ */
57
+ static create(tree: Tree, path?: string): MainJsonEditor;
58
+ /**
59
+ * Executes the given command on the main.json file.
60
+ * @param command The command to execute.
61
+ * @param context The schematic context, used for logging.
62
+ */
63
+ run(command: MainJsonCommand, context: SchematicContext): void;
64
+ /**
65
+ * Returns the current content of the main.json file.
66
+ * @returns The parsed main.json object.
67
+ */
68
+ getContent(): MainJson;
69
+ /**
70
+ * Loads and parses the main.json file from the tree.
71
+ * @returns The parsed main.json object.
72
+ * @throws {SchematicsException} If the file does not exist or cannot be read.
73
+ */
74
+ private load;
75
+ /**
76
+ * Saves the main.json object back to the tree.
77
+ * @param mainJson The main.json object to save.
78
+ */
79
+ private save;
80
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MainJsonEditor = exports.AddLanguageCommand = exports.CompositeMainJsonCommand = void 0;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ const main_json_1 = require("../types/main-json");
6
+ /**
7
+ * Composite command that executes multiple MainJsonCommand instances in sequence.
8
+ */
9
+ class CompositeMainJsonCommand {
10
+ constructor(commands) {
11
+ this.commands = commands;
12
+ }
13
+ /**
14
+ * Executes all commands in the composite command in sequence.
15
+ * @param mainJson The main.json object to modify.
16
+ * @param context The schematic context, used for logging.
17
+ */
18
+ execute(mainJson, context) {
19
+ this.commands.forEach(command => command.execute(mainJson, context));
20
+ }
21
+ }
22
+ exports.CompositeMainJsonCommand = CompositeMainJsonCommand;
23
+ /**
24
+ * Adds a new language entry to the `core.languages` array in the main.json file.
25
+ * If the language with the given locale already exists, a warning is logged and no change is made.
26
+ * If the `core` or `core.languages` properties are missing, they are initialized automatically.
27
+ */
28
+ class AddLanguageCommand {
29
+ constructor(locale, label, fallback) {
30
+ this.locale = locale;
31
+ this.label = label;
32
+ this.fallback = fallback;
33
+ }
34
+ /**
35
+ * Adds the language to main.json.
36
+ * @param mainJson The main.json object to modify.
37
+ * @param context The schematic context, used for logging.
38
+ */
39
+ execute(mainJson, context) {
40
+ var _a, _b;
41
+ var _c;
42
+ (_a = mainJson.core) !== null && _a !== void 0 ? _a : (mainJson.core = {});
43
+ (_b = (_c = mainJson.core).languages) !== null && _b !== void 0 ? _b : (_c.languages = []);
44
+ if (mainJson.core.languages.some(lang => lang.iso === this.locale)) {
45
+ context.logger.warn(`Language with locale '${this.locale}' already exists in main.json. Skipping addition.`);
46
+ return;
47
+ }
48
+ mainJson.core.languages.push(Object.assign({ iso: this.locale, label: this.label }, (this.fallback && { fallback: true })));
49
+ }
50
+ }
51
+ exports.AddLanguageCommand = AddLanguageCommand;
52
+ /**
53
+ * Class for editing a main.json file.
54
+ */
55
+ class MainJsonEditor {
56
+ constructor(tree, path) {
57
+ this.tree = tree;
58
+ this.path = path;
59
+ }
60
+ /**
61
+ * Creates a new MainJsonEditor instance.
62
+ * @param tree The Angular DevKit Tree to operate on.
63
+ * @param path The path to the main.json file.
64
+ * @returns A new MainJsonEditor instance.
65
+ */
66
+ static create(tree, path = '/src/assets/_yuuvis/config/main.json') {
67
+ return new MainJsonEditor(tree, path);
68
+ }
69
+ /**
70
+ * Executes the given command on the main.json file.
71
+ * @param command The command to execute.
72
+ * @param context The schematic context, used for logging.
73
+ */
74
+ run(command, context) {
75
+ const mainJson = this.load();
76
+ command.execute(mainJson, context);
77
+ this.save(mainJson);
78
+ }
79
+ /**
80
+ * Returns the current content of the main.json file.
81
+ * @returns The parsed main.json object.
82
+ */
83
+ getContent() {
84
+ return this.load();
85
+ }
86
+ /**
87
+ * Loads and parses the main.json file from the tree.
88
+ * @returns The parsed main.json object.
89
+ * @throws {SchematicsException} If the file does not exist or cannot be read.
90
+ */
91
+ load() {
92
+ const content = this.tree.read(this.path);
93
+ if (!content) {
94
+ throw new schematics_1.SchematicsException(`main.json not found at path: ${this.path}`);
95
+ }
96
+ return (0, main_json_1.parseMainJson)(content.toString());
97
+ }
98
+ /**
99
+ * Saves the main.json object back to the tree.
100
+ * @param mainJson The main.json object to save.
101
+ */
102
+ save(mainJson) {
103
+ this.tree.overwrite(this.path, JSON.stringify(mainJson, null, 2));
104
+ }
105
+ }
106
+ exports.MainJsonEditor = MainJsonEditor;
107
+ //# sourceMappingURL=main-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-json.js","sourceRoot":"","sources":["../../../src/schematics/commands/main-json.ts"],"names":[],"mappings":";;;AAAA,2DAAyF;AACzF,kDAA6D;AAc7D;;GAEG;AACH,MAAa,wBAAwB;IACnC,YAA6B,QAA2B;QAA3B,aAAQ,GAAR,QAAQ,CAAmB;IAAG,CAAC;IAE5D;;;;OAIG;IACH,OAAO,CAAC,QAAkB,EAAE,OAAyB;QACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;CACF;AAXD,4DAWC;AAED;;;;GAIG;AACH,MAAa,kBAAkB;IAC7B,YAA6B,MAAc,EAAmB,KAAa,EAAmB,QAAkB;QAAnF,WAAM,GAAN,MAAM,CAAQ;QAAmB,UAAK,GAAL,KAAK,CAAQ;QAAmB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEpH;;;;OAIG;IACH,OAAO,CAAC,QAAkB,EAAE,OAAyB;;;QACnD,MAAA,QAAQ,CAAC,IAAI,oCAAb,QAAQ,CAAC,IAAI,GAAK,EAAE,EAAC;QACrB,YAAA,QAAQ,CAAC,IAAI,EAAC,SAAS,uCAAT,SAAS,GAAK,EAAE,EAAC;QAE/B,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,MAAM,mDAAmD,CAAC,CAAC;YAC7G,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,iBAC1B,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,IACd,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EACxC,CAAC;IACL,CAAC;CACF;AAvBD,gDAuBC;AAED;;GAEG;AACH,MAAa,cAAc;IACzB,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,sCAAsC;QAC7E,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,OAAwB,EAAE,OAAyB;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACK,IAAI;QACV,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,gCAAgC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,IAAA,yBAAa,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACK,IAAI,CAAC,QAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AApDD,wCAoDC"}
@@ -1,4 +1,4 @@
1
- import { Tree } from "@angular-devkit/schematics";
1
+ import { SchematicContext, Tree } from "@angular-devkit/schematics";
2
2
  import { PackageJson } from "../types/package-json";
3
3
  /**
4
4
  * Interface for commands that can be executed on a PackageJson object.
@@ -8,7 +8,7 @@ export interface PackageJsonCommand {
8
8
  * Executes the command on the provided package.json object.
9
9
  * @param packageJson The package.json object to modify.
10
10
  */
11
- execute(packageJson: PackageJson): void;
11
+ execute(packageJson: PackageJson, context: SchematicContext): void;
12
12
  }
13
13
  /**
14
14
  * Composite command that executes multiple PackageJsonCommand instances.
@@ -20,7 +20,7 @@ export declare class CompositePackageJsonCommand implements PackageJsonCommand {
20
20
  * Executes all commands in the composite command.
21
21
  * @param packageJson The package.json object to modify.
22
22
  */
23
- execute(packageJson: PackageJson): void;
23
+ execute(packageJson: PackageJson, context: SchematicContext): void;
24
24
  }
25
25
  /**
26
26
  * Adds or updates dependencies with passed key-value pairs in the package.json file.
@@ -29,7 +29,7 @@ export declare class CompositePackageJsonCommand implements PackageJsonCommand {
29
29
  export declare class AddDependenciesCommand implements PackageJsonCommand {
30
30
  private readonly dependencies;
31
31
  constructor(dependencies: Record<string, string>);
32
- execute(packageJson: PackageJson): void;
32
+ execute(packageJson: PackageJson, context: SchematicContext): void;
33
33
  }
34
34
  /**
35
35
  * Adds or updates devDependencies with passed key-value pairs in the package.json file.
@@ -47,7 +47,7 @@ export declare class AddDevDependenciesCommand implements PackageJsonCommand {
47
47
  export declare class AddScriptsCommand implements PackageJsonCommand {
48
48
  private readonly scripts;
49
49
  constructor(scripts: Record<string, string>);
50
- execute(packageJson: PackageJson): void;
50
+ execute(packageJson: PackageJson, context: SchematicContext): void;
51
51
  }
52
52
  /**
53
53
  * Adds or enhances scripts in the package.json file.
@@ -59,7 +59,19 @@ export declare class AddOrEnhanceScriptsCommand implements PackageJsonCommand {
59
59
  private readonly scripts;
60
60
  private readonly operator;
61
61
  constructor(scripts: Record<string, string>, operator?: '&&' | '||');
62
- execute(packageJson: PackageJson): void;
62
+ execute(packageJson: PackageJson, context: SchematicContext): void;
63
+ }
64
+ /**
65
+ * Updates the `i18n:extract` script in the package.json file to include a `--lang` flag.
66
+ * If the script exists but does not yet contain `--lang`, the flag `--lang=de,en` is appended
67
+ * to the `npm run i18n:collect` call within the script.
68
+ * If a `newLocale` is provided, it is additionally appended to the existing `--lang` value list.
69
+ * If the `i18n:extract` script does not exist, a warning is logged and no changes are made.
70
+ */
71
+ export declare class UpdateLocalesInI18nExtractTaskCommand implements PackageJsonCommand {
72
+ private readonly newLocale?;
73
+ constructor(newLocale?: string | undefined);
74
+ execute(packageJson: PackageJson, context: SchematicContext): void;
63
75
  }
64
76
  /**
65
77
  * Class for editing a package.json file.
@@ -78,8 +90,9 @@ export declare class PackageJsonEditor {
78
90
  /**
79
91
  * Executes the given command on the package.json file.
80
92
  * @param command The command to execute on the package.json file.
93
+ * @param context The schematic context.
81
94
  */
82
- run(command: PackageJsonCommand): void;
95
+ run(command: PackageJsonCommand, context: SchematicContext): void;
83
96
  /**
84
97
  * Gets the content of the package.json file.
85
98
  * @returns The package.json object.
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PackageJsonEditor = exports.AddOrEnhanceScriptsCommand = exports.AddScriptsCommand = exports.AddDevDependenciesCommand = exports.AddDependenciesCommand = exports.CompositePackageJsonCommand = void 0;
12
+ exports.PackageJsonEditor = exports.UpdateLocalesInI18nExtractTaskCommand = exports.AddOrEnhanceScriptsCommand = exports.AddScriptsCommand = exports.AddDevDependenciesCommand = exports.AddDependenciesCommand = exports.CompositePackageJsonCommand = void 0;
13
13
  const schematics_1 = require("@angular-devkit/schematics");
14
14
  const project_util_1 = require("../project-util");
15
15
  /**
@@ -23,8 +23,8 @@ class CompositePackageJsonCommand {
23
23
  * Executes all commands in the composite command.
24
24
  * @param packageJson The package.json object to modify.
25
25
  */
26
- execute(packageJson) {
27
- this.commands.forEach(command => command.execute(packageJson));
26
+ execute(packageJson, context) {
27
+ this.commands.forEach(command => command.execute(packageJson, context));
28
28
  }
29
29
  }
30
30
  exports.CompositePackageJsonCommand = CompositePackageJsonCommand;
@@ -36,7 +36,7 @@ class AddDependenciesCommand {
36
36
  constructor(dependencies) {
37
37
  this.dependencies = dependencies;
38
38
  }
39
- execute(packageJson) {
39
+ execute(packageJson, context) {
40
40
  packageJson.dependencies = Object.fromEntries(Object.entries(Object.assign(Object.assign({}, packageJson.dependencies), this.dependencies)).sort(([a], [b]) => a.localeCompare(b)));
41
41
  }
42
42
  }
@@ -62,7 +62,7 @@ class AddScriptsCommand {
62
62
  constructor(scripts) {
63
63
  this.scripts = scripts;
64
64
  }
65
- execute(packageJson) {
65
+ execute(packageJson, context) {
66
66
  packageJson.scripts = Object.fromEntries(Object.entries(Object.assign(Object.assign({}, packageJson.scripts), this.scripts)).sort(([a], [b]) => a.localeCompare(b)));
67
67
  }
68
68
  }
@@ -78,7 +78,7 @@ class AddOrEnhanceScriptsCommand {
78
78
  this.scripts = scripts;
79
79
  this.operator = operator;
80
80
  }
81
- execute(packageJson) {
81
+ execute(packageJson, context) {
82
82
  var _a;
83
83
  packageJson.scripts = (_a = packageJson.scripts) !== null && _a !== void 0 ? _a : {};
84
84
  Object.entries(this.scripts).forEach(([key, value]) => {
@@ -92,6 +92,40 @@ class AddOrEnhanceScriptsCommand {
92
92
  }
93
93
  }
94
94
  exports.AddOrEnhanceScriptsCommand = AddOrEnhanceScriptsCommand;
95
+ /**
96
+ * Updates the `i18n:extract` script in the package.json file to include a `--lang` flag.
97
+ * If the script exists but does not yet contain `--lang`, the flag `--lang=de,en` is appended
98
+ * to the `npm run i18n:collect` call within the script.
99
+ * If a `newLocale` is provided, it is additionally appended to the existing `--lang` value list.
100
+ * If the `i18n:extract` script does not exist, a warning is logged and no changes are made.
101
+ */
102
+ class UpdateLocalesInI18nExtractTaskCommand {
103
+ constructor(newLocale) {
104
+ this.newLocale = newLocale;
105
+ }
106
+ execute(packageJson, context) {
107
+ var _a;
108
+ packageJson.scripts = (_a = packageJson.scripts) !== null && _a !== void 0 ? _a : {};
109
+ const task = packageJson.scripts['i18n:extract'];
110
+ if (task) {
111
+ if (!task.includes('--lang')) {
112
+ packageJson.scripts['i18n:extract'] = task.replace('i18n-extract.js', `i18n-extract.js --lang=de,en`);
113
+ }
114
+ if (this.newLocale) {
115
+ const current = packageJson.scripts['i18n:extract'];
116
+ const langMatch = current.match(/--lang=(\S+)/);
117
+ const locales = langMatch ? langMatch[1].split(',') : [];
118
+ if (!locales.includes(this.newLocale)) {
119
+ packageJson.scripts['i18n:extract'] = current.replace(/(--lang=\S+)/, `$1,${this.newLocale}`);
120
+ }
121
+ }
122
+ }
123
+ else {
124
+ context.logger.warn(`i18n:extract script not found in package.json. Skipping update of locales in i18nx extract task.`);
125
+ }
126
+ }
127
+ }
128
+ exports.UpdateLocalesInI18nExtractTaskCommand = UpdateLocalesInI18nExtractTaskCommand;
95
129
  /**
96
130
  * Class for editing a package.json file.
97
131
  */
@@ -115,10 +149,11 @@ class PackageJsonEditor {
115
149
  /**
116
150
  * Executes the given command on the package.json file.
117
151
  * @param command The command to execute on the package.json file.
152
+ * @param context The schematic context.
118
153
  */
119
- run(command) {
154
+ run(command, context) {
120
155
  const packageJson = this.load();
121
- command.execute(packageJson);
156
+ command.execute(packageJson, context);
122
157
  this.save(packageJson);
123
158
  }
124
159
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../src/schematics/commands/package-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../src/schematics/commands/package-json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Rule } from "@angular-devkit/schematics";
2
+ export declare function addLanguage(options: any): Rule;
@@ -0,0 +1,44 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.addLanguage = addLanguage;
13
+ const schematics_1 = require("@angular-devkit/schematics");
14
+ const package_json_1 = require("../../commands/package-json");
15
+ const main_json_1 = require("../../commands/main-json");
16
+ const copy_resources_1 = require("../../rules/copy-resources");
17
+ function addLanguage(options) {
18
+ return (tree, context) => __awaiter(this, void 0, void 0, function* () {
19
+ var _a;
20
+ const label = (_a = options.label) !== null && _a !== void 0 ? _a : options.locale;
21
+ const rules = [];
22
+ if (!tree.exists(`/i18n-external/${options.locale}.json`)) {
23
+ rules.push((0, copy_resources_1.copyNewLanguageFileToI18nExternal)(options.locale));
24
+ }
25
+ rules.push(updatePackageJsonRule(options.locale));
26
+ rules.push(updateMainJsonRule(options.locale, label));
27
+ return (0, schematics_1.chain)(rules);
28
+ });
29
+ }
30
+ function updatePackageJsonRule(locale) {
31
+ return (tree, context) => __awaiter(this, void 0, void 0, function* () {
32
+ const command = new package_json_1.UpdateLocalesInI18nExtractTaskCommand(locale);
33
+ const editor = yield package_json_1.PackageJsonEditor.create(tree, 'package.json');
34
+ editor.run(command, context);
35
+ });
36
+ }
37
+ function updateMainJsonRule(locale, label) {
38
+ return (tree, context) => __awaiter(this, void 0, void 0, function* () {
39
+ const command = new main_json_1.AddLanguageCommand(locale, label);
40
+ const editor = main_json_1.MainJsonEditor.create(tree);
41
+ editor.run(command, context);
42
+ });
43
+ }
44
+ //# sourceMappingURL=index.js.map