@yuuvis/client-cli 19.8.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 (97) hide show
  1. package/README.md +70 -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/commands/generate/theme.d.ts +6 -0
  10. package/cli/commands/generate/theme.js +65 -0
  11. package/cli/commands/generate/theme.js.map +1 -0
  12. package/cli/options/options-add-language.json +7 -0
  13. package/cli/options/options-generate-theme.json +41 -0
  14. package/cli/utils.js.map +1 -1
  15. package/package.json +5 -1
  16. package/schematics/app-manifest.d.ts +1 -1
  17. package/schematics/app-manifest.js +1 -1
  18. package/schematics/app-manifest.js.map +1 -1
  19. package/schematics/commands/angular-json.d.ts +2 -2
  20. package/schematics/commands/angular-json.js +3 -16
  21. package/schematics/commands/angular-json.js.map +1 -1
  22. package/schematics/commands/app-config-ts.d.ts +12 -3
  23. package/schematics/commands/app-config-ts.js +77 -3
  24. package/schematics/commands/app-config-ts.js.map +1 -1
  25. package/schematics/commands/library-component.d.ts +4 -4
  26. package/schematics/commands/library-component.js +12 -16
  27. package/schematics/commands/library-component.js.map +1 -1
  28. package/schematics/commands/main-json.d.ts +80 -0
  29. package/schematics/commands/main-json.js +107 -0
  30. package/schematics/commands/main-json.js.map +1 -0
  31. package/schematics/commands/package-json.d.ts +20 -7
  32. package/schematics/commands/package-json.js +43 -8
  33. package/schematics/commands/package-json.js.map +1 -1
  34. package/schematics/commands/styles-scss.d.ts +52 -0
  35. package/schematics/commands/styles-scss.js +91 -0
  36. package/schematics/commands/styles-scss.js.map +1 -0
  37. package/schematics/commands/typescript-file.d.ts +10 -0
  38. package/schematics/commands/typescript-file.js +48 -1
  39. package/schematics/commands/typescript-file.js.map +1 -1
  40. package/schematics/factories/add-app/index.js +1 -1
  41. package/schematics/factories/add-app/index.js.map +1 -1
  42. package/schematics/factories/add-language/index.d.ts +2 -0
  43. package/schematics/factories/add-language/index.js +44 -0
  44. package/schematics/factories/add-language/index.js.map +1 -0
  45. package/schematics/factories/add-language/schema.json +23 -0
  46. package/schematics/factories/collection.json +10 -0
  47. package/schematics/factories/generate-app/index.js +8 -10
  48. package/schematics/factories/generate-app/index.js.map +1 -1
  49. package/schematics/factories/generate-app/schema.json +45 -45
  50. package/schematics/factories/generate-theme/generate-theme.model.d.ts +15 -0
  51. package/schematics/factories/generate-theme/generate-theme.model.js +3 -0
  52. package/schematics/factories/generate-theme/generate-theme.model.js.map +1 -0
  53. package/schematics/factories/generate-theme/index.d.ts +3 -0
  54. package/schematics/factories/generate-theme/index.js +122 -0
  55. package/schematics/factories/generate-theme/index.js.map +1 -0
  56. package/schematics/factories/generate-theme/schema.json +59 -0
  57. package/schematics/factories/new/index.js +3 -3
  58. package/schematics/factories/new/index.js.map +1 -1
  59. package/schematics/files/_i18n-external/__locale__.json +1 -0
  60. package/schematics/files/_scripts/extract-client-version.js +4 -0
  61. package/schematics/files/_src_app/app.component.html.template +1 -0
  62. package/schematics/files/_src_app/app.component.ts.template +7 -7
  63. package/schematics/files/_src_app/app.config.ts.template +1 -1
  64. package/schematics/files/_src_app/app.markers.ts.template +1 -0
  65. package/schematics/files/_src_assets_i18n/de.json +1 -0
  66. package/schematics/files/_src_assets_i18n/en.json +1 -0
  67. package/schematics/files/_src_styles_theme/__themeName__.config.scss.template +113 -0
  68. package/schematics/files/_src_styles_theme/__themeName__.theme.scss.template +5 -0
  69. package/schematics/patches/impl/0001.patch.js +2 -2
  70. package/schematics/patches/impl/0001.patch.js.map +1 -1
  71. package/schematics/patches/impl/0003.patch.d.ts +2 -2
  72. package/schematics/patches/impl/0003.patch.js +2 -2
  73. package/schematics/patches/impl/0003.patch.js.map +1 -1
  74. package/schematics/patches/impl/0004.patch.d.ts +9 -0
  75. package/schematics/patches/impl/0004.patch.js +37 -0
  76. package/schematics/patches/impl/0004.patch.js.map +1 -0
  77. package/schematics/patches/impl/0005.patch.d.ts +9 -0
  78. package/schematics/patches/impl/0005.patch.js +39 -0
  79. package/schematics/patches/impl/0005.patch.js.map +1 -0
  80. package/schematics/project-metadata.d.ts +2 -2
  81. package/schematics/registry-config.d.ts +18 -0
  82. package/schematics/registry-config.js +111 -0
  83. package/schematics/registry-config.js.map +1 -0
  84. package/schematics/rules/clean-up-ng-app.js +0 -1
  85. package/schematics/rules/clean-up-ng-app.js.map +1 -1
  86. package/schematics/rules/copy-resources.d.ts +3 -1
  87. package/schematics/rules/copy-resources.js +31 -3
  88. package/schematics/rules/copy-resources.js.map +1 -1
  89. package/schematics/rules/generate-theme.d.ts +6 -0
  90. package/schematics/rules/generate-theme.js +25 -0
  91. package/schematics/rules/generate-theme.js.map +1 -0
  92. package/schematics/schematics-util.d.ts +9 -0
  93. package/schematics/schematics-util.js +199 -43
  94. package/schematics/schematics-util.js.map +1 -1
  95. package/schematics/types/main-json.d.ts +299 -0
  96. package/schematics/types/main-json.js +24 -0
  97. package/schematics/types/main-json.js.map +1 -0
@@ -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":"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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,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,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
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StylesScssEditor = exports.AddImportCommand = exports.CompositeStylesScssCommand = void 0;
4
+ /**
5
+ * Composite command that executes multiple StylesScssCommand instances.
6
+ */
7
+ class CompositeStylesScssCommand {
8
+ constructor(commands) {
9
+ this.commands = commands;
10
+ }
11
+ execute(lines) {
12
+ this.commands.forEach((command) => command.execute(lines));
13
+ }
14
+ }
15
+ exports.CompositeStylesScssCommand = CompositeStylesScssCommand;
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
+ class AddImportCommand {
22
+ constructor(importPaths) {
23
+ this.importPaths = importPaths;
24
+ }
25
+ execute(lines) {
26
+ for (const importPath of this.importPaths) {
27
+ const useStatement = `@use '${importPath}';`;
28
+ if (lines.some((line) => line.trim().includes(`@use '${importPath}'`))) {
29
+ continue;
30
+ }
31
+ let lastUseIndex = -1;
32
+ for (let i = lines.length - 1; i >= 0; i--) {
33
+ if (lines[i].trim().startsWith('@use')) {
34
+ lastUseIndex = i;
35
+ break;
36
+ }
37
+ }
38
+ if (lastUseIndex !== -1) {
39
+ lines.splice(lastUseIndex + 1, 0, useStatement);
40
+ }
41
+ else {
42
+ lines.unshift(useStatement);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ exports.AddImportCommand = AddImportCommand;
48
+ /**
49
+ * Editor for a styles.scss file. Reads the file, runs commands on its lines,
50
+ * and writes the result back to the Tree.
51
+ */
52
+ class StylesScssEditor {
53
+ constructor(tree, filePath) {
54
+ this.tree = tree;
55
+ this.filePath = filePath;
56
+ }
57
+ static create(tree, filePath) {
58
+ return new StylesScssEditor(tree, filePath);
59
+ }
60
+ /**
61
+ * Runs the given command on the scss file.
62
+ * @param command The command to run.
63
+ */
64
+ run(command) {
65
+ const lines = this.load();
66
+ command.execute(lines);
67
+ this.save(lines);
68
+ }
69
+ /**
70
+ * Loads the content of the scss file and returns it as an array of lines.
71
+ * If the file does not exist or cannot be read, it throws an error.
72
+ * @returns An array of lines from the scss file.
73
+ */
74
+ load() {
75
+ const content = this.tree.read(this.filePath);
76
+ if (!content) {
77
+ throw new Error(`Failed to read ${this.filePath}`);
78
+ }
79
+ return content.toString('utf-8').split('\n');
80
+ }
81
+ /**
82
+ * Saves the given lines to the scss file, overwriting its content.
83
+ * This method overwrites the existing content of the scss file with the provided lines.
84
+ * @param lines The lines to write to the file.
85
+ */
86
+ save(lines) {
87
+ this.tree.overwrite(this.filePath, lines.join('\n'));
88
+ }
89
+ }
90
+ exports.StylesScssEditor = StylesScssEditor;
91
+ //# sourceMappingURL=styles-scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles-scss.js","sourceRoot":"","sources":["../../../src/schematics/commands/styles-scss.ts"],"names":[],"mappings":";;;AASA;;GAEG;AACH,MAAa,0BAA0B;IACrC,YAA6B,QAA6B;QAA7B,aAAQ,GAAR,QAAQ,CAAqB;IAAG,CAAC;IAE9D,OAAO,CAAC,KAAe;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF;AAND,gEAMC;AAED;;;;GAIG;AACH,MAAa,gBAAgB;IAC3B,YAA6B,WAAqB;QAArB,gBAAW,GAAX,WAAW,CAAU;IAAG,CAAC;IAEtD,OAAO,CAAC,KAAe;QACrB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,SAAS,UAAU,IAAI,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvE,SAAS;YACX,CAAC;YAED,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvC,YAAY,GAAG,CAAC,CAAC;oBACjB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAzBD,4CAyBC;AAED;;;GAGG;AACH,MAAa,gBAAgB;IAC3B,YAAqC,IAAU,EAAmB,QAAgB;QAA7C,SAAI,GAAJ,IAAI,CAAM;QAAmB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEtF,MAAM,CAAC,MAAM,CAAC,IAAU,EAAE,QAAgB;QACxC,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,OAA0B;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACK,IAAI;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACK,IAAI,CAAC,KAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACF;AAtCD,4CAsCC"}
@@ -55,6 +55,16 @@ export declare class AddPropertyToClassCommand implements TypeScriptFileCommand
55
55
  private extractPropertyName;
56
56
  execute(sourceFile: ts.SourceFile, recorder: UpdateRecorder, filePath: string): void;
57
57
  }
58
+ /**
59
+ * Adds marker calls to a TypeScript file (e.g. `marker('a.b.c');`).
60
+ * New markers are inserted after the last existing marker call, or after the last import
61
+ * if no markers exist yet. Already-present marker strings are skipped.
62
+ */
63
+ export declare class AddMarkersToFileCommand implements TypeScriptFileCommand {
64
+ private readonly markerStrings;
65
+ constructor(markerStrings: string[]);
66
+ execute(sourceFile: ts.SourceFile, recorder: UpdateRecorder, filePath: string, context: SchematicContext): void;
67
+ }
58
68
  /**
59
69
  * Class for editing a typescript file.
60
70
  */