@lionrapid/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +106 -0
  2. package/dist/base/event-emitter.d.ts +91 -0
  3. package/dist/base/event-emitter.d.ts.map +1 -0
  4. package/dist/base/event-emitter.js +330 -0
  5. package/dist/base/event-emitter.js.map +1 -0
  6. package/dist/base/index.d.ts +5 -0
  7. package/dist/base/index.d.ts.map +1 -0
  8. package/dist/base/index.js +5 -0
  9. package/dist/base/index.js.map +1 -0
  10. package/dist/browser/auto-init.d.ts +57 -0
  11. package/dist/browser/auto-init.d.ts.map +1 -0
  12. package/dist/browser/auto-init.js +304 -0
  13. package/dist/browser/auto-init.js.map +1 -0
  14. package/dist/browser/auto-translator.d.ts +98 -0
  15. package/dist/browser/auto-translator.d.ts.map +1 -0
  16. package/dist/browser/auto-translator.js +218 -0
  17. package/dist/browser/auto-translator.js.map +1 -0
  18. package/dist/browser/block-extractor.d.ts +26 -0
  19. package/dist/browser/block-extractor.d.ts.map +1 -0
  20. package/dist/browser/block-extractor.js +143 -0
  21. package/dist/browser/block-extractor.js.map +1 -0
  22. package/dist/browser/dom-observer.d.ts +42 -0
  23. package/dist/browser/dom-observer.d.ts.map +1 -0
  24. package/dist/browser/dom-observer.js +109 -0
  25. package/dist/browser/dom-observer.js.map +1 -0
  26. package/dist/browser/editor/editor-api.d.ts +67 -0
  27. package/dist/browser/editor/editor-api.d.ts.map +1 -0
  28. package/dist/browser/editor/editor-api.js +233 -0
  29. package/dist/browser/editor/editor-api.js.map +1 -0
  30. package/dist/browser/editor/editor-init.d.ts +11 -0
  31. package/dist/browser/editor/editor-init.d.ts.map +1 -0
  32. package/dist/browser/editor/editor-init.js +181 -0
  33. package/dist/browser/editor/editor-init.js.map +1 -0
  34. package/dist/browser/editor/editor-styles.d.ts +6 -0
  35. package/dist/browser/editor/editor-styles.d.ts.map +1 -0
  36. package/dist/browser/editor/editor-styles.js +419 -0
  37. package/dist/browser/editor/editor-styles.js.map +1 -0
  38. package/dist/browser/editor/inspector.d.ts +22 -0
  39. package/dist/browser/editor/inspector.d.ts.map +1 -0
  40. package/dist/browser/editor/inspector.js +125 -0
  41. package/dist/browser/editor/inspector.js.map +1 -0
  42. package/dist/browser/editor/key-resolver.d.ts +19 -0
  43. package/dist/browser/editor/key-resolver.d.ts.map +1 -0
  44. package/dist/browser/editor/key-resolver.js +49 -0
  45. package/dist/browser/editor/key-resolver.js.map +1 -0
  46. package/dist/browser/editor/live-preview.d.ts +10 -0
  47. package/dist/browser/editor/live-preview.d.ts.map +1 -0
  48. package/dist/browser/editor/live-preview.js +57 -0
  49. package/dist/browser/editor/live-preview.js.map +1 -0
  50. package/dist/browser/editor/sidebar.d.ts +50 -0
  51. package/dist/browser/editor/sidebar.d.ts.map +1 -0
  52. package/dist/browser/editor/sidebar.js +353 -0
  53. package/dist/browser/editor/sidebar.js.map +1 -0
  54. package/dist/browser/editor/toolbar.d.ts +29 -0
  55. package/dist/browser/editor/toolbar.d.ts.map +1 -0
  56. package/dist/browser/editor/toolbar.js +131 -0
  57. package/dist/browser/editor/toolbar.js.map +1 -0
  58. package/dist/browser/exclude-filter.d.ts +21 -0
  59. package/dist/browser/exclude-filter.d.ts.map +1 -0
  60. package/dist/browser/exclude-filter.js +51 -0
  61. package/dist/browser/exclude-filter.js.map +1 -0
  62. package/dist/browser/index.d.ts +32 -0
  63. package/dist/browser/index.d.ts.map +1 -0
  64. package/dist/browser/index.js +28 -0
  65. package/dist/browser/index.js.map +1 -0
  66. package/dist/browser/language-switcher.d.ts +70 -0
  67. package/dist/browser/language-switcher.d.ts.map +1 -0
  68. package/dist/browser/language-switcher.js +339 -0
  69. package/dist/browser/language-switcher.js.map +1 -0
  70. package/dist/browser/lionrapid.auto.dev.js +5757 -0
  71. package/dist/browser/lionrapid.auto.dev.js.map +7 -0
  72. package/dist/browser/lionrapid.auto.js +5757 -0
  73. package/dist/browser/lionrapid.auto.js.map +7 -0
  74. package/dist/browser/lionrapid.auto.min.js +80 -0
  75. package/dist/browser/lionrapid.auto.min.js.map +7 -0
  76. package/dist/browser/lionrapid.editor.js +1869 -0
  77. package/dist/browser/lionrapid.editor.js.map +7 -0
  78. package/dist/browser/lionrapid.editor.min.js +415 -0
  79. package/dist/browser/lionrapid.editor.min.js.map +7 -0
  80. package/dist/browser/lionrapid.esm.js +4786 -0
  81. package/dist/browser/lionrapid.esm.js.map +7 -0
  82. package/dist/browser/lionrapid.esm.min.js +3 -0
  83. package/dist/browser/lionrapid.esm.min.js.map +7 -0
  84. package/dist/browser/lionrapid.iife.dev.js +4809 -0
  85. package/dist/browser/lionrapid.iife.dev.js.map +7 -0
  86. package/dist/browser/lionrapid.iife.js +4809 -0
  87. package/dist/browser/lionrapid.iife.js.map +7 -0
  88. package/dist/browser/lionrapid.iife.min.js +3 -0
  89. package/dist/browser/lionrapid.iife.min.js.map +7 -0
  90. package/dist/browser/lionrapid.umd.js +4822 -0
  91. package/dist/browser/lionrapid.umd.js.map +7 -0
  92. package/dist/browser/lionrapid.umd.min.js +18 -0
  93. package/dist/browser/lionrapid.umd.min.js.map +7 -0
  94. package/dist/browser/markup-parser.d.ts +13 -0
  95. package/dist/browser/markup-parser.d.ts.map +1 -0
  96. package/dist/browser/markup-parser.js +56 -0
  97. package/dist/browser/markup-parser.js.map +1 -0
  98. package/dist/browser/md5.d.ts +16 -0
  99. package/dist/browser/md5.d.ts.map +1 -0
  100. package/dist/browser/md5.js +145 -0
  101. package/dist/browser/md5.js.map +1 -0
  102. package/dist/browser/storage/cache-storage-repository.d.ts +44 -0
  103. package/dist/browser/storage/cache-storage-repository.d.ts.map +1 -0
  104. package/dist/browser/storage/cache-storage-repository.js +186 -0
  105. package/dist/browser/storage/cache-storage-repository.js.map +1 -0
  106. package/dist/browser/storage/localstorage-repository.d.ts +51 -0
  107. package/dist/browser/storage/localstorage-repository.d.ts.map +1 -0
  108. package/dist/browser/storage/localstorage-repository.js +270 -0
  109. package/dist/browser/storage/localstorage-repository.js.map +1 -0
  110. package/dist/builder.d.ts +24 -0
  111. package/dist/builder.d.ts.map +1 -0
  112. package/dist/builder.js +169 -0
  113. package/dist/builder.js.map +1 -0
  114. package/dist/cache/CacheManager.d.ts +132 -0
  115. package/dist/cache/CacheManager.d.ts.map +1 -0
  116. package/dist/cache/CacheManager.js +277 -0
  117. package/dist/cache/CacheManager.js.map +1 -0
  118. package/dist/cache/index.d.ts +6 -0
  119. package/dist/cache/index.d.ts.map +1 -0
  120. package/dist/cache/index.js +5 -0
  121. package/dist/cache/index.js.map +1 -0
  122. package/dist/config/index.d.ts +6 -0
  123. package/dist/config/index.d.ts.map +1 -0
  124. package/dist/config/index.js +6 -0
  125. package/dist/config/index.js.map +1 -0
  126. package/dist/config/lionrapid.config.d.ts +12 -0
  127. package/dist/config/lionrapid.config.d.ts.map +1 -0
  128. package/dist/config/lionrapid.config.js +2 -0
  129. package/dist/config/lionrapid.config.js.map +1 -0
  130. package/dist/config/logger.config.d.ts +19 -0
  131. package/dist/config/logger.config.d.ts.map +1 -0
  132. package/dist/config/logger.config.js +9 -0
  133. package/dist/config/logger.config.js.map +1 -0
  134. package/dist/config/repository.config.d.ts +87 -0
  135. package/dist/config/repository.config.d.ts.map +1 -0
  136. package/dist/config/repository.config.js +5 -0
  137. package/dist/config/repository.config.js.map +1 -0
  138. package/dist/content/index.d.ts +20 -0
  139. package/dist/content/index.d.ts.map +1 -0
  140. package/dist/content/index.js +13 -0
  141. package/dist/content/index.js.map +1 -0
  142. package/dist/content/parser/IParser.d.ts +33 -0
  143. package/dist/content/parser/IParser.d.ts.map +1 -0
  144. package/dist/content/parser/IParser.js +6 -0
  145. package/dist/content/parser/IParser.js.map +1 -0
  146. package/dist/content/parser/MarkupParser.d.ts +67 -0
  147. package/dist/content/parser/MarkupParser.d.ts.map +1 -0
  148. package/dist/content/parser/MarkupParser.js +231 -0
  149. package/dist/content/parser/MarkupParser.js.map +1 -0
  150. package/dist/content/serializer/HTMLSerializer.d.ts +61 -0
  151. package/dist/content/serializer/HTMLSerializer.d.ts.map +1 -0
  152. package/dist/content/serializer/HTMLSerializer.js +100 -0
  153. package/dist/content/serializer/HTMLSerializer.js.map +1 -0
  154. package/dist/content/serializer/ISerializer.d.ts +33 -0
  155. package/dist/content/serializer/ISerializer.d.ts.map +1 -0
  156. package/dist/content/serializer/ISerializer.js +6 -0
  157. package/dist/content/serializer/ISerializer.js.map +1 -0
  158. package/dist/content/style-mapper/DefaultStyleMapper.d.ts +59 -0
  159. package/dist/content/style-mapper/DefaultStyleMapper.d.ts.map +1 -0
  160. package/dist/content/style-mapper/DefaultStyleMapper.js +128 -0
  161. package/dist/content/style-mapper/DefaultStyleMapper.js.map +1 -0
  162. package/dist/content/style-mapper/IStyleMapper.d.ts +50 -0
  163. package/dist/content/style-mapper/IStyleMapper.d.ts.map +1 -0
  164. package/dist/content/style-mapper/IStyleMapper.js +6 -0
  165. package/dist/content/style-mapper/IStyleMapper.js.map +1 -0
  166. package/dist/content/types.d.ts +39 -0
  167. package/dist/content/types.d.ts.map +1 -0
  168. package/dist/content/types.js +6 -0
  169. package/dist/content/types.js.map +1 -0
  170. package/dist/content/validator/ContentValidator.d.ts +57 -0
  171. package/dist/content/validator/ContentValidator.d.ts.map +1 -0
  172. package/dist/content/validator/ContentValidator.js +215 -0
  173. package/dist/content/validator/ContentValidator.js.map +1 -0
  174. package/dist/content/validator/IValidator.d.ts +82 -0
  175. package/dist/content/validator/IValidator.d.ts.map +1 -0
  176. package/dist/content/validator/IValidator.js +6 -0
  177. package/dist/content/validator/IValidator.js.map +1 -0
  178. package/dist/errors/translation-errors.d.ts +55 -0
  179. package/dist/errors/translation-errors.d.ts.map +1 -0
  180. package/dist/errors/translation-errors.js +85 -0
  181. package/dist/errors/translation-errors.js.map +1 -0
  182. package/dist/handlers/async-storage-handler.d.ts +77 -0
  183. package/dist/handlers/async-storage-handler.d.ts.map +1 -0
  184. package/dist/handlers/async-storage-handler.js +239 -0
  185. package/dist/handlers/async-storage-handler.js.map +1 -0
  186. package/dist/handlers/handler-chain.d.ts +79 -0
  187. package/dist/handlers/handler-chain.d.ts.map +1 -0
  188. package/dist/handlers/handler-chain.js +366 -0
  189. package/dist/handlers/handler-chain.js.map +1 -0
  190. package/dist/handlers/index.d.ts +7 -0
  191. package/dist/handlers/index.d.ts.map +1 -0
  192. package/dist/handlers/index.js +7 -0
  193. package/dist/handlers/index.js.map +1 -0
  194. package/dist/handlers/network-handler.d.ts +90 -0
  195. package/dist/handlers/network-handler.d.ts.map +1 -0
  196. package/dist/handlers/network-handler.js +283 -0
  197. package/dist/handlers/network-handler.js.map +1 -0
  198. package/dist/handlers/sync-storage-handler.d.ts +88 -0
  199. package/dist/handlers/sync-storage-handler.d.ts.map +1 -0
  200. package/dist/handlers/sync-storage-handler.js +270 -0
  201. package/dist/handlers/sync-storage-handler.js.map +1 -0
  202. package/dist/index.d.ts +37 -0
  203. package/dist/index.d.ts.map +1 -0
  204. package/dist/index.js +30 -0
  205. package/dist/index.js.map +1 -0
  206. package/dist/interfaces/emitter.interface.d.ts +33 -0
  207. package/dist/interfaces/emitter.interface.d.ts.map +1 -0
  208. package/dist/interfaces/emitter.interface.js +2 -0
  209. package/dist/interfaces/emitter.interface.js.map +1 -0
  210. package/dist/interfaces/handler.interface.d.ts +50 -0
  211. package/dist/interfaces/handler.interface.d.ts.map +1 -0
  212. package/dist/interfaces/handler.interface.js +5 -0
  213. package/dist/interfaces/handler.interface.js.map +1 -0
  214. package/dist/interfaces/index.d.ts +8 -0
  215. package/dist/interfaces/index.d.ts.map +1 -0
  216. package/dist/interfaces/index.js +8 -0
  217. package/dist/interfaces/index.js.map +1 -0
  218. package/dist/interfaces/plugin.interface.d.ts +49 -0
  219. package/dist/interfaces/plugin.interface.d.ts.map +1 -0
  220. package/dist/interfaces/plugin.interface.js +6 -0
  221. package/dist/interfaces/plugin.interface.js.map +1 -0
  222. package/dist/interfaces/repository.interface.d.ts +56 -0
  223. package/dist/interfaces/repository.interface.d.ts.map +1 -0
  224. package/dist/interfaces/repository.interface.js +2 -0
  225. package/dist/interfaces/repository.interface.js.map +1 -0
  226. package/dist/lionRapid.d.ts +225 -0
  227. package/dist/lionRapid.d.ts.map +1 -0
  228. package/dist/lionRapid.js +596 -0
  229. package/dist/lionRapid.js.map +1 -0
  230. package/dist/repositories/index.d.ts +3 -0
  231. package/dist/repositories/index.d.ts.map +1 -0
  232. package/dist/repositories/index.js +3 -0
  233. package/dist/repositories/index.js.map +1 -0
  234. package/dist/repositories/memory-repository.d.ts +30 -0
  235. package/dist/repositories/memory-repository.d.ts.map +1 -0
  236. package/dist/repositories/memory-repository.js +100 -0
  237. package/dist/repositories/memory-repository.js.map +1 -0
  238. package/dist/repositories/network-repository.d.ts +138 -0
  239. package/dist/repositories/network-repository.d.ts.map +1 -0
  240. package/dist/repositories/network-repository.js +516 -0
  241. package/dist/repositories/network-repository.js.map +1 -0
  242. package/dist/sync/missing-translation-queue.d.ts +64 -0
  243. package/dist/sync/missing-translation-queue.d.ts.map +1 -0
  244. package/dist/sync/missing-translation-queue.js +184 -0
  245. package/dist/sync/missing-translation-queue.js.map +1 -0
  246. package/dist/types/cache.types.d.ts +62 -0
  247. package/dist/types/cache.types.d.ts.map +1 -0
  248. package/dist/types/cache.types.js +6 -0
  249. package/dist/types/cache.types.js.map +1 -0
  250. package/dist/types/event-payloads.types.d.ts +46 -0
  251. package/dist/types/event-payloads.types.d.ts.map +1 -0
  252. package/dist/types/event-payloads.types.js +6 -0
  253. package/dist/types/event-payloads.types.js.map +1 -0
  254. package/dist/types/generated.types.d.ts +31 -0
  255. package/dist/types/generated.types.d.ts.map +1 -0
  256. package/dist/types/generated.types.js +6 -0
  257. package/dist/types/generated.types.js.map +1 -0
  258. package/dist/types/index.d.ts +7 -0
  259. package/dist/types/index.d.ts.map +1 -0
  260. package/dist/types/index.js +7 -0
  261. package/dist/types/index.js.map +1 -0
  262. package/dist/types/lionRapid.types.d.ts +169 -0
  263. package/dist/types/lionRapid.types.d.ts.map +1 -0
  264. package/dist/types/lionRapid.types.js +8 -0
  265. package/dist/types/lionRapid.types.js.map +1 -0
  266. package/dist/types/parameters.types.d.ts +36 -0
  267. package/dist/types/parameters.types.d.ts.map +1 -0
  268. package/dist/types/parameters.types.js +6 -0
  269. package/dist/types/parameters.types.js.map +1 -0
  270. package/dist/types/translation-data.types.d.ts +54 -0
  271. package/dist/types/translation-data.types.d.ts.map +1 -0
  272. package/dist/types/translation-data.types.js +6 -0
  273. package/dist/types/translation-data.types.js.map +1 -0
  274. package/dist/types/translation.types.d.ts +94 -0
  275. package/dist/types/translation.types.d.ts.map +1 -0
  276. package/dist/types/translation.types.js +5 -0
  277. package/dist/types/translation.types.js.map +1 -0
  278. package/dist/utils/context-utils.d.ts +23 -0
  279. package/dist/utils/context-utils.d.ts.map +1 -0
  280. package/dist/utils/context-utils.js +36 -0
  281. package/dist/utils/context-utils.js.map +1 -0
  282. package/dist/utils/index.d.ts +10 -0
  283. package/dist/utils/index.d.ts.map +1 -0
  284. package/dist/utils/index.js +19 -0
  285. package/dist/utils/index.js.map +1 -0
  286. package/dist/utils/logger.d.ts +229 -0
  287. package/dist/utils/logger.d.ts.map +1 -0
  288. package/dist/utils/logger.js +345 -0
  289. package/dist/utils/logger.js.map +1 -0
  290. package/dist/utils/namespace-utils.d.ts +30 -0
  291. package/dist/utils/namespace-utils.d.ts.map +1 -0
  292. package/dist/utils/namespace-utils.js +56 -0
  293. package/dist/utils/namespace-utils.js.map +1 -0
  294. package/dist/utils/translation-flow.d.ts +18 -0
  295. package/dist/utils/translation-flow.d.ts.map +1 -0
  296. package/dist/utils/translation-flow.js +74 -0
  297. package/dist/utils/translation-flow.js.map +1 -0
  298. package/dist/utils/translation-value-utils.d.ts +57 -0
  299. package/dist/utils/translation-value-utils.d.ts.map +1 -0
  300. package/dist/utils/translation-value-utils.js +194 -0
  301. package/dist/utils/translation-value-utils.js.map +1 -0
  302. package/package.json +76 -0
@@ -0,0 +1,345 @@
1
+ import { LogLevel } from '../config/logger.config.js';
2
+ // Build-time constants for dead code elimination
3
+ const IS_PRODUCTION = process.env.NODE_ENV === 'production';
4
+ const IS_DEVELOPMENT = process.env.NODE_ENV === 'development';
5
+ const IS_CI = process.env.CI === 'true';
6
+ const LIONRAPID_DEV = process.env.LIONRAPID_DEV === 'true';
7
+ const PERFORMANCE_TRACKING = process.env.LIONRAPID_PERFORMANCE_TRACKING === 'true';
8
+ // Environment-specific configuration
9
+ const LOG_LEVEL_ENV = process.env.LOG_LEVEL || (IS_PRODUCTION ? 'ERROR' : 'DEBUG');
10
+ /**
11
+ * ANSI color codes for terminal output
12
+ */
13
+ export const Colors = {
14
+ // Reset
15
+ RESET: '\x1b[0m',
16
+ // Foreground colors
17
+ BLACK: '\x1b[30m',
18
+ RED: '\x1b[31m',
19
+ GREEN: '\x1b[32m',
20
+ YELLOW: '\x1b[33m',
21
+ BLUE: '\x1b[34m',
22
+ MAGENTA: '\x1b[35m',
23
+ CYAN: '\x1b[36m',
24
+ WHITE: '\x1b[37m',
25
+ ORANGE: '\x1b[38;5;208m',
26
+ // Bright foreground colors
27
+ BRIGHT_BLACK: '\x1b[90m',
28
+ BRIGHT_RED: '\x1b[91m',
29
+ BRIGHT_GREEN: '\x1b[92m',
30
+ BRIGHT_YELLOW: '\x1b[93m',
31
+ BRIGHT_BLUE: '\x1b[94m',
32
+ BRIGHT_MAGENTA: '\x1b[95m',
33
+ BRIGHT_CYAN: '\x1b[96m',
34
+ BRIGHT_WHITE: '\x1b[97m',
35
+ // Styles
36
+ BOLD: '\x1b[1m',
37
+ DIM: '\x1b[2m',
38
+ UNDERLINE: '\x1b[4m',
39
+ };
40
+ // Development logger class - completely eliminated in production
41
+ class DevelopmentLogger {
42
+ config;
43
+ constructor(config = {}) {
44
+ this.config = {
45
+ level: this.getLogLevelFromEnv(),
46
+ enabled: this.shouldEnableLogging(),
47
+ prefix: `${config.packageEmoji || '📦'} ${config.packageName || 'LionRapid'}`,
48
+ showLineNumbers: LIONRAPID_DEV && !IS_CI,
49
+ useColors: this.shouldUseColors(),
50
+ ...config,
51
+ };
52
+ }
53
+ configure(config) {
54
+ this.config = { ...this.config, ...config };
55
+ }
56
+ debug(message, data) {
57
+ if (!this.config.enabled || this.config.level > LogLevel.DEBUG)
58
+ return;
59
+ this.log(LogLevel.DEBUG, message, data);
60
+ }
61
+ info(message, data) {
62
+ if (this.config.level > LogLevel.INFO)
63
+ return;
64
+ this.log(LogLevel.INFO, message, data);
65
+ }
66
+ warn(message, data) {
67
+ this.log(LogLevel.WARN, message, data);
68
+ }
69
+ error(message, data) {
70
+ this.log(LogLevel.ERROR, message, data);
71
+ }
72
+ time(label) {
73
+ if (!PERFORMANCE_TRACKING || IS_PRODUCTION)
74
+ return () => { };
75
+ const start = IS_DEVELOPMENT ? performance.now() : 0;
76
+ return () => {
77
+ if (IS_DEVELOPMENT) {
78
+ const duration = performance.now() - start;
79
+ this.debug(`⏱️ ${label}: ${duration.toFixed(2)}ms`, { duration });
80
+ }
81
+ };
82
+ }
83
+ log(level, message, data) {
84
+ if (!this.config.enabled || level < this.config.level)
85
+ return;
86
+ const levelName = LogLevel[level];
87
+ const levelEmoji = this.getLevelEmoji(level);
88
+ const callSite = this.config.showLineNumbers ? this.getCallSite() : null;
89
+ const logMessage = this.buildColoredMessage(level, levelEmoji, levelName, message, callSite, data);
90
+ switch (level) {
91
+ case LogLevel.ERROR:
92
+ console.error(logMessage);
93
+ break;
94
+ case LogLevel.WARN:
95
+ console.warn(logMessage);
96
+ break;
97
+ case LogLevel.INFO:
98
+ console.info(logMessage);
99
+ break;
100
+ default:
101
+ console.log(logMessage);
102
+ }
103
+ }
104
+ buildColoredMessage(level, emoji, levelName, message, callSite, data) {
105
+ if (!this.config.useColors) {
106
+ const locationInfo = callSite
107
+ ? ` (${callSite.fileName}:${callSite.lineNumber})`
108
+ : '';
109
+ let logMessage = `${this.config.prefix} ${emoji} ${levelName} ${message}${locationInfo}`;
110
+ if (data !== undefined) {
111
+ logMessage += ` ${JSON.stringify(data)}`;
112
+ }
113
+ return logMessage;
114
+ }
115
+ const levelColor = this.getLevelColor(level);
116
+ const reset = Colors.RESET;
117
+ const coloredPrefix = `${Colors.BOLD}${Colors.ORANGE}${this.config.prefix}${reset}`;
118
+ const coloredEmoji = emoji;
119
+ const coloredLevel = `${levelColor}${Colors.BOLD}${levelName}${reset}`;
120
+ const coloredMessage = `${levelColor}${message}${reset}`;
121
+ const locationInfo = callSite
122
+ ? `${Colors.DIM}${Colors.BRIGHT_BLACK} (${callSite.fileName}:${callSite.lineNumber})${reset}`
123
+ : '';
124
+ const dataInfo = data !== undefined
125
+ ? `${Colors.DIM}${Colors.CYAN} ${JSON.stringify(data)}${reset}`
126
+ : '';
127
+ return `${coloredPrefix} ${coloredEmoji} ${coloredLevel} ${coloredMessage}${locationInfo}${dataInfo}`;
128
+ }
129
+ getLevelColor(level) {
130
+ switch (level) {
131
+ case LogLevel.DEBUG:
132
+ return Colors.BRIGHT_GREEN;
133
+ case LogLevel.INFO:
134
+ return Colors.BRIGHT_CYAN;
135
+ case LogLevel.WARN:
136
+ return Colors.BRIGHT_YELLOW;
137
+ case LogLevel.ERROR:
138
+ return Colors.BRIGHT_RED;
139
+ default:
140
+ return Colors.BRIGHT_BLACK;
141
+ }
142
+ }
143
+ getLevelEmoji(level) {
144
+ switch (level) {
145
+ case LogLevel.DEBUG:
146
+ return '🔍';
147
+ case LogLevel.INFO:
148
+ return 'ℹ️';
149
+ case LogLevel.WARN:
150
+ return '⚠️';
151
+ case LogLevel.ERROR:
152
+ return '❌';
153
+ default:
154
+ return '📝';
155
+ }
156
+ }
157
+ getCallSite() {
158
+ try {
159
+ const stack = new Error().stack;
160
+ if (!stack)
161
+ return null;
162
+ const lines = stack.split('\n');
163
+ for (let i = 3; i < lines.length; i++) {
164
+ const line = lines[i];
165
+ if (line && !line.includes('logger.ts') && !line.includes('Logger')) {
166
+ return this.parseStackLine(line);
167
+ }
168
+ }
169
+ }
170
+ catch {
171
+ // Ignore errors
172
+ }
173
+ return null;
174
+ }
175
+ parseStackLine(line) {
176
+ let match = line.match(/at\s+(.+?)\s+\((.+):(\d+):(\d+)\)/);
177
+ if (match) {
178
+ return {
179
+ functionName: match[1],
180
+ fileName: this.extractFileName(match[2]),
181
+ lineNumber: parseInt(match[3], 10),
182
+ };
183
+ }
184
+ match = line.match(/at\s+(.+):(\d+):(\d+)/);
185
+ if (match) {
186
+ return {
187
+ fileName: this.extractFileName(match[1]),
188
+ lineNumber: parseInt(match[2], 10),
189
+ };
190
+ }
191
+ return null;
192
+ }
193
+ extractFileName(filePath) {
194
+ const parts = filePath.split('/');
195
+ return parts[parts.length - 1] || filePath;
196
+ }
197
+ colorize(text, color) {
198
+ if (!this.config.useColors)
199
+ return text;
200
+ return `${Colors[color]}${text}${Colors.RESET}`;
201
+ }
202
+ getColors() {
203
+ return Colors;
204
+ }
205
+ createPackageLogger(packageName, packageEmoji) {
206
+ return new DevelopmentLogger({
207
+ ...this.config,
208
+ packageName,
209
+ packageEmoji: packageEmoji || '📦',
210
+ });
211
+ }
212
+ getLogLevelFromEnv() {
213
+ switch (LOG_LEVEL_ENV.toUpperCase()) {
214
+ case 'DEBUG':
215
+ return LogLevel.DEBUG;
216
+ case 'INFO':
217
+ return LogLevel.INFO;
218
+ case 'WARN':
219
+ return LogLevel.WARN;
220
+ case 'ERROR':
221
+ return LogLevel.ERROR;
222
+ case 'NONE':
223
+ return LogLevel.NONE;
224
+ default:
225
+ return LogLevel.DEBUG;
226
+ }
227
+ }
228
+ shouldEnableLogging() {
229
+ if (LOG_LEVEL_ENV === 'NONE')
230
+ return false;
231
+ return true;
232
+ }
233
+ shouldUseColors() {
234
+ if (IS_CI)
235
+ return false;
236
+ // Check if we're in a browser environment
237
+ if (typeof window !== 'undefined') {
238
+ return true; // Browsers support console colors
239
+ }
240
+ // Node.js environment
241
+ if (typeof process !== 'undefined' &&
242
+ process.stdout &&
243
+ !process.stdout.isTTY) {
244
+ return false;
245
+ }
246
+ return IS_DEVELOPMENT;
247
+ }
248
+ }
249
+ // Production no-op functions - these create completely eliminatable calls
250
+ const noop = () => { };
251
+ const noopWithReturn = () => () => { };
252
+ // Export logger with build-time method elimination
253
+ export const logger = IS_PRODUCTION
254
+ ? {
255
+ configure: noop,
256
+ debug: noop, // ← This eliminates the call completely
257
+ info: noop, // ← This eliminates the call completely
258
+ warn: (message, data) => {
259
+ console.warn(`🦁 LionRapid Core ⚠️ ${message}`, data || '');
260
+ },
261
+ error: (message, data) => {
262
+ console.error(`🦁 LionRapid Core ❌ ${message}`, data || '');
263
+ },
264
+ time: noopWithReturn,
265
+ colorize: (text) => text,
266
+ getColors: () => Colors,
267
+ createPackageLogger: (packageName, packageEmoji) => ({
268
+ configure: noop,
269
+ debug: noop, // ← Package logger debug also eliminated
270
+ info: noop, // ← Package logger info also eliminated
271
+ warn: (message, data) => {
272
+ const prefix = `${packageEmoji || '📦'} ${packageName}`;
273
+ console.warn(`${prefix} ⚠️ ${message}`, data || '');
274
+ },
275
+ error: (message, data) => {
276
+ const prefix = `${packageEmoji || '📦'} ${packageName}`;
277
+ console.error(`${prefix} ❌ ${message}`, data || '');
278
+ },
279
+ time: noopWithReturn,
280
+ colorize: (text) => text,
281
+ getColors: () => Colors,
282
+ createPackageLogger: noop,
283
+ }),
284
+ }
285
+ : new DevelopmentLogger({
286
+ packageName: 'LionRapid Core',
287
+ packageEmoji: '🦁',
288
+ });
289
+ // Export Logger class for type compatibility
290
+ export const Logger = IS_PRODUCTION
291
+ ? function Logger() {
292
+ return logger;
293
+ }
294
+ : DevelopmentLogger;
295
+ // Factory function with build-time elimination
296
+ export const createPackageLogger = (config) => {
297
+ if (IS_PRODUCTION) {
298
+ const prefix = `${config.packageEmoji || '📦'} ${config.packageName || 'LionRapid'}`;
299
+ return {
300
+ configure: noop,
301
+ debug: noop, // ← All debug calls eliminated
302
+ info: noop, // ← All info calls eliminated
303
+ warn: (message, data) => {
304
+ console.warn(`${prefix} ⚠️ ${message}`, data || '');
305
+ },
306
+ error: (message, data) => {
307
+ console.error(`${prefix} ❌ ${message}`, data || '');
308
+ },
309
+ time: noopWithReturn,
310
+ colorize: (text) => text,
311
+ getColors: () => Colors,
312
+ createPackageLogger: noop,
313
+ };
314
+ }
315
+ return new DevelopmentLogger(config);
316
+ };
317
+ // Performance measurement helper - eliminated in production
318
+ export const measure = (name) => {
319
+ if (IS_PRODUCTION) {
320
+ return {
321
+ start: noop,
322
+ end: noop,
323
+ elapsed: () => 0,
324
+ };
325
+ }
326
+ let startTime;
327
+ return {
328
+ start: () => {
329
+ if (IS_DEVELOPMENT) {
330
+ startTime = performance.now();
331
+ logger.debug(`⏱️ ${name} - started`);
332
+ }
333
+ },
334
+ end: () => {
335
+ if (IS_DEVELOPMENT) {
336
+ const duration = performance.now() - startTime;
337
+ logger.debug(`⏱️ ${name} - completed in ${duration.toFixed(2)}ms`);
338
+ return duration;
339
+ }
340
+ return 0;
341
+ },
342
+ elapsed: () => (IS_DEVELOPMENT ? performance.now() - startTime : 0),
343
+ };
344
+ };
345
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,iDAAiD;AACjD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;AACxC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAC3D,MAAM,oBAAoB,GACxB,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,MAAM,CAAC;AAExD,qCAAqC;AACrC,MAAM,aAAa,GACjB,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ;IACR,KAAK,EAAE,SAAS;IAChB,oBAAoB;IACpB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,gBAAgB;IACxB,2BAA2B;IAC3B,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,UAAU;IACtB,YAAY,EAAE,UAAU;IACxB,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,UAAU;IACvB,cAAc,EAAE,UAAU;IAC1B,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,SAAS;IACT,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,SAAS,EAAE,SAAS;CACZ,CAAC;AAaX,iEAAiE;AACjE,MAAM,iBAAiB;IACb,MAAM,CAAyB;IAEvC,YAAY,SAA8B,EAAE;QAC1C,IAAI,CAAC,MAAM,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE;YAChC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE;YACnC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,EAAE;YAC7E,eAAe,EAAE,aAAa,IAAI,CAAC,KAAK;YACxC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE;YACjC,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,MAA6B;QACrC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;YAAE,OAAO;QACvE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI;YAAE,OAAO;QAC9C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,oBAAoB,IAAI,aAAa;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,GAAG,EAAE;YACV,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAAc;QAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO;QAE9D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CACzC,KAAK,EACL,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,IAAI,CACL,CAAC;QAEF,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzB,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,mBAAmB,CACzB,KAAe,EACf,KAAa,EACb,SAAiB,EACjB,OAAe,EACf,QAAyB,EACzB,IAAc;QAEd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,QAAQ;gBAC3B,CAAC,CAAC,KAAK,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,GAAG;gBAClD,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,UAAU,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,IAAI,SAAS,IAAI,OAAO,GAAG,YAAY,EAAE,CAAC;YACzF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,UAAU,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE3B,MAAM,aAAa,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QACpF,MAAM,YAAY,GAAG,KAAK,CAAC;QAC3B,MAAM,YAAY,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;QACvE,MAAM,cAAc,GAAG,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC;QAEzD,MAAM,YAAY,GAAG,QAAQ;YAC3B,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,IAAI,KAAK,EAAE;YAC7F,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE;YAC/D,CAAC,CAAC,EAAE,CAAC;QAET,OAAO,GAAG,aAAa,IAAI,YAAY,IAAI,YAAY,IAAI,cAAc,GAAG,YAAY,GAAG,QAAQ,EAAE,CAAC;IACxG,CAAC;IAEO,aAAa,CAAC,KAAe;QACnC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,MAAM,CAAC,WAAW,CAAC;YAC5B,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,MAAM,CAAC,aAAa,CAAC;YAC9B,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B;gBACE,OAAO,MAAM,CAAC,YAAY,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAe;QACnC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,IAAI,CAAC;YACd,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,IAAI,CAAC;YACd,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,IAAI,CAAC;YACd,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,GAAG,CAAC;YACb;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAExB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;gBACtB,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACnC,CAAC;QACJ,CAAC;QAED,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACnC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,QAAgB;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAA0B;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mBAAmB,CACjB,WAAmB,EACnB,YAAqB;QAErB,OAAO,IAAI,iBAAiB,CAAC;YAC3B,GAAG,IAAI,CAAC,MAAM;YACd,WAAW;YACX,YAAY,EAAE,YAAY,IAAI,IAAI;SACnC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB;QACxB,QAAQ,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,KAAK,OAAO;gBACV,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,KAAK,OAAO;gBACV,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB;gBACE,OAAO,QAAQ,CAAC,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,aAAa,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe;QACrB,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,0CAA0C;QAC1C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,CAAC,kCAAkC;QACjD,CAAC;QACD,sBAAsB;QACtB,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,CAAC,MAAM;YACd,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EACrB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAED,0EAA0E;AAC1E,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AACtB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AAEtC,mDAAmD;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa;IACjC,CAAC,CAAC;QACE,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI,EAAE,wCAAwC;QACrD,IAAI,EAAE,IAAI,EAAE,wCAAwC;QACpD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAc,EAAE,EAAE;YACxC,OAAO,CAAC,IAAI,CAAC,wBAAwB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,EAAE,CAAC,OAAe,EAAE,IAAc,EAAE,EAAE;YACzC,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI;QAChC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;QACvB,mBAAmB,EAAE,CAAC,WAAmB,EAAE,YAAqB,EAAE,EAAE,CAAC,CAAC;YACpE,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,EAAE,yCAAyC;YACtD,IAAI,EAAE,IAAI,EAAE,wCAAwC;YACpD,IAAI,EAAE,CAAC,OAAe,EAAE,IAAc,EAAE,EAAE;gBACxC,MAAM,MAAM,GAAG,GAAG,YAAY,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,EAAE,CAAC,OAAe,EAAE,IAAc,EAAE,EAAE;gBACzC,MAAM,MAAM,GAAG,GAAG,YAAY,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;gBACxD,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI;YAChC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;YACvB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;KACH;IACH,CAAC,CAAC,IAAI,iBAAiB,CAAC;QACpB,WAAW,EAAE,gBAAgB;QAC7B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AAEP,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa;IACjC,CAAC,CAAC,SAAS,MAAM;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,CAAC,CAAC,iBAAiB,CAAC;AAEtB,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAE,EAAE;IACjE,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC;QACrF,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,EAAE,+BAA+B;YAC5C,IAAI,EAAE,IAAI,EAAE,8BAA8B;YAC1C,IAAI,EAAE,CAAC,OAAe,EAAE,IAAc,EAAE,EAAE;gBACxC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,EAAE,CAAC,OAAe,EAAE,IAAc,EAAE,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI;YAChC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;YACvB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;IACtC,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO;YACL,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,SAAiB,CAAC;IACtB,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,cAAc,EAAE,CAAC;gBACnB,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,GAAG,EAAE,GAAG,EAAE;YACR,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,mBAAmB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnE,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ParsedNamespaceKey } from '../types/translation.types.js';
2
+ /**
3
+ * Namespace parsing utilities for translation keys
4
+ * Supports patterns like: 'common:welcome', 'user.profile.name', 'errors:validation.required'
5
+ */
6
+ /**
7
+ * Parse namespace from translation key
8
+ * Supports: 'namespace:key' pattern
9
+ * Future: Could support other patterns like 'namespace.key' or 'namespace/key'
10
+ *
11
+ * @param key - Translation key (e.g., 'common:welcome' or 'welcome')
12
+ * @returns Parsed namespace information
13
+ */
14
+ export declare function parseNamespaceKey(key: string): ParsedNamespaceKey;
15
+ /**
16
+ * Create a full namespaced key
17
+ *
18
+ * @param key - Clean translation key
19
+ * @param namespace - Namespace to prepend
20
+ * @returns Namespaced key (e.g., 'common:welcome')
21
+ */
22
+ export declare function createNamespacedKey(key: string, namespace?: string): string;
23
+ /**
24
+ * Validate namespace format
25
+ *
26
+ * @param namespace - Namespace to validate
27
+ * @returns Whether namespace is valid
28
+ */
29
+ export declare function isValidNamespace(namespace: string): boolean;
30
+ //# sourceMappingURL=namespace-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace-utils.d.ts","sourceRoot":"","sources":["../../src/utils/namespace-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE;;;GAGG;AAGH;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAuBjE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAG3D"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Namespace parsing utilities for translation keys
3
+ * Supports patterns like: 'common:welcome', 'user.profile.name', 'errors:validation.required'
4
+ */
5
+ /**
6
+ * Parse namespace from translation key
7
+ * Supports: 'namespace:key' pattern
8
+ * Future: Could support other patterns like 'namespace.key' or 'namespace/key'
9
+ *
10
+ * @param key - Translation key (e.g., 'common:welcome' or 'welcome')
11
+ * @returns Parsed namespace information
12
+ */
13
+ export function parseNamespaceKey(key) {
14
+ // Simple namespace pattern: 'namespace:key'
15
+ const colonIndex = key.indexOf(':');
16
+ if (colonIndex > 0 && colonIndex < key.length - 1) {
17
+ // Has explicit namespace
18
+ const namespace = key.substring(0, colonIndex);
19
+ const cleanKey = key.substring(colonIndex + 1);
20
+ return {
21
+ originalKey: key,
22
+ namespace,
23
+ cleanKey,
24
+ hasExplicitNamespace: true
25
+ };
26
+ }
27
+ // No namespace found
28
+ return {
29
+ originalKey: key,
30
+ cleanKey: key,
31
+ hasExplicitNamespace: false
32
+ };
33
+ }
34
+ /**
35
+ * Create a full namespaced key
36
+ *
37
+ * @param key - Clean translation key
38
+ * @param namespace - Namespace to prepend
39
+ * @returns Namespaced key (e.g., 'common:welcome')
40
+ */
41
+ export function createNamespacedKey(key, namespace) {
42
+ if (!namespace)
43
+ return key;
44
+ return `${namespace}:${key}`;
45
+ }
46
+ /**
47
+ * Validate namespace format
48
+ *
49
+ * @param namespace - Namespace to validate
50
+ * @returns Whether namespace is valid
51
+ */
52
+ export function isValidNamespace(namespace) {
53
+ // Simple validation: alphanumeric, underscore, hyphen
54
+ return /^[a-zA-Z0-9_-]+$/.test(namespace);
55
+ }
56
+ //# sourceMappingURL=namespace-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace-utils.js","sourceRoot":"","sources":["../../src/utils/namespace-utils.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,4CAA4C;IAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,yBAAyB;QACzB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAE/C,OAAO;YACL,WAAW,EAAE,GAAG;YAChB,SAAS;YACT,QAAQ;YACR,oBAAoB,EAAE,IAAI;SAC3B,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,OAAO;QACL,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE,GAAG;QACb,oBAAoB,EAAE,KAAK;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,SAAkB;IACjE,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC;IAC3B,OAAO,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,sDAAsD;IACtD,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Enhanced translation process flow utilities
3
+ * Organizes the step-by-step translation resolution process with i18n features
4
+ */
5
+ import type { TranslationRequest } from '../types/translation.types.js';
6
+ /**
7
+ * ✅ Enhanced: Parse and prepare translation request with cache keys
8
+ * This is the entry point that organizes all the parsing logic
9
+ */
10
+ export declare function prepareTranslationRequest(key: string, currentLocale: string, defaultValueOrParams?: string | Record<string, unknown>, paramsOrDefaultValue?: Record<string, unknown> | string, defaultNamespace?: string, fallbackLocale?: string): TranslationRequest;
11
+ /**
12
+ * Parse flexible translation parameters
13
+ */
14
+ export declare function parseTranslationParams(secondParam?: string | Record<string, unknown>, thirdParam?: Record<string, unknown> | string): {
15
+ defaultValue?: string;
16
+ params?: Record<string, unknown>;
17
+ };
18
+ //# sourceMappingURL=translation-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation-flow.d.ts","sourceRoot":"","sources":["../../src/utils/translation-flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQxE;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EACvD,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,MAAM,GACtB,kBAAkB,CAkDpB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAC5C;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAgC7D"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Enhanced translation process flow utilities
3
+ * Organizes the step-by-step translation resolution process with i18n features
4
+ */
5
+ import { createTranslationContext } from './context-utils.js';
6
+ import { parseNamespaceKey } from './namespace-utils.js';
7
+ import { createIndividualCacheKey, createNamespaceCacheKey, } from './translation-value-utils.js';
8
+ /**
9
+ * ✅ Enhanced: Parse and prepare translation request with cache keys
10
+ * This is the entry point that organizes all the parsing logic
11
+ */
12
+ export function prepareTranslationRequest(key, currentLocale, defaultValueOrParams, paramsOrDefaultValue, defaultNamespace, fallbackLocale) {
13
+ const startTime = performance.now();
14
+ // Parse flexible parameters
15
+ const { defaultValue, params } = parseTranslationParams(defaultValueOrParams, paramsOrDefaultValue);
16
+ // Parse namespace from key
17
+ const parsedKey = parseNamespaceKey(key);
18
+ // Create translation context
19
+ const context = createTranslationContext(parsedKey, currentLocale, defaultNamespace, fallbackLocale);
20
+ // ✅ Generate cache keys using unified pattern
21
+ const individualCacheKey = createIndividualCacheKey(context.locale, context.namespace, parsedKey.cleanKey);
22
+ const namespaceCacheKey = context.namespace
23
+ ? createNamespaceCacheKey(context.locale, context.namespace)
24
+ : undefined;
25
+ // Generate unique ID for the request (could be a hash or UUID)
26
+ const id = `${individualCacheKey}-${startTime}`;
27
+ return {
28
+ id, // Unique request ID
29
+ originalKey: key,
30
+ originalParams: defaultValueOrParams,
31
+ originalDefaultValue: paramsOrDefaultValue,
32
+ cleanKey: parsedKey.cleanKey,
33
+ hasExplicitNamespace: parsedKey.hasExplicitNamespace,
34
+ parsedParams: params,
35
+ parsedDefaultValue: defaultValue,
36
+ locale: currentLocale,
37
+ namespace: context.namespace, // ✅ Use effective namespace (explicit or default)
38
+ fallbackLocale,
39
+ individualCacheKey, // ✅ Ready-to-use cache key
40
+ namespaceCacheKey, // ✅ Ready-to-use namespace key
41
+ startTime,
42
+ };
43
+ }
44
+ /**
45
+ * Parse flexible translation parameters
46
+ */
47
+ export function parseTranslationParams(secondParam, thirdParam) {
48
+ let defaultValue;
49
+ let params;
50
+ // Runtime validation: Warn if both params are objects (likely misuse)
51
+ if (typeof secondParam === 'object' &&
52
+ typeof thirdParam === 'object' &&
53
+ process.env.NODE_ENV !== 'production') {
54
+ console.warn('[LionRapid] Warning: Both secondParam and thirdParam are objects. ' +
55
+ 'Expected pattern: t(key, params, defaultValue) or t(key, defaultValue, params). ' +
56
+ 'Second object will be ignored as it cannot be a defaultValue.');
57
+ }
58
+ if (typeof secondParam === 'string') {
59
+ // t(key, defaultValue) or t(key, defaultValue, params)
60
+ defaultValue = secondParam;
61
+ if (typeof thirdParam === 'object') {
62
+ params = thirdParam;
63
+ }
64
+ }
65
+ else if (typeof secondParam === 'object') {
66
+ // t(key, params) or t(key, params, defaultValue)
67
+ params = secondParam;
68
+ if (typeof thirdParam === 'string') {
69
+ defaultValue = thirdParam;
70
+ }
71
+ }
72
+ return { defaultValue, params };
73
+ }
74
+ //# sourceMappingURL=translation-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation-flow.js","sourceRoot":"","sources":["../../src/utils/translation-flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,aAAqB,EACrB,oBAAuD,EACvD,oBAAuD,EACvD,gBAAyB,EACzB,cAAuB;IAEvB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEpC,4BAA4B;IAC5B,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,sBAAsB,CACrD,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;IAEF,2BAA2B;IAC3B,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAEzC,6BAA6B;IAC7B,MAAM,OAAO,GAAG,wBAAwB,CACtC,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,cAAc,CACf,CAAC;IAEF,8CAA8C;IAC9C,MAAM,kBAAkB,GAAG,wBAAwB,CACjD,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,SAAS,EACjB,SAAS,CAAC,QAAQ,CACnB,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS;QACzC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC;IAEd,+DAA+D;IAC/D,MAAM,EAAE,GAAG,GAAG,kBAAkB,IAAI,SAAS,EAAE,CAAC;IAEhD,OAAO;QACL,EAAE,EAAE,oBAAoB;QACxB,WAAW,EAAE,GAAG;QAChB,cAAc,EAAE,oBAAoB;QACpC,oBAAoB,EAAE,oBAAoB;QAC1C,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,oBAAoB,EAAE,SAAS,CAAC,oBAAoB;QACpD,YAAY,EAAE,MAAM;QACpB,kBAAkB,EAAE,YAAY;QAChC,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,kDAAkD;QAChF,cAAc;QACd,kBAAkB,EAAE,2BAA2B;QAC/C,iBAAiB,EAAE,+BAA+B;QAClD,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAA8C,EAC9C,UAA6C;IAE7C,IAAI,YAAgC,CAAC;IACrC,IAAI,MAA2C,CAAC;IAEhD,sEAAsE;IACtE,IACE,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,UAAU,KAAK,QAAQ;QAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EACrC,CAAC;QACD,OAAO,CAAC,IAAI,CACV,oEAAoE;YAClE,kFAAkF;YAClF,+DAA+D,CAClE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,uDAAuD;QACvD,YAAY,GAAG,WAAW,CAAC;QAC3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC3C,iDAAiD;QACjD,MAAM,GAAG,WAAW,CAAC;QACrB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,YAAY,GAAG,UAAU,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Translation value processing utilities
3
+ * Handles simple strings, nested objects, pluralization, and context
4
+ */
5
+ /**
6
+ * ✅ Resolve nested key path in translation object
7
+ */
8
+ /**
9
+ * ✅ Resolve nested key from namespace object
10
+ * Examples:
11
+ * - resolveNestedKey({user: {profile: {name: "John"}}}, "user.profile.name") → "John"
12
+ * - resolveNestedKey({items: [{name: "Apple"}]}, "items[0].name") → "Apple"
13
+ * - resolveNestedKey({welcome: "Hello"}, "welcome") → "Hello"
14
+ */
15
+ export declare function resolveNestedKey(namespace: Record<string, unknown>, keyPath: string): unknown;
16
+ /**
17
+ * ✅ Parse key path into array of keys/indices
18
+ * Examples:
19
+ * - "user.profile.name" → ["user", "profile", "name"]
20
+ * - "items[0].name" → ["items", 0, "name"]
21
+ * - "settings.ui.theme" → ["settings", "ui", "theme"]
22
+ */
23
+ export declare function parseKeyPath(keyPath: string): (string | number)[];
24
+ /**
25
+ * ✅ Create individual cache key: locale:namespace:key
26
+ */
27
+ export declare function createIndividualCacheKey(locale: string, namespace: string | undefined, key: string): string;
28
+ /**
29
+ * ✅ Create namespace cache key: @locale:namespace
30
+ */
31
+ export declare function createNamespaceCacheKey(locale: string, namespace: string): string;
32
+ /**
33
+ * ✅ Check if key is namespace cache entry
34
+ */
35
+ export declare function isNamespaceCacheKey(key: string): boolean;
36
+ /**
37
+ * ✅ Parse namespace cache key
38
+ */
39
+ export declare function parseNamespaceCacheKey(key: string): {
40
+ locale: string;
41
+ namespace: string;
42
+ } | null;
43
+ /**
44
+ * ✅ Parse individual cache key
45
+ */
46
+ export declare function parseIndividualCacheKey(key: string): {
47
+ locale: string;
48
+ namespace?: string;
49
+ translationKey: string;
50
+ } | null;
51
+ /**
52
+ * ✅ Flatten nested translations for caching individual keys
53
+ * Handles both ICU MessageFormat strings and structured objects
54
+ * Stores full ContentUnit as JSON - includes both text and styles
55
+ */
56
+ export declare function flattenTranslations(translations: Record<string, unknown>, prefix: string | undefined, locale: string, namespace: string): Record<string, string>;
57
+ //# sourceMappingURL=translation-value-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation-value-utils.d.ts","sourceRoot":"","sources":["../../src/utils/translation-value-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;GAEG;AACH;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAoDT;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CA8CjE;AAGD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,EAAE,MAAM,GACV,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,GACV;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQ9C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GACV;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiBvE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,oBAAK,EACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBxB"}