@lionrapid/core 0.6.3 → 0.6.5
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/dist/browser/attribute-extractor.d.ts.map +1 -1
- package/dist/browser/attribute-extractor.js +17 -1
- package/dist/browser/attribute-extractor.js.map +1 -1
- package/dist/browser/auto-init.d.ts +1 -1
- package/dist/browser/auto-init.d.ts.map +1 -1
- package/dist/browser/auto-init.js +3 -2
- package/dist/browser/auto-init.js.map +1 -1
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/lionrapid.auto.dev.js +87 -9
- package/dist/browser/lionrapid.auto.dev.js.map +3 -3
- package/dist/browser/lionrapid.auto.js +87 -9
- package/dist/browser/lionrapid.auto.js.map +3 -3
- package/dist/browser/lionrapid.auto.min.js +4 -4
- package/dist/browser/lionrapid.auto.min.js.map +4 -4
- package/dist/browser/lionrapid.esm.js +77 -9
- package/dist/browser/lionrapid.esm.js.map +3 -3
- package/dist/browser/lionrapid.esm.min.js +3 -3
- package/dist/browser/lionrapid.esm.min.js.map +4 -4
- package/dist/browser/lionrapid.iife.dev.js +77 -9
- package/dist/browser/lionrapid.iife.dev.js.map +3 -3
- package/dist/browser/lionrapid.iife.js +77 -9
- package/dist/browser/lionrapid.iife.js.map +3 -3
- package/dist/browser/lionrapid.iife.min.js +3 -3
- package/dist/browser/lionrapid.iife.min.js.map +4 -4
- package/dist/browser/lionrapid.umd.js +77 -9
- package/dist/browser/lionrapid.umd.js.map +3 -3
- package/dist/browser/lionrapid.umd.min.js +3 -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/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.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/package.json +2 -1
|
@@ -358,6 +358,65 @@ var __lionrapidAutoExports = (() => {
|
|
|
358
358
|
}
|
|
359
359
|
return out.join("-");
|
|
360
360
|
}
|
|
361
|
+
var ISO639_2_TO_1 = Object.freeze({
|
|
362
|
+
ara: "ar",
|
|
363
|
+
ben: "bn",
|
|
364
|
+
bul: "bg",
|
|
365
|
+
ces: "cs",
|
|
366
|
+
cmn: "zh",
|
|
367
|
+
dan: "da",
|
|
368
|
+
deu: "de",
|
|
369
|
+
ell: "el",
|
|
370
|
+
eng: "en",
|
|
371
|
+
est: "et",
|
|
372
|
+
fas: "fa",
|
|
373
|
+
fin: "fi",
|
|
374
|
+
fra: "fr",
|
|
375
|
+
heb: "he",
|
|
376
|
+
hin: "hi",
|
|
377
|
+
hrv: "hr",
|
|
378
|
+
hun: "hu",
|
|
379
|
+
ind: "id",
|
|
380
|
+
isl: "is",
|
|
381
|
+
ita: "it",
|
|
382
|
+
jpn: "ja",
|
|
383
|
+
kor: "ko",
|
|
384
|
+
lav: "lv",
|
|
385
|
+
lit: "lt",
|
|
386
|
+
msa: "ms",
|
|
387
|
+
nld: "nl",
|
|
388
|
+
nor: "no",
|
|
389
|
+
pol: "pl",
|
|
390
|
+
por: "pt",
|
|
391
|
+
ron: "ro",
|
|
392
|
+
rus: "ru",
|
|
393
|
+
slk: "sk",
|
|
394
|
+
slv: "sl",
|
|
395
|
+
spa: "es",
|
|
396
|
+
srp: "sr",
|
|
397
|
+
swe: "sv",
|
|
398
|
+
tha: "th",
|
|
399
|
+
tur: "tr",
|
|
400
|
+
ukr: "uk",
|
|
401
|
+
urd: "ur",
|
|
402
|
+
vie: "vi",
|
|
403
|
+
yid: "yi",
|
|
404
|
+
zho: "zh"
|
|
405
|
+
});
|
|
406
|
+
function localeCandidates(tag) {
|
|
407
|
+
const normalized = tag.trim().toLowerCase();
|
|
408
|
+
if (!normalized) return [];
|
|
409
|
+
const parts = normalized.split("-");
|
|
410
|
+
const out = [];
|
|
411
|
+
while (parts.length > 0) {
|
|
412
|
+
const candidate = parts.join("-");
|
|
413
|
+
if (!out.includes(candidate)) out.push(candidate);
|
|
414
|
+
const twoLetter = ISO639_2_TO_1[candidate];
|
|
415
|
+
if (twoLetter && !out.includes(twoLetter)) out.push(twoLetter);
|
|
416
|
+
parts.pop();
|
|
417
|
+
}
|
|
418
|
+
return out;
|
|
419
|
+
}
|
|
361
420
|
function matchLocale(requested, available, fallback) {
|
|
362
421
|
if (available.length === 0) return fallback;
|
|
363
422
|
const avail = available.map((raw) => ({
|
|
@@ -366,12 +425,10 @@ var __lionrapidAutoExports = (() => {
|
|
|
366
425
|
}));
|
|
367
426
|
for (const req of requested) {
|
|
368
427
|
if (!req) continue;
|
|
369
|
-
const
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
const byPrimary = avail.find((a) => a.lower === primary);
|
|
374
|
-
if (byPrimary) return byPrimary.raw;
|
|
428
|
+
for (const candidate of localeCandidates(req)) {
|
|
429
|
+
const hit = avail.find((a) => a.lower === candidate);
|
|
430
|
+
if (hit) return hit.raw;
|
|
431
|
+
}
|
|
375
432
|
}
|
|
376
433
|
return fallback;
|
|
377
434
|
}
|
|
@@ -4893,6 +4950,20 @@ var __lionrapidAutoExports = (() => {
|
|
|
4893
4950
|
{ selector: "[title]", attr: "title", type: "title" },
|
|
4894
4951
|
{ selector: "input[placeholder], textarea[placeholder]", attr: "placeholder", type: "placeholder" },
|
|
4895
4952
|
{ selector: 'meta[name="description"][content]', attr: "content", type: "meta-description" },
|
|
4953
|
+
// Social preview text. Without these no auto_ key is ever generated for
|
|
4954
|
+
// them, so a fully translated page still shares to Slack or LinkedIn with
|
|
4955
|
+
// an English card. Both spellings: OG specifies `property`, Twitter cards
|
|
4956
|
+
// conventionally use `name`, and real pages mix the two freely.
|
|
4957
|
+
{
|
|
4958
|
+
selector: 'meta[property="og:title"][content], meta[name="og:title"][content], meta[property="twitter:title"][content], meta[name="twitter:title"][content]',
|
|
4959
|
+
attr: "content",
|
|
4960
|
+
type: "title"
|
|
4961
|
+
},
|
|
4962
|
+
{
|
|
4963
|
+
selector: 'meta[property="og:description"][content], meta[name="og:description"][content], meta[property="twitter:description"][content], meta[name="twitter:description"][content]',
|
|
4964
|
+
attr: "content",
|
|
4965
|
+
type: "meta-description"
|
|
4966
|
+
},
|
|
4896
4967
|
{
|
|
4897
4968
|
selector: 'input[type="submit"][value], input[type="button"][value], input[type="reset"][value]',
|
|
4898
4969
|
attr: "value",
|
|
@@ -5974,9 +6045,16 @@ var __lionrapidAutoExports = (() => {
|
|
|
5974
6045
|
}
|
|
5975
6046
|
};
|
|
5976
6047
|
|
|
6048
|
+
// src/browser/storage/cache-names.ts
|
|
6049
|
+
var CORE_CACHE_NAMES = Object.freeze({
|
|
6050
|
+
translations: "lionrapid-v1",
|
|
6051
|
+
offlineFloor: "lionrapid-offline-v1"
|
|
6052
|
+
});
|
|
6053
|
+
var CORE_CACHE_ENTRY_PREFIX = "https://cache.lionrapid.internal/";
|
|
6054
|
+
|
|
5977
6055
|
// src/browser/storage/cache-storage-repository.ts
|
|
5978
|
-
var CACHE_NAME =
|
|
5979
|
-
var CACHE_PREFIX =
|
|
6056
|
+
var CACHE_NAME = CORE_CACHE_NAMES.translations;
|
|
6057
|
+
var CACHE_PREFIX = CORE_CACHE_ENTRY_PREFIX;
|
|
5980
6058
|
var CacheStorageRepository = class {
|
|
5981
6059
|
constructor(config = {}) {
|
|
5982
6060
|
__publicField(this, "name", "CacheStorageRepository");
|
|
@@ -6382,7 +6460,7 @@ var __lionrapidAutoExports = (() => {
|
|
|
6382
6460
|
enabled: true,
|
|
6383
6461
|
options: {
|
|
6384
6462
|
ttl: Number.MAX_SAFE_INTEGER,
|
|
6385
|
-
cacheName:
|
|
6463
|
+
cacheName: CORE_CACHE_NAMES.offlineFloor
|
|
6386
6464
|
}
|
|
6387
6465
|
})
|
|
6388
6466
|
);
|