@taon-dev/i18n 21.0.50 → 21.0.51

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 (119) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/i18n-browser.mjs +88 -6
  3. package/browser/fesm2022/i18n-browser.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/browser/types/i18n-browser.d.ts +11 -26
  6. package/browser-prod/fesm2022/i18n-browser-prod.mjs +88 -6
  7. package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +1 -1
  8. package/browser-prod/package.json +1 -1
  9. package/browser-prod/types/i18n-browser-prod.d.ts +11 -26
  10. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  11. package/full-dts/index._auto-generated_.d.ts +1 -2
  12. package/full-dts/local-translation.d.ts +8 -1
  13. package/lib/build-info._auto-generated_.d.ts +1 -1
  14. package/lib/build-info._auto-generated_.js +1 -1
  15. package/lib/index._auto-generated_.d.ts +0 -1
  16. package/lib/index._auto-generated_.js +0 -1
  17. package/lib/index._auto-generated_.js.map +1 -1
  18. package/lib/local-translation.d.ts +8 -1
  19. package/lib/local-translation.js +90 -6
  20. package/lib/local-translation.js.map +1 -1
  21. package/lib/package.json +1 -1
  22. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  23. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  24. package/lib-esm/lib/index._auto-generated_.d.ts +0 -1
  25. package/lib-esm/lib/index._auto-generated_.js +0 -1
  26. package/lib-esm/lib/index._auto-generated_.js.map +1 -1
  27. package/lib-esm/lib/local-translation.d.ts +8 -1
  28. package/lib-esm/lib/local-translation.js +90 -8
  29. package/lib-esm/lib/local-translation.js.map +1 -1
  30. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  31. package/lib-prod/build-info._auto-generated_.js +1 -1
  32. package/lib-prod/index._auto-generated_.d.ts +0 -1
  33. package/lib-prod/index._auto-generated_.js +0 -1
  34. package/lib-prod/index._auto-generated_.js.map +1 -1
  35. package/lib-prod/local-translation.d.ts +8 -1
  36. package/lib-prod/local-translation.js +90 -6
  37. package/lib-prod/local-translation.js.map +1 -1
  38. package/lib-prod/package.json +1 -1
  39. package/package.json +1 -1
  40. package/ts-source/browser-code/build-info._auto-generated_.ts +2 -2
  41. package/ts-source/browser-code/i18n/lib.translation.ts +1 -1
  42. package/ts-source/browser-code/i18n/translation.ts.en-US.i18n.data.ts +1 -1
  43. package/ts-source/browser-code/i18n/translation.ts.pl-PL.i18n.data.ts +1 -1
  44. package/ts-source/browser-code/index._auto-generated_.ts +1 -2
  45. package/ts-source/browser-code/index.scss +1 -1
  46. package/ts-source/browser-code/index.ts +1 -1
  47. package/ts-source/browser-code/local-translation.ts +33 -1
  48. package/ts-source/browser-code/start-cli.ts +1 -1
  49. package/ts-source/browser-code/translate.directive.ts +1 -1
  50. package/ts-source/browser-code/translate.pipe.ts +1 -1
  51. package/ts-source/browser-code/translate.service.ts +1 -1
  52. package/ts-source/browser-code/translation-manager.ts +1 -1
  53. package/ts-source/browser-code/translation.models.ts +1 -1
  54. package/ts-source/browser-code/translation.ts +1 -1
  55. package/ts-source/browser-code/utils-i18n-extract-gettext-translate-from-html.ts +1 -1
  56. package/ts-source/browser-code/utils-i18n-html.ts +1 -1
  57. package/ts-source/browser-code/utils-po-file.ts +1 -1
  58. package/ts-source/browser-code-prod/build-info._auto-generated_.ts +2 -2
  59. package/ts-source/browser-code-prod/i18n/lib.translation.ts +1 -1
  60. package/ts-source/browser-code-prod/i18n/translation.ts.en-US.i18n.data.ts +1 -1
  61. package/ts-source/browser-code-prod/i18n/translation.ts.pl-PL.i18n.data.ts +1 -1
  62. package/ts-source/browser-code-prod/index._auto-generated_.ts +1 -2
  63. package/ts-source/browser-code-prod/index.scss +1 -1
  64. package/ts-source/browser-code-prod/index.ts +1 -1
  65. package/ts-source/browser-code-prod/local-translation.ts +33 -1
  66. package/ts-source/browser-code-prod/start-cli.ts +1 -1
  67. package/ts-source/browser-code-prod/translate.directive.ts +1 -1
  68. package/ts-source/browser-code-prod/translate.pipe.ts +1 -1
  69. package/ts-source/browser-code-prod/translate.service.ts +1 -1
  70. package/ts-source/browser-code-prod/translation-manager.ts +1 -1
  71. package/ts-source/browser-code-prod/translation.models.ts +1 -1
  72. package/ts-source/browser-code-prod/translation.ts +1 -1
  73. package/ts-source/browser-code-prod/utils-i18n-extract-gettext-translate-from-html.ts +1 -1
  74. package/ts-source/browser-code-prod/utils-i18n-html.ts +1 -1
  75. package/ts-source/browser-code-prod/utils-po-file.ts +1 -1
  76. package/ts-source/websql-code/build-info._auto-generated_.ts +2 -2
  77. package/ts-source/websql-code/i18n/lib.translation.ts +1 -1
  78. package/ts-source/websql-code/i18n/translation.ts.en-US.i18n.data.ts +1 -1
  79. package/ts-source/websql-code/i18n/translation.ts.pl-PL.i18n.data.ts +1 -1
  80. package/ts-source/websql-code/index._auto-generated_.ts +1 -2
  81. package/ts-source/websql-code/index.scss +1 -1
  82. package/ts-source/websql-code/index.ts +1 -1
  83. package/ts-source/websql-code/local-translation.ts +33 -1
  84. package/ts-source/websql-code/start-cli.ts +1 -1
  85. package/ts-source/websql-code/translate.directive.ts +1 -1
  86. package/ts-source/websql-code/translate.pipe.ts +1 -1
  87. package/ts-source/websql-code/translate.service.ts +1 -1
  88. package/ts-source/websql-code/translation-manager.ts +1 -1
  89. package/ts-source/websql-code/translation.models.ts +1 -1
  90. package/ts-source/websql-code/translation.ts +1 -1
  91. package/ts-source/websql-code/utils-i18n-extract-gettext-translate-from-html.ts +1 -1
  92. package/ts-source/websql-code/utils-i18n-html.ts +1 -1
  93. package/ts-source/websql-code/utils-po-file.ts +1 -1
  94. package/ts-source/websql-code-prod/build-info._auto-generated_.ts +2 -2
  95. package/ts-source/websql-code-prod/i18n/lib.translation.ts +1 -1
  96. package/ts-source/websql-code-prod/i18n/translation.ts.en-US.i18n.data.ts +1 -1
  97. package/ts-source/websql-code-prod/i18n/translation.ts.pl-PL.i18n.data.ts +1 -1
  98. package/ts-source/websql-code-prod/index._auto-generated_.ts +1 -2
  99. package/ts-source/websql-code-prod/index.scss +1 -1
  100. package/ts-source/websql-code-prod/index.ts +1 -1
  101. package/ts-source/websql-code-prod/local-translation.ts +33 -1
  102. package/ts-source/websql-code-prod/start-cli.ts +1 -1
  103. package/ts-source/websql-code-prod/translate.directive.ts +1 -1
  104. package/ts-source/websql-code-prod/translate.pipe.ts +1 -1
  105. package/ts-source/websql-code-prod/translate.service.ts +1 -1
  106. package/ts-source/websql-code-prod/translation-manager.ts +1 -1
  107. package/ts-source/websql-code-prod/translation.models.ts +1 -1
  108. package/ts-source/websql-code-prod/translation.ts +1 -1
  109. package/ts-source/websql-code-prod/utils-i18n-extract-gettext-translate-from-html.ts +1 -1
  110. package/ts-source/websql-code-prod/utils-i18n-html.ts +1 -1
  111. package/ts-source/websql-code-prod/utils-po-file.ts +1 -1
  112. package/websql/fesm2022/i18n-websql.mjs +88 -6
  113. package/websql/fesm2022/i18n-websql.mjs.map +1 -1
  114. package/websql/package.json +1 -1
  115. package/websql/types/i18n-websql.d.ts +11 -26
  116. package/websql-prod/fesm2022/i18n-websql-prod.mjs +88 -6
  117. package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +1 -1
  118. package/websql-prod/package.json +1 -1
  119. package/websql-prod/types/i18n-websql-prod.d.ts +11 -26
@@ -1,5 +1,5 @@
1
1
  {
2
- "commitHash": "9c04bc8347fb337ea3189294b0c46e638bbe10f2",
3
- "commitName": "release: v21.0.49",
4
- "commitDate": "18-10-2026 20:32:57"
2
+ "commitHash": "935fd06526d62adfb546b466bd6f90fa03cd483f",
3
+ "commitName": "chore: update",
4
+ "commitDate": "20-10-2026 18:32:01"
5
5
  }
@@ -28,26 +28,34 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
28
28
  /**
29
29
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
30
30
  */
31
- const CURRENT_PACKAGE_VERSION = '21.0.50';
31
+ const CURRENT_PACKAGE_VERSION = '21.0.51';
32
32
  // THIS FILE IS GENERATED - DO NOT MODIFY
33
33
 
34
+ //#region imports
35
+ //#endregion
36
+ //#region constants
34
37
  const MODEL_ID = 'Xenova/nllb-200-distilled-600M';
35
38
  const nllbLanguageCodes = {
36
39
  'en-US': 'eng_Latn',
37
40
  'pl-PL': 'pol_Latn',
38
41
  'de-DE': 'deu_Latn',
39
42
  };
43
+ const CONTEXT_SEPARATOR = '→';
44
+ //#endregion
40
45
  class LocalTranslationService {
41
46
  constructor() {
42
47
  this.aiReady = false;
43
48
  this.progressListeners = new Set();
49
+ //#endregion
44
50
  }
51
+ //#endregion
45
52
  /**
46
53
  * Downloads, caches and loads the translation model.
47
54
  *
48
55
  * Multiple simultaneous calls share the same initialization promise.
49
56
  * After this resolves, translate() reuses the already loaded model.
50
57
  */
58
+ //#region methods / make sure ai downloaded
51
59
  async makeSureAiDownloaded(options = {}) {
52
60
  /* */
53
61
  /* */
@@ -69,12 +77,16 @@ class LocalTranslationService {
69
77
  /* */
70
78
  return (void 0);
71
79
  }
80
+ //#endregion
72
81
  /**
73
82
  * True only in this process after pipeline initialization succeeded.
74
83
  */
84
+ //#region methods / is ai ready
75
85
  isAiReady() {
76
86
  return this.aiReady;
77
87
  }
88
+ //#endregion
89
+ //#region methods / get translator
78
90
  getTranslator() {
79
91
  this.translatorPromise ??= this.createTranslator().catch(error => {
80
92
  // Allow a later call to retry after a network or disk failure.
@@ -84,6 +96,8 @@ class LocalTranslationService {
84
96
  });
85
97
  return this.translatorPromise;
86
98
  }
99
+ //#endregion
100
+ //#region methods / create translator
87
101
  async createTranslator() {
88
102
  /* */
89
103
  /* */
@@ -108,11 +122,11 @@ class LocalTranslationService {
108
122
  /* */
109
123
  /* */
110
124
  /* */
111
- /* */
112
- /* */
113
125
  return (void 0);
114
126
  return void 0;
115
127
  }
128
+ //#endregion
129
+ //#region methods / emit progress
116
130
  emitProgress(progress) {
117
131
  for (const listener of this.progressListeners) {
118
132
  try {
@@ -123,6 +137,8 @@ class LocalTranslationService {
123
137
  }
124
138
  }
125
139
  }
140
+ //#endregion
141
+ //#region methods / warmup translator
126
142
  warmupTranslator(translator) {
127
143
  this.warmupPromise ??= translator('Hello.', {
128
144
  src_lang: 'eng_Latn',
@@ -136,6 +152,8 @@ class LocalTranslationService {
136
152
  });
137
153
  return this.warmupPromise;
138
154
  }
155
+ //#endregion
156
+ //#region methods / translate
139
157
  async translate(options) {
140
158
  /* */
141
159
  /* */
@@ -181,8 +199,46 @@ class LocalTranslationService {
181
199
  /* */
182
200
  /* */
183
201
  /* */
202
+ /* */
203
+ /* */
204
+ /* */
205
+ /* */
206
+ /* */
207
+ /* */
208
+ /* */
209
+ /* */
210
+ /* */
211
+ /* */
212
+ /* */
213
+ /* */
214
+ /* */
215
+ /* */
216
+ /* */
217
+ /* */
218
+ /* */
219
+ /* */
220
+ /* */
221
+ /* */
222
+ /* */
223
+ /* */
224
+ /* */
225
+ /* */
226
+ /* */
227
+ /* */
228
+ /* */
229
+ /* */
230
+ /* */
231
+ /* */
232
+ /* */
233
+ /* */
234
+ /* */
235
+ /* */
236
+ /* */
237
+ /* */
184
238
  return (void 0);
185
239
  }
240
+ //#endregion
241
+ //#region methods / protect glossary
186
242
  protectGlossary(text, glossary) {
187
243
  if (!glossary || Object.keys(glossary).length === 0) {
188
244
  return {
@@ -213,6 +269,35 @@ class LocalTranslationService {
213
269
  },
214
270
  };
215
271
  }
272
+ //#endregion
273
+ //#region methods / protect interpolation
274
+ protectInterpolation(text) {
275
+ const replacements = [];
276
+ const preparedText = text.replace(/\[\[[\s\S]*?\]\]/g, originalValue => {
277
+ const placeholder = `[[${replacements.length}]]`;
278
+ replacements.push({
279
+ placeholder,
280
+ originalValue,
281
+ });
282
+ return placeholder;
283
+ });
284
+ return {
285
+ preparedText,
286
+ restore(translatedText) {
287
+ let result = translatedText;
288
+ for (const replacement of replacements) {
289
+ if (!result.includes(replacement.placeholder)) {
290
+ throw new Error(`Translation model removed interpolation placeholder ` +
291
+ `"${replacement.placeholder}" while translating "${text}".`);
292
+ }
293
+ result = result.replaceAll(replacement.placeholder, replacement.originalValue);
294
+ }
295
+ return result;
296
+ },
297
+ };
298
+ }
299
+ //#endregion
300
+ //#region methods / get models cache path
216
301
  getModelsCachePath() {
217
302
  const cachePath = crossPlatformPath([
218
303
  UtilsOs.getRealHomeDir(),
@@ -1944,9 +2029,6 @@ var UtilsPoFile;
1944
2029
  //#endregion
1945
2030
  })(UtilsPoFile || (UtilsPoFile = {}));
1946
2031
 
1947
- ;
1948
- // THIS FILE IS GENERATED - DO NOT MODIFY
1949
-
1950
2032
  // @ts-nocheck
1951
2033
  // This file is auto-generated during init process. Do not modify.
1952
2034
  // This disable this auto generate file.
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-browser.mjs","sources":["../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/local-translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/start-cli.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translation-manager.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.directive.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.pipe.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.service.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-i18n-extract-gettext-translate-from-html.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-i18n-html.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-po-file.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/i18n/lib.translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/i18n-browser.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.i18n';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/i18n';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.50';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import {\n crossPlatformPath,\n dotTaonFolder,\n UtilsI18n,\n UtilsOs,\n _,\n Helpers,\n} from 'tnp-core/browser';\n\nexport interface TranslationOptions {\n text: string;\n from: UtilsI18n.CommonLocaleCode;\n to: UtilsI18n.CommonLocaleCode;\n\n /**\n * Nearby source-language text.\n */\n context?: string;\n\n glossary?: Record<string, string>;\n}\n\nexport interface AiDownloadProgress {\n /**\n * General loading stage reported by Transformers.js.\n */\n status:\n | 'initiate'\n | 'download'\n | 'progress'\n | 'progress_total'\n | 'done'\n | 'ready'\n | string;\n\n /**\n * Current filename, when progress concerns an individual file.\n */\n file?: string;\n\n /**\n * Progress from 0 to 100.\n */\n progress?: number;\n\n /**\n * Downloaded bytes, when provided by Transformers.js.\n */\n loaded?: number;\n\n /**\n * Total bytes, when provided by Transformers.js.\n */\n total?: number;\n}\n\nexport interface MakeSureAiDownloadedOptions {\n onProgress?: (progress: AiDownloadProgress) => void;\n\n /**\n * Run one tiny translation after loading.\n *\n * This removes most of the delay from the first real translation,\n * but it performs a small amount of additional inference work.\n */\n warmup?: boolean;\n}\n\nconst MODEL_ID = 'Xenova/nllb-200-distilled-600M';\n\nconst nllbLanguageCodes: Partial<\n Record<UtilsI18n.CommonLocaleCode, string>\n> = {\n 'en-US': 'eng_Latn',\n 'pl-PL': 'pol_Latn',\n 'de-DE': 'deu_Latn',\n};\n\nexport class LocalTranslationService {\n private translatorPromise?: Promise<any>;\n\n private aiReady = false;\n\n private warmupPromise?: Promise<void>;\n\n private progressListeners = new Set<\n (progress: AiDownloadProgress) => void\n >();\n\n /**\n * Downloads, caches and loads the translation model.\n *\n * Multiple simultaneous calls share the same initialization promise.\n * After this resolves, translate() reuses the already loaded model.\n */\n async makeSureAiDownloaded(\n options: MakeSureAiDownloadedOptions = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * True only in this process after pipeline initialization succeeded.\n */\n isAiReady(): boolean {\n return this.aiReady;\n }\n\n private getTranslator(): Promise<any> {\n this.translatorPromise ??= this.createTranslator().catch(error => {\n // Allow a later call to retry after a network or disk failure.\n this.translatorPromise = undefined;\n this.aiReady = false;\n\n throw error;\n });\n\n return this.translatorPromise;\n }\n\n private async createTranslator(): Promise<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n private emitProgress(progress: AiDownloadProgress): void {\n for (const listener of this.progressListeners) {\n try {\n listener(progress);\n } catch {\n // A UI callback must not break model initialization.\n }\n }\n }\n\n private warmupTranslator(translator: any): Promise<void> {\n this.warmupPromise ??= translator('Hello.', {\n src_lang: 'eng_Latn',\n tgt_lang: 'pol_Latn',\n max_new_tokens: 16,\n })\n .then(() => undefined)\n .catch(error => {\n this.warmupPromise = undefined;\n throw error;\n });\n\n return this.warmupPromise;\n }\n\n async translate(options: TranslationOptions): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private protectGlossary(\n text: string,\n glossary?: Record<string, string>,\n ): {\n preparedText: string;\n restore: (translatedText: string) => string;\n } {\n if (!glossary || Object.keys(glossary).length === 0) {\n return {\n preparedText: text,\n restore: translatedText => translatedText,\n };\n }\n\n const replacements: Array<{\n placeholder: string;\n translatedValue: string;\n }> = [];\n\n let preparedText = text;\n\n Object.entries(glossary)\n .sort(([left], [right]) => right.length - left.length)\n .forEach(([sourceValue, translatedValue], index) => {\n const placeholder = `TAONTERM${index}PLACEHOLDER`;\n\n preparedText = preparedText.replaceAll(\n sourceValue,\n placeholder,\n );\n\n replacements.push({\n placeholder,\n translatedValue,\n });\n });\n\n return {\n preparedText,\n\n restore(translatedText: string): string {\n let result = translatedText;\n\n for (const replacement of replacements) {\n result = result.replaceAll(\n replacement.placeholder,\n replacement.translatedValue,\n );\n }\n\n return result;\n },\n };\n }\n\n private getModelsCachePath(): string {\n const cachePath = crossPlatformPath([\n UtilsOs.getRealHomeDir(),\n dotTaonFolder,\n 'ai-models-cache',\n ]);\n\n Helpers.mkdirp(cachePath);\n\n return cachePath;\n }\n}\n","import { LocalTranslationService } from './local-translation';\n\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;\n","//#region import\nimport { BehaviorSubject, filter, map, tap } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/browser';\n\nimport type { Translation } from './translation';\n//#endregion\n\n//#region constants\nconst globalStorageKeyMainLanguage = 'taon-gettext-main-language';\nconst globalTaonLanguageLocalKeyLocalStor = 'taon-language-local';\nconst TranslationManagerGlobalStorKey = 'TranslationManagerGlobalStorKey';\n//#endregion\n\nexport class TranslationManager {\n static globalDefautlLanguageOverride: UtilsI18n.CommonLocaleCode;\n\n // public instances = new Set<Translation>();\n public get instances(): Set<Translation> {\n let set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n if (_.isNil(set)) {\n GlobalStorage.set(\n TranslationManagerGlobalStorKey,\n new Set<Translation>(),\n );\n }\n set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n return set;\n }\n\n constructor() {\n // console.log(`[i18] Default lang: ${this.defaultLangLocale}`);\n }\n\n //#region current global language\n private defaultLangLocale: UtilsI18n.CommonLocaleCode = (() => {\n //#region @browser\n return (\n (localStorage.getItem(\n globalTaonLanguageLocalKeyLocalStor,\n ) as UtilsI18n.CommonLocaleCode) ||\n TranslationManager.globalDefautlLanguageOverride ||\n (UtilsI18n.detectLocale() as UtilsI18n.CommonLocaleCode)\n );\n //#endregion\n return UtilsI18n.defaultLangLocale;\n })();\n\n private _currentGlobalLanguage = this\n .defaultLangLocale as UtilsI18n.CommonLocaleCode;\n\n public get currentGlobalLanguage(): UtilsI18n.CommonLocaleCode {\n return this._currentGlobalLanguage;\n }\n\n public set currentGlobalLanguage(v: UtilsI18n.CommonLocaleCode) {\n this._currentGlobalLanguage = v;\n this.currentGlobalLanguageSrc.next(v);\n }\n\n private currentGlobalLanguageSrc = new BehaviorSubject(\n this.currentGlobalLanguage,\n );\n\n public readonly currentGlobalLanguage$ = this.currentGlobalLanguageSrc\n .asObservable()\n .pipe(\n tap(currentGlobalLanguage => {\n GlobalStorage.set<UtilsI18n.CommonLocaleCode>(\n globalStorageKeyMainLanguage,\n currentGlobalLanguage,\n );\n // console.log(`Update from subject ${currentGlobalLanguage}`);\n }),\n );\n //#endregion\n\n //#region available langs\n public availableLangs = _.cloneDeep(UtilsI18n.LangOptionArr);\n\n private availableLangsSrc = new BehaviorSubject(this.availableLangs);\n\n public readonly availableLangs$ = this.availableLangsSrc.asObservable().pipe(\n map(f => {\n if (this.visibleLanguages.length > 0) {\n // console.log('Filtering langs')\n return f.filter(a => this.visibleLanguages.includes(a.code));\n }\n return f;\n }),\n );\n //#endregion\n\n //#region visible langs\n public _visibleLanguages: UtilsI18n.CommonLocaleCode[] = [];\n\n public get visibleLanguages(): UtilsI18n.CommonLocaleCode[] {\n return this._visibleLanguages;\n }\n\n public set visibleLanguages(v: UtilsI18n.CommonLocaleCode[]) {\n if (this.pernamentLanguage) {\n v = v.filter(a => [this.pernamentLanguage].includes(a));\n }\n\n this._visibleLanguages = v;\n this.visibleLanguagesSrc.next(v);\n this.availableLangsSrc.next(this.availableLangs);\n }\n\n private visibleLanguagesSrc = new BehaviorSubject(this.visibleLanguages);\n\n public readonly visibleLanguages$ = this.visibleLanguagesSrc.asObservable();\n //#endregion\n\n //#region loading langs subject\n /**\n * TODO\n */\n private loadingLangsSubjectSrc = new BehaviorSubject(false);\n\n /**\n * TODO\n */\n public readonly isLoadingLangs$ = this.loadingLangsSubjectSrc.asObservable();\n //#endregion\n\n //#region global singleton\n private static _instance: TranslationManager;\n\n static get Instance(): TranslationManager {\n if (!this._instance) {\n this._instance = new TranslationManager();\n }\n return this._instance;\n }\n //#endregion\n\n public readonly pernamentLanguage: UtilsI18n.CommonLocaleCode | null = null;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n console.info(`Setting pernament language to ${lang}`);\n if (this.pernamentLanguage) {\n console.log('You are trying to set again pernament language');\n return;\n }\n this.visibleLanguages = [lang];\n // @ts-ignore\n this.pernamentLanguage = lang;\n void this.changeGlobalLang(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.loadingLangsSubjectSrc.next(true);\n\n this.currentGlobalLanguage = lang;\n //#region @browser\n localStorage.setItem(globalTaonLanguageLocalKeyLocalStor, lang);\n //#endregion\n // console.log('instances ', this.instances);\n try {\n await Promise.all([...this.instances].map(c => c.useGlobalFileLang()));\n } catch (error) {\n console.error(error);\n }\n this.loadingLangsSubjectSrc.next(false);\n // console.info('Done changing language');\n }\n //#endregion\n}\n","//#region imports\nimport {\n ChangeDetectorRef,\n inject,\n signal,\n WritableSignal,\n} from '@angular/core'; // @browser\nimport type {\n WritableSignal as WritableSignalType,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/browser';\n\nimport { TranslationManager } from './translation-manager';\nimport {\n TaonTranslationsMapImport,\n TranslationBinding,\n TranslationLookup,\n TranslationParams,\n} from './translation.models';\nimport type { UtilsPoFile } from './utils-po-file';\n\n//#endregion\n\n//#region translation class\nexport class Translation {\n static manager = TranslationManager.Instance;\n\n //#region static for\n /**\n * Example how to use it:\n * const t = Translation.for('src/lib/translation.ts', {\"src/lib/translation.ts\":{\"en-US\":async () => (await import('./i18n/translation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/translation.ts.pl-PL.i18n.data')).default}} as any);\n */\n static for(\n fileRelativePath: string,\n langImportMap: TaonTranslationsMapImport,\n opt?: {\n debug?: boolean;\n },\n ): Translation {\n opt = opt || {};\n return new Translation(\n fileRelativePath,\n Translation.manager.currentGlobalLanguage,\n langImportMap,\n !!opt.debug,\n );\n }\n //#endregion\n\n //#region fields\n\n //#region @browser\n public cdr?: ChangeDetectorRef;\n\n //#endregion\n\n private lookup: TranslationLookup = {};\n\n private readonly loadingSubjectSrc = new BehaviorSubject(false);\n\n public readonly isLoadingLang$ = this.loadingSubjectSrc.asObservable();\n\n private loading?: Promise<void>;\n\n private loadedLang?: UtilsI18n.CommonLocaleCode;\n\n private readonly bindings = new Set<TranslationBinding>();\n\n private useGlobalLangFile = true;\n //#endregion\n\n //#region constructor\n private constructor(\n protected fileRelativePath: string,\n protected localFileLang: UtilsI18n.CommonLocaleCode,\n protected langImportMap: TaonTranslationsMapImport,\n public debug = false,\n ) {\n\n if (!Translation.manager.instances.has(this)) {\n // console.log(`Adding for ${fileRelativePath} `)\n Translation.manager.instances.add(this);\n } else {\n // console.log(`NOT ADDING for ${fileRelativePath} `)\n }\n // console.log(...Translation.manager.instances)\n }\n //#endregion\n\n //#region for\n for(_classThis: object): Translation {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n // console.log(`Update on t.for() ${this.localFileLang}`)\n }\n //#region @browser\n try {\n this.cdr = inject(ChangeDetectorRef);\n } catch {\n // non-angular class/backend-safe\n }\n //#endregion\n void this.ensureLoaded();\n\n return this;\n }\n //#endregion\n\n //#region change file lang\n async changeFileLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.useGlobalLangFile = false;\n this.localFileLang = lang;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region use global file lang\n async useGlobalFileLang( ): Promise<void> {\n this.useGlobalLangFile = true;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region gettext\n gettext = (\n text: string,\n params?: TranslationParams,\n context = '',\n ): string => {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (with load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n };\n //#endregion\n\n //#region signal\n\n private createSignal(\n text: string,\n params?: TranslationParams,\n context = '',\n ): WritableSignalType<string> {\n //#region @browser\n const s = signal<string>(this.gettext(text, params, context));\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => s.set(value),\n });\n\n return s;\n //#endregion\n return void 0;\n }\n\n readonly signal = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createSignal(text, params, context),\n };\n //#endregion\n\n //#region $ obserable\n private createObservable(\n text: string,\n params?: TranslationParams,\n context = '',\n ): Observable<string> {\n const subject = new BehaviorSubject<string>(\n this.gettext(text, params, context),\n );\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => subject.next(value),\n });\n\n return subject.asObservable();\n }\n\n readonly $ = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createObservable(text, params, context),\n };\n //#endregion\n\n //#region private methods / refresh bindings\n private refreshBindings(): void {\n for (const binding of this.bindings) {\n binding.update(\n this.gettextWithoutEnsureLoaded(\n binding.text,\n binding.params,\n binding.context ?? '',\n ),\n );\n }\n }\n //#endregion\n\n //#region private methods / gettextwithout ensure loadded\n\n translate(text: string, params?: TranslationParams, context = ''): string {\n return this.gettextWithoutEnsureLoaded(text, params, context);\n }\n\n private gettextWithoutEnsureLoaded(\n text: string,\n params?: TranslationParams,\n context = '',\n ): string {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (no load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n }\n //#endregion\n\n //#region private methods / load\n private async load(): Promise<void> {\n this.loadingSubjectSrc.next(true);\n\n const files: UtilsI18n.GettextFile[] = [];\n const filesForTArr = Object.keys(this.langImportMap);\n for (const fileRelativePath of filesForTArr) {\n try {\n const loader =\n this.langImportMap[fileRelativePath]?.[this.localFileLang];\n\n if (!loader) {\n continue;\n }\n\n const modOrFile = await loader();\n const file = (modOrFile as any).default ?? modOrFile;\n\n files.push(file);\n } catch (err) {\n console.log(\n `[taon-i18n] Error loading language file ${fileRelativePath} `,\n err,\n );\n }\n }\n this.loadedLang = this.localFileLang;\n this.lookup = this.createLookup(files);\n this.debug && console.log(`${this.localFileLang}`, files, this.lookup);\n\n this.refreshBindings();\n\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n this.loadingSubjectSrc.next(false);\n }\n //#endregion\n\n //#region private methods / ensure loaded\n private async ensureLoaded(force = false): Promise<void> {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n }\n\n if (!force && this.loadedLang === this.localFileLang) {\n return;\n }\n\n if (!force && this.loading) {\n return this.loading;\n }\n\n this.loading = this.load();\n\n try {\n await this.loading;\n } finally {\n this.loading = undefined;\n }\n }\n //#endregion\n\n //#region private methods / create lookup\n private createLookup(files: UtilsI18n.GettextFile[]): TranslationLookup {\n const lookup: TranslationLookup = {};\n\n for (const file of files) {\n for (const tag of file.tags ?? []) {\n if (!tag.translation) continue;\n lookup[this.key(tag.gettextString, tag.context ?? '')] =\n tag.translation;\n }\n }\n\n return lookup;\n }\n //#endregion\n\n //#region private methods / key\n private key(text: string, context = ''): string {\n return `${context}\\u0004${text}`;\n }\n //#endregion\n\n //#region private methods / interpolate\n private interpolate(text: string, params?: Record<string, unknown>): string {\n if (!params) return text;\n\n const result = text.replace(/\\[\\[\\s*([a-zA-Z0-9_$]+)\\s*\\]\\]/g, (_, key) => {\n const value = params[key];\n return value === undefined || value === null ? '' : String(value);\n });\n\n return result;\n }\n //#endregion\n}\n//#endregion\n\n//#region EXMAPLE\n/*\n// import {Translation} from 'taon'\n\nconst t = Translation.for('src/lib/translation.ts', {\"src/lib/translation.ts\":{\"en-US\":async () => (await import('./i18n/translation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/translation.ts.pl-PL.i18n.data')).default}} as any); // in runtime replaced with proper stuff\n\nt.gettext('asdasd');\n\nclass AnyAngularOrTaonClass {\n t = t.for(this); // probably only usefull for cdr in angular\n\n isLoading$ = t.isLoadingLang$; // maybe needed sometime\n\n refreshableSignalLabel$ = t.signal.gettext(t.gettext('welcome'));\n\n refreshableRxjsLabel$ = t.$.gettext('amazing better place'); // probably even better\n\n asdsa = this.t.gettext(\n // just sugar syntax\n 'This is mamazing',\n {\n asdasd: 'asd',\n },\n 'asdas',\n );\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n const lable = t.gettext('hello');\n }\n}\n */\n//#endregion\n","import {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnChanges,\n} from '@angular/core';\n// @ts-ignore\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Translation } from './translation';\n\n@Directive({\n selector: '[translate]',\n standalone: true,\n})\nexport class TranslateDirective implements AfterViewInit, OnChanges {\n private static readonly selector = '[translate]';\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-t') t!: Translation;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-params') params?: Record<string, unknown>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-context') translateContext?: string;\n\n private initialized = false;\n\n private readonly element = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n private originalText = '';\n\n ngAfterViewInit(): void {\n const nativeElement = this.element.nativeElement;\n\n this.validateContent();\n\n this.originalText = nativeElement.textContent?.trim() ?? '';\n\n this.initialized = true;\n\n this.render();\n\n this.t.isLoadingLang$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.render();\n });\n }\n\n ngOnChanges(): void {\n if (!this.initialized) {\n return;\n }\n\n this.render();\n }\n\n private validateContent(): void {\n const element = this.element.nativeElement;\n // console.log('validating ', element);\n\n if (element.children.length > 0) {\n console.error(\n `[@taon-dev/i18n] ${TranslateDirective.selector} should only be used ` +\n `with plain text. HTML/content elements detected inside:`,\n\n element,\n );\n }\n }\n\n private render(): void {\n if (!this.t) {\n throw (\n `Directive ${TranslateDirective.selector} applied on component ` +\n `without implemented Translatable interface`\n );\n }\n\n this.element.nativeElement.textContent = this.t.translate(\n this.originalText,\n this.params,\n this.translateContext,\n );\n }\n}\n","import {\n ChangeDetectorRef,\n inject,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Translation } from './translation';\nimport { TranslationManager } from './translation-manager';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n\n private tranlsationManager = TranslationManager.Instance;\n\n private readonly sub: Subscription;\n\n constructor() {\n this.sub = this.tranlsationManager.isLoadingLangs$.subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n transform(\n text: string,\n t: Translation,\n params?: Record<string, unknown>,\n context?: string,\n ): string {\n return t?.gettext(text, params, context) ?? text;\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UtilsI18n } from 'tnp-core/browser';\n\nimport { TranslationManager } from './translation-manager';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService {\n public manager = TranslationManager.Instance;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n this.manager.setOneLanguagePernament(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n await this.manager.changeGlobalLang(lang);\n }\n //#endregion\n}\n","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs'; // @esmRemove\nimport { UtilsI18n } from 'tnp-core/browser';\n//#endregion\n\nexport namespace UtilsI18nExtractGettextTranslateFromHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n function extractGettextCallsFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractGettextCallsFromHtmlExpression(source: string): Array<{\n gettextString: string;\n context?: string;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readBalancedParenthesesContent(\n source: string,\n openParenIndex: number,\n ): string | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readStaticStringArg(arg: string | undefined): string | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateParamsFromSource(\n source: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractObjectLiteralParams(\n raw: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function splitTopLevel(input: string, separator: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslatePipeStringsFromSource(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractStringLiterals(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getNodeAttributes(node: any): any[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function getNodeInputs(node: any): TmplAstBoundAttribute[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function isText(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function isBoundText(node: any): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function collectText(nodes: any[]): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateDirectiveFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function stripHtml(html: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function extractTranslateParams(\n inputs: TmplAstBoundAttribute[],\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function extractObjectLiteralFromAst(\n ast: any,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function extractTranslatePipeStrings(ast: AST | any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function extractStaticStringsFromExpression(ast: any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function astToSource(ast: any): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function normalizeHtmlText(text: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n function uniqueMessages(\n messages: UtilsI18n.GettextExtracted[],\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs'; // @esmRemove\nimport { UtilsI18n } from 'tnp-core/browser';\nimport {\n canHaveDecorators,\n ClassDeclaration,\n createSourceFile,\n Decorator,\n Expression,\n forEachChild,\n getDecorators,\n isCallExpression,\n isClassDeclaration,\n isIdentifier,\n isObjectLiteralExpression,\n isPropertyAssignment,\n Node,\n ScriptKind,\n ScriptTarget,\n} from 'typescript'; // @esmRemove\n\nimport { UtilsI18nExtractGettextTranslateFromHtml } from './utils-i18n-extract-gettext-translate-from-html';\n//#endregion\n\nexport namespace UtilsI18nHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n return UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml(\n html,\n fileName,\n );\n }\n\n export function replaceTranslatePipieDirectiveTContext(\n html: string,\n options?: {\n angularTsWithInlineHtml?: boolean;\n },\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n export function isAngularTsWithInlineHtml(content: string): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n //#region @esmRemove\n\n function replaceInAngularInlineTemplates(content: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getAngularInlineTemplateRanges(content: string): Array<{\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasComponentDecorator(node: ClassDeclaration): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentDecorator(\n node: ClassDeclaration,\n ): Decorator | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentTemplateInitializer(\n decorator: Decorator,\n ): Expression | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getStringLikeInnerRange(\n content: string,\n node: Expression,\n ):\n | {\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }\n | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n export function replaceTranslatePipieDirectiveTContextInHtml(\n html: string,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n function findTranslateDirectiveEditsFromSource(\n html: string,\n ): Array<{ index: number; text: string }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateDirective(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateTInput(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function findOpenTagInsertPosition(\n html: string,\n start: number,\n length: number,\n ): number {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function applyEdits(\n input: string,\n edits: Array<{ index: number; text: string }>,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n","import { crossPlatformPath, UtilsI18n, fse } from 'tnp-core/browser';\n\nexport namespace UtilsPoFile {\n //#region generate po files\n export function generatePoFiles(\n files: UtilsI18n.GettextFile[],\n locales: UtilsI18n.CommonLocaleCode[],\n destinationAbsFolderPath: string,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate po file content\n export function generatePoFileContent(\n files: UtilsI18n.GettextFile[],\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region extract po to json\n export function extractPoToJson(\n poFileContent: string,\n ): UtilsI18n.GettextFile[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate translation override interface\n export function generateTranslationOverrideInterface(\n file: UtilsI18n.GettextFile,\n interfaceName: string,\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapeTs(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n }\n //#endregion\n\n //#region merge gettext file\n export function mergeGettextFile(\n jsonContent1FromTsHtml: UtilsI18n.GettextFile,\n json2ContentFromPoFileModifedByUser?: UtilsI18n.GettextFile | null,\n ): UtilsI18n.GettextFile {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region models & helpers\n function getGettextTagKey(\n tag: Pick<UtilsI18n.GettextExtracted, 'gettextString' | 'context'>,\n ): string {\n return `${tag.context ?? ''}\\u0004${tag.gettextString}`;\n }\n\n interface ParsedPoEntry {\n refs: string[];\n msgctxt?: string;\n msgid?: string;\n msgstr?: string;\n }\n\n function parsePoEntries(po: string): ParsedPoEntry[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function parsePoRef(\n ref: string,\n ): { fileAbsPath: string; lineNumber: number } | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapePoString(value: string): string {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n');\n }\n\n function readPoQuoted(value: string): string {\n const match = value.match(/^\"([\\s\\S]*)\"$/);\n if (!match) return '';\n\n return unescapePoString(match[1]);\n }\n\n function normalizePoTranslation(\n translation?: string | null,\n ): string | undefined {\n if (translation === undefined || translation === null) {\n return undefined;\n }\n\n return translation.trim().length > 0 ? translation : undefined;\n }\n\n function unescapePoString(value: string): string {\n return value\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\\\\\/g, '\\\\');\n }\n //#endregion\n}\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { CoreModels } from 'tnp-core/browser';\n\n// join interface type here\nimport { EnUsTraslationOverrideSrcLibTranslationTs } from './translation.ts.en-US.i18n.data';\nimport { PlPlTraslationOverrideSrcLibTranslationTs } from './translation.ts.pl-PL.i18n.data';;\nexport type LibOverride = CoreModels.DeepPartial<EnUsTraslationOverrideSrcLibTranslationTs \n| PlPlTraslationOverrideSrcLibTranslationTs>;\n\n // THIS FILE IS GENERATED - DO NOT MODIFY\n ","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './local-translation'; \nexport * from './start-cli'; \nexport * from './translate.directive'; // @browser\nexport * from './translate.pipe'; // @browser\nexport * from './translate.service'; // @browser\nexport * from './translation-manager'; \nexport * from './translation.models'; \nexport * from './translation'; \nexport * from './utils-i18n-extract-gettext-translate-from-html'; \nexport * from './utils-i18n-html'; \nexport * from './utils-po-file'; \nexport * from './i18n/lib.translation'; ","export * from './index._auto-generated_';\nexport * from './start-cli';\nexport default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n-browser.mjs","sources":["../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/local-translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/start-cli.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translation-manager.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translation.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.directive.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.pipe.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/translate.service.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-i18n-extract-gettext-translate-from-html.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-i18n-html.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/utils-po-file.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/lib/index.ts","../../../tmp-libs-for-dist/i18n/projects/i18n/src/i18n-browser.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.i18n';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/i18n';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.51';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","//#region imports\nimport {\n crossPlatformPath,\n dotTaonFolder,\n UtilsI18n,\n UtilsOs,\n _,\n Helpers,\n} from 'tnp-core/browser';\n//#endregion\n\n//#region translation options\nexport interface TranslationOptions {\n text: string;\n from: UtilsI18n.CommonLocaleCode;\n to: UtilsI18n.CommonLocaleCode;\n\n /**\n * Nearby source-language text used only to give the translator\n * additional context.\n *\n * Context is never returned from translate().\n */\n context?: string;\n\n /**\n * Source terms that should be replaced with specific translated terms.\n */\n glossary?: Record<string, string>;\n}\n//#endregion\n\n//#region ai download progress\nexport interface AiDownloadProgress {\n /**\n * General loading stage reported by Transformers.js.\n */\n status:\n | 'initiate'\n | 'download'\n | 'progress'\n | 'progress_total'\n | 'done'\n | 'ready'\n | string;\n\n /**\n * Current filename, when progress concerns an individual file.\n */\n file?: string;\n\n /**\n * Progress from 0 to 100.\n */\n progress?: number;\n\n /**\n * Downloaded bytes, when provided by Transformers.js.\n */\n loaded?: number;\n\n /**\n * Total bytes, when provided by Transformers.js.\n */\n total?: number;\n}\n//#endregion\n\n//#region make sure ai downloaded options\nexport interface MakeSureAiDownloadedOptions {\n onProgress?: (progress: AiDownloadProgress) => void;\n\n /**\n * Run one tiny translation after loading.\n *\n * This removes most of the delay from the first real translation,\n * but it performs a small amount of additional inference work.\n */\n warmup?: boolean;\n}\n//#endregion\n\n//#region constants\nconst MODEL_ID = 'Xenova/nllb-200-distilled-600M';\n\nconst nllbLanguageCodes: Partial<Record<UtilsI18n.CommonLocaleCode, string>> = {\n 'en-US': 'eng_Latn',\n 'pl-PL': 'pol_Latn',\n 'de-DE': 'deu_Latn',\n};\n\nconst CONTEXT_SEPARATOR = '→';\n//#endregion\n\nexport class LocalTranslationService {\n //#region fields & getters\n private translatorPromise?: Promise<any>;\n\n private aiReady = false;\n\n private warmupPromise?: Promise<void>;\n\n private progressListeners = new Set<(progress: AiDownloadProgress) => void>();\n //#endregion\n\n /**\n * Downloads, caches and loads the translation model.\n *\n * Multiple simultaneous calls share the same initialization promise.\n * After this resolves, translate() reuses the already loaded model.\n */\n //#region methods / make sure ai downloaded\n async makeSureAiDownloaded(\n options: MakeSureAiDownloadedOptions = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n /**\n * True only in this process after pipeline initialization succeeded.\n */\n //#region methods / is ai ready\n isAiReady(): boolean {\n return this.aiReady;\n }\n //#endregion\n\n //#region methods / get translator\n private getTranslator(): Promise<any> {\n this.translatorPromise ??= this.createTranslator().catch(error => {\n // Allow a later call to retry after a network or disk failure.\n this.translatorPromise = undefined;\n this.aiReady = false;\n\n throw error;\n });\n\n return this.translatorPromise;\n }\n //#endregion\n\n //#region methods / create translator\n private async createTranslator(): Promise<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n\n return void 0 as any;\n }\n //#endregion\n\n //#region methods / emit progress\n private emitProgress(progress: AiDownloadProgress): void {\n for (const listener of this.progressListeners) {\n try {\n listener(progress);\n } catch {\n // A UI callback must not break model initialization.\n }\n }\n }\n //#endregion\n\n //#region methods / warmup translator\n private warmupTranslator(translator: any): Promise<void> {\n this.warmupPromise ??= translator('Hello.', {\n src_lang: 'eng_Latn',\n tgt_lang: 'pol_Latn',\n max_new_tokens: 16,\n })\n .then(() => undefined)\n .catch(error => {\n this.warmupPromise = undefined;\n throw error;\n });\n\n return this.warmupPromise;\n }\n //#endregion\n\n //#region methods / translate\n async translate(options: TranslationOptions): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / protect glossary\n private protectGlossary(\n text: string,\n glossary?: Record<string, string>,\n ): {\n preparedText: string;\n restore: (translatedText: string) => string;\n } {\n if (!glossary || Object.keys(glossary).length === 0) {\n return {\n preparedText: text,\n restore: translatedText => translatedText,\n };\n }\n\n const replacements: Array<{\n placeholder: string;\n translatedValue: string;\n }> = [];\n\n let preparedText = text;\n\n Object.entries(glossary)\n .sort(([left], [right]) => right.length - left.length)\n .forEach(([sourceValue, translatedValue], index) => {\n const placeholder = `TAONTERM${index}PLACEHOLDER`;\n\n preparedText = preparedText.replaceAll(sourceValue, placeholder);\n\n replacements.push({\n placeholder,\n translatedValue,\n });\n });\n\n return {\n preparedText,\n\n restore(translatedText: string): string {\n let result = translatedText;\n\n for (const replacement of replacements) {\n result = result.replaceAll(\n replacement.placeholder,\n replacement.translatedValue,\n );\n }\n\n return result;\n },\n };\n }\n //#endregion\n\n //#region methods / protect interpolation\n private protectInterpolation(text: string): {\n preparedText: string;\n restore: (translatedText: string) => string;\n } {\n const replacements: Array<{\n placeholder: string;\n originalValue: string;\n }> = [];\n\n const preparedText = text.replace(/\\[\\[[\\s\\S]*?\\]\\]/g, originalValue => {\n const placeholder = `[[${replacements.length}]]`;\n\n replacements.push({\n placeholder,\n originalValue,\n });\n\n return placeholder;\n });\n\n return {\n preparedText,\n\n restore(translatedText: string): string {\n let result = translatedText;\n\n for (const replacement of replacements) {\n if (!result.includes(replacement.placeholder)) {\n throw new Error(\n `Translation model removed interpolation placeholder ` +\n `\"${replacement.placeholder}\" while translating \"${text}\".`,\n );\n }\n\n result = result.replaceAll(\n replacement.placeholder,\n replacement.originalValue,\n );\n }\n\n return result;\n },\n };\n }\n //#endregion\n\n //#region methods / get models cache path\n private getModelsCachePath(): string {\n const cachePath = crossPlatformPath([\n UtilsOs.getRealHomeDir(),\n dotTaonFolder,\n 'ai-models-cache',\n ]);\n\n Helpers.mkdirp(cachePath);\n\n return cachePath;\n }\n //#endregion\n}\n","import { LocalTranslationService } from './local-translation';\n\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;\n","//#region import\nimport { BehaviorSubject, filter, map, tap } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/browser';\n\nimport type { Translation } from './translation';\n//#endregion\n\n//#region constants\nconst globalStorageKeyMainLanguage = 'taon-gettext-main-language';\nconst globalTaonLanguageLocalKeyLocalStor = 'taon-language-local';\nconst TranslationManagerGlobalStorKey = 'TranslationManagerGlobalStorKey';\n//#endregion\n\nexport class TranslationManager {\n static globalDefautlLanguageOverride: UtilsI18n.CommonLocaleCode;\n\n // public instances = new Set<Translation>();\n public get instances(): Set<Translation> {\n let set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n if (_.isNil(set)) {\n GlobalStorage.set(\n TranslationManagerGlobalStorKey,\n new Set<Translation>(),\n );\n }\n set = GlobalStorage.get(\n TranslationManagerGlobalStorKey,\n ) as Set<Translation>;\n return set;\n }\n\n constructor() {\n // console.log(`[i18] Default lang: ${this.defaultLangLocale}`);\n }\n\n //#region current global language\n private defaultLangLocale: UtilsI18n.CommonLocaleCode = (() => {\n //#region @browser\n return (\n (localStorage.getItem(\n globalTaonLanguageLocalKeyLocalStor,\n ) as UtilsI18n.CommonLocaleCode) ||\n TranslationManager.globalDefautlLanguageOverride ||\n (UtilsI18n.detectLocale() as UtilsI18n.CommonLocaleCode)\n );\n //#endregion\n return UtilsI18n.defaultLangLocale;\n })();\n\n private _currentGlobalLanguage = this\n .defaultLangLocale as UtilsI18n.CommonLocaleCode;\n\n public get currentGlobalLanguage(): UtilsI18n.CommonLocaleCode {\n return this._currentGlobalLanguage;\n }\n\n public set currentGlobalLanguage(v: UtilsI18n.CommonLocaleCode) {\n this._currentGlobalLanguage = v;\n this.currentGlobalLanguageSrc.next(v);\n }\n\n private currentGlobalLanguageSrc = new BehaviorSubject(\n this.currentGlobalLanguage,\n );\n\n public readonly currentGlobalLanguage$ = this.currentGlobalLanguageSrc\n .asObservable()\n .pipe(\n tap(currentGlobalLanguage => {\n GlobalStorage.set<UtilsI18n.CommonLocaleCode>(\n globalStorageKeyMainLanguage,\n currentGlobalLanguage,\n );\n // console.log(`Update from subject ${currentGlobalLanguage}`);\n }),\n );\n //#endregion\n\n //#region available langs\n public availableLangs = _.cloneDeep(UtilsI18n.LangOptionArr);\n\n private availableLangsSrc = new BehaviorSubject(this.availableLangs);\n\n public readonly availableLangs$ = this.availableLangsSrc.asObservable().pipe(\n map(f => {\n if (this.visibleLanguages.length > 0) {\n // console.log('Filtering langs')\n return f.filter(a => this.visibleLanguages.includes(a.code));\n }\n return f;\n }),\n );\n //#endregion\n\n //#region visible langs\n public _visibleLanguages: UtilsI18n.CommonLocaleCode[] = [];\n\n public get visibleLanguages(): UtilsI18n.CommonLocaleCode[] {\n return this._visibleLanguages;\n }\n\n public set visibleLanguages(v: UtilsI18n.CommonLocaleCode[]) {\n if (this.pernamentLanguage) {\n v = v.filter(a => [this.pernamentLanguage].includes(a));\n }\n\n this._visibleLanguages = v;\n this.visibleLanguagesSrc.next(v);\n this.availableLangsSrc.next(this.availableLangs);\n }\n\n private visibleLanguagesSrc = new BehaviorSubject(this.visibleLanguages);\n\n public readonly visibleLanguages$ = this.visibleLanguagesSrc.asObservable();\n //#endregion\n\n //#region loading langs subject\n /**\n * TODO\n */\n private loadingLangsSubjectSrc = new BehaviorSubject(false);\n\n /**\n * TODO\n */\n public readonly isLoadingLangs$ = this.loadingLangsSubjectSrc.asObservable();\n //#endregion\n\n //#region global singleton\n private static _instance: TranslationManager;\n\n static get Instance(): TranslationManager {\n if (!this._instance) {\n this._instance = new TranslationManager();\n }\n return this._instance;\n }\n //#endregion\n\n public readonly pernamentLanguage: UtilsI18n.CommonLocaleCode | null = null;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n console.info(`Setting pernament language to ${lang}`);\n if (this.pernamentLanguage) {\n console.log('You are trying to set again pernament language');\n return;\n }\n this.visibleLanguages = [lang];\n // @ts-ignore\n this.pernamentLanguage = lang;\n void this.changeGlobalLang(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.loadingLangsSubjectSrc.next(true);\n\n this.currentGlobalLanguage = lang;\n //#region @browser\n localStorage.setItem(globalTaonLanguageLocalKeyLocalStor, lang);\n //#endregion\n // console.log('instances ', this.instances);\n try {\n await Promise.all([...this.instances].map(c => c.useGlobalFileLang()));\n } catch (error) {\n console.error(error);\n }\n this.loadingLangsSubjectSrc.next(false);\n // console.info('Done changing language');\n }\n //#endregion\n}\n","//#region imports\nimport {\n ChangeDetectorRef,\n inject,\n signal,\n WritableSignal,\n} from '@angular/core'; // @browser\nimport type {\n WritableSignal as WritableSignalType,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GlobalStorage, UtilsI18n, _ } from 'tnp-core/browser';\n\nimport { TranslationManager } from './translation-manager';\nimport {\n TaonTranslationsMapImport,\n TranslationBinding,\n TranslationLookup,\n TranslationParams,\n} from './translation.models';\nimport type { UtilsPoFile } from './utils-po-file';\n\n//#endregion\n\n//#region translation class\nexport class Translation {\n static manager = TranslationManager.Instance;\n\n //#region static for\n /**\n * Example how to use it:\n * const t = Translation.for('src/lib/translation.ts', {\"src/lib/translation.ts\":{\"en-US\":async () => (await import('./i18n/translation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/translation.ts.pl-PL.i18n.data')).default}} as any);\n */\n static for(\n fileRelativePath: string,\n langImportMap: TaonTranslationsMapImport,\n opt?: {\n debug?: boolean;\n },\n ): Translation {\n opt = opt || {};\n return new Translation(\n fileRelativePath,\n Translation.manager.currentGlobalLanguage,\n langImportMap,\n !!opt.debug,\n );\n }\n //#endregion\n\n //#region fields\n\n //#region @browser\n public cdr?: ChangeDetectorRef;\n\n //#endregion\n\n private lookup: TranslationLookup = {};\n\n private readonly loadingSubjectSrc = new BehaviorSubject(false);\n\n public readonly isLoadingLang$ = this.loadingSubjectSrc.asObservable();\n\n private loading?: Promise<void>;\n\n private loadedLang?: UtilsI18n.CommonLocaleCode;\n\n private readonly bindings = new Set<TranslationBinding>();\n\n private useGlobalLangFile = true;\n //#endregion\n\n //#region constructor\n private constructor(\n protected fileRelativePath: string,\n protected localFileLang: UtilsI18n.CommonLocaleCode,\n protected langImportMap: TaonTranslationsMapImport,\n public debug = false,\n ) {\n\n if (!Translation.manager.instances.has(this)) {\n // console.log(`Adding for ${fileRelativePath} `)\n Translation.manager.instances.add(this);\n } else {\n // console.log(`NOT ADDING for ${fileRelativePath} `)\n }\n // console.log(...Translation.manager.instances)\n }\n //#endregion\n\n //#region for\n for(_classThis: object): Translation {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n // console.log(`Update on t.for() ${this.localFileLang}`)\n }\n //#region @browser\n try {\n this.cdr = inject(ChangeDetectorRef);\n } catch {\n // non-angular class/backend-safe\n }\n //#endregion\n void this.ensureLoaded();\n\n return this;\n }\n //#endregion\n\n //#region change file lang\n async changeFileLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n this.useGlobalLangFile = false;\n this.localFileLang = lang;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region use global file lang\n async useGlobalFileLang( ): Promise<void> {\n this.useGlobalLangFile = true;\n await this.ensureLoaded(true);\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n }\n //#endregion\n\n //#region gettext\n gettext = (\n text: string,\n params?: TranslationParams,\n context = '',\n ): string => {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (with load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n };\n //#endregion\n\n //#region signal\n\n private createSignal(\n text: string,\n params?: TranslationParams,\n context = '',\n ): WritableSignalType<string> {\n //#region @browser\n const s = signal<string>(this.gettext(text, params, context));\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => s.set(value),\n });\n\n return s;\n //#endregion\n return void 0;\n }\n\n readonly signal = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createSignal(text, params, context),\n };\n //#endregion\n\n //#region $ obserable\n private createObservable(\n text: string,\n params?: TranslationParams,\n context = '',\n ): Observable<string> {\n const subject = new BehaviorSubject<string>(\n this.gettext(text, params, context),\n );\n\n this.bindings.add({\n text,\n params,\n context,\n update: value => subject.next(value),\n });\n\n return subject.asObservable();\n }\n\n readonly $ = {\n gettext: (text: string, params?: TranslationParams, context?: string) =>\n this.createObservable(text, params, context),\n };\n //#endregion\n\n //#region private methods / refresh bindings\n private refreshBindings(): void {\n for (const binding of this.bindings) {\n binding.update(\n this.gettextWithoutEnsureLoaded(\n binding.text,\n binding.params,\n binding.context ?? '',\n ),\n );\n }\n }\n //#endregion\n\n //#region private methods / gettextwithout ensure loadded\n\n translate(text: string, params?: TranslationParams, context = ''): string {\n return this.gettextWithoutEnsureLoaded(text, params, context);\n }\n\n private gettextWithoutEnsureLoaded(\n text: string,\n params?: TranslationParams,\n context = '',\n ): string {\n const key = this.key(text, context);\n const translated = this.lookup[key] ?? text;\n this.debug &&\n console.log(\n `Translate (no load): \"${text}\" to \"${translated}\", key=\"${key}\" params:${_.isObject(params) ? JSON.stringify(params) : params} ` +\n `localFileLang: ${this.localFileLang}`,\n this,\n );\n return this.interpolate(translated, params);\n }\n //#endregion\n\n //#region private methods / load\n private async load(): Promise<void> {\n this.loadingSubjectSrc.next(true);\n\n const files: UtilsI18n.GettextFile[] = [];\n const filesForTArr = Object.keys(this.langImportMap);\n for (const fileRelativePath of filesForTArr) {\n try {\n const loader =\n this.langImportMap[fileRelativePath]?.[this.localFileLang];\n\n if (!loader) {\n continue;\n }\n\n const modOrFile = await loader();\n const file = (modOrFile as any).default ?? modOrFile;\n\n files.push(file);\n } catch (err) {\n console.log(\n `[taon-i18n] Error loading language file ${fileRelativePath} `,\n err,\n );\n }\n }\n this.loadedLang = this.localFileLang;\n this.lookup = this.createLookup(files);\n this.debug && console.log(`${this.localFileLang}`, files, this.lookup);\n\n this.refreshBindings();\n\n //#region @browser\n this.cdr?.markForCheck();\n //#endregion\n this.loadingSubjectSrc.next(false);\n }\n //#endregion\n\n //#region private methods / ensure loaded\n private async ensureLoaded(force = false): Promise<void> {\n if (this.useGlobalLangFile) {\n this.localFileLang = Translation.manager.currentGlobalLanguage;\n }\n\n if (!force && this.loadedLang === this.localFileLang) {\n return;\n }\n\n if (!force && this.loading) {\n return this.loading;\n }\n\n this.loading = this.load();\n\n try {\n await this.loading;\n } finally {\n this.loading = undefined;\n }\n }\n //#endregion\n\n //#region private methods / create lookup\n private createLookup(files: UtilsI18n.GettextFile[]): TranslationLookup {\n const lookup: TranslationLookup = {};\n\n for (const file of files) {\n for (const tag of file.tags ?? []) {\n if (!tag.translation) continue;\n lookup[this.key(tag.gettextString, tag.context ?? '')] =\n tag.translation;\n }\n }\n\n return lookup;\n }\n //#endregion\n\n //#region private methods / key\n private key(text: string, context = ''): string {\n return `${context}\\u0004${text}`;\n }\n //#endregion\n\n //#region private methods / interpolate\n private interpolate(text: string, params?: Record<string, unknown>): string {\n if (!params) return text;\n\n const result = text.replace(/\\[\\[\\s*([a-zA-Z0-9_$]+)\\s*\\]\\]/g, (_, key) => {\n const value = params[key];\n return value === undefined || value === null ? '' : String(value);\n });\n\n return result;\n }\n //#endregion\n}\n//#endregion\n\n//#region EXMAPLE\n/*\n// import {Translation} from 'taon'\n\nconst t = Translation.for('src/lib/translation.ts', {\"src/lib/translation.ts\":{\"en-US\":async () => (await import('./i18n/translation.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/translation.ts.pl-PL.i18n.data')).default}} as any); // in runtime replaced with proper stuff\n\nt.gettext('asdasd');\n\nclass AnyAngularOrTaonClass {\n t = t.for(this); // probably only usefull for cdr in angular\n\n isLoading$ = t.isLoadingLang$; // maybe needed sometime\n\n refreshableSignalLabel$ = t.signal.gettext(t.gettext('welcome'));\n\n refreshableRxjsLabel$ = t.$.gettext('amazing better place'); // probably even better\n\n asdsa = this.t.gettext(\n // just sugar syntax\n 'This is mamazing',\n {\n asdasd: 'asd',\n },\n 'asdas',\n );\n\n ngOnInit(): void {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n const lable = t.gettext('hello');\n }\n}\n */\n//#endregion\n","import {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnChanges,\n} from '@angular/core';\n// @ts-ignore\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Translation } from './translation';\n\n@Directive({\n selector: '[translate]',\n standalone: true,\n})\nexport class TranslateDirective implements AfterViewInit, OnChanges {\n private static readonly selector = '[translate]';\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-t') t!: Translation;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-params') params?: Record<string, unknown>;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('translate-context') translateContext?: string;\n\n private initialized = false;\n\n private readonly element = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n private originalText = '';\n\n ngAfterViewInit(): void {\n const nativeElement = this.element.nativeElement;\n\n this.validateContent();\n\n this.originalText = nativeElement.textContent?.trim() ?? '';\n\n this.initialized = true;\n\n this.render();\n\n this.t.isLoadingLang$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.render();\n });\n }\n\n ngOnChanges(): void {\n if (!this.initialized) {\n return;\n }\n\n this.render();\n }\n\n private validateContent(): void {\n const element = this.element.nativeElement;\n // console.log('validating ', element);\n\n if (element.children.length > 0) {\n console.error(\n `[@taon-dev/i18n] ${TranslateDirective.selector} should only be used ` +\n `with plain text. HTML/content elements detected inside:`,\n\n element,\n );\n }\n }\n\n private render(): void {\n if (!this.t) {\n throw (\n `Directive ${TranslateDirective.selector} applied on component ` +\n `without implemented Translatable interface`\n );\n }\n\n this.element.nativeElement.textContent = this.t.translate(\n this.originalText,\n this.params,\n this.translateContext,\n );\n }\n}\n","import {\n ChangeDetectorRef,\n inject,\n OnDestroy,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Translation } from './translation';\nimport { TranslationManager } from './translation-manager';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n\n private tranlsationManager = TranslationManager.Instance;\n\n private readonly sub: Subscription;\n\n constructor() {\n this.sub = this.tranlsationManager.isLoadingLangs$.subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n\n transform(\n text: string,\n t: Translation,\n params?: Record<string, unknown>,\n context?: string,\n ): string {\n return t?.gettext(text, params, context) ?? text;\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UtilsI18n } from 'tnp-core/browser';\n\nimport { TranslationManager } from './translation-manager';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService {\n public manager = TranslationManager.Instance;\n\n public setOneLanguagePernament(lang: UtilsI18n.CommonLocaleCode): void {\n this.manager.setOneLanguagePernament(lang);\n }\n\n //#region change global lang\n async changeGlobalLang(lang: UtilsI18n.CommonLocaleCode): Promise<void> {\n await this.manager.changeGlobalLang(lang);\n }\n //#endregion\n}\n","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs'; // @esmRemove\nimport { UtilsI18n } from 'tnp-core/browser';\n//#endregion\n\nexport namespace UtilsI18nExtractGettextTranslateFromHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n function extractGettextCallsFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractGettextCallsFromHtmlExpression(source: string): Array<{\n gettextString: string;\n context?: string;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readBalancedParenthesesContent(\n source: string,\n openParenIndex: number,\n ): string | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function readStaticStringArg(arg: string | undefined): string | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateParamsFromSource(\n source: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractObjectLiteralParams(\n raw: string,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function splitTopLevel(input: string, separator: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslatePipeStringsFromSource(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractStringLiterals(source: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getNodeAttributes(node: any): any[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function getNodeInputs(node: any): TmplAstBoundAttribute[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function isText(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function isBoundText(node: any): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function collectText(nodes: any[]): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function extractTranslateDirectiveFromSource(\n html: string,\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function stripHtml(html: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function extractTranslateParams(\n inputs: TmplAstBoundAttribute[],\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function extractObjectLiteralFromAst(\n ast: any,\n ): Record<string, string> | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region @esmRemove\n function extractTranslatePipeStrings(ast: AST | any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n function extractStaticStringsFromExpression(ast: any): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function astToSource(ast: any): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function normalizeHtmlText(text: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n function uniqueMessages(\n messages: UtilsI18n.GettextExtracted[],\n ): UtilsI18n.GettextExtracted[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n","//#region imports\nimport {\n AST,\n Binary,\n BindingPipe,\n Conditional,\n Interpolation,\n LiteralPrimitive,\n parseTemplate,\n TmplAstBoundAttribute,\n TmplAstBoundText,\n TmplAstElement,\n TmplAstNode,\n TmplAstTemplate,\n TmplAstText,\n} from '@angular/compiler/cjs'; // @esmRemove\nimport { UtilsI18n } from 'tnp-core/browser';\nimport {\n canHaveDecorators,\n ClassDeclaration,\n createSourceFile,\n Decorator,\n Expression,\n forEachChild,\n getDecorators,\n isCallExpression,\n isClassDeclaration,\n isIdentifier,\n isObjectLiteralExpression,\n isPropertyAssignment,\n Node,\n ScriptKind,\n ScriptTarget,\n} from 'typescript'; // @esmRemove\n\nimport { UtilsI18nExtractGettextTranslateFromHtml } from './utils-i18n-extract-gettext-translate-from-html';\n//#endregion\n\nexport namespace UtilsI18nHtml {\n export function extractGettextTranslateFromHtml(\n html: string,\n fileName = 'template.html',\n ): UtilsI18n.GettextExtracted[] {\n return UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml(\n html,\n fileName,\n );\n }\n\n export function replaceTranslatePipieDirectiveTContext(\n html: string,\n options?: {\n angularTsWithInlineHtml?: boolean;\n },\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n export function isAngularTsWithInlineHtml(content: string): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n //#region @esmRemove\n\n function replaceInAngularInlineTemplates(content: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getAngularInlineTemplateRanges(content: string): Array<{\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasComponentDecorator(node: ClassDeclaration): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentDecorator(\n node: ClassDeclaration,\n ): Decorator | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getComponentTemplateInitializer(\n decorator: Decorator,\n ): Expression | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function getStringLikeInnerRange(\n content: string,\n node: Expression,\n ):\n | {\n start: number;\n end: number;\n html: string;\n quote: '`' | '\"' | \"'\";\n }\n | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n export function replaceTranslatePipieDirectiveTContextInHtml(\n html: string,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n return void 0 as any;\n }\n\n function findTranslateDirectiveEditsFromSource(\n html: string,\n ): Array<{ index: number; text: string }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateDirective(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function hasTranslateTInput(node: any): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function findOpenTagInsertPosition(\n html: string,\n start: number,\n length: number,\n ): number {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function applyEdits(\n input: string,\n edits: Array<{ index: number; text: string }>,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n","import { crossPlatformPath, UtilsI18n, fse } from 'tnp-core/browser';\n\nexport namespace UtilsPoFile {\n //#region generate po files\n export function generatePoFiles(\n files: UtilsI18n.GettextFile[],\n locales: UtilsI18n.CommonLocaleCode[],\n destinationAbsFolderPath: string,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate po file content\n export function generatePoFileContent(\n files: UtilsI18n.GettextFile[],\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region extract po to json\n export function extractPoToJson(\n poFileContent: string,\n ): UtilsI18n.GettextFile[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate translation override interface\n export function generateTranslationOverrideInterface(\n file: UtilsI18n.GettextFile,\n interfaceName: string,\n locale: UtilsI18n.CommonLocaleCode,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapeTs(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n }\n //#endregion\n\n //#region merge gettext file\n export function mergeGettextFile(\n jsonContent1FromTsHtml: UtilsI18n.GettextFile,\n json2ContentFromPoFileModifedByUser?: UtilsI18n.GettextFile | null,\n ): UtilsI18n.GettextFile {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region models & helpers\n function getGettextTagKey(\n tag: Pick<UtilsI18n.GettextExtracted, 'gettextString' | 'context'>,\n ): string {\n return `${tag.context ?? ''}\\u0004${tag.gettextString}`;\n }\n\n interface ParsedPoEntry {\n refs: string[];\n msgctxt?: string;\n msgid?: string;\n msgstr?: string;\n }\n\n function parsePoEntries(po: string): ParsedPoEntry[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function parsePoRef(\n ref: string,\n ): { fileAbsPath: string; lineNumber: number } | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n function escapePoString(value: string): string {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n');\n }\n\n function readPoQuoted(value: string): string {\n const match = value.match(/^\"([\\s\\S]*)\"$/);\n if (!match) return '';\n\n return unescapePoString(match[1]);\n }\n\n function normalizePoTranslation(\n translation?: string | null,\n ): string | undefined {\n if (translation === undefined || translation === null) {\n return undefined;\n }\n\n return translation.trim().length > 0 ? translation : undefined;\n }\n\n function unescapePoString(value: string): string {\n return value\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\\"/g, '\"')\n .replace(/\\\\\\\\/g, '\\\\');\n }\n //#endregion\n}\n","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './local-translation'; \nexport * from './start-cli'; \nexport * from './translate.directive'; // @browser\nexport * from './translate.pipe'; // @browser\nexport * from './translate.service'; // @browser\nexport * from './translation-manager'; \nexport * from './translation.models'; \nexport * from './translation'; \nexport * from './utils-i18n-extract-gettext-translate-from-html'; \nexport * from './utils-i18n-html'; \nexport * from './utils-po-file'; ","export * from './index._auto-generated_';\nexport * from './start-cli';\nexport default {};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18n/browser",
3
- "version": "21.0.50",
3
+ "version": "21.0.51",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"