@digitaldefiance/i18n-lib 3.8.2 → 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 +6 -5
  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
@@ -1,142 +1,91 @@
1
1
  import { ComponentDefinition } from './component-definition';
2
2
  import { LanguageDefinition } from './language-definition';
3
-
4
3
  /**
5
4
  * Standard language context spaces
6
5
  */
7
6
  export type LanguageContextSpace = 'admin' | 'user';
8
-
9
7
  /**
10
8
  * Default currency code
11
9
  */
12
- export const DefaultCurrencyCode: string = 'USD';
13
-
10
+ export declare const DefaultCurrencyCode: string;
14
11
  /**
15
12
  * Default timezone
16
13
  */
17
- export const DefaultTimezone: string = 'UTC';
18
-
14
+ export declare const DefaultTimezone: string;
19
15
  /**
20
16
  * Default language code
21
17
  */
22
- export const DefaultLanguageCode: string = 'en-US';
23
-
18
+ export declare const DefaultLanguageCode: string;
24
19
  /**
25
20
  * Currency position type
26
21
  */
27
22
  export type CurrencyPosition = 'prefix' | 'postfix' | 'infix';
28
-
29
23
  /**
30
24
  * Collection of localized strings for a specific language
31
25
  */
32
- export type StringsCollection<TStringKey extends string> = Partial<
33
- Record<TStringKey, string>
34
- >;
35
-
26
+ export type StringsCollection<TStringKey extends string> = Partial<Record<TStringKey, string>>;
36
27
  /**
37
28
  * Mapping of languages to their respective string collections
38
29
  */
39
- export type MasterStringsCollection<
40
- TStringKey extends string,
41
- TLanguage extends string,
42
- > = Partial<Record<TLanguage, StringsCollection<TStringKey>>>;
43
-
30
+ export type MasterStringsCollection<TStringKey extends string, TLanguage extends string> = Partial<Record<TLanguage, StringsCollection<TStringKey>>>;
44
31
  /**
45
32
  * Mapping of language codes to their respective languages
46
33
  */
47
- export type LanguageCodeCollection<TLanguage extends string> = Partial<
48
- Record<TLanguage, string>
49
- >;
50
-
34
+ export type LanguageCodeCollection<TLanguage extends string> = Partial<Record<TLanguage, string>>;
51
35
  /**
52
36
  * Mapping of enumeration values to their translations in multiple languages
53
37
  */
54
- export type EnumTranslationMap<
55
- TEnum extends string | number,
56
- TLanguage extends string,
57
- > = Partial<Record<TLanguage, Partial<Record<TEnum, string>>>>;
58
-
38
+ export type EnumTranslationMap<TEnum extends string | number, TLanguage extends string> = Partial<Record<TLanguage, Partial<Record<TEnum, string>>>>;
59
39
  /**
60
40
  * String collection for a specific language and component
61
41
  */
62
42
  export type ComponentStrings<TStringKeys extends string> = {
63
- [K in TStringKeys]: string;
43
+ [K in TStringKeys]: string;
64
44
  };
65
-
66
45
  /**
67
46
  * Partial string collection (used during registration before validation)
68
47
  */
69
48
  export type PartialComponentStrings<TStringKeys extends string> = {
70
- [K in TStringKeys]?: string;
49
+ [K in TStringKeys]?: string;
71
50
  };
72
-
73
51
  /**
74
52
  * Language strings for a component across all registered languages
75
53
  */
76
- export type ComponentLanguageStrings<
77
- TStringKeys extends string,
78
- TLanguages extends string,
79
- > = {
80
- [L in TLanguages]: ComponentStrings<TStringKeys>;
54
+ export type ComponentLanguageStrings<TStringKeys extends string, TLanguages extends string> = {
55
+ [L in TLanguages]: ComponentStrings<TStringKeys>;
81
56
  };
82
-
83
57
  /**
84
58
  * Partial language strings (used during registration before validation)
85
59
  */
86
- export type PartialComponentLanguageStrings<
87
- TStringKeys extends string,
88
- TLanguages extends string,
89
- > = {
90
- [L in TLanguages]?: PartialComponentStrings<TStringKeys>;
60
+ export type PartialComponentLanguageStrings<TStringKeys extends string, TLanguages extends string> = {
61
+ [L in TLanguages]?: PartialComponentStrings<TStringKeys>;
91
62
  };
92
-
93
63
  /**
94
64
  * Generic translation type for any enumeration
95
65
  */
96
66
  export type EnumTranslation<T extends string | number> = {
97
- [K in T]: string;
67
+ [K in T]: string;
98
68
  };
99
-
100
69
  /**
101
70
  * Generic language translation type for any enumeration
102
71
  */
103
- export type EnumLanguageTranslation<
104
- T extends string | number,
105
- TLanguage extends string = string,
106
- > = Partial<{
107
- [L in TLanguage]: EnumTranslation<T>;
72
+ export type EnumLanguageTranslation<T extends string | number, TLanguage extends string = string> = Partial<{
73
+ [L in TLanguage]: EnumTranslation<T>;
108
74
  }>;
109
-
110
75
  /**
111
76
  * Type utility to extract string keys from a component definition
112
77
  */
113
- export type ExtractStringKeys<T> = T extends ComponentDefinition<infer K>
114
- ? K
115
- : never;
116
-
78
+ export type ExtractStringKeys<T> = T extends ComponentDefinition<infer K> ? K : never;
117
79
  /**
118
80
  * Type utility to extract languages from registry
119
81
  */
120
- export type ExtractLanguages<T> = T extends LanguageDefinition
121
- ? T['id']
122
- : never;
123
-
82
+ export type ExtractLanguages<T> = T extends LanguageDefinition ? T['id'] : never;
124
83
  /**
125
84
  * Utility type to ensure all string keys are provided for all languages
126
85
  */
127
- export type CompleteComponentStrings<
128
- TStringKeys extends string,
129
- TLanguages extends string,
130
- > = ComponentLanguageStrings<TStringKeys, TLanguages>;
131
-
86
+ export type CompleteComponentStrings<TStringKeys extends string, TLanguages extends string> = ComponentLanguageStrings<TStringKeys, TLanguages>;
132
87
  /**
133
88
  * Helper function to create typed translations for an enumeration
134
89
  */
135
- export function createTranslations<
136
- T extends string | number,
137
- TLanguage extends string,
138
- >(
139
- translations: EnumLanguageTranslation<T, TLanguage>,
140
- ): EnumLanguageTranslation<T, TLanguage> {
141
- return translations;
142
- }
90
+ export declare function createTranslations<T extends string | number, TLanguage extends string>(translations: EnumLanguageTranslation<T, TLanguage>): EnumLanguageTranslation<T, TLanguage>;
91
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAc,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAc,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,MAAM,IAAI,OAAO,CAChE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,IACtB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,SAAS,SAAS,MAAM,IAAI,OAAO,CACpE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,SAAS,SAAS,MAAM,IACtB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,WAAW,SAAS,MAAM,IAAI;KACxD,CAAC,IAAI,WAAW,GAAG,MAAM;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CAAC,WAAW,SAAS,MAAM,IAAI;KAC/D,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAClC,WAAW,SAAS,MAAM,EAC1B,UAAU,SAAS,MAAM,IACvB;KACD,CAAC,IAAI,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC;CACjD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,+BAA+B,CACzC,WAAW,SAAS,MAAM,EAC1B,UAAU,SAAS,MAAM,IACvB;KACD,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,uBAAuB,CAAC,WAAW,CAAC;CACzD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;KACtD,CAAC,IAAI,CAAC,GAAG,MAAM;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,SAAS,SAAS,MAAM,GAAG,MAAM,IAC/B,OAAO,CAAC;KACT,CAAC,IAAI,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC;CACrC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GACrE,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,kBAAkB,GAC1D,CAAC,CAAC,IAAI,CAAC,GACP,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAClC,WAAW,SAAS,MAAM,EAC1B,UAAU,SAAS,MAAM,IACvB,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAEtD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,SAAS,SAAS,MAAM,EAExB,YAAY,EAAE,uBAAuB,CAAC,CAAC,EAAE,SAAS,CAAC,GAClD,uBAAuB,CAAC,CAAC,EAAE,SAAS,CAAC,CAEvC"}
package/src/types.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultLanguageCode = exports.DefaultTimezone = exports.DefaultCurrencyCode = void 0;
4
+ exports.createTranslations = createTranslations;
5
+ /**
6
+ * Default currency code
7
+ */
8
+ exports.DefaultCurrencyCode = 'USD';
9
+ /**
10
+ * Default timezone
11
+ */
12
+ exports.DefaultTimezone = 'UTC';
13
+ /**
14
+ * Default language code
15
+ */
16
+ exports.DefaultLanguageCode = 'en-US';
17
+ /**
18
+ * Helper function to create typed translations for an enumeration
19
+ */
20
+ function createTranslations(translations) {
21
+ return translations;
22
+ }
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/types.ts"],"names":[],"mappings":";;;AAsIA,gDAOC;AArID;;GAEG;AACU,QAAA,mBAAmB,GAAW,KAAK,CAAC;AAEjD;;GAEG;AACU,QAAA,eAAe,GAAW,KAAK,CAAC;AAE7C;;GAEG;AACU,QAAA,mBAAmB,GAAW,OAAO,CAAC;AA8GnD;;GAEG;AACH,SAAgB,kBAAkB,CAIhC,YAAmD;IAEnD,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Currency utilities (v2)
3
+ */
4
+ /**
5
+ * Position of the currency symbol relative to the amount.
6
+ */
7
+ export type CurrencyPosition = 'prefix' | 'postfix' | 'infix';
8
+ /**
9
+ * Configuration for formatting currency values in a specific locale.
10
+ */
11
+ export interface CurrencyFormat {
12
+ /** The currency symbol (e.g., "$", "€") */
13
+ symbol: string;
14
+ /** Position of the symbol relative to the amount */
15
+ position: CurrencyPosition;
16
+ /** Character used to separate thousands (e.g., ",") */
17
+ groupSeparator: string;
18
+ /** Character used to separate decimal places (e.g., ".") */
19
+ decimalSeparator: string;
20
+ }
21
+ /**
22
+ * Detailed information about a currency.
23
+ */
24
+ export interface CurrencyData {
25
+ /** ISO 4217 currency code (e.g., "USD") */
26
+ code: string;
27
+ /** Numeric currency code */
28
+ number: string;
29
+ /** Number of decimal digits */
30
+ digits: number;
31
+ /** Currency name */
32
+ currency: string;
33
+ /** Countries using this currency */
34
+ countries: string[];
35
+ }
36
+ /**
37
+ * Represents a valid ISO 4217 currency code with validation.
38
+ */
39
+ export declare class CurrencyCode {
40
+ private _value;
41
+ /**
42
+ * Creates a new CurrencyCode instance.
43
+ * @param value - The ISO 4217 currency code (defaults to 'USD')
44
+ * @throws {Error} If the currency code is invalid
45
+ */
46
+ constructor(value?: string);
47
+ /**
48
+ * Gets the currency code value.
49
+ * @returns The ISO 4217 currency code
50
+ */
51
+ get value(): string;
52
+ /**
53
+ * Gets the currency code (alias for value).
54
+ * @returns The ISO 4217 currency code
55
+ */
56
+ get code(): string;
57
+ /**
58
+ * Checks if a currency code is valid according to ISO 4217.
59
+ * @param code - The currency code to validate
60
+ * @returns True if the code is valid, false otherwise
61
+ */
62
+ static isValid(code: string): boolean;
63
+ /**
64
+ * Gets all valid ISO 4217 currency codes.
65
+ * @returns Array of currency codes
66
+ */
67
+ static getAll(): string[];
68
+ /**
69
+ * Gets detailed information for all currencies.
70
+ * @returns Array of currency data objects
71
+ */
72
+ static getAllData(): CurrencyData[];
73
+ }
74
+ /**
75
+ * Gets the currency formatting rules for a specific locale and currency.
76
+ * @param locale - The locale code (e.g., 'en-US', 'fr-FR')
77
+ * @param currencyCode - The ISO 4217 currency code
78
+ * @returns Currency format configuration including symbol, position, and separators
79
+ */
80
+ export declare function getCurrencyFormat(locale: string, currencyCode: string): CurrencyFormat;
81
+ //# sourceMappingURL=currency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/currency.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;gBACS,KAAK,GAAE,MAAc;IAOjC;;;OAGG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE;IAIzB;;;OAGG;IACH,MAAM,CAAC,UAAU,IAAI,YAAY,EAAE;CAGpC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GACnB,cAAc,CA8BhB"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /**
3
+ * Currency utilities (v2)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CurrencyCode = void 0;
7
+ exports.getCurrencyFormat = getCurrencyFormat;
8
+ const currency_codes_1 = require("currency-codes");
9
+ /**
10
+ * Represents a valid ISO 4217 currency code with validation.
11
+ */
12
+ class CurrencyCode {
13
+ _value;
14
+ /**
15
+ * Creates a new CurrencyCode instance.
16
+ * @param value - The ISO 4217 currency code (defaults to 'USD')
17
+ * @throws {Error} If the currency code is invalid
18
+ */
19
+ constructor(value = 'USD') {
20
+ if (!CurrencyCode.isValid(value)) {
21
+ throw new Error(`Invalid currency code: ${value}`);
22
+ }
23
+ this._value = value;
24
+ }
25
+ /**
26
+ * Gets the currency code value.
27
+ * @returns The ISO 4217 currency code
28
+ */
29
+ get value() {
30
+ return this._value;
31
+ }
32
+ /**
33
+ * Gets the currency code (alias for value).
34
+ * @returns The ISO 4217 currency code
35
+ */
36
+ get code() {
37
+ return this._value;
38
+ }
39
+ /**
40
+ * Checks if a currency code is valid according to ISO 4217.
41
+ * @param code - The currency code to validate
42
+ * @returns True if the code is valid, false otherwise
43
+ */
44
+ static isValid(code) {
45
+ return (0, currency_codes_1.codes)().includes(code);
46
+ }
47
+ /**
48
+ * Gets all valid ISO 4217 currency codes.
49
+ * @returns Array of currency codes
50
+ */
51
+ static getAll() {
52
+ return (0, currency_codes_1.codes)();
53
+ }
54
+ /**
55
+ * Gets detailed information for all currencies.
56
+ * @returns Array of currency data objects
57
+ */
58
+ static getAllData() {
59
+ return currency_codes_1.data;
60
+ }
61
+ }
62
+ exports.CurrencyCode = CurrencyCode;
63
+ /**
64
+ * Gets the currency formatting rules for a specific locale and currency.
65
+ * @param locale - The locale code (e.g., 'en-US', 'fr-FR')
66
+ * @param currencyCode - The ISO 4217 currency code
67
+ * @returns Currency format configuration including symbol, position, and separators
68
+ */
69
+ function getCurrencyFormat(locale, currencyCode) {
70
+ const formatter = new Intl.NumberFormat(locale, {
71
+ style: 'currency',
72
+ currency: currencyCode,
73
+ });
74
+ const parts = formatter.formatToParts(1234567.89);
75
+ const symbol = parts.find((part) => part.type === 'currency')?.value || '';
76
+ const symbolIndex = parts.findIndex((part) => part.type === 'currency');
77
+ const decimalIndex = parts.findIndex((part) => part.type === 'decimal');
78
+ const integerIndex = parts.findIndex((part) => part.type === 'integer');
79
+ let position;
80
+ if (decimalIndex === -1) {
81
+ position = symbolIndex < integerIndex ? 'prefix' : 'postfix';
82
+ }
83
+ else if (symbolIndex < decimalIndex && symbolIndex < integerIndex) {
84
+ position = 'prefix';
85
+ }
86
+ else if (symbolIndex > decimalIndex) {
87
+ position = 'postfix';
88
+ }
89
+ else {
90
+ position = 'infix';
91
+ }
92
+ return {
93
+ symbol,
94
+ position,
95
+ groupSeparator: parts.find((part) => part.type === 'group')?.value || ',',
96
+ decimalSeparator: parts.find((part) => part.type === 'decimal')?.value || '.',
97
+ };
98
+ }
99
+ //# sourceMappingURL=currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/currency.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAyGH,8CAiCC;AAxID,mDAA6C;AAqC7C;;GAEG;AACH,MAAa,YAAY;IACf,MAAM,CAAS;IAEvB;;;;OAIG;IACH,YAAY,QAAgB,KAAK;QAC/B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,OAAO,IAAA,sBAAK,GAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,IAAA,sBAAK,GAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,qBAAsB,CAAC;IAChC,CAAC;CACF;AAvDD,oCAuDC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,MAAc,EACd,YAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QAC9C,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IAC3E,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAExE,IAAI,QAA0B,CAAC;IAC/B,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;SAAM,IAAI,WAAW,GAAG,YAAY,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;QACpE,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC;SAAM,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;QACtC,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ;QACR,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,KAAK,IAAI,GAAG;QACzE,gBAAgB,EACd,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,KAAK,IAAI,GAAG;KAC9D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * HTML escaping utilities for XSS prevention
3
+ */
4
+ /**
5
+ * Escapes HTML special characters to prevent XSS attacks.
6
+ * @param str - The string to escape
7
+ * @returns The escaped string
8
+ */
9
+ export declare function escapeHtml(str: string): string;
10
+ /**
11
+ * Safely converts a value to a string, optionally escaping HTML.
12
+ * Rejects objects to prevent toString exploits.
13
+ * @param value - The value to stringify
14
+ * @param options - Options including whether to escape HTML
15
+ * @param options.escapeHtml - If true, HTML-escapes the result
16
+ * @returns The stringified value
17
+ * @throws {Error} If the value is an object (to prevent exploits)
18
+ */
19
+ export declare function safeStringify(value: any, options?: {
20
+ escapeHtml?: boolean;
21
+ }): string;
22
+ //# sourceMappingURL=html-escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-escape.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/html-escape.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAepF"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * HTML escaping utilities for XSS prevention
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.escapeHtml = escapeHtml;
7
+ exports.safeStringify = safeStringify;
8
+ /**
9
+ * Map of HTML characters to their escaped equivalents.
10
+ */
11
+ const HTML_ESCAPES = {
12
+ '&': '&amp;',
13
+ '<': '&lt;',
14
+ '>': '&gt;',
15
+ '"': '&quot;',
16
+ "'": '&#x27;',
17
+ '/': '&#x2F;',
18
+ };
19
+ /**
20
+ * Regular expression to match characters that need HTML escaping.
21
+ */
22
+ const HTML_ESCAPE_REGEX = /[&<>"'/]/g;
23
+ /**
24
+ * Escapes HTML special characters to prevent XSS attacks.
25
+ * @param str - The string to escape
26
+ * @returns The escaped string
27
+ */
28
+ function escapeHtml(str) {
29
+ return str.replace(HTML_ESCAPE_REGEX, char => HTML_ESCAPES[char]);
30
+ }
31
+ /**
32
+ * Safely converts a value to a string, optionally escaping HTML.
33
+ * Rejects objects to prevent toString exploits.
34
+ * @param value - The value to stringify
35
+ * @param options - Options including whether to escape HTML
36
+ * @param options.escapeHtml - If true, HTML-escapes the result
37
+ * @returns The stringified value
38
+ * @throws {Error} If the value is an object (to prevent exploits)
39
+ */
40
+ function safeStringify(value, options) {
41
+ if (value === null || value === undefined) {
42
+ return '';
43
+ }
44
+ if (typeof value === 'string') {
45
+ return options?.escapeHtml ? escapeHtml(value) : value;
46
+ }
47
+ if (typeof value === 'number' || typeof value === 'boolean') {
48
+ return String(value);
49
+ }
50
+ // Reject objects to prevent toString exploits
51
+ throw new Error('Invalid value type for stringification');
52
+ }
53
+ //# sourceMappingURL=html-escape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-escape.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/html-escape.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAwBH,gCAEC;AAWD,sCAeC;AAlDD;;GAEG;AACH,MAAM,YAAY,GAA2B;IAC3C,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAEtC;;;;GAIG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,KAAU,EAAE,OAAkC;IAC1E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,8CAA8C;IAC9C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC5D,CAAC"}
@@ -6,3 +6,4 @@ export * from './timezone';
6
6
  export * from './validation';
7
7
  export * from './html-escape';
8
8
  export * from './lru-cache';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./plural-helpers"), exports);
5
+ tslib_1.__exportStar(require("./safe-object"), exports);
6
+ tslib_1.__exportStar(require("./string-utils"), exports);
7
+ tslib_1.__exportStar(require("./currency"), exports);
8
+ tslib_1.__exportStar(require("./timezone"), exports);
9
+ tslib_1.__exportStar(require("./validation"), exports);
10
+ tslib_1.__exportStar(require("./html-escape"), exports);
11
+ tslib_1.__exportStar(require("./lru-cache"), exports);
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,wDAA8B;AAC9B,yDAA+B;AAC/B,qDAA2B;AAC3B,qDAA2B;AAC3B,uDAA6B;AAC7B,wDAA8B;AAC9B,sDAA4B"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Simple LRU Cache implementation for security
3
+ */
4
+ /**
5
+ * Least Recently Used (LRU) cache implementation.
6
+ * Automatically evicts the oldest entries when the cache reaches maximum size.
7
+ * @template K - The type of cache keys
8
+ * @template V - The type of cached values
9
+ */
10
+ export declare class LRUCache<K, V> {
11
+ private cache;
12
+ private readonly maxSize;
13
+ /**
14
+ * Creates a new LRUCache instance.
15
+ * @param maxSize - Maximum number of entries to store (default: 1000)
16
+ */
17
+ constructor(maxSize?: number);
18
+ /**
19
+ * Retrieves a value from the cache by key.
20
+ * Accessing an item moves it to the end (marks it as most recently used).
21
+ * @param key - The key to look up
22
+ * @returns The cached value, or undefined if not found
23
+ */
24
+ get(key: K): V | undefined;
25
+ /**
26
+ * Adds or updates a value in the cache.
27
+ * If the cache is at capacity, the oldest entry is removed.
28
+ * @param key - The key to store
29
+ * @param value - The value to cache
30
+ */
31
+ set(key: K, value: V): void;
32
+ /**
33
+ * Removes all entries from the cache.
34
+ */
35
+ clear(): void;
36
+ /**
37
+ * Gets the current number of entries in the cache.
38
+ * @returns The number of cached entries
39
+ */
40
+ size(): number;
41
+ }
42
+ //# sourceMappingURL=lru-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/lru-cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;OAGG;gBACS,OAAO,GAAE,MAAa;IAIlC;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAU1B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAiB3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,IAAI,IAAI,MAAM;CAGf"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /**
3
+ * Simple LRU Cache implementation for security
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LRUCache = void 0;
7
+ /**
8
+ * Least Recently Used (LRU) cache implementation.
9
+ * Automatically evicts the oldest entries when the cache reaches maximum size.
10
+ * @template K - The type of cache keys
11
+ * @template V - The type of cached values
12
+ */
13
+ class LRUCache {
14
+ cache = new Map();
15
+ maxSize;
16
+ /**
17
+ * Creates a new LRUCache instance.
18
+ * @param maxSize - Maximum number of entries to store (default: 1000)
19
+ */
20
+ constructor(maxSize = 1000) {
21
+ this.maxSize = maxSize;
22
+ }
23
+ /**
24
+ * Retrieves a value from the cache by key.
25
+ * Accessing an item moves it to the end (marks it as most recently used).
26
+ * @param key - The key to look up
27
+ * @returns The cached value, or undefined if not found
28
+ */
29
+ get(key) {
30
+ const value = this.cache.get(key);
31
+ if (value !== undefined) {
32
+ // Move to end (most recently used)
33
+ this.cache.delete(key);
34
+ this.cache.set(key, value);
35
+ }
36
+ return value;
37
+ }
38
+ /**
39
+ * Adds or updates a value in the cache.
40
+ * If the cache is at capacity, the oldest entry is removed.
41
+ * @param key - The key to store
42
+ * @param value - The value to cache
43
+ */
44
+ set(key, value) {
45
+ // Remove if exists to update position
46
+ if (this.cache.has(key)) {
47
+ this.cache.delete(key);
48
+ }
49
+ // Remove oldest if at capacity
50
+ if (this.cache.size >= this.maxSize) {
51
+ const firstKey = this.cache.keys().next().value;
52
+ if (firstKey !== undefined) {
53
+ this.cache.delete(firstKey);
54
+ }
55
+ }
56
+ this.cache.set(key, value);
57
+ }
58
+ /**
59
+ * Removes all entries from the cache.
60
+ */
61
+ clear() {
62
+ this.cache.clear();
63
+ }
64
+ /**
65
+ * Gets the current number of entries in the cache.
66
+ * @returns The number of cached entries
67
+ */
68
+ size() {
69
+ return this.cache.size;
70
+ }
71
+ }
72
+ exports.LRUCache = LRUCache;
73
+ //# sourceMappingURL=lru-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/utils/lru-cache.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;;;GAKG;AACH,MAAa,QAAQ;IACX,KAAK,GAAG,IAAI,GAAG,EAAQ,CAAC;IACf,OAAO,CAAS;IAEjC;;;OAGG;IACH,YAAY,UAAkB,IAAI;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAM;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,sCAAsC;QACtC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AAjED,4BAiEC"}