@intlayer/chokidar 6.0.2 → 6.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 (292) hide show
  1. package/README.md +249 -66
  2. package/dist/cjs/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/buildIntlayerDictionary.cjs +18 -2
  3. package/dist/cjs/buildIntlayerDictionary/buildIntlayerDictionary.cjs.map +1 -0
  4. package/dist/cjs/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/index.cjs +4 -4
  5. package/dist/cjs/buildIntlayerDictionary/index.cjs.map +1 -0
  6. package/dist/cjs/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/processContentDeclaration.cjs +1 -1
  7. package/dist/cjs/buildIntlayerDictionary/processContentDeclaration.cjs.map +1 -0
  8. package/dist/cjs/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeDynamicDictionary.cjs +3 -3
  9. package/dist/cjs/buildIntlayerDictionary/writeDynamicDictionary.cjs.map +1 -0
  10. package/dist/cjs/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeFetchDictionary.cjs +2 -2
  11. package/dist/cjs/buildIntlayerDictionary/writeFetchDictionary.cjs.map +1 -0
  12. package/dist/cjs/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeMergedDictionary.cjs +4 -4
  13. package/dist/cjs/buildIntlayerDictionary/writeMergedDictionary.cjs.map +1 -0
  14. package/dist/cjs/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeRemoteDictionary.cjs +4 -4
  15. package/dist/cjs/buildIntlayerDictionary/writeRemoteDictionary.cjs.map +1 -0
  16. package/dist/cjs/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeUnmergedDictionary.cjs +4 -4
  17. package/dist/cjs/buildIntlayerDictionary/writeUnmergedDictionary.cjs.map +1 -0
  18. package/dist/cjs/{transpiler/dictionary_to_main → createDictionaryEntryPoint}/createDictionaryEntryPoint.cjs +7 -7
  19. package/dist/cjs/createDictionaryEntryPoint/createDictionaryEntryPoint.cjs.map +1 -0
  20. package/dist/cjs/{transpiler/dictionary_to_main → createDictionaryEntryPoint}/generateDictionaryListContent.cjs +1 -1
  21. package/dist/cjs/createDictionaryEntryPoint/generateDictionaryListContent.cjs.map +1 -0
  22. package/dist/cjs/createDictionaryEntryPoint/getBuiltDictionariesPath.cjs.map +1 -0
  23. package/dist/cjs/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.cjs.map +1 -0
  24. package/dist/cjs/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.cjs.map +1 -0
  25. package/dist/cjs/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.cjs.map +1 -0
  26. package/dist/cjs/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.cjs.map +1 -0
  27. package/dist/cjs/createDictionaryEntryPoint/index.cjs +35 -0
  28. package/dist/cjs/createDictionaryEntryPoint/index.cjs.map +1 -0
  29. package/dist/cjs/{transpiler/dictionary_to_type → createType}/createModuleAugmentation.cjs +3 -3
  30. package/dist/cjs/createType/createModuleAugmentation.cjs.map +1 -0
  31. package/dist/cjs/{transpiler/dictionary_to_type → createType}/createType.cjs +1 -1
  32. package/dist/cjs/createType/createType.cjs.map +1 -0
  33. package/dist/cjs/{transpiler/dictionary_to_type → createType}/index.cjs +4 -4
  34. package/dist/cjs/createType/index.cjs.map +1 -0
  35. package/dist/cjs/filterInvalidDictionaries.cjs +32 -40
  36. package/dist/cjs/filterInvalidDictionaries.cjs.map +1 -1
  37. package/dist/cjs/handleAdditionalContentDeclarationFile.cjs +54 -0
  38. package/dist/cjs/handleAdditionalContentDeclarationFile.cjs.map +1 -0
  39. package/dist/cjs/handleContentDeclarationFileChange.cjs +59 -0
  40. package/dist/cjs/handleContentDeclarationFileChange.cjs.map +1 -0
  41. package/dist/cjs/handleUnlikedContentDeclarationFile.cjs +57 -0
  42. package/dist/cjs/handleUnlikedContentDeclarationFile.cjs.map +1 -0
  43. package/dist/cjs/index.cjs +35 -12
  44. package/dist/cjs/index.cjs.map +1 -1
  45. package/dist/cjs/listDictionariesPath.cjs.map +1 -1
  46. package/dist/cjs/loadDictionaries/loadContentDeclaration.cjs +6 -3
  47. package/dist/cjs/loadDictionaries/loadContentDeclaration.cjs.map +1 -1
  48. package/dist/cjs/loadDictionaries/loadLocalDictionaries.cjs +8 -4
  49. package/dist/cjs/loadDictionaries/loadLocalDictionaries.cjs.map +1 -1
  50. package/dist/cjs/prepareIntlayer.cjs +10 -8
  51. package/dist/cjs/prepareIntlayer.cjs.map +1 -1
  52. package/dist/cjs/reduceDictionaryContent/reduceDictionaryContent.cjs +2 -2
  53. package/dist/cjs/reduceDictionaryContent/reduceDictionaryContent.cjs.map +1 -1
  54. package/dist/cjs/utils/extractErrorMessage.cjs +22 -10
  55. package/dist/cjs/utils/extractErrorMessage.cjs.map +1 -1
  56. package/dist/cjs/utils/parallelize.cjs +139 -12
  57. package/dist/cjs/utils/parallelize.cjs.map +1 -1
  58. package/dist/cjs/utils/runParallel.cjs +77 -0
  59. package/dist/cjs/utils/runParallel.cjs.map +1 -0
  60. package/dist/cjs/watcher.cjs +89 -0
  61. package/dist/cjs/watcher.cjs.map +1 -0
  62. package/dist/cjs/writeContentDeclaration/transformJSFile.cjs +770 -0
  63. package/dist/cjs/writeContentDeclaration/transformJSFile.cjs.map +1 -0
  64. package/dist/cjs/writeContentDeclaration/writeContentDeclaration.cjs +46 -55
  65. package/dist/cjs/writeContentDeclaration/writeContentDeclaration.cjs.map +1 -1
  66. package/dist/cjs/writeContentDeclaration/writeJSFile.cjs +12 -288
  67. package/dist/cjs/writeContentDeclaration/writeJSFile.cjs.map +1 -1
  68. package/dist/esm/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/buildIntlayerDictionary.mjs +18 -2
  69. package/dist/esm/buildIntlayerDictionary/buildIntlayerDictionary.mjs.map +1 -0
  70. package/dist/esm/buildIntlayerDictionary/index.mjs.map +1 -0
  71. package/dist/esm/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/processContentDeclaration.mjs +1 -1
  72. package/dist/esm/buildIntlayerDictionary/processContentDeclaration.mjs.map +1 -0
  73. package/dist/esm/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeDynamicDictionary.mjs +3 -3
  74. package/dist/esm/buildIntlayerDictionary/writeDynamicDictionary.mjs.map +1 -0
  75. package/dist/esm/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeFetchDictionary.mjs +2 -2
  76. package/dist/esm/buildIntlayerDictionary/writeFetchDictionary.mjs.map +1 -0
  77. package/dist/esm/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeMergedDictionary.mjs +4 -4
  78. package/dist/esm/buildIntlayerDictionary/writeMergedDictionary.mjs.map +1 -0
  79. package/dist/esm/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeRemoteDictionary.mjs +4 -4
  80. package/dist/esm/buildIntlayerDictionary/writeRemoteDictionary.mjs.map +1 -0
  81. package/dist/esm/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeUnmergedDictionary.mjs +4 -4
  82. package/dist/esm/buildIntlayerDictionary/writeUnmergedDictionary.mjs.map +1 -0
  83. package/dist/esm/{transpiler/dictionary_to_main → createDictionaryEntryPoint}/createDictionaryEntryPoint.mjs +7 -7
  84. package/dist/esm/createDictionaryEntryPoint/createDictionaryEntryPoint.mjs.map +1 -0
  85. package/dist/esm/{transpiler/dictionary_to_main → createDictionaryEntryPoint}/generateDictionaryListContent.mjs +1 -1
  86. package/dist/esm/createDictionaryEntryPoint/generateDictionaryListContent.mjs.map +1 -0
  87. package/dist/esm/createDictionaryEntryPoint/getBuiltDictionariesPath.mjs.map +1 -0
  88. package/dist/esm/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.mjs.map +1 -0
  89. package/dist/esm/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.mjs.map +1 -0
  90. package/dist/esm/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.mjs.map +1 -0
  91. package/dist/esm/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.mjs.map +1 -0
  92. package/dist/esm/createDictionaryEntryPoint/index.mjs +8 -0
  93. package/dist/esm/createDictionaryEntryPoint/index.mjs.map +1 -0
  94. package/dist/esm/{transpiler/dictionary_to_type → createType}/createModuleAugmentation.mjs +3 -3
  95. package/dist/esm/createType/createModuleAugmentation.mjs.map +1 -0
  96. package/dist/esm/{transpiler/dictionary_to_type → createType}/createType.mjs +1 -1
  97. package/dist/esm/createType/createType.mjs.map +1 -0
  98. package/dist/esm/createType/index.mjs.map +1 -0
  99. package/dist/esm/filterInvalidDictionaries.mjs +29 -28
  100. package/dist/esm/filterInvalidDictionaries.mjs.map +1 -1
  101. package/dist/esm/handleAdditionalContentDeclarationFile.mjs +30 -0
  102. package/dist/esm/handleAdditionalContentDeclarationFile.mjs.map +1 -0
  103. package/dist/esm/handleContentDeclarationFileChange.mjs +35 -0
  104. package/dist/esm/handleContentDeclarationFileChange.mjs.map +1 -0
  105. package/dist/esm/handleUnlikedContentDeclarationFile.mjs +33 -0
  106. package/dist/esm/handleUnlikedContentDeclarationFile.mjs.map +1 -0
  107. package/dist/esm/index.mjs +29 -14
  108. package/dist/esm/index.mjs.map +1 -1
  109. package/dist/esm/listDictionariesPath.mjs.map +1 -1
  110. package/dist/esm/loadDictionaries/loadContentDeclaration.mjs +10 -4
  111. package/dist/esm/loadDictionaries/loadContentDeclaration.mjs.map +1 -1
  112. package/dist/esm/loadDictionaries/loadLocalDictionaries.mjs +12 -5
  113. package/dist/esm/loadDictionaries/loadLocalDictionaries.mjs.map +1 -1
  114. package/dist/esm/prepareIntlayer.mjs +8 -9
  115. package/dist/esm/prepareIntlayer.mjs.map +1 -1
  116. package/dist/esm/reduceDictionaryContent/reduceDictionaryContent.mjs +2 -2
  117. package/dist/esm/reduceDictionaryContent/reduceDictionaryContent.mjs.map +1 -1
  118. package/dist/esm/utils/extractErrorMessage.mjs +22 -10
  119. package/dist/esm/utils/extractErrorMessage.mjs.map +1 -1
  120. package/dist/esm/utils/parallelize.mjs +137 -1
  121. package/dist/esm/utils/parallelize.mjs.map +1 -1
  122. package/dist/esm/utils/runParallel.mjs +43 -0
  123. package/dist/esm/utils/runParallel.mjs.map +1 -0
  124. package/dist/esm/watcher.mjs +67 -0
  125. package/dist/esm/watcher.mjs.map +1 -0
  126. package/dist/esm/writeContentDeclaration/transformJSFile.mjs +751 -0
  127. package/dist/esm/writeContentDeclaration/transformJSFile.mjs.map +1 -0
  128. package/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs +47 -56
  129. package/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs.map +1 -1
  130. package/dist/esm/writeContentDeclaration/writeJSFile.mjs +15 -279
  131. package/dist/esm/writeContentDeclaration/writeJSFile.mjs.map +1 -1
  132. package/dist/types/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/buildIntlayerDictionary.d.ts +1 -1
  133. package/dist/types/buildIntlayerDictionary/buildIntlayerDictionary.d.ts.map +1 -0
  134. package/dist/types/buildIntlayerDictionary/index.d.ts.map +1 -0
  135. package/dist/types/buildIntlayerDictionary/processContentDeclaration.d.ts.map +1 -0
  136. package/dist/types/buildIntlayerDictionary/writeDynamicDictionary.d.ts.map +1 -0
  137. package/dist/types/buildIntlayerDictionary/writeFetchDictionary.d.ts.map +1 -0
  138. package/dist/types/buildIntlayerDictionary/writeMergedDictionary.d.ts.map +1 -0
  139. package/dist/types/buildIntlayerDictionary/writeRemoteDictionary.d.ts.map +1 -0
  140. package/dist/types/buildIntlayerDictionary/writeUnmergedDictionary.d.ts.map +1 -0
  141. package/dist/types/createDictionaryEntryPoint/createDictionaryEntryPoint.d.ts.map +1 -0
  142. package/dist/types/createDictionaryEntryPoint/generateDictionaryListContent.d.ts.map +1 -0
  143. package/dist/types/createDictionaryEntryPoint/getBuiltDictionariesPath.d.ts.map +1 -0
  144. package/dist/types/createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.d.ts.map +1 -0
  145. package/dist/types/createDictionaryEntryPoint/getBuiltFetchDictionariesPath.d.ts.map +1 -0
  146. package/dist/types/createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.d.ts.map +1 -0
  147. package/dist/types/createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.d.ts.map +1 -0
  148. package/dist/types/createDictionaryEntryPoint/index.d.ts +8 -0
  149. package/dist/types/createDictionaryEntryPoint/index.d.ts.map +1 -0
  150. package/dist/types/createType/createModuleAugmentation.d.ts.map +1 -0
  151. package/dist/types/createType/createType.d.ts.map +1 -0
  152. package/dist/types/createType/index.d.ts.map +1 -0
  153. package/dist/types/filterInvalidDictionaries.d.ts +3 -1
  154. package/dist/types/filterInvalidDictionaries.d.ts.map +1 -1
  155. package/dist/types/handleAdditionalContentDeclarationFile.d.ts +3 -0
  156. package/dist/types/handleAdditionalContentDeclarationFile.d.ts.map +1 -0
  157. package/dist/types/handleContentDeclarationFileChange.d.ts +3 -0
  158. package/dist/types/handleContentDeclarationFileChange.d.ts.map +1 -0
  159. package/dist/types/handleUnlikedContentDeclarationFile.d.ts +3 -0
  160. package/dist/types/handleUnlikedContentDeclarationFile.d.ts.map +1 -0
  161. package/dist/types/index.d.ts +12 -7
  162. package/dist/types/index.d.ts.map +1 -1
  163. package/dist/types/listDictionariesPath.d.ts +5 -0
  164. package/dist/types/listDictionariesPath.d.ts.map +1 -1
  165. package/dist/types/loadDictionaries/loadContentDeclaration.d.ts +1 -1
  166. package/dist/types/loadDictionaries/loadContentDeclaration.d.ts.map +1 -1
  167. package/dist/types/loadDictionaries/loadLocalDictionaries.d.ts +2 -1
  168. package/dist/types/loadDictionaries/loadLocalDictionaries.d.ts.map +1 -1
  169. package/dist/types/prepareIntlayer.d.ts +1 -1
  170. package/dist/types/prepareIntlayer.d.ts.map +1 -1
  171. package/dist/types/reduceDictionaryContent/reduceDictionaryContent.d.ts +1 -1
  172. package/dist/types/reduceDictionaryContent/reduceDictionaryContent.d.ts.map +1 -1
  173. package/dist/types/utils/extractErrorMessage.d.ts.map +1 -1
  174. package/dist/types/utils/parallelize.d.ts +12 -0
  175. package/dist/types/utils/parallelize.d.ts.map +1 -1
  176. package/dist/types/utils/runParallel.d.ts +11 -0
  177. package/dist/types/utils/runParallel.d.ts.map +1 -0
  178. package/dist/types/watcher.d.ts +12 -0
  179. package/dist/types/watcher.d.ts.map +1 -0
  180. package/dist/types/writeContentDeclaration/transformJSFile.d.ts +9 -0
  181. package/dist/types/writeContentDeclaration/transformJSFile.d.ts.map +1 -0
  182. package/dist/types/writeContentDeclaration/writeContentDeclaration.d.ts.map +1 -1
  183. package/dist/types/writeContentDeclaration/writeJSFile.d.ts +3 -2
  184. package/dist/types/writeContentDeclaration/writeJSFile.d.ts.map +1 -1
  185. package/package.json +22 -27
  186. package/dist/cjs/chokidar/index.cjs +0 -23
  187. package/dist/cjs/chokidar/index.cjs.map +0 -1
  188. package/dist/cjs/chokidar/watcher.cjs +0 -157
  189. package/dist/cjs/chokidar/watcher.cjs.map +0 -1
  190. package/dist/cjs/getBuiltDictionariesPath.cjs.map +0 -1
  191. package/dist/cjs/getBuiltDynamicDictionariesPath.cjs.map +0 -1
  192. package/dist/cjs/getBuiltFetchDictionariesPath.cjs.map +0 -1
  193. package/dist/cjs/getBuiltRemoteDictionariesPath.cjs.map +0 -1
  194. package/dist/cjs/getBuiltUnmergedDictionariesPath.cjs.map +0 -1
  195. package/dist/cjs/reduceDictionaryContent/buildMask.cjs +0 -49
  196. package/dist/cjs/reduceDictionaryContent/buildMask.cjs.map +0 -1
  197. package/dist/cjs/transpiler/dictionary_to_main/createDictionaryEntryPoint.cjs.map +0 -1
  198. package/dist/cjs/transpiler/dictionary_to_main/generateDictionaryListContent.cjs.map +0 -1
  199. package/dist/cjs/transpiler/dictionary_to_main/index.cjs +0 -25
  200. package/dist/cjs/transpiler/dictionary_to_main/index.cjs.map +0 -1
  201. package/dist/cjs/transpiler/dictionary_to_type/createModuleAugmentation.cjs.map +0 -1
  202. package/dist/cjs/transpiler/dictionary_to_type/createType.cjs.map +0 -1
  203. package/dist/cjs/transpiler/dictionary_to_type/index.cjs.map +0 -1
  204. package/dist/cjs/transpiler/intlayer_dictionary/buildIntlayerDictionary.cjs.map +0 -1
  205. package/dist/cjs/transpiler/intlayer_dictionary/index.cjs.map +0 -1
  206. package/dist/cjs/transpiler/intlayer_dictionary/processContentDeclaration.cjs.map +0 -1
  207. package/dist/cjs/transpiler/intlayer_dictionary/writeDynamicDictionary.cjs.map +0 -1
  208. package/dist/cjs/transpiler/intlayer_dictionary/writeFetchDictionary.cjs.map +0 -1
  209. package/dist/cjs/transpiler/intlayer_dictionary/writeMergedDictionary.cjs.map +0 -1
  210. package/dist/cjs/transpiler/intlayer_dictionary/writeRemoteDictionary.cjs.map +0 -1
  211. package/dist/cjs/transpiler/intlayer_dictionary/writeUnmergedDictionary.cjs.map +0 -1
  212. package/dist/esm/chokidar/index.mjs +0 -2
  213. package/dist/esm/chokidar/index.mjs.map +0 -1
  214. package/dist/esm/chokidar/watcher.mjs +0 -135
  215. package/dist/esm/chokidar/watcher.mjs.map +0 -1
  216. package/dist/esm/getBuiltDictionariesPath.mjs.map +0 -1
  217. package/dist/esm/getBuiltDynamicDictionariesPath.mjs.map +0 -1
  218. package/dist/esm/getBuiltFetchDictionariesPath.mjs.map +0 -1
  219. package/dist/esm/getBuiltRemoteDictionariesPath.mjs.map +0 -1
  220. package/dist/esm/getBuiltUnmergedDictionariesPath.mjs.map +0 -1
  221. package/dist/esm/reduceDictionaryContent/buildMask.mjs +0 -24
  222. package/dist/esm/reduceDictionaryContent/buildMask.mjs.map +0 -1
  223. package/dist/esm/transpiler/dictionary_to_main/createDictionaryEntryPoint.mjs.map +0 -1
  224. package/dist/esm/transpiler/dictionary_to_main/generateDictionaryListContent.mjs.map +0 -1
  225. package/dist/esm/transpiler/dictionary_to_main/index.mjs +0 -3
  226. package/dist/esm/transpiler/dictionary_to_main/index.mjs.map +0 -1
  227. package/dist/esm/transpiler/dictionary_to_type/createModuleAugmentation.mjs.map +0 -1
  228. package/dist/esm/transpiler/dictionary_to_type/createType.mjs.map +0 -1
  229. package/dist/esm/transpiler/dictionary_to_type/index.mjs.map +0 -1
  230. package/dist/esm/transpiler/intlayer_dictionary/buildIntlayerDictionary.mjs.map +0 -1
  231. package/dist/esm/transpiler/intlayer_dictionary/index.mjs.map +0 -1
  232. package/dist/esm/transpiler/intlayer_dictionary/processContentDeclaration.mjs.map +0 -1
  233. package/dist/esm/transpiler/intlayer_dictionary/writeDynamicDictionary.mjs.map +0 -1
  234. package/dist/esm/transpiler/intlayer_dictionary/writeFetchDictionary.mjs.map +0 -1
  235. package/dist/esm/transpiler/intlayer_dictionary/writeMergedDictionary.mjs.map +0 -1
  236. package/dist/esm/transpiler/intlayer_dictionary/writeRemoteDictionary.mjs.map +0 -1
  237. package/dist/esm/transpiler/intlayer_dictionary/writeUnmergedDictionary.mjs.map +0 -1
  238. package/dist/types/chokidar/index.d.ts +0 -2
  239. package/dist/types/chokidar/index.d.ts.map +0 -1
  240. package/dist/types/chokidar/watcher.d.ts +0 -14
  241. package/dist/types/chokidar/watcher.d.ts.map +0 -1
  242. package/dist/types/getBuiltDictionariesPath.d.ts.map +0 -1
  243. package/dist/types/getBuiltDynamicDictionariesPath.d.ts.map +0 -1
  244. package/dist/types/getBuiltFetchDictionariesPath.d.ts.map +0 -1
  245. package/dist/types/getBuiltRemoteDictionariesPath.d.ts.map +0 -1
  246. package/dist/types/getBuiltUnmergedDictionariesPath.d.ts.map +0 -1
  247. package/dist/types/reduceDictionaryContent/buildMask.d.ts +0 -5
  248. package/dist/types/reduceDictionaryContent/buildMask.d.ts.map +0 -1
  249. package/dist/types/transpiler/dictionary_to_main/createDictionaryEntryPoint.d.ts.map +0 -1
  250. package/dist/types/transpiler/dictionary_to_main/generateDictionaryListContent.d.ts.map +0 -1
  251. package/dist/types/transpiler/dictionary_to_main/index.d.ts +0 -3
  252. package/dist/types/transpiler/dictionary_to_main/index.d.ts.map +0 -1
  253. package/dist/types/transpiler/dictionary_to_type/createModuleAugmentation.d.ts.map +0 -1
  254. package/dist/types/transpiler/dictionary_to_type/createType.d.ts.map +0 -1
  255. package/dist/types/transpiler/dictionary_to_type/index.d.ts.map +0 -1
  256. package/dist/types/transpiler/intlayer_dictionary/buildIntlayerDictionary.d.ts.map +0 -1
  257. package/dist/types/transpiler/intlayer_dictionary/index.d.ts.map +0 -1
  258. package/dist/types/transpiler/intlayer_dictionary/processContentDeclaration.d.ts.map +0 -1
  259. package/dist/types/transpiler/intlayer_dictionary/writeDynamicDictionary.d.ts.map +0 -1
  260. package/dist/types/transpiler/intlayer_dictionary/writeFetchDictionary.d.ts.map +0 -1
  261. package/dist/types/transpiler/intlayer_dictionary/writeMergedDictionary.d.ts.map +0 -1
  262. package/dist/types/transpiler/intlayer_dictionary/writeRemoteDictionary.d.ts.map +0 -1
  263. package/dist/types/transpiler/intlayer_dictionary/writeUnmergedDictionary.d.ts.map +0 -1
  264. /package/dist/cjs/{getBuiltDictionariesPath.cjs → createDictionaryEntryPoint/getBuiltDictionariesPath.cjs} +0 -0
  265. /package/dist/cjs/{getBuiltDynamicDictionariesPath.cjs → createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.cjs} +0 -0
  266. /package/dist/cjs/{getBuiltFetchDictionariesPath.cjs → createDictionaryEntryPoint/getBuiltFetchDictionariesPath.cjs} +0 -0
  267. /package/dist/cjs/{getBuiltRemoteDictionariesPath.cjs → createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.cjs} +0 -0
  268. /package/dist/cjs/{getBuiltUnmergedDictionariesPath.cjs → createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.cjs} +0 -0
  269. /package/dist/esm/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/index.mjs +0 -0
  270. /package/dist/esm/{getBuiltDictionariesPath.mjs → createDictionaryEntryPoint/getBuiltDictionariesPath.mjs} +0 -0
  271. /package/dist/esm/{getBuiltDynamicDictionariesPath.mjs → createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.mjs} +0 -0
  272. /package/dist/esm/{getBuiltFetchDictionariesPath.mjs → createDictionaryEntryPoint/getBuiltFetchDictionariesPath.mjs} +0 -0
  273. /package/dist/esm/{getBuiltRemoteDictionariesPath.mjs → createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.mjs} +0 -0
  274. /package/dist/esm/{getBuiltUnmergedDictionariesPath.mjs → createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.mjs} +0 -0
  275. /package/dist/esm/{transpiler/dictionary_to_type → createType}/index.mjs +0 -0
  276. /package/dist/types/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/index.d.ts +0 -0
  277. /package/dist/types/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/processContentDeclaration.d.ts +0 -0
  278. /package/dist/types/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeDynamicDictionary.d.ts +0 -0
  279. /package/dist/types/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeFetchDictionary.d.ts +0 -0
  280. /package/dist/types/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeMergedDictionary.d.ts +0 -0
  281. /package/dist/types/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeRemoteDictionary.d.ts +0 -0
  282. /package/dist/types/{transpiler/intlayer_dictionary → buildIntlayerDictionary}/writeUnmergedDictionary.d.ts +0 -0
  283. /package/dist/types/{transpiler/dictionary_to_main → createDictionaryEntryPoint}/createDictionaryEntryPoint.d.ts +0 -0
  284. /package/dist/types/{transpiler/dictionary_to_main → createDictionaryEntryPoint}/generateDictionaryListContent.d.ts +0 -0
  285. /package/dist/types/{getBuiltDictionariesPath.d.ts → createDictionaryEntryPoint/getBuiltDictionariesPath.d.ts} +0 -0
  286. /package/dist/types/{getBuiltDynamicDictionariesPath.d.ts → createDictionaryEntryPoint/getBuiltDynamicDictionariesPath.d.ts} +0 -0
  287. /package/dist/types/{getBuiltFetchDictionariesPath.d.ts → createDictionaryEntryPoint/getBuiltFetchDictionariesPath.d.ts} +0 -0
  288. /package/dist/types/{getBuiltRemoteDictionariesPath.d.ts → createDictionaryEntryPoint/getBuiltRemoteDictionariesPath.d.ts} +0 -0
  289. /package/dist/types/{getBuiltUnmergedDictionariesPath.d.ts → createDictionaryEntryPoint/getBuiltUnmergedDictionariesPath.d.ts} +0 -0
  290. /package/dist/types/{transpiler/dictionary_to_type → createType}/createModuleAugmentation.d.ts +0 -0
  291. /package/dist/types/{transpiler/dictionary_to_type → createType}/createType.d.ts +0 -0
  292. /package/dist/types/{transpiler/dictionary_to_type → createType}/index.d.ts +0 -0
@@ -0,0 +1,751 @@
1
+ import { NodeType } from "@intlayer/core";
2
+ import {
3
+ Node,
4
+ Project,
5
+ SyntaxKind,
6
+ ts
7
+ } from "ts-morph";
8
+ const isTranslationNode = (value) => {
9
+ if (!value || typeof value !== "object") return false;
10
+ const v = value;
11
+ const hasNodeTypeTranslation = v.nodeType === NodeType.Translation;
12
+ const hasTranslationObject = v[NodeType.Translation] && typeof v[NodeType.Translation] === "object";
13
+ return Boolean(hasTranslationObject || hasNodeTypeTranslation);
14
+ };
15
+ const isEnumerationNode = (value) => {
16
+ if (!value || typeof value !== "object") return false;
17
+ const v = value;
18
+ return v.nodeType === NodeType.Enumeration || v[NodeType.Enumeration] && typeof v[NodeType.Enumeration] === "object";
19
+ };
20
+ const isConditionNode = (value) => {
21
+ if (!value || typeof value !== "object") return false;
22
+ const v = value;
23
+ return v.nodeType === NodeType.Condition || v[NodeType.Condition] && typeof v[NodeType.Condition] === "object";
24
+ };
25
+ const isGenderNode = (value) => {
26
+ if (!value || typeof value !== "object") return false;
27
+ const v = value;
28
+ return v.nodeType === NodeType.Gender || v[NodeType.Gender] && typeof v[NodeType.Gender] === "object";
29
+ };
30
+ const isInsertionNode = (value) => {
31
+ if (!value || typeof value !== "object") return false;
32
+ const v = value;
33
+ return v.nodeType === NodeType.Insertion || NodeType.Insertion in v;
34
+ };
35
+ const isMarkdownNode = (value) => {
36
+ if (!value || typeof value !== "object") return false;
37
+ const v = value;
38
+ return v.nodeType === NodeType.Markdown || NodeType.Markdown in v;
39
+ };
40
+ const isFileNode = (value) => {
41
+ if (!value || typeof value !== "object") return false;
42
+ const v = value;
43
+ return v.nodeType === NodeType.File || typeof v[NodeType.File] === "string";
44
+ };
45
+ const isNestedNode = (value) => {
46
+ if (!value || typeof value !== "object") return false;
47
+ const v = value;
48
+ return v.nodeType === NodeType.Nested || NodeType.Nested in v;
49
+ };
50
+ const buildTranslationInitializer = (translationMap) => {
51
+ const entries = Object.entries(translationMap).sort(([a], [b]) => a.localeCompare(b));
52
+ const parts = [];
53
+ for (const [lang, val] of entries) {
54
+ const isValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(lang);
55
+ const keyText = isValidIdentifier ? lang : JSON.stringify(lang);
56
+ if (typeof val === "string") {
57
+ parts.push(`${keyText}: ${JSON.stringify(val)}`);
58
+ } else {
59
+ parts.push(`${keyText}: ${JSON.stringify(val)}`);
60
+ }
61
+ }
62
+ return `t({ ${parts.join(", ")} })`;
63
+ };
64
+ const stringifyKey = (key) => {
65
+ const isValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key);
66
+ if (!isValidIdentifier) return JSON.stringify(key);
67
+ if (key === "true" || key === "false") return JSON.stringify(key);
68
+ return key;
69
+ };
70
+ const buildEnumerationInitializer = (map) => {
71
+ const parts = [];
72
+ for (const [k, v] of Object.entries(map)) {
73
+ if (typeof v !== "string") return "";
74
+ parts.push(`${stringifyKey(k)}: ${JSON.stringify(v)}`);
75
+ }
76
+ return `enu({ ${parts.join(", ")} })`;
77
+ };
78
+ const buildConditionInitializer = (map) => {
79
+ const parts = [];
80
+ for (const [k, v] of Object.entries(map)) {
81
+ if (typeof v !== "string") return "";
82
+ parts.push(`${stringifyKey(k)}: ${JSON.stringify(v)}`);
83
+ }
84
+ return `cond({ ${parts.join(", ")} })`;
85
+ };
86
+ const buildGenderInitializer = (map) => {
87
+ const parts = [];
88
+ for (const [k, v] of Object.entries(map)) {
89
+ if (typeof v !== "string") return "";
90
+ parts.push(`${stringifyKey(k)}: ${JSON.stringify(v)}`);
91
+ }
92
+ return `gender({ ${parts.join(", ")} })`;
93
+ };
94
+ const buildInsertionInitializer = (content) => {
95
+ if (typeof content === "string") return `insert(${JSON.stringify(content)})`;
96
+ if (isTranslationNode(content)) {
97
+ const translations = content.translation ?? content["translation"] ?? {};
98
+ const allStrings = Object.values(translations).every(
99
+ (v) => typeof v === "string"
100
+ );
101
+ if (!allStrings) return void 0;
102
+ return `insert(${buildTranslationInitializer(
103
+ translations
104
+ )})`;
105
+ }
106
+ return void 0;
107
+ };
108
+ const buildFileInitializer = (path) => {
109
+ if (typeof path === "string") return `file(${JSON.stringify(path)})`;
110
+ return void 0;
111
+ };
112
+ const buildMarkdownInitializer = (content) => {
113
+ if (typeof content === "string") return `md(${JSON.stringify(content)})`;
114
+ if (isFileNode(content)) {
115
+ const p = content[NodeType.File];
116
+ const fileInit = buildFileInitializer(p);
117
+ if (!fileInit) return void 0;
118
+ return `md(${fileInit})`;
119
+ }
120
+ return void 0;
121
+ };
122
+ const buildNestedInitializer = (obj) => {
123
+ const data = obj?.[NodeType.Nested];
124
+ if (!data || typeof data.dictionaryKey !== "string") return void 0;
125
+ if (data.path && typeof data.path === "string") {
126
+ return `nest(${JSON.stringify(data.dictionaryKey)}, ${JSON.stringify(data.path)})`;
127
+ }
128
+ return `nest(${JSON.stringify(data.dictionaryKey)})`;
129
+ };
130
+ const readExistingTranslationMap = (contentObject, propName) => {
131
+ const prop = contentObject.getProperty(propName);
132
+ if (!prop || !Node.isPropertyAssignment(prop)) return void 0;
133
+ const init = prop.getInitializer();
134
+ if (!init) return void 0;
135
+ if (!Node.isCallExpression(init)) return void 0;
136
+ const exp = init.getExpression();
137
+ if (!Node.isIdentifier(exp) || exp.getText() !== "t") return void 0;
138
+ const arg = init.getArguments()[0];
139
+ if (!arg || !Node.isObjectLiteralExpression(arg)) return void 0;
140
+ const map = {};
141
+ for (const p of arg.getProperties()) {
142
+ if (!Node.isPropertyAssignment(p)) continue;
143
+ const nameNode = p.getNameNode();
144
+ const rawName = nameNode.getText();
145
+ const name = rawName.replace(/^['"]|['"]$/g, "");
146
+ const valueInit = p.getInitializer();
147
+ if (valueInit && Node.isStringLiteral(valueInit)) {
148
+ map[name] = valueInit.getLiteralValue();
149
+ }
150
+ }
151
+ return map;
152
+ };
153
+ const readExistingMapFromCall = (contentObject, propName, callee) => {
154
+ const prop = contentObject.getProperty(propName);
155
+ if (!prop || !Node.isPropertyAssignment(prop)) return void 0;
156
+ const init = prop.getInitializer();
157
+ if (!init || !Node.isCallExpression(init)) return void 0;
158
+ const exp = init.getExpression();
159
+ if (!Node.isIdentifier(exp) || exp.getText() !== callee) return void 0;
160
+ const arg = init.getArguments()[0];
161
+ if (!arg || !Node.isObjectLiteralExpression(arg)) return void 0;
162
+ const map = {};
163
+ for (const p of arg.getProperties()) {
164
+ if (!Node.isPropertyAssignment(p)) continue;
165
+ const nameNode = p.getNameNode();
166
+ const rawName = nameNode.getText();
167
+ const name = rawName.replace(/^['"]|['"]$/g, "");
168
+ const valueInit = p.getInitializer();
169
+ if (valueInit && Node.isStringLiteral(valueInit)) {
170
+ map[name] = valueInit.getLiteralValue();
171
+ }
172
+ }
173
+ return map;
174
+ };
175
+ const areStringMapsEqual = (a, b) => {
176
+ if (!b) return false;
177
+ const aEntries = Object.entries(a).filter(
178
+ ([, v]) => typeof v === "string"
179
+ );
180
+ if (aEntries.length !== Object.keys(a).length) return false;
181
+ if (aEntries.length !== Object.keys(b).length) return false;
182
+ for (const [k, v] of aEntries) {
183
+ if (!(k in b)) return false;
184
+ if (b[k] !== v) return false;
185
+ }
186
+ return true;
187
+ };
188
+ const readExistingInsertion = (contentObject, propName) => {
189
+ const prop = contentObject.getProperty(propName);
190
+ if (!prop || !Node.isPropertyAssignment(prop)) return void 0;
191
+ const init = prop.getInitializer();
192
+ if (!init || !Node.isCallExpression(init)) return void 0;
193
+ const exp = init.getExpression();
194
+ if (!Node.isIdentifier(exp) || exp.getText() !== "insert") return void 0;
195
+ const arg = init.getArguments()[0];
196
+ if (!arg) return void 0;
197
+ if (Node.isStringLiteral(arg)) {
198
+ return { kind: "string", value: arg.getLiteralValue() };
199
+ }
200
+ if (Node.isCallExpression(arg)) {
201
+ const aexp = arg.getExpression();
202
+ if (Node.isIdentifier(aexp) && aexp.getText() === "t") {
203
+ const tArg = arg.getArguments()[0];
204
+ if (tArg && Node.isObjectLiteralExpression(tArg)) {
205
+ const map = {};
206
+ for (const p of tArg.getProperties()) {
207
+ if (!Node.isPropertyAssignment(p)) continue;
208
+ const nameNode = p.getNameNode();
209
+ const rawName = nameNode.getText();
210
+ const name = rawName.replace(/^['"]|['"]$/g, "");
211
+ const valueInit = p.getInitializer();
212
+ if (valueInit && Node.isStringLiteral(valueInit)) {
213
+ map[name] = valueInit.getLiteralValue();
214
+ }
215
+ }
216
+ return { kind: "translation", map };
217
+ }
218
+ }
219
+ }
220
+ return void 0;
221
+ };
222
+ const readExistingMarkdown = (contentObject, propName) => {
223
+ const prop = contentObject.getProperty(propName);
224
+ if (!prop || !Node.isPropertyAssignment(prop)) return void 0;
225
+ const init = prop.getInitializer();
226
+ if (!init || !Node.isCallExpression(init)) return void 0;
227
+ const exp = init.getExpression();
228
+ if (!Node.isIdentifier(exp) || exp.getText() !== "md") return void 0;
229
+ const arg = init.getArguments()[0];
230
+ if (!arg) return void 0;
231
+ if (Node.isStringLiteral(arg)) {
232
+ return { kind: "string", value: arg.getLiteralValue() };
233
+ }
234
+ if (Node.isCallExpression(arg)) {
235
+ const aexp = arg.getExpression();
236
+ if (Node.isIdentifier(aexp) && aexp.getText() === "file") {
237
+ const fArg = arg.getArguments()[0];
238
+ if (fArg && Node.isStringLiteral(fArg)) {
239
+ return { kind: "file", path: fArg.getLiteralValue() };
240
+ }
241
+ }
242
+ }
243
+ return void 0;
244
+ };
245
+ const readExistingFilePath = (contentObject, propName) => {
246
+ const prop = contentObject.getProperty(propName);
247
+ if (!prop || !Node.isPropertyAssignment(prop)) return void 0;
248
+ const init = prop.getInitializer();
249
+ if (!init || !Node.isCallExpression(init)) return void 0;
250
+ const exp = init.getExpression();
251
+ if (!Node.isIdentifier(exp) || exp.getText() !== "file") return void 0;
252
+ const arg = init.getArguments()[0];
253
+ if (arg && Node.isStringLiteral(arg)) return arg.getLiteralValue();
254
+ return void 0;
255
+ };
256
+ const readExistingNest = (contentObject, propName) => {
257
+ const prop = contentObject.getProperty(propName);
258
+ if (!prop || !Node.isPropertyAssignment(prop)) return void 0;
259
+ let init = prop.getInitializer();
260
+ if (!init) return void 0;
261
+ let safetyCounter = 0;
262
+ while (safetyCounter++ < 5) {
263
+ if (Node.isCallExpression(init)) break;
264
+ const anyInit = init;
265
+ const nextExpr = anyInit.getExpression?.();
266
+ if (nextExpr && typeof nextExpr === "object" && nextExpr !== init) {
267
+ init = nextExpr;
268
+ continue;
269
+ }
270
+ break;
271
+ }
272
+ if (!Node.isCallExpression(init)) return void 0;
273
+ const exp = init.getExpression();
274
+ if (!Node.isIdentifier(exp) || exp.getText() !== "nest") return void 0;
275
+ const [arg1, arg2] = init.getArguments();
276
+ if (!arg1 || !Node.isStringLiteral(arg1)) return void 0;
277
+ const dictionaryKey = arg1.getLiteralValue();
278
+ let path;
279
+ if (arg2 && Node.isStringLiteral(arg2)) path = arg2.getLiteralValue();
280
+ return { dictionaryKey, path };
281
+ };
282
+ const unwrapToObjectLiteral = (node) => {
283
+ if (!node || typeof node !== "object") return void 0;
284
+ let current = node;
285
+ let safetyCounter = 0;
286
+ while (safetyCounter++ < 8) {
287
+ if (Node.isObjectLiteralExpression(current)) return current;
288
+ const next = current?.getExpression?.();
289
+ if (next && typeof next === "object" && next !== current) {
290
+ current = next;
291
+ continue;
292
+ }
293
+ break;
294
+ }
295
+ return void 0;
296
+ };
297
+ const readExistingArraySerialized = (contentObject, propName) => {
298
+ const prop = contentObject.getProperty(propName);
299
+ if (!prop || !Node.isPropertyAssignment(prop)) return void 0;
300
+ const init = prop.getInitializer();
301
+ if (!init || !Node.isArrayLiteralExpression(init)) return void 0;
302
+ const serialized = [];
303
+ for (const el of init.getElements()) {
304
+ if (Node.isStringLiteral(el)) {
305
+ serialized.push(JSON.stringify(el.getLiteralValue()));
306
+ continue;
307
+ }
308
+ if (Node.isNumericLiteral(el)) {
309
+ serialized.push(el.getText());
310
+ continue;
311
+ }
312
+ if (el.getKind() === SyntaxKind.TrueKeyword || el.getKind() === SyntaxKind.FalseKeyword) {
313
+ serialized.push(el.getText());
314
+ continue;
315
+ }
316
+ if (Node.isNullLiteral(el)) {
317
+ serialized.push("null");
318
+ continue;
319
+ }
320
+ if (Node.isCallExpression(el)) {
321
+ const exp = el.getExpression();
322
+ if (Node.isIdentifier(exp) && exp.getText() === "t") {
323
+ const arg = el.getArguments()[0];
324
+ if (arg && Node.isObjectLiteralExpression(arg)) {
325
+ const map = {};
326
+ for (const p of arg.getProperties()) {
327
+ if (!Node.isPropertyAssignment(p)) return void 0;
328
+ const nameNode = p.getNameNode();
329
+ const rawName = nameNode.getText();
330
+ const name = rawName.replace(/^['"]|['"]$/g, "");
331
+ const valueInit = p.getInitializer();
332
+ if (valueInit && Node.isStringLiteral(valueInit)) {
333
+ map[name] = valueInit.getLiteralValue();
334
+ } else {
335
+ return void 0;
336
+ }
337
+ }
338
+ serialized.push(buildTranslationInitializer(map));
339
+ continue;
340
+ }
341
+ }
342
+ }
343
+ return void 0;
344
+ }
345
+ return serialized;
346
+ };
347
+ const serializeValue = (value) => {
348
+ if (typeof value === "string") return JSON.stringify(value);
349
+ if (typeof value === "number" || typeof value === "boolean")
350
+ return String(value);
351
+ if (value === null) return "null";
352
+ if (isTranslationNode(value)) {
353
+ const translations = value.translation ?? value["translation"] ?? {};
354
+ const allStrings = Object.values(translations).every(
355
+ (v) => typeof v === "string"
356
+ );
357
+ if (!allStrings) return void 0;
358
+ return buildTranslationInitializer(translations);
359
+ }
360
+ if (isEnumerationNode(value)) {
361
+ const map = value[NodeType.Enumeration];
362
+ const init = buildEnumerationInitializer(map);
363
+ return init || void 0;
364
+ }
365
+ if (isConditionNode(value)) {
366
+ const map = value[NodeType.Condition];
367
+ const init = buildConditionInitializer(map);
368
+ return init || void 0;
369
+ }
370
+ if (isGenderNode(value)) {
371
+ const map = value[NodeType.Gender];
372
+ const init = buildGenderInitializer(map);
373
+ return init || void 0;
374
+ }
375
+ if (isInsertionNode(value)) {
376
+ const content = value[NodeType.Insertion];
377
+ return buildInsertionInitializer(content);
378
+ }
379
+ if (isMarkdownNode(value)) {
380
+ const content = value[NodeType.Markdown];
381
+ return buildMarkdownInitializer(content);
382
+ }
383
+ if (isFileNode(value)) {
384
+ const path = value[NodeType.File];
385
+ return buildFileInitializer(path);
386
+ }
387
+ if (isNestedNode(value)) {
388
+ return buildNestedInitializer(value);
389
+ }
390
+ return void 0;
391
+ };
392
+ const transformJSFile = async (fileContent, dictionary) => {
393
+ try {
394
+ if (!dictionary || typeof dictionary !== "object" || !dictionary.content) {
395
+ return fileContent;
396
+ }
397
+ const project = new Project({
398
+ useInMemoryFileSystem: true,
399
+ skipAddingFilesFromTsConfig: true,
400
+ skipFileDependencyResolution: true,
401
+ compilerOptions: {
402
+ allowJs: true,
403
+ jsx: ts.JsxEmit.Preserve
404
+ }
405
+ });
406
+ const sourceFile = project.createSourceFile("file.tsx", fileContent, {
407
+ overwrite: true
408
+ });
409
+ let rootObject;
410
+ const exportAssignment = sourceFile.getExportAssignment((_) => true);
411
+ if (exportAssignment) {
412
+ const expr = exportAssignment.getExpression();
413
+ if (Node.isIdentifier(expr)) {
414
+ const declFromSymbol = expr.getSymbol()?.getDeclarations()?.[0];
415
+ const declByName = declFromSymbol ?? sourceFile.getVariableDeclaration(expr.getText());
416
+ if (declByName && Node.isVariableDeclaration(declByName)) {
417
+ const initAny = declByName.getInitializer();
418
+ const obj = unwrapToObjectLiteral(initAny);
419
+ if (obj) rootObject = obj;
420
+ }
421
+ } else if (Node.isObjectLiteralExpression(expr)) {
422
+ rootObject = expr;
423
+ }
424
+ }
425
+ if (!rootObject) {
426
+ const varDecl = sourceFile.getVariableDeclaration((v) => {
427
+ try {
428
+ const typeText = v.getType().getText();
429
+ return typeText.includes("Dictionary") || v.getName() === "content" || v.getName().toLowerCase().includes("dictionary");
430
+ } catch {
431
+ return v.getName() === "content";
432
+ }
433
+ });
434
+ if (varDecl) {
435
+ const obj = unwrapToObjectLiteral(varDecl.getInitializer());
436
+ if (obj) rootObject = obj;
437
+ }
438
+ }
439
+ if (!rootObject) {
440
+ for (const stmt of sourceFile.getStatements()) {
441
+ if (!Node.isExpressionStatement(stmt)) continue;
442
+ const expr = stmt.getExpression();
443
+ if (!Node.isBinaryExpression(expr)) continue;
444
+ const operator = expr.getOperatorToken();
445
+ if (operator.getText() !== "=") continue;
446
+ const left = expr.getLeft();
447
+ if (!Node.isPropertyAccessExpression(left)) continue;
448
+ const leftExpr = left.getExpression();
449
+ const leftName = left.getName();
450
+ const isModuleExports = Node.isIdentifier(leftExpr) && leftExpr.getText() === "module" && leftName === "exports";
451
+ const isExportsDefault = Node.isIdentifier(leftExpr) && leftExpr.getText() === "exports" && leftName === "default";
452
+ if (!isModuleExports && !isExportsDefault) continue;
453
+ const right = expr.getRight();
454
+ if (Node.isObjectLiteralExpression(right)) {
455
+ rootObject = right;
456
+ break;
457
+ }
458
+ if (Node.isIdentifier(right)) {
459
+ const decl = right.getSymbol()?.getDeclarations()?.[0];
460
+ if (decl && Node.isVariableDeclaration(decl)) {
461
+ const obj = unwrapToObjectLiteral(decl.getInitializer());
462
+ if (obj) {
463
+ rootObject = obj;
464
+ break;
465
+ }
466
+ }
467
+ }
468
+ }
469
+ }
470
+ if (!rootObject) {
471
+ return fileContent;
472
+ }
473
+ const contentProp = rootObject.getProperty("content");
474
+ let contentObject;
475
+ if (contentProp && Node.isPropertyAssignment(contentProp)) {
476
+ contentObject = contentProp.getInitializerIfKind(
477
+ SyntaxKind.ObjectLiteralExpression
478
+ );
479
+ }
480
+ if (!contentObject || !dictionary.content) {
481
+ return fileContent;
482
+ }
483
+ const existingKeys = /* @__PURE__ */ new Set();
484
+ for (const prop of contentObject.getProperties()) {
485
+ if (Node.isPropertyAssignment(prop)) {
486
+ const name = prop.getName();
487
+ if (name) existingKeys.add(name.replace(/^['"]|['"]$/g, ""));
488
+ }
489
+ }
490
+ let changed = false;
491
+ const dictContent = dictionary.content || {};
492
+ const areTranslationsEqual = (desired, existing) => {
493
+ if (!existing) return false;
494
+ for (const [lang, val] of Object.entries(desired)) {
495
+ if (typeof val !== "string") return false;
496
+ if (!(lang in existing)) return false;
497
+ if (existing[lang] !== val) return false;
498
+ }
499
+ return true;
500
+ };
501
+ for (const [key, value] of Object.entries(dictContent)) {
502
+ if (Array.isArray(value)) {
503
+ const serializedElements = [];
504
+ let unsupported = false;
505
+ for (const el of value) {
506
+ const s = serializeValue(el);
507
+ if (s === void 0) {
508
+ unsupported = true;
509
+ break;
510
+ }
511
+ serializedElements.push(s);
512
+ }
513
+ if (unsupported) {
514
+ continue;
515
+ }
516
+ const initializerText = `[ ${serializedElements.join(", ")} ]`;
517
+ if (!existingKeys.has(key)) {
518
+ contentObject.addPropertyAssignment({
519
+ name: key,
520
+ initializer: initializerText
521
+ });
522
+ changed = true;
523
+ continue;
524
+ }
525
+ const prop = contentObject.getProperty(key);
526
+ if (prop && Node.isPropertyAssignment(prop)) {
527
+ const existingSerialized = readExistingArraySerialized(
528
+ contentObject,
529
+ key
530
+ );
531
+ const arraysEqual = existingSerialized !== void 0 && existingSerialized.length === serializedElements.length && existingSerialized.every((v, i) => v === serializedElements[i]);
532
+ if (!arraysEqual) {
533
+ prop.setInitializer(initializerText);
534
+ changed = true;
535
+ }
536
+ }
537
+ continue;
538
+ }
539
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || value === null) {
540
+ if (!existingKeys.has(key)) {
541
+ contentObject.addPropertyAssignment({
542
+ name: key,
543
+ initializer: typeof value === "string" ? JSON.stringify(value) : String(value)
544
+ });
545
+ changed = true;
546
+ continue;
547
+ }
548
+ const prop = contentObject.getProperty(key);
549
+ if (prop && Node.isPropertyAssignment(prop)) {
550
+ const init = prop.getInitializer();
551
+ const currentText = init?.getText();
552
+ const desiredText = typeof value === "string" ? JSON.stringify(value) : String(value);
553
+ if (currentText !== desiredText) {
554
+ prop.setInitializer(desiredText);
555
+ changed = true;
556
+ }
557
+ }
558
+ continue;
559
+ }
560
+ if (isTranslationNode(value)) {
561
+ const translations = value.translation ?? value["translation"] ?? {};
562
+ const allStrings = Object.values(translations).every(
563
+ (v) => typeof v === "string"
564
+ );
565
+ if (!allStrings) {
566
+ continue;
567
+ }
568
+ const initializerText = buildTranslationInitializer(
569
+ translations
570
+ );
571
+ if (!existingKeys.has(key)) {
572
+ contentObject.addPropertyAssignment({
573
+ name: key,
574
+ initializer: initializerText
575
+ });
576
+ changed = true;
577
+ continue;
578
+ }
579
+ const existingMap = readExistingTranslationMap(contentObject, key);
580
+ if (!areTranslationsEqual(translations, existingMap)) {
581
+ const prop = contentObject.getProperty(key);
582
+ if (prop && Node.isPropertyAssignment(prop)) {
583
+ prop.setInitializer(initializerText);
584
+ changed = true;
585
+ }
586
+ }
587
+ } else if (isEnumerationNode(value)) {
588
+ const map = value[NodeType.Enumeration];
589
+ if (!Object.values(map).every((v) => typeof v === "string")) continue;
590
+ const initializerText = buildEnumerationInitializer(map);
591
+ if (!initializerText) continue;
592
+ if (!existingKeys.has(key)) {
593
+ contentObject.addPropertyAssignment({
594
+ name: key,
595
+ initializer: initializerText
596
+ });
597
+ changed = true;
598
+ continue;
599
+ }
600
+ const existingMap = readExistingMapFromCall(contentObject, key, "enu");
601
+ if (!areStringMapsEqual(map, existingMap)) {
602
+ const prop = contentObject.getProperty(key);
603
+ if (prop && Node.isPropertyAssignment(prop)) {
604
+ prop.setInitializer(initializerText);
605
+ changed = true;
606
+ }
607
+ }
608
+ } else if (isConditionNode(value)) {
609
+ const map = value[NodeType.Condition];
610
+ if (!Object.values(map).every((v) => typeof v === "string")) continue;
611
+ const initializerText = buildConditionInitializer(map);
612
+ if (!initializerText) continue;
613
+ if (!existingKeys.has(key)) {
614
+ contentObject.addPropertyAssignment({
615
+ name: key,
616
+ initializer: initializerText
617
+ });
618
+ changed = true;
619
+ continue;
620
+ }
621
+ const existingMap = readExistingMapFromCall(contentObject, key, "cond");
622
+ if (!areStringMapsEqual(map, existingMap)) {
623
+ const prop = contentObject.getProperty(key);
624
+ if (prop && Node.isPropertyAssignment(prop)) {
625
+ prop.setInitializer(initializerText);
626
+ changed = true;
627
+ }
628
+ }
629
+ } else if (isGenderNode(value)) {
630
+ const map = value[NodeType.Gender];
631
+ if (!Object.values(map).every((v) => typeof v === "string")) continue;
632
+ const initializerText = buildGenderInitializer(map);
633
+ if (!initializerText) continue;
634
+ if (!existingKeys.has(key)) {
635
+ contentObject.addPropertyAssignment({
636
+ name: key,
637
+ initializer: initializerText
638
+ });
639
+ changed = true;
640
+ continue;
641
+ }
642
+ const existingMap = readExistingMapFromCall(
643
+ contentObject,
644
+ key,
645
+ "gender"
646
+ );
647
+ if (!areStringMapsEqual(map, existingMap)) {
648
+ const prop = contentObject.getProperty(key);
649
+ if (prop && Node.isPropertyAssignment(prop)) {
650
+ prop.setInitializer(initializerText);
651
+ changed = true;
652
+ }
653
+ }
654
+ } else if (isInsertionNode(value)) {
655
+ const desired = value[NodeType.Insertion];
656
+ const initializerText = buildInsertionInitializer(desired);
657
+ if (!initializerText) continue;
658
+ if (!existingKeys.has(key)) {
659
+ contentObject.addPropertyAssignment({
660
+ name: key,
661
+ initializer: initializerText
662
+ });
663
+ changed = true;
664
+ continue;
665
+ }
666
+ const existing = readExistingInsertion(contentObject, key);
667
+ const isSame = typeof desired === "string" && existing?.kind === "string" && existing.value === desired || isTranslationNode(desired) && existing?.kind === "translation" && areStringMapsEqual(
668
+ desired[NodeType.Translation] ?? {},
669
+ existing.map
670
+ );
671
+ if (!isSame) {
672
+ const prop = contentObject.getProperty(key);
673
+ if (prop && Node.isPropertyAssignment(prop)) {
674
+ prop.setInitializer(initializerText);
675
+ changed = true;
676
+ }
677
+ }
678
+ } else if (isMarkdownNode(value)) {
679
+ const desired = value[NodeType.Markdown];
680
+ const initializerText = buildMarkdownInitializer(desired);
681
+ if (!initializerText) continue;
682
+ if (!existingKeys.has(key)) {
683
+ contentObject.addPropertyAssignment({
684
+ name: key,
685
+ initializer: initializerText
686
+ });
687
+ changed = true;
688
+ continue;
689
+ }
690
+ const existing = readExistingMarkdown(contentObject, key);
691
+ const isSame = typeof desired === "string" && existing?.kind === "string" && existing.value === desired || isFileNode(desired) && existing?.kind === "file" && existing.path === desired[NodeType.File];
692
+ if (!isSame) {
693
+ const prop = contentObject.getProperty(key);
694
+ if (prop && Node.isPropertyAssignment(prop)) {
695
+ prop.setInitializer(initializerText);
696
+ changed = true;
697
+ }
698
+ }
699
+ } else if (isFileNode(value)) {
700
+ const desired = value[NodeType.File];
701
+ const initializerText = buildFileInitializer(desired);
702
+ if (!initializerText) continue;
703
+ if (!existingKeys.has(key)) {
704
+ contentObject.addPropertyAssignment({
705
+ name: key,
706
+ initializer: initializerText
707
+ });
708
+ changed = true;
709
+ continue;
710
+ }
711
+ const existing = readExistingFilePath(contentObject, key);
712
+ if (existing !== desired) {
713
+ const prop = contentObject.getProperty(key);
714
+ if (prop && Node.isPropertyAssignment(prop)) {
715
+ prop.setInitializer(initializerText);
716
+ changed = true;
717
+ }
718
+ }
719
+ } else if (isNestedNode(value)) {
720
+ const initializerText = buildNestedInitializer(value);
721
+ if (!initializerText) continue;
722
+ if (!existingKeys.has(key)) {
723
+ contentObject.addPropertyAssignment({
724
+ name: key,
725
+ initializer: initializerText
726
+ });
727
+ changed = true;
728
+ continue;
729
+ }
730
+ const existing = readExistingNest(contentObject, key);
731
+ const desired = value[NodeType.Nested];
732
+ const isSame = !!desired && existing?.dictionaryKey === desired.dictionaryKey && existing?.path === desired.path;
733
+ if (!isSame) {
734
+ const prop = contentObject.getProperty(key);
735
+ if (prop && Node.isPropertyAssignment(prop)) {
736
+ prop.setInitializer(initializerText);
737
+ changed = true;
738
+ }
739
+ }
740
+ }
741
+ }
742
+ if (!changed) return fileContent;
743
+ return sourceFile.getFullText();
744
+ } catch {
745
+ return fileContent;
746
+ }
747
+ };
748
+ export {
749
+ transformJSFile
750
+ };
751
+ //# sourceMappingURL=transformJSFile.mjs.map