@lionrapid/core 0.6.5 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -2
- package/dist/browser/auto-init.d.ts.map +1 -1
- package/dist/browser/auto-init.js +2 -1
- package/dist/browser/auto-init.js.map +1 -1
- package/dist/browser/editor/editor-api.d.ts +12 -0
- package/dist/browser/editor/editor-api.d.ts.map +1 -1
- package/dist/browser/editor/editor-api.js.map +1 -1
- package/dist/browser/editor/editor-init.js +2 -1
- package/dist/browser/editor/editor-init.js.map +1 -1
- package/dist/browser/editor/sidebar.d.ts.map +1 -1
- package/dist/browser/editor/sidebar.js +11 -1
- package/dist/browser/editor/sidebar.js.map +1 -1
- package/dist/browser/lionrapid.auto.dev.js +241 -170
- package/dist/browser/lionrapid.auto.dev.js.map +3 -3
- package/dist/browser/lionrapid.auto.js +241 -170
- package/dist/browser/lionrapid.auto.js.map +3 -3
- package/dist/browser/lionrapid.auto.min.js +6 -4
- package/dist/browser/lionrapid.auto.min.js.map +4 -4
- package/dist/browser/lionrapid.editor.js +5 -2
- package/dist/browser/lionrapid.editor.js.map +3 -3
- package/dist/browser/lionrapid.editor.min.js +4 -4
- package/dist/browser/lionrapid.editor.min.js.map +4 -4
- package/dist/browser/lionrapid.esm.js +242 -170
- package/dist/browser/lionrapid.esm.js.map +3 -3
- package/dist/browser/lionrapid.esm.min.js +5 -3
- package/dist/browser/lionrapid.esm.min.js.map +4 -4
- package/dist/browser/lionrapid.iife.dev.js +242 -170
- package/dist/browser/lionrapid.iife.dev.js.map +3 -3
- package/dist/browser/lionrapid.iife.js +242 -170
- package/dist/browser/lionrapid.iife.js.map +3 -3
- package/dist/browser/lionrapid.iife.min.js +5 -3
- package/dist/browser/lionrapid.iife.min.js.map +4 -4
- package/dist/browser/lionrapid.umd.js +242 -170
- package/dist/browser/lionrapid.umd.js.map +3 -3
- package/dist/browser/lionrapid.umd.min.js +5 -3
- package/dist/browser/lionrapid.umd.min.js.map +4 -4
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +9 -2
- package/dist/builder.js.map +1 -1
- package/dist/config/api.config.d.ts +35 -0
- package/dist/config/api.config.d.ts.map +1 -0
- package/dist/config/api.config.js +35 -0
- package/dist/config/api.config.js.map +1 -0
- package/dist/handlers/network-handler.d.ts +6 -0
- package/dist/handlers/network-handler.d.ts.map +1 -1
- package/dist/handlers/network-handler.js +9 -0
- package/dist/handlers/network-handler.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lionRapid.d.ts.map +1 -1
- package/dist/lionRapid.js +11 -2
- package/dist/lionRapid.js.map +1 -1
- package/dist/repositories/network-repository.d.ts.map +1 -1
- package/dist/repositories/network-repository.js +4 -3
- package/dist/repositories/network-repository.js.map +1 -1
- package/dist/utils/log-safe.d.ts +92 -0
- package/dist/utils/log-safe.d.ts.map +1 -0
- package/dist/utils/log-safe.js +168 -0
- package/dist/utils/log-safe.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -2
- package/dist/utils/logger.js.map +1 -1
- package/package.json +6 -3
|
@@ -42,6 +42,216 @@ var __lionrapidAutoExports = (() => {
|
|
|
42
42
|
parseConfig: () => parseConfig
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
+
// src/browser/md5.ts
|
|
46
|
+
function safeAdd(x, y) {
|
|
47
|
+
const lsw = (x & 65535) + (y & 65535);
|
|
48
|
+
const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
|
49
|
+
return msw << 16 | lsw & 65535;
|
|
50
|
+
}
|
|
51
|
+
function bitRotateLeft(num, cnt) {
|
|
52
|
+
return num << cnt | num >>> 32 - cnt;
|
|
53
|
+
}
|
|
54
|
+
function md5cmn(q, a, b, x, s, t) {
|
|
55
|
+
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
|
56
|
+
}
|
|
57
|
+
function md5ff(a, b, c, d, x, s, t) {
|
|
58
|
+
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
|
59
|
+
}
|
|
60
|
+
function md5gg(a, b, c, d, x, s, t) {
|
|
61
|
+
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
|
62
|
+
}
|
|
63
|
+
function md5hh(a, b, c, d, x, s, t) {
|
|
64
|
+
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
|
65
|
+
}
|
|
66
|
+
function md5ii(a, b, c, d, x, s, t) {
|
|
67
|
+
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
|
68
|
+
}
|
|
69
|
+
function binlMD5(x, len) {
|
|
70
|
+
x[len >> 5] |= 128 << len % 32;
|
|
71
|
+
x[(len + 64 >>> 9 << 4) + 14] = len;
|
|
72
|
+
let a = 1732584193;
|
|
73
|
+
let b = -271733879;
|
|
74
|
+
let c = -1732584194;
|
|
75
|
+
let d = 271733878;
|
|
76
|
+
for (let i = 0; i < x.length; i += 16) {
|
|
77
|
+
const olda = a;
|
|
78
|
+
const oldb = b;
|
|
79
|
+
const oldc = c;
|
|
80
|
+
const oldd = d;
|
|
81
|
+
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
|
82
|
+
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
|
83
|
+
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
|
84
|
+
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
|
85
|
+
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
|
86
|
+
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
|
87
|
+
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
|
88
|
+
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
|
89
|
+
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
|
90
|
+
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
|
91
|
+
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
|
92
|
+
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
|
93
|
+
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
|
94
|
+
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
|
95
|
+
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
|
96
|
+
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
|
97
|
+
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
|
98
|
+
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
|
99
|
+
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
|
100
|
+
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
|
101
|
+
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
|
102
|
+
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
|
103
|
+
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
|
104
|
+
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
|
105
|
+
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
|
106
|
+
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
|
107
|
+
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
|
108
|
+
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
|
109
|
+
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
|
110
|
+
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
|
111
|
+
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
|
112
|
+
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
|
113
|
+
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
|
114
|
+
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
|
115
|
+
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
|
116
|
+
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
|
117
|
+
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
|
118
|
+
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
|
119
|
+
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
|
120
|
+
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
|
121
|
+
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
|
122
|
+
d = md5hh(d, a, b, c, x[i + 0], 11, -358537222);
|
|
123
|
+
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
|
124
|
+
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
|
125
|
+
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
|
126
|
+
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
|
127
|
+
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
|
128
|
+
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
|
129
|
+
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
|
130
|
+
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
|
131
|
+
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
|
132
|
+
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
|
133
|
+
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
|
134
|
+
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
|
135
|
+
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
|
136
|
+
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
|
137
|
+
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
|
138
|
+
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
|
139
|
+
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
|
140
|
+
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
|
141
|
+
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
|
142
|
+
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
|
143
|
+
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
|
144
|
+
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
|
145
|
+
a = safeAdd(a, olda);
|
|
146
|
+
b = safeAdd(b, oldb);
|
|
147
|
+
c = safeAdd(c, oldc);
|
|
148
|
+
d = safeAdd(d, oldd);
|
|
149
|
+
}
|
|
150
|
+
return [a, b, c, d];
|
|
151
|
+
}
|
|
152
|
+
function binl2hex(binarray) {
|
|
153
|
+
const hexTab = "0123456789abcdef";
|
|
154
|
+
let str = "";
|
|
155
|
+
for (let i = 0; i < binarray.length * 4; i++) {
|
|
156
|
+
str += hexTab.charAt(binarray[i >> 2] >> i % 4 * 8 + 4 & 15) + hexTab.charAt(binarray[i >> 2] >> i % 4 * 8 & 15);
|
|
157
|
+
}
|
|
158
|
+
return str;
|
|
159
|
+
}
|
|
160
|
+
function utf8Bytes(str) {
|
|
161
|
+
if (typeof TextEncoder !== "undefined") {
|
|
162
|
+
return new TextEncoder().encode(str);
|
|
163
|
+
}
|
|
164
|
+
const out = [];
|
|
165
|
+
for (let i = 0; i < str.length; i++) {
|
|
166
|
+
const c = str.charCodeAt(i);
|
|
167
|
+
if (c < 128) {
|
|
168
|
+
out.push(c);
|
|
169
|
+
} else if (c < 2048) {
|
|
170
|
+
out.push(192 | c >> 6, 128 | c & 63);
|
|
171
|
+
} else if (c >= 55296 && c < 56320 && i + 1 < str.length) {
|
|
172
|
+
const c2 = str.charCodeAt(++i);
|
|
173
|
+
const cp = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
174
|
+
out.push(
|
|
175
|
+
240 | cp >> 18,
|
|
176
|
+
128 | cp >> 12 & 63,
|
|
177
|
+
128 | cp >> 6 & 63,
|
|
178
|
+
128 | cp & 63
|
|
179
|
+
);
|
|
180
|
+
} else {
|
|
181
|
+
out.push(
|
|
182
|
+
224 | c >> 12,
|
|
183
|
+
128 | c >> 6 & 63,
|
|
184
|
+
128 | c & 63
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return new Uint8Array(out);
|
|
189
|
+
}
|
|
190
|
+
function bytes2binl(bytes) {
|
|
191
|
+
const bin = [];
|
|
192
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
193
|
+
bin[i >> 2] |= bytes[i] << i % 4 * 8;
|
|
194
|
+
}
|
|
195
|
+
return bin;
|
|
196
|
+
}
|
|
197
|
+
function md5(str) {
|
|
198
|
+
const bytes = utf8Bytes(str);
|
|
199
|
+
return binl2hex(binlMD5(bytes2binl(bytes), bytes.length * 8));
|
|
200
|
+
}
|
|
201
|
+
function generateAutoKey(text) {
|
|
202
|
+
const trimmed = text.trim();
|
|
203
|
+
return "auto_" + md5(trimmed).substring(0, 12);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// src/utils/log-safe.ts
|
|
207
|
+
var LOG_VALUE_FULL_MAX = 200;
|
|
208
|
+
var LOG_VALUE_EDGE = 90;
|
|
209
|
+
function contentIdentity(value) {
|
|
210
|
+
return `${value.length} chars, md5:${md5(value.trim()).slice(0, 12)}`;
|
|
211
|
+
}
|
|
212
|
+
function contentExcerpt(value) {
|
|
213
|
+
if (value.length <= LOG_VALUE_FULL_MAX) {
|
|
214
|
+
return JSON.stringify(value);
|
|
215
|
+
}
|
|
216
|
+
return JSON.stringify(
|
|
217
|
+
`${value.slice(0, LOG_VALUE_EDGE)}\u2026${value.slice(-LOG_VALUE_EDGE)}`
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
var LOG_ERROR_MAX = 200;
|
|
221
|
+
var LOG_DATA_MAX = 500;
|
|
222
|
+
var LOG_STACK_FRAMES = 2;
|
|
223
|
+
var LOG_FRAME_MAX = 120;
|
|
224
|
+
function bound(text, max) {
|
|
225
|
+
return text.length <= max ? text : `${text.slice(0, max)}\u2026 (${text.length} chars)`;
|
|
226
|
+
}
|
|
227
|
+
function oneLine(text) {
|
|
228
|
+
return JSON.stringify(text).slice(1, -1);
|
|
229
|
+
}
|
|
230
|
+
function describeError(error) {
|
|
231
|
+
if (error instanceof Error) {
|
|
232
|
+
const name = error.name || "Error";
|
|
233
|
+
return bound(oneLine(`${name}: ${error.message}`), LOG_ERROR_MAX);
|
|
234
|
+
}
|
|
235
|
+
return bound(oneLine(String(error)), LOG_ERROR_MAX);
|
|
236
|
+
}
|
|
237
|
+
function describeLogData(data) {
|
|
238
|
+
if (data instanceof Error) {
|
|
239
|
+
const headerLines = String(data.message ?? "").split("\n").length;
|
|
240
|
+
const frames = (data.stack ?? "").split("\n").slice(headerLines).map((frame) => frame.trim()).filter((frame) => frame.startsWith("at ")).slice(0, LOG_STACK_FRAMES).map((frame) => bound(frame, LOG_FRAME_MAX));
|
|
241
|
+
return [describeError(data), ...frames].join(" | ");
|
|
242
|
+
}
|
|
243
|
+
let rendered;
|
|
244
|
+
try {
|
|
245
|
+
rendered = JSON.stringify(data);
|
|
246
|
+
} catch {
|
|
247
|
+
return "[unserializable]";
|
|
248
|
+
}
|
|
249
|
+
return bound(rendered ?? oneLine(String(data)), LOG_DATA_MAX);
|
|
250
|
+
}
|
|
251
|
+
function describeContent(value) {
|
|
252
|
+
return `${contentIdentity(value)}, ${contentExcerpt(value)}`;
|
|
253
|
+
}
|
|
254
|
+
|
|
45
255
|
// src/config/logger.config.ts
|
|
46
256
|
var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
|
|
47
257
|
LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG";
|
|
@@ -169,7 +379,7 @@ var __lionrapidAutoExports = (() => {
|
|
|
169
379
|
const locationInfo2 = callSite ? ` (${callSite.fileName}:${callSite.lineNumber})` : "";
|
|
170
380
|
let logMessage = `${this.config.prefix} ${emoji} ${levelName} ${message}${locationInfo2}`;
|
|
171
381
|
if (data !== void 0) {
|
|
172
|
-
logMessage += ` ${
|
|
382
|
+
logMessage += ` ${describeLogData(data)}`;
|
|
173
383
|
}
|
|
174
384
|
return logMessage;
|
|
175
385
|
}
|
|
@@ -180,7 +390,7 @@ var __lionrapidAutoExports = (() => {
|
|
|
180
390
|
const coloredLevel = `${levelColor}${Colors.BOLD}${levelName}${reset}`;
|
|
181
391
|
const coloredMessage = `${levelColor}${message}${reset}`;
|
|
182
392
|
const locationInfo = callSite ? `${Colors.DIM}${Colors.BRIGHT_BLACK} (${callSite.fileName}:${callSite.lineNumber})${reset}` : "";
|
|
183
|
-
const dataInfo = data !== void 0 ? `${Colors.DIM}${Colors.CYAN} ${
|
|
393
|
+
const dataInfo = data !== void 0 ? `${Colors.DIM}${Colors.CYAN} ${describeLogData(data)}${reset}` : "";
|
|
184
394
|
return `${coloredPrefix} ${coloredEmoji} ${coloredLevel} ${coloredMessage}${locationInfo}${dataInfo}`;
|
|
185
395
|
}
|
|
186
396
|
getLevelColor(level) {
|
|
@@ -2234,6 +2444,15 @@ var __lionrapidAutoExports = (() => {
|
|
|
2234
2444
|
const config = this.repository.getConfig();
|
|
2235
2445
|
return config.options?.preloadNamespaces || [];
|
|
2236
2446
|
}
|
|
2447
|
+
/**
|
|
2448
|
+
* The host this handler talks to. Exposed so a failure can NAME it: "the
|
|
2449
|
+
* server is unreachable" is not actionable, and a default pointing at a dead
|
|
2450
|
+
* host is exactly the case where the reader needs to be told which host.
|
|
2451
|
+
*/
|
|
2452
|
+
getBaseUrl() {
|
|
2453
|
+
const config = this.repository.getConfig();
|
|
2454
|
+
return config.options?.baseUrl || "";
|
|
2455
|
+
}
|
|
2237
2456
|
};
|
|
2238
2457
|
|
|
2239
2458
|
// src/content/canonical-tag.ts
|
|
@@ -3080,7 +3299,9 @@ var __lionrapidAutoExports = (() => {
|
|
|
3080
3299
|
const processedText = this.processTranslationValue(unit.text, request);
|
|
3081
3300
|
return processedText.replace(/<\/?[0-9]+\/?>/g, "");
|
|
3082
3301
|
} catch (error) {
|
|
3083
|
-
logger.warn(
|
|
3302
|
+
logger.warn(
|
|
3303
|
+
`ContentUnit processing failed for key "${request.cleanKey}" \u2014 ${describeContent(value)}: ${describeError(error)}`
|
|
3304
|
+
);
|
|
3084
3305
|
return this.processTranslationValue(value, request);
|
|
3085
3306
|
}
|
|
3086
3307
|
}
|
|
@@ -3133,7 +3354,9 @@ var __lionrapidAutoExports = (() => {
|
|
|
3133
3354
|
}
|
|
3134
3355
|
return processedValue;
|
|
3135
3356
|
} catch (error) {
|
|
3136
|
-
logger.warn(
|
|
3357
|
+
logger.warn(
|
|
3358
|
+
`Translation processing failed for key "${resolvedKey ?? "(no key)"}" \u2014 ${describeContent(value)}: ${describeError(error)}`
|
|
3359
|
+
);
|
|
3137
3360
|
return value;
|
|
3138
3361
|
}
|
|
3139
3362
|
}
|
|
@@ -3850,8 +4073,9 @@ var __lionrapidAutoExports = (() => {
|
|
|
3850
4073
|
const warnLoudlyOnce = (namespaceKey, error) => {
|
|
3851
4074
|
if (!isLoudPreloadFailure(error) || warnedLoudly) return;
|
|
3852
4075
|
warnedLoudly = true;
|
|
4076
|
+
const baseUrl = networkHandler.getBaseUrl() || "(no base URL configured)";
|
|
3853
4077
|
console.warn(
|
|
3854
|
-
`[LionRapid] Could not load translations for ${namespaceKey} \u2014 the page stays untranslated until
|
|
4078
|
+
`[LionRapid] Could not load translations for ${namespaceKey} from ${baseUrl} \u2014 the page stays untranslated until that host is reachable. If it is wrong, set data-base-url on the snippet tag (or \`baseUrl\` in the network repository options).`,
|
|
3855
4079
|
error
|
|
3856
4080
|
);
|
|
3857
4081
|
};
|
|
@@ -3979,7 +4203,7 @@ var __lionrapidAutoExports = (() => {
|
|
|
3979
4203
|
throw new TranslationNotFoundError(key);
|
|
3980
4204
|
}
|
|
3981
4205
|
if (typeof translation === "object" && "text" in translation) {
|
|
3982
|
-
logger.debug(`ContentUnit text:
|
|
4206
|
+
logger.debug(`ContentUnit text: ${describeContent(translation.text)}`);
|
|
3983
4207
|
return translation.text;
|
|
3984
4208
|
}
|
|
3985
4209
|
return String(translation);
|
|
@@ -4014,13 +4238,18 @@ var __lionrapidAutoExports = (() => {
|
|
|
4014
4238
|
throw new TranslationNotFoundError(key);
|
|
4015
4239
|
}
|
|
4016
4240
|
if (typeof translation === "object" && "text" in translation) {
|
|
4017
|
-
logger.debug(
|
|
4241
|
+
logger.debug(
|
|
4242
|
+
`ContentUnit for "${key}": text=${describeContent(translation.text)}, styles=`,
|
|
4243
|
+
translation.styles
|
|
4244
|
+
);
|
|
4018
4245
|
return {
|
|
4019
4246
|
text: translation.text,
|
|
4020
4247
|
styles: translation.styles || {}
|
|
4021
4248
|
};
|
|
4022
4249
|
}
|
|
4023
|
-
logger.debug(
|
|
4250
|
+
logger.debug(
|
|
4251
|
+
`Plain string for "${key}": ${describeContent(String(translation))} (no styles)`
|
|
4252
|
+
);
|
|
4024
4253
|
return {
|
|
4025
4254
|
text: String(translation),
|
|
4026
4255
|
styles: {}
|
|
@@ -4603,167 +4832,6 @@ var __lionrapidAutoExports = (() => {
|
|
|
4603
4832
|
return { text, styles };
|
|
4604
4833
|
}
|
|
4605
4834
|
|
|
4606
|
-
// src/browser/md5.ts
|
|
4607
|
-
function safeAdd(x, y) {
|
|
4608
|
-
const lsw = (x & 65535) + (y & 65535);
|
|
4609
|
-
const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
|
4610
|
-
return msw << 16 | lsw & 65535;
|
|
4611
|
-
}
|
|
4612
|
-
function bitRotateLeft(num, cnt) {
|
|
4613
|
-
return num << cnt | num >>> 32 - cnt;
|
|
4614
|
-
}
|
|
4615
|
-
function md5cmn(q, a, b, x, s, t) {
|
|
4616
|
-
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
|
4617
|
-
}
|
|
4618
|
-
function md5ff(a, b, c, d, x, s, t) {
|
|
4619
|
-
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
|
4620
|
-
}
|
|
4621
|
-
function md5gg(a, b, c, d, x, s, t) {
|
|
4622
|
-
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
|
4623
|
-
}
|
|
4624
|
-
function md5hh(a, b, c, d, x, s, t) {
|
|
4625
|
-
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
|
4626
|
-
}
|
|
4627
|
-
function md5ii(a, b, c, d, x, s, t) {
|
|
4628
|
-
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
|
4629
|
-
}
|
|
4630
|
-
function binlMD5(x, len) {
|
|
4631
|
-
x[len >> 5] |= 128 << len % 32;
|
|
4632
|
-
x[(len + 64 >>> 9 << 4) + 14] = len;
|
|
4633
|
-
let a = 1732584193;
|
|
4634
|
-
let b = -271733879;
|
|
4635
|
-
let c = -1732584194;
|
|
4636
|
-
let d = 271733878;
|
|
4637
|
-
for (let i = 0; i < x.length; i += 16) {
|
|
4638
|
-
const olda = a;
|
|
4639
|
-
const oldb = b;
|
|
4640
|
-
const oldc = c;
|
|
4641
|
-
const oldd = d;
|
|
4642
|
-
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
|
4643
|
-
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
|
4644
|
-
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
|
4645
|
-
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
|
4646
|
-
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
|
4647
|
-
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
|
4648
|
-
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
|
4649
|
-
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
|
4650
|
-
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
|
4651
|
-
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
|
4652
|
-
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
|
4653
|
-
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
|
4654
|
-
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
|
4655
|
-
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
|
4656
|
-
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
|
4657
|
-
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
|
4658
|
-
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
|
4659
|
-
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
|
4660
|
-
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
|
4661
|
-
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
|
4662
|
-
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
|
4663
|
-
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
|
4664
|
-
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
|
4665
|
-
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
|
4666
|
-
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
|
4667
|
-
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
|
4668
|
-
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
|
4669
|
-
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
|
4670
|
-
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
|
4671
|
-
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
|
4672
|
-
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
|
4673
|
-
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
|
4674
|
-
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
|
4675
|
-
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
|
4676
|
-
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
|
4677
|
-
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
|
4678
|
-
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
|
4679
|
-
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
|
4680
|
-
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
|
4681
|
-
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
|
4682
|
-
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
|
4683
|
-
d = md5hh(d, a, b, c, x[i + 0], 11, -358537222);
|
|
4684
|
-
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
|
4685
|
-
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
|
4686
|
-
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
|
4687
|
-
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
|
4688
|
-
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
|
4689
|
-
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
|
4690
|
-
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
|
4691
|
-
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
|
4692
|
-
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
|
4693
|
-
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
|
4694
|
-
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
|
4695
|
-
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
|
4696
|
-
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
|
4697
|
-
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
|
4698
|
-
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
|
4699
|
-
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
|
4700
|
-
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
|
4701
|
-
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
|
4702
|
-
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
|
4703
|
-
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
|
4704
|
-
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
|
4705
|
-
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
|
4706
|
-
a = safeAdd(a, olda);
|
|
4707
|
-
b = safeAdd(b, oldb);
|
|
4708
|
-
c = safeAdd(c, oldc);
|
|
4709
|
-
d = safeAdd(d, oldd);
|
|
4710
|
-
}
|
|
4711
|
-
return [a, b, c, d];
|
|
4712
|
-
}
|
|
4713
|
-
function binl2hex(binarray) {
|
|
4714
|
-
const hexTab = "0123456789abcdef";
|
|
4715
|
-
let str = "";
|
|
4716
|
-
for (let i = 0; i < binarray.length * 4; i++) {
|
|
4717
|
-
str += hexTab.charAt(binarray[i >> 2] >> i % 4 * 8 + 4 & 15) + hexTab.charAt(binarray[i >> 2] >> i % 4 * 8 & 15);
|
|
4718
|
-
}
|
|
4719
|
-
return str;
|
|
4720
|
-
}
|
|
4721
|
-
function utf8Bytes(str) {
|
|
4722
|
-
if (typeof TextEncoder !== "undefined") {
|
|
4723
|
-
return new TextEncoder().encode(str);
|
|
4724
|
-
}
|
|
4725
|
-
const out = [];
|
|
4726
|
-
for (let i = 0; i < str.length; i++) {
|
|
4727
|
-
const c = str.charCodeAt(i);
|
|
4728
|
-
if (c < 128) {
|
|
4729
|
-
out.push(c);
|
|
4730
|
-
} else if (c < 2048) {
|
|
4731
|
-
out.push(192 | c >> 6, 128 | c & 63);
|
|
4732
|
-
} else if (c >= 55296 && c < 56320 && i + 1 < str.length) {
|
|
4733
|
-
const c2 = str.charCodeAt(++i);
|
|
4734
|
-
const cp = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
4735
|
-
out.push(
|
|
4736
|
-
240 | cp >> 18,
|
|
4737
|
-
128 | cp >> 12 & 63,
|
|
4738
|
-
128 | cp >> 6 & 63,
|
|
4739
|
-
128 | cp & 63
|
|
4740
|
-
);
|
|
4741
|
-
} else {
|
|
4742
|
-
out.push(
|
|
4743
|
-
224 | c >> 12,
|
|
4744
|
-
128 | c >> 6 & 63,
|
|
4745
|
-
128 | c & 63
|
|
4746
|
-
);
|
|
4747
|
-
}
|
|
4748
|
-
}
|
|
4749
|
-
return new Uint8Array(out);
|
|
4750
|
-
}
|
|
4751
|
-
function bytes2binl(bytes) {
|
|
4752
|
-
const bin = [];
|
|
4753
|
-
for (let i = 0; i < bytes.length; i++) {
|
|
4754
|
-
bin[i >> 2] |= bytes[i] << i % 4 * 8;
|
|
4755
|
-
}
|
|
4756
|
-
return bin;
|
|
4757
|
-
}
|
|
4758
|
-
function md5(str) {
|
|
4759
|
-
const bytes = utf8Bytes(str);
|
|
4760
|
-
return binl2hex(binlMD5(bytes2binl(bytes), bytes.length * 8));
|
|
4761
|
-
}
|
|
4762
|
-
function generateAutoKey(text) {
|
|
4763
|
-
const trimmed = text.trim();
|
|
4764
|
-
return "auto_" + md5(trimmed).substring(0, 12);
|
|
4765
|
-
}
|
|
4766
|
-
|
|
4767
4835
|
// src/browser/block-extractor.ts
|
|
4768
4836
|
var BLOCK_SELECTOR = "p,h1,h2,h3,h4,h5,h6,li,td,th,label,button,figcaption,dt,dd,summary,caption";
|
|
4769
4837
|
var INLINE_BLOCK_SELECTOR = "a";
|
|
@@ -6254,6 +6322,9 @@ var __lionrapidAutoExports = (() => {
|
|
|
6254
6322
|
}
|
|
6255
6323
|
};
|
|
6256
6324
|
|
|
6325
|
+
// src/config/api.config.ts
|
|
6326
|
+
var DEFAULT_API_BASE_URL = "https://app.lionrapid.com";
|
|
6327
|
+
|
|
6257
6328
|
// src/browser/auto-init.ts
|
|
6258
6329
|
function resolveWritePolicy(apiKey) {
|
|
6259
6330
|
const isPublishable = apiKey.startsWith("pk_");
|
|
@@ -6302,7 +6373,7 @@ var __lionrapidAutoExports = (() => {
|
|
|
6302
6373
|
}
|
|
6303
6374
|
function parseConfig(script) {
|
|
6304
6375
|
const apiKey = script.dataset.apiKey || "";
|
|
6305
|
-
const baseUrl = script.dataset.baseUrl ||
|
|
6376
|
+
const baseUrl = script.dataset.baseUrl || DEFAULT_API_BASE_URL;
|
|
6306
6377
|
const defaultLocale = script.dataset.defaultLocale || "en";
|
|
6307
6378
|
const namespace = script.dataset.namespace || "default";
|
|
6308
6379
|
const languages = (script.dataset.languages || defaultLocale).split(",").map((s) => s.trim()).filter(Boolean);
|