@digitaldefiance/i18n-lib 3.8.1 → 3.8.3

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 (502) hide show
  1. package/package.json +7 -6
  2. package/src/{active-context.ts → active-context.d.ts} +1 -0
  3. package/src/active-context.d.ts.map +1 -0
  4. package/src/active-context.js +3 -0
  5. package/src/active-context.js.map +1 -0
  6. package/src/builders/i18n-builder.d.ts +26 -0
  7. package/src/builders/i18n-builder.d.ts.map +1 -0
  8. package/src/builders/i18n-builder.js +70 -0
  9. package/src/builders/i18n-builder.js.map +1 -0
  10. package/src/builders/{index.ts → index.d.ts} +1 -1
  11. package/src/builders/index.d.ts.map +1 -0
  12. package/src/builders/index.js +8 -0
  13. package/src/builders/index.js.map +1 -0
  14. package/src/component-definition.d.ts +12 -0
  15. package/src/component-definition.d.ts.map +1 -0
  16. package/src/component-definition.js +3 -0
  17. package/src/component-definition.js.map +1 -0
  18. package/src/component-registration.d.ts +22 -0
  19. package/src/component-registration.d.ts.map +1 -0
  20. package/src/component-registration.js +3 -0
  21. package/src/component-registration.js.map +1 -0
  22. package/src/component-registry.d.ts +102 -0
  23. package/src/component-registry.d.ts.map +1 -0
  24. package/src/component-registry.js +282 -0
  25. package/src/component-registry.js.map +1 -0
  26. package/src/context-error-type.d.ts +8 -0
  27. package/src/context-error-type.d.ts.map +1 -0
  28. package/src/context-error-type.js +12 -0
  29. package/src/context-error-type.js.map +1 -0
  30. package/src/core/component-store.d.ts +93 -0
  31. package/src/core/component-store.d.ts.map +1 -0
  32. package/src/core/component-store.js +198 -0
  33. package/src/core/component-store.js.map +1 -0
  34. package/src/core/context-manager.d.ts +72 -0
  35. package/src/core/context-manager.d.ts.map +1 -0
  36. package/src/core/context-manager.js +98 -0
  37. package/src/core/context-manager.js.map +1 -0
  38. package/src/core/enum-registry.d.ts +48 -0
  39. package/src/core/enum-registry.d.ts.map +1 -0
  40. package/src/core/enum-registry.js +85 -0
  41. package/src/core/enum-registry.js.map +1 -0
  42. package/src/core/i18n-engine.d.ts +241 -0
  43. package/src/core/i18n-engine.d.ts.map +1 -0
  44. package/src/core/i18n-engine.js +568 -0
  45. package/src/core/i18n-engine.js.map +1 -0
  46. package/src/core/{index.ts → index.d.ts} +1 -4
  47. package/src/core/index.d.ts.map +1 -0
  48. package/src/core/index.js +21 -0
  49. package/src/core/index.js.map +1 -0
  50. package/src/core/language-registry.d.ts +180 -0
  51. package/src/core/language-registry.d.ts.map +1 -0
  52. package/src/core/language-registry.js +298 -0
  53. package/src/core/language-registry.js.map +1 -0
  54. package/src/{core-component-id.ts → core-component-id.d.ts} +2 -1
  55. package/src/core-component-id.d.ts.map +1 -0
  56. package/src/core-component-id.js +9 -0
  57. package/src/core-component-id.js.map +1 -0
  58. package/src/core-i18n.d.ts +69 -0
  59. package/src/core-i18n.d.ts.map +1 -0
  60. package/src/core-i18n.js +219 -0
  61. package/src/core-i18n.js.map +1 -0
  62. package/src/core-plugin-factory.d.ts +28 -0
  63. package/src/core-plugin-factory.d.ts.map +1 -0
  64. package/src/core-plugin-factory.js +80 -0
  65. package/src/core-plugin-factory.js.map +1 -0
  66. package/src/core-string-key.d.ts +52 -0
  67. package/src/core-string-key.d.ts.map +1 -0
  68. package/src/core-string-key.js +61 -0
  69. package/src/core-string-key.js.map +1 -0
  70. package/src/create-translation-adapter.d.ts +33 -0
  71. package/src/create-translation-adapter.d.ts.map +1 -0
  72. package/src/create-translation-adapter.js +72 -0
  73. package/src/create-translation-adapter.js.map +1 -0
  74. package/src/enum-registry.d.ts +65 -0
  75. package/src/enum-registry.d.ts.map +1 -0
  76. package/src/enum-registry.js +123 -0
  77. package/src/enum-registry.js.map +1 -0
  78. package/src/errors/{base.ts → base.d.ts} +1 -1
  79. package/src/errors/base.d.ts.map +1 -0
  80. package/src/errors/base.js +11 -0
  81. package/src/errors/base.js.map +1 -0
  82. package/src/errors/context-error.d.ts +50 -0
  83. package/src/errors/context-error.d.ts.map +1 -0
  84. package/src/errors/context-error.js +93 -0
  85. package/src/errors/context-error.js.map +1 -0
  86. package/src/errors/enhanced-error-base.d.ts +125 -0
  87. package/src/errors/enhanced-error-base.d.ts.map +1 -0
  88. package/src/errors/enhanced-error-base.js +165 -0
  89. package/src/errors/enhanced-error-base.js.map +1 -0
  90. package/src/errors/handleable.d.ts +83 -0
  91. package/src/errors/handleable.d.ts.map +1 -0
  92. package/src/errors/handleable.js +136 -0
  93. package/src/errors/handleable.js.map +1 -0
  94. package/src/errors/i18n-error.d.ts +211 -0
  95. package/src/errors/i18n-error.d.ts.map +1 -0
  96. package/src/errors/i18n-error.js +358 -0
  97. package/src/errors/i18n-error.js.map +1 -0
  98. package/src/errors/{index.ts → index.d.ts} +1 -4
  99. package/src/errors/index.d.ts.map +1 -0
  100. package/src/errors/index.js +17 -0
  101. package/src/errors/index.js.map +1 -0
  102. package/src/errors/simple-typed-error.d.ts +53 -0
  103. package/src/errors/simple-typed-error.d.ts.map +1 -0
  104. package/src/errors/simple-typed-error.js +51 -0
  105. package/src/errors/simple-typed-error.js.map +1 -0
  106. package/src/errors/{translatable-exports.ts → translatable-exports.d.ts} +1 -1
  107. package/src/errors/translatable-exports.d.ts.map +1 -0
  108. package/src/errors/translatable-exports.js +15 -0
  109. package/src/errors/translatable-exports.js.map +1 -0
  110. package/src/errors/translatable-generic.d.ts +87 -0
  111. package/src/errors/translatable-generic.d.ts.map +1 -0
  112. package/src/errors/translatable-generic.js +139 -0
  113. package/src/errors/translatable-generic.js.map +1 -0
  114. package/src/errors/translatable-handleable-generic.d.ts +116 -0
  115. package/src/errors/translatable-handleable-generic.d.ts.map +1 -0
  116. package/src/errors/translatable-handleable-generic.js +121 -0
  117. package/src/errors/translatable-handleable-generic.js.map +1 -0
  118. package/src/errors/translatable.d.ts +63 -0
  119. package/src/errors/translatable.d.ts.map +1 -0
  120. package/src/errors/translatable.js +85 -0
  121. package/src/errors/translatable.js.map +1 -0
  122. package/src/errors/typed-handleable.d.ts +62 -0
  123. package/src/errors/typed-handleable.d.ts.map +1 -0
  124. package/src/errors/typed-handleable.js +108 -0
  125. package/src/errors/typed-handleable.js.map +1 -0
  126. package/src/errors/typed.d.ts +206 -0
  127. package/src/errors/typed.d.ts.map +1 -0
  128. package/src/errors/typed.js +458 -0
  129. package/src/errors/typed.js.map +1 -0
  130. package/src/gender/{gender-categories.ts → gender-categories.d.ts} +2 -6
  131. package/src/gender/gender-categories.d.ts.map +1 -0
  132. package/src/gender/gender-categories.js +15 -0
  133. package/src/gender/gender-categories.js.map +1 -0
  134. package/src/gender/gender-resolver.d.ts +14 -0
  135. package/src/gender/gender-resolver.d.ts.map +1 -0
  136. package/src/gender/gender-resolver.js +35 -0
  137. package/src/gender/gender-resolver.js.map +1 -0
  138. package/src/gender/{index.ts → index.d.ts} +1 -0
  139. package/src/gender/index.d.ts.map +1 -0
  140. package/src/gender/index.js +6 -0
  141. package/src/gender/index.js.map +1 -0
  142. package/src/global-active-context.d.ts +50 -0
  143. package/src/global-active-context.d.ts.map +1 -0
  144. package/src/global-active-context.js +185 -0
  145. package/src/global-active-context.js.map +1 -0
  146. package/src/icu/ast.d.ts +48 -0
  147. package/src/icu/ast.d.ts.map +1 -0
  148. package/src/icu/ast.js +16 -0
  149. package/src/icu/ast.js.map +1 -0
  150. package/src/icu/compiler.d.ts +16 -0
  151. package/src/icu/compiler.d.ts.map +1 -0
  152. package/src/icu/compiler.js +87 -0
  153. package/src/icu/compiler.js.map +1 -0
  154. package/src/icu/formatter-registry.d.ts +10 -0
  155. package/src/icu/formatter-registry.d.ts.map +1 -0
  156. package/src/icu/formatter-registry.js +34 -0
  157. package/src/icu/formatter-registry.js.map +1 -0
  158. package/src/icu/formatters/base-formatter.d.ts +8 -0
  159. package/src/icu/formatters/base-formatter.d.ts.map +1 -0
  160. package/src/icu/formatters/base-formatter.js +3 -0
  161. package/src/icu/formatters/base-formatter.js.map +1 -0
  162. package/src/icu/formatters/date-formatter.d.ts +5 -0
  163. package/src/icu/formatters/date-formatter.d.ts.map +1 -0
  164. package/src/icu/formatters/date-formatter.js +31 -0
  165. package/src/icu/formatters/date-formatter.js.map +1 -0
  166. package/src/icu/formatters/number-formatter.d.ts +5 -0
  167. package/src/icu/formatters/number-formatter.d.ts.map +1 -0
  168. package/src/icu/formatters/number-formatter.js +33 -0
  169. package/src/icu/formatters/number-formatter.js.map +1 -0
  170. package/src/icu/formatters/plural-formatter.d.ts +5 -0
  171. package/src/icu/formatters/plural-formatter.d.ts.map +1 -0
  172. package/src/icu/formatters/plural-formatter.js +15 -0
  173. package/src/icu/formatters/plural-formatter.js.map +1 -0
  174. package/src/icu/formatters/select-formatter.d.ts +5 -0
  175. package/src/icu/formatters/select-formatter.d.ts.map +1 -0
  176. package/src/icu/formatters/select-formatter.js +10 -0
  177. package/src/icu/formatters/select-formatter.js.map +1 -0
  178. package/src/icu/formatters/selectordinal-formatter.d.ts +5 -0
  179. package/src/icu/formatters/selectordinal-formatter.d.ts.map +1 -0
  180. package/src/icu/formatters/selectordinal-formatter.js +22 -0
  181. package/src/icu/formatters/selectordinal-formatter.js.map +1 -0
  182. package/src/icu/formatters/time-formatter.d.ts +5 -0
  183. package/src/icu/formatters/time-formatter.d.ts.map +1 -0
  184. package/src/icu/formatters/time-formatter.js +31 -0
  185. package/src/icu/formatters/time-formatter.js.map +1 -0
  186. package/src/icu/helpers.d.ts +9 -0
  187. package/src/icu/helpers.d.ts.map +1 -0
  188. package/src/icu/helpers.js +31 -0
  189. package/src/icu/helpers.js.map +1 -0
  190. package/src/icu/parser.d.ts +31 -0
  191. package/src/icu/parser.d.ts.map +1 -0
  192. package/src/icu/parser.js +203 -0
  193. package/src/icu/parser.js.map +1 -0
  194. package/src/icu/runtime.d.ts +10 -0
  195. package/src/icu/runtime.d.ts.map +1 -0
  196. package/src/icu/runtime.js +33 -0
  197. package/src/icu/runtime.js.map +1 -0
  198. package/src/icu/tokenizer.d.ts +37 -0
  199. package/src/icu/tokenizer.d.ts.map +1 -0
  200. package/src/icu/tokenizer.js +187 -0
  201. package/src/icu/tokenizer.js.map +1 -0
  202. package/src/icu/validator.d.ts +11 -0
  203. package/src/icu/validator.d.ts.map +1 -0
  204. package/src/icu/validator.js +140 -0
  205. package/src/icu/validator.js.map +1 -0
  206. package/src/{index.ts → index.d.ts} +6 -38
  207. package/src/index.d.ts.map +1 -0
  208. package/src/index.js +76 -0
  209. package/src/index.js.map +1 -0
  210. package/src/interfaces/active-context.interface.d.ts +36 -0
  211. package/src/interfaces/active-context.interface.d.ts.map +1 -0
  212. package/src/interfaces/active-context.interface.js +3 -0
  213. package/src/interfaces/active-context.interface.js.map +1 -0
  214. package/src/interfaces/component-config.interface.d.ts +16 -0
  215. package/src/interfaces/component-config.interface.d.ts.map +1 -0
  216. package/src/interfaces/component-config.interface.js +6 -0
  217. package/src/interfaces/component-config.interface.js.map +1 -0
  218. package/src/interfaces/engine-config.interface.d.ts +22 -0
  219. package/src/interfaces/engine-config.interface.d.ts.map +1 -0
  220. package/src/interfaces/engine-config.interface.js +6 -0
  221. package/src/interfaces/engine-config.interface.js.map +1 -0
  222. package/src/interfaces/global-active-context.d.ts +23 -0
  223. package/src/interfaces/global-active-context.d.ts.map +1 -0
  224. package/src/interfaces/global-active-context.js +3 -0
  225. package/src/interfaces/global-active-context.js.map +1 -0
  226. package/src/interfaces/handleable-error-options.d.ts +14 -0
  227. package/src/interfaces/handleable-error-options.d.ts.map +1 -0
  228. package/src/interfaces/handleable-error-options.js +3 -0
  229. package/src/interfaces/handleable-error-options.js.map +1 -0
  230. package/src/interfaces/handleable.d.ts +21 -0
  231. package/src/interfaces/handleable.d.ts.map +1 -0
  232. package/src/interfaces/handleable.js +3 -0
  233. package/src/interfaces/handleable.js.map +1 -0
  234. package/src/interfaces/i18n-engine.interface.d.ts +46 -0
  235. package/src/interfaces/i18n-engine.interface.d.ts.map +1 -0
  236. package/src/interfaces/i18n-engine.interface.js +6 -0
  237. package/src/interfaces/i18n-engine.interface.js.map +1 -0
  238. package/src/interfaces/{index.ts → index.d.ts} +1 -1
  239. package/src/interfaces/index.d.ts.map +1 -0
  240. package/src/interfaces/index.js +7 -0
  241. package/src/interfaces/index.js.map +1 -0
  242. package/src/interfaces/language-definition.interface.d.ts +17 -0
  243. package/src/interfaces/language-definition.interface.d.ts.map +1 -0
  244. package/src/interfaces/language-definition.interface.js +6 -0
  245. package/src/interfaces/language-definition.interface.js.map +1 -0
  246. package/src/interfaces/translation-options.interface.d.ts +15 -0
  247. package/src/interfaces/translation-options.interface.d.ts.map +1 -0
  248. package/src/interfaces/translation-options.interface.js +6 -0
  249. package/src/interfaces/translation-options.interface.js.map +1 -0
  250. package/src/interfaces/validation-result.interface.d.ts +24 -0
  251. package/src/interfaces/validation-result.interface.d.ts.map +1 -0
  252. package/src/interfaces/validation-result.interface.js +6 -0
  253. package/src/interfaces/validation-result.interface.js.map +1 -0
  254. package/src/language-codes.d.ts +28 -0
  255. package/src/language-codes.d.ts.map +1 -0
  256. package/src/language-codes.js +32 -0
  257. package/src/language-codes.js.map +1 -0
  258. package/src/language-definition.d.ts +14 -0
  259. package/src/language-definition.d.ts.map +1 -0
  260. package/src/language-definition.js +3 -0
  261. package/src/language-definition.js.map +1 -0
  262. package/src/plugin-i18n-engine.d.ts +164 -0
  263. package/src/plugin-i18n-engine.d.ts.map +1 -0
  264. package/src/plugin-i18n-engine.js +493 -0
  265. package/src/plugin-i18n-engine.js.map +1 -0
  266. package/src/pluralization/{index.ts → index.d.ts} +1 -1
  267. package/src/pluralization/index.d.ts.map +1 -0
  268. package/src/pluralization/index.js +10 -0
  269. package/src/pluralization/index.js.map +1 -0
  270. package/src/pluralization/language-plural-map.d.ts +29 -0
  271. package/src/pluralization/language-plural-map.d.ts.map +1 -0
  272. package/src/pluralization/language-plural-map.js +155 -0
  273. package/src/pluralization/language-plural-map.js.map +1 -0
  274. package/src/pluralization/{plural-categories.ts → plural-categories.d.ts} +3 -5
  275. package/src/pluralization/plural-categories.d.ts.map +1 -0
  276. package/src/pluralization/plural-categories.js +8 -0
  277. package/src/pluralization/plural-categories.js.map +1 -0
  278. package/src/pluralization/plural-rules.d.ts +102 -0
  279. package/src/pluralization/plural-rules.d.ts.map +1 -0
  280. package/src/pluralization/plural-rules.js +263 -0
  281. package/src/pluralization/plural-rules.js.map +1 -0
  282. package/src/registry-config.d.ts +16 -0
  283. package/src/registry-config.d.ts.map +1 -0
  284. package/src/registry-config.js +3 -0
  285. package/src/registry-config.js.map +1 -0
  286. package/src/registry-error-type.d.ts +20 -0
  287. package/src/registry-error-type.d.ts.map +1 -0
  288. package/src/registry-error-type.js +24 -0
  289. package/src/registry-error-type.js.map +1 -0
  290. package/src/registry-error.d.ts +25 -0
  291. package/src/registry-error.d.ts.map +1 -0
  292. package/src/registry-error.js +63 -0
  293. package/src/registry-error.js.map +1 -0
  294. package/src/strict-types.d.ts +19 -0
  295. package/src/strict-types.d.ts.map +1 -0
  296. package/src/strict-types.js +18 -0
  297. package/src/strict-types.js.map +1 -0
  298. package/src/strings/de.d.ts +3 -0
  299. package/src/strings/de.d.ts.map +1 -0
  300. package/src/strings/de.js +57 -0
  301. package/src/strings/de.js.map +1 -0
  302. package/src/strings/en-GB.d.ts +3 -0
  303. package/src/strings/en-GB.d.ts.map +1 -0
  304. package/src/strings/en-GB.js +57 -0
  305. package/src/strings/en-GB.js.map +1 -0
  306. package/src/strings/en-US.d.ts +3 -0
  307. package/src/strings/en-US.d.ts.map +1 -0
  308. package/src/strings/en-US.js +57 -0
  309. package/src/strings/en-US.js.map +1 -0
  310. package/src/strings/es.d.ts +3 -0
  311. package/src/strings/es.d.ts.map +1 -0
  312. package/src/strings/es.js +57 -0
  313. package/src/strings/es.js.map +1 -0
  314. package/src/strings/fr.d.ts +3 -0
  315. package/src/strings/fr.d.ts.map +1 -0
  316. package/src/strings/fr.js +57 -0
  317. package/src/strings/fr.js.map +1 -0
  318. package/src/strings/ja.d.ts +3 -0
  319. package/src/strings/ja.d.ts.map +1 -0
  320. package/src/strings/ja.js +57 -0
  321. package/src/strings/ja.js.map +1 -0
  322. package/src/strings/uk.d.ts +3 -0
  323. package/src/strings/uk.d.ts.map +1 -0
  324. package/src/strings/uk.js +57 -0
  325. package/src/strings/uk.js.map +1 -0
  326. package/src/strings/zh-CN.d.ts +3 -0
  327. package/src/strings/zh-CN.d.ts.map +1 -0
  328. package/src/strings/zh-CN.js +57 -0
  329. package/src/strings/zh-CN.js.map +1 -0
  330. package/src/template.d.ts +13 -0
  331. package/src/template.d.ts.map +1 -0
  332. package/src/template.js +40 -0
  333. package/src/template.js.map +1 -0
  334. package/src/translation-engine.d.ts +9 -0
  335. package/src/translation-engine.d.ts.map +1 -0
  336. package/src/translation-engine.js +3 -0
  337. package/src/translation-engine.js.map +1 -0
  338. package/src/translation-request.d.ts +10 -0
  339. package/src/translation-request.d.ts.map +1 -0
  340. package/src/translation-request.js +3 -0
  341. package/src/translation-request.js.map +1 -0
  342. package/src/translation-response.d.ts +9 -0
  343. package/src/translation-response.d.ts.map +1 -0
  344. package/src/translation-response.js +3 -0
  345. package/src/translation-response.js.map +1 -0
  346. package/src/types/engine.d.ts +47 -0
  347. package/src/types/engine.d.ts.map +1 -0
  348. package/src/types/engine.js +8 -0
  349. package/src/types/engine.js.map +1 -0
  350. package/src/types/{index.ts → index.d.ts} +1 -1
  351. package/src/types/index.d.ts.map +1 -0
  352. package/src/types/index.js +9 -0
  353. package/src/types/index.js.map +1 -0
  354. package/src/types/{plural-types.ts → plural-types.d.ts} +3 -29
  355. package/src/types/plural-types.d.ts.map +1 -0
  356. package/src/types/plural-types.js +39 -0
  357. package/src/types/plural-types.js.map +1 -0
  358. package/src/{types.ts → types.d.ts} +21 -72
  359. package/src/types.d.ts.map +1 -0
  360. package/src/types.js +23 -0
  361. package/src/types.js.map +1 -0
  362. package/src/utils/currency.d.ts +81 -0
  363. package/src/utils/currency.d.ts.map +1 -0
  364. package/src/utils/currency.js +99 -0
  365. package/src/utils/currency.js.map +1 -0
  366. package/src/utils/html-escape.d.ts +22 -0
  367. package/src/utils/html-escape.d.ts.map +1 -0
  368. package/src/utils/html-escape.js +53 -0
  369. package/src/utils/html-escape.js.map +1 -0
  370. package/src/utils/{index.ts → index.d.ts} +1 -0
  371. package/src/utils/index.d.ts.map +1 -0
  372. package/src/utils/index.js +12 -0
  373. package/src/utils/index.js.map +1 -0
  374. package/src/utils/lru-cache.d.ts +42 -0
  375. package/src/utils/lru-cache.d.ts.map +1 -0
  376. package/src/utils/lru-cache.js +73 -0
  377. package/src/utils/lru-cache.js.map +1 -0
  378. package/src/utils/{plural-helpers.ts → plural-helpers.d.ts} +4 -14
  379. package/src/utils/plural-helpers.d.ts.map +1 -0
  380. package/src/utils/plural-helpers.js +35 -0
  381. package/src/utils/plural-helpers.js.map +1 -0
  382. package/src/utils/safe-object.d.ts +39 -0
  383. package/src/utils/safe-object.d.ts.map +1 -0
  384. package/src/utils/{safe-object.ts → safe-object.js} +34 -37
  385. package/src/utils/safe-object.js.map +1 -0
  386. package/src/utils/string-utils.d.ts +28 -0
  387. package/src/utils/string-utils.d.ts.map +1 -0
  388. package/src/utils/string-utils.js +63 -0
  389. package/src/utils/string-utils.js.map +1 -0
  390. package/src/utils/timezone.d.ts +50 -0
  391. package/src/utils/timezone.d.ts.map +1 -0
  392. package/src/utils/timezone.js +74 -0
  393. package/src/utils/timezone.js.map +1 -0
  394. package/src/utils/validation.d.ts +40 -0
  395. package/src/utils/validation.d.ts.map +1 -0
  396. package/src/utils/validation.js +69 -0
  397. package/src/utils/validation.js.map +1 -0
  398. package/src/utils.d.ts +65 -0
  399. package/src/utils.d.ts.map +1 -0
  400. package/src/utils.js +129 -0
  401. package/src/utils.js.map +1 -0
  402. package/src/validation/{index.ts → index.d.ts} +1 -0
  403. package/src/validation/index.d.ts.map +1 -0
  404. package/src/validation/index.js +5 -0
  405. package/src/validation/index.js.map +1 -0
  406. package/src/validation/plural-validator.d.ts +46 -0
  407. package/src/validation/plural-validator.d.ts.map +1 -0
  408. package/src/validation/plural-validator.js +123 -0
  409. package/src/validation/plural-validator.js.map +1 -0
  410. package/src/validation-config.d.ts +12 -0
  411. package/src/validation-config.d.ts.map +1 -0
  412. package/src/validation-config.js +3 -0
  413. package/src/validation-config.js.map +1 -0
  414. package/src/validation-result.d.ts +13 -0
  415. package/src/validation-result.d.ts.map +1 -0
  416. package/src/validation-result.js +3 -0
  417. package/src/validation-result.js.map +1 -0
  418. package/LICENSE +0 -21
  419. package/src/builders/i18n-builder.ts +0 -82
  420. package/src/component-definition.ts +0 -11
  421. package/src/component-registration.ts +0 -29
  422. package/src/component-registry.ts +0 -432
  423. package/src/context-error-type.ts +0 -7
  424. package/src/core/component-store.ts +0 -241
  425. package/src/core/context-manager.ts +0 -113
  426. package/src/core/enum-registry.ts +0 -106
  427. package/src/core/i18n-engine.ts +0 -710
  428. package/src/core/language-registry.ts +0 -345
  429. package/src/core-i18n.ts +0 -270
  430. package/src/core-plugin-factory.ts +0 -111
  431. package/src/core-string-key.ts +0 -59
  432. package/src/create-translation-adapter.ts +0 -93
  433. package/src/enum-registry.ts +0 -152
  434. package/src/errors/context-error.ts +0 -122
  435. package/src/errors/enhanced-error-base.ts +0 -260
  436. package/src/errors/handleable.ts +0 -152
  437. package/src/errors/i18n-error.ts +0 -494
  438. package/src/errors/simple-typed-error.ts +0 -81
  439. package/src/errors/translatable-generic.ts +0 -245
  440. package/src/errors/translatable-handleable-generic.ts +0 -222
  441. package/src/errors/translatable.ts +0 -138
  442. package/src/errors/typed-handleable.ts +0 -138
  443. package/src/errors/typed.ts +0 -617
  444. package/src/gender/gender-resolver.ts +0 -40
  445. package/src/global-active-context.ts +0 -266
  446. package/src/icu/ast.ts +0 -56
  447. package/src/icu/compiler.ts +0 -96
  448. package/src/icu/formatter-registry.ts +0 -36
  449. package/src/icu/formatters/base-formatter.ts +0 -8
  450. package/src/icu/formatters/date-formatter.ts +0 -30
  451. package/src/icu/formatters/number-formatter.ts +0 -32
  452. package/src/icu/formatters/plural-formatter.ts +0 -12
  453. package/src/icu/formatters/select-formatter.ts +0 -7
  454. package/src/icu/formatters/selectordinal-formatter.ts +0 -17
  455. package/src/icu/formatters/time-formatter.ts +0 -30
  456. package/src/icu/helpers.ts +0 -34
  457. package/src/icu/parser.ts +0 -242
  458. package/src/icu/runtime.ts +0 -37
  459. package/src/icu/tokenizer.ts +0 -212
  460. package/src/icu/validator.ts +0 -163
  461. package/src/interfaces/active-context.interface.ts +0 -41
  462. package/src/interfaces/component-config.interface.ts +0 -17
  463. package/src/interfaces/engine-config.interface.ts +0 -22
  464. package/src/interfaces/global-active-context.ts +0 -39
  465. package/src/interfaces/handleable-error-options.ts +0 -13
  466. package/src/interfaces/handleable.ts +0 -20
  467. package/src/interfaces/i18n-engine.interface.ts +0 -57
  468. package/src/interfaces/language-definition.interface.ts +0 -17
  469. package/src/interfaces/translation-options.interface.ts +0 -15
  470. package/src/interfaces/validation-result.interface.ts +0 -24
  471. package/src/language-codes.ts +0 -40
  472. package/src/language-definition.ts +0 -13
  473. package/src/plugin-i18n-engine.ts +0 -707
  474. package/src/pluralization/language-plural-map.ts +0 -186
  475. package/src/pluralization/plural-rules.ts +0 -228
  476. package/src/registry-config.ts +0 -16
  477. package/src/registry-error-type.ts +0 -19
  478. package/src/registry-error.ts +0 -100
  479. package/src/strict-types.ts +0 -35
  480. package/src/strings/de.ts +0 -75
  481. package/src/strings/en-GB.ts +0 -74
  482. package/src/strings/en-US.ts +0 -74
  483. package/src/strings/es.ts +0 -74
  484. package/src/strings/fr.ts +0 -75
  485. package/src/strings/ja.ts +0 -73
  486. package/src/strings/uk.ts +0 -73
  487. package/src/strings/zh-CN.ts +0 -72
  488. package/src/template.ts +0 -72
  489. package/src/translation-engine.ts +0 -18
  490. package/src/translation-request.ts +0 -12
  491. package/src/translation-response.ts +0 -8
  492. package/src/types/engine.ts +0 -55
  493. package/src/utils/currency.ts +0 -141
  494. package/src/utils/html-escape.ts +0 -55
  495. package/src/utils/lru-cache.ts +0 -76
  496. package/src/utils/string-utils.ts +0 -77
  497. package/src/utils/timezone.ts +0 -76
  498. package/src/utils/validation.ts +0 -66
  499. package/src/utils.ts +0 -215
  500. package/src/validation/plural-validator.ts +0 -168
  501. package/src/validation-config.ts +0 -11
  502. package/src/validation-result.ts +0 -12
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ /**
3
+ * ICU MessageFormat Tokenizer
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Tokenizer = exports.TokenType = void 0;
7
+ var TokenType;
8
+ (function (TokenType) {
9
+ TokenType["TEXT"] = "TEXT";
10
+ TokenType["OPEN_BRACE"] = "OPEN_BRACE";
11
+ TokenType["CLOSE_BRACE"] = "CLOSE_BRACE";
12
+ TokenType["COMMA"] = "COMMA";
13
+ TokenType["HASH"] = "HASH";
14
+ TokenType["IDENTIFIER"] = "IDENTIFIER";
15
+ TokenType["EOF"] = "EOF";
16
+ })(TokenType || (exports.TokenType = TokenType = {}));
17
+ class Tokenizer {
18
+ input;
19
+ position = 0;
20
+ length;
21
+ braceDepth = 0;
22
+ lastTokenType = null;
23
+ formatDepths = new Set(); // Tracks which depths are format specs
24
+ lastIdentifierWasAtFormatDepth = false;
25
+ constructor(input) {
26
+ this.input = input;
27
+ this.length = input.length;
28
+ }
29
+ tokenize() {
30
+ const tokens = [];
31
+ while (this.position < this.length) {
32
+ const token = this.nextToken();
33
+ if (token.type !== TokenType.EOF) {
34
+ tokens.push(token);
35
+ }
36
+ }
37
+ tokens.push({ type: TokenType.EOF, value: '', position: this.position });
38
+ return tokens;
39
+ }
40
+ nextToken() {
41
+ if (this.position >= this.length) {
42
+ return { type: TokenType.EOF, value: '', position: this.position };
43
+ }
44
+ const char = this.input[this.position];
45
+ // Handle escape sequences - quoted braces
46
+ if (char === "'") {
47
+ const next = this.peek();
48
+ if (next === '{' || next === '}') {
49
+ const pos = this.position;
50
+ this.position++; // Skip quote
51
+ this.position++; // Skip brace
52
+ return { type: TokenType.TEXT, value: next, position: pos };
53
+ }
54
+ }
55
+ // Special characters
56
+ if (char === '{') {
57
+ const prevDepth = this.braceDepth;
58
+ this.braceDepth++;
59
+ // Add to format depths if:
60
+ // 1. Start of message (null)
61
+ // 2. After TEXT - new format in message (unless after case name)
62
+ // 3. After CLOSE_BRACE at depth 0 - consecutive formats
63
+ // 4. After OPEN_BRACE - nested format (unless after case name)
64
+ // NOT after IDENTIFIER at format depth - that's a case name, next brace is message content
65
+ if (this.lastTokenType === null ||
66
+ (this.lastTokenType === TokenType.TEXT && !this.lastIdentifierWasAtFormatDepth) ||
67
+ (this.lastTokenType === TokenType.CLOSE_BRACE && prevDepth === 0) ||
68
+ (this.lastTokenType === TokenType.OPEN_BRACE && !this.lastIdentifierWasAtFormatDepth)) {
69
+ this.formatDepths.add(this.braceDepth);
70
+ }
71
+ this.lastIdentifierWasAtFormatDepth = false;
72
+ const token = { type: TokenType.OPEN_BRACE, value: char, position: this.position++ };
73
+ this.lastTokenType = TokenType.OPEN_BRACE;
74
+ return token;
75
+ }
76
+ if (char === '}') {
77
+ this.formatDepths.delete(this.braceDepth);
78
+ this.braceDepth--;
79
+ this.lastIdentifierWasAtFormatDepth = false; // Reset after closing
80
+ const token = { type: TokenType.CLOSE_BRACE, value: char, position: this.position++ };
81
+ this.lastTokenType = TokenType.CLOSE_BRACE;
82
+ return token;
83
+ }
84
+ if (char === ',') {
85
+ // Comma at depth 1+ is format separator, at depth 0 is text
86
+ if (this.braceDepth >= 1) {
87
+ const token = { type: TokenType.COMMA, value: char, position: this.position++ };
88
+ this.lastTokenType = TokenType.COMMA;
89
+ return token;
90
+ }
91
+ // At depth 0, comma is just text
92
+ return this.readText();
93
+ }
94
+ if (char === '#') {
95
+ return { type: TokenType.HASH, value: char, position: this.position++ };
96
+ }
97
+ // Whitespace - skip at format level OR after identifier at depth 1
98
+ if (this.isWhitespace(char) && (this.isAtFormatLevel() || (this.braceDepth === 1 && this.lastTokenType === TokenType.IDENTIFIER))) {
99
+ this.position++;
100
+ return this.nextToken();
101
+ }
102
+ // Identifier (variable names, keywords) - at format level
103
+ if (this.isIdentifierStart(char)) {
104
+ if (this.isAtFormatLevel()) {
105
+ return this.readIdentifier();
106
+ }
107
+ }
108
+ // Text (everything else)
109
+ return this.readText();
110
+ }
111
+ readIdentifier() {
112
+ const start = this.position;
113
+ while (this.position < this.length && this.isIdentifierChar(this.input[this.position])) {
114
+ this.position++;
115
+ }
116
+ const token = {
117
+ type: TokenType.IDENTIFIER,
118
+ value: this.input.substring(start, this.position),
119
+ position: start,
120
+ };
121
+ this.lastTokenType = TokenType.IDENTIFIER;
122
+ this.lastIdentifierWasAtFormatDepth = this.formatDepths.has(this.braceDepth);
123
+ return token;
124
+ }
125
+ readText() {
126
+ const start = this.position;
127
+ let text = '';
128
+ while (this.position < this.length) {
129
+ const char = this.input[this.position];
130
+ // Handle escaped quotes - stop before them
131
+ if (char === "'" && (this.peek() === '{' || this.peek() === '}')) {
132
+ break;
133
+ }
134
+ // Stop at special characters (but not if they're escaped)
135
+ if (char === '{' || char === '#') {
136
+ break;
137
+ }
138
+ // For }, only stop if we're inside braces
139
+ if (char === '}' && this.braceDepth > 0) {
140
+ break;
141
+ }
142
+ // Stop at comma if we're at format level (depth >= 1)
143
+ if (char === ',' && this.braceDepth >= 1) {
144
+ break;
145
+ }
146
+ text += char;
147
+ this.position++;
148
+ }
149
+ const token = {
150
+ type: TokenType.TEXT,
151
+ value: text,
152
+ position: start,
153
+ };
154
+ this.lastTokenType = TokenType.TEXT;
155
+ // Don't reset the identifier flag for whitespace-only text
156
+ if (text.trim() !== '') {
157
+ this.lastIdentifierWasAtFormatDepth = false;
158
+ }
159
+ return token;
160
+ }
161
+ peek() {
162
+ return this.position + 1 < this.length ? this.input[this.position + 1] : '';
163
+ }
164
+ isIdentifierStart(char) {
165
+ return /[a-zA-Z_]/.test(char);
166
+ }
167
+ isIdentifierChar(char) {
168
+ return /[a-zA-Z0-9_]/.test(char);
169
+ }
170
+ isWhitespace(char) {
171
+ return /\s/.test(char);
172
+ }
173
+ isAtFormatLevel() {
174
+ // We're at format level if current depth is marked as format AND:
175
+ // 1. After OPEN_BRACE (expecting variable name)
176
+ // 2. After COMMA (expecting format type or case name)
177
+ // 3. After CLOSE_BRACE (just finished a case message, expecting another case name)
178
+ if (!this.formatDepths.has(this.braceDepth)) {
179
+ return false;
180
+ }
181
+ return this.lastTokenType === TokenType.OPEN_BRACE ||
182
+ this.lastTokenType === TokenType.COMMA ||
183
+ this.lastTokenType === TokenType.CLOSE_BRACE;
184
+ }
185
+ }
186
+ exports.Tokenizer = Tokenizer;
187
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/tokenizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { MessageNode } from './ast';
2
+ export declare class ValidationError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export interface ValidationOptions {
6
+ requireOtherCase?: boolean;
7
+ allowCircularReferences?: boolean;
8
+ maxDepth?: number;
9
+ }
10
+ export declare function validate(ast: MessageNode, options?: ValidationOptions): void;
11
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqE,MAAM,OAAO,CAAC;AAEvG,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAIhF"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationError = void 0;
4
+ exports.validate = validate;
5
+ const ast_1 = require("./ast");
6
+ class ValidationError extends Error {
7
+ constructor(message) {
8
+ super(message);
9
+ this.name = 'ValidationError';
10
+ }
11
+ }
12
+ exports.ValidationError = ValidationError;
13
+ const DEFAULT_OPTIONS = {
14
+ requireOtherCase: true,
15
+ allowCircularReferences: false,
16
+ maxDepth: 10,
17
+ };
18
+ function validate(ast, options = {}) {
19
+ const opts = { ...DEFAULT_OPTIONS, ...options };
20
+ const context = new ValidationContext(opts);
21
+ validateMessage(ast, context);
22
+ }
23
+ class ValidationContext {
24
+ options;
25
+ argumentNames = new Set();
26
+ currentDepth = 0;
27
+ constructor(options) {
28
+ this.options = options;
29
+ }
30
+ addArgument(name) {
31
+ this.argumentNames.add(name);
32
+ }
33
+ hasArgument(name) {
34
+ return this.argumentNames.has(name);
35
+ }
36
+ enterDepth() {
37
+ this.currentDepth++;
38
+ if (this.currentDepth > this.options.maxDepth) {
39
+ throw new ValidationError(`Maximum nesting depth of ${this.options.maxDepth} exceeded`);
40
+ }
41
+ }
42
+ exitDepth() {
43
+ this.currentDepth--;
44
+ }
45
+ }
46
+ function validateMessage(node, context) {
47
+ for (const element of node.elements) {
48
+ validateNode(element, context);
49
+ }
50
+ }
51
+ function validateNode(node, context) {
52
+ switch (node.type) {
53
+ case ast_1.NodeType.LITERAL:
54
+ break;
55
+ case ast_1.NodeType.ARGUMENT:
56
+ validateArgument(node, context);
57
+ break;
58
+ case ast_1.NodeType.PLURAL:
59
+ validatePlural(node, context);
60
+ break;
61
+ case ast_1.NodeType.SELECT:
62
+ validateSelect(node, context);
63
+ break;
64
+ case ast_1.NodeType.SELECTORDINAL:
65
+ validateSelectOrdinal(node, context);
66
+ break;
67
+ default:
68
+ throw new ValidationError(`Unknown node type: ${node.type}`);
69
+ }
70
+ }
71
+ function validateArgument(node, context) {
72
+ if (!node.name || node.name.trim() === '') {
73
+ throw new ValidationError('Argument name cannot be empty');
74
+ }
75
+ context.addArgument(node.name);
76
+ }
77
+ function validatePlural(node, context) {
78
+ if (!node.name || node.name.trim() === '') {
79
+ throw new ValidationError('Plural variable name cannot be empty');
80
+ }
81
+ context.addArgument(node.name);
82
+ if (!node.cases || Object.keys(node.cases).length === 0) {
83
+ throw new ValidationError(`Plural '${node.name}' must have at least one case`);
84
+ }
85
+ if (context.options.requireOtherCase && !node.cases.other) {
86
+ throw new ValidationError(`Plural '${node.name}' must have an 'other' case`);
87
+ }
88
+ const validCases = ['zero', 'one', 'two', 'few', 'many', 'other'];
89
+ for (const caseName of Object.keys(node.cases)) {
90
+ if (!validCases.includes(caseName)) {
91
+ throw new ValidationError(`Invalid plural case '${caseName}' in '${node.name}'`);
92
+ }
93
+ }
94
+ context.enterDepth();
95
+ for (const caseMessage of Object.values(node.cases)) {
96
+ validateMessage(caseMessage, context);
97
+ }
98
+ context.exitDepth();
99
+ }
100
+ function validateSelect(node, context) {
101
+ if (!node.name || node.name.trim() === '') {
102
+ throw new ValidationError('Select variable name cannot be empty');
103
+ }
104
+ context.addArgument(node.name);
105
+ if (!node.cases || Object.keys(node.cases).length === 0) {
106
+ throw new ValidationError(`Select '${node.name}' must have at least one case`);
107
+ }
108
+ if (context.options.requireOtherCase && !node.cases.other) {
109
+ throw new ValidationError(`Select '${node.name}' must have an 'other' case`);
110
+ }
111
+ context.enterDepth();
112
+ for (const caseMessage of Object.values(node.cases)) {
113
+ validateMessage(caseMessage, context);
114
+ }
115
+ context.exitDepth();
116
+ }
117
+ function validateSelectOrdinal(node, context) {
118
+ if (!node.name || node.name.trim() === '') {
119
+ throw new ValidationError('SelectOrdinal variable name cannot be empty');
120
+ }
121
+ context.addArgument(node.name);
122
+ if (!node.cases || Object.keys(node.cases).length === 0) {
123
+ throw new ValidationError(`SelectOrdinal '${node.name}' must have at least one case`);
124
+ }
125
+ if (context.options.requireOtherCase && !node.cases.other) {
126
+ throw new ValidationError(`SelectOrdinal '${node.name}' must have an 'other' case`);
127
+ }
128
+ const validCases = ['zero', 'one', 'two', 'few', 'many', 'other'];
129
+ for (const caseName of Object.keys(node.cases)) {
130
+ if (!validCases.includes(caseName)) {
131
+ throw new ValidationError(`Invalid selectordinal case '${caseName}' in '${node.name}'`);
132
+ }
133
+ }
134
+ context.enterDepth();
135
+ for (const caseMessage of Object.values(node.cases)) {
136
+ validateMessage(caseMessage, context);
137
+ }
138
+ context.exitDepth();
139
+ }
140
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/validator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- // V2 Exports (primary)
2
1
  export * from './builders';
3
2
  export * from './core';
4
3
  export * from './errors';
@@ -8,37 +7,18 @@ export * from './pluralization';
8
7
  export * from './types';
9
8
  export * from './utils';
10
9
  export * from './validation';
11
-
12
- // Explicit exports for type safety
13
10
  export type { GenderedString } from './gender/gender-categories';
14
11
  export type { PluralString } from './types/plural-types';
15
12
  export { CurrencyCode, getCurrencyFormat } from './utils/currency';
16
- export type {
17
- CurrencyData,
18
- CurrencyFormat,
19
- CurrencyPosition,
20
- } from './utils/currency';
21
- export {
22
- createGenderedString,
23
- createPluralString,
24
- } from './utils/plural-helpers';
13
+ export type { CurrencyData, CurrencyFormat, CurrencyPosition, } from './utils/currency';
14
+ export { createGenderedString, createPluralString, } from './utils/plural-helpers';
25
15
  export { isValidTimezone, Timezone } from './utils/timezone';
26
-
27
- // Convenience aliases
28
16
  export { I18nBuilder as Builder } from './builders/i18n-builder';
29
17
  export { I18nEngine as I18n } from './core/i18n-engine';
30
-
31
- // Reset utility
32
- import { I18nEngine } from './core/i18n-engine';
33
- export function resetAll(): void {
34
- I18nEngine.resetAll();
35
- }
36
-
37
- // Legacy exports (deprecated - for backwards compatibility)
18
+ export declare function resetAll(): void;
38
19
  export * from './active-context';
39
20
  export * from './component-definition';
40
21
  export * from './global-active-context';
41
- // export * from './language-registry'; // Removed - conflicts with v2 core/language-registry
42
22
  export * from './component-registration';
43
23
  export * from './component-registry';
44
24
  export * from './context-error-type';
@@ -59,20 +39,8 @@ export * from './translation-request';
59
39
  export * from './translation-response';
60
40
  export * from './types';
61
41
  export * from './validation-config';
62
-
63
- // Legacy convenience exports
64
- export {
65
- createCorePluginI18nEngine as createCoreI18n,
66
- createCorePluginI18nEngine as createCoreI18nEngine,
67
- getCorePluginTranslation as getCoreTranslation,
68
- safeCorePluginTranslation as safeCoreTranslation,
69
- } from './core-plugin-factory';
70
- // Export core plugin factory functions
42
+ export { createCorePluginI18nEngine as createCoreI18n, createCorePluginI18nEngine as createCoreI18nEngine, getCorePluginTranslation as getCoreTranslation, safeCorePluginTranslation as safeCoreTranslation, } from './core-plugin-factory';
71
43
  export * from './core-plugin-factory';
72
44
  export { PluginI18nEngine as PluginI18n } from './plugin-i18n-engine';
73
-
74
- // Legacy testing utilities
75
- import { PluginI18nEngine } from './plugin-i18n-engine';
76
- export function resetAllI18nEngines(): void {
77
- PluginI18nEngine.resetAll();
78
- }
45
+ export declare function resetAllI18nEngines(): void;
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAG7B,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAIxD,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAGD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EACL,0BAA0B,IAAI,cAAc,EAC5C,0BAA0B,IAAI,oBAAoB,EAClD,wBAAwB,IAAI,kBAAkB,EAC9C,yBAAyB,IAAI,mBAAmB,GACjD,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAItE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
package/src/index.js ADDED
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PluginI18n = exports.safeCoreTranslation = exports.getCoreTranslation = exports.createCoreI18nEngine = exports.createCoreI18n = exports.I18n = exports.Builder = exports.Timezone = exports.isValidTimezone = exports.createPluralString = exports.createGenderedString = exports.getCurrencyFormat = exports.CurrencyCode = void 0;
4
+ exports.resetAll = resetAll;
5
+ exports.resetAllI18nEngines = resetAllI18nEngines;
6
+ const tslib_1 = require("tslib");
7
+ // V2 Exports (primary)
8
+ tslib_1.__exportStar(require("./builders"), exports);
9
+ tslib_1.__exportStar(require("./core"), exports);
10
+ tslib_1.__exportStar(require("./errors"), exports);
11
+ tslib_1.__exportStar(require("./gender"), exports);
12
+ tslib_1.__exportStar(require("./interfaces"), exports);
13
+ tslib_1.__exportStar(require("./pluralization"), exports);
14
+ tslib_1.__exportStar(require("./types"), exports);
15
+ tslib_1.__exportStar(require("./utils"), exports);
16
+ tslib_1.__exportStar(require("./validation"), exports);
17
+ var currency_1 = require("./utils/currency");
18
+ Object.defineProperty(exports, "CurrencyCode", { enumerable: true, get: function () { return currency_1.CurrencyCode; } });
19
+ Object.defineProperty(exports, "getCurrencyFormat", { enumerable: true, get: function () { return currency_1.getCurrencyFormat; } });
20
+ var plural_helpers_1 = require("./utils/plural-helpers");
21
+ Object.defineProperty(exports, "createGenderedString", { enumerable: true, get: function () { return plural_helpers_1.createGenderedString; } });
22
+ Object.defineProperty(exports, "createPluralString", { enumerable: true, get: function () { return plural_helpers_1.createPluralString; } });
23
+ var timezone_1 = require("./utils/timezone");
24
+ Object.defineProperty(exports, "isValidTimezone", { enumerable: true, get: function () { return timezone_1.isValidTimezone; } });
25
+ Object.defineProperty(exports, "Timezone", { enumerable: true, get: function () { return timezone_1.Timezone; } });
26
+ // Convenience aliases
27
+ var i18n_builder_1 = require("./builders/i18n-builder");
28
+ Object.defineProperty(exports, "Builder", { enumerable: true, get: function () { return i18n_builder_1.I18nBuilder; } });
29
+ var i18n_engine_1 = require("./core/i18n-engine");
30
+ Object.defineProperty(exports, "I18n", { enumerable: true, get: function () { return i18n_engine_1.I18nEngine; } });
31
+ // Reset utility
32
+ const i18n_engine_2 = require("./core/i18n-engine");
33
+ function resetAll() {
34
+ i18n_engine_2.I18nEngine.resetAll();
35
+ }
36
+ // Legacy exports (deprecated - for backwards compatibility)
37
+ tslib_1.__exportStar(require("./active-context"), exports);
38
+ tslib_1.__exportStar(require("./component-definition"), exports);
39
+ tslib_1.__exportStar(require("./global-active-context"), exports);
40
+ // export * from './language-registry'; // Removed - conflicts with v2 core/language-registry
41
+ tslib_1.__exportStar(require("./component-registration"), exports);
42
+ tslib_1.__exportStar(require("./component-registry"), exports);
43
+ tslib_1.__exportStar(require("./context-error-type"), exports);
44
+ tslib_1.__exportStar(require("./core-i18n"), exports);
45
+ tslib_1.__exportStar(require("./core-string-key"), exports);
46
+ tslib_1.__exportStar(require("./create-translation-adapter"), exports);
47
+ tslib_1.__exportStar(require("./enum-registry"), exports);
48
+ tslib_1.__exportStar(require("./interfaces/handleable"), exports);
49
+ tslib_1.__exportStar(require("./interfaces/handleable-error-options"), exports);
50
+ tslib_1.__exportStar(require("./language-codes"), exports);
51
+ tslib_1.__exportStar(require("./plugin-i18n-engine"), exports);
52
+ tslib_1.__exportStar(require("./registry-config"), exports);
53
+ tslib_1.__exportStar(require("./registry-error"), exports);
54
+ tslib_1.__exportStar(require("./registry-error-type"), exports);
55
+ tslib_1.__exportStar(require("./template"), exports);
56
+ tslib_1.__exportStar(require("./translation-engine"), exports);
57
+ tslib_1.__exportStar(require("./translation-request"), exports);
58
+ tslib_1.__exportStar(require("./translation-response"), exports);
59
+ tslib_1.__exportStar(require("./types"), exports);
60
+ tslib_1.__exportStar(require("./validation-config"), exports);
61
+ // Legacy convenience exports
62
+ var core_plugin_factory_1 = require("./core-plugin-factory");
63
+ Object.defineProperty(exports, "createCoreI18n", { enumerable: true, get: function () { return core_plugin_factory_1.createCorePluginI18nEngine; } });
64
+ Object.defineProperty(exports, "createCoreI18nEngine", { enumerable: true, get: function () { return core_plugin_factory_1.createCorePluginI18nEngine; } });
65
+ Object.defineProperty(exports, "getCoreTranslation", { enumerable: true, get: function () { return core_plugin_factory_1.getCorePluginTranslation; } });
66
+ Object.defineProperty(exports, "safeCoreTranslation", { enumerable: true, get: function () { return core_plugin_factory_1.safeCorePluginTranslation; } });
67
+ // Export core plugin factory functions
68
+ tslib_1.__exportStar(require("./core-plugin-factory"), exports);
69
+ var plugin_i18n_engine_1 = require("./plugin-i18n-engine");
70
+ Object.defineProperty(exports, "PluginI18n", { enumerable: true, get: function () { return plugin_i18n_engine_1.PluginI18nEngine; } });
71
+ // Legacy testing utilities
72
+ const plugin_i18n_engine_2 = require("./plugin-i18n-engine");
73
+ function resetAllI18nEngines() {
74
+ plugin_i18n_engine_2.PluginI18nEngine.resetAll();
75
+ }
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":";;;AAgCA,4BAEC;AAyCD,kDAEC;;AA7ED,uBAAuB;AACvB,qDAA2B;AAC3B,iDAAuB;AACvB,mDAAyB;AACzB,mDAAyB;AACzB,uDAA6B;AAC7B,0DAAgC;AAChC,kDAAwB;AACxB,kDAAwB;AACxB,uDAA6B;AAK7B,6CAAmE;AAA1D,wGAAA,YAAY,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAMxC,yDAGgC;AAF9B,sHAAA,oBAAoB,OAAA;AACpB,oHAAA,kBAAkB,OAAA;AAEpB,6CAA6D;AAApD,2GAAA,eAAe,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAElC,sBAAsB;AACtB,wDAAiE;AAAxD,uGAAA,WAAW,OAAW;AAC/B,kDAAwD;AAA/C,mGAAA,UAAU,OAAQ;AAE3B,gBAAgB;AAChB,oDAAgD;AAChD,SAAgB,QAAQ;IACtB,wBAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,4DAA4D;AAC5D,2DAAiC;AACjC,iEAAuC;AACvC,kEAAwC;AACxC,6FAA6F;AAC7F,mEAAyC;AACzC,+DAAqC;AACrC,+DAAqC;AACrC,sDAA4B;AAC5B,4DAAkC;AAClC,uEAA6C;AAC7C,0DAAgC;AAChC,kEAAwC;AACxC,gFAAsD;AACtD,2DAAiC;AACjC,+DAAqC;AACrC,4DAAkC;AAClC,2DAAiC;AACjC,gEAAsC;AACtC,qDAA2B;AAC3B,+DAAqC;AACrC,gEAAsC;AACtC,iEAAuC;AACvC,kDAAwB;AACxB,8DAAoC;AAEpC,6BAA6B;AAC7B,6DAK+B;AAJ7B,qHAAA,0BAA0B,OAAkB;AAC5C,2HAAA,0BAA0B,OAAwB;AAClD,yHAAA,wBAAwB,OAAsB;AAC9C,0HAAA,yBAAyB,OAAuB;AAElD,uCAAuC;AACvC,gEAAsC;AACtC,2DAAsE;AAA7D,gHAAA,gBAAgB,OAAc;AAEvC,2BAA2B;AAC3B,6DAAwD;AACxD,SAAgB,mBAAmB;IACjC,qCAAgB,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { LanguageContextSpace } from '../types';
2
+ import type { CurrencyCode } from '../utils/currency';
3
+ import type { Timezone } from '../utils/timezone';
4
+ /**
5
+ * Represents the active internationalization context for user and admin interfaces,
6
+ * including language, currency, and timezone settings.
7
+ *
8
+ * @template TLanguage The type of language codes (e.g., 'en-US', 'fr').
9
+ */
10
+ export interface IActiveContext<TLanguage extends string> {
11
+ /**
12
+ * The default language for the user-facing application.
13
+ */
14
+ language: TLanguage;
15
+ /**
16
+ * The default language for the admin interface.
17
+ */
18
+ adminLanguage: TLanguage;
19
+ /**
20
+ * The default currency code for the user-facing application.
21
+ */
22
+ currencyCode: CurrencyCode;
23
+ /**
24
+ * The current language context space (e.g., 'user' or 'admin').
25
+ */
26
+ currentContext: LanguageContextSpace;
27
+ /**
28
+ * The default timezone for the user-facing application.
29
+ */
30
+ timezone: Timezone;
31
+ /**
32
+ * The default timezone for the admin interface.
33
+ */
34
+ adminTimezone: Timezone;
35
+ }
36
+ //# sourceMappingURL=active-context.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-context.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/active-context.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAAC,SAAS,SAAS,MAAM;IACtD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,SAAS,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAC;IAErC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,aAAa,EAAE,QAAQ,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=active-context.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-context.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/active-context.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Simplified component configuration
3
+ */
4
+ import { PluralString } from '../types/plural-types';
5
+ /**
6
+ * Configuration for registering a component with the i18n system.
7
+ */
8
+ export interface ComponentConfig {
9
+ /** Unique identifier for the component */
10
+ readonly id: string;
11
+ /** Translation strings organized by language and key */
12
+ readonly strings: Record<string, Record<string, string | PluralString>>;
13
+ /** Optional alternative names for referencing this component */
14
+ readonly aliases?: readonly string[];
15
+ }
16
+ //# sourceMappingURL=component-config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-config.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/component-config.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;IACxE,gEAAgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Simplified component configuration
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=component-config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-config.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/component-config.interface.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Engine configuration interface
3
+ */
4
+ /**
5
+ * Configuration options for the I18n engine.
6
+ */
7
+ export interface EngineConfig {
8
+ /** Default language to use when none is specified */
9
+ defaultLanguage?: string;
10
+ /** Fallback language to use when a translation is missing */
11
+ fallbackLanguage?: string;
12
+ /** Constants available for variable replacement in templates */
13
+ constants?: Record<string, any>;
14
+ /** Validation configuration */
15
+ validation?: {
16
+ /** Whether all string keys must be provided for all languages */
17
+ requireCompleteStrings?: boolean;
18
+ /** Whether to allow component registration with missing translations */
19
+ allowPartialRegistration?: boolean;
20
+ };
21
+ }
22
+ //# sourceMappingURL=engine-config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-config.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/engine-config.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,+BAA+B;IAC/B,UAAU,CAAC,EAAE;QACX,iEAAiE;QACjE,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,wEAAwE;QACxE,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;CACH"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Engine configuration interface
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=engine-config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-config.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/engine-config.interface.ts"],"names":[],"mappings":";AAAA;;GAEG"}