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