@taon-dev/i18n 21.0.7 → 21.0.16

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 (251) hide show
  1. package/bin/start.js +37 -37
  2. package/browser/package.json +1 -20
  3. package/browser-prod/package.json +2 -20
  4. package/lib/package.json +1 -1
  5. package/lib-prod/package.json +1 -1
  6. package/package.json +1 -1
  7. package/websql/package.json +1 -20
  8. package/websql-prod/package.json +2 -20
  9. package/VERIFIED-BUILD-DATA.jsonc +0 -5
  10. package/assets/shared/shared_folder_info.txt +0 -7
  11. package/browser/README.md +0 -24
  12. package/browser/fesm2022/i18n-browser.mjs +0 -1556
  13. package/browser/fesm2022/i18n-browser.mjs.map +0 -1
  14. package/browser/types/i18n-browser.d.ts +0 -194
  15. package/browser-prod/README.md +0 -24
  16. package/browser-prod/fesm2022/i18n-browser-prod.mjs +0 -1545
  17. package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +0 -1
  18. package/browser-prod/types/i18n-browser-prod.d.ts +0 -188
  19. package/browser-prod.re-export.json +0 -1
  20. package/browser-prod.split-namespaces.json +0 -28
  21. package/cli.d.ts +0 -1
  22. package/cli.js +0 -8
  23. package/cli.js.map +0 -1
  24. package/html/app/main-page/main-page.container.html +0 -4
  25. package/html/assets/generated/pwa/html-pwa.html +0 -60
  26. package/html/imports.html +0 -3
  27. package/index.d.ts +0 -3
  28. package/index.js +0 -20
  29. package/index.js.map +0 -1
  30. package/lib/build-info._auto-generated_.d.ts +0 -24
  31. package/lib/build-info._auto-generated_.js +0 -30
  32. package/lib/build-info._auto-generated_.js.map +0 -1
  33. package/lib/env/env.angular-node-app.d.ts +0 -67
  34. package/lib/env/env.angular-node-app.js +0 -141
  35. package/lib/env/env.angular-node-app.js.map +0 -1
  36. package/lib/env/env.docs-webapp.d.ts +0 -67
  37. package/lib/env/env.docs-webapp.js +0 -141
  38. package/lib/env/env.docs-webapp.js.map +0 -1
  39. package/lib/env/env.electron-app.d.ts +0 -67
  40. package/lib/env/env.electron-app.js +0 -141
  41. package/lib/env/env.electron-app.js.map +0 -1
  42. package/lib/env/env.mobile-app.d.ts +0 -67
  43. package/lib/env/env.mobile-app.js +0 -141
  44. package/lib/env/env.mobile-app.js.map +0 -1
  45. package/lib/env/env.npm-lib-and-cli-tool.d.ts +0 -67
  46. package/lib/env/env.npm-lib-and-cli-tool.js +0 -141
  47. package/lib/env/env.npm-lib-and-cli-tool.js.map +0 -1
  48. package/lib/env/env.vscode-plugin.d.ts +0 -67
  49. package/lib/env/env.vscode-plugin.js +0 -141
  50. package/lib/env/env.vscode-plugin.js.map +0 -1
  51. package/lib/env/index.d.ts +0 -6
  52. package/lib/env/index.js +0 -23
  53. package/lib/env/index.js.map +0 -1
  54. package/lib/index._auto-generated_.d.ts +0 -11
  55. package/lib/index._auto-generated_.js +0 -33
  56. package/lib/index._auto-generated_.js.map +0 -1
  57. package/lib/index.d.ts +0 -4
  58. package/lib/index.js +0 -20
  59. package/lib/index.js.map +0 -1
  60. package/lib/start-cli.d.ts +0 -7
  61. package/lib/start-cli.js +0 -48
  62. package/lib/start-cli.js.map +0 -1
  63. package/lib/translate.directive.d.ts +0 -15
  64. package/lib/translate.pipe.d.ts +0 -10
  65. package/lib/translate.service.d.ts +0 -13
  66. package/lib/translation-manager.d.ts +0 -33
  67. package/lib/translation-manager.js +0 -119
  68. package/lib/translation-manager.js.map +0 -1
  69. package/lib/translation.d.ts +0 -44
  70. package/lib/translation.js +0 -253
  71. package/lib/translation.js.map +0 -1
  72. package/lib/translation.models.d.ts +0 -25
  73. package/lib/translation.models.js +0 -3
  74. package/lib/translation.models.js.map +0 -1
  75. package/lib/utils-i18n-extract-gettext-translate-from-html.d.ts +0 -4
  76. package/lib/utils-i18n-extract-gettext-translate-from-html.js +0 -465
  77. package/lib/utils-i18n-extract-gettext-translate-from-html.js.map +0 -1
  78. package/lib/utils-i18n-extract-gettext-translate-from-html.test.d.ts +0 -1
  79. package/lib/utils-i18n-extract-gettext-translate-from-html.test.js +0 -282
  80. package/lib/utils-i18n-extract-gettext-translate-from-html.test.js.map +0 -1
  81. package/lib/utils-i18n-html.d.ts +0 -5
  82. package/lib/utils-i18n-html.js +0 -120
  83. package/lib/utils-i18n-html.js.map +0 -1
  84. package/lib/utils-i18n-html.test.d.ts +0 -1
  85. package/lib/utils-i18n-html.test.js +0 -82
  86. package/lib/utils-i18n-html.test.js.map +0 -1
  87. package/lib/utils-po-file.d.ts +0 -8
  88. package/lib/utils-po-file.js +0 -245
  89. package/lib/utils-po-file.js.map +0 -1
  90. package/lib/utils-po-file.test.d.ts +0 -1
  91. package/lib/utils-po-file.test.js +0 -239
  92. package/lib/utils-po-file.test.js.map +0 -1
  93. package/lib-esm/app/main-page/main-page.active.context.d.ts +0 -19
  94. package/lib-esm/app/main-page/main-page.active.context.js +0 -19
  95. package/lib-esm/app/main-page/main-page.active.context.js.map +0 -1
  96. package/lib-esm/app.d.ts +0 -3
  97. package/lib-esm/app.electron.d.ts +0 -1
  98. package/lib-esm/app.electron.js +0 -2
  99. package/lib-esm/app.electron.js.map +0 -1
  100. package/lib-esm/app.hosts.d.ts +0 -147
  101. package/lib-esm/app.hosts.js +0 -217
  102. package/lib-esm/app.hosts.js.map +0 -1
  103. package/lib-esm/app.js +0 -460
  104. package/lib-esm/app.js.map +0 -1
  105. package/lib-esm/app.vscode.d.ts +0 -9
  106. package/lib-esm/app.vscode.js +0 -37
  107. package/lib-esm/app.vscode.js.map +0 -1
  108. package/lib-esm/cli.d.ts +0 -1
  109. package/lib-esm/cli.js +0 -4
  110. package/lib-esm/cli.js.map +0 -1
  111. package/lib-esm/index.d.ts +0 -3
  112. package/lib-esm/index.js +0 -4
  113. package/lib-esm/index.js.map +0 -1
  114. package/lib-esm/lib/build-info._auto-generated_.d.ts +0 -24
  115. package/lib-esm/lib/build-info._auto-generated_.js +0 -27
  116. package/lib-esm/lib/build-info._auto-generated_.js.map +0 -1
  117. package/lib-esm/lib/env/env.angular-node-app.d.ts +0 -67
  118. package/lib-esm/lib/env/env.angular-node-app.js +0 -137
  119. package/lib-esm/lib/env/env.angular-node-app.js.map +0 -1
  120. package/lib-esm/lib/env/env.docs-webapp.d.ts +0 -67
  121. package/lib-esm/lib/env/env.docs-webapp.js +0 -137
  122. package/lib-esm/lib/env/env.docs-webapp.js.map +0 -1
  123. package/lib-esm/lib/env/env.electron-app.d.ts +0 -67
  124. package/lib-esm/lib/env/env.electron-app.js +0 -137
  125. package/lib-esm/lib/env/env.electron-app.js.map +0 -1
  126. package/lib-esm/lib/env/env.mobile-app.d.ts +0 -67
  127. package/lib-esm/lib/env/env.mobile-app.js +0 -137
  128. package/lib-esm/lib/env/env.mobile-app.js.map +0 -1
  129. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +0 -67
  130. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +0 -137
  131. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +0 -1
  132. package/lib-esm/lib/env/env.vscode-plugin.d.ts +0 -67
  133. package/lib-esm/lib/env/env.vscode-plugin.js +0 -137
  134. package/lib-esm/lib/env/env.vscode-plugin.js.map +0 -1
  135. package/lib-esm/lib/env/index.d.ts +0 -6
  136. package/lib-esm/lib/env/index.js +0 -7
  137. package/lib-esm/lib/env/index.js.map +0 -1
  138. package/lib-esm/lib/index._auto-generated_.d.ts +0 -8
  139. package/lib-esm/lib/index._auto-generated_.js +0 -17
  140. package/lib-esm/lib/index._auto-generated_.js.map +0 -1
  141. package/lib-esm/lib/index.d.ts +0 -4
  142. package/lib-esm/lib/index.js +0 -4
  143. package/lib-esm/lib/index.js.map +0 -1
  144. package/lib-esm/lib/start-cli.d.ts +0 -7
  145. package/lib-esm/lib/start-cli.js +0 -45
  146. package/lib-esm/lib/start-cli.js.map +0 -1
  147. package/lib-esm/lib/translation-manager.d.ts +0 -33
  148. package/lib-esm/lib/translation-manager.js +0 -115
  149. package/lib-esm/lib/translation-manager.js.map +0 -1
  150. package/lib-esm/lib/translation.d.ts +0 -43
  151. package/lib-esm/lib/translation.js +0 -249
  152. package/lib-esm/lib/translation.js.map +0 -1
  153. package/lib-esm/lib/translation.models.d.ts +0 -25
  154. package/lib-esm/lib/translation.models.js +0 -2
  155. package/lib-esm/lib/translation.models.js.map +0 -1
  156. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.d.ts +0 -4
  157. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js +0 -462
  158. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js.map +0 -1
  159. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.d.ts +0 -1
  160. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.js +0 -280
  161. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.js.map +0 -1
  162. package/lib-esm/lib/utils-i18n-html.d.ts +0 -5
  163. package/lib-esm/lib/utils-i18n-html.js +0 -117
  164. package/lib-esm/lib/utils-i18n-html.js.map +0 -1
  165. package/lib-esm/lib/utils-i18n-html.test.d.ts +0 -1
  166. package/lib-esm/lib/utils-i18n-html.test.js +0 -80
  167. package/lib-esm/lib/utils-i18n-html.test.js.map +0 -1
  168. package/lib-esm/lib/utils-po-file.d.ts +0 -8
  169. package/lib-esm/lib/utils-po-file.js +0 -242
  170. package/lib-esm/lib/utils-po-file.js.map +0 -1
  171. package/lib-esm/lib/utils-po-file.test.d.ts +0 -1
  172. package/lib-esm/lib/utils-po-file.test.js +0 -237
  173. package/lib-esm/lib/utils-po-file.test.js.map +0 -1
  174. package/lib-prod/build-info._auto-generated_.d.ts +0 -24
  175. package/lib-prod/build-info._auto-generated_.js +0 -27
  176. package/lib-prod/build-info._auto-generated_.js.map +0 -1
  177. package/lib-prod/env/env.angular-node-app.d.ts +0 -67
  178. package/lib-prod/env/env.angular-node-app.js +0 -137
  179. package/lib-prod/env/env.angular-node-app.js.map +0 -1
  180. package/lib-prod/env/env.docs-webapp.d.ts +0 -67
  181. package/lib-prod/env/env.docs-webapp.js +0 -137
  182. package/lib-prod/env/env.docs-webapp.js.map +0 -1
  183. package/lib-prod/env/env.electron-app.d.ts +0 -67
  184. package/lib-prod/env/env.electron-app.js +0 -137
  185. package/lib-prod/env/env.electron-app.js.map +0 -1
  186. package/lib-prod/env/env.mobile-app.d.ts +0 -67
  187. package/lib-prod/env/env.mobile-app.js +0 -137
  188. package/lib-prod/env/env.mobile-app.js.map +0 -1
  189. package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +0 -67
  190. package/lib-prod/env/env.npm-lib-and-cli-tool.js +0 -137
  191. package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +0 -1
  192. package/lib-prod/env/env.vscode-plugin.d.ts +0 -67
  193. package/lib-prod/env/env.vscode-plugin.js +0 -137
  194. package/lib-prod/env/env.vscode-plugin.js.map +0 -1
  195. package/lib-prod/env/index.d.ts +0 -6
  196. package/lib-prod/env/index.js +0 -7
  197. package/lib-prod/env/index.js.map +0 -1
  198. package/lib-prod/index._auto-generated_.d.ts +0 -8
  199. package/lib-prod/index._auto-generated_.js +0 -17
  200. package/lib-prod/index._auto-generated_.js.map +0 -1
  201. package/lib-prod/index.d.ts +0 -4
  202. package/lib-prod/index.js +0 -4
  203. package/lib-prod/index.js.map +0 -1
  204. package/lib-prod/start-cli.d.ts +0 -7
  205. package/lib-prod/start-cli.js +0 -45
  206. package/lib-prod/start-cli.js.map +0 -1
  207. package/lib-prod/translation-manager.d.ts +0 -33
  208. package/lib-prod/translation-manager.js +0 -115
  209. package/lib-prod/translation-manager.js.map +0 -1
  210. package/lib-prod/translation.d.ts +0 -43
  211. package/lib-prod/translation.js +0 -249
  212. package/lib-prod/translation.js.map +0 -1
  213. package/lib-prod/translation.models.d.ts +0 -25
  214. package/lib-prod/translation.models.js +0 -2
  215. package/lib-prod/translation.models.js.map +0 -1
  216. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.d.ts +0 -2
  217. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js +0 -460
  218. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js.map +0 -1
  219. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.d.ts +0 -1
  220. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.js +0 -280
  221. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.js.map +0 -1
  222. package/lib-prod/utils-i18n-html.d.ts +0 -3
  223. package/lib-prod/utils-i18n-html.js +0 -114
  224. package/lib-prod/utils-i18n-html.js.map +0 -1
  225. package/lib-prod/utils-i18n-html.test.d.ts +0 -1
  226. package/lib-prod/utils-i18n-html.test.js +0 -80
  227. package/lib-prod/utils-i18n-html.test.js.map +0 -1
  228. package/lib-prod/utils-po-file.d.ts +0 -6
  229. package/lib-prod/utils-po-file.js +0 -236
  230. package/lib-prod/utils-po-file.js.map +0 -1
  231. package/lib-prod/utils-po-file.test.d.ts +0 -1
  232. package/lib-prod/utils-po-file.test.js +0 -237
  233. package/lib-prod/utils-po-file.test.js.map +0 -1
  234. package/lib-prod.re-export.json +0 -1
  235. package/lib-prod.split-namespaces.json +0 -28
  236. package/scss/app/main-page/main-page.container.scss +0 -3
  237. package/scss/global.scss +0 -94
  238. package/scss/index.scss +0 -2
  239. package/scss/lib/index.scss +0 -2
  240. package/scss/vars.scss +0 -7
  241. package/src.js +0 -4
  242. package/websql/README.md +0 -24
  243. package/websql/fesm2022/i18n-websql.mjs +0 -1556
  244. package/websql/fesm2022/i18n-websql.mjs.map +0 -1
  245. package/websql/types/i18n-websql.d.ts +0 -194
  246. package/websql-prod/README.md +0 -24
  247. package/websql-prod/fesm2022/i18n-websql-prod.mjs +0 -1545
  248. package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +0 -1
  249. package/websql-prod/types/i18n-websql-prod.d.ts +0 -188
  250. package/websql-prod.re-export.json +0 -1
  251. package/websql-prod.split-namespaces.json +0 -28
@@ -1,462 +0,0 @@
1
- //#region imports
2
- import { parseTemplate, } from '@angular/compiler';
3
- //#endregion
4
- export var UtilsI18nExtractGettextTranslateFromHtml;
5
- (function (UtilsI18nExtractGettextTranslateFromHtml) {
6
- function extractGettextTranslateFromHtml(html, fileName = 'template.html') {
7
- //#region @backendFunc
8
- const parsed = parseTemplate(html, fileName, {
9
- preserveWhitespaces: true,
10
- });
11
- const messages = [];
12
- const pushMessage = (node, gettextString, params, context) => {
13
- const normalized = normalizeHtmlText(gettextString);
14
- if (!normalized)
15
- return;
16
- messages.push({
17
- lineNumber: node.sourceSpan.start.line + 1,
18
- gettextString: normalized,
19
- // params: params ?? null,
20
- context,
21
- });
22
- };
23
- const visit = (node) => {
24
- const attrs = getNodeAttributes(node);
25
- const inputs = getNodeInputs(node);
26
- const translateAttr = attrs.find((a) => a.name === 'translate');
27
- if (translateAttr) {
28
- const params = extractTranslateParams(inputs) ??
29
- extractTranslateParamsFromSource(node.sourceSpan.toString());
30
- // pushMessage(
31
- // node,
32
- // collectText(node.children ?? []),
33
- // extractTranslateParams(inputs),
34
- // translateAttr.value || undefined,
35
- // );
36
- pushMessage(node, collectText(node.children ?? []), params, translateAttr.value || undefined);
37
- }
38
- for (const input of inputs) {
39
- for (const text of extractTranslatePipeStrings(input.value)) {
40
- pushMessage(node, text);
41
- }
42
- }
43
- if (isBoundText(node)) {
44
- // for (const text of extractTranslatePipeStrings(node.value)) {
45
- // pushMessage(node, text);
46
- // }
47
- for (const item of extractGettextCallsFromHtmlExpression(node.sourceSpan.toString())) {
48
- pushMessage(node, item.gettextString, null, item.context);
49
- }
50
- const fromAst = extractTranslatePipeStrings(node.value);
51
- const fromSource = extractTranslatePipeStringsFromSource(node.sourceSpan.toString());
52
- for (const text of [...fromAst, ...fromSource]) {
53
- pushMessage(node, text);
54
- }
55
- }
56
- for (const child of node.children ?? []) {
57
- visit(child);
58
- }
59
- };
60
- for (const node of parsed.nodes) {
61
- visit(node);
62
- }
63
- if (messages.length === 0) {
64
- messages.push(...extractTranslateDirectiveFromSource(html));
65
- }
66
- messages.push(...extractGettextCallsFromSource(html));
67
- return uniqueMessages(messages);
68
- //#endregion
69
- }
70
- UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml = extractGettextTranslateFromHtml;
71
- function extractGettextCallsFromSource(html) {
72
- //#region @backendFunc
73
- const messages = [];
74
- const regex = /(?:^|[\s([{?:=])(?:[a-zA-Z_$][\w$]*\.)*gettext\s*\(/g;
75
- for (const match of html.matchAll(regex)) {
76
- const matchIndex = match.index ?? 0;
77
- const openParenIndex = matchIndex + match[0].lastIndexOf('(');
78
- const argsSource = readBalancedParenthesesContent(html, openParenIndex);
79
- if (!argsSource)
80
- continue;
81
- const args = splitTopLevel(argsSource, ',');
82
- const gettextString = readStaticStringArg(args[0]);
83
- if (!gettextString)
84
- continue;
85
- const context = readStaticStringArg(args[2]);
86
- messages.push({
87
- lineNumber: html.slice(0, matchIndex).split(/\r?\n/).length,
88
- gettextString,
89
- context,
90
- });
91
- }
92
- return messages;
93
- //#endregion
94
- }
95
- function extractGettextCallsFromHtmlExpression(source) {
96
- //#region @backendFunc
97
- const result = [];
98
- const expression = source
99
- .replace(/^\s*\{\{\s*/, '')
100
- .replace(/\s*\}\}\s*$/, '')
101
- .trim();
102
- const gettextCallRegex = /(?:^|[\s(])(?:[a-zA-Z_$][\w$]*\.)*gettext\s*\(/g;
103
- for (const match of expression.matchAll(gettextCallRegex)) {
104
- const openParenIndex = match.index + match[0].lastIndexOf('(');
105
- const argsSource = readBalancedParenthesesContent(expression, openParenIndex);
106
- if (!argsSource)
107
- continue;
108
- const args = splitTopLevel(argsSource, ',');
109
- const gettextString = readStaticStringArg(args[0]);
110
- if (!gettextString)
111
- continue;
112
- const context = readStaticStringArg(args[2]);
113
- result.push({
114
- gettextString,
115
- context,
116
- });
117
- }
118
- return result;
119
- //#endregion
120
- }
121
- function readBalancedParenthesesContent(source, openParenIndex) {
122
- //#region @backendFunc
123
- let depth = 0;
124
- let quote = null;
125
- let result = '';
126
- for (let i = openParenIndex; i < source.length; i++) {
127
- const char = source[i];
128
- if (quote) {
129
- if (i !== openParenIndex)
130
- result += char;
131
- if (char === quote && source[i - 1] !== '\\') {
132
- quote = null;
133
- }
134
- continue;
135
- }
136
- if (char === '"' || char === "'" || char === '`') {
137
- quote = char;
138
- if (i !== openParenIndex)
139
- result += char;
140
- continue;
141
- }
142
- if (char === '(') {
143
- depth++;
144
- if (depth > 1)
145
- result += char;
146
- continue;
147
- }
148
- if (char === ')') {
149
- depth--;
150
- if (depth === 0) {
151
- return result.trim();
152
- }
153
- result += char;
154
- continue;
155
- }
156
- if (i !== openParenIndex) {
157
- result += char;
158
- }
159
- }
160
- return null;
161
- //#endregion
162
- }
163
- function readStaticStringArg(arg) {
164
- //#region @backendFunc
165
- if (!arg)
166
- return undefined;
167
- const trimmed = arg.trim();
168
- const match = trimmed.match(/^(['"`])([\s\S]*)\1$/);
169
- if (!match)
170
- return undefined;
171
- const quote = match[1];
172
- const value = match[2];
173
- if (quote === '`' && value.includes('${')) {
174
- return undefined;
175
- }
176
- return value;
177
- //#endregion
178
- }
179
- function extractTranslateParamsFromSource(source) {
180
- //#region @backendFunc
181
- const match = source.match(/\[translate-params\]\s*=\s*"([\s\S]*?)"/);
182
- if (!match)
183
- return null;
184
- return extractObjectLiteralParams(match[1]);
185
- //#endregion
186
- }
187
- function extractObjectLiteralParams(raw) {
188
- //#region @backendFunc
189
- const body = raw.trim().replace(/^\{/, '').replace(/\}$/, '').trim();
190
- if (!body)
191
- return null;
192
- const result = {};
193
- for (const part of splitTopLevel(body, ',')) {
194
- const colonIndex = part.indexOf(':');
195
- if (colonIndex === -1)
196
- continue;
197
- const key = part
198
- .slice(0, colonIndex)
199
- .trim()
200
- .replace(/^['"]|['"]$/g, '');
201
- const value = part.slice(colonIndex + 1).trim();
202
- if (key && value) {
203
- result[key] = value;
204
- }
205
- }
206
- return Object.keys(result).length ? result : null;
207
- //#endregion
208
- }
209
- function splitTopLevel(input, separator) {
210
- //#region @backendFunc
211
- const result = [];
212
- let current = '';
213
- let depth = 0;
214
- let quote = null;
215
- for (let i = 0; i < input.length; i++) {
216
- const char = input[i];
217
- if (quote) {
218
- current += char;
219
- if (char === quote && input[i - 1] !== '\\')
220
- quote = null;
221
- continue;
222
- }
223
- if (char === '"' || char === "'" || char === '`') {
224
- quote = char;
225
- current += char;
226
- continue;
227
- }
228
- if (char === '{' || char === '(' || char === '[')
229
- depth++;
230
- if (char === '}' || char === ')' || char === ']')
231
- depth--;
232
- if (char === separator && depth === 0) {
233
- result.push(current.trim());
234
- current = '';
235
- continue;
236
- }
237
- current += char;
238
- }
239
- if (current.trim())
240
- result.push(current.trim());
241
- return result;
242
- //#endregion
243
- }
244
- function extractTranslatePipeStringsFromSource(source) {
245
- //#region @backendFunc
246
- const expression = source
247
- .replace(/^\s*\{\{\s*/, '')
248
- .replace(/\s*\}\}\s*$/, '')
249
- .trim();
250
- if (!expression.includes('| translate'))
251
- return [];
252
- // {{ (cond ? 'Yes' : 'No') | translate }}
253
- const wrappedConditional = expression.match(/^\(([\s\S]+)\)\s*\|\s*translate\b/);
254
- if (wrappedConditional) {
255
- return extractStringLiterals(wrappedConditional[1]);
256
- }
257
- // {{ row.x ? 'Yes' : 'No' | translate }}
258
- // Angular means only 'No' is translated
259
- const directStringPipe = expression.match(/(['"`])((?:\\.|(?!\1)[\s\S])*)\1\s*\|\s*translate\b/);
260
- if (directStringPipe) {
261
- return [directStringPipe[2].trim()];
262
- }
263
- return [];
264
- //#endregion
265
- }
266
- function extractStringLiterals(source) {
267
- //#region @backendFunc
268
- const result = [];
269
- for (const match of source.matchAll(/(['"`])((?:\\.|(?!\1)[\s\S])*)\1/g)) {
270
- const value = match[2].trim();
271
- if (value)
272
- result.push(value);
273
- }
274
- return result;
275
- //#endregion
276
- }
277
- function getNodeAttributes(node) {
278
- //#region @backendFunc
279
- return [
280
- ...(node.attributes ?? []),
281
- ...(node.templateAttrs ?? []).filter((a) => a.name),
282
- ];
283
- //#endregion
284
- }
285
- function getNodeInputs(node) {
286
- //#region @backendFunc
287
- return [
288
- ...(node.inputs ?? []),
289
- ...(node.templateAttrs ?? []).filter((a) => a.value),
290
- ];
291
- //#endregion
292
- }
293
- function isText(node) {
294
- //#region @backendFunc
295
- return (node?.constructor?.name === 'Text' || typeof node?.value === 'string');
296
- //#endregion
297
- }
298
- function isBoundText(node) {
299
- //#region @backendFunc
300
- return node?.constructor?.name === 'BoundText' && node?.value;
301
- //#endregion
302
- }
303
- function collectText(nodes) {
304
- //#region @backendFunc
305
- let result = '';
306
- for (const node of nodes) {
307
- if (isText(node) && typeof node.value === 'string') {
308
- result += node.value;
309
- continue;
310
- }
311
- if (isBoundText(node)) {
312
- result += node.sourceSpan.toString();
313
- continue;
314
- }
315
- if (node.children) {
316
- result += collectText(node.children);
317
- }
318
- }
319
- return result;
320
- //#endregion
321
- }
322
- function extractTranslateDirectiveFromSource(html) {
323
- //#region @backendFunc
324
- const messages = [];
325
- const regex = /<([a-zA-Z0-9-]+)(?=[^>]*\stranslate(?:\s|>|=))[^>]*>([\s\S]*?)<\/\1>/g;
326
- for (const match of html.matchAll(regex)) {
327
- const fullMatch = match[0];
328
- const innerHtml = match[2];
329
- const index = match.index ?? 0;
330
- const lineNumber = html.slice(0, index).split(/\r?\n/).length;
331
- const text = normalizeHtmlText(stripHtml(innerHtml));
332
- if (!text)
333
- continue;
334
- const contextMatch = fullMatch.match(/\stranslate\s*=\s*["']([^"']+)["']/);
335
- messages.push({
336
- lineNumber,
337
- gettextString: text,
338
- context: contextMatch?.[1],
339
- });
340
- }
341
- return messages;
342
- //#endregion
343
- }
344
- function stripHtml(html) {
345
- //#region @backendFunc
346
- return html.replace(/<[^>]+>/g, '');
347
- //#endregion
348
- }
349
- function extractTranslateParams(inputs) {
350
- //#region @backendFunc
351
- const input = inputs.find((i) => i.name === 'translate-params' || i.name === 'translateParams');
352
- if (!input?.value)
353
- return null;
354
- return extractObjectLiteralFromAst(input.value);
355
- //#endregion
356
- }
357
- function extractObjectLiteralFromAst(ast) {
358
- //#region @backendFunc
359
- if (ast?.constructor?.name !== 'LiteralMap')
360
- return null;
361
- const result = {};
362
- ast.keys.forEach((keyItem, index) => {
363
- const key = typeof keyItem === 'string' ? keyItem : keyItem.key;
364
- const value = ast.values[index];
365
- if (key && value) {
366
- result[key] = astToSource(value);
367
- }
368
- });
369
- return Object.keys(result).length ? result : null;
370
- //#endregion
371
- }
372
- function extractTranslatePipeStrings(ast) {
373
- //#region @backendFunc
374
- const result = [];
375
- const visit = (node) => {
376
- if (!node || typeof node !== 'object')
377
- return;
378
- if (node.constructor?.name === 'BindingPipe' &&
379
- node.name === 'translate') {
380
- result.push(...extractStaticStringsFromExpression(node.exp));
381
- return;
382
- }
383
- for (const value of Object.values(node)) {
384
- if (Array.isArray(value)) {
385
- for (const item of value)
386
- visit(item);
387
- }
388
- else if (value && typeof value === 'object') {
389
- visit(value);
390
- }
391
- }
392
- };
393
- visit(ast);
394
- return result;
395
- //#endregion
396
- }
397
- function extractStaticStringsFromExpression(ast) {
398
- //#region @backendFunc
399
- if (!ast)
400
- return [];
401
- if (ast.constructor?.name === 'LiteralPrimitive' &&
402
- typeof ast.value === 'string') {
403
- return [ast.value];
404
- }
405
- if (ast.constructor?.name === 'Conditional') {
406
- return [
407
- ...extractStaticStringsFromExpression(ast.trueExp),
408
- ...extractStaticStringsFromExpression(ast.falseExp),
409
- ];
410
- }
411
- if (ast.constructor?.name === 'BindingPipe' && ast.name === 'translate') {
412
- return extractStaticStringsFromExpression(ast.exp);
413
- }
414
- return [];
415
- //#endregion
416
- }
417
- function astToSource(ast) {
418
- //#region @backendFunc
419
- if (!ast)
420
- return '';
421
- if (typeof ast.source === 'string') {
422
- return ast.source;
423
- }
424
- if (ast.constructor?.name === 'PropertyRead') {
425
- const receiver = astToSource(ast.receiver);
426
- return receiver ? `${receiver}.${ast.name}` : ast.name;
427
- }
428
- if (ast.constructor?.name === 'ImplicitReceiver') {
429
- return '';
430
- }
431
- if (ast.constructor?.name === 'LiteralPrimitive') {
432
- return typeof ast.value === 'string'
433
- ? `'${ast.value}'`
434
- : String(ast.value);
435
- }
436
- return ast.toString?.() === '[object Object]' ? '' : String(ast);
437
- //#endregion
438
- }
439
- function normalizeHtmlText(text) {
440
- //#region @backendFunc
441
- return text.replace(/\s+/g, ' ').trim();
442
- //#endregion
443
- }
444
- function uniqueMessages(messages) {
445
- //#region @backendFunc
446
- const seen = new Set();
447
- return messages.filter(message => {
448
- const key = JSON.stringify([
449
- message.lineNumber,
450
- message.gettextString,
451
- message.context,
452
- ]);
453
- if (seen.has(key))
454
- return false;
455
- seen.add(key);
456
- return true;
457
- });
458
- //#endregion
459
- }
460
- //#endregion
461
- })(UtilsI18nExtractGettextTranslateFromHtml || (UtilsI18nExtractGettextTranslateFromHtml = {}));
462
- //# sourceMappingURL=utils-i18n-extract-gettext-translate-from-html.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-i18n-extract-gettext-translate-from-html.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}