@breadstone-tools/localizator-core 0.0.12-beta.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 (238) hide show
  1. package/Detectors/Abstracts/BaseDetector.d.ts +81 -0
  2. package/Detectors/Abstracts/BaseDetector.d.ts.map +1 -0
  3. package/Detectors/Abstracts/BaseDetector.js +137 -0
  4. package/Detectors/Abstracts/BaseDetector.js.map +1 -0
  5. package/Detectors/AngularHTMLDetector.d.ts +94 -0
  6. package/Detectors/AngularHTMLDetector.d.ts.map +1 -0
  7. package/Detectors/AngularHTMLDetector.js +123 -0
  8. package/Detectors/AngularHTMLDetector.js.map +1 -0
  9. package/Detectors/Interfaces/IDetector.d.ts +73 -0
  10. package/Detectors/Interfaces/IDetector.d.ts.map +1 -0
  11. package/Detectors/Interfaces/IDetector.js +12 -0
  12. package/Detectors/Interfaces/IDetector.js.map +1 -0
  13. package/Detectors/JSXDetector.d.ts +69 -0
  14. package/Detectors/JSXDetector.d.ts.map +1 -0
  15. package/Detectors/JSXDetector.js +101 -0
  16. package/Detectors/JSXDetector.js.map +1 -0
  17. package/Detectors/JavaScriptDetector.d.ts +74 -0
  18. package/Detectors/JavaScriptDetector.d.ts.map +1 -0
  19. package/Detectors/JavaScriptDetector.js +106 -0
  20. package/Detectors/JavaScriptDetector.js.map +1 -0
  21. package/Detectors/TSXDetector.d.ts +76 -0
  22. package/Detectors/TSXDetector.d.ts.map +1 -0
  23. package/Detectors/TSXDetector.js +101 -0
  24. package/Detectors/TSXDetector.js.map +1 -0
  25. package/Detectors/TypeScriptDetector.d.ts +76 -0
  26. package/Detectors/TypeScriptDetector.d.ts.map +1 -0
  27. package/Detectors/TypeScriptDetector.js +102 -0
  28. package/Detectors/TypeScriptDetector.js.map +1 -0
  29. package/Detectors/Utils.d.ts +41 -0
  30. package/Detectors/Utils.d.ts.map +1 -0
  31. package/Detectors/Utils.js +62 -0
  32. package/Detectors/Utils.js.map +1 -0
  33. package/Detectors/VueDetector.d.ts +60 -0
  34. package/Detectors/VueDetector.d.ts.map +1 -0
  35. package/Detectors/VueDetector.js +108 -0
  36. package/Detectors/VueDetector.js.map +1 -0
  37. package/Formatters/Formatters.d.ts +15 -0
  38. package/Formatters/Formatters.d.ts.map +1 -0
  39. package/Formatters/Formatters.js +34 -0
  40. package/Formatters/Formatters.js.map +1 -0
  41. package/Formatters/Interfaces/IFormatter.d.ts +24 -0
  42. package/Formatters/Interfaces/IFormatter.d.ts.map +1 -0
  43. package/Formatters/Interfaces/IFormatter.js +3 -0
  44. package/Formatters/Interfaces/IFormatter.js.map +1 -0
  45. package/Formatters/JsonFormatter.d.ts +26 -0
  46. package/Formatters/JsonFormatter.d.ts.map +1 -0
  47. package/Formatters/JsonFormatter.js +42 -0
  48. package/Formatters/JsonFormatter.js.map +1 -0
  49. package/Formatters/ResxFormatter.d.ts +26 -0
  50. package/Formatters/ResxFormatter.d.ts.map +1 -0
  51. package/Formatters/ResxFormatter.js +53 -0
  52. package/Formatters/ResxFormatter.js.map +1 -0
  53. package/Index.d.ts +57 -0
  54. package/Index.d.ts.map +1 -0
  55. package/Index.js +86 -0
  56. package/Index.js.map +1 -0
  57. package/LICENSE +21 -0
  58. package/Presets/AngularPreset.d.ts +38 -0
  59. package/Presets/AngularPreset.d.ts.map +1 -0
  60. package/Presets/AngularPreset.js +59 -0
  61. package/Presets/AngularPreset.js.map +1 -0
  62. package/Presets/Interfaces/IFrameworkPreset.d.ts +28 -0
  63. package/Presets/Interfaces/IFrameworkPreset.d.ts.map +1 -0
  64. package/Presets/Interfaces/IFrameworkPreset.js +4 -0
  65. package/Presets/Interfaces/IFrameworkPreset.js.map +1 -0
  66. package/Presets/LitPreset.d.ts +38 -0
  67. package/Presets/LitPreset.d.ts.map +1 -0
  68. package/Presets/LitPreset.js +57 -0
  69. package/Presets/LitPreset.js.map +1 -0
  70. package/Presets/Presets.d.ts +25 -0
  71. package/Presets/Presets.d.ts.map +1 -0
  72. package/Presets/Presets.js +50 -0
  73. package/Presets/Presets.js.map +1 -0
  74. package/Presets/ReactPreset.d.ts +38 -0
  75. package/Presets/ReactPreset.d.ts.map +1 -0
  76. package/Presets/ReactPreset.js +61 -0
  77. package/Presets/ReactPreset.js.map +1 -0
  78. package/Presets/StencilPreset.d.ts +38 -0
  79. package/Presets/StencilPreset.d.ts.map +1 -0
  80. package/Presets/StencilPreset.js +59 -0
  81. package/Presets/StencilPreset.js.map +1 -0
  82. package/Presets/VuePreset.d.ts +38 -0
  83. package/Presets/VuePreset.d.ts.map +1 -0
  84. package/Presets/VuePreset.js +60 -0
  85. package/Presets/VuePreset.js.map +1 -0
  86. package/Resources/Analyzers/ResourceAnalyzer.d.ts +58 -0
  87. package/Resources/Analyzers/ResourceAnalyzer.d.ts.map +1 -0
  88. package/Resources/Analyzers/ResourceAnalyzer.js +119 -0
  89. package/Resources/Analyzers/ResourceAnalyzer.js.map +1 -0
  90. package/Resources/Analyzers/Tasks/DuplicateKeysTask.d.ts +31 -0
  91. package/Resources/Analyzers/Tasks/DuplicateKeysTask.d.ts.map +1 -0
  92. package/Resources/Analyzers/Tasks/DuplicateKeysTask.js +40 -0
  93. package/Resources/Analyzers/Tasks/DuplicateKeysTask.js.map +1 -0
  94. package/Resources/Analyzers/Tasks/EmptyValuesTask.d.ts +31 -0
  95. package/Resources/Analyzers/Tasks/EmptyValuesTask.d.ts.map +1 -0
  96. package/Resources/Analyzers/Tasks/EmptyValuesTask.js +41 -0
  97. package/Resources/Analyzers/Tasks/EmptyValuesTask.js.map +1 -0
  98. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.d.ts +36 -0
  99. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.d.ts.map +1 -0
  100. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.js +4 -0
  101. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.js.map +1 -0
  102. package/Resources/Analyzers/Tasks/KeyConsistencyTask.d.ts +35 -0
  103. package/Resources/Analyzers/Tasks/KeyConsistencyTask.d.ts.map +1 -0
  104. package/Resources/Analyzers/Tasks/KeyConsistencyTask.js +67 -0
  105. package/Resources/Analyzers/Tasks/KeyConsistencyTask.js.map +1 -0
  106. package/Resources/Analyzers/Tasks/MissingTranslationsTask.d.ts +31 -0
  107. package/Resources/Analyzers/Tasks/MissingTranslationsTask.d.ts.map +1 -0
  108. package/Resources/Analyzers/Tasks/MissingTranslationsTask.js +44 -0
  109. package/Resources/Analyzers/Tasks/MissingTranslationsTask.js.map +1 -0
  110. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.d.ts +31 -0
  111. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.d.ts.map +1 -0
  112. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.js +48 -0
  113. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.js.map +1 -0
  114. package/Resources/Analyzers/Tasks/UnusedKeysTask.d.ts +31 -0
  115. package/Resources/Analyzers/Tasks/UnusedKeysTask.d.ts.map +1 -0
  116. package/Resources/Analyzers/Tasks/UnusedKeysTask.js +49 -0
  117. package/Resources/Analyzers/Tasks/UnusedKeysTask.js.map +1 -0
  118. package/Resources/Models/Interfaces/IJsonResourceInfo.d.ts +12 -0
  119. package/Resources/Models/Interfaces/IJsonResourceInfo.d.ts.map +1 -0
  120. package/Resources/Models/Interfaces/IJsonResourceInfo.js +4 -0
  121. package/Resources/Models/Interfaces/IJsonResourceInfo.js.map +1 -0
  122. package/Resources/Models/Interfaces/IResourceInfo.d.ts +71 -0
  123. package/Resources/Models/Interfaces/IResourceInfo.d.ts.map +1 -0
  124. package/Resources/Models/Interfaces/IResourceInfo.js +4 -0
  125. package/Resources/Models/Interfaces/IResourceInfo.js.map +1 -0
  126. package/Resources/Models/Interfaces/IResourceModel.d.ts +41 -0
  127. package/Resources/Models/Interfaces/IResourceModel.d.ts.map +1 -0
  128. package/Resources/Models/Interfaces/IResourceModel.js +25 -0
  129. package/Resources/Models/Interfaces/IResourceModel.js.map +1 -0
  130. package/Resources/Models/Interfaces/IResxResourceInfo.d.ts +12 -0
  131. package/Resources/Models/Interfaces/IResxResourceInfo.d.ts.map +1 -0
  132. package/Resources/Models/Interfaces/IResxResourceInfo.js +4 -0
  133. package/Resources/Models/Interfaces/IResxResourceInfo.js.map +1 -0
  134. package/Resources/Models/Interfaces/ITypeScriptResourceInfo.d.ts +11 -0
  135. package/Resources/Models/Interfaces/ITypeScriptResourceInfo.d.ts.map +1 -0
  136. package/Resources/Models/Interfaces/ITypeScriptResourceInfo.js +4 -0
  137. package/Resources/Models/Interfaces/ITypeScriptResourceInfo.js.map +1 -0
  138. package/Resources/Models/Interfaces/ResourceType.d.ts +29 -0
  139. package/Resources/Models/Interfaces/ResourceType.d.ts.map +1 -0
  140. package/Resources/Models/Interfaces/ResourceType.js +45 -0
  141. package/Resources/Models/Interfaces/ResourceType.js.map +1 -0
  142. package/Resources/Models/JsonResourceInfo.d.ts +111 -0
  143. package/Resources/Models/JsonResourceInfo.d.ts.map +1 -0
  144. package/Resources/Models/JsonResourceInfo.js +184 -0
  145. package/Resources/Models/JsonResourceInfo.js.map +1 -0
  146. package/Resources/Models/ResxResourceInfo.d.ts +110 -0
  147. package/Resources/Models/ResxResourceInfo.d.ts.map +1 -0
  148. package/Resources/Models/ResxResourceInfo.js +171 -0
  149. package/Resources/Models/ResxResourceInfo.js.map +1 -0
  150. package/Resources/Models/TypeScriptResourceInfo.d.ts +109 -0
  151. package/Resources/Models/TypeScriptResourceInfo.d.ts.map +1 -0
  152. package/Resources/Models/TypeScriptResourceInfo.js +244 -0
  153. package/Resources/Models/TypeScriptResourceInfo.js.map +1 -0
  154. package/Resources/ResourceFactory.d.ts +39 -0
  155. package/Resources/ResourceFactory.d.ts.map +1 -0
  156. package/Resources/ResourceFactory.js +102 -0
  157. package/Resources/ResourceFactory.js.map +1 -0
  158. package/Resources/ResourceMode.d.ts +14 -0
  159. package/Resources/ResourceMode.d.ts.map +1 -0
  160. package/Resources/ResourceMode.js +18 -0
  161. package/Resources/ResourceMode.js.map +1 -0
  162. package/Resources/ResourceProcessor.d.ts +66 -0
  163. package/Resources/ResourceProcessor.d.ts.map +1 -0
  164. package/Resources/ResourceProcessor.js +90 -0
  165. package/Resources/ResourceProcessor.js.map +1 -0
  166. package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.d.ts +17 -0
  167. package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.d.ts.map +1 -0
  168. package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.js +4 -0
  169. package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.js.map +1 -0
  170. package/Resources/Scanners/Adapter/JsonScannerAdapter.d.ts +28 -0
  171. package/Resources/Scanners/Adapter/JsonScannerAdapter.d.ts.map +1 -0
  172. package/Resources/Scanners/Adapter/JsonScannerAdapter.js +62 -0
  173. package/Resources/Scanners/Adapter/JsonScannerAdapter.js.map +1 -0
  174. package/Resources/Scanners/Adapter/ResxScannerAdapter.d.ts +28 -0
  175. package/Resources/Scanners/Adapter/ResxScannerAdapter.d.ts.map +1 -0
  176. package/Resources/Scanners/Adapter/ResxScannerAdapter.js +62 -0
  177. package/Resources/Scanners/Adapter/ResxScannerAdapter.js.map +1 -0
  178. package/Resources/Scanners/ResourceScanner.d.ts +32 -0
  179. package/Resources/Scanners/ResourceScanner.d.ts.map +1 -0
  180. package/Resources/Scanners/ResourceScanner.js +59 -0
  181. package/Resources/Scanners/ResourceScanner.js.map +1 -0
  182. package/Resources/Sorting/ResourceSorter.d.ts +46 -0
  183. package/Resources/Sorting/ResourceSorter.d.ts.map +1 -0
  184. package/Resources/Sorting/ResourceSorter.js +82 -0
  185. package/Resources/Sorting/ResourceSorter.js.map +1 -0
  186. package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.d.ts +20 -0
  187. package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.d.ts.map +1 -0
  188. package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.js +15 -0
  189. package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.js.map +1 -0
  190. package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.d.ts +11 -0
  191. package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.d.ts.map +1 -0
  192. package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.js +4 -0
  193. package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.js.map +1 -0
  194. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.d.ts +26 -0
  195. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.d.ts.map +1 -0
  196. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.js +64 -0
  197. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.js.map +1 -0
  198. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.d.ts +19 -0
  199. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.d.ts.map +1 -0
  200. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.js +30 -0
  201. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.js.map +1 -0
  202. package/Resources/Transformers/Interfaces/IResourceTransformerResult.d.ts +11 -0
  203. package/Resources/Transformers/Interfaces/IResourceTransformerResult.d.ts.map +1 -0
  204. package/Resources/Transformers/Interfaces/IResourceTransformerResult.js +4 -0
  205. package/Resources/Transformers/Interfaces/IResourceTransformerResult.js.map +1 -0
  206. package/Resources/Transformers/ResourceTransformer.d.ts +74 -0
  207. package/Resources/Transformers/ResourceTransformer.d.ts.map +1 -0
  208. package/Resources/Transformers/ResourceTransformer.js +112 -0
  209. package/Resources/Transformers/ResourceTransformer.js.map +1 -0
  210. package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.d.ts +9 -0
  211. package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.d.ts.map +1 -0
  212. package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.js +4 -0
  213. package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.js.map +1 -0
  214. package/Resources/Transformers/Serializers/JsonResourceSerializer.d.ts +20 -0
  215. package/Resources/Transformers/Serializers/JsonResourceSerializer.d.ts.map +1 -0
  216. package/Resources/Transformers/Serializers/JsonResourceSerializer.js +47 -0
  217. package/Resources/Transformers/Serializers/JsonResourceSerializer.js.map +1 -0
  218. package/Resources/Transformers/Serializers/ResxResourceSerializer.d.ts +20 -0
  219. package/Resources/Transformers/Serializers/ResxResourceSerializer.d.ts.map +1 -0
  220. package/Resources/Transformers/Serializers/ResxResourceSerializer.js +36 -0
  221. package/Resources/Transformers/Serializers/ResxResourceSerializer.js.map +1 -0
  222. package/Resources/Transformers/Serializers/TypescriptResourceSerializer.d.ts +20 -0
  223. package/Resources/Transformers/Serializers/TypescriptResourceSerializer.d.ts.map +1 -0
  224. package/Resources/Transformers/Serializers/TypescriptResourceSerializer.js +36 -0
  225. package/Resources/Transformers/Serializers/TypescriptResourceSerializer.js.map +1 -0
  226. package/Services/DiffService.d.ts +1 -0
  227. package/Services/DiffService.d.ts.map +1 -0
  228. package/Services/DiffService.js +86 -0
  229. package/Services/DiffService.js.map +1 -0
  230. package/Services/KeyGenerator.d.ts +21 -0
  231. package/Services/KeyGenerator.d.ts.map +1 -0
  232. package/Services/KeyGenerator.js +34 -0
  233. package/Services/KeyGenerator.js.map +1 -0
  234. package/Services/LocalizationProcessor.d.ts +83 -0
  235. package/Services/LocalizationProcessor.d.ts.map +1 -0
  236. package/Services/LocalizationProcessor.js +90 -0
  237. package/Services/LocalizationProcessor.js.map +1 -0
  238. package/package.json +19 -0
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.StencilPreset = void 0;
5
+ const TSXDetector_js_1 = require("../Detectors/TSXDetector.js");
6
+ const TypeScriptDetector_js_1 = require("../Detectors/TypeScriptDetector.js");
7
+ // #endregion
8
+ /**
9
+ * Preset for Stencil.js applications.
10
+ *
11
+ * @public
12
+ */
13
+ class StencilPreset {
14
+ // #region Fields
15
+ _parsers;
16
+ // #endregion
17
+ // #region Ctor
18
+ /**
19
+ * Constructs a new instance of the `StencilPreset` class.
20
+ *
21
+ * @public
22
+ * @param logger - The logger.
23
+ */
24
+ constructor(logger) {
25
+ this._parsers = {
26
+ '.tsx': new TSXDetector_js_1.TSXDetector(logger),
27
+ '.ts': new TypeScriptDetector_js_1.TypeScriptDetector(logger)
28
+ };
29
+ }
30
+ // #endregion
31
+ // #region Methods
32
+ /**
33
+ * Returns parsers mapped to file extensions.
34
+ *
35
+ * @returns A mapping of file extensions to parsers.
36
+ */
37
+ getParsers() {
38
+ return this._parsers;
39
+ }
40
+ /**
41
+ * Returns a parser for a specific file extension.
42
+ *
43
+ * @param extension - The file extension.
44
+ * @returns The parser.
45
+ */
46
+ getParser(extension) {
47
+ return this._parsers[extension];
48
+ }
49
+ /**
50
+ * Returns the extensions supported by the preset.
51
+ *
52
+ * @returns An array of supported extensions.
53
+ */
54
+ getExtensions() {
55
+ return Object.keys(this._parsers);
56
+ }
57
+ }
58
+ exports.StencilPreset = StencilPreset;
59
+ //# sourceMappingURL=StencilPreset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StencilPreset.js","sourceRoot":"","sources":["../../src/Presets/StencilPreset.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,gEAA0D;AAC1D,8EAAwE;AAGxE,aAAa;AAEb;;;;GAIG;AACH,MAAa,aAAa;IAEtB,iBAAiB;IAEA,QAAQ,CAA4B;IAErD,aAAa;IAEb,eAAe;IAEf;;;;;OAKG;IACH,YAAmB,MAAe;QAC9B,IAAI,CAAC,QAAQ,GAAG;YACZ,MAAM,EAAE,IAAI,4BAAW,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,IAAI,0CAAkB,CAAC,MAAM,CAAC;SACxC,CAAC;IACN,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;OAIG;IACI,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,aAAa;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CAIJ;AAzDD,sCAyDC"}
@@ -0,0 +1,38 @@
1
+ import type { IFrameworkPreset } from './Interfaces/IFrameworkPreset.js';
2
+ import type { IDetector } from '../Detectors/Interfaces/IDetector.js';
3
+ import type { ILogger } from '@breadstone-infrastructure/utilities';
4
+ /**
5
+ * Preset for Vue applications.
6
+ *
7
+ * @public
8
+ */
9
+ export declare class VuePreset implements IFrameworkPreset {
10
+ private readonly _parsers;
11
+ /**
12
+ * Constructs a new instance of the `VuePreset` class.
13
+ *
14
+ * @public
15
+ * @param logger - The logger.
16
+ */
17
+ constructor(logger: ILogger);
18
+ /**
19
+ * Returns parsers mapped to file extensions.
20
+ *
21
+ * @returns A mapping of file extensions to parsers.
22
+ */
23
+ getParsers(): Record<string, IDetector>;
24
+ /**
25
+ * Returns a parser for a specific file extension.
26
+ *
27
+ * @param extension - The file extension.
28
+ * @returns The parser.
29
+ */
30
+ getParser(extension: string): IDetector;
31
+ /**
32
+ * Returns the extensions supported by the preset.
33
+ *
34
+ * @returns An array of supported extensions.
35
+ */
36
+ getExtensions(): Array<string>;
37
+ }
38
+ //# sourceMappingURL=VuePreset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VuePreset.d.ts","sourceRoot":"","sources":["../../src/Presets/VuePreset.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAIpE;;;;GAIG;AACH,qBAAa,SAAU,YAAW,gBAAgB;IAI9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IAMrD;;;;;OAKG;gBACgB,MAAM,EAAE,OAAO;IAYlC;;;;OAIG;IACI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAI9C;;;;;OAKG;IACI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAI9C;;;;OAIG;IACI,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;CAMxC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VuePreset = void 0;
5
+ const TypeScriptDetector_js_1 = require("../Detectors/TypeScriptDetector.js");
6
+ const VueDetector_js_1 = require("../Detectors/VueDetector.js");
7
+ // #endregion
8
+ /**
9
+ * Preset for Vue applications.
10
+ *
11
+ * @public
12
+ */
13
+ class VuePreset {
14
+ // #region Fields
15
+ _parsers;
16
+ // #endregion
17
+ // #region Ctor
18
+ /**
19
+ * Constructs a new instance of the `VuePreset` class.
20
+ *
21
+ * @public
22
+ * @param logger - The logger.
23
+ */
24
+ constructor(logger) {
25
+ this._parsers = {
26
+ '.vue': new VueDetector_js_1.VueDetector(logger),
27
+ '.ts': new TypeScriptDetector_js_1.TypeScriptDetector(logger),
28
+ '.js': new TypeScriptDetector_js_1.TypeScriptDetector(logger)
29
+ };
30
+ }
31
+ // #endregion
32
+ // #region Methods
33
+ /**
34
+ * Returns parsers mapped to file extensions.
35
+ *
36
+ * @returns A mapping of file extensions to parsers.
37
+ */
38
+ getParsers() {
39
+ return this._parsers;
40
+ }
41
+ /**
42
+ * Returns a parser for a specific file extension.
43
+ *
44
+ * @param extension - The file extension.
45
+ * @returns The parser.
46
+ */
47
+ getParser(extension) {
48
+ return this._parsers[extension];
49
+ }
50
+ /**
51
+ * Returns the extensions supported by the preset.
52
+ *
53
+ * @returns An array of supported extensions.
54
+ */
55
+ getExtensions() {
56
+ return Object.keys(this._parsers);
57
+ }
58
+ }
59
+ exports.VuePreset = VuePreset;
60
+ //# sourceMappingURL=VuePreset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VuePreset.js","sourceRoot":"","sources":["../../src/Presets/VuePreset.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,8EAAwE;AACxE,gEAA0D;AAG1D,aAAa;AAEb;;;;GAIG;AACH,MAAa,SAAS;IAElB,iBAAiB;IAEA,QAAQ,CAA4B;IAErD,aAAa;IAEb,eAAe;IAEf;;;;;OAKG;IACH,YAAmB,MAAe;QAC9B,IAAI,CAAC,QAAQ,GAAG;YACZ,MAAM,EAAE,IAAI,4BAAW,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,IAAI,0CAAkB,CAAC,MAAM,CAAC;YACrC,KAAK,EAAE,IAAI,0CAAkB,CAAC,MAAM,CAAC;SACxC,CAAC;IACN,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;OAIG;IACI,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,aAAa;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CAIJ;AA1DD,8BA0DC"}
@@ -0,0 +1,58 @@
1
+ import { type ILogger } from '@breadstone-infrastructure/utilities';
2
+ import type { IAnalyzerTask, IAnalyzerTaskExecutionContext, IAnalyzerTaskResult } from './Tasks/Interfaces/IAnalyzerTask';
3
+ /**
4
+ * The `ResourceAnalyzer` class, responsible for managing and executing analyzer tasks.
5
+ *
6
+ * @public
7
+ */
8
+ export declare class ResourceAnalyzer {
9
+ private readonly _logger;
10
+ private readonly _tasks;
11
+ /**
12
+ * Constructs a new instance of the `ResourceAnalyzer` class.
13
+ *
14
+ * @public
15
+ */
16
+ constructor(logger: ILogger);
17
+ /**
18
+ * Registers a new analyzer task.
19
+ *
20
+ * @param name - The name of the task.
21
+ * @param task - The task instance.
22
+ * @throws Error if the task name is already registered.
23
+ */
24
+ registerTask(name: string, task: IAnalyzerTask): void;
25
+ /**
26
+ * Unregisters an analyzer task.
27
+ *
28
+ * @param name - The name of the task to unregister.
29
+ * @returns `true` if the task was successfully unregistered; otherwise, `false`.
30
+ */
31
+ unregisterTask(name: string): boolean;
32
+ /**
33
+ * Executes the specified analyzer task.
34
+ *
35
+ * @public
36
+ * @param name - The name of the task to execute.
37
+ * @param context - The execution context containing resources and additional parameters.
38
+ * @returns The result of the task execution.
39
+ * @throws Error if the task is not registered.
40
+ */
41
+ executeTask(name: string, context: IAnalyzerTaskExecutionContext): IAnalyzerTaskResult;
42
+ /**
43
+ * Executes all registered tasks.
44
+ *
45
+ * @public
46
+ * @param context - The execution context containing resources and additional parameters.
47
+ * @returns An array of task results.
48
+ */
49
+ executeAllTasks(context: IAnalyzerTaskExecutionContext): Array<IAnalyzerTaskResult>;
50
+ /**
51
+ * Lists all registered tasks.
52
+ *
53
+ * @public
54
+ * @returns An array of registered task names.
55
+ */
56
+ listTasks(): Array<string>;
57
+ }
58
+ //# sourceMappingURL=ResourceAnalyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/Resources/Analyzers/ResourceAnalyzer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,OAAO,EAAsB,MAAM,sCAAsC,CAAC;AAG9F,OAAO,KAAK,EAAE,aAAa,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAQ1H;;;;GAIG;AACH,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAMpD;;;;OAIG;gBACgB,MAAM,EAAE,OAAO;IAiBlC;;;;;;OAMG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAO5D;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI5C;;;;;;;;OAQG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,GAAG,mBAAmB;IAe7F;;;;;;OAMG;IACI,eAAe,CAAC,OAAO,EAAE,6BAA6B,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAwB1F;;;;;OAKG;IACI,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;CAMpC"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ResourceAnalyzer = void 0;
5
+ const utilities_1 = require("@breadstone-infrastructure/utilities");
6
+ const DuplicateKeysTask_1 = require("./Tasks/DuplicateKeysTask");
7
+ const EmptyValuesTask_1 = require("./Tasks/EmptyValuesTask");
8
+ const KeyConsistencyTask_1 = require("./Tasks/KeyConsistencyTask");
9
+ const MissingTranslationsTask_1 = require("./Tasks/MissingTranslationsTask");
10
+ const MultipleKeyUsageTask_1 = require("./Tasks/MultipleKeyUsageTask");
11
+ const UnusedKeysTask_1 = require("./Tasks/UnusedKeysTask");
12
+ // #endregion
13
+ /**
14
+ * The `ResourceAnalyzer` class, responsible for managing and executing analyzer tasks.
15
+ *
16
+ * @public
17
+ */
18
+ class ResourceAnalyzer {
19
+ // #region Fields
20
+ _logger;
21
+ _tasks;
22
+ // #endregion
23
+ // #region Ctor
24
+ /**
25
+ * Constructs a new instance of the `ResourceAnalyzer` class.
26
+ *
27
+ * @public
28
+ */
29
+ constructor(logger) {
30
+ this._logger = logger;
31
+ this._tasks = new Map();
32
+ // pre-defined tasks
33
+ this.registerTask('duplicate-keys', new DuplicateKeysTask_1.DuplicateKeysTask());
34
+ this.registerTask('empty-values', new EmptyValuesTask_1.EmptyValuesTask());
35
+ this.registerTask('key-consistency', new KeyConsistencyTask_1.KeyConsistencyTask());
36
+ this.registerTask('missing-translations', new MissingTranslationsTask_1.MissingTranslationsTask());
37
+ this.registerTask('unused-keys', new UnusedKeysTask_1.UnusedKeysTask());
38
+ this.registerTask('multiple-key-usage', new MultipleKeyUsageTask_1.MultipleKeyUsageTask());
39
+ }
40
+ // #endregion
41
+ // #region Methods
42
+ /**
43
+ * Registers a new analyzer task.
44
+ *
45
+ * @param name - The name of the task.
46
+ * @param task - The task instance.
47
+ * @throws Error if the task name is already registered.
48
+ */
49
+ registerTask(name, task) {
50
+ if (this._tasks.has(name)) {
51
+ throw new Error(`Task '${name}' is already registered.`);
52
+ }
53
+ this._tasks.set(name, task);
54
+ }
55
+ /**
56
+ * Unregisters an analyzer task.
57
+ *
58
+ * @param name - The name of the task to unregister.
59
+ * @returns `true` if the task was successfully unregistered; otherwise, `false`.
60
+ */
61
+ unregisterTask(name) {
62
+ return this._tasks.delete(name);
63
+ }
64
+ /**
65
+ * Executes the specified analyzer task.
66
+ *
67
+ * @public
68
+ * @param name - The name of the task to execute.
69
+ * @param context - The execution context containing resources and additional parameters.
70
+ * @returns The result of the task execution.
71
+ * @throws Error if the task is not registered.
72
+ */
73
+ executeTask(name, context) {
74
+ this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Executing task '${name}'...`)}`);
75
+ const task = this._tasks.get(name);
76
+ if (!task) {
77
+ throw new Error(`Task '${name}' is not registered.`);
78
+ }
79
+ const result = task.execute(context);
80
+ this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Task '${name}' completed.`)}`);
81
+ return result;
82
+ }
83
+ /**
84
+ * Executes all registered tasks.
85
+ *
86
+ * @public
87
+ * @param context - The execution context containing resources and additional parameters.
88
+ * @returns An array of task results.
89
+ */
90
+ executeAllTasks(context) {
91
+ this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)('Executing all tasks...')}`);
92
+ const results = [];
93
+ for (const [name, task] of this._tasks) {
94
+ const result = task.execute(context);
95
+ if (result.success) {
96
+ this._logger.log((0, utilities_1.t) ` ${(0, utilities_1.symbol)('success')} ${(0, utilities_1.bold)(name)} completed.`);
97
+ this._logger.log((0, utilities_1.t) ` ${result.message}`);
98
+ }
99
+ else {
100
+ this._logger.log((0, utilities_1.t) ` ${(0, utilities_1.symbol)('error')} ${(0, utilities_1.bold)(name)} failed.`);
101
+ this._logger.log((0, utilities_1.t) ` ${result.message}`);
102
+ }
103
+ results.push(result);
104
+ }
105
+ this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)('All tasks completed.')}`);
106
+ return results;
107
+ }
108
+ /**
109
+ * Lists all registered tasks.
110
+ *
111
+ * @public
112
+ * @returns An array of registered task names.
113
+ */
114
+ listTasks() {
115
+ return Array.from(this._tasks.keys());
116
+ }
117
+ }
118
+ exports.ResourceAnalyzer = ResourceAnalyzer;
119
+ //# sourceMappingURL=ResourceAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceAnalyzer.js","sourceRoot":"","sources":["../../../src/Resources/Analyzers/ResourceAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { IAnalyzerTask, IAnalyzerTaskExecutionContext, IAnalyzerTaskResult } from './Interfaces/IAnalyzerTask';
2
+ /**
3
+ * Represents the result data for duplicate keys analysis.
4
+ *
5
+ * @public
6
+ */
7
+ export interface IDuplicateKeysTaskData {
8
+ /**
9
+ * The locale of the resource where duplicates were found.
10
+ */
11
+ locale: string;
12
+ /**
13
+ * The list of duplicate keys in the resource.
14
+ */
15
+ duplicates: Array<string>;
16
+ }
17
+ /**
18
+ * Task to check for duplicate keys in resources.
19
+ *
20
+ * @public
21
+ */
22
+ export declare class DuplicateKeysTask implements IAnalyzerTask<Array<IDuplicateKeysTaskData>> {
23
+ /**
24
+ * Executes the duplicate keys check.
25
+ *
26
+ * @param context - The execution context containing resources and parameters.
27
+ * @returns The task result with duplicate key information.
28
+ */
29
+ execute(context: IAnalyzerTaskExecutionContext): IAnalyzerTaskResult<Array<IDuplicateKeysTaskData>>;
30
+ }
31
+ //# sourceMappingURL=DuplicateKeysTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DuplicateKeysTask.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Analyzers/Tasks/DuplicateKeysTask.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIpH;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IAInC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAI7B;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,aAAa,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAElF;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,6BAA6B,GAAG,mBAAmB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;CAyB7G"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DuplicateKeysTask = void 0;
5
+ /**
6
+ * Task to check for duplicate keys in resources.
7
+ *
8
+ * @public
9
+ */
10
+ class DuplicateKeysTask {
11
+ /**
12
+ * Executes the duplicate keys check.
13
+ *
14
+ * @param context - The execution context containing resources and parameters.
15
+ * @returns The task result with duplicate key information.
16
+ */
17
+ execute(context) {
18
+ const results = [];
19
+ const keys = context.resource.keys();
20
+ const duplicates = keys.filter((key, index, arr) => arr.indexOf(key) !== index);
21
+ if (duplicates.length > 0) {
22
+ results.push({
23
+ locale: context.resource.locale,
24
+ duplicates
25
+ });
26
+ }
27
+ const success = results.length === 0;
28
+ const message = success
29
+ ? `No duplicate keys were found in the resource '${context.resource.locale}'.`
30
+ : `The resource '${context.resource.locale}' contains duplicate keys: ${duplicates.join(', ')}. Duplicate keys can lead to unexpected behavior or conflicts in translations.`;
31
+ return {
32
+ resource: context.resource,
33
+ success,
34
+ message,
35
+ data: results
36
+ };
37
+ }
38
+ }
39
+ exports.DuplicateKeysTask = DuplicateKeysTask;
40
+ //# sourceMappingURL=DuplicateKeysTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DuplicateKeysTask.js","sourceRoot":"","sources":["../../../../src/Resources/Analyzers/Tasks/DuplicateKeysTask.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AA6BlB;;;;GAIG;AACH,MAAa,iBAAiB;IAE1B;;;;;OAKG;IACI,OAAO,CAAC,OAAsC;QACjD,MAAM,OAAO,GAAkC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;QAEhF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAC/B,UAAU;aACb,CAAC,CAAC;QACP,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO;YACnB,CAAC,CAAC,iDAAiD,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI;YAC9E,CAAC,CAAC,iBAAiB,OAAO,CAAC,QAAQ,CAAC,MAAM,8BAA8B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gFAAgF,CAAC;QAElL,OAAO;YACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,OAAO;YACP,IAAI,EAAE,OAAO;SAChB,CAAC;IACN,CAAC;CAEJ;AAjCD,8CAiCC"}
@@ -0,0 +1,31 @@
1
+ import type { IAnalyzerTask, IAnalyzerTaskExecutionContext, IAnalyzerTaskResult } from './Interfaces/IAnalyzerTask';
2
+ /**
3
+ * Represents the result of the EmptyValuesTask execution.
4
+ *
5
+ * @public
6
+ */
7
+ export interface IEmptyValuesTaskResultData {
8
+ /**
9
+ * The locale of the resource where empty values were found.
10
+ */
11
+ locale: string;
12
+ /**
13
+ * The list of keys with empty values in the resource.
14
+ */
15
+ keys: Array<string>;
16
+ }
17
+ /**
18
+ * Task to check for empty values in resources.
19
+ *
20
+ * @public
21
+ */
22
+ export declare class EmptyValuesTask implements IAnalyzerTask<Array<IEmptyValuesTaskResultData>> {
23
+ /**
24
+ * Executes the empty values check.
25
+ *
26
+ * @param context - The execution context containing resources and parameters.
27
+ * @returns The task result containing information about empty values.
28
+ */
29
+ execute(context: IAnalyzerTaskExecutionContext): IAnalyzerTaskResult<Array<IEmptyValuesTaskResultData>>;
30
+ }
31
+ //# sourceMappingURL=EmptyValuesTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyValuesTask.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Analyzers/Tasks/EmptyValuesTask.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIpH;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IAEvC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAEvB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,aAAa,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEpF;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,6BAA6B,GAAG,mBAAmB,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;CA2BjH"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EmptyValuesTask = void 0;
5
+ /**
6
+ * Task to check for empty values in resources.
7
+ *
8
+ * @public
9
+ */
10
+ class EmptyValuesTask {
11
+ /**
12
+ * Executes the empty values check.
13
+ *
14
+ * @param context - The execution context containing resources and parameters.
15
+ * @returns The task result containing information about empty values.
16
+ */
17
+ execute(context) {
18
+ const results = [];
19
+ const emptyValues = context.resource.entries().filter((entry) => !entry[1]);
20
+ if (emptyValues.length > 0) {
21
+ results.push({
22
+ locale: context.resource.locale,
23
+ keys: emptyValues.map((entry) => entry[0])
24
+ });
25
+ }
26
+ const success = results.length === 0;
27
+ const message = success
28
+ ? `No empty values were found in the resource '${context.resource.locale}'.`
29
+ : `The resource '${context.resource.locale}' contains empty values for the following keys: ${emptyValues
30
+ .map((entry) => entry[0])
31
+ .join(', ')}. Empty values can lead to incomplete or missing translations.`;
32
+ return {
33
+ resource: context.resource,
34
+ success,
35
+ message,
36
+ data: results
37
+ };
38
+ }
39
+ }
40
+ exports.EmptyValuesTask = EmptyValuesTask;
41
+ //# sourceMappingURL=EmptyValuesTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyValuesTask.js","sourceRoot":"","sources":["../../../../src/Resources/Analyzers/Tasks/EmptyValuesTask.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAyBlB;;;;GAIG;AACH,MAAa,eAAe;IAExB;;;;;OAKG;IACI,OAAO,CAAC,OAAsC;QACjD,MAAM,OAAO,GAAsC,EAAE,CAAC;QAEtD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAC/B,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC7C,CAAC,CAAC;QACP,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO;YACnB,CAAC,CAAC,+CAA+C,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI;YAC5E,CAAC,CAAC,iBAAiB,OAAO,CAAC,QAAQ,CAAC,MAAM,mDAAmD,WAAW;iBACnG,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACxB,IAAI,CAAC,IAAI,CAAC,gEAAgE,CAAC;QAEpF,OAAO;YACH,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,OAAO;YACP,IAAI,EAAE,OAAO;SAChB,CAAC;IACN,CAAC;CAEJ;AAnCD,0CAmCC"}
@@ -0,0 +1,36 @@
1
+ import type { IResourceInfo } from '../../../Models/Interfaces/IResourceInfo';
2
+ /**
3
+ * Represents the result of an analysis task.
4
+ *
5
+ * @public
6
+ * @template T - The type of the result data.
7
+ */
8
+ export interface IAnalyzerTaskResult<T = unknown> {
9
+ resource: IResourceInfo;
10
+ success: boolean;
11
+ message: string;
12
+ data: T;
13
+ }
14
+ /**
15
+ * Represents the context for executing an analyzer task.
16
+ *
17
+ * @public
18
+ */
19
+ export interface IAnalyzerTaskExecutionContext {
20
+ resource: IResourceInfo;
21
+ parameters: Record<string, unknown>;
22
+ }
23
+ /**
24
+ * The interface for analyzer tasks.
25
+ *
26
+ * @template TResult - The type of the result data.
27
+ */
28
+ export interface IAnalyzerTask<TResult = unknown> {
29
+ /**
30
+ * Executes the analysis task.
31
+ *
32
+ * @param context - The execution context.
33
+ */
34
+ execute(context: IAnalyzerTaskExecutionContext): IAnalyzerTaskResult<TResult>;
35
+ }
36
+ //# sourceMappingURL=IAnalyzerTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAnalyzerTask.d.ts","sourceRoot":"","sources":["../../../../../src/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAI9E;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC5C,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC1C,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,OAAO;IAI5C;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,6BAA6B,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;CAIjF"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=IAnalyzerTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAnalyzerTask.js","sourceRoot":"","sources":["../../../../../src/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.ts"],"names":[],"mappings":";AAAA,kBAAkB"}
@@ -0,0 +1,35 @@
1
+ import type { IAnalyzerTask, IAnalyzerTaskExecutionContext, IAnalyzerTaskResult } from './Interfaces/IAnalyzerTask';
2
+ /**
3
+ * Represents the result data for key consistency analysis.
4
+ *
5
+ * @public
6
+ */
7
+ export interface IKeyConsistencyTaskResultData {
8
+ /**
9
+ * The locale of the resource being analyzed.
10
+ */
11
+ locale: string;
12
+ /**
13
+ * A list of keys missing from the locale.
14
+ */
15
+ missingKeys: Array<string>;
16
+ /**
17
+ * Indicates if the locale is empty.
18
+ */
19
+ isEmpty: boolean;
20
+ }
21
+ /**
22
+ * Task to check key consistency across resources.
23
+ *
24
+ * @public
25
+ */
26
+ export declare class KeyConsistencyTask implements IAnalyzerTask<Array<IKeyConsistencyTaskResultData>> {
27
+ /**
28
+ * Executes the key consistency check.
29
+ *
30
+ * @param context - The execution context containing resources and parameters.
31
+ * @returns The task result with information about missing keys and empty locales.
32
+ */
33
+ execute(context: IAnalyzerTaskExecutionContext): IAnalyzerTaskResult<Array<IKeyConsistencyTaskResultData>>;
34
+ }
35
+ //# sourceMappingURL=KeyConsistencyTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyConsistencyTask.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Analyzers/Tasks/KeyConsistencyTask.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIpH;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAE1C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAEpB;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,aAAa,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE1F;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,6BAA6B,GAAG,mBAAmB,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;CAsDpH"}