@breadstone-tools/localizator-core 0.0.85 → 0.0.88

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 (104) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/Index.d.ts +11 -7
  3. package/Index.d.ts.map +1 -1
  4. package/Index.js +17 -13
  5. package/Index.js.map +1 -1
  6. package/Resources/Analyzers/ResourceAnalyzer.d.ts +33 -24
  7. package/Resources/Analyzers/ResourceAnalyzer.d.ts.map +1 -1
  8. package/Resources/Analyzers/ResourceAnalyzer.js +60 -57
  9. package/Resources/Analyzers/ResourceAnalyzer.js.map +1 -1
  10. package/Resources/Analyzers/Tasks/DuplicateKeysRule.d.ts +31 -0
  11. package/Resources/Analyzers/Tasks/{DuplicateKeysTask.d.ts.map → DuplicateKeysRule.d.ts.map} +1 -1
  12. package/Resources/Analyzers/Tasks/{DuplicateKeysTask.js → DuplicateKeysRule.js} +6 -6
  13. package/Resources/Analyzers/Tasks/{DuplicateKeysTask.js.map → DuplicateKeysRule.js.map} +1 -1
  14. package/Resources/Analyzers/Tasks/DuplicateValuesRule.d.ts +40 -0
  15. package/Resources/Analyzers/Tasks/DuplicateValuesRule.d.ts.map +1 -0
  16. package/Resources/Analyzers/Tasks/DuplicateValuesRule.js +49 -0
  17. package/Resources/Analyzers/Tasks/DuplicateValuesRule.js.map +1 -0
  18. package/Resources/Analyzers/Tasks/EmptyValuesRule.d.ts +31 -0
  19. package/Resources/Analyzers/Tasks/{EmptyValuesTask.d.ts.map → EmptyValuesRule.d.ts.map} +1 -1
  20. package/Resources/Analyzers/Tasks/{EmptyValuesTask.js → EmptyValuesRule.js} +6 -6
  21. package/Resources/Analyzers/Tasks/{EmptyValuesTask.js.map → EmptyValuesRule.js.map} +1 -1
  22. package/Resources/Analyzers/Tasks/Interfaces/{IAnalyzerTask.d.ts → IAnalyzerRule.d.ts} +9 -9
  23. package/Resources/Analyzers/Tasks/Interfaces/{IAnalyzerTask.d.ts.map → IAnalyzerRule.d.ts.map} +1 -1
  24. package/Resources/Analyzers/Tasks/Interfaces/{IAnalyzerTask.js → IAnalyzerRule.js} +1 -1
  25. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerRule.js.map +1 -0
  26. package/Resources/Analyzers/Tasks/KeyConsistencyRule.d.ts +35 -0
  27. package/Resources/Analyzers/Tasks/{KeyConsistencyTask.d.ts.map → KeyConsistencyRule.d.ts.map} +1 -1
  28. package/Resources/Analyzers/Tasks/{KeyConsistencyTask.js → KeyConsistencyRule.js} +6 -6
  29. package/Resources/Analyzers/Tasks/{KeyConsistencyTask.js.map → KeyConsistencyRule.js.map} +1 -1
  30. package/Resources/Analyzers/Tasks/MissingTranslationsRule.d.ts +31 -0
  31. package/Resources/Analyzers/Tasks/{MissingTranslationsTask.d.ts.map → MissingTranslationsRule.d.ts.map} +1 -1
  32. package/Resources/Analyzers/Tasks/{MissingTranslationsTask.js → MissingTranslationsRule.js} +6 -6
  33. package/Resources/Analyzers/Tasks/{MissingTranslationsTask.js.map → MissingTranslationsRule.js.map} +1 -1
  34. package/Resources/Analyzers/Tasks/MultipleKeyUsageRule.d.ts +31 -0
  35. package/Resources/Analyzers/Tasks/{MultipleKeyUsageTask.d.ts.map → MultipleKeyUsageRule.d.ts.map} +1 -1
  36. package/Resources/Analyzers/Tasks/{MultipleKeyUsageTask.js → MultipleKeyUsageRule.js} +6 -6
  37. package/Resources/Analyzers/Tasks/{MultipleKeyUsageTask.js.map → MultipleKeyUsageRule.js.map} +1 -1
  38. package/Resources/Analyzers/Tasks/UnusedKeysRule.d.ts +31 -0
  39. package/Resources/Analyzers/Tasks/{UnusedKeysTask.d.ts.map → UnusedKeysRule.d.ts.map} +1 -1
  40. package/Resources/Analyzers/Tasks/{UnusedKeysTask.js → UnusedKeysRule.js} +6 -6
  41. package/Resources/Analyzers/Tasks/{UnusedKeysTask.js.map → UnusedKeysRule.js.map} +1 -1
  42. package/Resources/Models/Interfaces/IPoResourceInfo.d.ts +12 -0
  43. package/Resources/Models/Interfaces/IPoResourceInfo.d.ts.map +1 -0
  44. package/Resources/Models/Interfaces/IPoResourceInfo.js +4 -0
  45. package/Resources/Models/Interfaces/IPoResourceInfo.js.map +1 -0
  46. package/Resources/Models/Interfaces/ResourceType.d.ts +4 -0
  47. package/Resources/Models/Interfaces/ResourceType.d.ts.map +1 -1
  48. package/Resources/Models/Interfaces/ResourceType.js +8 -1
  49. package/Resources/Models/Interfaces/ResourceType.js.map +1 -1
  50. package/Resources/Models/PoResourceInfo.d.ts +110 -0
  51. package/Resources/Models/PoResourceInfo.d.ts.map +1 -0
  52. package/Resources/Models/PoResourceInfo.js +190 -0
  53. package/Resources/Models/PoResourceInfo.js.map +1 -0
  54. package/Resources/PoFileParser.d.ts +48 -0
  55. package/Resources/PoFileParser.d.ts.map +1 -0
  56. package/Resources/PoFileParser.js +111 -0
  57. package/Resources/PoFileParser.js.map +1 -0
  58. package/Resources/PoFileReader.d.ts +25 -0
  59. package/Resources/PoFileReader.d.ts.map +1 -0
  60. package/Resources/PoFileReader.js +43 -0
  61. package/Resources/PoFileReader.js.map +1 -0
  62. package/Resources/Readers/Adapter/PoResourceReaderAdapter.d.ts +44 -0
  63. package/Resources/Readers/Adapter/PoResourceReaderAdapter.d.ts.map +1 -0
  64. package/Resources/Readers/Adapter/PoResourceReaderAdapter.js +118 -0
  65. package/Resources/Readers/Adapter/PoResourceReaderAdapter.js.map +1 -0
  66. package/Resources/Readers/Adapter/ResxResourceReaderAdapter.d.ts +2 -2
  67. package/Resources/Readers/Adapter/ResxResourceReaderAdapter.js +2 -2
  68. package/Resources/Readers/ResourceReader.d.ts.map +1 -1
  69. package/Resources/Readers/ResourceReader.js +3 -1
  70. package/Resources/Readers/ResourceReader.js.map +1 -1
  71. package/Resources/ResourceMode.d.ts +4 -0
  72. package/Resources/ResourceMode.d.ts.map +1 -1
  73. package/Resources/ResourceMode.js +5 -1
  74. package/Resources/ResourceMode.js.map +1 -1
  75. package/Resources/ResourceProcessor.d.ts +3 -3
  76. package/Resources/ResourceProcessor.js +2 -2
  77. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.d.ts +1 -8
  78. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.d.ts.map +1 -1
  79. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.js +1 -22
  80. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.js.map +1 -1
  81. package/Resources/Transformers/Adapters/PoResourceTransformerAdapter.d.ts +19 -0
  82. package/Resources/Transformers/Adapters/PoResourceTransformerAdapter.d.ts.map +1 -0
  83. package/Resources/Transformers/Adapters/PoResourceTransformerAdapter.js +30 -0
  84. package/Resources/Transformers/Adapters/PoResourceTransformerAdapter.js.map +1 -0
  85. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.d.ts +1 -1
  86. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.js +1 -1
  87. package/Resources/Transformers/ResourceTransformer.d.ts.map +1 -1
  88. package/Resources/Transformers/ResourceTransformer.js +14 -5
  89. package/Resources/Transformers/ResourceTransformer.js.map +1 -1
  90. package/Resources/Transformers/Serializers/JsonResourceSerializer.d.ts.map +1 -1
  91. package/Resources/Transformers/Serializers/JsonResourceSerializer.js +13 -6
  92. package/Resources/Transformers/Serializers/JsonResourceSerializer.js.map +1 -1
  93. package/Resources/Transformers/Serializers/PoResourceSerializer.d.ts +20 -0
  94. package/Resources/Transformers/Serializers/PoResourceSerializer.d.ts.map +1 -0
  95. package/Resources/Transformers/Serializers/PoResourceSerializer.js +40 -0
  96. package/Resources/Transformers/Serializers/PoResourceSerializer.js.map +1 -0
  97. package/package.json +2 -2
  98. package/Resources/Analyzers/Tasks/DuplicateKeysTask.d.ts +0 -31
  99. package/Resources/Analyzers/Tasks/EmptyValuesTask.d.ts +0 -31
  100. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.js.map +0 -1
  101. package/Resources/Analyzers/Tasks/KeyConsistencyTask.d.ts +0 -35
  102. package/Resources/Analyzers/Tasks/MissingTranslationsTask.d.ts +0 -31
  103. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.d.ts +0 -31
  104. package/Resources/Analyzers/Tasks/UnusedKeysTask.d.ts +0 -31
package/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ ## 0.0.85 (2025-08-01)
2
+
3
+ This was a version bump only for localizator-core to align it with other projects, there were no code changes.
4
+
5
+ ## 0.0.84 (2025-08-01)
6
+
7
+ This was a version bump only for localizator-core to align it with other projects, there were no code changes.
8
+
9
+ ## 0.0.83 (2025-08-01)
10
+
11
+ ### 🚀 Features
12
+
13
+ - update resourceRoot parameter to accept multiple directories across configurations ([c934f7f499](https://github.com/RueDeRennes/mosaik/commit/c934f7f499))
14
+
15
+ ## 0.0.82 (2025-08-01)
16
+
17
+ ### 🚀 Features
18
+
19
+ - **translations): add Japanese and Russian translations for various application texts fix(localizator): improve logging condition to only log when there are changes refactor(utils:** update example comments for clarity in resource key validation ([45b365ec44](https://github.com/RueDeRennes/mosaik/commit/45b365ec44))
20
+ - update release version to 0.0.81 in package.json ([6e01a49d06](https://github.com/RueDeRennes/mosaik/commit/6e01a49d06))
21
+
22
+ ### 🩹 Fixes
23
+
24
+ - **release): update version number from 0.0.81 to 0.0.82 in release script fix(events:** remove redundant detailType from select event in Meta.g.json ([a330ca39c9](https://github.com/RueDeRennes/mosaik/commit/a330ca39c9))
25
+ - **dependencies:** downgrade TypeScript version from ^5.9.2 to ^5.8.3 across multiple packages ([c58367f25b](https://github.com/RueDeRennes/mosaik/commit/c58367f25b))
26
+
1
27
  ## 0.0.81 (2025-07-30)
2
28
 
3
29
  ### 🚀 Features
package/Index.d.ts CHANGED
@@ -35,8 +35,10 @@ export { JsonResourceTransformerAdapter } from './Resources/Transformers/Adapter
35
35
  export { ResxResourceTransformerAdapter } from './Resources/Transformers/Adapters/ResxResourceTransformerAdapter.js';
36
36
  export { ResxResourceInfo } from './Resources/Models/ResxResourceInfo.js';
37
37
  export { JsonResourceInfo } from './Resources/Models/JsonResourceInfo.js';
38
+ export { PoResourceInfo } from './Resources/Models/PoResourceInfo.js';
38
39
  export { TypeScriptResourceInfo } from './Resources/Models/TypeScriptResourceInfo.js';
39
40
  export type { IJsonResourceInfo } from './Resources/Models/Interfaces/IJsonResourceInfo.js';
41
+ export type { IPoResourceInfo } from './Resources/Models/Interfaces/IPoResourceInfo.js';
40
42
  export type { ITypeScriptResourceInfo } from './Resources/Models/Interfaces/ITypeScriptResourceInfo.js';
41
43
  export type { IResourceInfo, ResourceContentFn } from './Resources/Models/Interfaces/IResourceInfo.js';
42
44
  export type { IResxResourceInfo } from './Resources/Models/Interfaces/IResxResourceInfo.js';
@@ -46,12 +48,14 @@ export { ResxResourceReaderAdapter } from './Resources/Readers/Adapter/ResxResou
46
48
  export { JsonResourceReaderAdapter } from './Resources/Readers/Adapter/JsonResourceReaderAdapter.js';
47
49
  export type { IResourceReaderAdapter } from './Resources/Readers/Adapter/Interfaces/IResourceReaderAdapter.js';
48
50
  export { ResourceAnalyzer } from './Resources/Analyzers/ResourceAnalyzer.js';
49
- export type { IAnalyzerTask, IAnalyzerTaskExecutionContext, IAnalyzerTaskResult } from './Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.js';
50
- export { DuplicateKeysTask, type IDuplicateKeysTaskData } from './Resources/Analyzers/Tasks/DuplicateKeysTask.js';
51
- export { EmptyValuesTask, type IEmptyValuesTaskResultData } from './Resources/Analyzers/Tasks/EmptyValuesTask.js';
52
- export { KeyConsistencyTask, type IKeyConsistencyTaskResultData } from './Resources/Analyzers/Tasks/KeyConsistencyTask.js';
53
- export { MissingTranslationsTask, type IMissingTranslationsTaskResultData } from './Resources/Analyzers/Tasks/MissingTranslationsTask.js';
54
- export { UnusedKeysTask, type IUnusedKeysTaskResultData } from './Resources/Analyzers/Tasks/UnusedKeysTask.js';
55
- export { MultipleKeyUsageTask, type IMultipleKeyUsageTaskResultData } from './Resources/Analyzers/Tasks/MultipleKeyUsageTask.js';
51
+ export type { IAnalyzerRule, IAnalyzerRuleExecutionContext, IAnalyzerRuleResult } from './Resources/Analyzers/Tasks/Interfaces/IAnalyzerRule.js';
52
+ export { DuplicateKeysRule, type IDuplicateKeysRuleData } from './Resources/Analyzers/Tasks/DuplicateKeysRule.js';
53
+ export { EmptyValuesRule, type IEmptyValuesRuleResultData } from './Resources/Analyzers/Tasks/EmptyValuesRule.js';
54
+ export { KeyConsistencyRule, type IKeyConsistencyRuleResultData } from './Resources/Analyzers/Tasks/KeyConsistencyRule.js';
55
+ export { MissingTranslationsRule, type IMissingTranslationsRuleResultData } from './Resources/Analyzers/Tasks/MissingTranslationsRule.js';
56
+ export { UnusedKeysRule, type IUnusedKeysRuleResultData } from './Resources/Analyzers/Tasks/UnusedKeysRule.js';
57
+ export { MultipleKeyUsageRule, type IMultipleKeyUsageRuleResultData } from './Resources/Analyzers/Tasks/MultipleKeyUsageRule.js';
58
+ export type { IDuplicateValuesRuleData } from './Resources/Analyzers/Tasks/DuplicateValuesRule.js';
59
+ export { DuplicateValuesRule } from './Resources/Analyzers/Tasks/DuplicateValuesRule.js';
56
60
  export { ResourceProcessor } from './Resources/ResourceProcessor.js';
57
61
  //# sourceMappingURL=Index.d.ts.map
package/Index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"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"}
package/Index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResourceProcessor = exports.MultipleKeyUsageTask = exports.UnusedKeysTask = exports.MissingTranslationsTask = exports.KeyConsistencyTask = exports.EmptyValuesTask = exports.DuplicateKeysTask = exports.ResourceAnalyzer = exports.JsonResourceReaderAdapter = exports.ResxResourceReaderAdapter = exports.resourceTypeFormFile = exports.ResourceType = exports.TypeScriptResourceInfo = exports.JsonResourceInfo = exports.ResxResourceInfo = exports.ResxResourceTransformerAdapter = exports.JsonResourceTransformerAdapter = exports.TypescriptResourceSerializer = exports.ResxResourceSerializer = exports.JsonResourceSerializer = exports.ResourceTransformer = exports.ResourceSorter = exports.ResourceReader = exports.ResourceMode = exports.ResourceFactory = exports.LocalizationProcessor = exports.Presets = exports.VuePreset = exports.StencilPreset = exports.ReactPreset = exports.LitPreset = exports.AngularPreset = exports.VueDetector = exports.TypeScriptDetector = exports.TSXDetector = exports.JavaScriptDetector = exports.JSXDetector = exports.AngularHTMLDetector = exports.BaseDetector = exports.ResxFormatter = exports.JsonFormatter = exports.Formatters = void 0;
3
+ exports.ResourceProcessor = exports.DuplicateValuesRule = exports.MultipleKeyUsageRule = exports.UnusedKeysRule = exports.MissingTranslationsRule = exports.KeyConsistencyRule = exports.EmptyValuesRule = exports.DuplicateKeysRule = exports.ResourceAnalyzer = exports.JsonResourceReaderAdapter = exports.ResxResourceReaderAdapter = exports.resourceTypeFormFile = exports.ResourceType = exports.TypeScriptResourceInfo = exports.PoResourceInfo = exports.JsonResourceInfo = exports.ResxResourceInfo = exports.ResxResourceTransformerAdapter = exports.JsonResourceTransformerAdapter = exports.TypescriptResourceSerializer = exports.ResxResourceSerializer = exports.JsonResourceSerializer = exports.ResourceTransformer = exports.ResourceSorter = exports.ResourceReader = exports.ResourceMode = exports.ResourceFactory = exports.LocalizationProcessor = exports.Presets = exports.VuePreset = exports.StencilPreset = exports.ReactPreset = exports.LitPreset = exports.AngularPreset = exports.VueDetector = exports.TypeScriptDetector = exports.TSXDetector = exports.JavaScriptDetector = exports.JSXDetector = exports.AngularHTMLDetector = exports.BaseDetector = exports.ResxFormatter = exports.JsonFormatter = exports.Formatters = void 0;
4
4
  var Formatters_js_1 = require("./Formatters/Formatters.js");
5
5
  Object.defineProperty(exports, "Formatters", { enumerable: true, get: function () { return Formatters_js_1.Formatters; } });
6
6
  var JSONFormatter_js_1 = require("./Formatters/JSONFormatter.js");
@@ -59,6 +59,8 @@ var ResxResourceInfo_js_1 = require("./Resources/Models/ResxResourceInfo.js");
59
59
  Object.defineProperty(exports, "ResxResourceInfo", { enumerable: true, get: function () { return ResxResourceInfo_js_1.ResxResourceInfo; } });
60
60
  var JsonResourceInfo_js_1 = require("./Resources/Models/JsonResourceInfo.js");
61
61
  Object.defineProperty(exports, "JsonResourceInfo", { enumerable: true, get: function () { return JsonResourceInfo_js_1.JsonResourceInfo; } });
62
+ var PoResourceInfo_js_1 = require("./Resources/Models/PoResourceInfo.js");
63
+ Object.defineProperty(exports, "PoResourceInfo", { enumerable: true, get: function () { return PoResourceInfo_js_1.PoResourceInfo; } });
62
64
  var TypeScriptResourceInfo_js_1 = require("./Resources/Models/TypeScriptResourceInfo.js");
63
65
  Object.defineProperty(exports, "TypeScriptResourceInfo", { enumerable: true, get: function () { return TypeScriptResourceInfo_js_1.TypeScriptResourceInfo; } });
64
66
  var ResourceType_js_1 = require("./Resources/Models/Interfaces/ResourceType.js");
@@ -70,18 +72,20 @@ var JsonResourceReaderAdapter_js_1 = require("./Resources/Readers/Adapter/JsonRe
70
72
  Object.defineProperty(exports, "JsonResourceReaderAdapter", { enumerable: true, get: function () { return JsonResourceReaderAdapter_js_1.JsonResourceReaderAdapter; } });
71
73
  var ResourceAnalyzer_js_1 = require("./Resources/Analyzers/ResourceAnalyzer.js");
72
74
  Object.defineProperty(exports, "ResourceAnalyzer", { enumerable: true, get: function () { return ResourceAnalyzer_js_1.ResourceAnalyzer; } });
73
- var DuplicateKeysTask_js_1 = require("./Resources/Analyzers/Tasks/DuplicateKeysTask.js");
74
- Object.defineProperty(exports, "DuplicateKeysTask", { enumerable: true, get: function () { return DuplicateKeysTask_js_1.DuplicateKeysTask; } });
75
- var EmptyValuesTask_js_1 = require("./Resources/Analyzers/Tasks/EmptyValuesTask.js");
76
- Object.defineProperty(exports, "EmptyValuesTask", { enumerable: true, get: function () { return EmptyValuesTask_js_1.EmptyValuesTask; } });
77
- var KeyConsistencyTask_js_1 = require("./Resources/Analyzers/Tasks/KeyConsistencyTask.js");
78
- Object.defineProperty(exports, "KeyConsistencyTask", { enumerable: true, get: function () { return KeyConsistencyTask_js_1.KeyConsistencyTask; } });
79
- var MissingTranslationsTask_js_1 = require("./Resources/Analyzers/Tasks/MissingTranslationsTask.js");
80
- Object.defineProperty(exports, "MissingTranslationsTask", { enumerable: true, get: function () { return MissingTranslationsTask_js_1.MissingTranslationsTask; } });
81
- var UnusedKeysTask_js_1 = require("./Resources/Analyzers/Tasks/UnusedKeysTask.js");
82
- Object.defineProperty(exports, "UnusedKeysTask", { enumerable: true, get: function () { return UnusedKeysTask_js_1.UnusedKeysTask; } });
83
- var MultipleKeyUsageTask_js_1 = require("./Resources/Analyzers/Tasks/MultipleKeyUsageTask.js");
84
- Object.defineProperty(exports, "MultipleKeyUsageTask", { enumerable: true, get: function () { return MultipleKeyUsageTask_js_1.MultipleKeyUsageTask; } });
75
+ var DuplicateKeysRule_js_1 = require("./Resources/Analyzers/Tasks/DuplicateKeysRule.js");
76
+ Object.defineProperty(exports, "DuplicateKeysRule", { enumerable: true, get: function () { return DuplicateKeysRule_js_1.DuplicateKeysRule; } });
77
+ var EmptyValuesRule_js_1 = require("./Resources/Analyzers/Tasks/EmptyValuesRule.js");
78
+ Object.defineProperty(exports, "EmptyValuesRule", { enumerable: true, get: function () { return EmptyValuesRule_js_1.EmptyValuesRule; } });
79
+ var KeyConsistencyRule_js_1 = require("./Resources/Analyzers/Tasks/KeyConsistencyRule.js");
80
+ Object.defineProperty(exports, "KeyConsistencyRule", { enumerable: true, get: function () { return KeyConsistencyRule_js_1.KeyConsistencyRule; } });
81
+ var MissingTranslationsRule_js_1 = require("./Resources/Analyzers/Tasks/MissingTranslationsRule.js");
82
+ Object.defineProperty(exports, "MissingTranslationsRule", { enumerable: true, get: function () { return MissingTranslationsRule_js_1.MissingTranslationsRule; } });
83
+ var UnusedKeysRule_js_1 = require("./Resources/Analyzers/Tasks/UnusedKeysRule.js");
84
+ Object.defineProperty(exports, "UnusedKeysRule", { enumerable: true, get: function () { return UnusedKeysRule_js_1.UnusedKeysRule; } });
85
+ var MultipleKeyUsageRule_js_1 = require("./Resources/Analyzers/Tasks/MultipleKeyUsageRule.js");
86
+ Object.defineProperty(exports, "MultipleKeyUsageRule", { enumerable: true, get: function () { return MultipleKeyUsageRule_js_1.MultipleKeyUsageRule; } });
87
+ var DuplicateValuesRule_js_1 = require("./Resources/Analyzers/Tasks/DuplicateValuesRule.js");
88
+ Object.defineProperty(exports, "DuplicateValuesRule", { enumerable: true, get: function () { return DuplicateValuesRule_js_1.DuplicateValuesRule; } });
85
89
  var ResourceProcessor_js_1 = require("./Resources/ResourceProcessor.js");
86
90
  Object.defineProperty(exports, "ResourceProcessor", { enumerable: true, get: function () { return ResourceProcessor_js_1.ResourceProcessor; } });
87
91
  //# sourceMappingURL=Index.js.map
package/Index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AAA/C,2GAAA,UAAU,OAAA;AACnB,kEAA8D;AAArD,iHAAA,aAAa,OAAA;AACtB,kEAA8D;AAArD,iHAAA,aAAa,OAAA;AACtB,yEAAqE;AAA5D,+GAAA,YAAY,OAAA;AAErB,6EAAyE;AAAhE,6HAAA,mBAAmB,OAAA;AAC5B,6DAAyD;AAAhD,6GAAA,WAAW,OAAA;AACpB,2EAAuE;AAA9D,2HAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,6GAAA,WAAW,OAAA;AACpB,2EAAuE;AAA9D,2HAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,6GAAA,WAAW,OAAA;AAEpB,+DAA2D;AAAlD,iHAAA,aAAa,OAAA;AACtB,uDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAClB,2DAAuD;AAA9C,6GAAA,WAAW,OAAA;AACpB,+DAA2D;AAAlD,iHAAA,aAAa,OAAA;AACtB,uDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAClB,mDAA+C;AAAtC,qGAAA,OAAO,OAAA;AAEhB,gFAA4E;AAAnE,iIAAA,qBAAqB,OAAA;AAC9B,qEAAiE;AAAxD,qHAAA,eAAe,OAAA;AACxB,+DAA2D;AAAlD,+GAAA,YAAY,OAAA;AACrB,2EAAuE;AAA9D,mHAAA,cAAc,OAAA;AAEvB,2EAAuE;AAA9D,mHAAA,cAAc,OAAA;AACvB,0FAAsF;AAA7E,6HAAA,mBAAmB,OAAA;AAG5B,4GAAwG;AAA/F,mIAAA,sBAAsB,OAAA;AAC/B,4GAAwG;AAA/F,mIAAA,sBAAsB,OAAA;AAC/B,wHAAoH;AAA3G,+IAAA,4BAA4B,OAAA;AAErC,yHAAqH;AAA5G,mJAAA,8BAA8B,OAAA;AACvC,yHAAqH;AAA5G,mJAAA,8BAA8B,OAAA;AACvC,8EAA0E;AAAjE,uHAAA,gBAAgB,OAAA;AACzB,8EAA0E;AAAjE,uHAAA,gBAAgB,OAAA;AACzB,0FAAsF;AAA7E,mIAAA,sBAAsB,OAAA;AAM/B,iFAAmG;AAA1F,+GAAA,YAAY,OAAA;AAAE,uHAAA,oBAAoB,OAAA;AAC3C,yGAAqG;AAA5F,yIAAA,yBAAyB,OAAA;AAClC,yGAAqG;AAA5F,yIAAA,yBAAyB,OAAA;AAElC,iFAA6E;AAApE,uHAAA,gBAAgB,OAAA;AAEzB,yFAAkH;AAAzG,yHAAA,iBAAiB,OAAA;AAC1B,qFAAkH;AAAzG,qHAAA,eAAe,OAAA;AACxB,2FAA2H;AAAlH,2HAAA,kBAAkB,OAAA;AAC3B,qGAA0I;AAAjI,qIAAA,uBAAuB,OAAA;AAChC,mFAA+G;AAAtG,mHAAA,cAAc,OAAA;AACvB,+FAAiI;AAAxH,+HAAA,oBAAoB,OAAA;AAC7B,yEAAqE;AAA5D,yHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AAA/C,2GAAA,UAAU,OAAA;AACnB,kEAA8D;AAArD,iHAAA,aAAa,OAAA;AACtB,kEAA8D;AAArD,iHAAA,aAAa,OAAA;AACtB,yEAAqE;AAA5D,+GAAA,YAAY,OAAA;AAErB,6EAAyE;AAAhE,6HAAA,mBAAmB,OAAA;AAC5B,6DAAyD;AAAhD,6GAAA,WAAW,OAAA;AACpB,2EAAuE;AAA9D,2HAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,6GAAA,WAAW,OAAA;AACpB,2EAAuE;AAA9D,2HAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,6GAAA,WAAW,OAAA;AAEpB,+DAA2D;AAAlD,iHAAA,aAAa,OAAA;AACtB,uDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAClB,2DAAuD;AAA9C,6GAAA,WAAW,OAAA;AACpB,+DAA2D;AAAlD,iHAAA,aAAa,OAAA;AACtB,uDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAClB,mDAA+C;AAAtC,qGAAA,OAAO,OAAA;AAEhB,gFAA4E;AAAnE,iIAAA,qBAAqB,OAAA;AAC9B,qEAAiE;AAAxD,qHAAA,eAAe,OAAA;AACxB,+DAA2D;AAAlD,+GAAA,YAAY,OAAA;AACrB,2EAAuE;AAA9D,mHAAA,cAAc,OAAA;AAEvB,2EAAuE;AAA9D,mHAAA,cAAc,OAAA;AACvB,0FAAsF;AAA7E,6HAAA,mBAAmB,OAAA;AAG5B,4GAAwG;AAA/F,mIAAA,sBAAsB,OAAA;AAC/B,4GAAwG;AAA/F,mIAAA,sBAAsB,OAAA;AAC/B,wHAAoH;AAA3G,+IAAA,4BAA4B,OAAA;AAErC,yHAAqH;AAA5G,mJAAA,8BAA8B,OAAA;AACvC,yHAAqH;AAA5G,mJAAA,8BAA8B,OAAA;AACvC,8EAA0E;AAAjE,uHAAA,gBAAgB,OAAA;AACzB,8EAA0E;AAAjE,uHAAA,gBAAgB,OAAA;AACzB,0EAAsE;AAA7D,mHAAA,cAAc,OAAA;AACvB,0FAAsF;AAA7E,mIAAA,sBAAsB,OAAA;AAO/B,iFAAmG;AAA1F,+GAAA,YAAY,OAAA;AAAE,uHAAA,oBAAoB,OAAA;AAC3C,yGAAqG;AAA5F,yIAAA,yBAAyB,OAAA;AAClC,yGAAqG;AAA5F,yIAAA,yBAAyB,OAAA;AAElC,iFAA6E;AAApE,uHAAA,gBAAgB,OAAA;AAEzB,yFAAkH;AAAzG,yHAAA,iBAAiB,OAAA;AAC1B,qFAAkH;AAAzG,qHAAA,eAAe,OAAA;AACxB,2FAA2H;AAAlH,2HAAA,kBAAkB,OAAA;AAC3B,qGAA0I;AAAjI,qIAAA,uBAAuB,OAAA;AAChC,mFAA+G;AAAtG,mHAAA,cAAc,OAAA;AACvB,+FAAiI;AAAxH,+HAAA,oBAAoB,OAAA;AAE7B,6FAAyF;AAAhF,6HAAA,mBAAmB,OAAA;AAE5B,yEAAqE;AAA5D,yHAAA,iBAAiB,OAAA"}
@@ -1,13 +1,22 @@
1
1
  import { type ILogger } from '@breadstone-infrastructure/utilities';
2
- import type { IAnalyzerTask, IAnalyzerTaskExecutionContext, IAnalyzerTaskResult } from './Tasks/Interfaces/IAnalyzerTask';
2
+ import type { IAnalyzerRule, IAnalyzerRuleExecutionContext, IAnalyzerRuleResult } from './Tasks/Interfaces/IAnalyzerRule';
3
+ import { EventEmitter } from 'node:stream';
3
4
  /**
4
- * The `ResourceAnalyzer` class, responsible for managing and executing analyzer tasks.
5
+ * Represents the event map for file system events.
5
6
  *
6
7
  * @public
7
8
  */
8
- export declare class ResourceAnalyzer {
9
+ export interface IResourceAnalyzerEventMap {
10
+ ruleExecuted: [ruleName: string, result: IAnalyzerRuleResult];
11
+ }
12
+ /**
13
+ * The `ResourceAnalyzer` class, responsible for managing and executing analyzer rules.
14
+ *
15
+ * @public
16
+ */
17
+ export declare class ResourceAnalyzer extends EventEmitter {
9
18
  private readonly _logger;
10
- private readonly _tasks;
19
+ private readonly _rules;
11
20
  /**
12
21
  * Constructs a new instance of the `ResourceAnalyzer` class.
13
22
  *
@@ -15,44 +24,44 @@ export declare class ResourceAnalyzer {
15
24
  */
16
25
  constructor(logger: ILogger);
17
26
  /**
18
- * Registers a new analyzer task.
27
+ * Registers a rule.
19
28
  *
20
- * @param name - The name of the task.
21
- * @param task - The task instance.
22
- * @throws Error if the task name is already registered.
29
+ * @param name - The name of the rule.
30
+ * @param rule - The rule instance.
31
+ * @throws Error if the rule name is already registered.
23
32
  */
24
- registerTask(name: string, task: IAnalyzerTask): void;
33
+ registerRule(name: string, rule: IAnalyzerRule): void;
25
34
  /**
26
- * Unregisters an analyzer task.
35
+ * Unregister an analyzer rule.
27
36
  *
28
- * @param name - The name of the task to unregister.
29
- * @returns `true` if the task was successfully unregistered; otherwise, `false`.
37
+ * @param name - The name of the rule to unregister.
38
+ * @returns `true` if the rule was successfully unregistered; otherwise, `false`.
30
39
  */
31
- unregisterTask(name: string): boolean;
40
+ unregisterRule(name: string): boolean;
32
41
  /**
33
- * Executes the specified analyzer task.
42
+ * Executes the specified analyzer rule.
34
43
  *
35
44
  * @public
36
- * @param name - The name of the task to execute.
45
+ * @param name - The name of the rule to execute.
37
46
  * @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.
47
+ * @returns The result of the rule execution.
48
+ * @throws Error if the rule is not registered.
40
49
  */
41
- executeTask(name: string, context: IAnalyzerTaskExecutionContext): IAnalyzerTaskResult;
50
+ executeRule(name: string, context: IAnalyzerRuleExecutionContext): IAnalyzerRuleResult;
42
51
  /**
43
- * Executes all registered tasks.
52
+ * Executes all registered rules.
44
53
  *
45
54
  * @public
46
55
  * @param context - The execution context containing resources and additional parameters.
47
- * @returns An array of task results.
56
+ * @returns An array of rule results.
48
57
  */
49
- executeAllTasks(context: IAnalyzerTaskExecutionContext): Array<IAnalyzerTaskResult>;
58
+ executeAllRules(context: IAnalyzerRuleExecutionContext): Array<IAnalyzerRuleResult>;
50
59
  /**
51
- * Lists all registered tasks.
60
+ * Lists all registered rules.
52
61
  *
53
62
  * @public
54
- * @returns An array of registered task names.
63
+ * @returns An array of registered rule names.
55
64
  */
56
- listTasks(): Array<string>;
65
+ listRules(): Array<string>;
57
66
  }
58
67
  //# sourceMappingURL=ResourceAnalyzer.d.ts.map
@@ -1 +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"}
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;AAK1H,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACtC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACjE;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAI9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAMpD;;;;OAIG;gBACgB,MAAM,EAAE,OAAO;IAoBlC;;;;;;OAMG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAQ5D;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI5C;;;;;;;;OAQG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,GAAG,mBAAmB;IAa7F;;;;;;OAMG;IACI,eAAe,CAAC,OAAO,EAAE,6BAA6B,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAyB1F;;;;;OAKG;IACI,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;CAMpC"}
@@ -3,22 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ResourceAnalyzer = void 0;
5
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
6
+ const DuplicateKeysRule_1 = require("./Tasks/DuplicateKeysRule");
7
+ const EmptyValuesRule_1 = require("./Tasks/EmptyValuesRule");
8
+ const KeyConsistencyRule_1 = require("./Tasks/KeyConsistencyRule");
9
+ const MissingTranslationsRule_1 = require("./Tasks/MissingTranslationsRule");
10
+ const MultipleKeyUsageRule_1 = require("./Tasks/MultipleKeyUsageRule");
11
+ const UnusedKeysRule_1 = require("./Tasks/UnusedKeysRule");
12
+ const node_stream_1 = require("node:stream");
13
+ const DuplicateValuesRule_1 = require("./Tasks/DuplicateValuesRule");
13
14
  /**
14
- * The `ResourceAnalyzer` class, responsible for managing and executing analyzer tasks.
15
+ * The `ResourceAnalyzer` class, responsible for managing and executing analyzer rules.
15
16
  *
16
17
  * @public
17
18
  */
18
- class ResourceAnalyzer {
19
+ class ResourceAnalyzer extends node_stream_1.EventEmitter {
19
20
  // #region Fields
20
21
  _logger;
21
- _tasks;
22
+ _rules;
22
23
  // #endregion
23
24
  // #region Ctor
24
25
  /**
@@ -27,92 +28,94 @@ class ResourceAnalyzer {
27
28
  * @public
28
29
  */
29
30
  constructor(logger) {
31
+ super();
30
32
  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());
33
+ this._rules = new Map();
34
+ // pre-defined rules
35
+ this.registerRule('duplicate-keys', new DuplicateKeysRule_1.DuplicateKeysRule());
36
+ this.registerRule('duplicate-values', new DuplicateValuesRule_1.DuplicateValuesRule());
37
+ this.registerRule('empty-values', new EmptyValuesRule_1.EmptyValuesRule());
38
+ this.registerRule('key-consistency', new KeyConsistencyRule_1.KeyConsistencyRule());
39
+ this.registerRule('missing-translations', new MissingTranslationsRule_1.MissingTranslationsRule());
40
+ this.registerRule('unused-keys', new UnusedKeysRule_1.UnusedKeysRule());
41
+ this.registerRule('multiple-key-usage', new MultipleKeyUsageRule_1.MultipleKeyUsageRule());
39
42
  }
40
43
  // #endregion
41
44
  // #region Methods
42
45
  /**
43
- * Registers a new analyzer task.
46
+ * Registers a rule.
44
47
  *
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
+ * @param name - The name of the rule.
49
+ * @param rule - The rule instance.
50
+ * @throws Error if the rule name is already registered.
48
51
  */
49
- registerTask(name, task) {
50
- if (this._tasks.has(name)) {
51
- throw new Error(`Task '${name}' is already registered.`);
52
+ registerRule(name, rule) {
53
+ if (this._rules.has(name)) {
54
+ throw new Error(`Rule '${name}' is already registered.`);
52
55
  }
53
- this._tasks.set(name, task);
56
+ this._rules.set(name, rule);
54
57
  }
55
58
  /**
56
- * Unregisters an analyzer task.
59
+ * Unregister an analyzer rule.
57
60
  *
58
- * @param name - The name of the task to unregister.
59
- * @returns `true` if the task was successfully unregistered; otherwise, `false`.
61
+ * @param name - The name of the rule to unregister.
62
+ * @returns `true` if the rule was successfully unregistered; otherwise, `false`.
60
63
  */
61
- unregisterTask(name) {
62
- return this._tasks.delete(name);
64
+ unregisterRule(name) {
65
+ return this._rules.delete(name);
63
66
  }
64
67
  /**
65
- * Executes the specified analyzer task.
68
+ * Executes the specified analyzer rule.
66
69
  *
67
70
  * @public
68
- * @param name - The name of the task to execute.
71
+ * @param name - The name of the rule to execute.
69
72
  * @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.
73
+ * @returns The result of the rule execution.
74
+ * @throws Error if the rule is not registered.
72
75
  */
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.`);
76
+ executeRule(name, context) {
77
+ const rule = this._rules.get(name);
78
+ if (!rule) {
79
+ throw new Error(`Rule ${(0, utilities_1.bold)(name)} is not registered.`);
78
80
  }
79
- const result = task.execute(context);
80
- this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Task '${name}' completed.`)}`);
81
+ const result = rule.execute(context);
82
+ this.emit('ruleExecuted', name, result);
81
83
  return result;
82
84
  }
83
85
  /**
84
- * Executes all registered tasks.
86
+ * Executes all registered rules.
85
87
  *
86
88
  * @public
87
89
  * @param context - The execution context containing resources and additional parameters.
88
- * @returns An array of task results.
90
+ * @returns An array of rule results.
89
91
  */
90
- executeAllTasks(context) {
91
- this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)('Executing all tasks...')}`);
92
+ executeAllRules(context) {
93
+ this._logger.log((0, utilities_1.t) ` ${'Executing all rules...'}`);
92
94
  const results = [];
93
- for (const [name, task] of this._tasks) {
94
- const result = task.execute(context);
95
+ for (const [name, rule] of this._rules) {
96
+ const result = rule.execute(context);
97
+ this.emit('ruleExecuted', name, result);
95
98
  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}`);
99
+ this._logger.log((0, utilities_1.t) ` ${(0, utilities_1.symbol)('success')} ${(0, utilities_1.bold)(name)} completed.`);
100
+ this._logger.log((0, utilities_1.t) ` ${result.message}`);
98
101
  }
99
102
  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}`);
103
+ this._logger.log((0, utilities_1.t) ` ${(0, utilities_1.symbol)('error')} ${(0, utilities_1.bold)(name)} failed.`);
104
+ this._logger.log((0, utilities_1.t) ` ${result.message}`);
102
105
  }
103
106
  results.push(result);
104
107
  }
105
- this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)('All tasks completed.')}`);
108
+ this._logger.log((0, utilities_1.t) ` ${(0, utilities_1.magenta)('All rules completed.')}`);
106
109
  return results;
107
110
  }
108
111
  /**
109
- * Lists all registered tasks.
112
+ * Lists all registered rules.
110
113
  *
111
114
  * @public
112
- * @returns An array of registered task names.
115
+ * @returns An array of registered rule names.
113
116
  */
114
- listTasks() {
115
- return Array.from(this._tasks.keys());
117
+ listRules() {
118
+ return Array.from(this._rules.keys());
116
119
  }
117
120
  }
118
121
  exports.ResourceAnalyzer = ResourceAnalyzer;
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceAnalyzer.js","sourceRoot":"","sources":["../../../src/Resources/Analyzers/ResourceAnalyzer.ts"],"names":[],"mappings":"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"}
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 { IAnalyzerRule, IAnalyzerRuleExecutionContext, IAnalyzerRuleResult } from './Interfaces/IAnalyzerRule';
2
+ /**
3
+ * Represents the result data for duplicate keys analysis.
4
+ *
5
+ * @public
6
+ */
7
+ export interface IDuplicateKeysRuleData {
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
+ * Rule to check for duplicate keys in resources.
19
+ *
20
+ * @public
21
+ */
22
+ export declare class DuplicateKeysRule implements IAnalyzerRule<Array<IDuplicateKeysRuleData>> {
23
+ /**
24
+ * Executes the duplicate keys check.
25
+ *
26
+ * @param context - The execution context containing resources and parameters.
27
+ * @returns The rule result with duplicate key information.
28
+ */
29
+ execute(context: IAnalyzerRuleExecutionContext): IAnalyzerRuleResult<Array<IDuplicateKeysRuleData>>;
30
+ }
31
+ //# sourceMappingURL=DuplicateKeysRule.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"DuplicateKeysRule.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Analyzers/Tasks/DuplicateKeysRule.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"}
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  // #region Imports
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DuplicateKeysTask = void 0;
4
+ exports.DuplicateKeysRule = void 0;
5
5
  /**
6
- * Task to check for duplicate keys in resources.
6
+ * Rule to check for duplicate keys in resources.
7
7
  *
8
8
  * @public
9
9
  */
10
- class DuplicateKeysTask {
10
+ class DuplicateKeysRule {
11
11
  /**
12
12
  * Executes the duplicate keys check.
13
13
  *
14
14
  * @param context - The execution context containing resources and parameters.
15
- * @returns The task result with duplicate key information.
15
+ * @returns The rule result with duplicate key information.
16
16
  */
17
17
  execute(context) {
18
18
  const results = [];
@@ -36,5 +36,5 @@ class DuplicateKeysTask {
36
36
  };
37
37
  }
38
38
  }
39
- exports.DuplicateKeysTask = DuplicateKeysTask;
40
- //# sourceMappingURL=DuplicateKeysTask.js.map
39
+ exports.DuplicateKeysRule = DuplicateKeysRule;
40
+ //# sourceMappingURL=DuplicateKeysRule.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"DuplicateKeysRule.js","sourceRoot":"","sources":["../../../../src/Resources/Analyzers/Tasks/DuplicateKeysRule.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,40 @@
1
+ import type { IAnalyzerRule, IAnalyzerRuleExecutionContext, IAnalyzerRuleResult } from './Interfaces/IAnalyzerRule';
2
+ /**
3
+ * Represents the result data for duplicate values analysis.
4
+ *
5
+ * @public
6
+ */
7
+ export interface IDuplicateValuesRuleData {
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
+ * Rule to check for duplicate values in resources.
19
+ *
20
+ * @description
21
+ * This rule analyzes the values in a resource and identifies any duplicates.
22
+ * Background: Duplicate values can lead to unexpected behavior or conflicts in translations.
23
+ * It is important to ensure that each value is unique to maintain clarity and consistency in translations.
24
+ *
25
+ * @example
26
+ * 'loc.dialog.dismiss' = 'Dismiss';
27
+ * 'loc.view.dismiss' = 'Dismiss'; // This would be flagged as a duplicate value.
28
+ *
29
+ * @public
30
+ */
31
+ export declare class DuplicateValuesRule implements IAnalyzerRule<Array<IDuplicateValuesRuleData>> {
32
+ /**
33
+ * Executes the duplicate values check.
34
+ *
35
+ * @param context - The execution context containing resources and parameters.
36
+ * @returns The rule result with duplicate value information.
37
+ */
38
+ execute(context: IAnalyzerRuleExecutionContext): IAnalyzerRuleResult<Array<IDuplicateValuesRuleData>>;
39
+ }
40
+ //# sourceMappingURL=DuplicateValuesRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DuplicateValuesRule.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Analyzers/Tasks/DuplicateValuesRule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIpH;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IAIrC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAI7B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,mBAAoB,YAAW,aAAa,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAEtF;;;;;OAKG;IACI,OAAO,CAAC,OAAO,EAAE,6BAA6B,GAAG,mBAAmB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;CAyB/G"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DuplicateValuesRule = void 0;
5
+ /**
6
+ * Rule to check for duplicate values in resources.
7
+ *
8
+ * @description
9
+ * This rule analyzes the values in a resource and identifies any duplicates.
10
+ * Background: Duplicate values can lead to unexpected behavior or conflicts in translations.
11
+ * It is important to ensure that each value is unique to maintain clarity and consistency in translations.
12
+ *
13
+ * @example
14
+ * 'loc.dialog.dismiss' = 'Dismiss';
15
+ * 'loc.view.dismiss' = 'Dismiss'; // This would be flagged as a duplicate value.
16
+ *
17
+ * @public
18
+ */
19
+ class DuplicateValuesRule {
20
+ /**
21
+ * Executes the duplicate values check.
22
+ *
23
+ * @param context - The execution context containing resources and parameters.
24
+ * @returns The rule result with duplicate value information.
25
+ */
26
+ execute(context) {
27
+ const results = [];
28
+ const values = context.resource.values();
29
+ const duplicates = values.filter((key, index, arr) => arr.indexOf(key) !== index);
30
+ if (duplicates.length > 0) {
31
+ results.push({
32
+ locale: context.resource.locale,
33
+ duplicates
34
+ });
35
+ }
36
+ const success = results.length === 0;
37
+ const message = success
38
+ ? `No duplicate values were found in the resource '${context.resource.locale}'.`
39
+ : `The resource '${context.resource.locale}' contains duplicate values: ${duplicates.join(', ')}. Duplicate values can lead to unexpected behavior or conflicts in translations.`;
40
+ return {
41
+ resource: context.resource,
42
+ success,
43
+ message,
44
+ data: results
45
+ };
46
+ }
47
+ }
48
+ exports.DuplicateValuesRule = DuplicateValuesRule;
49
+ //# sourceMappingURL=DuplicateValuesRule.js.map