@breadstone-tools/localizator-core 0.0.84 → 0.0.86

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
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PoResourceReaderAdapter = void 0;
5
+ const utilities_1 = require("@breadstone-infrastructure/utilities");
6
+ const ResourceType_1 = require("../../Models/Interfaces/ResourceType");
7
+ const PoResourceInfo_1 = require("../../Models/PoResourceInfo");
8
+ // #endregion
9
+ /**
10
+ * A resource reader adapter that scans directories for po files.
11
+ *
12
+ * @public
13
+ */
14
+ class PoResourceReaderAdapter {
15
+ // #region Fields
16
+ _fileSystem;
17
+ _logger;
18
+ _glob;
19
+ // #endregion
20
+ // #region Ctor
21
+ /**
22
+ * Constructs a new instance of the `PoResourceReaderAdapter` class.
23
+ *
24
+ * @public
25
+ */
26
+ constructor(fileSystem, logger) {
27
+ this._fileSystem = fileSystem;
28
+ this._logger = logger;
29
+ this._glob = '**/*.po';
30
+ }
31
+ // #endregion
32
+ // #region Methods
33
+ /**
34
+ * Scans the specified directory for .po files.
35
+ *
36
+ * @public
37
+ * @param path - The path or paths to scan.
38
+ * @returns The resource information.
39
+ */
40
+ scanDirectory(path) {
41
+ this.invalidateDirectory(path);
42
+ const result = new Array();
43
+ const paths = Array.isArray(path) ? path : [path];
44
+ for (const p of paths) {
45
+ const globPath = utilities_1.Path.combine(p, this._glob);
46
+ this._logger.info(` Scanning ${(0, utilities_1.gray)(globPath)}`);
47
+ const files = this._fileSystem.fileGlob(globPath);
48
+ for (const file of files) {
49
+ const resourceInfo = this.scanFile(file);
50
+ if (resourceInfo) {
51
+ result.push(resourceInfo);
52
+ }
53
+ }
54
+ }
55
+ return result;
56
+ }
57
+ /**
58
+ * Scans a specific file for resource information.
59
+ *
60
+ * @public
61
+ * @param path - The path to the file to scan.
62
+ * @returns The resource information or null if the file is not a valid resource.
63
+ */
64
+ scanFile(path) {
65
+ this.invalidateFile(path);
66
+ const po = this._fileSystem.fileReadAllPo(path);
67
+ if (po.length === 0) {
68
+ this._logger.warn(`The file ${(0, utilities_1.gray)(path)} does not contain any resources.`);
69
+ return null;
70
+ }
71
+ this._logger.log(` Found ${(0, utilities_1.bold)(po.length.toString())} keys in language ${(0, utilities_1.bold)(this._fileSystem.fileGetLocale(path))}`);
72
+ return new PoResourceInfo_1.PoResourceInfo({
73
+ type: ResourceType_1.ResourceType.Po,
74
+ content: () => po,
75
+ locale: this._fileSystem.fileGetLocale(path),
76
+ name: this._fileSystem.pathGetFileName(path),
77
+ path: path
78
+ });
79
+ }
80
+ /**
81
+ * @private
82
+ */
83
+ invalidateDirectory(path) {
84
+ for (const p of Array.isArray(path) ? path : [path]) {
85
+ if (this._fileSystem.isFileOrDirectory(p) !== 'directory') {
86
+ throw new Error(`The path ${(0, utilities_1.gray)(p)} is not a valid directory.`);
87
+ }
88
+ if (!this._fileSystem.fileExists(p)) {
89
+ throw new Error(`The path ${(0, utilities_1.gray)(p)} does not exist.`);
90
+ }
91
+ if (this._fileSystem.fileGlob(p).length === 0) {
92
+ throw new Error(`The path ${(0, utilities_1.gray)(p)} is empty or does not contain any files.`);
93
+ }
94
+ if (p.endsWith(this._glob)) {
95
+ throw new Error(`The path ${(0, utilities_1.gray)(p)} should not end with ${(0, utilities_1.gray)(this._glob)}.`);
96
+ }
97
+ }
98
+ }
99
+ /**
100
+ * @private
101
+ */
102
+ invalidateFile(path) {
103
+ if (this._fileSystem.isFileOrDirectory(path) !== 'file') {
104
+ throw new Error(`The path ${(0, utilities_1.gray)(path)} is not a valid file.`);
105
+ }
106
+ if (!this._fileSystem.fileExists(path)) {
107
+ throw new Error(`The path ${(0, utilities_1.gray)(path)} does not exist.`);
108
+ }
109
+ if (!this._fileSystem.fileGlob(path).length) {
110
+ throw new Error(`The path ${(0, utilities_1.gray)(path)} does not contain any files.`);
111
+ }
112
+ if (!path.endsWith('.po')) {
113
+ throw new Error('The path should end with .po.');
114
+ }
115
+ }
116
+ }
117
+ exports.PoResourceReaderAdapter = PoResourceReaderAdapter;
118
+ //# sourceMappingURL=PoResourceReaderAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoResourceReaderAdapter.js","sourceRoot":"","sources":["../../../../src/Resources/Readers/Adapter/PoResourceReaderAdapter.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { IResourceReaderAdapter } from './Interfaces/IResourceReaderAdapter
2
2
  import type { IResxResourceInfo } from '../../Models/Interfaces/IResxResourceInfo';
3
3
  import { type IFileSystem, type ILogger } from '@breadstone-infrastructure/utilities';
4
4
  /**
5
- * A resource reader adapter that scans directories for RESX files.
5
+ * A resource reader adapter that scans directories for resx files.
6
6
  *
7
7
  * @public
8
8
  */
@@ -17,7 +17,7 @@ export declare class ResxResourceReaderAdapter implements IResourceReaderAdapter
17
17
  */
18
18
  constructor(fileSystem: IFileSystem, logger: ILogger);
19
19
  /**
20
- * Scans the specified directory for .json files.
20
+ * Scans the specified directory for .resx files.
21
21
  *
22
22
  * @public
23
23
  * @param path - The path or paths to scan.
@@ -7,7 +7,7 @@ const ResxResourceInfo_1 = require("../../Models/ResxResourceInfo");
7
7
  const ResourceType_1 = require("../../Models/Interfaces/ResourceType");
8
8
  // #endregion
9
9
  /**
10
- * A resource reader adapter that scans directories for RESX files.
10
+ * A resource reader adapter that scans directories for resx files.
11
11
  *
12
12
  * @public
13
13
  */
@@ -31,7 +31,7 @@ class ResxResourceReaderAdapter {
31
31
  // #endregion
32
32
  // #region Methods
33
33
  /**
34
- * Scans the specified directory for .json files.
34
+ * Scans the specified directory for .resx files.
35
35
  *
36
36
  * @public
37
37
  * @param path - The path or paths to scan.
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceReader.d.ts","sourceRoot":"","sources":["../../../src/Resources/Readers/ResourceReader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAQ,KAAK,WAAW,EAAE,KAAK,OAAO,EAAsB,MAAM,sCAAsC,CAAC;AAIhH;;;;;GAKG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAMtE;;;;;;OAMG;gBACgB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW;IAY3D;;;;;;;OAOG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IAgB5F;;;;;;;OAOG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI;CAkB1E"}
1
+ {"version":3,"file":"ResourceReader.d.ts","sourceRoot":"","sources":["../../../src/Resources/Readers/ResourceReader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAQ,KAAK,WAAW,EAAE,KAAK,OAAO,EAAsB,MAAM,sCAAsC,CAAC;AAKhH;;;;;GAKG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAMtE;;;;;;OAMG;gBACgB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW;IAa3D;;;;;;;OAOG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IAgB5F;;;;;;;OAOG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI;CAkB1E"}
@@ -6,6 +6,7 @@ const JsonResourceReaderAdapter_1 = require("./Adapter/JsonResourceReaderAdapter
6
6
  const ResourceMode_1 = require("../ResourceMode");
7
7
  const ResxResourceReaderAdapter_1 = require("./Adapter/ResxResourceReaderAdapter");
8
8
  const utilities_1 = require("@breadstone-infrastructure/utilities");
9
+ const PoResourceReaderAdapter_1 = require("./Adapter/PoResourceReaderAdapter");
9
10
  // #endregion
10
11
  /**
11
12
  * The `ResourceReader` class is responsible for processing resources.
@@ -32,7 +33,8 @@ class ResourceReader {
32
33
  this._logger = logger;
33
34
  this._adapters = new Map()
34
35
  .set(ResourceMode_1.ResourceMode.Json, new JsonResourceReaderAdapter_1.JsonResourceReaderAdapter(this._fileSystem, this._logger))
35
- .set(ResourceMode_1.ResourceMode.Resx, new ResxResourceReaderAdapter_1.ResxResourceReaderAdapter(this._fileSystem, this._logger));
36
+ .set(ResourceMode_1.ResourceMode.Resx, new ResxResourceReaderAdapter_1.ResxResourceReaderAdapter(this._fileSystem, this._logger))
37
+ .set(ResourceMode_1.ResourceMode.Po, new PoResourceReaderAdapter_1.PoResourceReaderAdapter(this._fileSystem, this._logger));
36
38
  }
37
39
  // #endregion
38
40
  // #region Methods
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceReader.js","sourceRoot":"","sources":["../../../src/Resources/Readers/ResourceReader.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAGlB,mFAAgF;AAEhF,kDAA+C;AAC/C,mFAAgF;AAChF,oEAAgH;AAEhH,aAAa;AAEb;;;;;GAKG;AACH,MAAa,cAAc;IAEvB,iBAAiB;IAEA,WAAW,CAAc;IACzB,OAAO,CAAU;IACjB,SAAS,CAA4C;IAEtE,aAAa;IAEb,eAAe;IAEf;;;;;;OAMG;IACH,YAAmB,MAAe,EAAE,UAAuB;QACvD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAwC;aAC3D,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACrF,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;;;;OAOG;IACI,aAAa,CAAC,IAA4B,EAAE,IAAkB;QACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,gBAAgB,IAAA,gBAAI,EAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,qBAAqB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAElH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACI,QAAQ,CAAC,IAAY,EAAE,IAAkB;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,gBAAgB,IAAA,gBAAI,EAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAElF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEpG,OAAO,MAAM,CAAC;IAClB,CAAC;CAIJ;AAjFD,wCAiFC"}
1
+ {"version":3,"file":"ResourceReader.js","sourceRoot":"","sources":["../../../src/Resources/Readers/ResourceReader.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAGlB,mFAAgF;AAEhF,kDAA+C;AAC/C,mFAAgF;AAChF,oEAAgH;AAChH,+EAA4E;AAE5E,aAAa;AAEb;;;;;GAKG;AACH,MAAa,cAAc;IAEvB,iBAAiB;IAEA,WAAW,CAAc;IACzB,OAAO,CAAU;IACjB,SAAS,CAA4C;IAEtE,aAAa;IAEb,eAAe;IAEf;;;;;;OAMG;IACH,YAAmB,MAAe,EAAE,UAAuB;QACvD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAwC;aAC3D,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACrF,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACrF,GAAG,CAAC,2BAAY,CAAC,EAAE,EAAE,IAAI,iDAAuB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;;;;OAOG;IACI,aAAa,CAAC,IAA4B,EAAE,IAAkB;QACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,gBAAgB,IAAA,gBAAI,EAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,qBAAqB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAElH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACI,QAAQ,CAAC,IAAY,EAAE,IAAkB;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,gBAAgB,IAAA,gBAAI,EAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAElF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEpG,OAAO,MAAM,CAAC;IAClB,CAAC;CAIJ;AAlFD,wCAkFC"}
@@ -12,6 +12,10 @@ export declare const ResourceMode: {
12
12
  * `resx` - RESX mode.
13
13
  */
14
14
  readonly Resx: "resx";
15
+ /**
16
+ * `po` - PO mode.
17
+ */
18
+ readonly Po: "po";
15
19
  };
16
20
  /**
17
21
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceMode.d.ts","sourceRoot":"","sources":["../../src/Resources/ResourceMode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,YAAY;IAErB;;OAEG;;IAGH;;OAEG;;CAGG,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"ResourceMode.d.ts","sourceRoot":"","sources":["../../src/Resources/ResourceMode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,YAAY;IAErB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAGG,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
@@ -14,6 +14,10 @@ exports.ResourceMode = {
14
14
  /**
15
15
  * `resx` - RESX mode.
16
16
  */
17
- Resx: 'resx'
17
+ Resx: 'resx',
18
+ /**
19
+ * `po` - PO mode.
20
+ */
21
+ Po: 'po'
18
22
  };
19
23
  //# sourceMappingURL=ResourceMode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceMode.js","sourceRoot":"","sources":["../../src/Resources/ResourceMode.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,YAAY,GAAG;IAExB;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,IAAI,EAAE,MAAM;CAEN,CAAC"}
1
+ {"version":3,"file":"ResourceMode.js","sourceRoot":"","sources":["../../src/Resources/ResourceMode.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,YAAY,GAAG;IAExB;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,EAAE,EAAE,IAAI;CAEF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { ILogger } from '@breadstone-infrastructure/utilities';
2
2
  import type { ResourceAnalyzer } from './Analyzers/ResourceAnalyzer';
3
- import type { IAnalyzerTaskExecutionContext, IAnalyzerTaskResult } from './Analyzers/Tasks/Interfaces/IAnalyzerTask';
3
+ import type { IAnalyzerRuleExecutionContext, IAnalyzerRuleResult } from './Analyzers/Tasks/Interfaces/IAnalyzerRule';
4
4
  import type { IResourceInfo } from './Models/Interfaces/IResourceInfo';
5
5
  import type { ResourceType } from './Models/Interfaces/ResourceType';
6
6
  import type { ResourceMode } from './ResourceMode';
@@ -47,13 +47,13 @@ export declare class ResourceProcessor {
47
47
  target: ResourceType;
48
48
  }): IResourceTransformerResult;
49
49
  /**
50
- * Executes all registered tasks using the provided context.
50
+ * Executes all registered rules using the provided context.
51
51
  *
52
52
  * @public
53
53
  * @param rules - The name of rules to execute. If not specified, all rules are executed
54
54
  * @param context - The execution context.
55
55
  */
56
- analyze(rules: Array<string>, context: IAnalyzerTaskExecutionContext): Array<IAnalyzerTaskResult>;
56
+ analyze(rules: Array<string>, context: IAnalyzerRuleExecutionContext): Array<IAnalyzerRuleResult>;
57
57
  /**
58
58
  * Sorts the specified resources.
59
59
  *
@@ -60,7 +60,7 @@ class ResourceProcessor {
60
60
  };
61
61
  }
62
62
  /**
63
- * Executes all registered tasks using the provided context.
63
+ * Executes all registered rules using the provided context.
64
64
  *
65
65
  * @public
66
66
  * @param rules - The name of rules to execute. If not specified, all rules are executed
@@ -70,7 +70,7 @@ class ResourceProcessor {
70
70
  const results = [];
71
71
  for (const rule of rules) {
72
72
  this._logger.info(`Executing rule: ${rule}`);
73
- const result = this._analyzer.executeTask(rule, context);
73
+ const result = this._analyzer.executeRule(rule, context);
74
74
  results.push(result);
75
75
  }
76
76
  return results;
@@ -2,7 +2,7 @@ import type { IJsonResourceInfo } from '../../Models/Interfaces/IJsonResourceInf
2
2
  import type { IResourceModel } from '../../Models/Interfaces/IResourceModel';
3
3
  import { BaseResourceTransformerAdapter } from './Abstracts/BaseResourceTransformerAdapter';
4
4
  /**
5
- * Class to transform JSON resources.
5
+ * Class to transform json resources.
6
6
  *
7
7
  * @public
8
8
  */
@@ -15,12 +15,5 @@ export declare class JsonResourceTransformerAdapter extends BaseResourceTransfor
15
15
  * @returns The transformed resource.
16
16
  */
17
17
  transform(resource: IJsonResourceInfo): Array<IResourceModel>;
18
- /**
19
- * Sets a value in a nested object structure based on a dotted key.
20
- * @param tree - The object to set the value in.
21
- * @param memberKey - The dotted key representing the path to the value.
22
- * @param memberValue - The value to set.
23
- */
24
- private setMemberValue;
25
18
  }
26
19
  //# sourceMappingURL=JsonResourceTransformerAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonResourceTransformerAdapter.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAI5F;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,8BAA8B,CAAC,iBAAiB,CAAC;IAIjG;;;;;;OAMG;IACI,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC;IAuBpE;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAkBzB"}
1
+ {"version":3,"file":"JsonResourceTransformerAdapter.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAI5F;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,8BAA8B,CAAC,iBAAiB,CAAC;IAIjG;;;;;;OAMG;IACI,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC;CAyBvE"}
@@ -5,7 +5,7 @@ exports.JsonResourceTransformerAdapter = void 0;
5
5
  const BaseResourceTransformerAdapter_1 = require("./Abstracts/BaseResourceTransformerAdapter");
6
6
  // #endregion
7
7
  /**
8
- * Class to transform JSON resources.
8
+ * Class to transform json resources.
9
9
  *
10
10
  * @public
11
11
  */
@@ -38,27 +38,6 @@ class JsonResourceTransformerAdapter extends BaseResourceTransformerAdapter_1.Ba
38
38
  traverse(resource.content());
39
39
  return models;
40
40
  }
41
- /**
42
- * Sets a value in a nested object structure based on a dotted key.
43
- * @param tree - The object to set the value in.
44
- * @param memberKey - The dotted key representing the path to the value.
45
- * @param memberValue - The value to set.
46
- */
47
- setMemberValue(tree, memberKey, memberValue) {
48
- const members = memberKey.split('.');
49
- let current = tree;
50
- members.forEach((member, index) => {
51
- if (index === members.length - 1) {
52
- current[member] = memberValue;
53
- }
54
- else {
55
- if (!current[member]) {
56
- current[member] = {};
57
- }
58
- current = current[member];
59
- }
60
- });
61
- }
62
41
  }
63
42
  exports.JsonResourceTransformerAdapter = JsonResourceTransformerAdapter;
64
43
  //# sourceMappingURL=JsonResourceTransformerAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonResourceTransformerAdapter.js","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,+FAA4F;AAE5F,aAAa;AAEb;;;;GAIG;AACH,MAAa,8BAA+B,SAAQ,+DAAiD;IAEjG,kBAAkB;IAElB;;;;;;OAMG;IACI,SAAS,CAAC,QAA2B;QACxC,MAAM,MAAM,GAA0B,EAAE,CAAC;QAEzC,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,SAAS,GAAG,EAAE,EAAQ,EAAE;YAChE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACzC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAExD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC9C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,OAAO;wBACZ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;wBACpB,OAAO,EAAE,EAAE;qBACd,CAAC,CAAC;gBACP,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,IAA6B,EAAE,SAAiB,EAAE,WAAmB;QACxF,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,GAA4B,IAAI,CAAC;QAE5C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACzB,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAA4B,CAAC;YACzD,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CAIJ;AA1DD,wEA0DC"}
1
+ {"version":3,"file":"JsonResourceTransformerAdapter.js","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,+FAA4F;AAE5F,aAAa;AAEb;;;;GAIG;AACH,MAAa,8BAA+B,SAAQ,+DAAiD;IAEjG,kBAAkB;IAElB;;;;;;OAMG;IACI,SAAS,CAAC,QAA2B;QACxC,MAAM,MAAM,GAA0B,EAAE,CAAC;QAEzC,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,SAAS,GAAG,EAAE,EAAQ,EAAE;YAChE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACzC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAExD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC9C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,OAAO;wBACZ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;wBACpB,OAAO,EAAE,EAAE;qBACd,CAAC,CAAC;gBACP,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAClB,CAAC;CAIJ;AApCD,wEAoCC"}
@@ -0,0 +1,19 @@
1
+ import type { IPoResourceInfo } from '../../Models/Interfaces/IPoResourceInfo';
2
+ import type { IResourceModel } from '../../Models/Interfaces/IResourceModel';
3
+ import { BaseResourceTransformerAdapter } from './Abstracts/BaseResourceTransformerAdapter';
4
+ /**
5
+ * Class to transform po resources.
6
+ *
7
+ * @public
8
+ */
9
+ export declare class PoResourceTransformerAdapter extends BaseResourceTransformerAdapter<IPoResourceInfo> {
10
+ /**
11
+ * Transforms the given resource into an array of transform models.
12
+ *
13
+ * @public
14
+ * @param resource - The resource to transform.
15
+ * @returns The transformed resource.
16
+ */
17
+ transform(resource: IPoResourceInfo): Array<IResourceModel>;
18
+ }
19
+ //# sourceMappingURL=PoResourceTransformerAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoResourceTransformerAdapter.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Adapters/PoResourceTransformerAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAI5F;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,8BAA8B,CAAC,eAAe,CAAC;IAI7F;;;;;;OAMG;IACI,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;CAUrE"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PoResourceTransformerAdapter = void 0;
5
+ const BaseResourceTransformerAdapter_1 = require("./Abstracts/BaseResourceTransformerAdapter");
6
+ // #endregion
7
+ /**
8
+ * Class to transform po resources.
9
+ *
10
+ * @public
11
+ */
12
+ class PoResourceTransformerAdapter extends BaseResourceTransformerAdapter_1.BaseResourceTransformerAdapter {
13
+ // #region Imports
14
+ /**
15
+ * Transforms the given resource into an array of transform models.
16
+ *
17
+ * @public
18
+ * @param resource - The resource to transform.
19
+ * @returns The transformed resource.
20
+ */
21
+ transform(resource) {
22
+ return resource.content().map((entry) => ({
23
+ key: entry.msgid,
24
+ value: entry.msgstr,
25
+ comment: entry.comments ?? ''
26
+ }));
27
+ }
28
+ }
29
+ exports.PoResourceTransformerAdapter = PoResourceTransformerAdapter;
30
+ //# sourceMappingURL=PoResourceTransformerAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoResourceTransformerAdapter.js","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Adapters/PoResourceTransformerAdapter.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,+FAA4F;AAE5F,aAAa;AAEb;;;;GAIG;AACH,MAAa,4BAA6B,SAAQ,+DAA+C;IAE7F,kBAAkB;IAElB;;;;;;OAMG;IACI,SAAS,CAAC,QAAyB;QACtC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtC,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;SAChC,CAAC,CAAC,CAAC;IACR,CAAC;CAIJ;AArBD,oEAqBC"}
@@ -2,7 +2,7 @@ import type { IResxResourceInfo } from '../../Models/Interfaces/IResxResourceInf
2
2
  import type { IResourceModel } from '../../Models/Interfaces/IResourceModel';
3
3
  import { BaseResourceTransformerAdapter } from './Abstracts/BaseResourceTransformerAdapter';
4
4
  /**
5
- * Class to transform ResX resources.
5
+ * Class to transform resx resources.
6
6
  *
7
7
  * @public
8
8
  */
@@ -5,7 +5,7 @@ exports.ResxResourceTransformerAdapter = void 0;
5
5
  const BaseResourceTransformerAdapter_1 = require("./Abstracts/BaseResourceTransformerAdapter");
6
6
  // #endregion
7
7
  /**
8
- * Class to transform ResX resources.
8
+ * Class to transform resx resources.
9
9
  *
10
10
  * @public
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceTransformer.d.ts","sourceRoot":"","sources":["../../../src/Resources/Transformers/ResourceTransformer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAGrG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAOxF;;;;GAIG;AACH,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyE;IACnG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiE;IAM9F;;;;OAIG;gBACgB,MAAM,EAAE,OAAO;IAiBlC;;;;;;OAMG;IACI,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,OAAO,EAAE,2BAA2B,CAAC,aAAa,CAAC,GAAG,IAAI;IAItH;;;;;OAKG;IACI,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAInE;;;;;;OAMG;IACI,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAAG,IAAI;IAIpH;;;;;OAKG;IACI,oBAAoB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAItE;;;;;;;OAOG;IACI,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC;IAUhE;;;;;;;;OAQG;IACI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;QAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAAA;KAAE,GAAG,aAAa;CAY5J"}
1
+ {"version":3,"file":"ResourceTransformer.d.ts","sourceRoot":"","sources":["../../../src/Resources/Transformers/ResourceTransformer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAGrG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AASxF;;;;GAIG;AACH,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyE;IACnG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiE;IAM9F;;;;OAIG;gBACgB,MAAM,EAAE,OAAO;IAmBlC;;;;;;OAMG;IACI,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,OAAO,EAAE,2BAA2B,CAAC,aAAa,CAAC,GAAG,IAAI;IAItH;;;;;OAKG;IACI,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAInE;;;;;;OAMG;IACI,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAAG,IAAI;IAIpH;;;;;OAKG;IACI,oBAAoB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAItE;;;;;;;OAOG;IACI,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC;IAUhE;;;;;;;;OAQG;IACI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;QAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAAA;KAAE,GAAG,aAAa;CAgB5J"}
@@ -8,6 +8,8 @@ const ResxResourceTransformerAdapter_1 = require("./Adapters/ResxResourceTransfo
8
8
  const JsonResourceSerializer_1 = require("./Serializers/JsonResourceSerializer");
9
9
  const ResxResourceSerializer_1 = require("./Serializers/ResxResourceSerializer");
10
10
  const TypescriptResourceSerializer_1 = require("./Serializers/TypescriptResourceSerializer");
11
+ const PoResourceTransformerAdapter_1 = require("./Adapters/PoResourceTransformerAdapter");
12
+ const PoResourceSerializer_1 = require("./Serializers/PoResourceSerializer");
11
13
  // #endregion
12
14
  /**
13
15
  * Handles the transformation of resources by applying adapters and serializers dynamically.
@@ -30,11 +32,13 @@ class ResourceTransformer {
30
32
  this._logger = logger;
31
33
  this._adapters = new Map()
32
34
  .set(ResourceType_1.ResourceType.Json, new JsonResourceTransformerAdapter_1.JsonResourceTransformerAdapter())
33
- .set(ResourceType_1.ResourceType.Resx, new ResxResourceTransformerAdapter_1.ResxResourceTransformerAdapter());
35
+ .set(ResourceType_1.ResourceType.Resx, new ResxResourceTransformerAdapter_1.ResxResourceTransformerAdapter())
36
+ .set(ResourceType_1.ResourceType.Po, new PoResourceTransformerAdapter_1.PoResourceTransformerAdapter());
34
37
  this._serializers = new Map()
35
38
  .set(ResourceType_1.ResourceType.Json, new JsonResourceSerializer_1.JsonResourceSerializer())
36
39
  .set(ResourceType_1.ResourceType.Resx, new ResxResourceSerializer_1.ResxResourceSerializer())
37
- .set(ResourceType_1.ResourceType.TypeScript, new TypescriptResourceSerializer_1.TypescriptResourceSerializer());
40
+ .set(ResourceType_1.ResourceType.TypeScript, new TypescriptResourceSerializer_1.TypescriptResourceSerializer())
41
+ .set(ResourceType_1.ResourceType.Po, new PoResourceSerializer_1.PoResourceSerializer());
38
42
  }
39
43
  // #endregion
40
44
  // #region Methods
@@ -87,7 +91,7 @@ class ResourceTransformer {
87
91
  transform(resource) {
88
92
  const adapter = this._adapters.get(resource.type);
89
93
  if (!adapter) {
90
- throw new Error(`No adapter registered for resource type: ${resource.type}`);
94
+ throw new Error(`[ResourceTransformer]: No adapter registered for resource type: ${resource.type}`);
91
95
  }
92
96
  return adapter.transform(resource);
93
97
  }
@@ -103,9 +107,14 @@ class ResourceTransformer {
103
107
  serialize(models, meta) {
104
108
  const serializer = this._serializers.get(meta.target);
105
109
  if (!serializer) {
106
- throw new Error(`No serializer registered for target resource type: ${meta.target}`);
110
+ throw new Error(`[ResourceTransformer]: No serializer registered for target resource type: ${meta.target}`);
111
+ }
112
+ try {
113
+ return serializer.serialize(models, meta);
114
+ }
115
+ catch (error) {
116
+ throw new Error(`[ResourceTransformer]: Failed to serialize resource: ${error.message}`);
107
117
  }
108
- return serializer.serialize(models, meta);
109
118
  }
110
119
  }
111
120
  exports.ResourceTransformer = ResourceTransformer;
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceTransformer.js","sourceRoot":"","sources":["../../../src/Resources/Transformers/ResourceTransformer.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAKlB,oEAAiE;AAEjE,8FAA2F;AAC3F,8FAA2F;AAE3F,iFAA8E;AAC9E,iFAA8E;AAC9E,6FAA0F;AAE1F,aAAa;AAEb;;;;GAIG;AACH,MAAa,mBAAmB;IAE5B,iBAAiB;IAEA,OAAO,CAAU;IACjB,SAAS,CAAyE;IAClF,YAAY,CAAiE;IAE9F,aAAa;IAEb,sBAAsB;IAEtB;;;;OAIG;IACH,YAAmB,MAAe;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE;aACrB,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,+DAA8B,EAAE,CAAC;aAC5D,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,+DAA8B,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE;aACxB,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,+CAAsB,EAAE,CAAC;aACpD,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,+CAAsB,EAAE,CAAC;aACpD,GAAG,CAAC,2BAAY,CAAC,UAAU,EAAE,IAAI,2DAA4B,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;;;OAMG;IACI,eAAe,CAAC,YAAmC,EAAE,OAAmD;QAC3G,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,YAAmC;QACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACI,kBAAkB,CAAC,YAAmC,EAAE,UAA8C;QACzG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,YAAmC;QAC3D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACI,SAAS,CAAC,QAAuB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACI,SAAS,CAAC,MAA6B,EAAE,IAAyF;QACrI,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;CAIJ;AAnHD,kDAmHC"}
1
+ {"version":3,"file":"ResourceTransformer.js","sourceRoot":"","sources":["../../../src/Resources/Transformers/ResourceTransformer.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAKlB,oEAAiE;AAEjE,8FAA2F;AAC3F,8FAA2F;AAE3F,iFAA8E;AAC9E,iFAA8E;AAC9E,6FAA0F;AAC1F,0FAAuF;AACvF,6EAA0E;AAE1E,aAAa;AAEb;;;;GAIG;AACH,MAAa,mBAAmB;IAE5B,iBAAiB;IAEA,OAAO,CAAU;IACjB,SAAS,CAAyE;IAClF,YAAY,CAAiE;IAE9F,aAAa;IAEb,sBAAsB;IAEtB;;;;OAIG;IACH,YAAmB,MAAe;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE;aACrB,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,+DAA8B,EAAE,CAAC;aAC5D,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,+DAA8B,EAAE,CAAC;aAC5D,GAAG,CAAC,2BAAY,CAAC,EAAE,EAAE,IAAI,2DAA4B,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE;aACxB,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,+CAAsB,EAAE,CAAC;aACpD,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,+CAAsB,EAAE,CAAC;aACpD,GAAG,CAAC,2BAAY,CAAC,UAAU,EAAE,IAAI,2DAA4B,EAAE,CAAC;aAChE,GAAG,CAAC,2BAAY,CAAC,EAAE,EAAE,IAAI,2CAAoB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;;;OAMG;IACI,eAAe,CAAC,YAAmC,EAAE,OAAmD;QAC3G,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,YAAmC;QACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACI,kBAAkB,CAAC,YAAmC,EAAE,UAA8C;QACzG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,YAAmC;QAC3D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACI,SAAS,CAAC,QAAuB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,mEAAmE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACI,SAAS,CAAC,MAA6B,EAAE,IAAyF;QACrI,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,6EAA6E,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAChH,CAAC;QAED,IAAI,CAAC;YACD,OAAO,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wDAAwD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,CAAC;IACL,CAAC;CAIJ;AAzHD,kDAyHC"}
@@ -1 +1 @@
1
- {"version":3,"file":"JsonResourceSerializer.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Serializers/JsonResourceSerializer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAI5E;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB,CAAC,iBAAiB,CAAC;IAIjF;;;;;;;OAOG;IACI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,iBAAiB;CA4BhI"}
1
+ {"version":3,"file":"JsonResourceSerializer.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Serializers/JsonResourceSerializer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAI5E;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB,CAAC,iBAAiB,CAAC;IAIjF;;;;;;;OAOG;IACI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,iBAAiB;CAmChI"}
@@ -25,13 +25,20 @@ class JsonResourceSerializer {
25
25
  const keys = model.key.split('.');
26
26
  let current = output;
27
27
  keys.forEach((key, index) => {
28
- if (index === keys.length - 1) {
29
- current[key] = model.value;
28
+ try {
29
+ if (index === keys.length - 1) {
30
+ current[key] = model.value;
31
+ }
32
+ else {
33
+ if (current[key] !== undefined && typeof current[key] !== 'object') {
34
+ throw new Error(`[JsonResourceSerializer]: Cannot create nested structure - key "${keys.slice(0, index + 1).join('.')}" already exists as a primitive value "${current[key]}".`);
35
+ }
36
+ current[key] ??= {};
37
+ current = current[key];
38
+ }
30
39
  }
31
- else {
32
- // eslint-disable-next-line logical-assignment-operators
33
- current[key] = current[key] || {};
34
- current = current[key];
40
+ catch (error) {
41
+ throw new Error(`[JsonResourceSerializer]: Failed to serialize model with key "${model.key}": ${error.message}`);
35
42
  }
36
43
  });
37
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"JsonResourceSerializer.js","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Serializers/JsonResourceSerializer.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,oEAAiE;AAGjE,aAAa;AAEb;;;;GAIG;AACH,MAAa,sBAAsB;IAE/B,kBAAkB;IAElB;;;;;;;OAOG;IACI,SAAS,CAAC,MAA6B,EAAE,IAAyD;QACrG,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,GAAG,MAAM,CAAC;YAErB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACJ,wDAAwD;oBACxD,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAClC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,mCAAgB,CAAC;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM;SACxB,CAAC,CAAC;IACP,CAAC;CAIJ;AAxCD,wDAwCC"}
1
+ {"version":3,"file":"JsonResourceSerializer.js","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Serializers/JsonResourceSerializer.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,oEAAiE;AAGjE,aAAa;AAEb;;;;GAIG;AACH,MAAa,sBAAsB;IAE/B,kBAAkB;IAElB;;;;;;;OAOG;IACI,SAAS,CAAC,MAA6B,EAAE,IAAyD;QACrG,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,GAAG,MAAM,CAAC;YAErB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,IAAI,CAAC;oBACD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACJ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;4BACjE,MAAM,IAAI,KAAK,CAAC,mEAAmE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,0CAA0C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACrL,CAAC;wBAED,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;wBACpB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC3B,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,iEAAiE,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrH,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,mCAAgB,CAAC;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM;SACxB,CAAC,CAAC;IACP,CAAC;CAIJ;AA/CD,wDA+CC"}
@@ -0,0 +1,20 @@
1
+ import type { IPoResourceInfo } from '../../Models/Interfaces/IPoResourceInfo';
2
+ import type { IResourceModel } from '../../Models/Interfaces/IResourceModel';
3
+ import type { IResourceSerializer } from './Interfaces/IResourceSerializer';
4
+ /**
5
+ * A class responsible for serializing an array of transform models into a po resource format.
6
+ *
7
+ * @public
8
+ */
9
+ export declare class PoResourceSerializer implements IResourceSerializer<IPoResourceInfo> {
10
+ /**
11
+ * Serializes an array of transform models into a ResX resource.
12
+ *
13
+ * @public
14
+ * @param models - The array of transform models to serialize.
15
+ * @param info - The resource info.
16
+ * @returns An instance of `IPoResourceInfo` representing the serialized data.
17
+ */
18
+ serialize(models: Array<IResourceModel>, info: Pick<IPoResourceInfo, 'name' | 'path' | 'locale'>): IPoResourceInfo;
19
+ }
20
+ //# sourceMappingURL=PoResourceSerializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoResourceSerializer.d.ts","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Serializers/PoResourceSerializer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAI5E;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,mBAAmB,CAAC,eAAe,CAAC;IAI7E;;;;;;;OAOG;IACI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,eAAe;CAqB5H"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PoResourceSerializer = void 0;
5
+ const PoResourceInfo_1 = require("../../Models/PoResourceInfo");
6
+ // #endregion
7
+ /**
8
+ * A class responsible for serializing an array of transform models into a po resource format.
9
+ *
10
+ * @public
11
+ */
12
+ class PoResourceSerializer {
13
+ // #region Methods
14
+ /**
15
+ * Serializes an array of transform models into a ResX resource.
16
+ *
17
+ * @public
18
+ * @param models - The array of transform models to serialize.
19
+ * @param info - The resource info.
20
+ * @returns An instance of `IPoResourceInfo` representing the serialized data.
21
+ */
22
+ serialize(models, info) {
23
+ const output = [];
24
+ models.forEach((model) => {
25
+ output.push(model);
26
+ });
27
+ return new PoResourceInfo_1.PoResourceInfo({
28
+ name: info.name,
29
+ path: info.path,
30
+ locale: info.locale,
31
+ content: () => output.map((entry) => ({
32
+ msgid: entry.key,
33
+ msgstr: entry.value,
34
+ comments: entry.comment
35
+ }))
36
+ });
37
+ }
38
+ }
39
+ exports.PoResourceSerializer = PoResourceSerializer;
40
+ //# sourceMappingURL=PoResourceSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoResourceSerializer.js","sourceRoot":"","sources":["../../../../src/Resources/Transformers/Serializers/PoResourceSerializer.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAIlB,gEAA6D;AAG7D,aAAa;AAEb;;;;GAIG;AACH,MAAa,oBAAoB;IAE7B,kBAAkB;IAElB;;;;;;;OAOG;IACI,SAAS,CAAC,MAA6B,EAAE,IAAuD;QACnG,MAAM,MAAM,GAA0B,EAAE,CAAC;QAEzC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,+BAAc,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClC,KAAK,EAAE,KAAK,CAAC,GAAG;gBAChB,MAAM,EAAE,KAAK,CAAC,KAAK;gBACnB,QAAQ,EAAE,KAAK,CAAC,OAAO;aAC1B,CAAC,CAAC;SACN,CAAC,CAAC;IACP,CAAC;CAIJ;AAjCD,oDAiCC"}