@digitaldefiance/i18n-lib 1.3.27 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/README.md +402 -2262
  2. package/package.json +5 -1
  3. package/src/active-context.d.ts +2 -2
  4. package/src/active-context.d.ts.map +1 -1
  5. package/src/builders/i18n-builder.d.ts +24 -0
  6. package/src/builders/i18n-builder.d.ts.map +1 -0
  7. package/src/builders/i18n-builder.js +62 -0
  8. package/src/builders/i18n-builder.js.map +1 -0
  9. package/src/builders/index.d.ts +5 -0
  10. package/src/builders/index.d.ts.map +1 -0
  11. package/src/builders/index.js +8 -0
  12. package/src/builders/index.js.map +1 -0
  13. package/src/core/component-store.d.ts +20 -0
  14. package/src/core/component-store.d.ts.map +1 -0
  15. package/src/core/component-store.js +105 -0
  16. package/src/core/component-store.js.map +1 -0
  17. package/src/core/context-manager.d.ts +20 -0
  18. package/src/core/context-manager.d.ts.map +1 -0
  19. package/src/core/context-manager.js +50 -0
  20. package/src/core/context-manager.js.map +1 -0
  21. package/src/core/enum-registry.d.ts +14 -0
  22. package/src/core/enum-registry.d.ts.map +1 -0
  23. package/src/core/enum-registry.js +48 -0
  24. package/src/core/enum-registry.js.map +1 -0
  25. package/src/core/i18n-engine.d.ts +44 -0
  26. package/src/core/i18n-engine.d.ts.map +1 -0
  27. package/src/core/i18n-engine.js +192 -0
  28. package/src/core/i18n-engine.js.map +1 -0
  29. package/src/core/index.d.ts +9 -0
  30. package/src/core/index.d.ts.map +1 -0
  31. package/src/core/index.js +12 -0
  32. package/src/core/index.js.map +1 -0
  33. package/src/core/language-registry.d.ts +41 -0
  34. package/src/core/language-registry.d.ts.map +1 -0
  35. package/src/core/language-registry.js +157 -0
  36. package/src/core/language-registry.js.map +1 -0
  37. package/src/core-i18n.d.ts +4 -0
  38. package/src/core-i18n.d.ts.map +1 -1
  39. package/src/core-i18n.js +119 -4
  40. package/src/core-i18n.js.map +1 -1
  41. package/src/core-string-key.d.ts +10 -1
  42. package/src/core-string-key.d.ts.map +1 -1
  43. package/src/core-string-key.js +10 -0
  44. package/src/core-string-key.js.map +1 -1
  45. package/src/create-translation-adapter.d.ts +15 -3
  46. package/src/create-translation-adapter.d.ts.map +1 -1
  47. package/src/create-translation-adapter.js +44 -9
  48. package/src/create-translation-adapter.js.map +1 -1
  49. package/src/{context-error.d.ts → errors/context-error.d.ts} +1 -1
  50. package/src/errors/context-error.d.ts.map +1 -0
  51. package/src/errors/context-error.js +21 -0
  52. package/src/errors/context-error.js.map +1 -0
  53. package/src/{handleable.d.ts → errors/handleable.d.ts} +2 -2
  54. package/src/errors/handleable.d.ts.map +1 -0
  55. package/src/errors/handleable.js.map +1 -0
  56. package/src/errors/i18n-error.d.ts +32 -0
  57. package/src/errors/i18n-error.d.ts.map +1 -0
  58. package/src/errors/i18n-error.js +61 -0
  59. package/src/errors/i18n-error.js.map +1 -0
  60. package/src/errors/index.d.ts +5 -0
  61. package/src/errors/index.d.ts.map +1 -0
  62. package/src/errors/index.js +8 -0
  63. package/src/errors/index.js.map +1 -0
  64. package/src/{plugin-translatable-generic-error.d.ts → errors/plugin-translatable-generic.d.ts} +7 -7
  65. package/src/errors/plugin-translatable-generic.d.ts.map +1 -0
  66. package/src/{plugin-translatable-generic-error.js → errors/plugin-translatable-generic.js} +2 -3
  67. package/src/errors/plugin-translatable-generic.js.map +1 -0
  68. package/src/{plugin-translatable-handleable-generic.d.ts → errors/plugin-translatable-handleable-generic.d.ts} +4 -4
  69. package/src/errors/plugin-translatable-handleable-generic.d.ts.map +1 -0
  70. package/src/{plugin-translatable-handleable-generic.js → errors/plugin-translatable-handleable-generic.js} +2 -2
  71. package/src/errors/plugin-translatable-handleable-generic.js.map +1 -0
  72. package/src/errors/plugin-typed-handleable.d.ts +14 -0
  73. package/src/errors/plugin-typed-handleable.d.ts.map +1 -0
  74. package/src/{plugin-typed-handleable.js → errors/plugin-typed-handleable.js} +4 -4
  75. package/src/errors/plugin-typed-handleable.js.map +1 -0
  76. package/src/errors/translatable.d.ts +4 -0
  77. package/src/errors/translatable.d.ts.map +1 -0
  78. package/src/{translatable.js → errors/translatable.js} +4 -2
  79. package/src/errors/translatable.js.map +1 -0
  80. package/src/errors/typed-handleable.d.ts +13 -0
  81. package/src/errors/typed-handleable.d.ts.map +1 -0
  82. package/src/{typed-handleable.js → errors/typed-handleable.js} +8 -7
  83. package/src/errors/typed-handleable.js.map +1 -0
  84. package/src/{typed-error.d.ts → errors/typed.d.ts} +13 -15
  85. package/src/errors/typed.d.ts.map +1 -0
  86. package/src/{typed-error.js → errors/typed.js} +27 -23
  87. package/src/errors/typed.js.map +1 -0
  88. package/src/global-active-context.d.ts +4 -5
  89. package/src/global-active-context.d.ts.map +1 -1
  90. package/src/global-active-context.js +4 -4
  91. package/src/global-active-context.js.map +1 -1
  92. package/src/index.d.ts +16 -32
  93. package/src/index.d.ts.map +1 -1
  94. package/src/index.js +30 -37
  95. package/src/index.js.map +1 -1
  96. package/src/interfaces/component-config.interface.d.ts +9 -0
  97. package/src/interfaces/component-config.interface.d.ts.map +1 -0
  98. package/src/interfaces/component-config.interface.js +6 -0
  99. package/src/interfaces/component-config.interface.js.map +1 -0
  100. package/src/interfaces/engine-config.interface.d.ts +13 -0
  101. package/src/interfaces/engine-config.interface.d.ts.map +1 -0
  102. package/src/interfaces/engine-config.interface.js +6 -0
  103. package/src/interfaces/engine-config.interface.js.map +1 -0
  104. package/src/{i-global-active-context.d.ts → interfaces/global-active-context.d.ts} +5 -5
  105. package/src/interfaces/global-active-context.d.ts.map +1 -0
  106. package/src/{currency-format.js → interfaces/global-active-context.js} +1 -1
  107. package/src/interfaces/global-active-context.js.map +1 -0
  108. package/src/{i-handleable-error-options.d.ts → interfaces/handleable-error-options.d.ts} +1 -1
  109. package/src/interfaces/handleable-error-options.d.ts.map +1 -0
  110. package/src/{i-global-active-context.js → interfaces/handleable-error-options.js} +1 -1
  111. package/src/interfaces/handleable-error-options.js.map +1 -0
  112. package/src/{i-handleable.d.ts → interfaces/handleable.d.ts} +1 -1
  113. package/src/interfaces/handleable.d.ts.map +1 -0
  114. package/src/{i18n-config.js → interfaces/handleable.js} +1 -1
  115. package/src/interfaces/handleable.js.map +1 -0
  116. package/src/interfaces/i18n-engine.interface.d.ts +25 -0
  117. package/src/interfaces/i18n-engine.interface.d.ts.map +1 -0
  118. package/src/interfaces/i18n-engine.interface.js +6 -0
  119. package/src/interfaces/i18n-engine.interface.js.map +1 -0
  120. package/src/interfaces/index.d.ts +11 -0
  121. package/src/interfaces/index.d.ts.map +1 -0
  122. package/src/interfaces/index.js +14 -0
  123. package/src/interfaces/index.js.map +1 -0
  124. package/src/interfaces/language-definition.interface.d.ts +10 -0
  125. package/src/interfaces/language-definition.interface.d.ts.map +1 -0
  126. package/src/interfaces/language-definition.interface.js +6 -0
  127. package/src/interfaces/language-definition.interface.js.map +1 -0
  128. package/src/interfaces/translation-options.interface.d.ts +9 -0
  129. package/src/interfaces/translation-options.interface.d.ts.map +1 -0
  130. package/src/interfaces/translation-options.interface.js +6 -0
  131. package/src/interfaces/translation-options.interface.js.map +1 -0
  132. package/src/interfaces/validation-result.interface.d.ts +14 -0
  133. package/src/interfaces/validation-result.interface.d.ts.map +1 -0
  134. package/src/interfaces/validation-result.interface.js +6 -0
  135. package/src/interfaces/validation-result.interface.js.map +1 -0
  136. package/src/plugin-i18n-engine.d.ts.map +1 -1
  137. package/src/plugin-i18n-engine.js +19 -7
  138. package/src/plugin-i18n-engine.js.map +1 -1
  139. package/src/registry-config.d.ts +2 -2
  140. package/src/registry-config.d.ts.map +1 -1
  141. package/src/registry-error.d.ts +1 -1
  142. package/src/registry-error.d.ts.map +1 -1
  143. package/src/registry-error.js +3 -2
  144. package/src/registry-error.js.map +1 -1
  145. package/src/translation-engine.d.ts +2 -2
  146. package/src/translation-engine.d.ts.map +1 -1
  147. package/src/utils/currency.d.ts +19 -0
  148. package/src/utils/currency.d.ts.map +1 -0
  149. package/src/{currency.js → utils/currency.js} +25 -14
  150. package/src/utils/currency.js.map +1 -0
  151. package/src/utils/index.d.ts +7 -0
  152. package/src/utils/index.d.ts.map +1 -0
  153. package/src/utils/index.js +10 -0
  154. package/src/utils/index.js.map +1 -0
  155. package/src/utils/string-utils.d.ts +6 -0
  156. package/src/utils/string-utils.d.ts.map +1 -0
  157. package/src/utils/string-utils.js +34 -0
  158. package/src/utils/string-utils.js.map +1 -0
  159. package/src/utils/timezone.d.ts +13 -0
  160. package/src/utils/timezone.d.ts.map +1 -0
  161. package/src/utils/timezone.js +35 -0
  162. package/src/utils/timezone.js.map +1 -0
  163. package/src/context-error.d.ts.map +0 -1
  164. package/src/context-error.js +0 -18
  165. package/src/context-error.js.map +0 -1
  166. package/src/context-manager.d.ts +0 -34
  167. package/src/context-manager.d.ts.map +0 -1
  168. package/src/context-manager.js +0 -60
  169. package/src/context-manager.js.map +0 -1
  170. package/src/context.d.ts +0 -45
  171. package/src/context.d.ts.map +0 -1
  172. package/src/context.js +0 -70
  173. package/src/context.js.map +0 -1
  174. package/src/currency-code.d.ts +0 -20
  175. package/src/currency-code.d.ts.map +0 -1
  176. package/src/currency-code.js +0 -37
  177. package/src/currency-code.js.map +0 -1
  178. package/src/currency-format.d.ts +0 -11
  179. package/src/currency-format.d.ts.map +0 -1
  180. package/src/currency-format.js.map +0 -1
  181. package/src/currency.d.ts +0 -12
  182. package/src/currency.d.ts.map +0 -1
  183. package/src/currency.js.map +0 -1
  184. package/src/default-config.d.ts +0 -33
  185. package/src/default-config.d.ts.map +0 -1
  186. package/src/default-config.js +0 -131
  187. package/src/default-config.js.map +0 -1
  188. package/src/handleable.d.ts.map +0 -1
  189. package/src/handleable.js.map +0 -1
  190. package/src/i-global-active-context.d.ts.map +0 -1
  191. package/src/i-global-active-context.js.map +0 -1
  192. package/src/i-handleable-error-options.d.ts.map +0 -1
  193. package/src/i-handleable-error-options.js +0 -3
  194. package/src/i-handleable-error-options.js.map +0 -1
  195. package/src/i-handleable.d.ts.map +0 -1
  196. package/src/i-handleable.js +0 -3
  197. package/src/i-handleable.js.map +0 -1
  198. package/src/i18n-config.d.ts +0 -21
  199. package/src/i18n-config.d.ts.map +0 -1
  200. package/src/i18n-config.js.map +0 -1
  201. package/src/i18n-context.d.ts +0 -15
  202. package/src/i18n-context.d.ts.map +0 -1
  203. package/src/i18n-context.js +0 -3
  204. package/src/i18n-context.js.map +0 -1
  205. package/src/i18n-engine.d.ts +0 -179
  206. package/src/i18n-engine.d.ts.map +0 -1
  207. package/src/i18n-engine.js +0 -355
  208. package/src/i18n-engine.js.map +0 -1
  209. package/src/language-registry.d.ts +0 -114
  210. package/src/language-registry.d.ts.map +0 -1
  211. package/src/language-registry.js +0 -218
  212. package/src/language-registry.js.map +0 -1
  213. package/src/plugin-translatable-generic-error.d.ts.map +0 -1
  214. package/src/plugin-translatable-generic-error.js.map +0 -1
  215. package/src/plugin-translatable-handleable-generic.d.ts.map +0 -1
  216. package/src/plugin-translatable-handleable-generic.js.map +0 -1
  217. package/src/plugin-typed-handleable.d.ts +0 -15
  218. package/src/plugin-typed-handleable.d.ts.map +0 -1
  219. package/src/plugin-typed-handleable.js.map +0 -1
  220. package/src/timezone.d.ts +0 -12
  221. package/src/timezone.d.ts.map +0 -1
  222. package/src/timezone.js +0 -24
  223. package/src/timezone.js.map +0 -1
  224. package/src/translatable.d.ts +0 -6
  225. package/src/translatable.d.ts.map +0 -1
  226. package/src/translatable.js.map +0 -1
  227. package/src/typed-error.d.ts.map +0 -1
  228. package/src/typed-error.js.map +0 -1
  229. package/src/typed-handleable.d.ts +0 -15
  230. package/src/typed-handleable.d.ts.map +0 -1
  231. package/src/typed-handleable.js.map +0 -1
  232. package/src/unified-translator.d.ts +0 -31
  233. package/src/unified-translator.d.ts.map +0 -1
  234. package/src/unified-translator.js +0 -71
  235. package/src/unified-translator.js.map +0 -1
  236. /package/src/{handleable.js → errors/handleable.js} +0 -0
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "@digitaldefiance/i18n-lib",
3
- "version": "1.3.27",
3
+ "version": "2.0.2",
4
4
  "description": "i18n library with enum translation support",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "npx nx build digitaldefiance-i18n-lib",
9
+ "build:stream": "npx nx build --outputStyle=stream digitaldefiance-i18n-lib",
10
+ "build:logged": "npx nx build --outputStyle=stream digitaldefiance-i18n-lib 2>&1 | ansifilter -o build.log",
9
11
  "test": "npx nx test digitaldefiance-i18n-lib",
12
+ "test:stream": "npx nx test --outputStyle=stream digitaldefiance-i18n-lib",
13
+ "test:logged": "npx nx test --skip-nx-cache --outputStyle=stream digitaldefiance-i18n-lib 2>&1 | ansifilter -o test.log",
10
14
  "lint": "npx nx lint digitaldefiance-i18n-lib",
11
15
  "lint:fix": "npx nx lint digitaldefiance-i18n-lib --fix",
12
16
  "prettier:check": "prettier --check 'src/**/*.{ts,tsx}' 'tests/**/*.{ts,tsx}'",
@@ -1,5 +1,5 @@
1
- import { CurrencyCode } from './currency-code';
2
- import { Timezone } from './timezone';
1
+ import { CurrencyCode } from './utils/currency';
2
+ import { Timezone } from './utils/timezone';
3
3
  import { LanguageContextSpace } from './types';
4
4
  export interface IActiveContext<TLanguage extends string> {
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"active-context.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/active-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc,CAAC,SAAS,SAAS,MAAM;IACtD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,aAAa,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAC;IACrC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB;;OAEG;IACH,aAAa,EAAE,QAAQ,CAAC;CACzB"}
1
+ {"version":3,"file":"active-context.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/active-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc,CAAC,SAAS,SAAS,MAAM;IACtD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,aAAa,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAC;IACrC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB;;OAEG;IACH,aAAa,EAAE,QAAQ,CAAC;CACzB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Fluent builder for I18n Engine
3
+ */
4
+ import { EngineConfig, LanguageDefinition } from '../interfaces';
5
+ import { I18nEngine } from '../core/i18n-engine';
6
+ export declare class I18nBuilder {
7
+ private languages;
8
+ private config;
9
+ private instanceKey?;
10
+ private registerInstance;
11
+ private setAsDefault;
12
+ private constructor();
13
+ static create(): I18nBuilder;
14
+ withLanguages(languages: readonly LanguageDefinition[]): this;
15
+ withDefaultLanguage(languageId: string): this;
16
+ withFallbackLanguage(languageId: string): this;
17
+ withConstants(constants: Record<string, any>): this;
18
+ withValidation(validation: EngineConfig['validation']): this;
19
+ withInstanceKey(key: string): this;
20
+ isolated(): this;
21
+ asDefault(): this;
22
+ build(): I18nEngine;
23
+ }
24
+ //# sourceMappingURL=i18n-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/i18n-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO;IAEP,MAAM,CAAC,MAAM,IAAI,WAAW;IAI5B,aAAa,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI;IAK7D,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK7C,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK9C,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAKnD,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,IAAI;IAK5D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKlC,QAAQ,IAAI,IAAI;IAKhB,SAAS,IAAI,IAAI;IAKjB,KAAK,IAAI,UAAU;CAWpB"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /**
3
+ * Fluent builder for I18n Engine
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.I18nBuilder = void 0;
7
+ const i18n_engine_1 = require("../core/i18n-engine");
8
+ class I18nBuilder {
9
+ languages = [];
10
+ config = {};
11
+ instanceKey;
12
+ registerInstance = true;
13
+ setAsDefault = true;
14
+ constructor() { }
15
+ static create() {
16
+ return new I18nBuilder();
17
+ }
18
+ withLanguages(languages) {
19
+ this.languages = [...languages];
20
+ return this;
21
+ }
22
+ withDefaultLanguage(languageId) {
23
+ this.config.defaultLanguage = languageId;
24
+ return this;
25
+ }
26
+ withFallbackLanguage(languageId) {
27
+ this.config.fallbackLanguage = languageId;
28
+ return this;
29
+ }
30
+ withConstants(constants) {
31
+ this.config.constants = constants;
32
+ return this;
33
+ }
34
+ withValidation(validation) {
35
+ this.config.validation = validation;
36
+ return this;
37
+ }
38
+ withInstanceKey(key) {
39
+ this.instanceKey = key;
40
+ return this;
41
+ }
42
+ isolated() {
43
+ this.registerInstance = false;
44
+ return this;
45
+ }
46
+ asDefault() {
47
+ this.setAsDefault = true;
48
+ return this;
49
+ }
50
+ build() {
51
+ if (this.languages.length === 0) {
52
+ throw new Error('At least one language must be provided');
53
+ }
54
+ return new i18n_engine_1.I18nEngine(this.languages, this.config, {
55
+ instanceKey: this.instanceKey,
56
+ registerInstance: this.registerInstance,
57
+ setAsDefault: this.setAsDefault,
58
+ });
59
+ }
60
+ }
61
+ exports.I18nBuilder = I18nBuilder;
62
+ //# sourceMappingURL=i18n-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/i18n-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,qDAAiD;AAEjD,MAAa,WAAW;IACd,SAAS,GAAyB,EAAE,CAAC;IACrC,MAAM,GAAiB,EAAE,CAAC;IAC1B,WAAW,CAAU;IACrB,gBAAgB,GAAG,IAAI,CAAC;IACxB,YAAY,GAAG,IAAI,CAAC;IAE5B,gBAAuB,CAAC;IAExB,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,SAAwC;QACpD,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,UAAkB;QACpC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,UAAU,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,UAAkB;QACrC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,SAA8B;QAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,UAAsC;QACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,wBAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;YACjD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;CACF;AAhED,kCAgEC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Builder exports
3
+ */
4
+ export * from './i18n-builder';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Builder exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ tslib_1.__exportStar(require("./i18n-builder"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yDAA+B"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Component storage (no generics)
3
+ */
4
+ import { ComponentConfig, ValidationResult } from '../interfaces';
5
+ export declare class ComponentStore {
6
+ private components;
7
+ private aliasMap;
8
+ private constants?;
9
+ constructor(constants?: Record<string, any>);
10
+ register(config: ComponentConfig): ValidationResult;
11
+ update(componentId: string, strings: Record<string, Record<string, string>>): ValidationResult;
12
+ has(componentId: string): boolean;
13
+ get(componentId: string): ComponentConfig;
14
+ getAll(): readonly ComponentConfig[];
15
+ translate(componentId: string, key: string, variables?: Record<string, any>, language?: string): string;
16
+ safeTranslate(componentId: string, key: string, variables?: Record<string, any>, language?: string): string;
17
+ private validate;
18
+ clear(): void;
19
+ }
20
+ //# sourceMappingURL=component-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-store.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/component-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGlE,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAAsB;gBAE5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI3C,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB;IAkBnD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,gBAAgB;IAe9F,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIjC,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe;IASzC,MAAM,IAAI,SAAS,eAAe,EAAE;IAIpC,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;IAgBT,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;IAQT,OAAO,CAAC,QAAQ;IA2BhB,KAAK,IAAI,IAAI;CAId"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * Component storage (no generics)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ComponentStore = void 0;
7
+ const errors_1 = require("../errors");
8
+ const utils_1 = require("../utils");
9
+ class ComponentStore {
10
+ components = new Map();
11
+ aliasMap = new Map();
12
+ constants;
13
+ constructor(constants) {
14
+ this.constants = constants;
15
+ }
16
+ register(config) {
17
+ if (this.components.has(config.id)) {
18
+ throw errors_1.I18nError.duplicateComponent(config.id);
19
+ }
20
+ const validation = this.validate(config);
21
+ this.components.set(config.id, config);
22
+ // Register aliases
23
+ if (config.aliases) {
24
+ for (const alias of config.aliases) {
25
+ this.aliasMap.set(alias, config.id);
26
+ }
27
+ }
28
+ return validation;
29
+ }
30
+ update(componentId, strings) {
31
+ const existing = this.components.get(componentId);
32
+ if (!existing) {
33
+ throw errors_1.I18nError.componentNotFound(componentId);
34
+ }
35
+ const updated = {
36
+ ...existing,
37
+ strings: { ...existing.strings, ...strings },
38
+ };
39
+ this.components.set(componentId, updated);
40
+ return this.validate(updated);
41
+ }
42
+ has(componentId) {
43
+ return this.components.has(componentId) || this.aliasMap.has(componentId);
44
+ }
45
+ get(componentId) {
46
+ const id = this.aliasMap.get(componentId) || componentId;
47
+ const component = this.components.get(id);
48
+ if (!component) {
49
+ throw errors_1.I18nError.componentNotFound(componentId);
50
+ }
51
+ return component;
52
+ }
53
+ getAll() {
54
+ return Array.from(this.components.values());
55
+ }
56
+ translate(componentId, key, variables, language) {
57
+ const component = this.get(componentId);
58
+ const langStrings = component.strings[language || 'en-US'];
59
+ if (!langStrings) {
60
+ throw errors_1.I18nError.languageNotFound(language || 'en-US');
61
+ }
62
+ const translation = langStrings[key];
63
+ if (!translation) {
64
+ throw errors_1.I18nError.translationMissing(componentId, key, language || 'en-US');
65
+ }
66
+ return (0, utils_1.replaceVariables)(translation, variables, this.constants);
67
+ }
68
+ safeTranslate(componentId, key, variables, language) {
69
+ try {
70
+ return this.translate(componentId, key, variables, language);
71
+ }
72
+ catch {
73
+ return `[${componentId}.${key}]`;
74
+ }
75
+ }
76
+ validate(config) {
77
+ const errors = [];
78
+ const warnings = [];
79
+ // Check if all languages have all keys
80
+ const allKeys = new Set();
81
+ for (const langStrings of Object.values(config.strings)) {
82
+ for (const key of Object.keys(langStrings)) {
83
+ allKeys.add(key);
84
+ }
85
+ }
86
+ for (const [lang, langStrings] of Object.entries(config.strings)) {
87
+ for (const key of allKeys) {
88
+ if (!langStrings[key]) {
89
+ warnings.push(`Missing key '${key}' for language '${lang}' in component '${config.id}'`);
90
+ }
91
+ }
92
+ }
93
+ return {
94
+ isValid: errors.length === 0,
95
+ errors,
96
+ warnings,
97
+ };
98
+ }
99
+ clear() {
100
+ this.components.clear();
101
+ this.aliasMap.clear();
102
+ }
103
+ }
104
+ exports.ComponentStore = ComponentStore;
105
+ //# sourceMappingURL=component-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-store.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/component-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Simplified context management
3
+ */
4
+ export interface Context {
5
+ language: string;
6
+ adminLanguage: string;
7
+ currentSpace: 'admin' | 'user';
8
+ }
9
+ export declare class ContextManager {
10
+ private contexts;
11
+ create(instanceKey: string, defaultLanguage: string): Context;
12
+ get(instanceKey: string): Context;
13
+ setLanguage(instanceKey: string, language: string): void;
14
+ setAdminLanguage(instanceKey: string, language: string): void;
15
+ switchToAdmin(instanceKey: string): void;
16
+ switchToUser(instanceKey: string): void;
17
+ getCurrentLanguage(instanceKey: string): string;
18
+ clear(): void;
19
+ }
20
+ //# sourceMappingURL=context-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/context-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC;CAChC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA8B;IAE9C,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO;IAU7D,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAQjC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxD,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK7D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKxC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKvC,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAK/C,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * Simplified context management
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ContextManager = void 0;
7
+ class ContextManager {
8
+ contexts = new Map();
9
+ create(instanceKey, defaultLanguage) {
10
+ const context = {
11
+ language: defaultLanguage,
12
+ adminLanguage: defaultLanguage,
13
+ currentSpace: 'user',
14
+ };
15
+ this.contexts.set(instanceKey, context);
16
+ return context;
17
+ }
18
+ get(instanceKey) {
19
+ const context = this.contexts.get(instanceKey);
20
+ if (!context) {
21
+ throw new Error(`Context '${instanceKey}' not found`);
22
+ }
23
+ return context;
24
+ }
25
+ setLanguage(instanceKey, language) {
26
+ const context = this.get(instanceKey);
27
+ context.language = language;
28
+ }
29
+ setAdminLanguage(instanceKey, language) {
30
+ const context = this.get(instanceKey);
31
+ context.adminLanguage = language;
32
+ }
33
+ switchToAdmin(instanceKey) {
34
+ const context = this.get(instanceKey);
35
+ context.currentSpace = 'admin';
36
+ }
37
+ switchToUser(instanceKey) {
38
+ const context = this.get(instanceKey);
39
+ context.currentSpace = 'user';
40
+ }
41
+ getCurrentLanguage(instanceKey) {
42
+ const context = this.get(instanceKey);
43
+ return context.currentSpace === 'admin' ? context.adminLanguage : context.language;
44
+ }
45
+ clear() {
46
+ this.contexts.clear();
47
+ }
48
+ }
49
+ exports.ContextManager = ContextManager;
50
+ //# sourceMappingURL=context-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/context-manager.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAQH,MAAa,cAAc;IACjB,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE9C,MAAM,CAAC,WAAmB,EAAE,eAAuB;QACjD,MAAM,OAAO,GAAY;YACvB,QAAQ,EAAE,eAAe;YACzB,aAAa,EAAE,eAAe;YAC9B,YAAY,EAAE,MAAM;SACrB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,WAAmB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,aAAa,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,WAAmB,EAAE,QAAgB;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,WAAmB,EAAE,QAAgB;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;IACjC,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,WAAmB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACrF,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAjDD,wCAiDC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Enum translation registry (v2 - no generics)
3
+ */
4
+ export declare class EnumRegistry {
5
+ private translations;
6
+ private enumNames;
7
+ private translateFn?;
8
+ constructor(translateFn?: (key: string, vars?: Record<string, any>) => string);
9
+ register<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations: Record<string, Record<TEnum, string>>, enumName: string): void;
10
+ translate<TEnum extends string | number>(enumObj: Record<string, TEnum>, value: TEnum, language: string): string;
11
+ has(enumObj: any): boolean;
12
+ private getEnumName;
13
+ }
14
+ //# sourceMappingURL=enum-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-registry.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/enum-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAA0D;IAC9E,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAsD;gBAE9D,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM;IAI7E,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EACnD,QAAQ,EAAE,MAAM,GACf,IAAI;IAKP,SAAS,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM;IA4BT,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAI1B,OAAO,CAAC,WAAW;CAGpB"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Enum translation registry (v2 - no generics)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EnumRegistry = void 0;
7
+ const errors_1 = require("../errors");
8
+ class EnumRegistry {
9
+ translations = new Map();
10
+ enumNames = new WeakMap();
11
+ translateFn;
12
+ constructor(translateFn) {
13
+ this.translateFn = translateFn;
14
+ }
15
+ register(enumObj, translations, enumName) {
16
+ this.translations.set(enumObj, translations);
17
+ this.enumNames.set(enumObj, enumName);
18
+ }
19
+ translate(enumObj, value, language) {
20
+ const translations = this.translations.get(enumObj);
21
+ if (!translations) {
22
+ throw errors_1.I18nError.invalidConfig(`No translations found for enum: ${this.getEnumName(enumObj)}`);
23
+ }
24
+ const langTranslations = translations[language];
25
+ if (!langTranslations) {
26
+ throw errors_1.I18nError.languageNotFound(language);
27
+ }
28
+ let result = langTranslations[value];
29
+ if (!result && typeof value === 'number') {
30
+ const stringKey = Object.keys(enumObj).find((key) => enumObj[key] === value);
31
+ if (stringKey) {
32
+ result = langTranslations[stringKey];
33
+ }
34
+ }
35
+ if (!result) {
36
+ throw errors_1.I18nError.translationMissing('enum', String(value), language);
37
+ }
38
+ return result;
39
+ }
40
+ has(enumObj) {
41
+ return this.translations.has(enumObj);
42
+ }
43
+ getEnumName(enumObj) {
44
+ return this.enumNames.get(enumObj) || 'UnknownEnum';
45
+ }
46
+ }
47
+ exports.EnumRegistry = EnumRegistry;
48
+ //# sourceMappingURL=enum-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-registry.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/enum-registry.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,sCAAsC;AAEtC,MAAa,YAAY;IACf,YAAY,GAAG,IAAI,GAAG,EAA+C,CAAC;IACtE,SAAS,GAAG,IAAI,OAAO,EAAe,CAAC;IACvC,WAAW,CAAuD;IAE1E,YAAY,WAAiE;QAC3E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,QAAQ,CACN,OAA8B,EAC9B,YAAmD,EACnD,QAAgB;QAEhB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,YAAmB,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,CACP,OAA8B,EAC9B,KAAY,EACZ,QAAgB;QAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,kBAAS,CAAC,aAAa,CAC3B,mCAAmC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,kBAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,MAAM,GAAG,gBAAgB,CAAC,KAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;YAC7E,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,GAAG,gBAAgB,CAAC,SAAgB,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,kBAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,OAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAEO,WAAW,CAAC,OAAY;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC;IACtD,CAAC;CACF;AAzDD,oCAyDC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Main I18n Engine (no generics)
3
+ */
4
+ import { ComponentConfig, EngineConfig, II18nEngine, LanguageDefinition, ValidationResult } from '../interfaces';
5
+ export declare class I18nEngine implements II18nEngine {
6
+ private static instances;
7
+ private static defaultKey;
8
+ private static readonly DEFAULT_KEY;
9
+ private static readonly contextManager;
10
+ private readonly componentStore;
11
+ private readonly enumRegistry;
12
+ private readonly instanceKey;
13
+ private readonly config;
14
+ constructor(languages: readonly LanguageDefinition[], config?: EngineConfig, options?: {
15
+ instanceKey?: string;
16
+ registerInstance?: boolean;
17
+ setAsDefault?: boolean;
18
+ });
19
+ register(config: ComponentConfig): ValidationResult;
20
+ updateStrings(componentId: string, strings: Record<string, Record<string, string>>): ValidationResult;
21
+ hasComponent(componentId: string): boolean;
22
+ getComponents(): readonly ComponentConfig[];
23
+ translate(componentId: string, key: string, variables?: Record<string, any>, language?: string): string;
24
+ safeTranslate(componentId: string, key: string, variables?: Record<string, any>, language?: string): string;
25
+ t(template: string, variables?: Record<string, any>, language?: string): string;
26
+ registerLanguage(language: LanguageDefinition): void;
27
+ setLanguage(language: string): void;
28
+ setAdminLanguage(language: string): void;
29
+ getLanguages(): readonly LanguageDefinition[];
30
+ hasLanguage(language: string): boolean;
31
+ switchToAdmin(): void;
32
+ switchToUser(): void;
33
+ getCurrentLanguage(): string;
34
+ registerEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, translations: Record<string, Record<TEnum, string>>, enumName: string): void;
35
+ translateEnum<TEnum extends string | number>(enumObj: Record<string, TEnum>, value: TEnum, language?: string): string;
36
+ hasEnum(enumObj: any): boolean;
37
+ validate(): ValidationResult;
38
+ static createInstance(key: string, languages: readonly LanguageDefinition[], config?: EngineConfig): I18nEngine;
39
+ static getInstance(key?: string): I18nEngine;
40
+ static hasInstance(key?: string): boolean;
41
+ static removeInstance(key?: string): boolean;
42
+ static resetAll(): void;
43
+ }
44
+ //# sourceMappingURL=i18n-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-engine.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/i18n-engine.ts"],"names":[],"mappings":"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"}