@lionrapid/core 0.5.0 → 0.6.0
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/base/event-emitter.d.ts.map +1 -1
- package/dist/base/event-emitter.js +2 -1
- package/dist/base/event-emitter.js.map +1 -1
- package/dist/browser/attribute-extractor.d.ts.map +1 -1
- package/dist/browser/attribute-extractor.js +2 -1
- package/dist/browser/attribute-extractor.js.map +1 -1
- package/dist/browser/auto-init.d.ts +64 -0
- package/dist/browser/auto-init.d.ts.map +1 -1
- package/dist/browser/auto-init.js +171 -59
- package/dist/browser/auto-init.js.map +1 -1
- package/dist/browser/block-extractor.d.ts.map +1 -1
- package/dist/browser/block-extractor.js +3 -1
- package/dist/browser/block-extractor.js.map +1 -1
- package/dist/browser/editor/editor-api.d.ts +50 -6
- package/dist/browser/editor/editor-api.d.ts.map +1 -1
- package/dist/browser/editor/editor-api.js +121 -19
- package/dist/browser/editor/editor-api.js.map +1 -1
- package/dist/browser/editor/editor-init.js +4 -1
- package/dist/browser/editor/editor-init.js.map +1 -1
- package/dist/browser/editor/sidebar.d.ts +4 -3
- package/dist/browser/editor/sidebar.d.ts.map +1 -1
- package/dist/browser/editor/sidebar.js +93 -27
- package/dist/browser/editor/sidebar.js.map +1 -1
- package/dist/browser/editor/snapshot-viewer.d.ts.map +1 -1
- package/dist/browser/editor/snapshot-viewer.js +32 -3
- package/dist/browser/editor/snapshot-viewer.js.map +1 -1
- package/dist/browser/lionrapid.auto.dev.js +424 -147
- package/dist/browser/lionrapid.auto.dev.js.map +4 -4
- package/dist/browser/lionrapid.auto.js +424 -147
- package/dist/browser/lionrapid.auto.js.map +4 -4
- package/dist/browser/lionrapid.auto.min.js +4 -3
- package/dist/browser/lionrapid.auto.min.js.map +4 -4
- package/dist/browser/lionrapid.editor.js +1467 -1115
- package/dist/browser/lionrapid.editor.js.map +4 -4
- package/dist/browser/lionrapid.editor.min.js +4 -3
- package/dist/browser/lionrapid.editor.min.js.map +4 -4
- package/dist/browser/lionrapid.esm.js +584 -101
- package/dist/browser/lionrapid.esm.js.map +4 -4
- package/dist/browser/lionrapid.esm.min.js +3 -2
- package/dist/browser/lionrapid.esm.min.js.map +4 -4
- package/dist/browser/lionrapid.iife.dev.js +584 -101
- package/dist/browser/lionrapid.iife.dev.js.map +4 -4
- package/dist/browser/lionrapid.iife.js +584 -101
- package/dist/browser/lionrapid.iife.js.map +4 -4
- package/dist/browser/lionrapid.iife.min.js +3 -2
- package/dist/browser/lionrapid.iife.min.js.map +4 -4
- package/dist/browser/lionrapid.umd.js +584 -101
- package/dist/browser/lionrapid.umd.js.map +4 -4
- package/dist/browser/lionrapid.umd.min.js +3 -2
- package/dist/browser/lionrapid.umd.min.js.map +4 -4
- package/dist/browser/sanitizer.d.ts +37 -0
- package/dist/browser/sanitizer.d.ts.map +1 -0
- package/dist/browser/sanitizer.js +93 -0
- package/dist/browser/sanitizer.js.map +1 -0
- package/dist/builder.d.ts +8 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +33 -5
- package/dist/builder.js.map +1 -1
- package/dist/config/lionrapid.config.d.ts +0 -1
- package/dist/config/lionrapid.config.d.ts.map +1 -1
- package/dist/config/repository.config.d.ts +2 -2
- package/dist/config/repository.config.d.ts.map +1 -1
- package/dist/content/index.d.ts +3 -0
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +5 -0
- package/dist/content/index.js.map +1 -1
- package/dist/content/sanitizer/HTMLSanitizer.d.ts +105 -0
- package/dist/content/sanitizer/HTMLSanitizer.d.ts.map +1 -0
- package/dist/content/sanitizer/HTMLSanitizer.js +257 -0
- package/dist/content/sanitizer/HTMLSanitizer.js.map +1 -0
- package/dist/content/serializer/HTMLSerializer.d.ts +6 -2
- package/dist/content/serializer/HTMLSerializer.d.ts.map +1 -1
- package/dist/content/serializer/HTMLSerializer.js +16 -8
- package/dist/content/serializer/HTMLSerializer.js.map +1 -1
- package/dist/content/splitter/BlockSplitter.d.ts +66 -0
- package/dist/content/splitter/BlockSplitter.d.ts.map +1 -0
- package/dist/content/splitter/BlockSplitter.js +219 -0
- package/dist/content/splitter/BlockSplitter.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/lionRapid.d.ts +1 -2
- package/dist/lionRapid.d.ts.map +1 -1
- package/dist/lionRapid.js +5 -7
- package/dist/lionRapid.js.map +1 -1
- package/dist/repositories/network-repository.d.ts +30 -8
- package/dist/repositories/network-repository.d.ts.map +1 -1
- package/dist/repositories/network-repository.js +88 -74
- package/dist/repositories/network-repository.js.map +1 -1
- package/dist/types/lionRapid.types.d.ts +2 -0
- package/dist/types/lionRapid.types.d.ts.map +1 -1
- package/dist/types/translation.types.d.ts +0 -3
- package/dist/types/translation.types.d.ts.map +1 -1
- package/dist/utils/context-utils.d.ts +1 -2
- package/dist/utils/context-utils.d.ts.map +1 -1
- package/dist/utils/context-utils.js +3 -6
- package/dist/utils/context-utils.js.map +1 -1
- package/dist/utils/locale.d.ts +57 -0
- package/dist/utils/locale.d.ts.map +1 -0
- package/dist/utils/locale.js +116 -0
- package/dist/utils/locale.js.map +1 -0
- package/dist/utils/translation-flow.d.ts +1 -1
- package/dist/utils/translation-flow.d.ts.map +1 -1
- package/dist/utils/translation-flow.js +2 -3
- package/dist/utils/translation-flow.js.map +1 -1
- package/package.json +2 -1
|
@@ -128,6 +128,8 @@ interface CoreEventPayloads {
|
|
|
128
128
|
'language:change:success': {
|
|
129
129
|
oldLocale: string;
|
|
130
130
|
newLocale: string;
|
|
131
|
+
/** Text direction of the new locale ('rtl' for ar/fa/he/ur/yi). */
|
|
132
|
+
dir: 'ltr' | 'rtl';
|
|
131
133
|
};
|
|
132
134
|
'language:change:error': {
|
|
133
135
|
oldLocale: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lionRapid.types.d.ts","sourceRoot":"","sources":["../../src/types/lionRapid.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lionRapid.types.d.ts","sourceRoot":"","sources":["../../src/types/lionRapid.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,8 +22,6 @@ export interface TranslationContext {
|
|
|
22
22
|
locale: string;
|
|
23
23
|
/** Optional namespace for scoped translations */
|
|
24
24
|
namespace?: string;
|
|
25
|
-
/** Fallback locale if translation not found */
|
|
26
|
-
fallbackLocale?: string;
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
27
|
* Complete translation request information
|
|
@@ -42,7 +40,6 @@ export interface TranslationRequest {
|
|
|
42
40
|
/** Resolution context */
|
|
43
41
|
locale: string;
|
|
44
42
|
namespace: string | undefined;
|
|
45
|
-
fallbackLocale: string | undefined;
|
|
46
43
|
/** Pre-computed cache keys */
|
|
47
44
|
individualCacheKey: string;
|
|
48
45
|
namespaceCacheKey?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.types.d.ts","sourceRoot":"","sources":["../../src/types/translation.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"translation.types.d.ts","sourceRoot":"","sources":["../../src/types/translation.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAExD,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B,8BAA8B;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IACtD,6GAA6G;IAC7G,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,2BAA2B;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,8EAA8E;IAC9E,eAAe,CAAC,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,OAAO,6BAA6B,EAAE,eAAe,CAAC;KAC7D,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,IAAI,EAAE,OAAO,6BAA6B,EAAE,eAAe,GAAG,IAAI,CAAC;IACnE,iCAAiC;IACjC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IACtD,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,KAAK,CAAC;CACf"}
|
|
@@ -8,10 +8,9 @@ import type { TranslationContext, ParsedNamespaceKey } from '../types/translatio
|
|
|
8
8
|
* @param parsedKey - Parsed namespace key information
|
|
9
9
|
* @param currentLocale - Current locale
|
|
10
10
|
* @param defaultNamespace - Default namespace if none specified
|
|
11
|
-
* @param fallbackLocale - Fallback locale
|
|
12
11
|
* @returns Complete translation context
|
|
13
12
|
*/
|
|
14
|
-
export declare function createTranslationContext(parsedKey: ParsedNamespaceKey, currentLocale: string, defaultNamespace?: string
|
|
13
|
+
export declare function createTranslationContext(parsedKey: ParsedNamespaceKey, currentLocale: string, defaultNamespace?: string): TranslationContext;
|
|
15
14
|
/**
|
|
16
15
|
* Check if two contexts are equivalent (for caching)
|
|
17
16
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-utils.d.ts","sourceRoot":"","sources":["../../src/utils/context-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAE5F
|
|
1
|
+
{"version":3,"file":"context-utils.d.ts","sourceRoot":"","sources":["../../src/utils/context-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAE5F;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,kBAAkB,EAC7B,aAAa,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,GACxB,kBAAkB,CAUpB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAKT"}
|
|
@@ -7,18 +7,16 @@
|
|
|
7
7
|
* @param parsedKey - Parsed namespace key information
|
|
8
8
|
* @param currentLocale - Current locale
|
|
9
9
|
* @param defaultNamespace - Default namespace if none specified
|
|
10
|
-
* @param fallbackLocale - Fallback locale
|
|
11
10
|
* @returns Complete translation context
|
|
12
11
|
*/
|
|
13
|
-
export function createTranslationContext(parsedKey, currentLocale, defaultNamespace
|
|
12
|
+
export function createTranslationContext(parsedKey, currentLocale, defaultNamespace) {
|
|
14
13
|
// Use explicit namespace if provided, otherwise use default
|
|
15
14
|
const effectiveNamespace = parsedKey.hasExplicitNamespace
|
|
16
15
|
? parsedKey.namespace
|
|
17
16
|
: defaultNamespace;
|
|
18
17
|
return {
|
|
19
18
|
locale: currentLocale,
|
|
20
|
-
namespace: effectiveNamespace
|
|
21
|
-
fallbackLocale: fallbackLocale || currentLocale
|
|
19
|
+
namespace: effectiveNamespace
|
|
22
20
|
};
|
|
23
21
|
}
|
|
24
22
|
/**
|
|
@@ -30,7 +28,6 @@ export function createTranslationContext(parsedKey, currentLocale, defaultNamesp
|
|
|
30
28
|
*/
|
|
31
29
|
export function areContextsEquivalent(context1, context2) {
|
|
32
30
|
return (context1.locale === context2.locale &&
|
|
33
|
-
context1.namespace === context2.namespace
|
|
34
|
-
context1.fallbackLocale === context2.fallbackLocale);
|
|
31
|
+
context1.namespace === context2.namespace);
|
|
35
32
|
}
|
|
36
33
|
//# sourceMappingURL=context-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-utils.js","sourceRoot":"","sources":["../../src/utils/context-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH
|
|
1
|
+
{"version":3,"file":"context-utils.js","sourceRoot":"","sources":["../../src/utils/context-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAA6B,EAC7B,aAAqB,EACrB,gBAAyB;IAEzB,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,SAAS,CAAC,oBAAoB;QACvD,CAAC,CAAC,SAAS,CAAC,SAAS;QACrB,CAAC,CAAC,gBAAgB,CAAC;IAErB,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,kBAAkB;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAA4B,EAC5B,QAA4B;IAE5B,OAAO,CACL,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACnC,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared BCP-47 locale utilities — pure, Node-safe (no DOM).
|
|
3
|
+
*
|
|
4
|
+
* Aligns the browser runtime with the rest of the stack (see the locale
|
|
5
|
+
* standard):
|
|
6
|
+
* - tm-server accepts BCP-47, canonicalizes to ISO 639-2, and TRUNCATES the
|
|
7
|
+
* region on the content API (`pt-BR → por`); it does NO cross-locale
|
|
8
|
+
* fallback.
|
|
9
|
+
* - `@lionrapid/edge` already preserves full tags with the grammar mirrored
|
|
10
|
+
* below and negotiates Accept-Language by q-weight.
|
|
11
|
+
*
|
|
12
|
+
* Core previously chopped every tag to its 2-letter primary subtag, so a
|
|
13
|
+
* configured `data-languages="pt-BR,…"` never matched a detected `pt-BR`
|
|
14
|
+
* (it became `pt`) and fell back to the default. These helpers preserve the
|
|
15
|
+
* full tag for matching / URLs / display while still negotiating down to the
|
|
16
|
+
* primary subtag when that is the best available match — the same rule edge
|
|
17
|
+
* uses, so the two packages agree.
|
|
18
|
+
*
|
|
19
|
+
* @module utils/locale
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Same locale grammar as `@lionrapid/edge`'s `LOCALE_BODY`, for cross-package
|
|
23
|
+
* parity: 2–3 letter language + zero or more `-XXXX` subtags (script/region/
|
|
24
|
+
* variant), each 2–4 alphanumerics. Anchored, case-insensitive.
|
|
25
|
+
*/
|
|
26
|
+
export declare const LOCALE_TAG_REGEX: RegExp;
|
|
27
|
+
/** The primary language subtag, lowercased: `pt-BR → pt`, `ZH-Hant → zh`. */
|
|
28
|
+
export declare function primarySubtag(tag: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Canonicalize BCP-47 casing: language lowercase, script Title-case (4 chars),
|
|
31
|
+
* region UPPERCASE (2 chars). `pt-br → pt-BR`, `ZH-hant → zh-Hant`. Casing
|
|
32
|
+
* only — subtags are not validated here (that's `matchLocale`/the grammar).
|
|
33
|
+
*/
|
|
34
|
+
export declare function normalizeLocale(tag: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Negotiate a locale: for each requested tag (in preference order), return the
|
|
37
|
+
* best `available` match — exact full tag (case-insensitive) first, then an
|
|
38
|
+
* available entry equal to the requested tag's bare primary subtag. Returns
|
|
39
|
+
* `fallback` when nothing matches. Mirrors edge's `detectFromAcceptLanguage`
|
|
40
|
+
* matching so both packages resolve identically.
|
|
41
|
+
*
|
|
42
|
+
* Note (matches edge + the server): a bare requested `pt` does NOT match an
|
|
43
|
+
* available `pt-BR` — region-specific availability is not silently widened.
|
|
44
|
+
*/
|
|
45
|
+
export declare function matchLocale(requested: string[], available: string[], fallback: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Parse an `Accept-Language` header into tags ordered by q-weight (desc).
|
|
48
|
+
* `fr;q=0.8,en;q=0.9 → ['en','fr']`. Missing q defaults to 1.0; a malformed q
|
|
49
|
+
* sinks to the tail; `*` and empty tags are dropped.
|
|
50
|
+
*/
|
|
51
|
+
export declare function parseAcceptLanguage(header: string): string[];
|
|
52
|
+
/**
|
|
53
|
+
* Text direction for a locale — `'rtl'` for Arabic/Persian/Hebrew/Urdu/
|
|
54
|
+
* Yiddish, else `'ltr'`. Mirrors tm-server `is_rtl`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function localeDir(tag: string): 'ltr' | 'rtl';
|
|
57
|
+
//# sourceMappingURL=locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/utils/locale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAqC,CAAC;AAQnE,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAenD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,CAgBR;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAY5D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAEpD"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared BCP-47 locale utilities — pure, Node-safe (no DOM).
|
|
3
|
+
*
|
|
4
|
+
* Aligns the browser runtime with the rest of the stack (see the locale
|
|
5
|
+
* standard):
|
|
6
|
+
* - tm-server accepts BCP-47, canonicalizes to ISO 639-2, and TRUNCATES the
|
|
7
|
+
* region on the content API (`pt-BR → por`); it does NO cross-locale
|
|
8
|
+
* fallback.
|
|
9
|
+
* - `@lionrapid/edge` already preserves full tags with the grammar mirrored
|
|
10
|
+
* below and negotiates Accept-Language by q-weight.
|
|
11
|
+
*
|
|
12
|
+
* Core previously chopped every tag to its 2-letter primary subtag, so a
|
|
13
|
+
* configured `data-languages="pt-BR,…"` never matched a detected `pt-BR`
|
|
14
|
+
* (it became `pt`) and fell back to the default. These helpers preserve the
|
|
15
|
+
* full tag for matching / URLs / display while still negotiating down to the
|
|
16
|
+
* primary subtag when that is the best available match — the same rule edge
|
|
17
|
+
* uses, so the two packages agree.
|
|
18
|
+
*
|
|
19
|
+
* @module utils/locale
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Same locale grammar as `@lionrapid/edge`'s `LOCALE_BODY`, for cross-package
|
|
23
|
+
* parity: 2–3 letter language + zero or more `-XXXX` subtags (script/region/
|
|
24
|
+
* variant), each 2–4 alphanumerics. Anchored, case-insensitive.
|
|
25
|
+
*/
|
|
26
|
+
export const LOCALE_TAG_REGEX = /^[a-z]{2,3}(?:-[a-z0-9]{2,4})*$/i;
|
|
27
|
+
/**
|
|
28
|
+
* RTL languages — mirrors tm-server's `RTL_ISO639_2 = {ara,fas,heb,urd,yid}`
|
|
29
|
+
* by their ISO 639-1 primary subtags, so client `dir` matches `is_rtl`.
|
|
30
|
+
*/
|
|
31
|
+
const RTL_LANGUAGES = new Set(['ar', 'fa', 'he', 'ur', 'yi']);
|
|
32
|
+
/** The primary language subtag, lowercased: `pt-BR → pt`, `ZH-Hant → zh`. */
|
|
33
|
+
export function primarySubtag(tag) {
|
|
34
|
+
return tag.split('-')[0].toLowerCase();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Canonicalize BCP-47 casing: language lowercase, script Title-case (4 chars),
|
|
38
|
+
* region UPPERCASE (2 chars). `pt-br → pt-BR`, `ZH-hant → zh-Hant`. Casing
|
|
39
|
+
* only — subtags are not validated here (that's `matchLocale`/the grammar).
|
|
40
|
+
*/
|
|
41
|
+
export function normalizeLocale(tag) {
|
|
42
|
+
const trimmed = tag.trim();
|
|
43
|
+
if (!trimmed)
|
|
44
|
+
return trimmed;
|
|
45
|
+
const [lang, ...rest] = trimmed.split('-');
|
|
46
|
+
const out = [lang.toLowerCase()];
|
|
47
|
+
for (const sub of rest) {
|
|
48
|
+
if (sub.length === 4) {
|
|
49
|
+
out.push(sub[0].toUpperCase() + sub.slice(1).toLowerCase()); // script
|
|
50
|
+
}
|
|
51
|
+
else if (sub.length === 2) {
|
|
52
|
+
out.push(sub.toUpperCase()); // region (alpha-2)
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
out.push(sub.toLowerCase()); // variant / numeric region / other
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return out.join('-');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Negotiate a locale: for each requested tag (in preference order), return the
|
|
62
|
+
* best `available` match — exact full tag (case-insensitive) first, then an
|
|
63
|
+
* available entry equal to the requested tag's bare primary subtag. Returns
|
|
64
|
+
* `fallback` when nothing matches. Mirrors edge's `detectFromAcceptLanguage`
|
|
65
|
+
* matching so both packages resolve identically.
|
|
66
|
+
*
|
|
67
|
+
* Note (matches edge + the server): a bare requested `pt` does NOT match an
|
|
68
|
+
* available `pt-BR` — region-specific availability is not silently widened.
|
|
69
|
+
*/
|
|
70
|
+
export function matchLocale(requested, available, fallback) {
|
|
71
|
+
if (available.length === 0)
|
|
72
|
+
return fallback;
|
|
73
|
+
const avail = available.map((raw) => ({
|
|
74
|
+
raw,
|
|
75
|
+
lower: normalizeLocale(raw).toLowerCase(),
|
|
76
|
+
}));
|
|
77
|
+
for (const req of requested) {
|
|
78
|
+
if (!req)
|
|
79
|
+
continue;
|
|
80
|
+
const reqLower = normalizeLocale(req).toLowerCase();
|
|
81
|
+
const exact = avail.find((a) => a.lower === reqLower);
|
|
82
|
+
if (exact)
|
|
83
|
+
return exact.raw;
|
|
84
|
+
const primary = primarySubtag(req);
|
|
85
|
+
const byPrimary = avail.find((a) => a.lower === primary);
|
|
86
|
+
if (byPrimary)
|
|
87
|
+
return byPrimary.raw;
|
|
88
|
+
}
|
|
89
|
+
return fallback;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Parse an `Accept-Language` header into tags ordered by q-weight (desc).
|
|
93
|
+
* `fr;q=0.8,en;q=0.9 → ['en','fr']`. Missing q defaults to 1.0; a malformed q
|
|
94
|
+
* sinks to the tail; `*` and empty tags are dropped.
|
|
95
|
+
*/
|
|
96
|
+
export function parseAcceptLanguage(header) {
|
|
97
|
+
return header
|
|
98
|
+
.split(',')
|
|
99
|
+
.map((part) => {
|
|
100
|
+
const [tag, ...params] = part.trim().split(';');
|
|
101
|
+
const qParam = params.find((p) => p.trim().startsWith('q='));
|
|
102
|
+
const q = qParam ? parseFloat(qParam.trim().slice(2)) : 1;
|
|
103
|
+
return { tag: tag.trim(), q: Number.isNaN(q) ? 0 : q };
|
|
104
|
+
})
|
|
105
|
+
.filter((x) => x.tag.length > 0 && x.tag !== '*')
|
|
106
|
+
.sort((a, b) => b.q - a.q)
|
|
107
|
+
.map((x) => x.tag);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Text direction for a locale — `'rtl'` for Arabic/Persian/Hebrew/Urdu/
|
|
111
|
+
* Yiddish, else `'ltr'`. Mirrors tm-server `is_rtl`.
|
|
112
|
+
*/
|
|
113
|
+
export function localeDir(tag) {
|
|
114
|
+
return RTL_LANGUAGES.has(primarySubtag(tag)) ? 'rtl' : 'ltr';
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/utils/locale.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import type { TranslationRequest } from '../types/translation.types.js';
|
|
|
7
7
|
* ✅ Enhanced: Parse and prepare translation request with cache keys
|
|
8
8
|
* This is the entry point that organizes all the parsing logic
|
|
9
9
|
*/
|
|
10
|
-
export declare function prepareTranslationRequest(key: string, currentLocale: string, defaultValueOrParams?: string | Record<string, unknown>, paramsOrDefaultValue?: Record<string, unknown> | string, defaultNamespace?: string
|
|
10
|
+
export declare function prepareTranslationRequest(key: string, currentLocale: string, defaultValueOrParams?: string | Record<string, unknown>, paramsOrDefaultValue?: Record<string, unknown> | string, defaultNamespace?: string): TranslationRequest;
|
|
11
11
|
/**
|
|
12
12
|
* Parse flexible translation parameters
|
|
13
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation-flow.d.ts","sourceRoot":"","sources":["../../src/utils/translation-flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQxE;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EACvD,gBAAgB,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"translation-flow.d.ts","sourceRoot":"","sources":["../../src/utils/translation-flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQxE;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EACvD,gBAAgB,CAAC,EAAE,MAAM,GACxB,kBAAkB,CAgDpB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAC5C;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAsC7D"}
|
|
@@ -9,14 +9,14 @@ import { createIndividualCacheKey, createNamespaceCacheKey, } from './translatio
|
|
|
9
9
|
* ✅ Enhanced: Parse and prepare translation request with cache keys
|
|
10
10
|
* This is the entry point that organizes all the parsing logic
|
|
11
11
|
*/
|
|
12
|
-
export function prepareTranslationRequest(key, currentLocale, defaultValueOrParams, paramsOrDefaultValue, defaultNamespace
|
|
12
|
+
export function prepareTranslationRequest(key, currentLocale, defaultValueOrParams, paramsOrDefaultValue, defaultNamespace) {
|
|
13
13
|
const startTime = performance.now();
|
|
14
14
|
// Parse flexible parameters
|
|
15
15
|
const { defaultValue, params } = parseTranslationParams(defaultValueOrParams, paramsOrDefaultValue);
|
|
16
16
|
// Parse namespace from key
|
|
17
17
|
const parsedKey = parseNamespaceKey(key);
|
|
18
18
|
// Create translation context
|
|
19
|
-
const context = createTranslationContext(parsedKey, currentLocale, defaultNamespace
|
|
19
|
+
const context = createTranslationContext(parsedKey, currentLocale, defaultNamespace);
|
|
20
20
|
// ✅ Generate cache keys using unified pattern
|
|
21
21
|
const individualCacheKey = createIndividualCacheKey(context.locale, context.namespace, parsedKey.cleanKey);
|
|
22
22
|
const namespaceCacheKey = context.namespace
|
|
@@ -35,7 +35,6 @@ export function prepareTranslationRequest(key, currentLocale, defaultValueOrPara
|
|
|
35
35
|
parsedDefaultValue: defaultValue,
|
|
36
36
|
locale: currentLocale,
|
|
37
37
|
namespace: context.namespace, // ✅ Use effective namespace (explicit or default)
|
|
38
|
-
fallbackLocale,
|
|
39
38
|
individualCacheKey, // ✅ Ready-to-use cache key
|
|
40
39
|
namespaceCacheKey, // ✅ Ready-to-use namespace key
|
|
41
40
|
startTime,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation-flow.js","sourceRoot":"","sources":["../../src/utils/translation-flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,aAAqB,EACrB,oBAAuD,EACvD,oBAAuD,EACvD,gBAAyB
|
|
1
|
+
{"version":3,"file":"translation-flow.js","sourceRoot":"","sources":["../../src/utils/translation-flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,aAAqB,EACrB,oBAAuD,EACvD,oBAAuD,EACvD,gBAAyB;IAEzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEpC,4BAA4B;IAC5B,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,sBAAsB,CACrD,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;IAEF,2BAA2B;IAC3B,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAEzC,6BAA6B;IAC7B,MAAM,OAAO,GAAG,wBAAwB,CACtC,SAAS,EACT,aAAa,EACb,gBAAgB,CACjB,CAAC;IAEF,8CAA8C;IAC9C,MAAM,kBAAkB,GAAG,wBAAwB,CACjD,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,SAAS,EACjB,SAAS,CAAC,QAAQ,CACnB,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS;QACzC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC;IAEd,+DAA+D;IAC/D,MAAM,EAAE,GAAG,GAAG,kBAAkB,IAAI,SAAS,EAAE,CAAC;IAEhD,OAAO;QACL,EAAE,EAAE,oBAAoB;QACxB,WAAW,EAAE,GAAG;QAChB,cAAc,EAAE,oBAAoB;QACpC,oBAAoB,EAAE,oBAAoB;QAC1C,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,oBAAoB,EAAE,SAAS,CAAC,oBAAoB;QACpD,YAAY,EAAE,MAAM;QACpB,kBAAkB,EAAE,YAAY;QAChC,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,kDAAkD;QAChF,kBAAkB,EAAE,2BAA2B;QAC/C,iBAAiB,EAAE,+BAA+B;QAClD,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAA8C,EAC9C,UAA6C;IAE7C,IAAI,YAAgC,CAAC;IACrC,IAAI,MAA2C,CAAC;IAEhD,uEAAuE;IACvE,yEAAyE;IACzE,yEAAyE;IACzE,qCAAqC;IACrC,MAAM,UAAU,GACd,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC;IACzC,IACE,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,UAAU,KAAK,QAAQ;QAC9B,UAAU,EACV,CAAC;QACD,OAAO,CAAC,IAAI,CACV,oEAAoE;YAClE,kFAAkF;YAClF,+DAA+D,CAClE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,uDAAuD;QACvD,YAAY,GAAG,WAAW,CAAC;QAC3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC3C,iDAAiD;QACjD,MAAM,GAAG,WAAW,CAAC;QACrB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,YAAY,GAAG,UAAU,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionrapid/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Core functionality for LionRapid localization library with fixed dist publishing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"@types/node": "^20.0.0",
|
|
49
49
|
"@vitest/ui": "^1.0.0",
|
|
50
50
|
"dotenv-cli": "^7.3.0",
|
|
51
|
+
"happy-dom": "^20.1.0",
|
|
51
52
|
"typescript": "^5.2.0",
|
|
52
53
|
"vitest": "^1.0.0"
|
|
53
54
|
},
|