@digitaldefiance/i18n-lib 3.8.0 → 3.8.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 (503) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +182 -0
  3. package/package.json +12 -4
  4. package/src/{active-context.d.ts → active-context.ts} +0 -1
  5. package/src/builders/i18n-builder.ts +82 -0
  6. package/src/builders/{index.d.ts → index.ts} +1 -1
  7. package/src/component-definition.ts +11 -0
  8. package/src/component-registration.ts +29 -0
  9. package/src/component-registry.ts +432 -0
  10. package/src/context-error-type.ts +7 -0
  11. package/src/core/component-store.ts +241 -0
  12. package/src/core/context-manager.ts +113 -0
  13. package/src/core/enum-registry.ts +106 -0
  14. package/src/core/i18n-engine.ts +710 -0
  15. package/src/core/{index.d.ts → index.ts} +4 -1
  16. package/src/core/language-registry.ts +345 -0
  17. package/src/{core-component-id.d.ts → core-component-id.ts} +1 -2
  18. package/src/core-i18n.ts +270 -0
  19. package/src/core-plugin-factory.ts +111 -0
  20. package/src/core-string-key.ts +59 -0
  21. package/src/create-translation-adapter.ts +93 -0
  22. package/src/enum-registry.ts +152 -0
  23. package/src/errors/{base.d.ts → base.ts} +1 -1
  24. package/src/errors/context-error.ts +122 -0
  25. package/src/errors/enhanced-error-base.ts +260 -0
  26. package/src/errors/handleable.ts +152 -0
  27. package/src/errors/i18n-error.ts +494 -0
  28. package/src/errors/{index.d.ts → index.ts} +4 -1
  29. package/src/errors/simple-typed-error.ts +81 -0
  30. package/src/errors/{translatable-exports.d.ts → translatable-exports.ts} +1 -1
  31. package/src/errors/translatable-generic.ts +245 -0
  32. package/src/errors/translatable-handleable-generic.ts +222 -0
  33. package/src/errors/translatable.ts +138 -0
  34. package/src/errors/typed-handleable.ts +138 -0
  35. package/src/errors/typed.ts +617 -0
  36. package/src/gender/{gender-categories.d.ts → gender-categories.ts} +6 -2
  37. package/src/gender/gender-resolver.ts +40 -0
  38. package/src/gender/{index.d.ts → index.ts} +0 -1
  39. package/src/global-active-context.ts +266 -0
  40. package/src/icu/ast.ts +56 -0
  41. package/src/icu/compiler.ts +96 -0
  42. package/src/icu/formatter-registry.ts +36 -0
  43. package/src/icu/formatters/base-formatter.ts +8 -0
  44. package/src/icu/formatters/date-formatter.ts +30 -0
  45. package/src/icu/formatters/number-formatter.ts +32 -0
  46. package/src/icu/formatters/plural-formatter.ts +12 -0
  47. package/src/icu/formatters/select-formatter.ts +7 -0
  48. package/src/icu/formatters/selectordinal-formatter.ts +17 -0
  49. package/src/icu/formatters/time-formatter.ts +30 -0
  50. package/src/icu/helpers.ts +34 -0
  51. package/src/icu/parser.ts +242 -0
  52. package/src/icu/runtime.ts +37 -0
  53. package/src/icu/tokenizer.ts +212 -0
  54. package/src/icu/validator.ts +163 -0
  55. package/src/{index.d.ts → index.ts} +38 -6
  56. package/src/interfaces/active-context.interface.ts +41 -0
  57. package/src/interfaces/component-config.interface.ts +17 -0
  58. package/src/interfaces/engine-config.interface.ts +22 -0
  59. package/src/interfaces/global-active-context.ts +39 -0
  60. package/src/interfaces/handleable-error-options.ts +13 -0
  61. package/src/interfaces/handleable.ts +20 -0
  62. package/src/interfaces/i18n-engine.interface.ts +57 -0
  63. package/src/interfaces/{index.d.ts → index.ts} +1 -1
  64. package/src/interfaces/language-definition.interface.ts +17 -0
  65. package/src/interfaces/translation-options.interface.ts +15 -0
  66. package/src/interfaces/validation-result.interface.ts +24 -0
  67. package/src/language-codes.ts +40 -0
  68. package/src/language-definition.ts +13 -0
  69. package/src/plugin-i18n-engine.ts +707 -0
  70. package/src/pluralization/{index.d.ts → index.ts} +1 -1
  71. package/src/pluralization/language-plural-map.ts +186 -0
  72. package/src/pluralization/{plural-categories.d.ts → plural-categories.ts} +5 -3
  73. package/src/pluralization/plural-rules.ts +228 -0
  74. package/src/registry-config.ts +16 -0
  75. package/src/registry-error-type.ts +19 -0
  76. package/src/registry-error.ts +100 -0
  77. package/src/strict-types.ts +35 -0
  78. package/src/strings/de.ts +75 -0
  79. package/src/strings/en-GB.ts +74 -0
  80. package/src/strings/en-US.ts +74 -0
  81. package/src/strings/es.ts +74 -0
  82. package/src/strings/fr.ts +75 -0
  83. package/src/strings/ja.ts +73 -0
  84. package/src/strings/uk.ts +73 -0
  85. package/src/strings/zh-CN.ts +72 -0
  86. package/src/template.ts +72 -0
  87. package/src/translation-engine.ts +18 -0
  88. package/src/translation-request.ts +12 -0
  89. package/src/translation-response.ts +8 -0
  90. package/src/types/engine.ts +55 -0
  91. package/src/types/{index.d.ts → index.ts} +1 -1
  92. package/src/types/{plural-types.d.ts → plural-types.ts} +29 -3
  93. package/src/{types.d.ts → types.ts} +72 -21
  94. package/src/utils/currency.ts +141 -0
  95. package/src/utils/html-escape.ts +55 -0
  96. package/src/utils/{index.d.ts → index.ts} +0 -1
  97. package/src/utils/lru-cache.ts +76 -0
  98. package/src/utils/{plural-helpers.d.ts → plural-helpers.ts} +14 -4
  99. package/src/utils/{safe-object.js → safe-object.ts} +37 -34
  100. package/src/utils/string-utils.ts +77 -0
  101. package/src/utils/timezone.ts +76 -0
  102. package/src/utils/validation.ts +66 -0
  103. package/src/utils.ts +215 -0
  104. package/src/validation/{index.d.ts → index.ts} +0 -1
  105. package/src/validation/plural-validator.ts +168 -0
  106. package/src/validation-config.ts +11 -0
  107. package/src/validation-result.ts +12 -0
  108. package/src/active-context.d.ts.map +0 -1
  109. package/src/active-context.js +0 -3
  110. package/src/active-context.js.map +0 -1
  111. package/src/builders/i18n-builder.d.ts +0 -26
  112. package/src/builders/i18n-builder.d.ts.map +0 -1
  113. package/src/builders/i18n-builder.js +0 -70
  114. package/src/builders/i18n-builder.js.map +0 -1
  115. package/src/builders/index.d.ts.map +0 -1
  116. package/src/builders/index.js +0 -8
  117. package/src/builders/index.js.map +0 -1
  118. package/src/component-definition.d.ts +0 -12
  119. package/src/component-definition.d.ts.map +0 -1
  120. package/src/component-definition.js +0 -3
  121. package/src/component-definition.js.map +0 -1
  122. package/src/component-registration.d.ts +0 -22
  123. package/src/component-registration.d.ts.map +0 -1
  124. package/src/component-registration.js +0 -3
  125. package/src/component-registration.js.map +0 -1
  126. package/src/component-registry.d.ts +0 -102
  127. package/src/component-registry.d.ts.map +0 -1
  128. package/src/component-registry.js +0 -282
  129. package/src/component-registry.js.map +0 -1
  130. package/src/context-error-type.d.ts +0 -8
  131. package/src/context-error-type.d.ts.map +0 -1
  132. package/src/context-error-type.js +0 -12
  133. package/src/context-error-type.js.map +0 -1
  134. package/src/core/component-store.d.ts +0 -93
  135. package/src/core/component-store.d.ts.map +0 -1
  136. package/src/core/component-store.js +0 -198
  137. package/src/core/component-store.js.map +0 -1
  138. package/src/core/context-manager.d.ts +0 -72
  139. package/src/core/context-manager.d.ts.map +0 -1
  140. package/src/core/context-manager.js +0 -98
  141. package/src/core/context-manager.js.map +0 -1
  142. package/src/core/enum-registry.d.ts +0 -48
  143. package/src/core/enum-registry.d.ts.map +0 -1
  144. package/src/core/enum-registry.js +0 -85
  145. package/src/core/enum-registry.js.map +0 -1
  146. package/src/core/i18n-engine.d.ts +0 -241
  147. package/src/core/i18n-engine.d.ts.map +0 -1
  148. package/src/core/i18n-engine.js +0 -568
  149. package/src/core/i18n-engine.js.map +0 -1
  150. package/src/core/index.d.ts.map +0 -1
  151. package/src/core/index.js +0 -21
  152. package/src/core/index.js.map +0 -1
  153. package/src/core/language-registry.d.ts +0 -180
  154. package/src/core/language-registry.d.ts.map +0 -1
  155. package/src/core/language-registry.js +0 -298
  156. package/src/core/language-registry.js.map +0 -1
  157. package/src/core-component-id.d.ts.map +0 -1
  158. package/src/core-component-id.js +0 -9
  159. package/src/core-component-id.js.map +0 -1
  160. package/src/core-i18n.d.ts +0 -69
  161. package/src/core-i18n.d.ts.map +0 -1
  162. package/src/core-i18n.js +0 -219
  163. package/src/core-i18n.js.map +0 -1
  164. package/src/core-plugin-factory.d.ts +0 -28
  165. package/src/core-plugin-factory.d.ts.map +0 -1
  166. package/src/core-plugin-factory.js +0 -80
  167. package/src/core-plugin-factory.js.map +0 -1
  168. package/src/core-string-key.d.ts +0 -52
  169. package/src/core-string-key.d.ts.map +0 -1
  170. package/src/core-string-key.js +0 -61
  171. package/src/core-string-key.js.map +0 -1
  172. package/src/create-translation-adapter.d.ts +0 -33
  173. package/src/create-translation-adapter.d.ts.map +0 -1
  174. package/src/create-translation-adapter.js +0 -72
  175. package/src/create-translation-adapter.js.map +0 -1
  176. package/src/enum-registry.d.ts +0 -65
  177. package/src/enum-registry.d.ts.map +0 -1
  178. package/src/enum-registry.js +0 -123
  179. package/src/enum-registry.js.map +0 -1
  180. package/src/errors/base.d.ts.map +0 -1
  181. package/src/errors/base.js +0 -11
  182. package/src/errors/base.js.map +0 -1
  183. package/src/errors/context-error.d.ts +0 -50
  184. package/src/errors/context-error.d.ts.map +0 -1
  185. package/src/errors/context-error.js +0 -93
  186. package/src/errors/context-error.js.map +0 -1
  187. package/src/errors/enhanced-error-base.d.ts +0 -125
  188. package/src/errors/enhanced-error-base.d.ts.map +0 -1
  189. package/src/errors/enhanced-error-base.js +0 -165
  190. package/src/errors/enhanced-error-base.js.map +0 -1
  191. package/src/errors/handleable.d.ts +0 -83
  192. package/src/errors/handleable.d.ts.map +0 -1
  193. package/src/errors/handleable.js +0 -136
  194. package/src/errors/handleable.js.map +0 -1
  195. package/src/errors/i18n-error.d.ts +0 -211
  196. package/src/errors/i18n-error.d.ts.map +0 -1
  197. package/src/errors/i18n-error.js +0 -358
  198. package/src/errors/i18n-error.js.map +0 -1
  199. package/src/errors/index.d.ts.map +0 -1
  200. package/src/errors/index.js +0 -17
  201. package/src/errors/index.js.map +0 -1
  202. package/src/errors/simple-typed-error.d.ts +0 -53
  203. package/src/errors/simple-typed-error.d.ts.map +0 -1
  204. package/src/errors/simple-typed-error.js +0 -51
  205. package/src/errors/simple-typed-error.js.map +0 -1
  206. package/src/errors/translatable-exports.d.ts.map +0 -1
  207. package/src/errors/translatable-exports.js +0 -15
  208. package/src/errors/translatable-exports.js.map +0 -1
  209. package/src/errors/translatable-generic.d.ts +0 -87
  210. package/src/errors/translatable-generic.d.ts.map +0 -1
  211. package/src/errors/translatable-generic.js +0 -139
  212. package/src/errors/translatable-generic.js.map +0 -1
  213. package/src/errors/translatable-handleable-generic.d.ts +0 -116
  214. package/src/errors/translatable-handleable-generic.d.ts.map +0 -1
  215. package/src/errors/translatable-handleable-generic.js +0 -121
  216. package/src/errors/translatable-handleable-generic.js.map +0 -1
  217. package/src/errors/translatable.d.ts +0 -63
  218. package/src/errors/translatable.d.ts.map +0 -1
  219. package/src/errors/translatable.js +0 -85
  220. package/src/errors/translatable.js.map +0 -1
  221. package/src/errors/typed-handleable.d.ts +0 -62
  222. package/src/errors/typed-handleable.d.ts.map +0 -1
  223. package/src/errors/typed-handleable.js +0 -108
  224. package/src/errors/typed-handleable.js.map +0 -1
  225. package/src/errors/typed.d.ts +0 -206
  226. package/src/errors/typed.d.ts.map +0 -1
  227. package/src/errors/typed.js +0 -458
  228. package/src/errors/typed.js.map +0 -1
  229. package/src/gender/gender-categories.d.ts.map +0 -1
  230. package/src/gender/gender-categories.js +0 -15
  231. package/src/gender/gender-categories.js.map +0 -1
  232. package/src/gender/gender-resolver.d.ts +0 -14
  233. package/src/gender/gender-resolver.d.ts.map +0 -1
  234. package/src/gender/gender-resolver.js +0 -35
  235. package/src/gender/gender-resolver.js.map +0 -1
  236. package/src/gender/index.d.ts.map +0 -1
  237. package/src/gender/index.js +0 -6
  238. package/src/gender/index.js.map +0 -1
  239. package/src/global-active-context.d.ts +0 -50
  240. package/src/global-active-context.d.ts.map +0 -1
  241. package/src/global-active-context.js +0 -185
  242. package/src/global-active-context.js.map +0 -1
  243. package/src/icu/ast.d.ts +0 -48
  244. package/src/icu/ast.d.ts.map +0 -1
  245. package/src/icu/ast.js +0 -16
  246. package/src/icu/ast.js.map +0 -1
  247. package/src/icu/compiler.d.ts +0 -16
  248. package/src/icu/compiler.d.ts.map +0 -1
  249. package/src/icu/compiler.js +0 -87
  250. package/src/icu/compiler.js.map +0 -1
  251. package/src/icu/formatter-registry.d.ts +0 -10
  252. package/src/icu/formatter-registry.d.ts.map +0 -1
  253. package/src/icu/formatter-registry.js +0 -34
  254. package/src/icu/formatter-registry.js.map +0 -1
  255. package/src/icu/formatters/base-formatter.d.ts +0 -8
  256. package/src/icu/formatters/base-formatter.d.ts.map +0 -1
  257. package/src/icu/formatters/base-formatter.js +0 -3
  258. package/src/icu/formatters/base-formatter.js.map +0 -1
  259. package/src/icu/formatters/date-formatter.d.ts +0 -5
  260. package/src/icu/formatters/date-formatter.d.ts.map +0 -1
  261. package/src/icu/formatters/date-formatter.js +0 -31
  262. package/src/icu/formatters/date-formatter.js.map +0 -1
  263. package/src/icu/formatters/number-formatter.d.ts +0 -5
  264. package/src/icu/formatters/number-formatter.d.ts.map +0 -1
  265. package/src/icu/formatters/number-formatter.js +0 -33
  266. package/src/icu/formatters/number-formatter.js.map +0 -1
  267. package/src/icu/formatters/plural-formatter.d.ts +0 -5
  268. package/src/icu/formatters/plural-formatter.d.ts.map +0 -1
  269. package/src/icu/formatters/plural-formatter.js +0 -15
  270. package/src/icu/formatters/plural-formatter.js.map +0 -1
  271. package/src/icu/formatters/select-formatter.d.ts +0 -5
  272. package/src/icu/formatters/select-formatter.d.ts.map +0 -1
  273. package/src/icu/formatters/select-formatter.js +0 -10
  274. package/src/icu/formatters/select-formatter.js.map +0 -1
  275. package/src/icu/formatters/selectordinal-formatter.d.ts +0 -5
  276. package/src/icu/formatters/selectordinal-formatter.d.ts.map +0 -1
  277. package/src/icu/formatters/selectordinal-formatter.js +0 -22
  278. package/src/icu/formatters/selectordinal-formatter.js.map +0 -1
  279. package/src/icu/formatters/time-formatter.d.ts +0 -5
  280. package/src/icu/formatters/time-formatter.d.ts.map +0 -1
  281. package/src/icu/formatters/time-formatter.js +0 -31
  282. package/src/icu/formatters/time-formatter.js.map +0 -1
  283. package/src/icu/helpers.d.ts +0 -9
  284. package/src/icu/helpers.d.ts.map +0 -1
  285. package/src/icu/helpers.js +0 -31
  286. package/src/icu/helpers.js.map +0 -1
  287. package/src/icu/parser.d.ts +0 -31
  288. package/src/icu/parser.d.ts.map +0 -1
  289. package/src/icu/parser.js +0 -203
  290. package/src/icu/parser.js.map +0 -1
  291. package/src/icu/runtime.d.ts +0 -10
  292. package/src/icu/runtime.d.ts.map +0 -1
  293. package/src/icu/runtime.js +0 -33
  294. package/src/icu/runtime.js.map +0 -1
  295. package/src/icu/tokenizer.d.ts +0 -37
  296. package/src/icu/tokenizer.d.ts.map +0 -1
  297. package/src/icu/tokenizer.js +0 -187
  298. package/src/icu/tokenizer.js.map +0 -1
  299. package/src/icu/validator.d.ts +0 -11
  300. package/src/icu/validator.d.ts.map +0 -1
  301. package/src/icu/validator.js +0 -140
  302. package/src/icu/validator.js.map +0 -1
  303. package/src/index.d.ts.map +0 -1
  304. package/src/index.js +0 -76
  305. package/src/index.js.map +0 -1
  306. package/src/interfaces/active-context.interface.d.ts +0 -36
  307. package/src/interfaces/active-context.interface.d.ts.map +0 -1
  308. package/src/interfaces/active-context.interface.js +0 -3
  309. package/src/interfaces/active-context.interface.js.map +0 -1
  310. package/src/interfaces/component-config.interface.d.ts +0 -16
  311. package/src/interfaces/component-config.interface.d.ts.map +0 -1
  312. package/src/interfaces/component-config.interface.js +0 -6
  313. package/src/interfaces/component-config.interface.js.map +0 -1
  314. package/src/interfaces/engine-config.interface.d.ts +0 -22
  315. package/src/interfaces/engine-config.interface.d.ts.map +0 -1
  316. package/src/interfaces/engine-config.interface.js +0 -6
  317. package/src/interfaces/engine-config.interface.js.map +0 -1
  318. package/src/interfaces/global-active-context.d.ts +0 -23
  319. package/src/interfaces/global-active-context.d.ts.map +0 -1
  320. package/src/interfaces/global-active-context.js +0 -3
  321. package/src/interfaces/global-active-context.js.map +0 -1
  322. package/src/interfaces/handleable-error-options.d.ts +0 -14
  323. package/src/interfaces/handleable-error-options.d.ts.map +0 -1
  324. package/src/interfaces/handleable-error-options.js +0 -3
  325. package/src/interfaces/handleable-error-options.js.map +0 -1
  326. package/src/interfaces/handleable.d.ts +0 -21
  327. package/src/interfaces/handleable.d.ts.map +0 -1
  328. package/src/interfaces/handleable.js +0 -3
  329. package/src/interfaces/handleable.js.map +0 -1
  330. package/src/interfaces/i18n-engine.interface.d.ts +0 -46
  331. package/src/interfaces/i18n-engine.interface.d.ts.map +0 -1
  332. package/src/interfaces/i18n-engine.interface.js +0 -6
  333. package/src/interfaces/i18n-engine.interface.js.map +0 -1
  334. package/src/interfaces/index.d.ts.map +0 -1
  335. package/src/interfaces/index.js +0 -7
  336. package/src/interfaces/index.js.map +0 -1
  337. package/src/interfaces/language-definition.interface.d.ts +0 -17
  338. package/src/interfaces/language-definition.interface.d.ts.map +0 -1
  339. package/src/interfaces/language-definition.interface.js +0 -6
  340. package/src/interfaces/language-definition.interface.js.map +0 -1
  341. package/src/interfaces/translation-options.interface.d.ts +0 -15
  342. package/src/interfaces/translation-options.interface.d.ts.map +0 -1
  343. package/src/interfaces/translation-options.interface.js +0 -6
  344. package/src/interfaces/translation-options.interface.js.map +0 -1
  345. package/src/interfaces/validation-result.interface.d.ts +0 -24
  346. package/src/interfaces/validation-result.interface.d.ts.map +0 -1
  347. package/src/interfaces/validation-result.interface.js +0 -6
  348. package/src/interfaces/validation-result.interface.js.map +0 -1
  349. package/src/language-codes.d.ts +0 -28
  350. package/src/language-codes.d.ts.map +0 -1
  351. package/src/language-codes.js +0 -32
  352. package/src/language-codes.js.map +0 -1
  353. package/src/language-definition.d.ts +0 -14
  354. package/src/language-definition.d.ts.map +0 -1
  355. package/src/language-definition.js +0 -3
  356. package/src/language-definition.js.map +0 -1
  357. package/src/plugin-i18n-engine.d.ts +0 -164
  358. package/src/plugin-i18n-engine.d.ts.map +0 -1
  359. package/src/plugin-i18n-engine.js +0 -493
  360. package/src/plugin-i18n-engine.js.map +0 -1
  361. package/src/pluralization/index.d.ts.map +0 -1
  362. package/src/pluralization/index.js +0 -10
  363. package/src/pluralization/index.js.map +0 -1
  364. package/src/pluralization/language-plural-map.d.ts +0 -29
  365. package/src/pluralization/language-plural-map.d.ts.map +0 -1
  366. package/src/pluralization/language-plural-map.js +0 -155
  367. package/src/pluralization/language-plural-map.js.map +0 -1
  368. package/src/pluralization/plural-categories.d.ts.map +0 -1
  369. package/src/pluralization/plural-categories.js +0 -8
  370. package/src/pluralization/plural-categories.js.map +0 -1
  371. package/src/pluralization/plural-rules.d.ts +0 -102
  372. package/src/pluralization/plural-rules.d.ts.map +0 -1
  373. package/src/pluralization/plural-rules.js +0 -263
  374. package/src/pluralization/plural-rules.js.map +0 -1
  375. package/src/registry-config.d.ts +0 -16
  376. package/src/registry-config.d.ts.map +0 -1
  377. package/src/registry-config.js +0 -3
  378. package/src/registry-config.js.map +0 -1
  379. package/src/registry-error-type.d.ts +0 -20
  380. package/src/registry-error-type.d.ts.map +0 -1
  381. package/src/registry-error-type.js +0 -24
  382. package/src/registry-error-type.js.map +0 -1
  383. package/src/registry-error.d.ts +0 -25
  384. package/src/registry-error.d.ts.map +0 -1
  385. package/src/registry-error.js +0 -63
  386. package/src/registry-error.js.map +0 -1
  387. package/src/strict-types.d.ts +0 -19
  388. package/src/strict-types.d.ts.map +0 -1
  389. package/src/strict-types.js +0 -18
  390. package/src/strict-types.js.map +0 -1
  391. package/src/strings/de.d.ts +0 -3
  392. package/src/strings/de.d.ts.map +0 -1
  393. package/src/strings/de.js +0 -57
  394. package/src/strings/de.js.map +0 -1
  395. package/src/strings/en-GB.d.ts +0 -3
  396. package/src/strings/en-GB.d.ts.map +0 -1
  397. package/src/strings/en-GB.js +0 -57
  398. package/src/strings/en-GB.js.map +0 -1
  399. package/src/strings/en-US.d.ts +0 -3
  400. package/src/strings/en-US.d.ts.map +0 -1
  401. package/src/strings/en-US.js +0 -57
  402. package/src/strings/en-US.js.map +0 -1
  403. package/src/strings/es.d.ts +0 -3
  404. package/src/strings/es.d.ts.map +0 -1
  405. package/src/strings/es.js +0 -57
  406. package/src/strings/es.js.map +0 -1
  407. package/src/strings/fr.d.ts +0 -3
  408. package/src/strings/fr.d.ts.map +0 -1
  409. package/src/strings/fr.js +0 -57
  410. package/src/strings/fr.js.map +0 -1
  411. package/src/strings/ja.d.ts +0 -3
  412. package/src/strings/ja.d.ts.map +0 -1
  413. package/src/strings/ja.js +0 -57
  414. package/src/strings/ja.js.map +0 -1
  415. package/src/strings/uk.d.ts +0 -3
  416. package/src/strings/uk.d.ts.map +0 -1
  417. package/src/strings/uk.js +0 -57
  418. package/src/strings/uk.js.map +0 -1
  419. package/src/strings/zh-CN.d.ts +0 -3
  420. package/src/strings/zh-CN.d.ts.map +0 -1
  421. package/src/strings/zh-CN.js +0 -57
  422. package/src/strings/zh-CN.js.map +0 -1
  423. package/src/template.d.ts +0 -13
  424. package/src/template.d.ts.map +0 -1
  425. package/src/template.js +0 -40
  426. package/src/template.js.map +0 -1
  427. package/src/translation-engine.d.ts +0 -9
  428. package/src/translation-engine.d.ts.map +0 -1
  429. package/src/translation-engine.js +0 -3
  430. package/src/translation-engine.js.map +0 -1
  431. package/src/translation-request.d.ts +0 -10
  432. package/src/translation-request.d.ts.map +0 -1
  433. package/src/translation-request.js +0 -3
  434. package/src/translation-request.js.map +0 -1
  435. package/src/translation-response.d.ts +0 -9
  436. package/src/translation-response.d.ts.map +0 -1
  437. package/src/translation-response.js +0 -3
  438. package/src/translation-response.js.map +0 -1
  439. package/src/types/engine.d.ts +0 -47
  440. package/src/types/engine.d.ts.map +0 -1
  441. package/src/types/engine.js +0 -8
  442. package/src/types/engine.js.map +0 -1
  443. package/src/types/index.d.ts.map +0 -1
  444. package/src/types/index.js +0 -9
  445. package/src/types/index.js.map +0 -1
  446. package/src/types/plural-types.d.ts.map +0 -1
  447. package/src/types/plural-types.js +0 -39
  448. package/src/types/plural-types.js.map +0 -1
  449. package/src/types.d.ts.map +0 -1
  450. package/src/types.js +0 -23
  451. package/src/types.js.map +0 -1
  452. package/src/utils/currency.d.ts +0 -81
  453. package/src/utils/currency.d.ts.map +0 -1
  454. package/src/utils/currency.js +0 -99
  455. package/src/utils/currency.js.map +0 -1
  456. package/src/utils/html-escape.d.ts +0 -22
  457. package/src/utils/html-escape.d.ts.map +0 -1
  458. package/src/utils/html-escape.js +0 -53
  459. package/src/utils/html-escape.js.map +0 -1
  460. package/src/utils/index.d.ts.map +0 -1
  461. package/src/utils/index.js +0 -12
  462. package/src/utils/index.js.map +0 -1
  463. package/src/utils/lru-cache.d.ts +0 -42
  464. package/src/utils/lru-cache.d.ts.map +0 -1
  465. package/src/utils/lru-cache.js +0 -73
  466. package/src/utils/lru-cache.js.map +0 -1
  467. package/src/utils/plural-helpers.d.ts.map +0 -1
  468. package/src/utils/plural-helpers.js +0 -35
  469. package/src/utils/plural-helpers.js.map +0 -1
  470. package/src/utils/safe-object.d.ts +0 -39
  471. package/src/utils/safe-object.d.ts.map +0 -1
  472. package/src/utils/safe-object.js.map +0 -1
  473. package/src/utils/string-utils.d.ts +0 -28
  474. package/src/utils/string-utils.d.ts.map +0 -1
  475. package/src/utils/string-utils.js +0 -63
  476. package/src/utils/string-utils.js.map +0 -1
  477. package/src/utils/timezone.d.ts +0 -50
  478. package/src/utils/timezone.d.ts.map +0 -1
  479. package/src/utils/timezone.js +0 -74
  480. package/src/utils/timezone.js.map +0 -1
  481. package/src/utils/validation.d.ts +0 -40
  482. package/src/utils/validation.d.ts.map +0 -1
  483. package/src/utils/validation.js +0 -69
  484. package/src/utils/validation.js.map +0 -1
  485. package/src/utils.d.ts +0 -65
  486. package/src/utils.d.ts.map +0 -1
  487. package/src/utils.js +0 -129
  488. package/src/utils.js.map +0 -1
  489. package/src/validation/index.d.ts.map +0 -1
  490. package/src/validation/index.js +0 -5
  491. package/src/validation/index.js.map +0 -1
  492. package/src/validation/plural-validator.d.ts +0 -46
  493. package/src/validation/plural-validator.d.ts.map +0 -1
  494. package/src/validation/plural-validator.js +0 -123
  495. package/src/validation/plural-validator.js.map +0 -1
  496. package/src/validation-config.d.ts +0 -12
  497. package/src/validation-config.d.ts.map +0 -1
  498. package/src/validation-config.js +0 -3
  499. package/src/validation-config.js.map +0 -1
  500. package/src/validation-result.d.ts +0 -13
  501. package/src/validation-result.d.ts.map +0 -1
  502. package/src/validation-result.js +0 -3
  503. package/src/validation-result.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"enum-registry.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/enum-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD;;;;;GAKG;AACH,qBAAa,uBAAuB,CAClC,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM;IAExB,SAAS,CAAC,YAAY,mFAA2D;IACjF,SAAS,CAAC,SAAS,uBAA8B;IACjD,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;IAEhF;;;;;OAKG;gBAED,kBAAkB,EAAE,SAAS,EAAE,EAC/B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM;IAMvE;;;;;;;;OAQG;IACI,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,YAAY,EAAE,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,EACvD,QAAQ,EAAE,MAAM,GACf,IAAI;IAMP;;;;;;;;;OASG;IACI,SAAS,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,SAAS,GAClB,MAAM;IA2CT;;;;;OAKG;IACI,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAIjC;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;CAgB7B"}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnumTranslationRegistry = void 0;
4
- /**
5
- * Registry for managing translations of enum values across multiple languages.
6
- *
7
- * @template TStringKey Type of translation key used in error messages.
8
- * @template TLanguage Type of supported language codes.
9
- */
10
- class EnumTranslationRegistry {
11
- translations = new Map();
12
- enumNames = new WeakMap();
13
- availableLanguages;
14
- translateFn;
15
- /**
16
- * Creates a new EnumTranslationRegistry.
17
- *
18
- * @param availableLanguages Array of supported language codes.
19
- * @param translateFn Optional translation function for error templates.
20
- */
21
- constructor(availableLanguages, translateFn) {
22
- this.availableLanguages = new Set(availableLanguages);
23
- this.translateFn = translateFn;
24
- }
25
- /**
26
- * Registers an enum and its language-specific translations.
27
- *
28
- * @template TEnum Enum value type (string or number).
29
- * @param enumObj The enum object to register.
30
- * @param translations Mapping of language codes to value-to-string translations.
31
- * @param enumName Human-readable name of the enum (used in errors).
32
- * @throws {Error} If translations contain languages not in availableLanguages.
33
- */
34
- register(enumObj, translations, enumName) {
35
- this.validateTranslations(translations, enumName);
36
- this.translations.set(enumObj, translations);
37
- this.enumNames.set(enumObj, enumName);
38
- }
39
- /**
40
- * Translates a specific enum value into the target language.
41
- *
42
- * @template TEnum Enum value type.
43
- * @param enumObj The enum object registered previously.
44
- * @param value The enum value to translate.
45
- * @param language The target language code.
46
- * @returns The translated string.
47
- * @throws {Error} If the enum or language or value is not found.
48
- */
49
- translate(enumObj, value, language) {
50
- const translations = this.translations.get(enumObj);
51
- if (!translations) {
52
- const message = this.translateFn
53
- ? this.translateFn('Error_EnumNotFoundTemplate', {
54
- enumName: this.getEnumName(enumObj),
55
- })
56
- : `No translations found for enum: ${this.getEnumName(enumObj)}`;
57
- throw new Error(message);
58
- }
59
- const langTranslations = translations[language];
60
- if (!langTranslations) {
61
- const message = this.translateFn
62
- ? this.translateFn('Error_EnumLanguageNotFoundTemplate', {
63
- language,
64
- })
65
- : `No translations found for language: ${language}`;
66
- throw new Error(message);
67
- }
68
- let result = langTranslations[value];
69
- if (!result && typeof value === 'number') {
70
- const stringKey = Object.keys(enumObj).find((key) => enumObj[key] === value);
71
- if (stringKey) {
72
- result = langTranslations[stringKey];
73
- }
74
- }
75
- if (!result) {
76
- const message = this.translateFn
77
- ? this.translateFn('Error_EnumValueNotFoundTemplate', {
78
- value: String(value),
79
- })
80
- : `No translation found for value: ${String(value)}`;
81
- throw new Error(message);
82
- }
83
- return result;
84
- }
85
- /**
86
- * Checks whether translations exist for the given enum object.
87
- *
88
- * @param enumObj The enum object to check.
89
- * @returns True if registered, false otherwise.
90
- */
91
- has(enumObj) {
92
- return this.translations.has(enumObj);
93
- }
94
- /**
95
- * Internal: Retrieves the human-readable name of the enum.
96
- *
97
- * @param enumObj The enum object.
98
- * @returns Registered enum name or 'UnknownEnum' if not set.
99
- */
100
- getEnumName(enumObj) {
101
- return this.enumNames.get(enumObj) || 'UnknownEnum';
102
- }
103
- /**
104
- * Internal: Validates that translation entries only use available languages.
105
- *
106
- * @template TEnum Enum value type.
107
- * @param translations Mapping of language codes to translations.
108
- * @param enumName Enum name for error reporting.
109
- * @throws {Error} If a translation language is not available.
110
- */
111
- validateTranslations(translations, enumName) {
112
- for (const language of Object.keys(translations)) {
113
- if (!this.availableLanguages.has(language)) {
114
- const message = this.translateFn
115
- ? this.translateFn('Error_EnumLanguageNotAvailableTemplate', { language, enumName })
116
- : `Language '${language}' in enum '${enumName}' is not available in this registry`;
117
- throw new Error(message);
118
- }
119
- }
120
- }
121
- }
122
- exports.EnumTranslationRegistry = EnumTranslationRegistry;
123
- //# sourceMappingURL=enum-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enum-registry.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/enum-registry.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/base.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- /**
3
- * Base error exports that don't depend on core modules
4
- * These can be imported without triggering core module initialization
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const tslib_1 = require("tslib");
8
- tslib_1.__exportStar(require("./enhanced-error-base"), exports);
9
- tslib_1.__exportStar(require("./handleable"), exports);
10
- tslib_1.__exportStar(require("./simple-typed-error"), exports);
11
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/base.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,gEAAsC;AACtC,uDAA6B;AAC7B,+DAAqC"}
@@ -1,50 +0,0 @@
1
- import { ContextErrorType } from '../context-error-type';
2
- /**
3
- * Error class for context-related failures in the i18n system.
4
- * Thrown when attempting to access or manipulate an invalid or non-existent context.
5
- *
6
- * **i18n Feature Support:**
7
- * - ICU MessageFormat variable substitution
8
- * - Nested message paths detection
9
- * - Number formatting for context depths/positions
10
- * - SelectOrdinal for context priority levels
11
- *
12
- * **Translation String Examples:**
13
- * ```typescript
14
- * // ICU plural
15
- * "Context has {count, plural, one {# issue} other {# issues}}"
16
- *
17
- * // ICU select + nested
18
- * "{severity, select, low {Minor context issue} high {Critical context error}}"
19
- *
20
- * // Number formatting
21
- * "Context exceeded {limit, number, integer} maximum depth"
22
- * ```
23
- */
24
- export declare class ContextError extends Error {
25
- /** The type of context error */
26
- readonly type: ContextErrorType;
27
- /** The context key that caused the error, if applicable */
28
- readonly contextKey?: string;
29
- /** Additional context metadata */
30
- readonly metadata?: Record<string, any>;
31
- /**
32
- * Creates a new ContextError instance.
33
- * @param type - The type of context error
34
- * @param contextKey - Optional context key that caused the error
35
- * @param variables - Additional variables for ICU message formatting
36
- * @param language - Optional language code
37
- */
38
- constructor(type: ContextErrorType, contextKey?: string, variables?: Record<string, string | number>, language?: string);
39
- /**
40
- * Create context error with nested path information
41
- * Demonstrates selectordinal for depth level
42
- */
43
- static withNestedPath(type: ContextErrorType, contextPath: string, language?: string): ContextError;
44
- /**
45
- * Create context error with count information
46
- * Demonstrates plural formatting
47
- */
48
- static withCount(type: ContextErrorType, contextKey: string, count: number, language?: string): ContextError;
49
- }
50
- //# sourceMappingURL=context-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-error.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/context-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQzD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,gCAAgC;IAChC,SAAyB,IAAI,EAAE,gBAAgB,CAAC;IAChD,2DAA2D;IAC3D,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,kCAAkC;IAClC,SAAyB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAExD;;;;;;OAMG;gBAED,IAAI,EAAE,gBAAgB,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAC3C,QAAQ,CAAC,EAAE,MAAM;IAuCnB;;;OAGG;IACH,MAAM,CAAC,cAAc,CACnB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,QAAQ,SAAU,GACjB,YAAY;IAaf;;;OAGG;IACH,MAAM,CAAC,SAAS,CACd,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,SAAU,GACjB,YAAY;CAGhB"}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContextError = void 0;
4
- const core_component_id_1 = require("../core-component-id");
5
- const core_string_key_1 = require("../core-string-key");
6
- const enhanced_error_base_1 = require("./enhanced-error-base");
7
- // Lazy reference to I18nEngine to avoid circular dependencies
8
- let engineGetter;
9
- /**
10
- * Error class for context-related failures in the i18n system.
11
- * Thrown when attempting to access or manipulate an invalid or non-existent context.
12
- *
13
- * **i18n Feature Support:**
14
- * - ICU MessageFormat variable substitution
15
- * - Nested message paths detection
16
- * - Number formatting for context depths/positions
17
- * - SelectOrdinal for context priority levels
18
- *
19
- * **Translation String Examples:**
20
- * ```typescript
21
- * // ICU plural
22
- * "Context has {count, plural, one {# issue} other {# issues}}"
23
- *
24
- * // ICU select + nested
25
- * "{severity, select, low {Minor context issue} high {Critical context error}}"
26
- *
27
- * // Number formatting
28
- * "Context exceeded {limit, number, integer} maximum depth"
29
- * ```
30
- */
31
- class ContextError extends Error {
32
- /** The type of context error */
33
- type;
34
- /** The context key that caused the error, if applicable */
35
- contextKey;
36
- /** Additional context metadata */
37
- metadata;
38
- /**
39
- * Creates a new ContextError instance.
40
- * @param type - The type of context error
41
- * @param contextKey - Optional context key that caused the error
42
- * @param variables - Additional variables for ICU message formatting
43
- * @param language - Optional language code
44
- */
45
- constructor(type, contextKey, variables, language) {
46
- // Lazy initialization: get engine instance at runtime to avoid circular dependencies
47
- let message;
48
- try {
49
- // Lazy load I18nEngine to break circular dependency
50
- if (!engineGetter) {
51
- // Dynamically import at runtime
52
- const coreModule = eval('require')('../core');
53
- engineGetter = () => coreModule.I18nEngine.getInstance('default');
54
- }
55
- const engine = engineGetter();
56
- const allVars = { ...variables, contextKey: contextKey || '' };
57
- message = contextKey
58
- ? engine.safeTranslate(core_component_id_1.CoreI18nComponentId, core_string_key_1.CoreStringKey.Error_InvalidContextTemplate, allVars, language)
59
- : engine.safeTranslate(core_component_id_1.CoreI18nComponentId, core_string_key_1.CoreStringKey.Error_InvalidContext, allVars, language);
60
- }
61
- catch {
62
- // Fallback if engine not available
63
- message = contextKey
64
- ? `Invalid context: ${contextKey}`
65
- : 'Invalid context';
66
- }
67
- super(message);
68
- this.name = 'ContextError';
69
- this.type = type;
70
- this.contextKey = contextKey;
71
- this.metadata = variables;
72
- }
73
- /**
74
- * Create context error with nested path information
75
- * Demonstrates selectordinal for depth level
76
- */
77
- static withNestedPath(type, contextPath, language = 'en-US') {
78
- const analysis = enhanced_error_base_1.EnhancedErrorHelper.analyzeKeyPath(contextPath);
79
- return new ContextError(type, contextPath, {
80
- depth: analysis.depth,
81
- isNested: analysis.isNested ? 'true' : 'false',
82
- }, language);
83
- }
84
- /**
85
- * Create context error with count information
86
- * Demonstrates plural formatting
87
- */
88
- static withCount(type, contextKey, count, language = 'en-US') {
89
- return new ContextError(type, contextKey, { count }, language);
90
- }
91
- }
92
- exports.ContextError = ContextError;
93
- //# sourceMappingURL=context-error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-error.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/context-error.ts"],"names":[],"mappings":";;;AACA,4DAA2D;AAC3D,wDAAmD;AACnD,+DAA4D;AAE5D,8DAA8D;AAC9D,IAAI,YAAqC,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,YAAa,SAAQ,KAAK;IACrC,gCAAgC;IACP,IAAI,CAAmB;IAChD,2DAA2D;IAC3C,UAAU,CAAU;IACpC,kCAAkC;IACT,QAAQ,CAAuB;IAExD;;;;;;OAMG;IACH,YACE,IAAsB,EACtB,UAAmB,EACnB,SAA2C,EAC3C,QAAiB;QAEjB,qFAAqF;QACrF,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,oDAAoD;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,gCAAgC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC9C,YAAY,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;YAC/D,OAAO,GAAG,UAAU;gBAClB,CAAC,CAAC,MAAM,CAAC,aAAa,CAClB,uCAAmB,EACnB,+BAAa,CAAC,4BAA4B,EAC1C,OAAO,EACP,QAAQ,CACT;gBACH,CAAC,CAAC,MAAM,CAAC,aAAa,CAClB,uCAAmB,EACnB,+BAAa,CAAC,oBAAoB,EAClC,OAAO,EACP,QAAQ,CACT,CAAC;QACR,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;YACnC,OAAO,GAAG,UAAU;gBAClB,CAAC,CAAC,oBAAoB,UAAU,EAAE;gBAClC,CAAC,CAAC,iBAAiB,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CACnB,IAAsB,EACtB,WAAmB,EACnB,QAAQ,GAAG,OAAO;QAElB,MAAM,QAAQ,GAAG,yCAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjE,OAAO,IAAI,YAAY,CACrB,IAAI,EACJ,WAAW,EACX;YACE,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;SAC/C,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS,CACd,IAAsB,EACtB,UAAkB,EAClB,KAAa,EACb,QAAQ,GAAG,OAAO;QAElB,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;CACF;AA3FD,oCA2FC"}
@@ -1,125 +0,0 @@
1
- /**
2
- * Enhanced error base with i18n 3.0/3.5 feature support
3
- * Provides helper methods for ICU MessageFormat, pluralization, gender, and advanced features
4
- */
5
- import { GenderCategory } from '../gender/gender-categories';
6
- /**
7
- * Options for enhanced error message formatting
8
- */
9
- export interface EnhancedErrorOptions {
10
- /** Variables for ICU substitution */
11
- variables?: Record<string, string | number | boolean>;
12
- /** Language code for message formatting */
13
- language?: string;
14
- /** Count for plural formatting */
15
- count?: number;
16
- /** Gender for gender-aware formatting */
17
- gender?: GenderCategory;
18
- /** Additional metadata */
19
- metadata?: Record<string, any>;
20
- }
21
- /**
22
- * Helper class providing advanced i18n features for error messages
23
- * This can be used as a mixin or utility class for error classes
24
- */
25
- export declare class EnhancedErrorHelper {
26
- /**
27
- * Format error message with ICU MessageFormat
28
- * @param pattern - ICU message pattern
29
- * @param options - Formatting options
30
- * @returns Formatted message string
31
- */
32
- static formatMessage(pattern: string, options?: EnhancedErrorOptions): string;
33
- /**
34
- * Create a plural-aware error message
35
- * @param singularPattern - Pattern for singular form
36
- * @param pluralPattern - Pattern for plural form
37
- * @param count - Count value
38
- * @param options - Additional formatting options
39
- * @returns Formatted message
40
- */
41
- static formatPlural(singularPattern: string, pluralPattern: string, count: number, options?: Omit<EnhancedErrorOptions, 'count'>): string;
42
- /**
43
- * Create a gender-aware error message
44
- * @param patterns - Patterns for different genders
45
- * @param gender - Gender value
46
- * @param options - Additional formatting options
47
- * @returns Formatted message
48
- */
49
- static formatGender(patterns: Partial<Record<GenderCategory, string>>, gender: GenderCategory, options?: Omit<EnhancedErrorOptions, 'gender'>): string;
50
- /**
51
- * Format ordinal numbers (1st, 2nd, 3rd, etc.)
52
- * @param number - The number to format
53
- * @param pattern - Pattern with {number} placeholder
54
- * @param options - Additional formatting options
55
- * @returns Formatted message with ordinal
56
- */
57
- static formatOrdinal(number: number, pattern: string, options?: EnhancedErrorOptions): string;
58
- /**
59
- * Format numbers with specific formatting (integer, currency, percent)
60
- * @param value - Number value
61
- * @param format - Format type
62
- * @param pattern - Pattern with {value} placeholder
63
- * @param options - Additional formatting options
64
- * @returns Formatted message
65
- */
66
- static formatNumber(value: number, format: 'integer' | 'currency' | 'percent', pattern: string, options?: EnhancedErrorOptions): string;
67
- /**
68
- * Create nested messages with multiple levels of ICU formatting
69
- * @param pattern - Complex nested ICU pattern
70
- * @param options - Formatting options
71
- * @returns Formatted message
72
- */
73
- static formatNested(pattern: string, options?: EnhancedErrorOptions): string;
74
- /**
75
- * Detect if a string key represents a nested path
76
- * @param key - String key to check
77
- * @returns Object with nesting information
78
- */
79
- static analyzeKeyPath(key: string): {
80
- isNested: boolean;
81
- depth: number;
82
- parts: string[];
83
- };
84
- /**
85
- * Create metadata object with count information for debugging
86
- * @param count - Count value
87
- * @param additionalMetadata - Additional metadata to include
88
- * @returns Metadata object
89
- */
90
- static createCountMetadata(count: number, additionalMetadata?: Record<string, any>): Record<string, any>;
91
- /**
92
- * Validate that all required ICU variables are provided
93
- * @param pattern - ICU pattern
94
- * @param variables - Provided variables
95
- * @returns Object with validation result
96
- */
97
- static validateVariables(pattern: string, variables: Record<string, any>): {
98
- valid: boolean;
99
- missing: string[];
100
- };
101
- }
102
- /**
103
- * Mixin function to add enhanced i18n features to error classes
104
- * @param Base - Base error class
105
- * @returns Enhanced error class
106
- */
107
- export declare function withEnhancedI18n<T extends new (...args: any[]) => Error>(Base: T): {
108
- new (...args: any[]): {
109
- formatMessage(pattern: string, options?: EnhancedErrorOptions): string;
110
- formatPlural(singularPattern: string, pluralPattern: string, count: number, options?: Omit<EnhancedErrorOptions, "count">): string;
111
- formatGender(patterns: Partial<Record<GenderCategory, string>>, gender: GenderCategory, options?: Omit<EnhancedErrorOptions, "gender">): string;
112
- formatOrdinal(number: number, pattern: string, options?: EnhancedErrorOptions): string;
113
- formatNumber(value: number, format: "integer" | "currency" | "percent", pattern: string, options?: EnhancedErrorOptions): string;
114
- name: string;
115
- message: string;
116
- stack?: string;
117
- cause?: unknown;
118
- disposedAt?: string;
119
- type?: string;
120
- componentId?: string;
121
- reasonMap?: Record<string, unknown>;
122
- metadata?: Record<string, unknown>;
123
- };
124
- } & T;
125
- //# sourceMappingURL=enhanced-error-base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanced-error-base.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/enhanced-error-base.ts"],"names":[],"mappings":"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"}
@@ -1,165 +0,0 @@
1
- "use strict";
2
- /**
3
- * Enhanced error base with i18n 3.0/3.5 feature support
4
- * Provides helper methods for ICU MessageFormat, pluralization, gender, and advanced features
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.EnhancedErrorHelper = void 0;
8
- exports.withEnhancedI18n = withEnhancedI18n;
9
- const helpers_1 = require("../icu/helpers");
10
- /**
11
- * Helper class providing advanced i18n features for error messages
12
- * This can be used as a mixin or utility class for error classes
13
- */
14
- class EnhancedErrorHelper {
15
- /**
16
- * Format error message with ICU MessageFormat
17
- * @param pattern - ICU message pattern
18
- * @param options - Formatting options
19
- * @returns Formatted message string
20
- */
21
- static formatMessage(pattern, options = {}) {
22
- const { variables = {}, language = 'en-US', count, gender } = options;
23
- // Add count and gender to variables if provided
24
- const allVars = {
25
- ...variables,
26
- ...(count !== undefined ? { count } : {}),
27
- ...(gender ? { gender } : {}),
28
- };
29
- return (0, helpers_1.formatICUMessage)(pattern, allVars, language);
30
- }
31
- /**
32
- * Create a plural-aware error message
33
- * @param singularPattern - Pattern for singular form
34
- * @param pluralPattern - Pattern for plural form
35
- * @param count - Count value
36
- * @param options - Additional formatting options
37
- * @returns Formatted message
38
- */
39
- static formatPlural(singularPattern, pluralPattern, count, options = {}) {
40
- const pattern = `{count, plural, one {${singularPattern}} other {${pluralPattern}}}`;
41
- return this.formatMessage(pattern, { ...options, count });
42
- }
43
- /**
44
- * Create a gender-aware error message
45
- * @param patterns - Patterns for different genders
46
- * @param gender - Gender value
47
- * @param options - Additional formatting options
48
- * @returns Formatted message
49
- */
50
- static formatGender(patterns, gender, options = {}) {
51
- const { male, female, neutral, other } = patterns;
52
- const selectPattern = `{gender, select, ${male ? `male {${male}}` : ''} ${female ? `female {${female}}` : ''} ${neutral ? `neutral {${neutral}}` : ''} other {${other || patterns.male || patterns.female || patterns.neutral || 'Error'}}}`;
53
- return this.formatMessage(selectPattern, { ...options, gender });
54
- }
55
- /**
56
- * Format ordinal numbers (1st, 2nd, 3rd, etc.)
57
- * @param number - The number to format
58
- * @param pattern - Pattern with {number} placeholder
59
- * @param options - Additional formatting options
60
- * @returns Formatted message with ordinal
61
- */
62
- static formatOrdinal(number, pattern, options = {}) {
63
- const ordinalPattern = pattern.replace('{number}', `{number, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}`);
64
- return this.formatMessage(ordinalPattern, {
65
- ...options,
66
- variables: { ...options.variables, number },
67
- });
68
- }
69
- /**
70
- * Format numbers with specific formatting (integer, currency, percent)
71
- * @param value - Number value
72
- * @param format - Format type
73
- * @param pattern - Pattern with {value} placeholder
74
- * @param options - Additional formatting options
75
- * @returns Formatted message
76
- */
77
- static formatNumber(value, format, pattern, options = {}) {
78
- const numberPattern = pattern.replace('{value}', `{value, number, ${format}}`);
79
- return this.formatMessage(numberPattern, {
80
- ...options,
81
- variables: { ...options.variables, value },
82
- });
83
- }
84
- /**
85
- * Create nested messages with multiple levels of ICU formatting
86
- * @param pattern - Complex nested ICU pattern
87
- * @param options - Formatting options
88
- * @returns Formatted message
89
- */
90
- static formatNested(pattern, options = {}) {
91
- return this.formatMessage(pattern, options);
92
- }
93
- /**
94
- * Detect if a string key represents a nested path
95
- * @param key - String key to check
96
- * @returns Object with nesting information
97
- */
98
- static analyzeKeyPath(key) {
99
- const parts = key.split('.');
100
- return {
101
- isNested: parts.length > 1,
102
- depth: parts.length,
103
- parts,
104
- };
105
- }
106
- /**
107
- * Create metadata object with count information for debugging
108
- * @param count - Count value
109
- * @param additionalMetadata - Additional metadata to include
110
- * @returns Metadata object
111
- */
112
- static createCountMetadata(count, additionalMetadata = {}) {
113
- return {
114
- count,
115
- ...additionalMetadata,
116
- };
117
- }
118
- /**
119
- * Validate that all required ICU variables are provided
120
- * @param pattern - ICU pattern
121
- * @param variables - Provided variables
122
- * @returns Object with validation result
123
- */
124
- static validateVariables(pattern, variables) {
125
- // Extract variable names from ICU pattern
126
- const variableMatches = pattern.match(/\{([a-zA-Z_][a-zA-Z0-9_]*)/g);
127
- if (!variableMatches) {
128
- return { valid: true, missing: [] };
129
- }
130
- const required = variableMatches
131
- .map(match => match.substring(1))
132
- .filter((name, index, self) => self.indexOf(name) === index);
133
- const missing = required.filter(name => !(name in variables));
134
- return {
135
- valid: missing.length === 0,
136
- missing,
137
- };
138
- }
139
- }
140
- exports.EnhancedErrorHelper = EnhancedErrorHelper;
141
- /**
142
- * Mixin function to add enhanced i18n features to error classes
143
- * @param Base - Base error class
144
- * @returns Enhanced error class
145
- */
146
- function withEnhancedI18n(Base) {
147
- return class extends Base {
148
- formatMessage(pattern, options = {}) {
149
- return EnhancedErrorHelper.formatMessage(pattern, options);
150
- }
151
- formatPlural(singularPattern, pluralPattern, count, options = {}) {
152
- return EnhancedErrorHelper.formatPlural(singularPattern, pluralPattern, count, options);
153
- }
154
- formatGender(patterns, gender, options = {}) {
155
- return EnhancedErrorHelper.formatGender(patterns, gender, options);
156
- }
157
- formatOrdinal(number, pattern, options = {}) {
158
- return EnhancedErrorHelper.formatOrdinal(number, pattern, options);
159
- }
160
- formatNumber(value, format, pattern, options = {}) {
161
- return EnhancedErrorHelper.formatNumber(value, format, pattern, options);
162
- }
163
- };
164
- }
165
- //# sourceMappingURL=enhanced-error-base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanced-error-base.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/enhanced-error-base.ts"],"names":[],"mappings":"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"}