@taon-dev/i18n 21.0.7 → 21.0.15

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