@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.
- package/Detectors/Abstracts/BaseDetector.d.ts +81 -0
- package/Detectors/Abstracts/BaseDetector.d.ts.map +1 -0
- package/Detectors/Abstracts/BaseDetector.js +137 -0
- package/Detectors/Abstracts/BaseDetector.js.map +1 -0
- package/Detectors/AngularHTMLDetector.d.ts +94 -0
- package/Detectors/AngularHTMLDetector.d.ts.map +1 -0
- package/Detectors/AngularHTMLDetector.js +123 -0
- package/Detectors/AngularHTMLDetector.js.map +1 -0
- package/Detectors/Interfaces/IDetector.d.ts +73 -0
- package/Detectors/Interfaces/IDetector.d.ts.map +1 -0
- package/Detectors/Interfaces/IDetector.js +12 -0
- package/Detectors/Interfaces/IDetector.js.map +1 -0
- package/Detectors/JSXDetector.d.ts +69 -0
- package/Detectors/JSXDetector.d.ts.map +1 -0
- package/Detectors/JSXDetector.js +101 -0
- package/Detectors/JSXDetector.js.map +1 -0
- package/Detectors/JavaScriptDetector.d.ts +74 -0
- package/Detectors/JavaScriptDetector.d.ts.map +1 -0
- package/Detectors/JavaScriptDetector.js +106 -0
- package/Detectors/JavaScriptDetector.js.map +1 -0
- package/Detectors/TSXDetector.d.ts +76 -0
- package/Detectors/TSXDetector.d.ts.map +1 -0
- package/Detectors/TSXDetector.js +101 -0
- package/Detectors/TSXDetector.js.map +1 -0
- package/Detectors/TypeScriptDetector.d.ts +76 -0
- package/Detectors/TypeScriptDetector.d.ts.map +1 -0
- package/Detectors/TypeScriptDetector.js +102 -0
- package/Detectors/TypeScriptDetector.js.map +1 -0
- package/Detectors/Utils.d.ts +41 -0
- package/Detectors/Utils.d.ts.map +1 -0
- package/Detectors/Utils.js +62 -0
- package/Detectors/Utils.js.map +1 -0
- package/Detectors/VueDetector.d.ts +60 -0
- package/Detectors/VueDetector.d.ts.map +1 -0
- package/Detectors/VueDetector.js +108 -0
- package/Detectors/VueDetector.js.map +1 -0
- package/Formatters/Formatters.d.ts +15 -0
- package/Formatters/Formatters.d.ts.map +1 -0
- package/Formatters/Formatters.js +34 -0
- package/Formatters/Formatters.js.map +1 -0
- package/Formatters/Interfaces/IFormatter.d.ts +24 -0
- package/Formatters/Interfaces/IFormatter.d.ts.map +1 -0
- package/Formatters/Interfaces/IFormatter.js +3 -0
- package/Formatters/Interfaces/IFormatter.js.map +1 -0
- package/Formatters/JsonFormatter.d.ts +26 -0
- package/Formatters/JsonFormatter.d.ts.map +1 -0
- package/Formatters/JsonFormatter.js +42 -0
- package/Formatters/JsonFormatter.js.map +1 -0
- package/Formatters/ResxFormatter.d.ts +26 -0
- package/Formatters/ResxFormatter.d.ts.map +1 -0
- package/Formatters/ResxFormatter.js +53 -0
- package/Formatters/ResxFormatter.js.map +1 -0
- package/Index.d.ts +57 -0
- package/Index.d.ts.map +1 -0
- package/Index.js +86 -0
- package/Index.js.map +1 -0
- package/LICENSE +21 -0
- package/Presets/AngularPreset.d.ts +38 -0
- package/Presets/AngularPreset.d.ts.map +1 -0
- package/Presets/AngularPreset.js +59 -0
- package/Presets/AngularPreset.js.map +1 -0
- package/Presets/Interfaces/IFrameworkPreset.d.ts +28 -0
- package/Presets/Interfaces/IFrameworkPreset.d.ts.map +1 -0
- package/Presets/Interfaces/IFrameworkPreset.js +4 -0
- package/Presets/Interfaces/IFrameworkPreset.js.map +1 -0
- package/Presets/LitPreset.d.ts +38 -0
- package/Presets/LitPreset.d.ts.map +1 -0
- package/Presets/LitPreset.js +57 -0
- package/Presets/LitPreset.js.map +1 -0
- package/Presets/Presets.d.ts +25 -0
- package/Presets/Presets.d.ts.map +1 -0
- package/Presets/Presets.js +50 -0
- package/Presets/Presets.js.map +1 -0
- package/Presets/ReactPreset.d.ts +38 -0
- package/Presets/ReactPreset.d.ts.map +1 -0
- package/Presets/ReactPreset.js +61 -0
- package/Presets/ReactPreset.js.map +1 -0
- package/Presets/StencilPreset.d.ts +38 -0
- package/Presets/StencilPreset.d.ts.map +1 -0
- package/Presets/StencilPreset.js +59 -0
- package/Presets/StencilPreset.js.map +1 -0
- package/Presets/VuePreset.d.ts +38 -0
- package/Presets/VuePreset.d.ts.map +1 -0
- package/Presets/VuePreset.js +60 -0
- package/Presets/VuePreset.js.map +1 -0
- package/Resources/Analyzers/ResourceAnalyzer.d.ts +58 -0
- package/Resources/Analyzers/ResourceAnalyzer.d.ts.map +1 -0
- package/Resources/Analyzers/ResourceAnalyzer.js +119 -0
- package/Resources/Analyzers/ResourceAnalyzer.js.map +1 -0
- package/Resources/Analyzers/Tasks/DuplicateKeysTask.d.ts +31 -0
- package/Resources/Analyzers/Tasks/DuplicateKeysTask.d.ts.map +1 -0
- package/Resources/Analyzers/Tasks/DuplicateKeysTask.js +40 -0
- package/Resources/Analyzers/Tasks/DuplicateKeysTask.js.map +1 -0
- package/Resources/Analyzers/Tasks/EmptyValuesTask.d.ts +31 -0
- package/Resources/Analyzers/Tasks/EmptyValuesTask.d.ts.map +1 -0
- package/Resources/Analyzers/Tasks/EmptyValuesTask.js +41 -0
- package/Resources/Analyzers/Tasks/EmptyValuesTask.js.map +1 -0
- package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.d.ts +36 -0
- package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.d.ts.map +1 -0
- package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.js +4 -0
- package/Resources/Analyzers/Tasks/Interfaces/IAnalyzerTask.js.map +1 -0
- package/Resources/Analyzers/Tasks/KeyConsistencyTask.d.ts +35 -0
- package/Resources/Analyzers/Tasks/KeyConsistencyTask.d.ts.map +1 -0
- package/Resources/Analyzers/Tasks/KeyConsistencyTask.js +67 -0
- package/Resources/Analyzers/Tasks/KeyConsistencyTask.js.map +1 -0
- package/Resources/Analyzers/Tasks/MissingTranslationsTask.d.ts +31 -0
- package/Resources/Analyzers/Tasks/MissingTranslationsTask.d.ts.map +1 -0
- package/Resources/Analyzers/Tasks/MissingTranslationsTask.js +44 -0
- package/Resources/Analyzers/Tasks/MissingTranslationsTask.js.map +1 -0
- package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.d.ts +31 -0
- package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.d.ts.map +1 -0
- package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.js +48 -0
- package/Resources/Analyzers/Tasks/MultipleKeyUsageTask.js.map +1 -0
- package/Resources/Analyzers/Tasks/UnusedKeysTask.d.ts +31 -0
- package/Resources/Analyzers/Tasks/UnusedKeysTask.d.ts.map +1 -0
- package/Resources/Analyzers/Tasks/UnusedKeysTask.js +49 -0
- package/Resources/Analyzers/Tasks/UnusedKeysTask.js.map +1 -0
- package/Resources/Models/Interfaces/IJsonResourceInfo.d.ts +12 -0
- package/Resources/Models/Interfaces/IJsonResourceInfo.d.ts.map +1 -0
- package/Resources/Models/Interfaces/IJsonResourceInfo.js +4 -0
- package/Resources/Models/Interfaces/IJsonResourceInfo.js.map +1 -0
- package/Resources/Models/Interfaces/IResourceInfo.d.ts +71 -0
- package/Resources/Models/Interfaces/IResourceInfo.d.ts.map +1 -0
- package/Resources/Models/Interfaces/IResourceInfo.js +4 -0
- package/Resources/Models/Interfaces/IResourceInfo.js.map +1 -0
- package/Resources/Models/Interfaces/IResourceModel.d.ts +41 -0
- package/Resources/Models/Interfaces/IResourceModel.d.ts.map +1 -0
- package/Resources/Models/Interfaces/IResourceModel.js +25 -0
- package/Resources/Models/Interfaces/IResourceModel.js.map +1 -0
- package/Resources/Models/Interfaces/IResxResourceInfo.d.ts +12 -0
- package/Resources/Models/Interfaces/IResxResourceInfo.d.ts.map +1 -0
- package/Resources/Models/Interfaces/IResxResourceInfo.js +4 -0
- package/Resources/Models/Interfaces/IResxResourceInfo.js.map +1 -0
- package/Resources/Models/Interfaces/ITypeScriptResourceInfo.d.ts +11 -0
- package/Resources/Models/Interfaces/ITypeScriptResourceInfo.d.ts.map +1 -0
- package/Resources/Models/Interfaces/ITypeScriptResourceInfo.js +4 -0
- package/Resources/Models/Interfaces/ITypeScriptResourceInfo.js.map +1 -0
- package/Resources/Models/Interfaces/ResourceType.d.ts +29 -0
- package/Resources/Models/Interfaces/ResourceType.d.ts.map +1 -0
- package/Resources/Models/Interfaces/ResourceType.js +45 -0
- package/Resources/Models/Interfaces/ResourceType.js.map +1 -0
- package/Resources/Models/JsonResourceInfo.d.ts +111 -0
- package/Resources/Models/JsonResourceInfo.d.ts.map +1 -0
- package/Resources/Models/JsonResourceInfo.js +184 -0
- package/Resources/Models/JsonResourceInfo.js.map +1 -0
- package/Resources/Models/ResxResourceInfo.d.ts +110 -0
- package/Resources/Models/ResxResourceInfo.d.ts.map +1 -0
- package/Resources/Models/ResxResourceInfo.js +171 -0
- package/Resources/Models/ResxResourceInfo.js.map +1 -0
- package/Resources/Models/TypeScriptResourceInfo.d.ts +109 -0
- package/Resources/Models/TypeScriptResourceInfo.d.ts.map +1 -0
- package/Resources/Models/TypeScriptResourceInfo.js +244 -0
- package/Resources/Models/TypeScriptResourceInfo.js.map +1 -0
- package/Resources/ResourceFactory.d.ts +39 -0
- package/Resources/ResourceFactory.d.ts.map +1 -0
- package/Resources/ResourceFactory.js +102 -0
- package/Resources/ResourceFactory.js.map +1 -0
- package/Resources/ResourceMode.d.ts +14 -0
- package/Resources/ResourceMode.d.ts.map +1 -0
- package/Resources/ResourceMode.js +18 -0
- package/Resources/ResourceMode.js.map +1 -0
- package/Resources/ResourceProcessor.d.ts +66 -0
- package/Resources/ResourceProcessor.d.ts.map +1 -0
- package/Resources/ResourceProcessor.js +90 -0
- package/Resources/ResourceProcessor.js.map +1 -0
- package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.d.ts +17 -0
- package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.d.ts.map +1 -0
- package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.js +4 -0
- package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.js.map +1 -0
- package/Resources/Scanners/Adapter/JsonScannerAdapter.d.ts +28 -0
- package/Resources/Scanners/Adapter/JsonScannerAdapter.d.ts.map +1 -0
- package/Resources/Scanners/Adapter/JsonScannerAdapter.js +62 -0
- package/Resources/Scanners/Adapter/JsonScannerAdapter.js.map +1 -0
- package/Resources/Scanners/Adapter/ResxScannerAdapter.d.ts +28 -0
- package/Resources/Scanners/Adapter/ResxScannerAdapter.d.ts.map +1 -0
- package/Resources/Scanners/Adapter/ResxScannerAdapter.js +62 -0
- package/Resources/Scanners/Adapter/ResxScannerAdapter.js.map +1 -0
- package/Resources/Scanners/ResourceScanner.d.ts +32 -0
- package/Resources/Scanners/ResourceScanner.d.ts.map +1 -0
- package/Resources/Scanners/ResourceScanner.js +59 -0
- package/Resources/Scanners/ResourceScanner.js.map +1 -0
- package/Resources/Sorting/ResourceSorter.d.ts +46 -0
- package/Resources/Sorting/ResourceSorter.d.ts.map +1 -0
- package/Resources/Sorting/ResourceSorter.js +82 -0
- package/Resources/Sorting/ResourceSorter.js.map +1 -0
- package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.d.ts +20 -0
- package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.d.ts.map +1 -0
- package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.js +15 -0
- package/Resources/Transformers/Adapters/Abstracts/BaseResourceTransformerAdapter.js.map +1 -0
- package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.d.ts +11 -0
- package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.d.ts.map +1 -0
- package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.js +4 -0
- package/Resources/Transformers/Adapters/Interfaces/IResourceTransformerAdapter.js.map +1 -0
- package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.d.ts +26 -0
- package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.d.ts.map +1 -0
- package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.js +64 -0
- package/Resources/Transformers/Adapters/JsonResourceTransformerAdapter.js.map +1 -0
- package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.d.ts +19 -0
- package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.d.ts.map +1 -0
- package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.js +30 -0
- package/Resources/Transformers/Adapters/ResxResourceTransformerAdapter.js.map +1 -0
- package/Resources/Transformers/Interfaces/IResourceTransformerResult.d.ts +11 -0
- package/Resources/Transformers/Interfaces/IResourceTransformerResult.d.ts.map +1 -0
- package/Resources/Transformers/Interfaces/IResourceTransformerResult.js +4 -0
- package/Resources/Transformers/Interfaces/IResourceTransformerResult.js.map +1 -0
- package/Resources/Transformers/ResourceTransformer.d.ts +74 -0
- package/Resources/Transformers/ResourceTransformer.d.ts.map +1 -0
- package/Resources/Transformers/ResourceTransformer.js +112 -0
- package/Resources/Transformers/ResourceTransformer.js.map +1 -0
- package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.d.ts +9 -0
- package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.d.ts.map +1 -0
- package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.js +4 -0
- package/Resources/Transformers/Serializers/Interfaces/IResourceSerializer.js.map +1 -0
- package/Resources/Transformers/Serializers/JsonResourceSerializer.d.ts +20 -0
- package/Resources/Transformers/Serializers/JsonResourceSerializer.d.ts.map +1 -0
- package/Resources/Transformers/Serializers/JsonResourceSerializer.js +47 -0
- package/Resources/Transformers/Serializers/JsonResourceSerializer.js.map +1 -0
- package/Resources/Transformers/Serializers/ResxResourceSerializer.d.ts +20 -0
- package/Resources/Transformers/Serializers/ResxResourceSerializer.d.ts.map +1 -0
- package/Resources/Transformers/Serializers/ResxResourceSerializer.js +36 -0
- package/Resources/Transformers/Serializers/ResxResourceSerializer.js.map +1 -0
- package/Resources/Transformers/Serializers/TypescriptResourceSerializer.d.ts +20 -0
- package/Resources/Transformers/Serializers/TypescriptResourceSerializer.d.ts.map +1 -0
- package/Resources/Transformers/Serializers/TypescriptResourceSerializer.js +36 -0
- package/Resources/Transformers/Serializers/TypescriptResourceSerializer.js.map +1 -0
- package/Services/DiffService.d.ts +1 -0
- package/Services/DiffService.d.ts.map +1 -0
- package/Services/DiffService.js +86 -0
- package/Services/DiffService.js.map +1 -0
- package/Services/KeyGenerator.d.ts +21 -0
- package/Services/KeyGenerator.d.ts.map +1 -0
- package/Services/KeyGenerator.js +34 -0
- package/Services/KeyGenerator.js.map +1 -0
- package/Services/LocalizationProcessor.d.ts +83 -0
- package/Services/LocalizationProcessor.d.ts.map +1 -0
- package/Services/LocalizationProcessor.js +90 -0
- package/Services/LocalizationProcessor.js.map +1 -0
- 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
|
+
}
|