@lionrapid/core 0.6.4 → 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 +4 -2
- 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 +314 -179
- package/dist/browser/lionrapid.auto.dev.js.map +3 -3
- package/dist/browser/lionrapid.auto.js +314 -179
- 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 +318 -178
- 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 +318 -178
- package/dist/browser/lionrapid.iife.dev.js.map +3 -3
- package/dist/browser/lionrapid.iife.js +318 -178
- 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 +318 -178
- 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/browser/storage/cache-names.d.ts +51 -0
- package/dist/browser/storage/cache-names.d.ts.map +1 -0
- package/dist/browser/storage/cache-names.js +51 -0
- package/dist/browser/storage/cache-names.js.map +1 -0
- package/dist/browser/storage/cache-storage-repository.d.ts.map +1 -1
- package/dist/browser/storage/cache-storage-repository.js +6 -2
- package/dist/browser/storage/cache-storage-repository.js.map +1 -1
- 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 +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -5
- 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/locale.d.ts +50 -7
- package/dist/utils/locale.d.ts.map +1 -1
- package/dist/utils/locale.js +83 -15
- package/dist/utils/locale.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 +7 -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) {
|
|
@@ -358,6 +568,65 @@ var __lionrapidAutoExports = (() => {
|
|
|
358
568
|
}
|
|
359
569
|
return out.join("-");
|
|
360
570
|
}
|
|
571
|
+
var ISO639_2_TO_1 = Object.freeze({
|
|
572
|
+
ara: "ar",
|
|
573
|
+
ben: "bn",
|
|
574
|
+
bul: "bg",
|
|
575
|
+
ces: "cs",
|
|
576
|
+
cmn: "zh",
|
|
577
|
+
dan: "da",
|
|
578
|
+
deu: "de",
|
|
579
|
+
ell: "el",
|
|
580
|
+
eng: "en",
|
|
581
|
+
est: "et",
|
|
582
|
+
fas: "fa",
|
|
583
|
+
fin: "fi",
|
|
584
|
+
fra: "fr",
|
|
585
|
+
heb: "he",
|
|
586
|
+
hin: "hi",
|
|
587
|
+
hrv: "hr",
|
|
588
|
+
hun: "hu",
|
|
589
|
+
ind: "id",
|
|
590
|
+
isl: "is",
|
|
591
|
+
ita: "it",
|
|
592
|
+
jpn: "ja",
|
|
593
|
+
kor: "ko",
|
|
594
|
+
lav: "lv",
|
|
595
|
+
lit: "lt",
|
|
596
|
+
msa: "ms",
|
|
597
|
+
nld: "nl",
|
|
598
|
+
nor: "no",
|
|
599
|
+
pol: "pl",
|
|
600
|
+
por: "pt",
|
|
601
|
+
ron: "ro",
|
|
602
|
+
rus: "ru",
|
|
603
|
+
slk: "sk",
|
|
604
|
+
slv: "sl",
|
|
605
|
+
spa: "es",
|
|
606
|
+
srp: "sr",
|
|
607
|
+
swe: "sv",
|
|
608
|
+
tha: "th",
|
|
609
|
+
tur: "tr",
|
|
610
|
+
ukr: "uk",
|
|
611
|
+
urd: "ur",
|
|
612
|
+
vie: "vi",
|
|
613
|
+
yid: "yi",
|
|
614
|
+
zho: "zh"
|
|
615
|
+
});
|
|
616
|
+
function localeCandidates(tag) {
|
|
617
|
+
const normalized = tag.trim().toLowerCase();
|
|
618
|
+
if (!normalized) return [];
|
|
619
|
+
const parts = normalized.split("-");
|
|
620
|
+
const out = [];
|
|
621
|
+
while (parts.length > 0) {
|
|
622
|
+
const candidate = parts.join("-");
|
|
623
|
+
if (!out.includes(candidate)) out.push(candidate);
|
|
624
|
+
const twoLetter = ISO639_2_TO_1[candidate];
|
|
625
|
+
if (twoLetter && !out.includes(twoLetter)) out.push(twoLetter);
|
|
626
|
+
parts.pop();
|
|
627
|
+
}
|
|
628
|
+
return out;
|
|
629
|
+
}
|
|
361
630
|
function matchLocale(requested, available, fallback) {
|
|
362
631
|
if (available.length === 0) return fallback;
|
|
363
632
|
const avail = available.map((raw) => ({
|
|
@@ -366,12 +635,10 @@ var __lionrapidAutoExports = (() => {
|
|
|
366
635
|
}));
|
|
367
636
|
for (const req of requested) {
|
|
368
637
|
if (!req) continue;
|
|
369
|
-
const
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
const byPrimary = avail.find((a) => a.lower === primary);
|
|
374
|
-
if (byPrimary) return byPrimary.raw;
|
|
638
|
+
for (const candidate of localeCandidates(req)) {
|
|
639
|
+
const hit = avail.find((a) => a.lower === candidate);
|
|
640
|
+
if (hit) return hit.raw;
|
|
641
|
+
}
|
|
375
642
|
}
|
|
376
643
|
return fallback;
|
|
377
644
|
}
|
|
@@ -2177,6 +2444,15 @@ var __lionrapidAutoExports = (() => {
|
|
|
2177
2444
|
const config = this.repository.getConfig();
|
|
2178
2445
|
return config.options?.preloadNamespaces || [];
|
|
2179
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
|
+
}
|
|
2180
2456
|
};
|
|
2181
2457
|
|
|
2182
2458
|
// src/content/canonical-tag.ts
|
|
@@ -3023,7 +3299,9 @@ var __lionrapidAutoExports = (() => {
|
|
|
3023
3299
|
const processedText = this.processTranslationValue(unit.text, request);
|
|
3024
3300
|
return processedText.replace(/<\/?[0-9]+\/?>/g, "");
|
|
3025
3301
|
} catch (error) {
|
|
3026
|
-
logger.warn(
|
|
3302
|
+
logger.warn(
|
|
3303
|
+
`ContentUnit processing failed for key "${request.cleanKey}" \u2014 ${describeContent(value)}: ${describeError(error)}`
|
|
3304
|
+
);
|
|
3027
3305
|
return this.processTranslationValue(value, request);
|
|
3028
3306
|
}
|
|
3029
3307
|
}
|
|
@@ -3076,7 +3354,9 @@ var __lionrapidAutoExports = (() => {
|
|
|
3076
3354
|
}
|
|
3077
3355
|
return processedValue;
|
|
3078
3356
|
} catch (error) {
|
|
3079
|
-
logger.warn(
|
|
3357
|
+
logger.warn(
|
|
3358
|
+
`Translation processing failed for key "${resolvedKey ?? "(no key)"}" \u2014 ${describeContent(value)}: ${describeError(error)}`
|
|
3359
|
+
);
|
|
3080
3360
|
return value;
|
|
3081
3361
|
}
|
|
3082
3362
|
}
|
|
@@ -3793,8 +4073,9 @@ var __lionrapidAutoExports = (() => {
|
|
|
3793
4073
|
const warnLoudlyOnce = (namespaceKey, error) => {
|
|
3794
4074
|
if (!isLoudPreloadFailure(error) || warnedLoudly) return;
|
|
3795
4075
|
warnedLoudly = true;
|
|
4076
|
+
const baseUrl = networkHandler.getBaseUrl() || "(no base URL configured)";
|
|
3796
4077
|
console.warn(
|
|
3797
|
-
`[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).`,
|
|
3798
4079
|
error
|
|
3799
4080
|
);
|
|
3800
4081
|
};
|
|
@@ -3922,7 +4203,7 @@ var __lionrapidAutoExports = (() => {
|
|
|
3922
4203
|
throw new TranslationNotFoundError(key);
|
|
3923
4204
|
}
|
|
3924
4205
|
if (typeof translation === "object" && "text" in translation) {
|
|
3925
|
-
logger.debug(`ContentUnit text:
|
|
4206
|
+
logger.debug(`ContentUnit text: ${describeContent(translation.text)}`);
|
|
3926
4207
|
return translation.text;
|
|
3927
4208
|
}
|
|
3928
4209
|
return String(translation);
|
|
@@ -3957,13 +4238,18 @@ var __lionrapidAutoExports = (() => {
|
|
|
3957
4238
|
throw new TranslationNotFoundError(key);
|
|
3958
4239
|
}
|
|
3959
4240
|
if (typeof translation === "object" && "text" in translation) {
|
|
3960
|
-
logger.debug(
|
|
4241
|
+
logger.debug(
|
|
4242
|
+
`ContentUnit for "${key}": text=${describeContent(translation.text)}, styles=`,
|
|
4243
|
+
translation.styles
|
|
4244
|
+
);
|
|
3961
4245
|
return {
|
|
3962
4246
|
text: translation.text,
|
|
3963
4247
|
styles: translation.styles || {}
|
|
3964
4248
|
};
|
|
3965
4249
|
}
|
|
3966
|
-
logger.debug(
|
|
4250
|
+
logger.debug(
|
|
4251
|
+
`Plain string for "${key}": ${describeContent(String(translation))} (no styles)`
|
|
4252
|
+
);
|
|
3967
4253
|
return {
|
|
3968
4254
|
text: String(translation),
|
|
3969
4255
|
styles: {}
|
|
@@ -4546,167 +4832,6 @@ var __lionrapidAutoExports = (() => {
|
|
|
4546
4832
|
return { text, styles };
|
|
4547
4833
|
}
|
|
4548
4834
|
|
|
4549
|
-
// src/browser/md5.ts
|
|
4550
|
-
function safeAdd(x, y) {
|
|
4551
|
-
const lsw = (x & 65535) + (y & 65535);
|
|
4552
|
-
const msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
|
4553
|
-
return msw << 16 | lsw & 65535;
|
|
4554
|
-
}
|
|
4555
|
-
function bitRotateLeft(num, cnt) {
|
|
4556
|
-
return num << cnt | num >>> 32 - cnt;
|
|
4557
|
-
}
|
|
4558
|
-
function md5cmn(q, a, b, x, s, t) {
|
|
4559
|
-
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
|
4560
|
-
}
|
|
4561
|
-
function md5ff(a, b, c, d, x, s, t) {
|
|
4562
|
-
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
|
4563
|
-
}
|
|
4564
|
-
function md5gg(a, b, c, d, x, s, t) {
|
|
4565
|
-
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
|
4566
|
-
}
|
|
4567
|
-
function md5hh(a, b, c, d, x, s, t) {
|
|
4568
|
-
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
|
4569
|
-
}
|
|
4570
|
-
function md5ii(a, b, c, d, x, s, t) {
|
|
4571
|
-
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
|
4572
|
-
}
|
|
4573
|
-
function binlMD5(x, len) {
|
|
4574
|
-
x[len >> 5] |= 128 << len % 32;
|
|
4575
|
-
x[(len + 64 >>> 9 << 4) + 14] = len;
|
|
4576
|
-
let a = 1732584193;
|
|
4577
|
-
let b = -271733879;
|
|
4578
|
-
let c = -1732584194;
|
|
4579
|
-
let d = 271733878;
|
|
4580
|
-
for (let i = 0; i < x.length; i += 16) {
|
|
4581
|
-
const olda = a;
|
|
4582
|
-
const oldb = b;
|
|
4583
|
-
const oldc = c;
|
|
4584
|
-
const oldd = d;
|
|
4585
|
-
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
|
4586
|
-
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
|
4587
|
-
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
|
4588
|
-
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
|
4589
|
-
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
|
4590
|
-
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
|
4591
|
-
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
|
4592
|
-
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
|
4593
|
-
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
|
4594
|
-
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
|
4595
|
-
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
|
4596
|
-
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
|
4597
|
-
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
|
4598
|
-
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
|
4599
|
-
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
|
4600
|
-
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
|
4601
|
-
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
|
4602
|
-
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
|
4603
|
-
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
|
4604
|
-
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
|
4605
|
-
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
|
4606
|
-
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
|
4607
|
-
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
|
4608
|
-
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
|
4609
|
-
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
|
4610
|
-
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
|
4611
|
-
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
|
4612
|
-
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
|
4613
|
-
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
|
4614
|
-
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
|
4615
|
-
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
|
4616
|
-
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
|
4617
|
-
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
|
4618
|
-
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
|
4619
|
-
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
|
4620
|
-
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
|
4621
|
-
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
|
4622
|
-
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
|
4623
|
-
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
|
4624
|
-
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
|
4625
|
-
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
|
4626
|
-
d = md5hh(d, a, b, c, x[i + 0], 11, -358537222);
|
|
4627
|
-
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
|
4628
|
-
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
|
4629
|
-
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
|
4630
|
-
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
|
4631
|
-
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
|
4632
|
-
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
|
4633
|
-
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
|
4634
|
-
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
|
4635
|
-
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
|
4636
|
-
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
|
4637
|
-
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
|
4638
|
-
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
|
4639
|
-
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
|
4640
|
-
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
|
4641
|
-
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
|
4642
|
-
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
|
4643
|
-
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
|
4644
|
-
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
|
4645
|
-
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
|
4646
|
-
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
|
4647
|
-
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
|
4648
|
-
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
|
4649
|
-
a = safeAdd(a, olda);
|
|
4650
|
-
b = safeAdd(b, oldb);
|
|
4651
|
-
c = safeAdd(c, oldc);
|
|
4652
|
-
d = safeAdd(d, oldd);
|
|
4653
|
-
}
|
|
4654
|
-
return [a, b, c, d];
|
|
4655
|
-
}
|
|
4656
|
-
function binl2hex(binarray) {
|
|
4657
|
-
const hexTab = "0123456789abcdef";
|
|
4658
|
-
let str = "";
|
|
4659
|
-
for (let i = 0; i < binarray.length * 4; i++) {
|
|
4660
|
-
str += hexTab.charAt(binarray[i >> 2] >> i % 4 * 8 + 4 & 15) + hexTab.charAt(binarray[i >> 2] >> i % 4 * 8 & 15);
|
|
4661
|
-
}
|
|
4662
|
-
return str;
|
|
4663
|
-
}
|
|
4664
|
-
function utf8Bytes(str) {
|
|
4665
|
-
if (typeof TextEncoder !== "undefined") {
|
|
4666
|
-
return new TextEncoder().encode(str);
|
|
4667
|
-
}
|
|
4668
|
-
const out = [];
|
|
4669
|
-
for (let i = 0; i < str.length; i++) {
|
|
4670
|
-
const c = str.charCodeAt(i);
|
|
4671
|
-
if (c < 128) {
|
|
4672
|
-
out.push(c);
|
|
4673
|
-
} else if (c < 2048) {
|
|
4674
|
-
out.push(192 | c >> 6, 128 | c & 63);
|
|
4675
|
-
} else if (c >= 55296 && c < 56320 && i + 1 < str.length) {
|
|
4676
|
-
const c2 = str.charCodeAt(++i);
|
|
4677
|
-
const cp = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
4678
|
-
out.push(
|
|
4679
|
-
240 | cp >> 18,
|
|
4680
|
-
128 | cp >> 12 & 63,
|
|
4681
|
-
128 | cp >> 6 & 63,
|
|
4682
|
-
128 | cp & 63
|
|
4683
|
-
);
|
|
4684
|
-
} else {
|
|
4685
|
-
out.push(
|
|
4686
|
-
224 | c >> 12,
|
|
4687
|
-
128 | c >> 6 & 63,
|
|
4688
|
-
128 | c & 63
|
|
4689
|
-
);
|
|
4690
|
-
}
|
|
4691
|
-
}
|
|
4692
|
-
return new Uint8Array(out);
|
|
4693
|
-
}
|
|
4694
|
-
function bytes2binl(bytes) {
|
|
4695
|
-
const bin = [];
|
|
4696
|
-
for (let i = 0; i < bytes.length; i++) {
|
|
4697
|
-
bin[i >> 2] |= bytes[i] << i % 4 * 8;
|
|
4698
|
-
}
|
|
4699
|
-
return bin;
|
|
4700
|
-
}
|
|
4701
|
-
function md5(str) {
|
|
4702
|
-
const bytes = utf8Bytes(str);
|
|
4703
|
-
return binl2hex(binlMD5(bytes2binl(bytes), bytes.length * 8));
|
|
4704
|
-
}
|
|
4705
|
-
function generateAutoKey(text) {
|
|
4706
|
-
const trimmed = text.trim();
|
|
4707
|
-
return "auto_" + md5(trimmed).substring(0, 12);
|
|
4708
|
-
}
|
|
4709
|
-
|
|
4710
4835
|
// src/browser/block-extractor.ts
|
|
4711
4836
|
var BLOCK_SELECTOR = "p,h1,h2,h3,h4,h5,h6,li,td,th,label,button,figcaption,dt,dd,summary,caption";
|
|
4712
4837
|
var INLINE_BLOCK_SELECTOR = "a";
|
|
@@ -5988,9 +6113,16 @@ var __lionrapidAutoExports = (() => {
|
|
|
5988
6113
|
}
|
|
5989
6114
|
};
|
|
5990
6115
|
|
|
6116
|
+
// src/browser/storage/cache-names.ts
|
|
6117
|
+
var CORE_CACHE_NAMES = Object.freeze({
|
|
6118
|
+
translations: "lionrapid-v1",
|
|
6119
|
+
offlineFloor: "lionrapid-offline-v1"
|
|
6120
|
+
});
|
|
6121
|
+
var CORE_CACHE_ENTRY_PREFIX = "https://cache.lionrapid.internal/";
|
|
6122
|
+
|
|
5991
6123
|
// src/browser/storage/cache-storage-repository.ts
|
|
5992
|
-
var CACHE_NAME =
|
|
5993
|
-
var CACHE_PREFIX =
|
|
6124
|
+
var CACHE_NAME = CORE_CACHE_NAMES.translations;
|
|
6125
|
+
var CACHE_PREFIX = CORE_CACHE_ENTRY_PREFIX;
|
|
5994
6126
|
var CacheStorageRepository = class {
|
|
5995
6127
|
constructor(config = {}) {
|
|
5996
6128
|
__publicField(this, "name", "CacheStorageRepository");
|
|
@@ -6190,6 +6322,9 @@ var __lionrapidAutoExports = (() => {
|
|
|
6190
6322
|
}
|
|
6191
6323
|
};
|
|
6192
6324
|
|
|
6325
|
+
// src/config/api.config.ts
|
|
6326
|
+
var DEFAULT_API_BASE_URL = "https://app.lionrapid.com";
|
|
6327
|
+
|
|
6193
6328
|
// src/browser/auto-init.ts
|
|
6194
6329
|
function resolveWritePolicy(apiKey) {
|
|
6195
6330
|
const isPublishable = apiKey.startsWith("pk_");
|
|
@@ -6238,7 +6373,7 @@ var __lionrapidAutoExports = (() => {
|
|
|
6238
6373
|
}
|
|
6239
6374
|
function parseConfig(script) {
|
|
6240
6375
|
const apiKey = script.dataset.apiKey || "";
|
|
6241
|
-
const baseUrl = script.dataset.baseUrl ||
|
|
6376
|
+
const baseUrl = script.dataset.baseUrl || DEFAULT_API_BASE_URL;
|
|
6242
6377
|
const defaultLocale = script.dataset.defaultLocale || "en";
|
|
6243
6378
|
const namespace = script.dataset.namespace || "default";
|
|
6244
6379
|
const languages = (script.dataset.languages || defaultLocale).split(",").map((s) => s.trim()).filter(Boolean);
|
|
@@ -6396,7 +6531,7 @@ var __lionrapidAutoExports = (() => {
|
|
|
6396
6531
|
enabled: true,
|
|
6397
6532
|
options: {
|
|
6398
6533
|
ttl: Number.MAX_SAFE_INTEGER,
|
|
6399
|
-
cacheName:
|
|
6534
|
+
cacheName: CORE_CACHE_NAMES.offlineFloor
|
|
6400
6535
|
}
|
|
6401
6536
|
})
|
|
6402
6537
|
);
|