@breadstone-tools/localizator-core 0.0.12-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/Detectors/Abstracts/BaseDetector.d.ts +81 -0
  2. package/Detectors/Abstracts/BaseDetector.d.ts.map +1 -0
  3. package/Detectors/Abstracts/BaseDetector.js +137 -0
  4. package/Detectors/Abstracts/BaseDetector.js.map +1 -0
  5. package/Detectors/AngularHTMLDetector.d.ts +94 -0
  6. package/Detectors/AngularHTMLDetector.d.ts.map +1 -0
  7. package/Detectors/AngularHTMLDetector.js +123 -0
  8. package/Detectors/AngularHTMLDetector.js.map +1 -0
  9. package/Detectors/Interfaces/IDetector.d.ts +73 -0
  10. package/Detectors/Interfaces/IDetector.d.ts.map +1 -0
  11. package/Detectors/Interfaces/IDetector.js +12 -0
  12. package/Detectors/Interfaces/IDetector.js.map +1 -0
  13. package/Detectors/JSXDetector.d.ts +69 -0
  14. package/Detectors/JSXDetector.d.ts.map +1 -0
  15. package/Detectors/JSXDetector.js +101 -0
  16. package/Detectors/JSXDetector.js.map +1 -0
  17. package/Detectors/JavaScriptDetector.d.ts +74 -0
  18. package/Detectors/JavaScriptDetector.d.ts.map +1 -0
  19. package/Detectors/JavaScriptDetector.js +106 -0
  20. package/Detectors/JavaScriptDetector.js.map +1 -0
  21. package/Detectors/TSXDetector.d.ts +76 -0
  22. package/Detectors/TSXDetector.d.ts.map +1 -0
  23. package/Detectors/TSXDetector.js +101 -0
  24. package/Detectors/TSXDetector.js.map +1 -0
  25. package/Detectors/TypeScriptDetector.d.ts +76 -0
  26. package/Detectors/TypeScriptDetector.d.ts.map +1 -0
  27. package/Detectors/TypeScriptDetector.js +102 -0
  28. package/Detectors/TypeScriptDetector.js.map +1 -0
  29. package/Detectors/Utils.d.ts +41 -0
  30. package/Detectors/Utils.d.ts.map +1 -0
  31. package/Detectors/Utils.js +62 -0
  32. package/Detectors/Utils.js.map +1 -0
  33. package/Detectors/VueDetector.d.ts +60 -0
  34. package/Detectors/VueDetector.d.ts.map +1 -0
  35. package/Detectors/VueDetector.js +108 -0
  36. package/Detectors/VueDetector.js.map +1 -0
  37. package/Formatters/Formatters.d.ts +15 -0
  38. package/Formatters/Formatters.d.ts.map +1 -0
  39. package/Formatters/Formatters.js +34 -0
  40. package/Formatters/Formatters.js.map +1 -0
  41. package/Formatters/Interfaces/IFormatter.d.ts +24 -0
  42. package/Formatters/Interfaces/IFormatter.d.ts.map +1 -0
  43. package/Formatters/Interfaces/IFormatter.js +3 -0
  44. package/Formatters/Interfaces/IFormatter.js.map +1 -0
  45. package/Formatters/JsonFormatter.d.ts +26 -0
  46. package/Formatters/JsonFormatter.d.ts.map +1 -0
  47. package/Formatters/JsonFormatter.js +42 -0
  48. package/Formatters/JsonFormatter.js.map +1 -0
  49. package/Formatters/ResxFormatter.d.ts +26 -0
  50. package/Formatters/ResxFormatter.d.ts.map +1 -0
  51. package/Formatters/ResxFormatter.js +53 -0
  52. package/Formatters/ResxFormatter.js.map +1 -0
  53. package/Index.d.ts +57 -0
  54. package/Index.d.ts.map +1 -0
  55. package/Index.js +86 -0
  56. package/Index.js.map +1 -0
  57. package/LICENSE +21 -0
  58. package/Presets/AngularPreset.d.ts +38 -0
  59. package/Presets/AngularPreset.d.ts.map +1 -0
  60. package/Presets/AngularPreset.js +59 -0
  61. package/Presets/AngularPreset.js.map +1 -0
  62. package/Presets/Interfaces/IFrameworkPreset.d.ts +28 -0
  63. package/Presets/Interfaces/IFrameworkPreset.d.ts.map +1 -0
  64. package/Presets/Interfaces/IFrameworkPreset.js +4 -0
  65. package/Presets/Interfaces/IFrameworkPreset.js.map +1 -0
  66. package/Presets/LitPreset.d.ts +38 -0
  67. package/Presets/LitPreset.d.ts.map +1 -0
  68. package/Presets/LitPreset.js +57 -0
  69. package/Presets/LitPreset.js.map +1 -0
  70. package/Presets/Presets.d.ts +25 -0
  71. package/Presets/Presets.d.ts.map +1 -0
  72. package/Presets/Presets.js +50 -0
  73. package/Presets/Presets.js.map +1 -0
  74. package/Presets/ReactPreset.d.ts +38 -0
  75. package/Presets/ReactPreset.d.ts.map +1 -0
  76. package/Presets/ReactPreset.js +61 -0
  77. package/Presets/ReactPreset.js.map +1 -0
  78. package/Presets/StencilPreset.d.ts +38 -0
  79. package/Presets/StencilPreset.d.ts.map +1 -0
  80. package/Presets/StencilPreset.js +59 -0
  81. package/Presets/StencilPreset.js.map +1 -0
  82. package/Presets/VuePreset.d.ts +38 -0
  83. package/Presets/VuePreset.d.ts.map +1 -0
  84. package/Presets/VuePreset.js +60 -0
  85. package/Presets/VuePreset.js.map +1 -0
  86. package/Resources/Analyzers/ResourceAnalyzer.d.ts +58 -0
  87. package/Resources/Analyzers/ResourceAnalyzer.d.ts.map +1 -0
  88. package/Resources/Analyzers/ResourceAnalyzer.js +119 -0
  89. package/Resources/Analyzers/ResourceAnalyzer.js.map +1 -0
  90. package/Resources/Analyzers/Tasks/DuplicateKeysTask.d.ts +31 -0
  91. package/Resources/Analyzers/Tasks/DuplicateKeysTask.d.ts.map +1 -0
  92. package/Resources/Analyzers/Tasks/DuplicateKeysTask.js +40 -0
  93. package/Resources/Analyzers/Tasks/DuplicateKeysTask.js.map +1 -0
  94. package/Resources/Analyzers/Tasks/EmptyValuesTask.d.ts +31 -0
  95. package/Resources/Analyzers/Tasks/EmptyValuesTask.d.ts.map +1 -0
  96. package/Resources/Analyzers/Tasks/EmptyValuesTask.js +41 -0
  97. package/Resources/Analyzers/Tasks/EmptyValuesTask.js.map +1 -0
  98. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.d.ts +36 -0
  99. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.d.ts.map +1 -0
  100. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.js +4 -0
  101. package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.js.map +1 -0
  102. package/Resources/Analyzers/Tasks/KeyConsistencyTask.d.ts +35 -0
  103. package/Resources/Analyzers/Tasks/KeyConsistencyTask.d.ts.map +1 -0
  104. package/Resources/Analyzers/Tasks/KeyConsistencyTask.js +67 -0
  105. package/Resources/Analyzers/Tasks/KeyConsistencyTask.js.map +1 -0
  106. package/Resources/Analyzers/Tasks/MissingTranslationsTask.d.ts +31 -0
  107. package/Resources/Analyzers/Tasks/MissingTranslationsTask.d.ts.map +1 -0
  108. package/Resources/Analyzers/Tasks/MissingTranslationsTask.js +44 -0
  109. package/Resources/Analyzers/Tasks/MissingTranslationsTask.js.map +1 -0
  110. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.d.ts +31 -0
  111. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.d.ts.map +1 -0
  112. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.js +48 -0
  113. package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.js.map +1 -0
  114. package/Resources/Analyzers/Tasks/UnusedKeysTask.d.ts +31 -0
  115. package/Resources/Analyzers/Tasks/UnusedKeysTask.d.ts.map +1 -0
  116. package/Resources/Analyzers/Tasks/UnusedKeysTask.js +49 -0
  117. package/Resources/Analyzers/Tasks/UnusedKeysTask.js.map +1 -0
  118. package/Resources/Models/Interfaces/IJsonResourceInfo.d.ts +12 -0
  119. package/Resources/Models/Interfaces/IJsonResourceInfo.d.ts.map +1 -0
  120. package/Resources/Models/Interfaces/IJsonResourceInfo.js +4 -0
  121. package/Resources/Models/Interfaces/IJsonResourceInfo.js.map +1 -0
  122. package/Resources/Models/Interfaces/IResourceInfo.d.ts +71 -0
  123. package/Resources/Models/Interfaces/IResourceInfo.d.ts.map +1 -0
  124. package/Resources/Models/Interfaces/IResourceInfo.js +4 -0
  125. package/Resources/Models/Interfaces/IResourceInfo.js.map +1 -0
  126. package/Resources/Models/Interfaces/IResourceModel.d.ts +41 -0
  127. package/Resources/Models/Interfaces/IResourceModel.d.ts.map +1 -0
  128. package/Resources/Models/Interfaces/IResourceModel.js +25 -0
  129. package/Resources/Models/Interfaces/IResourceModel.js.map +1 -0
  130. package/Resources/Models/Interfaces/IResxResourceInfo.d.ts +12 -0
  131. package/Resources/Models/Interfaces/IResxResourceInfo.d.ts.map +1 -0
  132. package/Resources/Models/Interfaces/IResxResourceInfo.js +4 -0
  133. package/Resources/Models/Interfaces/IResxResourceInfo.js.map +1 -0
  134. package/Resources/Models/Interfaces/ITypeScriptResourceInfo.d.ts +11 -0
  135. package/Resources/Models/Interfaces/ITypeScriptResourceInfo.d.ts.map +1 -0
  136. package/Resources/Models/Interfaces/ITypeScriptResourceInfo.js +4 -0
  137. package/Resources/Models/Interfaces/ITypeScriptResourceInfo.js.map +1 -0
  138. package/Resources/Models/Interfaces/ResourceType.d.ts +29 -0
  139. package/Resources/Models/Interfaces/ResourceType.d.ts.map +1 -0
  140. package/Resources/Models/Interfaces/ResourceType.js +45 -0
  141. package/Resources/Models/Interfaces/ResourceType.js.map +1 -0
  142. package/Resources/Models/JsonResourceInfo.d.ts +111 -0
  143. package/Resources/Models/JsonResourceInfo.d.ts.map +1 -0
  144. package/Resources/Models/JsonResourceInfo.js +184 -0
  145. package/Resources/Models/JsonResourceInfo.js.map +1 -0
  146. package/Resources/Models/ResxResourceInfo.d.ts +110 -0
  147. package/Resources/Models/ResxResourceInfo.d.ts.map +1 -0
  148. package/Resources/Models/ResxResourceInfo.js +171 -0
  149. package/Resources/Models/ResxResourceInfo.js.map +1 -0
  150. package/Resources/Models/TypeScriptResourceInfo.d.ts +109 -0
  151. package/Resources/Models/TypeScriptResourceInfo.d.ts.map +1 -0
  152. package/Resources/Models/TypeScriptResourceInfo.js +244 -0
  153. package/Resources/Models/TypeScriptResourceInfo.js.map +1 -0
  154. package/Resources/ResourceFactory.d.ts +39 -0
  155. package/Resources/ResourceFactory.d.ts.map +1 -0
  156. package/Resources/ResourceFactory.js +102 -0
  157. package/Resources/ResourceFactory.js.map +1 -0
  158. package/Resources/ResourceMode.d.ts +14 -0
  159. package/Resources/ResourceMode.d.ts.map +1 -0
  160. package/Resources/ResourceMode.js +18 -0
  161. package/Resources/ResourceMode.js.map +1 -0
  162. package/Resources/ResourceProcessor.d.ts +66 -0
  163. package/Resources/ResourceProcessor.d.ts.map +1 -0
  164. package/Resources/ResourceProcessor.js +90 -0
  165. package/Resources/ResourceProcessor.js.map +1 -0
  166. package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.d.ts +17 -0
  167. package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.d.ts.map +1 -0
  168. package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.js +4 -0
  169. package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.js.map +1 -0
  170. package/Resources/Scanners/Adapter/JsonScannerAdapter.d.ts +28 -0
  171. package/Resources/Scanners/Adapter/JsonScannerAdapter.d.ts.map +1 -0
  172. package/Resources/Scanners/Adapter/JsonScannerAdapter.js +62 -0
  173. package/Resources/Scanners/Adapter/JsonScannerAdapter.js.map +1 -0
  174. package/Resources/Scanners/Adapter/ResxScannerAdapter.d.ts +28 -0
  175. package/Resources/Scanners/Adapter/ResxScannerAdapter.d.ts.map +1 -0
  176. package/Resources/Scanners/Adapter/ResxScannerAdapter.js +62 -0
  177. package/Resources/Scanners/Adapter/ResxScannerAdapter.js.map +1 -0
  178. package/Resources/Scanners/ResourceScanner.d.ts +32 -0
  179. package/Resources/Scanners/ResourceScanner.d.ts.map +1 -0
  180. package/Resources/Scanners/ResourceScanner.js +59 -0
  181. package/Resources/Scanners/ResourceScanner.js.map +1 -0
  182. package/Resources/Sorting/ResourceSorter.d.ts +46 -0
  183. package/Resources/Sorting/ResourceSorter.d.ts.map +1 -0
  184. package/Resources/Sorting/ResourceSorter.js +82 -0
  185. package/Resources/Sorting/ResourceSorter.js.map +1 -0
  186. package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.d.ts +20 -0
  187. package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.d.ts.map +1 -0
  188. package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.js +15 -0
  189. package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.js.map +1 -0
  190. package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.d.ts +11 -0
  191. package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.d.ts.map +1 -0
  192. package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.js +4 -0
  193. package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.js.map +1 -0
  194. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.d.ts +26 -0
  195. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.d.ts.map +1 -0
  196. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.js +64 -0
  197. package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.js.map +1 -0
  198. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.d.ts +19 -0
  199. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.d.ts.map +1 -0
  200. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.js +30 -0
  201. package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.js.map +1 -0
  202. package/Resources/Transformers/Interfaces/IResourceTransformerResult.d.ts +11 -0
  203. package/Resources/Transformers/Interfaces/IResourceTransformerResult.d.ts.map +1 -0
  204. package/Resources/Transformers/Interfaces/IResourceTransformerResult.js +4 -0
  205. package/Resources/Transformers/Interfaces/IResourceTransformerResult.js.map +1 -0
  206. package/Resources/Transformers/ResourceTransformer.d.ts +74 -0
  207. package/Resources/Transformers/ResourceTransformer.d.ts.map +1 -0
  208. package/Resources/Transformers/ResourceTransformer.js +112 -0
  209. package/Resources/Transformers/ResourceTransformer.js.map +1 -0
  210. package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.d.ts +9 -0
  211. package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.d.ts.map +1 -0
  212. package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.js +4 -0
  213. package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.js.map +1 -0
  214. package/Resources/Transformers/Serializers/JsonResourceSerializer.d.ts +20 -0
  215. package/Resources/Transformers/Serializers/JsonResourceSerializer.d.ts.map +1 -0
  216. package/Resources/Transformers/Serializers/JsonResourceSerializer.js +47 -0
  217. package/Resources/Transformers/Serializers/JsonResourceSerializer.js.map +1 -0
  218. package/Resources/Transformers/Serializers/ResxResourceSerializer.d.ts +20 -0
  219. package/Resources/Transformers/Serializers/ResxResourceSerializer.d.ts.map +1 -0
  220. package/Resources/Transformers/Serializers/ResxResourceSerializer.js +36 -0
  221. package/Resources/Transformers/Serializers/ResxResourceSerializer.js.map +1 -0
  222. package/Resources/Transformers/Serializers/TypescriptResourceSerializer.d.ts +20 -0
  223. package/Resources/Transformers/Serializers/TypescriptResourceSerializer.d.ts.map +1 -0
  224. package/Resources/Transformers/Serializers/TypescriptResourceSerializer.js +36 -0
  225. package/Resources/Transformers/Serializers/TypescriptResourceSerializer.js.map +1 -0
  226. package/Services/DiffService.d.ts +1 -0
  227. package/Services/DiffService.d.ts.map +1 -0
  228. package/Services/DiffService.js +86 -0
  229. package/Services/DiffService.js.map +1 -0
  230. package/Services/KeyGenerator.d.ts +21 -0
  231. package/Services/KeyGenerator.d.ts.map +1 -0
  232. package/Services/KeyGenerator.js +34 -0
  233. package/Services/KeyGenerator.js.map +1 -0
  234. package/Services/LocalizationProcessor.d.ts +83 -0
  235. package/Services/LocalizationProcessor.d.ts.map +1 -0
  236. package/Services/LocalizationProcessor.js +90 -0
  237. package/Services/LocalizationProcessor.js.map +1 -0
  238. package/package.json +19 -0
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ // import { createTwoFilesPatch } from 'diff';
3
+ // interface ModifiedFile {
4
+ // type: 'diff' | 'file';
5
+ // content: string;
6
+ // }
7
+ // type FileModifications = Record<string, ModifiedFile>;
8
+ // export function computeFileModifications(files:, modifiedFiles: Map<string, string>) {
9
+ // const modifications: FileModifications = {};
10
+ // let hasModifiedFiles = false;
11
+ // for (const [filePath, originalContent] of modifiedFiles) {
12
+ // const file = files[filePath];
13
+ // if (file?.type !== 'file') {
14
+ // continue;
15
+ // }
16
+ // const unifiedDiff = diffFiles(filePath, originalContent, file.content);
17
+ // if (!unifiedDiff) {
18
+ // // files are identical
19
+ // continue;
20
+ // }
21
+ // hasModifiedFiles = true;
22
+ // if (unifiedDiff.length > file.content.length) {
23
+ // // if there are lots of changes we simply grab the current file content since it's smaller than the diff
24
+ // modifications[filePath] = {
25
+ // type: 'file',
26
+ // content: file.content
27
+ // };
28
+ // } else {
29
+ // // otherwise we use the diff since it's smaller
30
+ // modifications[filePath] = {
31
+ // type: 'diff',
32
+ // content: unifiedDiff
33
+ // };
34
+ // }
35
+ // }
36
+ // if (!hasModifiedFiles) {
37
+ // return undefined;
38
+ // }
39
+ // return modifications;
40
+ // }
41
+ // /**
42
+ // * Computes a diff in the unified format. The only difference is that the header is omitted
43
+ // * because it will always assume that you're comparing two versions of the same file and
44
+ // * it allows us to avoid the extra characters we send back to the llm.
45
+ // *
46
+ // * @see https://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html
47
+ // */
48
+ // export function diffFiles(fileName: string, oldFileContent: string, newFileContent: string) {
49
+ // let unifiedDiff = createTwoFilesPatch(fileName, fileName, oldFileContent, newFileContent);
50
+ // const patchHeaderEnd = `--- ${fileName}\n+++ ${fileName}\n`;
51
+ // const headerEndIndex = unifiedDiff.indexOf(patchHeaderEnd);
52
+ // if (headerEndIndex >= 0) {
53
+ // unifiedDiff = unifiedDiff.slice(headerEndIndex + patchHeaderEnd.length);
54
+ // }
55
+ // if (unifiedDiff === '') {
56
+ // return undefined;
57
+ // }
58
+ // return unifiedDiff;
59
+ // }
60
+ // /**
61
+ // * Converts the unified diff to HTML.
62
+ // *
63
+ // * Example:
64
+ // *
65
+ // * ```html
66
+ // * <bolt_file_modifications>
67
+ // * <diff path="/home/project/index.js">
68
+ // * - console.log('Hello, World!');
69
+ // * + console.log('Hello, Bolt!');
70
+ // * </diff>
71
+ // * </bolt_file_modifications>
72
+ // * ```
73
+ // */
74
+ // export function fileModificationsToHTML(modifications: FileModifications) {
75
+ // const entries = Object.entries(modifications);
76
+ // if (entries.length === 0) {
77
+ // return undefined;
78
+ // }
79
+ // const result: Array<string> = [`<${MODIFICATIONS_TAG_NAME}>`];
80
+ // for (const [filePath, { type, content }] of entries) {
81
+ // result.push(`<${type} path=${JSON.stringify(filePath)}>`, content, `</${type}>`);
82
+ // }
83
+ // result.push(`</${MODIFICATIONS_TAG_NAME}>`);
84
+ // return result.join('\n');
85
+ // }
86
+ //# sourceMappingURL=DiffService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiffService.js","sourceRoot":"","sources":["../../src/Services/DiffService.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAE9C,2BAA2B;AAC3B,6BAA6B;AAC7B,uBAAuB;AACvB,IAAI;AAEJ,yDAAyD;AAEzD,yFAAyF;AACzF,mDAAmD;AAEnD,oCAAoC;AAEpC,iEAAiE;AACjE,wCAAwC;AAExC,uCAAuC;AACvC,wBAAwB;AACxB,YAAY;AAEZ,kFAAkF;AAElF,8BAA8B;AAC9B,qCAAqC;AACrC,wBAAwB;AACxB,YAAY;AAEZ,mCAAmC;AAEnC,0DAA0D;AAC1D,uHAAuH;AACvH,0CAA0C;AAC1C,gCAAgC;AAChC,wCAAwC;AACxC,iBAAiB;AACjB,mBAAmB;AACnB,8DAA8D;AAC9D,0CAA0C;AAC1C,gCAAgC;AAChC,uCAAuC;AACvC,iBAAiB;AACjB,YAAY;AACZ,QAAQ;AAER,+BAA+B;AAC/B,4BAA4B;AAC5B,QAAQ;AAER,4BAA4B;AAC5B,IAAI;AAEJ,MAAM;AACN,8FAA8F;AAC9F,2FAA2F;AAC3F,yEAAyE;AACzE,KAAK;AACL,sFAAsF;AACtF,MAAM;AACN,gGAAgG;AAChG,iGAAiG;AAEjG,mEAAmE;AACnE,kEAAkE;AAElE,iCAAiC;AACjC,mFAAmF;AACnF,QAAQ;AAER,gCAAgC;AAChC,4BAA4B;AAC5B,QAAQ;AAER,0BAA0B;AAC1B,IAAI;AAEJ,MAAM;AACN,wCAAwC;AACxC,KAAK;AACL,cAAc;AACd,KAAK;AACL,aAAa;AACb,+BAA+B;AAC/B,0CAA0C;AAC1C,qCAAqC;AACrC,oCAAoC;AACpC,aAAa;AACb,gCAAgC;AAChC,SAAS;AACT,MAAM;AACN,8EAA8E;AAC9E,qDAAqD;AAErD,kCAAkC;AAClC,4BAA4B;AAC5B,QAAQ;AAER,qEAAqE;AAErE,6DAA6D;AAC7D,4FAA4F;AAC5F,QAAQ;AAER,mDAAmD;AAEnD,gCAAgC;AAChC,IAAI"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Service for generating keys from string values.
3
+ *
4
+ * @public
5
+ */
6
+ export declare class KeyGenerator {
7
+ /**
8
+ * Generates a unique key based on the string value.
9
+ *
10
+ * @public
11
+ * @param value - The string value to generate a key for.
12
+ * @returns The generated key in dot notation.
13
+ * @example
14
+ * ```typescript
15
+ * const key = KeyGeneratorService.generate("Facts Title 🎉");
16
+ * console.log(key); // "facts.title"
17
+ * ```
18
+ */
19
+ generate(value: string): string;
20
+ }
21
+ //# sourceMappingURL=KeyGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyGenerator.d.ts","sourceRoot":"","sources":["../../src/Services/KeyGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,YAAY;IAErB;;;;;;;;;;;OAWG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAWzC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyGenerator = void 0;
4
+ /**
5
+ * Service for generating keys from string values.
6
+ *
7
+ * @public
8
+ */
9
+ class KeyGenerator {
10
+ /**
11
+ * Generates a unique key based on the string value.
12
+ *
13
+ * @public
14
+ * @param value - The string value to generate a key for.
15
+ * @returns The generated key in dot notation.
16
+ * @example
17
+ * ```typescript
18
+ * const key = KeyGeneratorService.generate("Facts Title 🎉");
19
+ * console.log(key); // "facts.title"
20
+ * ```
21
+ */
22
+ generate(value) {
23
+ return value
24
+ .toLowerCase()
25
+ .replace(/[\p{Emoji_Presentation}\p{Emoji}\u200D]+/gu, '') // Remove emojis
26
+ .replace(/\s+/g, '.') // Replace spaces with dots
27
+ .replace(/[^\w.]/g, '') // Remove non-alphanumeric characters except dots
28
+ .replace(/\.+/g, '.') // Collapse multiple dots into one
29
+ .replace(/^\./, '') // Remove leading dot if any
30
+ .replace(/\.$/, ''); // Remove trailing dot if any
31
+ }
32
+ }
33
+ exports.KeyGenerator = KeyGenerator;
34
+ //# sourceMappingURL=KeyGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyGenerator.js","sourceRoot":"","sources":["../../src/Services/KeyGenerator.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAa,YAAY;IAErB;;;;;;;;;;;OAWG;IACI,QAAQ,CAAC,KAAa;QACzB,OAAO,KAAK;aACP,WAAW,EAAE;aACb,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC,gBAAgB;aAC1E,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,2BAA2B;aAChD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,iDAAiD;aACxE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,kCAAkC;aACvD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,4BAA4B;aAC/C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,6BAA6B;IAC1D,CAAC;CAEJ;AAzBD,oCAyBC"}
@@ -0,0 +1,83 @@
1
+ import type { IFrameworkPreset } from '../Presets/Interfaces/IFrameworkPreset.js';
2
+ import { type IFileSystem } from '@breadstone-infrastructure/utilities';
3
+ import { EventEmitter } from 'events';
4
+ import type { IDetectOptions, IDetectorResult } from '../Detectors/Interfaces/IDetector.js';
5
+ import type { IFormatter } from '../Formatters/Interfaces/IFormatter.js';
6
+ /**
7
+ * Result of a localization processor extraction.
8
+ *
9
+ * @public
10
+ */
11
+ export interface ILocalizationProcessorResult {
12
+ /**
13
+ * The file path of the processed file.
14
+ */
15
+ filePath: string;
16
+ /**
17
+ * The extraction result
18
+ */
19
+ extraction: {
20
+ content: string;
21
+ changes: Record<string, string>;
22
+ };
23
+ /**
24
+ * The parsing results.
25
+ */
26
+ parsings: Array<IDetectorResult>;
27
+ }
28
+ /**
29
+ * Event map for the `LocalizationProcessor`.
30
+ *
31
+ * @public
32
+ */
33
+ export interface ILocalizationProcessorEventMap {
34
+ /**
35
+ * The detected event.
36
+ */
37
+ detected: [change: IDetectorResult];
38
+ /**
39
+ * The failed event.
40
+ */
41
+ failed: [error: any];
42
+ }
43
+ /**
44
+ * The `IProcessOptions` interface.
45
+ *
46
+ * @public
47
+ */
48
+ export interface IProcessOptions extends IDetectOptions {
49
+ }
50
+ /**
51
+ * The `LocalizationProcessor` class.
52
+ *
53
+ * @public
54
+ */
55
+ export declare class LocalizationProcessor extends EventEmitter<ILocalizationProcessorEventMap> {
56
+ private readonly _fileSystem;
57
+ private readonly _formatter;
58
+ /**
59
+ * Constructs a new instance of the `LocalizationProcessor` class.
60
+ *
61
+ * @public
62
+ */
63
+ constructor(formatter: IFormatter, fileSystem: IFileSystem);
64
+ /**
65
+ * Processes the localization of a directory.
66
+ *
67
+ * @public
68
+ * @param rootDir - The root directory to process.
69
+ * @param preset - The preset to use for processing.
70
+ * @param options - The optional processing options.
71
+ * @returns The results of the localization process.
72
+ */
73
+ process(rootDir: string, preset: IFrameworkPreset, options?: IProcessOptions): Array<ILocalizationProcessorResult>;
74
+ /**
75
+ * Extracts strings from a value.
76
+ *
77
+ * @public
78
+ * @param values - The values to extract.
79
+ * @returns The extraction result.
80
+ */
81
+ private format;
82
+ }
83
+ //# sourceMappingURL=LocalizationProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalizationProcessor.d.ts","sourceRoot":"","sources":["../../src/Services/LocalizationProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,KAAK,WAAW,EAAQ,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAKzE;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAIzC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC,CAAC;IAEF;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;CAGpC;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAI3C;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEpC;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CAIxB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc;CACtD;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,8BAA8B,CAAC;IAInF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAMxC;;;;OAIG;gBACgB,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW;IAWjE;;;;;;;;OAQG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC,4BAA4B,CAAC;IAyCzH;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;CAgBjB"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.LocalizationProcessor = void 0;
5
+ const utilities_1 = require("@breadstone-infrastructure/utilities");
6
+ const events_1 = require("events");
7
+ const KeyGenerator_js_1 = require("./KeyGenerator.js");
8
+ /**
9
+ * The `LocalizationProcessor` class.
10
+ *
11
+ * @public
12
+ */
13
+ class LocalizationProcessor extends events_1.EventEmitter {
14
+ // #region Fields
15
+ _fileSystem;
16
+ _formatter;
17
+ // #endregion
18
+ // #region Ctor
19
+ /**
20
+ * Constructs a new instance of the `LocalizationProcessor` class.
21
+ *
22
+ * @public
23
+ */
24
+ constructor(formatter, fileSystem) {
25
+ super({ captureRejections: true });
26
+ this._formatter = formatter;
27
+ this._fileSystem = fileSystem;
28
+ }
29
+ // #endregion
30
+ // #region Methods
31
+ /**
32
+ * Processes the localization of a directory.
33
+ *
34
+ * @public
35
+ * @param rootDir - The root directory to process.
36
+ * @param preset - The preset to use for processing.
37
+ * @param options - The optional processing options.
38
+ * @returns The results of the localization process.
39
+ */
40
+ process(rootDir, preset, options) {
41
+ if (!rootDir.length) {
42
+ return [];
43
+ }
44
+ if (!this._fileSystem.exists(rootDir)) {
45
+ throw new Error('The specified directory does not exist.');
46
+ }
47
+ Object.entries(preset.getParsers()).forEach(([_, x]) => {
48
+ x.on('detected', (args) => {
49
+ this.emit('detected', args);
50
+ });
51
+ x.on('failed', (args) => {
52
+ this.emit('failed', args);
53
+ });
54
+ });
55
+ const extensions = preset.getExtensions().map((x) => utilities_1.Path.combine(rootDir, `**/*${x}`));
56
+ const results = new Array();
57
+ this._fileSystem.glob(extensions).forEach((file) => {
58
+ const ext = utilities_1.Path.getExtension(file, true);
59
+ const content = this._fileSystem.readAllText(file);
60
+ const parser = preset.getParser(ext);
61
+ const parsings = parser.detect(content, options);
62
+ const extraction = this.format(parsings);
63
+ // if (Object.keys(extraction.changes).length > 0) {
64
+ results.push({
65
+ filePath: file,
66
+ parsings: parsings,
67
+ extraction: extraction
68
+ });
69
+ // }
70
+ });
71
+ return results;
72
+ }
73
+ /**
74
+ * Extracts strings from a value.
75
+ *
76
+ * @public
77
+ * @param values - The values to extract.
78
+ * @returns The extraction result.
79
+ */
80
+ format(values) {
81
+ const keyValueMap = {};
82
+ values.forEach((x) => {
83
+ const key = x.isStatic ? new KeyGenerator_js_1.KeyGenerator().generate(x.match.value ?? '') : x.match.value ?? '';
84
+ keyValueMap[key] = x.match.value ?? '';
85
+ });
86
+ return this._formatter.format(keyValueMap);
87
+ }
88
+ }
89
+ exports.LocalizationProcessor = LocalizationProcessor;
90
+ //# sourceMappingURL=LocalizationProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalizationProcessor.js","sourceRoot":"","sources":["../../src/Services/LocalizationProcessor.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@breadstone-tools/localizator-core",
3
+ "description": "Localizator core library",
4
+ "version": "0.0.12-beta.0",
5
+ "license": "MIT",
6
+ "author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
7
+ "repository": {
8
+ "url": "git+ssh://git@github.com/RueDeRennes/mosaik.git"
9
+ },
10
+ "type": "commonjs",
11
+ "main": "./Index.js",
12
+ "commonjs": "./Index.js",
13
+ "module": "./Index.js",
14
+ "types": "./Index.d.ts",
15
+ "dependencies": {
16
+ "@breadstone-infrastructure/utilities": "^0.0.12-beta.0",
17
+ "cheerio": "^1.0.0"
18
+ }
19
+ }