@intlayer/core 8.4.4 → 8.4.6

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 (780) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +29 -0
  2. package/dist/cjs/deepTransformPlugins/getFilterMissingTranslationsContent.cjs +213 -1
  3. package/dist/cjs/deepTransformPlugins/getFilterMissingTranslationsContent.cjs.map +1 -1
  4. package/dist/cjs/deepTransformPlugins/getFilterTranslationsOnlyContent.cjs +95 -1
  5. package/dist/cjs/deepTransformPlugins/getFilterTranslationsOnlyContent.cjs.map +1 -1
  6. package/dist/cjs/deepTransformPlugins/getFilteredLocalesContent.cjs +46 -1
  7. package/dist/cjs/deepTransformPlugins/getFilteredLocalesContent.cjs.map +1 -1
  8. package/dist/cjs/deepTransformPlugins/getLocalizedContent.cjs +33 -1
  9. package/dist/cjs/deepTransformPlugins/getLocalizedContent.cjs.map +1 -1
  10. package/dist/cjs/deepTransformPlugins/getMaskContent.cjs +27 -1
  11. package/dist/cjs/deepTransformPlugins/getMaskContent.cjs.map +1 -1
  12. package/dist/cjs/deepTransformPlugins/getMissingLocalesContent.cjs +151 -1
  13. package/dist/cjs/deepTransformPlugins/getMissingLocalesContent.cjs.map +1 -1
  14. package/dist/cjs/deepTransformPlugins/getMultilingualDictionary.cjs +87 -1
  15. package/dist/cjs/deepTransformPlugins/getMultilingualDictionary.cjs.map +1 -1
  16. package/dist/cjs/deepTransformPlugins/getReplacedValuesContent.cjs +60 -1
  17. package/dist/cjs/deepTransformPlugins/getReplacedValuesContent.cjs.map +1 -1
  18. package/dist/cjs/deepTransformPlugins/getSplittedContent.cjs +123 -1
  19. package/dist/cjs/deepTransformPlugins/getSplittedContent.cjs.map +1 -1
  20. package/dist/cjs/deepTransformPlugins/index.cjs +32 -1
  21. package/dist/cjs/deepTransformPlugins/insertContentInDictionary.cjs +107 -1
  22. package/dist/cjs/deepTransformPlugins/insertContentInDictionary.cjs.map +1 -1
  23. package/dist/cjs/dictionaryManipulator/editDictionaryByKeyPath.cjs +65 -1
  24. package/dist/cjs/dictionaryManipulator/editDictionaryByKeyPath.cjs.map +1 -1
  25. package/dist/cjs/dictionaryManipulator/getContentNodeByKeyPath.cjs +19 -1
  26. package/dist/cjs/dictionaryManipulator/getContentNodeByKeyPath.cjs.map +1 -1
  27. package/dist/cjs/dictionaryManipulator/getDefaultNode.cjs +56 -1
  28. package/dist/cjs/dictionaryManipulator/getDefaultNode.cjs.map +1 -1
  29. package/dist/cjs/dictionaryManipulator/getEmptyNode.cjs +27 -1
  30. package/dist/cjs/dictionaryManipulator/getEmptyNode.cjs.map +1 -1
  31. package/dist/cjs/dictionaryManipulator/getNodeChildren.cjs +24 -1
  32. package/dist/cjs/dictionaryManipulator/getNodeChildren.cjs.map +1 -1
  33. package/dist/cjs/dictionaryManipulator/getNodeType.cjs +55 -1
  34. package/dist/cjs/dictionaryManipulator/getNodeType.cjs.map +1 -1
  35. package/dist/cjs/dictionaryManipulator/index.cjs +27 -1
  36. package/dist/cjs/dictionaryManipulator/mergeDictionaries.cjs +69 -1
  37. package/dist/cjs/dictionaryManipulator/mergeDictionaries.cjs.map +1 -1
  38. package/dist/cjs/dictionaryManipulator/normalizeDictionary.cjs +30 -1
  39. package/dist/cjs/dictionaryManipulator/normalizeDictionary.cjs.map +1 -1
  40. package/dist/cjs/dictionaryManipulator/orderDictionaries.cjs +48 -1
  41. package/dist/cjs/dictionaryManipulator/orderDictionaries.cjs.map +1 -1
  42. package/dist/cjs/dictionaryManipulator/removeContentNodeByKeyPath.cjs +32 -1
  43. package/dist/cjs/dictionaryManipulator/removeContentNodeByKeyPath.cjs.map +1 -1
  44. package/dist/cjs/dictionaryManipulator/renameContentNodeByKeyPath.cjs +40 -1
  45. package/dist/cjs/dictionaryManipulator/renameContentNodeByKeyPath.cjs.map +1 -1
  46. package/dist/cjs/dictionaryManipulator/updateNodeChildren.cjs +39 -1
  47. package/dist/cjs/dictionaryManipulator/updateNodeChildren.cjs.map +1 -1
  48. package/dist/cjs/formatters/compact.cjs +25 -1
  49. package/dist/cjs/formatters/compact.cjs.map +1 -1
  50. package/dist/cjs/formatters/currency.cjs +29 -1
  51. package/dist/cjs/formatters/currency.cjs.map +1 -1
  52. package/dist/cjs/formatters/date.cjs +60 -1
  53. package/dist/cjs/formatters/date.cjs.map +1 -1
  54. package/dist/cjs/formatters/index.cjs +23 -1
  55. package/dist/cjs/formatters/list.cjs +30 -1
  56. package/dist/cjs/formatters/list.cjs.map +1 -1
  57. package/dist/cjs/formatters/number.cjs +20 -1
  58. package/dist/cjs/formatters/number.cjs.map +1 -1
  59. package/dist/cjs/formatters/percentage.cjs +27 -1
  60. package/dist/cjs/formatters/percentage.cjs.map +1 -1
  61. package/dist/cjs/formatters/relativeTime.cjs +43 -1
  62. package/dist/cjs/formatters/relativeTime.cjs.map +1 -1
  63. package/dist/cjs/formatters/units.cjs +23 -1
  64. package/dist/cjs/formatters/units.cjs.map +1 -1
  65. package/dist/cjs/getStorageAttributes.cjs +134 -1
  66. package/dist/cjs/getStorageAttributes.cjs.map +1 -1
  67. package/dist/cjs/index.cjs +315 -1
  68. package/dist/cjs/interpreter/getCondition.cjs +27 -1
  69. package/dist/cjs/interpreter/getCondition.cjs.map +1 -1
  70. package/dist/cjs/interpreter/getContent/deepTransform.cjs +42 -1
  71. package/dist/cjs/interpreter/getContent/deepTransform.cjs.map +1 -1
  72. package/dist/cjs/interpreter/getContent/getContent.cjs +32 -1
  73. package/dist/cjs/interpreter/getContent/getContent.cjs.map +1 -0
  74. package/dist/cjs/interpreter/getContent/index.cjs +15 -1
  75. package/dist/cjs/interpreter/getContent/plugins.cjs +163 -1
  76. package/dist/cjs/interpreter/getContent/plugins.cjs.map +1 -0
  77. package/dist/cjs/interpreter/getDictionary.cjs +25 -1
  78. package/dist/cjs/interpreter/getDictionary.cjs.map +1 -0
  79. package/dist/cjs/interpreter/getEnumeration.cjs +72 -1
  80. package/dist/cjs/interpreter/getEnumeration.cjs.map +1 -1
  81. package/dist/cjs/interpreter/getGender.cjs +38 -1
  82. package/dist/cjs/interpreter/getGender.cjs.map +1 -1
  83. package/dist/cjs/interpreter/getHTML.cjs +124 -1
  84. package/dist/cjs/interpreter/getHTML.cjs.map +1 -1
  85. package/dist/cjs/interpreter/getInsertion.cjs +22 -1
  86. package/dist/cjs/interpreter/getInsertion.cjs.map +1 -1
  87. package/dist/cjs/interpreter/getIntlayer.cjs +41 -1
  88. package/dist/cjs/interpreter/getIntlayer.cjs.map +1 -0
  89. package/dist/cjs/interpreter/getNesting.cjs +37 -1
  90. package/dist/cjs/interpreter/getNesting.cjs.map +1 -0
  91. package/dist/cjs/interpreter/getTranslation.cjs +87 -1
  92. package/dist/cjs/interpreter/getTranslation.cjs.map +1 -1
  93. package/dist/cjs/interpreter/index.cjs +32 -1
  94. package/dist/cjs/interpreter/splitAndJoinInsertion.cjs +55 -1
  95. package/dist/cjs/interpreter/splitAndJoinInsertion.cjs.map +1 -1
  96. package/dist/cjs/localization/getBrowserLocale.cjs +143 -1
  97. package/dist/cjs/localization/getBrowserLocale.cjs.map +1 -1
  98. package/dist/cjs/localization/getHTMLTextDir.cjs +40 -1
  99. package/dist/cjs/localization/getHTMLTextDir.cjs.map +1 -1
  100. package/dist/cjs/localization/getLocale.cjs +27 -1
  101. package/dist/cjs/localization/getLocale.cjs.map +1 -1
  102. package/dist/cjs/localization/getLocaleFromPath.cjs +36 -1
  103. package/dist/cjs/localization/getLocaleFromPath.cjs.map +1 -1
  104. package/dist/cjs/localization/getLocaleLang.cjs +20 -1
  105. package/dist/cjs/localization/getLocaleLang.cjs.map +1 -1
  106. package/dist/cjs/localization/getLocaleName.cjs +10 -1
  107. package/dist/cjs/localization/getLocaleName.cjs.map +1 -1
  108. package/dist/cjs/localization/getLocalizedUrl.cjs +73 -1
  109. package/dist/cjs/localization/getLocalizedUrl.cjs.map +1 -1
  110. package/dist/cjs/localization/getMultilingualUrls.cjs +46 -1
  111. package/dist/cjs/localization/getMultilingualUrls.cjs.map +1 -1
  112. package/dist/cjs/localization/getPathWithoutLocale.cjs +55 -1
  113. package/dist/cjs/localization/getPathWithoutLocale.cjs.map +1 -1
  114. package/dist/cjs/localization/getPrefix.cjs +73 -1
  115. package/dist/cjs/localization/getPrefix.cjs.map +1 -1
  116. package/dist/cjs/localization/index.cjs +41 -1
  117. package/dist/cjs/localization/localeDetector.cjs +133 -1
  118. package/dist/cjs/localization/localeDetector.cjs.map +1 -1
  119. package/dist/cjs/localization/localeMapper.cjs +124 -1
  120. package/dist/cjs/localization/localeMapper.cjs.map +1 -1
  121. package/dist/cjs/localization/localeResolver.cjs +28 -1
  122. package/dist/cjs/localization/localeResolver.cjs.map +1 -1
  123. package/dist/cjs/localization/rewriteUtils.cjs +110 -1
  124. package/dist/cjs/localization/rewriteUtils.cjs.map +1 -1
  125. package/dist/cjs/localization/validatePrefix.cjs +45 -1
  126. package/dist/cjs/localization/validatePrefix.cjs.map +1 -1
  127. package/dist/cjs/markdown/compiler.cjs +810 -10
  128. package/dist/cjs/markdown/compiler.cjs.map +1 -1
  129. package/dist/cjs/markdown/constants.cjs +328 -1
  130. package/dist/cjs/markdown/constants.cjs.map +1 -1
  131. package/dist/cjs/markdown/index.cjs +126 -1
  132. package/dist/cjs/markdown/parser.cjs +66 -1
  133. package/dist/cjs/markdown/parser.cjs.map +1 -1
  134. package/dist/cjs/markdown/renderer.cjs +61 -1
  135. package/dist/cjs/markdown/renderer.cjs.map +1 -1
  136. package/dist/cjs/markdown/utils.cjs +391 -6
  137. package/dist/cjs/markdown/utils.cjs.map +1 -1
  138. package/dist/cjs/messageFormat/ICU.cjs +334 -1
  139. package/dist/cjs/messageFormat/ICU.cjs.map +1 -1
  140. package/dist/cjs/messageFormat/i18next.cjs +345 -1
  141. package/dist/cjs/messageFormat/i18next.cjs.map +1 -1
  142. package/dist/cjs/messageFormat/index.cjs +11 -1
  143. package/dist/cjs/messageFormat/verify-icu-format.cjs +64 -2
  144. package/dist/cjs/messageFormat/verify-icu-format.cjs.map +1 -1
  145. package/dist/cjs/messageFormat/vue-i18n.cjs +181 -1
  146. package/dist/cjs/messageFormat/vue-i18n.cjs.map +1 -1
  147. package/dist/cjs/transpiler/condition/condition.cjs +26 -1
  148. package/dist/cjs/transpiler/condition/condition.cjs.map +1 -1
  149. package/dist/cjs/transpiler/condition/index.cjs +4 -1
  150. package/dist/cjs/transpiler/enumeration/enumeration.cjs +28 -1
  151. package/dist/cjs/transpiler/enumeration/enumeration.cjs.map +1 -1
  152. package/dist/cjs/transpiler/enumeration/index.cjs +4 -1
  153. package/dist/cjs/transpiler/file/file.cjs +51 -1
  154. package/dist/cjs/transpiler/file/file.cjs.map +1 -1
  155. package/dist/cjs/transpiler/file/fileBrowser.cjs +24 -1
  156. package/dist/cjs/transpiler/file/fileBrowser.cjs.map +1 -1
  157. package/dist/cjs/transpiler/file/index.cjs +5 -1
  158. package/dist/cjs/transpiler/gender/gender.cjs +26 -1
  159. package/dist/cjs/transpiler/gender/gender.cjs.map +1 -1
  160. package/dist/cjs/transpiler/gender/index.cjs +4 -1
  161. package/dist/cjs/transpiler/html/getHTMLCustomComponents.cjs +45 -1
  162. package/dist/cjs/transpiler/html/getHTMLCustomComponents.cjs.map +1 -0
  163. package/dist/cjs/transpiler/html/html.cjs +44 -1
  164. package/dist/cjs/transpiler/html/html.cjs.map +1 -0
  165. package/dist/cjs/transpiler/html/htmlTags.cjs +116 -1
  166. package/dist/cjs/transpiler/html/htmlTags.cjs.map +1 -1
  167. package/dist/cjs/transpiler/html/index.cjs +9 -1
  168. package/dist/cjs/transpiler/html/validateHTML.cjs +65 -1
  169. package/dist/cjs/transpiler/html/validateHTML.cjs.map +1 -1
  170. package/dist/cjs/transpiler/index.cjs +29 -1
  171. package/dist/cjs/transpiler/insertion/getInsertionValues.cjs +11 -1
  172. package/dist/cjs/transpiler/insertion/getInsertionValues.cjs.map +1 -1
  173. package/dist/cjs/transpiler/insertion/index.cjs +6 -1
  174. package/dist/cjs/transpiler/insertion/insertion.cjs +36 -1
  175. package/dist/cjs/transpiler/insertion/insertion.cjs.map +1 -1
  176. package/dist/cjs/transpiler/markdown/getMarkdownMetadata.cjs +23 -2
  177. package/dist/cjs/transpiler/markdown/getMarkdownMetadata.cjs.map +1 -1
  178. package/dist/cjs/transpiler/markdown/index.cjs +8 -1
  179. package/dist/cjs/transpiler/markdown/markdown.cjs +62 -1
  180. package/dist/cjs/transpiler/markdown/markdown.cjs.map +1 -1
  181. package/dist/cjs/transpiler/markdown/validateMarkdown.cjs +74 -4
  182. package/dist/cjs/transpiler/markdown/validateMarkdown.cjs.map +1 -1
  183. package/dist/cjs/transpiler/nesting/index.cjs +4 -1
  184. package/dist/cjs/transpiler/nesting/nesting.cjs +27 -1
  185. package/dist/cjs/transpiler/nesting/nesting.cjs.map +1 -1
  186. package/dist/cjs/transpiler/translation/index.cjs +4 -1
  187. package/dist/cjs/transpiler/translation/translation.cjs +29 -1
  188. package/dist/cjs/transpiler/translation/translation.cjs.map +1 -1
  189. package/dist/cjs/utils/checkIsURLAbsolute.cjs +7 -1
  190. package/dist/cjs/utils/checkIsURLAbsolute.cjs.map +1 -1
  191. package/dist/cjs/utils/getCookie.cjs +32 -1
  192. package/dist/cjs/utils/getCookie.cjs.map +1 -1
  193. package/dist/cjs/utils/index.cjs +21 -1
  194. package/dist/cjs/utils/intl.cjs +91 -1
  195. package/dist/cjs/utils/intl.cjs.map +1 -1
  196. package/dist/cjs/utils/isSameKeyPath.cjs +7 -1
  197. package/dist/cjs/utils/isSameKeyPath.cjs.map +1 -1
  198. package/dist/cjs/utils/isValidReactElement.cjs +14 -1
  199. package/dist/cjs/utils/isValidReactElement.cjs.map +1 -1
  200. package/dist/cjs/utils/localeStorage.cjs +140 -1
  201. package/dist/cjs/utils/localeStorage.cjs.map +1 -1
  202. package/dist/cjs/utils/parseYaml.cjs +322 -16
  203. package/dist/cjs/utils/parseYaml.cjs.map +1 -1
  204. package/dist/esm/deepTransformPlugins/getFilterMissingTranslationsContent.mjs +207 -1
  205. package/dist/esm/deepTransformPlugins/getFilterMissingTranslationsContent.mjs.map +1 -1
  206. package/dist/esm/deepTransformPlugins/getFilterTranslationsOnlyContent.mjs +89 -1
  207. package/dist/esm/deepTransformPlugins/getFilterTranslationsOnlyContent.mjs.map +1 -1
  208. package/dist/esm/deepTransformPlugins/getFilteredLocalesContent.mjs +42 -1
  209. package/dist/esm/deepTransformPlugins/getFilteredLocalesContent.mjs.map +1 -1
  210. package/dist/esm/deepTransformPlugins/getLocalizedContent.mjs +31 -1
  211. package/dist/esm/deepTransformPlugins/getLocalizedContent.mjs.map +1 -1
  212. package/dist/esm/deepTransformPlugins/getMaskContent.mjs +25 -1
  213. package/dist/esm/deepTransformPlugins/getMaskContent.mjs.map +1 -1
  214. package/dist/esm/deepTransformPlugins/getMissingLocalesContent.mjs +145 -1
  215. package/dist/esm/deepTransformPlugins/getMissingLocalesContent.mjs.map +1 -1
  216. package/dist/esm/deepTransformPlugins/getMultilingualDictionary.mjs +86 -1
  217. package/dist/esm/deepTransformPlugins/getMultilingualDictionary.mjs.map +1 -1
  218. package/dist/esm/deepTransformPlugins/getReplacedValuesContent.mjs +59 -1
  219. package/dist/esm/deepTransformPlugins/getReplacedValuesContent.mjs.map +1 -1
  220. package/dist/esm/deepTransformPlugins/getSplittedContent.mjs +119 -1
  221. package/dist/esm/deepTransformPlugins/getSplittedContent.mjs.map +1 -1
  222. package/dist/esm/deepTransformPlugins/index.mjs +12 -1
  223. package/dist/esm/deepTransformPlugins/insertContentInDictionary.mjs +104 -1
  224. package/dist/esm/deepTransformPlugins/insertContentInDictionary.mjs.map +1 -1
  225. package/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.mjs +62 -1
  226. package/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.mjs.map +1 -1
  227. package/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.mjs +16 -1
  228. package/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.mjs.map +1 -1
  229. package/dist/esm/dictionaryManipulator/getDefaultNode.mjs +53 -1
  230. package/dist/esm/dictionaryManipulator/getDefaultNode.mjs.map +1 -1
  231. package/dist/esm/dictionaryManipulator/getEmptyNode.mjs +24 -1
  232. package/dist/esm/dictionaryManipulator/getEmptyNode.mjs.map +1 -1
  233. package/dist/esm/dictionaryManipulator/getNodeChildren.mjs +21 -1
  234. package/dist/esm/dictionaryManipulator/getNodeChildren.mjs.map +1 -1
  235. package/dist/esm/dictionaryManipulator/getNodeType.mjs +52 -1
  236. package/dist/esm/dictionaryManipulator/getNodeType.mjs.map +1 -1
  237. package/dist/esm/dictionaryManipulator/index.mjs +14 -1
  238. package/dist/esm/dictionaryManipulator/mergeDictionaries.mjs +66 -1
  239. package/dist/esm/dictionaryManipulator/mergeDictionaries.mjs.map +1 -1
  240. package/dist/esm/dictionaryManipulator/normalizeDictionary.mjs +28 -1
  241. package/dist/esm/dictionaryManipulator/normalizeDictionary.mjs.map +1 -1
  242. package/dist/esm/dictionaryManipulator/orderDictionaries.mjs +45 -1
  243. package/dist/esm/dictionaryManipulator/orderDictionaries.mjs.map +1 -1
  244. package/dist/esm/dictionaryManipulator/removeContentNodeByKeyPath.mjs +29 -1
  245. package/dist/esm/dictionaryManipulator/removeContentNodeByKeyPath.mjs.map +1 -1
  246. package/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.mjs +37 -1
  247. package/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.mjs.map +1 -1
  248. package/dist/esm/dictionaryManipulator/updateNodeChildren.mjs +36 -1
  249. package/dist/esm/dictionaryManipulator/updateNodeChildren.mjs.map +1 -1
  250. package/dist/esm/formatters/compact.mjs +22 -1
  251. package/dist/esm/formatters/compact.mjs.map +1 -1
  252. package/dist/esm/formatters/currency.mjs +26 -1
  253. package/dist/esm/formatters/currency.mjs.map +1 -1
  254. package/dist/esm/formatters/date.mjs +57 -1
  255. package/dist/esm/formatters/date.mjs.map +1 -1
  256. package/dist/esm/formatters/index.mjs +11 -1
  257. package/dist/esm/formatters/list.mjs +27 -1
  258. package/dist/esm/formatters/list.mjs.map +1 -1
  259. package/dist/esm/formatters/number.mjs +17 -1
  260. package/dist/esm/formatters/number.mjs.map +1 -1
  261. package/dist/esm/formatters/percentage.mjs +24 -1
  262. package/dist/esm/formatters/percentage.mjs.map +1 -1
  263. package/dist/esm/formatters/relativeTime.mjs +40 -1
  264. package/dist/esm/formatters/relativeTime.mjs.map +1 -1
  265. package/dist/esm/formatters/units.mjs +20 -1
  266. package/dist/esm/formatters/units.mjs.map +1 -1
  267. package/dist/esm/getStorageAttributes.mjs +132 -1
  268. package/dist/esm/getStorageAttributes.mjs.map +1 -1
  269. package/dist/esm/index.mjs +87 -1
  270. package/dist/esm/interpreter/getCondition.mjs +25 -1
  271. package/dist/esm/interpreter/getCondition.mjs.map +1 -1
  272. package/dist/esm/interpreter/getContent/deepTransform.mjs +39 -1
  273. package/dist/esm/interpreter/getContent/deepTransform.mjs.map +1 -1
  274. package/dist/esm/interpreter/getContent/getContent.mjs +28 -1
  275. package/dist/esm/interpreter/getContent/getContent.mjs.map +1 -0
  276. package/dist/esm/interpreter/getContent/index.mjs +5 -1
  277. package/dist/esm/interpreter/getContent/plugins.mjs +154 -1
  278. package/dist/esm/interpreter/getContent/plugins.mjs.map +1 -0
  279. package/dist/esm/interpreter/getDictionary.mjs +24 -1
  280. package/dist/esm/interpreter/getDictionary.mjs.map +1 -0
  281. package/dist/esm/interpreter/getEnumeration.mjs +69 -1
  282. package/dist/esm/interpreter/getEnumeration.mjs.map +1 -1
  283. package/dist/esm/interpreter/getGender.mjs +36 -1
  284. package/dist/esm/interpreter/getGender.mjs.map +1 -1
  285. package/dist/esm/interpreter/getHTML.mjs +122 -1
  286. package/dist/esm/interpreter/getHTML.mjs.map +1 -1
  287. package/dist/esm/interpreter/getInsertion.mjs +20 -1
  288. package/dist/esm/interpreter/getInsertion.mjs.map +1 -1
  289. package/dist/esm/interpreter/getIntlayer.mjs +37 -1
  290. package/dist/esm/interpreter/getIntlayer.mjs.map +1 -0
  291. package/dist/esm/interpreter/getNesting.mjs +36 -1
  292. package/dist/esm/interpreter/getNesting.mjs.map +1 -0
  293. package/dist/esm/interpreter/getTranslation.mjs +85 -1
  294. package/dist/esm/interpreter/getTranslation.mjs.map +1 -1
  295. package/dist/esm/interpreter/index.mjs +13 -1
  296. package/dist/esm/interpreter/splitAndJoinInsertion.mjs +53 -1
  297. package/dist/esm/interpreter/splitAndJoinInsertion.mjs.map +1 -1
  298. package/dist/esm/localization/getBrowserLocale.mjs +138 -1
  299. package/dist/esm/localization/getBrowserLocale.mjs.map +1 -1
  300. package/dist/esm/localization/getHTMLTextDir.mjs +38 -1
  301. package/dist/esm/localization/getHTMLTextDir.mjs.map +1 -1
  302. package/dist/esm/localization/getLocale.mjs +24 -1
  303. package/dist/esm/localization/getLocale.mjs.map +1 -1
  304. package/dist/esm/localization/getLocaleFromPath.mjs +35 -1
  305. package/dist/esm/localization/getLocaleFromPath.mjs.map +1 -1
  306. package/dist/esm/localization/getLocaleLang.mjs +18 -1
  307. package/dist/esm/localization/getLocaleLang.mjs.map +1 -1
  308. package/dist/esm/localization/getLocaleName.mjs +9 -1
  309. package/dist/esm/localization/getLocaleName.mjs.map +1 -1
  310. package/dist/esm/localization/getLocalizedUrl.mjs +70 -1
  311. package/dist/esm/localization/getLocalizedUrl.mjs.map +1 -1
  312. package/dist/esm/localization/getMultilingualUrls.mjs +45 -1
  313. package/dist/esm/localization/getMultilingualUrls.mjs.map +1 -1
  314. package/dist/esm/localization/getPathWithoutLocale.mjs +52 -1
  315. package/dist/esm/localization/getPathWithoutLocale.mjs.map +1 -1
  316. package/dist/esm/localization/getPrefix.mjs +69 -1
  317. package/dist/esm/localization/getPrefix.mjs.map +1 -1
  318. package/dist/esm/localization/index.mjs +18 -1
  319. package/dist/esm/localization/localeDetector.mjs +131 -1
  320. package/dist/esm/localization/localeDetector.mjs.map +1 -1
  321. package/dist/esm/localization/localeMapper.mjs +119 -1
  322. package/dist/esm/localization/localeMapper.mjs.map +1 -1
  323. package/dist/esm/localization/localeResolver.mjs +25 -1
  324. package/dist/esm/localization/localeResolver.mjs.map +1 -1
  325. package/dist/esm/localization/rewriteUtils.mjs +104 -1
  326. package/dist/esm/localization/rewriteUtils.mjs.map +1 -1
  327. package/dist/esm/localization/validatePrefix.mjs +44 -1
  328. package/dist/esm/localization/validatePrefix.mjs.map +1 -1
  329. package/dist/esm/markdown/compiler.mjs +786 -10
  330. package/dist/esm/markdown/compiler.mjs.map +1 -1
  331. package/dist/esm/markdown/constants.mjs +247 -1
  332. package/dist/esm/markdown/constants.mjs.map +1 -1
  333. package/dist/esm/markdown/index.mjs +10 -1
  334. package/dist/esm/markdown/parser.mjs +65 -1
  335. package/dist/esm/markdown/parser.mjs.map +1 -1
  336. package/dist/esm/markdown/renderer.mjs +59 -1
  337. package/dist/esm/markdown/renderer.mjs.map +1 -1
  338. package/dist/esm/markdown/utils.mjs +361 -6
  339. package/dist/esm/markdown/utils.mjs.map +1 -1
  340. package/dist/esm/messageFormat/ICU.mjs +330 -1
  341. package/dist/esm/messageFormat/ICU.mjs.map +1 -1
  342. package/dist/esm/messageFormat/i18next.mjs +341 -1
  343. package/dist/esm/messageFormat/i18next.mjs.map +1 -1
  344. package/dist/esm/messageFormat/index.mjs +5 -1
  345. package/dist/esm/messageFormat/verify-icu-format.mjs +64 -2
  346. package/dist/esm/messageFormat/verify-icu-format.mjs.map +1 -1
  347. package/dist/esm/messageFormat/vue-i18n.mjs +177 -1
  348. package/dist/esm/messageFormat/vue-i18n.mjs.map +1 -1
  349. package/dist/esm/transpiler/condition/condition.mjs +24 -1
  350. package/dist/esm/transpiler/condition/condition.mjs.map +1 -1
  351. package/dist/esm/transpiler/condition/index.mjs +3 -1
  352. package/dist/esm/transpiler/enumeration/enumeration.mjs +26 -1
  353. package/dist/esm/transpiler/enumeration/enumeration.mjs.map +1 -1
  354. package/dist/esm/transpiler/enumeration/index.mjs +3 -1
  355. package/dist/esm/transpiler/file/file.mjs +48 -1
  356. package/dist/esm/transpiler/file/file.mjs.map +1 -1
  357. package/dist/esm/transpiler/file/fileBrowser.mjs +22 -1
  358. package/dist/esm/transpiler/file/fileBrowser.mjs.map +1 -1
  359. package/dist/esm/transpiler/file/index.mjs +3 -1
  360. package/dist/esm/transpiler/gender/gender.mjs +24 -1
  361. package/dist/esm/transpiler/gender/gender.mjs.map +1 -1
  362. package/dist/esm/transpiler/gender/index.mjs +3 -1
  363. package/dist/esm/transpiler/html/getHTMLCustomComponents.mjs +44 -1
  364. package/dist/esm/transpiler/html/getHTMLCustomComponents.mjs.map +1 -0
  365. package/dist/esm/transpiler/html/html.mjs +42 -1
  366. package/dist/esm/transpiler/html/html.mjs.map +1 -0
  367. package/dist/esm/transpiler/html/htmlTags.mjs +114 -1
  368. package/dist/esm/transpiler/html/htmlTags.mjs.map +1 -1
  369. package/dist/esm/transpiler/html/index.mjs +5 -1
  370. package/dist/esm/transpiler/html/validateHTML.mjs +62 -1
  371. package/dist/esm/transpiler/html/validateHTML.mjs.map +1 -1
  372. package/dist/esm/transpiler/index.mjs +15 -1
  373. package/dist/esm/transpiler/insertion/getInsertionValues.mjs +9 -1
  374. package/dist/esm/transpiler/insertion/getInsertionValues.mjs.map +1 -1
  375. package/dist/esm/transpiler/insertion/index.mjs +4 -1
  376. package/dist/esm/transpiler/insertion/insertion.mjs +34 -1
  377. package/dist/esm/transpiler/insertion/insertion.mjs.map +1 -1
  378. package/dist/esm/transpiler/markdown/getMarkdownMetadata.mjs +22 -2
  379. package/dist/esm/transpiler/markdown/getMarkdownMetadata.mjs.map +1 -1
  380. package/dist/esm/transpiler/markdown/index.mjs +5 -1
  381. package/dist/esm/transpiler/markdown/markdown.mjs +60 -1
  382. package/dist/esm/transpiler/markdown/markdown.mjs.map +1 -1
  383. package/dist/esm/transpiler/markdown/validateMarkdown.mjs +73 -4
  384. package/dist/esm/transpiler/markdown/validateMarkdown.mjs.map +1 -1
  385. package/dist/esm/transpiler/nesting/index.mjs +3 -1
  386. package/dist/esm/transpiler/nesting/nesting.mjs +25 -1
  387. package/dist/esm/transpiler/nesting/nesting.mjs.map +1 -1
  388. package/dist/esm/transpiler/translation/index.mjs +3 -1
  389. package/dist/esm/transpiler/translation/translation.mjs +27 -1
  390. package/dist/esm/transpiler/translation/translation.mjs.map +1 -1
  391. package/dist/esm/utils/checkIsURLAbsolute.mjs +5 -1
  392. package/dist/esm/utils/checkIsURLAbsolute.mjs.map +1 -1
  393. package/dist/esm/utils/getCookie.mjs +30 -1
  394. package/dist/esm/utils/getCookie.mjs.map +1 -1
  395. package/dist/esm/utils/index.mjs +9 -1
  396. package/dist/esm/utils/intl.mjs +86 -1
  397. package/dist/esm/utils/intl.mjs.map +1 -1
  398. package/dist/esm/utils/isSameKeyPath.mjs +5 -1
  399. package/dist/esm/utils/isSameKeyPath.mjs.map +1 -1
  400. package/dist/esm/utils/isValidReactElement.mjs +12 -1
  401. package/dist/esm/utils/isValidReactElement.mjs.map +1 -1
  402. package/dist/esm/utils/localeStorage.mjs +135 -1
  403. package/dist/esm/utils/localeStorage.mjs.map +1 -1
  404. package/dist/esm/utils/parseYaml.mjs +320 -16
  405. package/dist/esm/utils/parseYaml.mjs.map +1 -1
  406. package/dist/types/deepTransformPlugins/getFilterMissingTranslationsContent.d.ts +50 -2
  407. package/dist/types/deepTransformPlugins/getFilterMissingTranslationsContent.d.ts.map +1 -0
  408. package/dist/types/deepTransformPlugins/getFilterTranslationsOnlyContent.d.ts +42 -2
  409. package/dist/types/deepTransformPlugins/getFilterTranslationsOnlyContent.d.ts.map +1 -0
  410. package/dist/types/deepTransformPlugins/getFilteredLocalesContent.d.ts +34 -2
  411. package/dist/types/deepTransformPlugins/getFilteredLocalesContent.d.ts.map +1 -0
  412. package/dist/types/deepTransformPlugins/getLocalizedContent.d.ts +18 -2
  413. package/dist/types/deepTransformPlugins/getLocalizedContent.d.ts.map +1 -0
  414. package/dist/types/deepTransformPlugins/getMaskContent.d.ts +10 -2
  415. package/dist/types/deepTransformPlugins/getMaskContent.d.ts.map +1 -0
  416. package/dist/types/deepTransformPlugins/getMissingLocalesContent.d.ts +19 -2
  417. package/dist/types/deepTransformPlugins/getMissingLocalesContent.d.ts.map +1 -0
  418. package/dist/types/deepTransformPlugins/getMultilingualDictionary.d.ts +32 -2
  419. package/dist/types/deepTransformPlugins/getMultilingualDictionary.d.ts.map +1 -0
  420. package/dist/types/deepTransformPlugins/getReplacedValuesContent.d.ts +8 -2
  421. package/dist/types/deepTransformPlugins/getReplacedValuesContent.d.ts.map +1 -0
  422. package/dist/types/deepTransformPlugins/getSplittedContent.d.ts +43 -2
  423. package/dist/types/deepTransformPlugins/getSplittedContent.d.ts.map +1 -0
  424. package/dist/types/deepTransformPlugins/index.d.ts +10 -10
  425. package/dist/types/deepTransformPlugins/insertContentInDictionary.d.ts +25 -2
  426. package/dist/types/deepTransformPlugins/insertContentInDictionary.d.ts.map +1 -0
  427. package/dist/types/dictionaryManipulator/editDictionaryByKeyPath.d.ts +8 -2
  428. package/dist/types/dictionaryManipulator/editDictionaryByKeyPath.d.ts.map +1 -0
  429. package/dist/types/dictionaryManipulator/getContentNodeByKeyPath.d.ts +9 -2
  430. package/dist/types/dictionaryManipulator/getContentNodeByKeyPath.d.ts.map +1 -0
  431. package/dist/types/dictionaryManipulator/getDefaultNode.d.ts +9 -2
  432. package/dist/types/dictionaryManipulator/getDefaultNode.d.ts.map +1 -0
  433. package/dist/types/dictionaryManipulator/getEmptyNode.d.ts +7 -2
  434. package/dist/types/dictionaryManipulator/getEmptyNode.d.ts.map +1 -0
  435. package/dist/types/dictionaryManipulator/getNodeChildren.d.ts +7 -2
  436. package/dist/types/dictionaryManipulator/getNodeChildren.d.ts.map +1 -0
  437. package/dist/types/dictionaryManipulator/getNodeType.d.ts +8 -2
  438. package/dist/types/dictionaryManipulator/getNodeType.d.ts.map +1 -0
  439. package/dist/types/dictionaryManipulator/index.d.ts +12 -12
  440. package/dist/types/dictionaryManipulator/mergeDictionaries.d.ts +7 -2
  441. package/dist/types/dictionaryManipulator/mergeDictionaries.d.ts.map +1 -0
  442. package/dist/types/dictionaryManipulator/normalizeDictionary.d.ts +9 -2
  443. package/dist/types/dictionaryManipulator/normalizeDictionary.d.ts.map +1 -0
  444. package/dist/types/dictionaryManipulator/orderDictionaries.d.ts +15 -2
  445. package/dist/types/dictionaryManipulator/orderDictionaries.d.ts.map +1 -0
  446. package/dist/types/dictionaryManipulator/removeContentNodeByKeyPath.d.ts +8 -2
  447. package/dist/types/dictionaryManipulator/removeContentNodeByKeyPath.d.ts.map +1 -0
  448. package/dist/types/dictionaryManipulator/renameContentNodeByKeyPath.d.ts +8 -2
  449. package/dist/types/dictionaryManipulator/renameContentNodeByKeyPath.d.ts.map +1 -0
  450. package/dist/types/dictionaryManipulator/updateNodeChildren.d.ts +7 -2
  451. package/dist/types/dictionaryManipulator/updateNodeChildren.d.ts.map +1 -0
  452. package/dist/types/formatters/compact.d.ts +20 -2
  453. package/dist/types/formatters/compact.d.ts.map +1 -0
  454. package/dist/types/formatters/currency.d.ts +20 -2
  455. package/dist/types/formatters/currency.d.ts.map +1 -0
  456. package/dist/types/formatters/date.d.ts +20 -2
  457. package/dist/types/formatters/date.d.ts.map +1 -0
  458. package/dist/types/formatters/index.d.ts +9 -9
  459. package/dist/types/formatters/list.d.ts +30 -2
  460. package/dist/types/formatters/list.d.ts.map +1 -0
  461. package/dist/types/formatters/number.d.ts +18 -2
  462. package/dist/types/formatters/number.d.ts.map +1 -0
  463. package/dist/types/formatters/percentage.d.ts +18 -2
  464. package/dist/types/formatters/percentage.d.ts.map +1 -0
  465. package/dist/types/formatters/relativeTime.d.ts +21 -2
  466. package/dist/types/formatters/relativeTime.d.ts.map +1 -0
  467. package/dist/types/formatters/units.d.ts +16 -2
  468. package/dist/types/formatters/units.d.ts.map +1 -0
  469. package/dist/types/getStorageAttributes.d.ts +29 -2
  470. package/dist/types/getStorageAttributes.d.ts.map +1 -0
  471. package/dist/types/index.d.ts +88 -80
  472. package/dist/types/interpreter/getCondition.d.ts +22 -2
  473. package/dist/types/interpreter/getCondition.d.ts.map +1 -0
  474. package/dist/types/interpreter/getContent/deepTransform.d.ts +12 -2
  475. package/dist/types/interpreter/getContent/deepTransform.d.ts.map +1 -0
  476. package/dist/types/interpreter/getContent/getContent.d.ts +16 -2
  477. package/dist/types/interpreter/getContent/getContent.d.ts.map +1 -0
  478. package/dist/types/interpreter/getContent/index.d.ts +3 -1
  479. package/dist/types/interpreter/getContent/plugins.d.ts +152 -2
  480. package/dist/types/interpreter/getContent/plugins.d.ts.map +1 -0
  481. package/dist/types/interpreter/getDictionary.d.ts +17 -2
  482. package/dist/types/interpreter/getDictionary.d.ts.map +1 -0
  483. package/dist/types/interpreter/getEnumeration.d.ts +58 -2
  484. package/dist/types/interpreter/getEnumeration.d.ts.map +1 -0
  485. package/dist/types/interpreter/getGender.d.ts +1 -1
  486. package/dist/types/interpreter/getGender.d.ts.map +1 -1
  487. package/dist/types/interpreter/getHTML.d.ts +32 -2
  488. package/dist/types/interpreter/getHTML.d.ts.map +1 -0
  489. package/dist/types/interpreter/getInsertion.d.ts +1 -1
  490. package/dist/types/interpreter/getInsertion.d.ts.map +1 -1
  491. package/dist/types/interpreter/getIntlayer.d.ts +8 -2
  492. package/dist/types/interpreter/getIntlayer.d.ts.map +1 -0
  493. package/dist/types/interpreter/getNesting.d.ts +27 -2
  494. package/dist/types/interpreter/getNesting.d.ts.map +1 -0
  495. package/dist/types/interpreter/getTranslation.d.ts +30 -2
  496. package/dist/types/interpreter/getTranslation.d.ts.map +1 -0
  497. package/dist/types/interpreter/index.d.ts +11 -4
  498. package/dist/types/interpreter/splitAndJoinInsertion.d.ts +25 -2
  499. package/dist/types/interpreter/splitAndJoinInsertion.d.ts.map +1 -0
  500. package/dist/types/localization/getBrowserLocale.d.ts +35 -2
  501. package/dist/types/localization/getBrowserLocale.d.ts.map +1 -0
  502. package/dist/types/localization/getHTMLTextDir.d.ts +21 -2
  503. package/dist/types/localization/getHTMLTextDir.d.ts.map +1 -0
  504. package/dist/types/localization/getLocale.d.ts +11 -2
  505. package/dist/types/localization/getLocale.d.ts.map +1 -0
  506. package/dist/types/localization/getLocaleFromPath.d.ts +20 -2
  507. package/dist/types/localization/getLocaleFromPath.d.ts.map +1 -0
  508. package/dist/types/localization/getLocaleLang.d.ts +20 -2
  509. package/dist/types/localization/getLocaleLang.d.ts.map +1 -0
  510. package/dist/types/localization/getLocaleName.d.ts +7 -2
  511. package/dist/types/localization/getLocaleName.d.ts.map +1 -0
  512. package/dist/types/localization/getLocalizedUrl.d.ts +44 -2
  513. package/dist/types/localization/getLocalizedUrl.d.ts.map +1 -0
  514. package/dist/types/localization/getMultilingualUrls.d.ts +42 -2
  515. package/dist/types/localization/getMultilingualUrls.d.ts.map +1 -0
  516. package/dist/types/localization/getPathWithoutLocale.d.ts +31 -2
  517. package/dist/types/localization/getPathWithoutLocale.d.ts.map +1 -0
  518. package/dist/types/localization/getPrefix.d.ts +83 -2
  519. package/dist/types/localization/getPrefix.d.ts.map +1 -0
  520. package/dist/types/localization/index.d.ts +16 -16
  521. package/dist/types/localization/localeDetector.d.ts +18 -2
  522. package/dist/types/localization/localeDetector.d.ts.map +1 -0
  523. package/dist/types/localization/localeMapper.d.ts +92 -2
  524. package/dist/types/localization/localeMapper.d.ts.map +1 -0
  525. package/dist/types/localization/localeResolver.d.ts +12 -2
  526. package/dist/types/localization/localeResolver.d.ts.map +1 -0
  527. package/dist/types/localization/rewriteUtils.d.ts +34 -2
  528. package/dist/types/localization/rewriteUtils.d.ts.map +1 -0
  529. package/dist/types/localization/validatePrefix.d.ts +34 -2
  530. package/dist/types/localization/validatePrefix.d.ts.map +1 -0
  531. package/dist/types/markdown/compiler.d.ts +9 -2
  532. package/dist/types/markdown/compiler.d.ts.map +1 -0
  533. package/dist/types/markdown/constants.d.ts +177 -2
  534. package/dist/types/markdown/constants.d.ts.map +1 -0
  535. package/dist/types/markdown/index.d.ts +10 -10
  536. package/dist/types/markdown/parser.d.ts +16 -2
  537. package/dist/types/markdown/parser.d.ts.map +1 -0
  538. package/dist/types/markdown/renderer.d.ts +22 -2
  539. package/dist/types/markdown/renderer.d.ts.map +1 -0
  540. package/dist/types/markdown/types.d.ts +333 -2
  541. package/dist/types/markdown/types.d.ts.map +1 -0
  542. package/dist/types/markdown/utils.d.ts +140 -2
  543. package/dist/types/markdown/utils.d.ts.map +1 -0
  544. package/dist/types/messageFormat/ICU.d.ts +11 -2
  545. package/dist/types/messageFormat/ICU.d.ts.map +1 -0
  546. package/dist/types/messageFormat/i18next.d.ts +9 -2
  547. package/dist/types/messageFormat/i18next.d.ts.map +1 -0
  548. package/dist/types/messageFormat/index.d.ts +3 -3
  549. package/dist/types/messageFormat/vue-i18n.d.ts +9 -2
  550. package/dist/types/messageFormat/vue-i18n.d.ts.map +1 -0
  551. package/dist/types/transpiler/condition/condition.d.ts +28 -2
  552. package/dist/types/transpiler/condition/condition.d.ts.map +1 -0
  553. package/dist/types/transpiler/condition/index.d.ts +1 -1
  554. package/dist/types/transpiler/enumeration/enumeration.d.ts +40 -2
  555. package/dist/types/transpiler/enumeration/enumeration.d.ts.map +1 -0
  556. package/dist/types/transpiler/enumeration/index.d.ts +1 -1
  557. package/dist/types/transpiler/file/file.d.ts +28 -2
  558. package/dist/types/transpiler/file/file.d.ts.map +1 -0
  559. package/dist/types/transpiler/file/fileBrowser.d.ts +1 -1
  560. package/dist/types/transpiler/file/index.d.ts +1 -1
  561. package/dist/types/transpiler/gender/gender.d.ts +29 -2
  562. package/dist/types/transpiler/gender/gender.d.ts.map +1 -0
  563. package/dist/types/transpiler/gender/index.d.ts +1 -1
  564. package/dist/types/transpiler/html/html.d.ts +25 -2
  565. package/dist/types/transpiler/html/html.d.ts.map +1 -0
  566. package/dist/types/transpiler/html/htmlTags.d.ts +115 -2
  567. package/dist/types/transpiler/html/htmlTags.d.ts.map +1 -0
  568. package/dist/types/transpiler/html/index.d.ts +3 -3
  569. package/dist/types/transpiler/html/validateHTML.d.ts +21 -2
  570. package/dist/types/transpiler/html/validateHTML.d.ts.map +1 -0
  571. package/dist/types/transpiler/index.d.ts +15 -15
  572. package/dist/types/transpiler/insertion/getInsertionValues.d.ts +5 -2
  573. package/dist/types/transpiler/insertion/getInsertionValues.d.ts.map +1 -0
  574. package/dist/types/transpiler/insertion/index.d.ts +2 -2
  575. package/dist/types/transpiler/insertion/insertion.d.ts +23 -2
  576. package/dist/types/transpiler/insertion/insertion.d.ts.map +1 -0
  577. package/dist/types/transpiler/markdown/getMarkdownMetadata.d.ts +5 -2
  578. package/dist/types/transpiler/markdown/getMarkdownMetadata.d.ts.map +1 -0
  579. package/dist/types/transpiler/markdown/index.d.ts +4 -4
  580. package/dist/types/transpiler/markdown/markdown.d.ts +26 -2
  581. package/dist/types/transpiler/markdown/markdown.d.ts.map +1 -0
  582. package/dist/types/transpiler/markdown/validateMarkdown.d.ts +18 -3
  583. package/dist/types/transpiler/markdown/validateMarkdown.d.ts.map +1 -0
  584. package/dist/types/transpiler/nesting/index.d.ts +1 -1
  585. package/dist/types/transpiler/nesting/nesting.d.ts +49 -2
  586. package/dist/types/transpiler/nesting/nesting.d.ts.map +1 -0
  587. package/dist/types/transpiler/translation/index.d.ts +1 -1
  588. package/dist/types/transpiler/translation/translation.d.ts +33 -2
  589. package/dist/types/transpiler/translation/translation.d.ts.map +1 -0
  590. package/dist/types/utils/checkIsURLAbsolute.d.ts +5 -2
  591. package/dist/types/utils/checkIsURLAbsolute.d.ts.map +1 -0
  592. package/dist/types/utils/getCookie.d.ts +11 -2
  593. package/dist/types/utils/getCookie.d.ts.map +1 -0
  594. package/dist/types/utils/index.d.ts +7 -7
  595. package/dist/types/utils/intl.d.ts +33 -2
  596. package/dist/types/utils/intl.d.ts.map +1 -0
  597. package/dist/types/utils/isSameKeyPath.d.ts +7 -2
  598. package/dist/types/utils/isSameKeyPath.d.ts.map +1 -0
  599. package/dist/types/utils/isValidReactElement.d.ts +12 -2
  600. package/dist/types/utils/isValidReactElement.d.ts.map +1 -0
  601. package/dist/types/utils/localeStorage.d.ts +108 -2
  602. package/dist/types/utils/localeStorage.d.ts.map +1 -0
  603. package/dist/types/utils/parseYaml.d.ts +5 -2
  604. package/dist/types/utils/parseYaml.d.ts.map +1 -0
  605. package/package.json +6 -6
  606. package/dist/cjs/chunk-Bmb41Sf3.cjs +0 -1
  607. package/dist/cjs/getContent-DrqM8pqO.cjs +0 -2
  608. package/dist/cjs/getContent-DrqM8pqO.cjs.map +0 -1
  609. package/dist/cjs/html-CZ1N-VL0.cjs +0 -2
  610. package/dist/cjs/html-CZ1N-VL0.cjs.map +0 -1
  611. package/dist/esm/getContent-DKqtIZGL.mjs +0 -2
  612. package/dist/esm/getContent-DKqtIZGL.mjs.map +0 -1
  613. package/dist/esm/html-3bo80xzx.mjs +0 -2
  614. package/dist/esm/html-3bo80xzx.mjs.map +0 -1
  615. package/dist/types/ICU-tA3ZHN5U.d.ts +0 -11
  616. package/dist/types/ICU-tA3ZHN5U.d.ts.map +0 -1
  617. package/dist/types/checkIsURLAbsolute-CTf3JFU6.d.ts +0 -5
  618. package/dist/types/checkIsURLAbsolute-CTf3JFU6.d.ts.map +0 -1
  619. package/dist/types/compact-IHXcM4pT.d.ts +0 -20
  620. package/dist/types/compact-IHXcM4pT.d.ts.map +0 -1
  621. package/dist/types/compiler-DFiAsUdH.d.ts +0 -9
  622. package/dist/types/compiler-DFiAsUdH.d.ts.map +0 -1
  623. package/dist/types/condition-BDUtoh_1.d.ts +0 -28
  624. package/dist/types/condition-BDUtoh_1.d.ts.map +0 -1
  625. package/dist/types/constants-CI_D82B1.d.ts +0 -177
  626. package/dist/types/constants-CI_D82B1.d.ts.map +0 -1
  627. package/dist/types/currency-PbMCnHep.d.ts +0 -20
  628. package/dist/types/currency-PbMCnHep.d.ts.map +0 -1
  629. package/dist/types/date-C-PI8KqU.d.ts +0 -20
  630. package/dist/types/date-C-PI8KqU.d.ts.map +0 -1
  631. package/dist/types/editDictionaryByKeyPath-BYIHcsyf.d.ts +0 -8
  632. package/dist/types/editDictionaryByKeyPath-BYIHcsyf.d.ts.map +0 -1
  633. package/dist/types/enumeration-CtuvB5Zz.d.ts +0 -40
  634. package/dist/types/enumeration-CtuvB5Zz.d.ts.map +0 -1
  635. package/dist/types/file-C3q8xvQb.d.ts +0 -28
  636. package/dist/types/file-C3q8xvQb.d.ts.map +0 -1
  637. package/dist/types/gender-Dd39Ijmf.d.ts +0 -29
  638. package/dist/types/gender-Dd39Ijmf.d.ts.map +0 -1
  639. package/dist/types/getBrowserLocale-RD_Mwv1t.d.ts +0 -35
  640. package/dist/types/getBrowserLocale-RD_Mwv1t.d.ts.map +0 -1
  641. package/dist/types/getContentNodeByKeyPath-B0Tdi5mj.d.ts +0 -9
  642. package/dist/types/getContentNodeByKeyPath-B0Tdi5mj.d.ts.map +0 -1
  643. package/dist/types/getCookie-DPOvVv_h.d.ts +0 -11
  644. package/dist/types/getCookie-DPOvVv_h.d.ts.map +0 -1
  645. package/dist/types/getDefaultNode-DQNsje2D.d.ts +0 -9
  646. package/dist/types/getDefaultNode-DQNsje2D.d.ts.map +0 -1
  647. package/dist/types/getEmptyNode-DW27TTBj.d.ts +0 -7
  648. package/dist/types/getEmptyNode-DW27TTBj.d.ts.map +0 -1
  649. package/dist/types/getFilterMissingTranslationsContent-CDNQqoy1.d.ts +0 -50
  650. package/dist/types/getFilterMissingTranslationsContent-CDNQqoy1.d.ts.map +0 -1
  651. package/dist/types/getFilterTranslationsOnlyContent-D2YgBkHn.d.ts +0 -42
  652. package/dist/types/getFilterTranslationsOnlyContent-D2YgBkHn.d.ts.map +0 -1
  653. package/dist/types/getFilteredLocalesContent-D0GP-uEg.d.ts +0 -34
  654. package/dist/types/getFilteredLocalesContent-D0GP-uEg.d.ts.map +0 -1
  655. package/dist/types/getHTML-CP6OXtdo.d.ts +0 -32
  656. package/dist/types/getHTML-CP6OXtdo.d.ts.map +0 -1
  657. package/dist/types/getHTMLTextDir-4Zh8J3x7.d.ts +0 -21
  658. package/dist/types/getHTMLTextDir-4Zh8J3x7.d.ts.map +0 -1
  659. package/dist/types/getInsertionValues-Cu9IdbuE.d.ts +0 -5
  660. package/dist/types/getInsertionValues-Cu9IdbuE.d.ts.map +0 -1
  661. package/dist/types/getLocale-B9dECUM_.d.ts +0 -11
  662. package/dist/types/getLocale-B9dECUM_.d.ts.map +0 -1
  663. package/dist/types/getLocaleFromPath-621W32QA.d.ts +0 -26
  664. package/dist/types/getLocaleFromPath-621W32QA.d.ts.map +0 -1
  665. package/dist/types/getLocaleLang-Bcan1gS4.d.ts +0 -20
  666. package/dist/types/getLocaleLang-Bcan1gS4.d.ts.map +0 -1
  667. package/dist/types/getLocaleName-CfRAD9Hc.d.ts +0 -7
  668. package/dist/types/getLocaleName-CfRAD9Hc.d.ts.map +0 -1
  669. package/dist/types/getLocalizedContent-DOncZd-0.d.ts +0 -18
  670. package/dist/types/getLocalizedContent-DOncZd-0.d.ts.map +0 -1
  671. package/dist/types/getLocalizedUrl-BbqeA3-W.d.ts +0 -49
  672. package/dist/types/getLocalizedUrl-BbqeA3-W.d.ts.map +0 -1
  673. package/dist/types/getMarkdownMetadata-Bf1S1NQ0.d.ts +0 -5
  674. package/dist/types/getMarkdownMetadata-Bf1S1NQ0.d.ts.map +0 -1
  675. package/dist/types/getMaskContent-BwLFqp7v.d.ts +0 -10
  676. package/dist/types/getMaskContent-BwLFqp7v.d.ts.map +0 -1
  677. package/dist/types/getMissingLocalesContent-BYffYcdx.d.ts +0 -19
  678. package/dist/types/getMissingLocalesContent-BYffYcdx.d.ts.map +0 -1
  679. package/dist/types/getMultilingualDictionary-DO3i1MFs.d.ts +0 -32
  680. package/dist/types/getMultilingualDictionary-DO3i1MFs.d.ts.map +0 -1
  681. package/dist/types/getMultilingualUrls-CUxYYfA4.d.ts +0 -47
  682. package/dist/types/getMultilingualUrls-CUxYYfA4.d.ts.map +0 -1
  683. package/dist/types/getNodeChildren-OT7Liqke.d.ts +0 -7
  684. package/dist/types/getNodeChildren-OT7Liqke.d.ts.map +0 -1
  685. package/dist/types/getNodeType-Cp765I26.d.ts +0 -8
  686. package/dist/types/getNodeType-Cp765I26.d.ts.map +0 -1
  687. package/dist/types/getPathWithoutLocale-B_aIR7O0.d.ts +0 -31
  688. package/dist/types/getPathWithoutLocale-B_aIR7O0.d.ts.map +0 -1
  689. package/dist/types/getPrefix-X9XKkrZD.d.ts +0 -68
  690. package/dist/types/getPrefix-X9XKkrZD.d.ts.map +0 -1
  691. package/dist/types/getReplacedValuesContent-BvL25pdt.d.ts +0 -8
  692. package/dist/types/getReplacedValuesContent-BvL25pdt.d.ts.map +0 -1
  693. package/dist/types/getSplittedContent-YD4JDMfB.d.ts +0 -43
  694. package/dist/types/getSplittedContent-YD4JDMfB.d.ts.map +0 -1
  695. package/dist/types/getStorageAttributes-CIO2xWqQ.d.ts +0 -29
  696. package/dist/types/getStorageAttributes-CIO2xWqQ.d.ts.map +0 -1
  697. package/dist/types/getTranslation-BG2Wg-af.d.ts +0 -30
  698. package/dist/types/getTranslation-BG2Wg-af.d.ts.map +0 -1
  699. package/dist/types/html-Dn6KrpJ3.d.ts +0 -25
  700. package/dist/types/html-Dn6KrpJ3.d.ts.map +0 -1
  701. package/dist/types/htmlTags-YxTtVUx6.d.ts +0 -115
  702. package/dist/types/htmlTags-YxTtVUx6.d.ts.map +0 -1
  703. package/dist/types/i18next-qY0AixrB.d.ts +0 -9
  704. package/dist/types/i18next-qY0AixrB.d.ts.map +0 -1
  705. package/dist/types/index-1CTsSKEn.d.ts +0 -1
  706. package/dist/types/index-B8xF2zGo.d.ts +0 -1
  707. package/dist/types/index-BcsOTSQF.d.ts +0 -1
  708. package/dist/types/index-BnEeKNKW.d.ts +0 -322
  709. package/dist/types/index-BnEeKNKW.d.ts.map +0 -1
  710. package/dist/types/index-Cf8zm5QQ.d.ts +0 -1
  711. package/dist/types/index-CfvILin8.d.ts +0 -1
  712. package/dist/types/index-DK_kKFOF.d.ts +0 -1
  713. package/dist/types/index-DeJa0xZp.d.ts +0 -1
  714. package/dist/types/index-Vlqtiwjx.d.ts +0 -1
  715. package/dist/types/insertContentInDictionary-DZ3UzG4K.d.ts +0 -25
  716. package/dist/types/insertContentInDictionary-DZ3UzG4K.d.ts.map +0 -1
  717. package/dist/types/insertion-M5fwK-29.d.ts +0 -23
  718. package/dist/types/insertion-M5fwK-29.d.ts.map +0 -1
  719. package/dist/types/intl-B2Ap8I5x.d.ts +0 -33
  720. package/dist/types/intl-B2Ap8I5x.d.ts.map +0 -1
  721. package/dist/types/isSameKeyPath-CkH8NdJh.d.ts +0 -7
  722. package/dist/types/isSameKeyPath-CkH8NdJh.d.ts.map +0 -1
  723. package/dist/types/isValidReactElement-BsoJ01oP.d.ts +0 -12
  724. package/dist/types/isValidReactElement-BsoJ01oP.d.ts.map +0 -1
  725. package/dist/types/list-BdjJM2Gx.d.ts +0 -30
  726. package/dist/types/list-BdjJM2Gx.d.ts.map +0 -1
  727. package/dist/types/localeDetector-BWNCQRiZ.d.ts +0 -18
  728. package/dist/types/localeDetector-BWNCQRiZ.d.ts.map +0 -1
  729. package/dist/types/localeMapper-DoAnasqf.d.ts +0 -92
  730. package/dist/types/localeMapper-DoAnasqf.d.ts.map +0 -1
  731. package/dist/types/localeResolver-bb7AWQNX.d.ts +0 -12
  732. package/dist/types/localeResolver-bb7AWQNX.d.ts.map +0 -1
  733. package/dist/types/localeStorage-CZHwY0u3.d.ts +0 -108
  734. package/dist/types/localeStorage-CZHwY0u3.d.ts.map +0 -1
  735. package/dist/types/markdown-MzfikrI1.d.ts +0 -26
  736. package/dist/types/markdown-MzfikrI1.d.ts.map +0 -1
  737. package/dist/types/mergeDictionaries-D6WUMQN5.d.ts +0 -7
  738. package/dist/types/mergeDictionaries-D6WUMQN5.d.ts.map +0 -1
  739. package/dist/types/normalizeDictionary-coviIGTW.d.ts +0 -9
  740. package/dist/types/normalizeDictionary-coviIGTW.d.ts.map +0 -1
  741. package/dist/types/number-C8izkCmU.d.ts +0 -16
  742. package/dist/types/number-C8izkCmU.d.ts.map +0 -1
  743. package/dist/types/orderDictionaries-SSCMY6qG.d.ts +0 -15
  744. package/dist/types/orderDictionaries-SSCMY6qG.d.ts.map +0 -1
  745. package/dist/types/parseYaml-D5gxutvA.d.ts +0 -5
  746. package/dist/types/parseYaml-D5gxutvA.d.ts.map +0 -1
  747. package/dist/types/parser-BVwR6Tjw.d.ts +0 -16
  748. package/dist/types/parser-BVwR6Tjw.d.ts.map +0 -1
  749. package/dist/types/percentage-BqsvW0Zw.d.ts +0 -16
  750. package/dist/types/percentage-BqsvW0Zw.d.ts.map +0 -1
  751. package/dist/types/relativeTime-mJaYEq7H.d.ts +0 -11
  752. package/dist/types/relativeTime-mJaYEq7H.d.ts.map +0 -1
  753. package/dist/types/removeContentNodeByKeyPath-CotCOOsD.d.ts +0 -8
  754. package/dist/types/removeContentNodeByKeyPath-CotCOOsD.d.ts.map +0 -1
  755. package/dist/types/renameContentNodeByKeyPath-BuyH5gOr.d.ts +0 -8
  756. package/dist/types/renameContentNodeByKeyPath-BuyH5gOr.d.ts.map +0 -1
  757. package/dist/types/renderer-C06x2Orf.d.ts +0 -22
  758. package/dist/types/renderer-C06x2Orf.d.ts.map +0 -1
  759. package/dist/types/rewriteUtils-Bd82NiGR.d.ts +0 -34
  760. package/dist/types/rewriteUtils-Bd82NiGR.d.ts.map +0 -1
  761. package/dist/types/splitAndJoinInsertion-bkuLa7o2.d.ts +0 -25
  762. package/dist/types/splitAndJoinInsertion-bkuLa7o2.d.ts.map +0 -1
  763. package/dist/types/translation-CiC-Avxc.d.ts +0 -33
  764. package/dist/types/translation-CiC-Avxc.d.ts.map +0 -1
  765. package/dist/types/types-C2Om0aEM.d.ts +0 -333
  766. package/dist/types/types-C2Om0aEM.d.ts.map +0 -1
  767. package/dist/types/units-CouGqa8j.d.ts +0 -16
  768. package/dist/types/units-CouGqa8j.d.ts.map +0 -1
  769. package/dist/types/updateNodeChildren-B5Tu1UBZ.d.ts +0 -7
  770. package/dist/types/updateNodeChildren-B5Tu1UBZ.d.ts.map +0 -1
  771. package/dist/types/utils-Dcmgh_80.d.ts +0 -140
  772. package/dist/types/utils-Dcmgh_80.d.ts.map +0 -1
  773. package/dist/types/validateHTML-U7UKTtFd.d.ts +0 -21
  774. package/dist/types/validateHTML-U7UKTtFd.d.ts.map +0 -1
  775. package/dist/types/validateMarkdown-BUaTDDIu.d.ts +0 -18
  776. package/dist/types/validateMarkdown-BUaTDDIu.d.ts.map +0 -1
  777. package/dist/types/validatePrefix-Dtmg7QLq.d.ts +0 -38
  778. package/dist/types/validatePrefix-Dtmg7QLq.d.ts.map +0 -1
  779. package/dist/types/vue-i18n-JtUB7N_m.d.ts +0 -9
  780. package/dist/types/vue-i18n-JtUB7N_m.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"deepTransform.mjs","names":[],"sources":["../../../../src/interpreter/getContent/deepTransform.ts"],"sourcesContent":["import type { KeyPath } from '@intlayer/types/keyPath';\nimport { NodeType } from '@intlayer/types/nodeType';\nimport type { NodeProps } from './plugins';\n\n/**\n * Recursively traverses a node (object/array/primitive).\n * Applies the *first* plugin that can transform a node, then stops descending further.\n * If no plugin transforms it, it recurses into its children.\n */\nexport const deepTransformNode = (node: any, props: NodeProps): any => {\n // Otherwise, if it's an object, check if any plugin can handle it:\n for (const plugin of props.plugins ?? []) {\n if (plugin.canHandle(node)) {\n // Return the transformed node => do NOT recurse further\n return plugin.transform(node, props, (node: any, props: any) =>\n deepTransformNode(node, props)\n );\n }\n }\n\n // If it's null/undefined or not an object, just return it directly:\n if (node === null || typeof node !== 'object') {\n return node;\n }\n\n // If it's a framework-specific virtual node or already a transformed Proxy,\n // return it directly to avoid re-transforming its internal properties.\n if (\n (node as any).$$typeof !== undefined ||\n (node as any).__v_isVNode !== undefined ||\n (node as any)._isVNode !== undefined ||\n (node as any).isJSX !== undefined ||\n typeof node === 'function' // Proxies for html/markdown are functions\n ) {\n return node;\n }\n\n // If it's an array, transform each element:\n if (Array.isArray(node)) {\n return node.map((child, index) => {\n const childProps = {\n ...props,\n children: child,\n keyPath: [\n ...props.keyPath,\n { type: NodeType.Array, key: index } as KeyPath,\n ],\n };\n return deepTransformNode(child, childProps);\n });\n }\n\n // If no plugin transforms it, we keep traversing its properties.\n const result: Record<string, any> = {};\n for (const key in node) {\n const childProps = {\n ...props,\n children: node[key],\n keyPath: [...props.keyPath, { type: NodeType.Object, key } as KeyPath],\n };\n result[key] = deepTransformNode(node[key], childProps);\n }\n\n return result;\n};\n"],"mappings":"oDASA,MAAa,GAAqB,EAAW,IAA0B,CAErE,IAAK,IAAM,KAAU,EAAM,SAAW,EAAE,CACtC,GAAI,EAAO,UAAU,EAAK,CAExB,OAAO,EAAO,UAAU,EAAM,GAAQ,EAAW,IAC/C,EAAkB,EAAM,EAAM,CAC/B,CAWL,GANqB,OAAO,GAAS,WAAjC,GAOD,EAAa,WAAa,IAAA,IAC1B,EAAa,cAAgB,IAAA,IAC7B,EAAa,WAAa,IAAA,IAC1B,EAAa,QAAU,IAAA,IACxB,OAAO,GAAS,WAEhB,OAAO,EAIT,GAAI,MAAM,QAAQ,EAAK,CACrB,OAAO,EAAK,KAAK,EAAO,IASf,EAAkB,EARN,CACjB,GAAG,EACH,SAAU,EACV,QAAS,CACP,GAAG,EAAM,QACT,CAAE,KAAM,EAAS,MAAO,IAAK,EAAO,CACrC,CACF,CAC0C,CAC3C,CAIJ,IAAM,EAA8B,EAAE,CACtC,IAAK,IAAM,KAAO,EAAM,CACtB,IAAM,EAAa,CACjB,GAAG,EACH,SAAU,EAAK,GACf,QAAS,CAAC,GAAG,EAAM,QAAS,CAAE,KAAM,EAAS,OAAQ,MAAK,CAAY,CACvE,CACD,EAAO,GAAO,EAAkB,EAAK,GAAM,EAAW,CAGxD,OAAO"}
1
+ {"version":3,"file":"deepTransform.mjs","names":[],"sources":["../../../../src/interpreter/getContent/deepTransform.ts"],"sourcesContent":["import type { KeyPath } from '@intlayer/types/keyPath';\nimport * as NodeTypes from '@intlayer/types/nodeType';\nimport type { NodeProps } from './plugins';\n\n/**\n * Recursively traverses a node (object/array/primitive).\n * Applies the *first* plugin that can transform a node, then stops descending further.\n * If no plugin transforms it, it recurses into its children.\n */\nexport const deepTransformNode = (node: any, props: NodeProps): any => {\n // Otherwise, if it's an object, check if any plugin can handle it:\n for (const plugin of props.plugins ?? []) {\n if (plugin.canHandle(node)) {\n // Return the transformed node => do NOT recurse further\n return plugin.transform(node, props, (node: any, props: any) =>\n deepTransformNode(node, props)\n );\n }\n }\n\n // If it's null/undefined or not an object, just return it directly:\n if (node === null || typeof node !== 'object') {\n return node;\n }\n\n // If it's a framework-specific virtual node or already a transformed Proxy,\n // return it directly to avoid re-transforming its internal properties.\n if (\n (node as any).$$typeof !== undefined ||\n (node as any).__v_isVNode !== undefined ||\n (node as any)._isVNode !== undefined ||\n (node as any).isJSX !== undefined ||\n typeof node === 'function' // Proxies for html/markdown are functions\n ) {\n return node;\n }\n\n // If it's an array, transform each element:\n if (Array.isArray(node)) {\n return node.map((child, index) => {\n const childProps = {\n ...props,\n children: child,\n keyPath: [\n ...props.keyPath,\n { type: NodeTypes.ARRAY, key: index } as KeyPath,\n ],\n };\n return deepTransformNode(child, childProps);\n });\n }\n\n // If no plugin transforms it, we keep traversing its properties.\n const result: Record<string, any> = {};\n for (const key in node) {\n const childProps = {\n ...props,\n children: node[key],\n keyPath: [...props.keyPath, { type: NodeTypes.OBJECT, key } as KeyPath],\n };\n result[key] = deepTransformNode(node[key], childProps);\n }\n\n return result;\n};\n"],"mappings":";;;;;;;;AASA,MAAa,qBAAqB,MAAW,UAA0B;AAErE,MAAK,MAAM,UAAU,MAAM,WAAW,EAAE,CACtC,KAAI,OAAO,UAAU,KAAK,CAExB,QAAO,OAAO,UAAU,MAAM,QAAQ,MAAW,UAC/C,kBAAkB,MAAM,MAAM,CAC/B;AAKL,KAAI,SAAS,QAAQ,OAAO,SAAS,SACnC,QAAO;AAKT,KACG,KAAa,aAAa,UAC1B,KAAa,gBAAgB,UAC7B,KAAa,aAAa,UAC1B,KAAa,UAAU,UACxB,OAAO,SAAS,WAEhB,QAAO;AAIT,KAAI,MAAM,QAAQ,KAAK,CACrB,QAAO,KAAK,KAAK,OAAO,UAAU;AAShC,SAAO,kBAAkB,OARN;GACjB,GAAG;GACH,UAAU;GACV,SAAS,CACP,GAAG,MAAM,SACT;IAAE,MAAM,UAAU;IAAO,KAAK;IAAO,CACtC;GACF,CAC0C;GAC3C;CAIJ,MAAM,SAA8B,EAAE;AACtC,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,aAAa;GACjB,GAAG;GACH,UAAU,KAAK;GACf,SAAS,CAAC,GAAG,MAAM,SAAS;IAAE,MAAM,UAAU;IAAQ;IAAK,CAAY;GACxE;AACD,SAAO,OAAO,kBAAkB,KAAK,MAAM,WAAW;;AAGxD,QAAO"}
@@ -1 +1,28 @@
1
- import{n as e,t}from"../../getContent-DKqtIZGL.mjs";export{t as getBasePlugins,e as getContent};
1
+ import { deepTransformNode } from "./deepTransform.mjs";
2
+ import { conditionPlugin, enumerationPlugin, filePlugin, genderPlugin, insertionPlugin, nestedPlugin, translationPlugin } from "./plugins.mjs";
3
+ import configuration from "@intlayer/config/built";
4
+
5
+ //#region src/interpreter/getContent/getContent.ts
6
+ const getBasePlugins = (locale, fallback = true) => [
7
+ translationPlugin(locale ?? configuration.internationalization.defaultLocale, fallback ? configuration.internationalization.defaultLocale : void 0),
8
+ enumerationPlugin,
9
+ conditionPlugin,
10
+ insertionPlugin,
11
+ nestedPlugin(locale ?? configuration.internationalization.defaultLocale),
12
+ filePlugin,
13
+ genderPlugin
14
+ ];
15
+ /**
16
+ * Transforms a node in a single pass, applying each plugin as needed.
17
+ *
18
+ * @param node The node to transform.
19
+ * @param locale The locale to use if your transformers need it (e.g. for translations).
20
+ */
21
+ const getContent = (node, nodeProps, plugins = []) => deepTransformNode(node, {
22
+ ...nodeProps,
23
+ plugins
24
+ });
25
+
26
+ //#endregion
27
+ export { getBasePlugins, getContent };
28
+ //# sourceMappingURL=getContent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getContent.mjs","names":[],"sources":["../../../../src/interpreter/getContent/getContent.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { ContentNode } from '@intlayer/types/dictionary';\nimport type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { deepTransformNode } from './deepTransform';\nimport {\n conditionPlugin,\n type DeepTransformContent,\n enumerationPlugin,\n filePlugin,\n genderPlugin,\n type IInterpreterPluginState,\n insertionPlugin,\n type NodeProps,\n nestedPlugin,\n type Plugins,\n translationPlugin,\n} from './plugins';\n\nexport const getBasePlugins = (\n locale?: LocalesValues,\n fallback: boolean = true\n): Plugins[] => [\n translationPlugin(\n locale ?? configuration.internationalization.defaultLocale,\n fallback ? configuration.internationalization.defaultLocale : undefined\n ),\n enumerationPlugin,\n conditionPlugin,\n insertionPlugin,\n nestedPlugin(locale ?? configuration.internationalization.defaultLocale),\n filePlugin,\n genderPlugin,\n];\n\n/**\n * Transforms a node in a single pass, applying each plugin as needed.\n *\n * @param node The node to transform.\n * @param locale The locale to use if your transformers need it (e.g. for translations).\n */\nexport const getContent = <\n T extends ContentNode,\n L extends LocalesValues = DeclaredLocales,\n>(\n node: T,\n nodeProps: NodeProps,\n plugins: Plugins[] = []\n) =>\n deepTransformNode(node, {\n ...nodeProps,\n plugins,\n }) as DeepTransformContent<T, IInterpreterPluginState, L>;\n"],"mappings":";;;;;AAqBA,MAAa,kBACX,QACA,WAAoB,SACN;CACd,kBACE,UAAU,cAAc,qBAAqB,eAC7C,WAAW,cAAc,qBAAqB,gBAAgB,OAC/D;CACD;CACA;CACA;CACA,aAAa,UAAU,cAAc,qBAAqB,cAAc;CACxE;CACA;CACD;;;;;;;AAQD,MAAa,cAIX,MACA,WACA,UAAqB,EAAE,KAEvB,kBAAkB,MAAM;CACtB,GAAG;CACH;CACD,CAAC"}
@@ -1 +1,5 @@
1
- import{deepTransformNode as e}from"./deepTransform.mjs";import{a as t,c as n,i as r,l as i,n as a,o,r as s,s as c,t as l}from"../../getContent-DKqtIZGL.mjs";export{s as conditionPlugin,e as deepTransformNode,r as enumerationPlugin,t as filePlugin,o as genderPlugin,l as getBasePlugins,a as getContent,c as insertionPlugin,n as nestedPlugin,i as translationPlugin};
1
+ import { deepTransformNode } from "./deepTransform.mjs";
2
+ import { conditionPlugin, enumerationPlugin, filePlugin, genderPlugin, insertionPlugin, nestedPlugin, translationPlugin } from "./plugins.mjs";
3
+ import { getBasePlugins, getContent } from "./getContent.mjs";
4
+
5
+ export { conditionPlugin, deepTransformNode, enumerationPlugin, filePlugin, genderPlugin, getBasePlugins, getContent, insertionPlugin, nestedPlugin, translationPlugin };
@@ -1 +1,154 @@
1
- import{a as e,c as t,i as n,l as r,o as i,r as a,s as o}from"../../getContent-DKqtIZGL.mjs";export{a as conditionPlugin,n as enumerationPlugin,e as filePlugin,i as genderPlugin,o as insertionPlugin,t as nestedPlugin,r as translationPlugin};
1
+ import { getCondition } from "../getCondition.mjs";
2
+ import { getEnumeration } from "../getEnumeration.mjs";
3
+ import { getGender } from "../getGender.mjs";
4
+ import { getInsertion } from "../getInsertion.mjs";
5
+ import { getNesting } from "../getNesting.mjs";
6
+ import { getTranslation } from "../getTranslation.mjs";
7
+ import * as NodeTypes from "@intlayer/types/nodeType";
8
+
9
+ //#region src/interpreter/getContent/plugins.ts
10
+ /** Translation plugin. Replaces node with a locale string if nodeType = Translation. */
11
+ const translationPlugin = (locale, fallback) => ({
12
+ id: "translation-plugin",
13
+ canHandle: (node) => typeof node === "object" && node?.nodeType === NodeTypes.TRANSLATION,
14
+ transform: (node, props, deepTransformNode) => {
15
+ const result = { ...node[NodeTypes.TRANSLATION] ?? {} };
16
+ for (const key in result) {
17
+ const childProps = {
18
+ ...props,
19
+ children: result[key],
20
+ keyPath: [...props.keyPath, {
21
+ type: NodeTypes.TRANSLATION,
22
+ key
23
+ }]
24
+ };
25
+ result[key] = deepTransformNode(result[key], childProps);
26
+ }
27
+ return getTranslation(result, locale, fallback);
28
+ }
29
+ });
30
+ /** Enumeration plugin. Replaces node with a function that takes quantity => string. */
31
+ const enumerationPlugin = {
32
+ id: "enumeration-plugin",
33
+ canHandle: (node) => typeof node === "object" && node?.nodeType === NodeTypes.ENUMERATION,
34
+ transform: (node, props, deepTransformNode) => {
35
+ const result = { ...node[NodeTypes.ENUMERATION] };
36
+ for (const key in result) {
37
+ const child = result[key];
38
+ result[key] = deepTransformNode(child, {
39
+ ...props,
40
+ children: child,
41
+ keyPath: [...props.keyPath, {
42
+ type: NodeTypes.ENUMERATION,
43
+ key
44
+ }]
45
+ });
46
+ }
47
+ return (arg) => {
48
+ const subResult = getEnumeration(result, typeof arg === "number" ? arg : arg.count);
49
+ if (typeof subResult === "function" && typeof arg === "object") return subResult(arg);
50
+ return subResult;
51
+ };
52
+ }
53
+ };
54
+ /** Condition plugin. Replaces node with a function that takes boolean => string. */
55
+ const conditionPlugin = {
56
+ id: "condition-plugin",
57
+ canHandle: (node) => typeof node === "object" && node?.nodeType === NodeTypes.CONDITION,
58
+ transform: (node, props, deepTransformNode) => {
59
+ const result = { ...node[NodeTypes.CONDITION] };
60
+ for (const key in result) {
61
+ const child = result[key];
62
+ result[key] = deepTransformNode(child, {
63
+ ...props,
64
+ children: child,
65
+ keyPath: [...props.keyPath, {
66
+ type: NodeTypes.CONDITION,
67
+ key
68
+ }]
69
+ });
70
+ }
71
+ return (arg) => {
72
+ const subResult = getCondition(result, typeof arg === "boolean" ? arg : arg.value);
73
+ if (typeof subResult === "function" && typeof arg === "object") return subResult(arg);
74
+ return subResult;
75
+ };
76
+ }
77
+ };
78
+ /** Insertion plugin. Replaces node with a function that takes quantity => string. */
79
+ const insertionPlugin = {
80
+ id: "insertion-plugin",
81
+ canHandle: (node) => typeof node === "object" && node?.nodeType === NodeTypes.INSERTION,
82
+ transform: (node, props, deepTransformNode) => {
83
+ const newKeyPath = [...props.keyPath, { type: NodeTypes.INSERTION }];
84
+ const children = node[NodeTypes.INSERTION];
85
+ /** Insertion string plugin. Replaces string node with a component that render the insertion. */
86
+ const insertionStringPlugin = {
87
+ id: "insertion-string-plugin",
88
+ canHandle: (node) => typeof node === "string",
89
+ transform: (node, subProps, deepTransformNode) => {
90
+ const transformedResult = deepTransformNode(node, {
91
+ ...subProps,
92
+ children: node,
93
+ plugins: [...(props.plugins ?? []).filter((plugin) => plugin.id !== "intlayer-node-plugin")]
94
+ });
95
+ return (values) => {
96
+ const children = getInsertion(transformedResult, values);
97
+ return deepTransformNode(children, {
98
+ ...subProps,
99
+ plugins: props.plugins,
100
+ children
101
+ });
102
+ };
103
+ }
104
+ };
105
+ return deepTransformNode(children, {
106
+ ...props,
107
+ children,
108
+ keyPath: newKeyPath,
109
+ plugins: [insertionStringPlugin, ...props.plugins ?? []]
110
+ });
111
+ }
112
+ };
113
+ /** Gender plugin. Replaces node with a function that takes gender => string. */
114
+ const genderPlugin = {
115
+ id: "gender-plugin",
116
+ canHandle: (node) => typeof node === "object" && node?.nodeType === NodeTypes.GENDER,
117
+ transform: (node, props, deepTransformNode) => {
118
+ const result = { ...node[NodeTypes.GENDER] };
119
+ for (const key in result) {
120
+ const child = result[key];
121
+ result[key] = deepTransformNode(child, {
122
+ ...props,
123
+ children: child,
124
+ keyPath: [...props.keyPath, {
125
+ type: NodeTypes.GENDER,
126
+ key
127
+ }]
128
+ });
129
+ }
130
+ return (value) => getGender(result, value);
131
+ }
132
+ };
133
+ /** Nested plugin. Replaces node with the result of `getNesting`. */
134
+ const nestedPlugin = (locale) => ({
135
+ id: "nested-plugin",
136
+ canHandle: (node) => typeof node === "object" && (node?.nodeType === NodeTypes.NESTED || node?.nodeType === "n"),
137
+ transform: (node, props) => getNesting(node[NodeTypes.NESTED].dictionaryKey, node[NodeTypes.NESTED].path, {
138
+ ...props,
139
+ locale: locale ?? props.locale
140
+ })
141
+ });
142
+ /** File plugin. Replaces node with the result of `getNesting`. */
143
+ const filePlugin = {
144
+ id: "file-plugin",
145
+ canHandle: (node) => typeof node === "object" && node?.nodeType === NodeTypes.FILE,
146
+ transform: (node, props, deepTransform) => deepTransform(node.content, {
147
+ ...props,
148
+ children: node.content
149
+ })
150
+ };
151
+
152
+ //#endregion
153
+ export { conditionPlugin, enumerationPlugin, filePlugin, genderPlugin, insertionPlugin, nestedPlugin, translationPlugin };
154
+ //# sourceMappingURL=plugins.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.mjs","names":[],"sources":["../../../../src/interpreter/getContent/plugins.ts"],"sourcesContent":["import type { Locale } from '@intlayer/types/allLocales';\nimport type { KeyPath } from '@intlayer/types/keyPath';\nimport type {\n DeclaredLocales,\n DictionaryKeys,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport type { NodeType } from '@intlayer/types/nodeType';\nimport * as NodeTypes from '@intlayer/types/nodeType';\nimport type {\n ConditionContent,\n EnumerationContent,\n FileContent,\n Gender,\n GenderContent,\n InsertionContent,\n NestedContent,\n TranslationContent,\n} from '../../transpiler';\nimport { getCondition } from '../getCondition';\nimport { getEnumeration } from '../getEnumeration';\nimport { getGender } from '../getGender';\nimport { getInsertion } from '../getInsertion';\nimport { type GetNestingResult, getNesting } from '../getNesting';\nimport { getTranslation } from '../getTranslation';\n\n/** ---------------------------------------------\n * PLUGIN DEFINITION\n * --------------------------------------------- */\n\n/**\n * A plugin/transformer that can optionally transform a node during a single DFS pass.\n * - `canHandle` decides if the node is transformable by this plugin.\n * - `transform` returns the transformed node (and does not recurse further).\n *\n * > `transformFn` is a function that can be used to deeply transform inside the plugin.\n */\nexport type Plugins = {\n id: string;\n canHandle: (node: any) => boolean;\n transform: (\n node: any,\n props: NodeProps,\n transformFn: (node: any, props: NodeProps) => any\n ) => any;\n};\n\n/** ---------------------------------------------\n * TRANSLATION PLUGIN\n * --------------------------------------------- */\n\nexport type UnionKeys<T> = T extends unknown ? keyof T : never;\nexport type ValueAtKey<T, K> = T extends unknown\n ? K extends keyof T\n ? T[K]\n : never\n : never;\n\nexport type TranslationCond<T, S, L extends LocalesValues> = T extends {\n nodeType: NodeType | string;\n [NodeTypes.TRANSLATION]: infer U;\n}\n ? U extends Record<PropertyKey, unknown>\n ? U[keyof U] extends Record<PropertyKey, unknown>\n ? {\n [K in UnionKeys<U[keyof U]>]: L extends keyof U\n ? K extends keyof U[L]\n ? U[L][K]\n : ValueAtKey<U[keyof U], K>\n : ValueAtKey<U[keyof U], K>;\n } extends infer Content\n ? DeepTransformContent<Content, S>\n : never\n : (L extends keyof U ? U[L] : U[keyof U]) extends infer Content\n ? DeepTransformContent<Content, S>\n : never\n : never\n : never;\n\n/** Translation plugin. Replaces node with a locale string if nodeType = Translation. */\nexport const translationPlugin = (\n locale: LocalesValues,\n fallback?: LocalesValues\n): Plugins => ({\n id: 'translation-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeTypes.TRANSLATION,\n transform: (node: TranslationContent, props, deepTransformNode) => {\n const result = {\n ...(node[NodeTypes.TRANSLATION] ?? {}),\n };\n\n for (const key in result) {\n const childProps = {\n ...props,\n children: result[key as keyof typeof result],\n keyPath: [\n ...props.keyPath,\n { type: NodeTypes.TRANSLATION, key } as KeyPath,\n ],\n };\n result[key as keyof typeof result] = deepTransformNode(\n result[key as keyof typeof result],\n childProps\n );\n }\n\n return getTranslation(result, locale, fallback);\n },\n});\n\n/** ---------------------------------------------\n * ENUMERATION PLUGIN\n * --------------------------------------------- */\n\nexport type EnumerationCond<T, S, _L> = T extends {\n nodeType: NodeType | string;\n [NodeTypes.ENUMERATION]: object;\n}\n ? (\n quantity: number\n ) => DeepTransformContent<\n T[typeof NodeTypes.ENUMERATION][keyof T[typeof NodeTypes.ENUMERATION]],\n S\n >\n : never;\n\n/** Enumeration plugin. Replaces node with a function that takes quantity => string. */\nexport const enumerationPlugin: Plugins = {\n id: 'enumeration-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeTypes.ENUMERATION,\n transform: (node: EnumerationContent, props, deepTransformNode) => {\n const result = { ...node[NodeTypes.ENUMERATION] };\n\n for (const key in result) {\n const child = result[key as unknown as keyof typeof result];\n const childProps = {\n ...props,\n children: child,\n keyPath: [\n ...props.keyPath,\n { type: NodeTypes.ENUMERATION, key } as KeyPath,\n ],\n };\n result[key as unknown as keyof typeof result] = deepTransformNode(\n child,\n childProps\n );\n }\n\n return (arg: number | { count: number }) => {\n const quantity = typeof arg === 'number' ? arg : arg.count;\n const subResult = getEnumeration(result, quantity);\n\n if (typeof subResult === 'function' && typeof arg === 'object') {\n return subResult(arg);\n }\n\n return subResult;\n };\n },\n};\n\n/** ---------------------------------------------\n * CONDITION PLUGIN\n * --------------------------------------------- */\n\nexport type ConditionCond<T, S, _L> = T extends {\n nodeType: NodeType | string;\n [NodeTypes.CONDITION]: object;\n}\n ? (\n value: boolean | { value: boolean }\n ) => DeepTransformContent<\n T[typeof NodeTypes.CONDITION][keyof T[typeof NodeTypes.CONDITION]],\n S\n >\n : never;\n\n/** Condition plugin. Replaces node with a function that takes boolean => string. */\nexport const conditionPlugin: Plugins = {\n id: 'condition-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeTypes.CONDITION,\n transform: (node: ConditionContent, props, deepTransformNode) => {\n const result = { ...node[NodeTypes.CONDITION] };\n\n for (const key in result) {\n const child = result[key as keyof typeof result];\n const childProps = {\n ...props,\n children: child,\n keyPath: [\n ...props.keyPath,\n { type: NodeTypes.CONDITION, key } as KeyPath,\n ],\n };\n result[key as unknown as keyof typeof result] = deepTransformNode(\n child,\n childProps\n );\n }\n\n return (arg: boolean | { value: boolean }) => {\n const value = typeof arg === 'boolean' ? arg : arg.value;\n const subResult = getCondition(result, value);\n\n if (typeof subResult === 'function' && typeof arg === 'object') {\n return subResult(arg);\n }\n\n return subResult;\n };\n },\n};\n\n/** ---------------------------------------------\n * INSERTION PLUGIN\n * --------------------------------------------- */\n\nexport type InsertionCond<T, S, _L> = T extends {\n nodeType: NodeType | string;\n [NodeTypes.INSERTION]: string;\n fields: readonly string[];\n}\n ? (\n values: {\n [K in T['fields'][number]]: string | number;\n }\n ) => DeepTransformContent<string, S>\n : never;\n\n/** Insertion plugin. Replaces node with a function that takes quantity => string. */\nexport const insertionPlugin: Plugins = {\n id: 'insertion-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeTypes.INSERTION,\n transform: (node: InsertionContent, props, deepTransformNode) => {\n const newKeyPath: KeyPath[] = [\n ...props.keyPath,\n {\n type: NodeTypes.INSERTION,\n },\n ];\n\n const children = node[NodeTypes.INSERTION];\n\n /** Insertion string plugin. Replaces string node with a component that render the insertion. */\n const insertionStringPlugin: Plugins = {\n id: 'insertion-string-plugin',\n canHandle: (node) => typeof node === 'string',\n transform: (node: string, subProps, deepTransformNode) => {\n const transformedResult = deepTransformNode(node, {\n ...subProps,\n children: node,\n plugins: [\n ...(props.plugins ?? ([] as Plugins[])).filter(\n (plugin) => plugin.id !== 'intlayer-node-plugin'\n ),\n ],\n });\n\n return (\n values: {\n [K in InsertionContent['fields'][number]]: string | number;\n }\n ) => {\n const children = getInsertion(transformedResult, values);\n\n return deepTransformNode(children, {\n ...subProps,\n plugins: props.plugins,\n children,\n });\n };\n },\n };\n\n return deepTransformNode(children, {\n ...props,\n children,\n keyPath: newKeyPath,\n plugins: [insertionStringPlugin, ...(props.plugins ?? [])],\n });\n },\n};\n\n/** ---------------------------------------------\n * GENDER PLUGIN\n * --------------------------------------------- */\n\nexport type GenderCond<T, S, _L> = T extends {\n nodeType: NodeType | string;\n [NodeTypes.GENDER]: object;\n}\n ? (\n value: Gender\n ) => DeepTransformContent<\n T[typeof NodeTypes.GENDER][keyof T[typeof NodeTypes.GENDER]],\n S\n >\n : never;\n\n/** Gender plugin. Replaces node with a function that takes gender => string. */\nexport const genderPlugin: Plugins = {\n id: 'gender-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeTypes.GENDER,\n transform: (node: GenderContent, props, deepTransformNode) => {\n const result = { ...node[NodeTypes.GENDER] };\n\n for (const key in result) {\n const child = result[key as keyof typeof result];\n const childProps = {\n ...props,\n children: child,\n keyPath: [...props.keyPath, { type: NodeTypes.GENDER, key } as KeyPath],\n };\n result[key as keyof typeof result] = deepTransformNode(child, childProps);\n }\n\n return (value: Gender) => getGender(result, value);\n },\n};\n\n/** ---------------------------------------------\n * NESTED PLUGIN\n * --------------------------------------------- */\n\nexport type NestedCond<T, S, _L> = T extends {\n nodeType: NodeType | string;\n [NodeTypes.NESTED]: infer U;\n}\n ? U extends {\n dictionaryKey: infer K extends DictionaryKeys;\n path?: infer P;\n }\n ? GetNestingResult<K, P, S>\n : never\n : never;\n\n/** Nested plugin. Replaces node with the result of `getNesting`. */\nexport const nestedPlugin = (locale?: LocalesValues): Plugins => ({\n id: 'nested-plugin',\n canHandle: (node) =>\n typeof node === 'object' &&\n (node?.nodeType === NodeTypes.NESTED || node?.nodeType === 'n'),\n transform: (node: NestedContent, props) =>\n getNesting(\n node[NodeTypes.NESTED].dictionaryKey,\n node[NodeTypes.NESTED].path,\n {\n ...props,\n locale: (locale ?? props.locale) as Locale,\n }\n ),\n});\n\n/** ---------------------------------------------\n * FILE PLUGIN\n * --------------------------------------------- */\n\nexport type FileCond<T> = T extends {\n nodeType: NodeType | string;\n [NodeTypes.FILE]: string;\n content?: string;\n}\n ? string\n : never;\n\n/** File plugin. Replaces node with the result of `getNesting`. */\nexport const filePlugin: Plugins = {\n id: 'file-plugin',\n canHandle: (node) =>\n typeof node === 'object' && node?.nodeType === NodeTypes.FILE,\n transform: (node: FileContent, props, deepTransform) =>\n deepTransform(node.content, {\n ...props,\n children: node.content,\n }),\n};\n\n/**\n * PLUGIN RESULT\n */\n\n/**\n * Interface that defines the properties of a node.\n * This interface can be augmented in other packages, such as `react-intlayer`.\n */\nexport interface NodeProps {\n dictionaryKey: string;\n keyPath: KeyPath[];\n plugins?: Plugins[];\n locale?: Locale;\n dictionaryPath?: string;\n children?: any;\n}\n\n/**\n * Interface that defines the plugins that can be used to transform a node.\n * This interface can be augmented in other packages, such as `react-intlayer`.\n */\nexport interface IInterpreterPlugin<T, S, L extends LocalesValues> {\n translation: TranslationCond<T, S, L>;\n enumeration: EnumerationCond<T, S, L>;\n condition: ConditionCond<T, S, L>;\n insertion: InsertionCond<T, S, L>;\n gender: GenderCond<T, S, L>;\n nested: NestedCond<T, S, L>;\n file: FileCond<T>;\n}\n\n/**\n * Allow to avoid overwriting import from `intlayer` package when `IInterpreterPlugin<T>` interface is augmented in another package, such as `react-intlayer`.\n */\nexport type IInterpreterPluginState = {\n translation: true;\n enumeration: true;\n condition: true;\n insertion: true;\n gender: true;\n nested: true;\n file: true;\n};\n\n/**\n * Utility type to check if a plugin can be applied to a node.\n */\ntype CheckApplyPlugin<\n T,\n K extends keyof IInterpreterPlugin<T, S, L>,\n S,\n L extends LocalesValues = DeclaredLocales,\n> = K extends keyof S // Test if the key is a key of S.\n ? // Test if the key of S is true. Then the plugin can be applied.\n S[K] extends true\n ? // Test if the key of S exist\n IInterpreterPlugin<T, S, L>[K] extends never\n ? never\n : // Test if the plugin condition is true (if it's not, the plugin is skipped for this node)\n IInterpreterPlugin<T, S, L>[K]\n : never\n : never;\n\n/**\n * Traverse recursively through an object or array, applying each plugin as needed.\n */\ntype Traverse<T, S, L extends LocalesValues = DeclaredLocales> =\n T extends ReadonlyArray<infer U> // Turn any read-only array into a plain mutable array\n ? Array<DeepTransformContent<U, S, L>>\n : T extends object\n ? { [K in keyof T]: DeepTransformContent<T[K], S, L> }\n : T;\n\nexport type IsAny<T> = 0 extends 1 & T ? true : false;\n\n/**\n * Traverse recursively through an object or array, applying each plugin as needed.\n */\nexport type DeepTransformContent<\n T,\n S = IInterpreterPluginState,\n L extends LocalesValues = DeclaredLocales,\n> =\n IsAny<T> extends true\n ? T\n : CheckApplyPlugin<T, keyof IInterpreterPlugin<T, S, L>, S, L> extends never // Check if there is a plugin for T:\n ? // No plugin was found, so try to transform T recursively:\n Traverse<T, S, L>\n : // A plugin was found – use the plugin's transformation.\n CheckApplyPlugin<T, keyof IInterpreterPlugin<T, S, L>, S, L>;\n"],"mappings":"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"}
@@ -1 +1,24 @@
1
- import{f as e}from"../getContent-DKqtIZGL.mjs";export{e as getDictionary};
1
+ import { getBasePlugins, getContent } from "./getContent/getContent.mjs";
2
+
3
+ //#region src/interpreter/getDictionary.ts
4
+ /**
5
+ * Transforms a dictionary in a single pass, applying each plugin as needed.
6
+ *
7
+ * @param dictionary The dictionary to transform.
8
+ * @param locale The locale to use if your transformers need it (e.g. for translations).
9
+ * @param additionalPlugins An array of NodeTransformer that define how to transform recognized nodes.
10
+ * If omitted, we’ll use a default set of plugins.
11
+ */
12
+ const getDictionary = (dictionary, locale, plugins = getBasePlugins(locale)) => {
13
+ const props = {
14
+ dictionaryKey: dictionary.key,
15
+ dictionaryPath: dictionary.filePath,
16
+ keyPath: [],
17
+ plugins
18
+ };
19
+ return getContent(dictionary.content, props, plugins);
20
+ };
21
+
22
+ //#endregion
23
+ export { getDictionary };
24
+ //# sourceMappingURL=getDictionary.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDictionary.mjs","names":[],"sources":["../../../src/interpreter/getDictionary.ts"],"sourcesContent":["import type { Dictionary } from '@intlayer/types/dictionary';\nimport type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport type {\n DeepTransformContent,\n IInterpreterPluginState,\n NodeProps,\n Plugins,\n} from './getContent';\nimport { getBasePlugins, getContent } from './getContent/getContent';\n\n/**\n * Transforms a dictionary in a single pass, applying each plugin as needed.\n *\n * @param dictionary The dictionary to transform.\n * @param locale The locale to use if your transformers need it (e.g. for translations).\n * @param additionalPlugins An array of NodeTransformer that define how to transform recognized nodes.\n * If omitted, we’ll use a default set of plugins.\n */\nexport const getDictionary = <\n T extends Dictionary,\n L extends LocalesValues = DeclaredLocales,\n>(\n dictionary: T,\n locale?: L,\n plugins: Plugins[] = getBasePlugins(locale)\n): DeepTransformContent<T['content'], IInterpreterPluginState, L> => {\n const props: NodeProps = {\n dictionaryKey: dictionary.key,\n dictionaryPath: dictionary.filePath,\n keyPath: [],\n plugins,\n };\n\n return getContent(dictionary.content, props, plugins);\n};\n"],"mappings":";;;;;;;;;;;AAqBA,MAAa,iBAIX,YACA,QACA,UAAqB,eAAe,OAAO,KACwB;CACnE,MAAM,QAAmB;EACvB,eAAe,WAAW;EAC1B,gBAAgB,WAAW;EAC3B,SAAS,EAAE;EACX;EACD;AAED,QAAO,WAAW,WAAW,SAAS,OAAO,QAAQ"}
@@ -1,2 +1,70 @@
1
- const e=(e,t)=>{let n=Object.keys(e);for(let e of n){let n=!e.startsWith(`>`)&&!e.startsWith(`<`)&&!e.startsWith(`=`)&&parseFloat(e)===t||e.startsWith(`=`)&&parseFloat(e.slice(1))===t,r=e.startsWith(`>`)&&t>parseFloat(e.slice(1)),i=e.startsWith(`>=`)&&t>=parseFloat(e.slice(2)),a=e.startsWith(`<`)&&t<parseFloat(e.slice(1)),o=e.startsWith(`<=`)&&t<=parseFloat(e.slice(2));if(n||r||i||a||o)return e}},t=(t,n)=>t[e(t,n)??`fallback`];export{e as findMatchingCondition,t as getEnumeration};
1
+ //#region src/interpreter/getEnumeration.ts
2
+ /**
3
+ * Find the matching condition for a quantity.
4
+ *
5
+ * Usage:
6
+ *
7
+ * ```ts
8
+ * const key = findMatchingCondition({
9
+ * '<=-2.3': 'You have less than -2.3',
10
+ * '<1': 'You have less than one',
11
+ * '2': 'You have two',
12
+ * '>=3': 'You have three or more',
13
+ * }, 2);
14
+ * // '2'
15
+ * ```
16
+ *
17
+ * The order of the keys will define the priority of the content.
18
+ *
19
+ * ```ts
20
+ * const key = findMatchingCondition({
21
+ * '<4': 'You have less than four',
22
+ * '2': 'You have two',
23
+ * }, 2);
24
+ * // '<4'
25
+ * ```
26
+ *
27
+ * If no keys match, the default key is '1'.
28
+ */
29
+ const findMatchingCondition = (enumerationContent, quantity) => {
30
+ const numericKeys = Object.keys(enumerationContent);
31
+ for (const key of numericKeys) {
32
+ const isEqual = !key.startsWith(">") && !key.startsWith("<") && !key.startsWith("=") && parseFloat(key) === quantity || key.startsWith("=") && parseFloat(key.slice(1)) === quantity;
33
+ const isSuperior = key.startsWith(">") && quantity > parseFloat(key.slice(1));
34
+ const isSuperiorOrEqual = key.startsWith(">=") && quantity >= parseFloat(key.slice(2));
35
+ const isInferior = key.startsWith("<") && quantity < parseFloat(key.slice(1));
36
+ const isInferiorOrEqual = key.startsWith("<=") && quantity <= parseFloat(key.slice(2));
37
+ if (isEqual || isSuperior || isSuperiorOrEqual || isInferior || isInferiorOrEqual) return key;
38
+ }
39
+ };
40
+ /**
41
+ * Picks content from an enumeration map based on a provided quantity.
42
+ *
43
+ * Supported keys in the enumeration map:
44
+ * - Specific numbers: '0', '1', '2'
45
+ * - Comparison operators: '<5', '>=10', '<=2'
46
+ * - Fallback: 'fallback'
47
+ *
48
+ * The first matching key in the object's iteration order will be selected.
49
+ *
50
+ * @param enumerationContent - A map of conditions/quantities to content.
51
+ * @param quantity - The number to match against the conditions.
52
+ * @returns The matching content.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const content = getEnumeration({
57
+ * '0': 'No items',
58
+ * '1': 'One item',
59
+ * '>1': 'Many items',
60
+ * }, 5);
61
+ * // 'Many items'
62
+ * ```
63
+ */
64
+ const getEnumeration = (enumerationContent, quantity) => {
65
+ return enumerationContent[findMatchingCondition(enumerationContent, quantity) ?? "fallback"];
66
+ };
67
+
68
+ //#endregion
69
+ export { findMatchingCondition, getEnumeration };
2
70
  //# sourceMappingURL=getEnumeration.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getEnumeration.mjs","names":[],"sources":["../../../src/interpreter/getEnumeration.ts"],"sourcesContent":["import type { EnterFormat, EnumerationContentState } from '../transpiler';\n\n/**\n * Find the matching condition for a quantity.\n *\n * Usage:\n *\n * ```ts\n * const key = findMatchingCondition({\n * '<=-2.3': 'You have less than -2.3',\n * '<1': 'You have less than one',\n * '2': 'You have two',\n * '>=3': 'You have three or more',\n * }, 2);\n * // '2'\n * ```\n *\n * The order of the keys will define the priority of the content.\n *\n * ```ts\n * const key = findMatchingCondition({\n * '<4': 'You have less than four',\n * '2': 'You have two',\n * }, 2);\n * // '<4'\n * ```\n *\n * If no keys match, the default key is '1'.\n */\nexport const findMatchingCondition = <Content>(\n enumerationContent: EnumerationContentState<Content>,\n quantity: number\n): EnterFormat | undefined => {\n const numericKeys = Object.keys(enumerationContent);\n\n for (const key of numericKeys) {\n const isEqual =\n (!key.startsWith('>') &&\n !key.startsWith('<') &&\n !key.startsWith('=') &&\n parseFloat(key) === quantity) ||\n (key.startsWith('=') && parseFloat(key.slice(1)) === quantity);\n const isSuperior =\n key.startsWith('>') && quantity > parseFloat(key.slice(1));\n const isSuperiorOrEqual =\n key.startsWith('>=') && quantity >= parseFloat(key.slice(2));\n const isInferior =\n key.startsWith('<') && quantity < parseFloat(key.slice(1));\n const isInferiorOrEqual =\n key.startsWith('<=') && quantity <= parseFloat(key.slice(2));\n\n if (\n isEqual ||\n isSuperior ||\n isSuperiorOrEqual ||\n isInferior ||\n isInferiorOrEqual\n ) {\n return key as EnterFormat;\n }\n }\n};\n\n/**\n * Picks content from an enumeration map based on a provided quantity.\n *\n * Supported keys in the enumeration map:\n * - Specific numbers: '0', '1', '2'\n * - Comparison operators: '<5', '>=10', '<=2'\n * - Fallback: 'fallback'\n *\n * The first matching key in the object's iteration order will be selected.\n *\n * @param enumerationContent - A map of conditions/quantities to content.\n * @param quantity - The number to match against the conditions.\n * @returns The matching content.\n *\n * @example\n * ```ts\n * const content = getEnumeration({\n * '0': 'No items',\n * '1': 'One item',\n * '>1': 'Many items',\n * }, 5);\n * // 'Many items'\n * ```\n */\nexport const getEnumeration = <Content>(\n enumerationContent: EnumerationContentState<Content>,\n quantity: number\n): Content => {\n const key =\n findMatchingCondition<Content>(enumerationContent, quantity) ?? 'fallback';\n\n // Default or error handling if no keys match\n return enumerationContent[key] as Content;\n};\n"],"mappings":"AA6BA,MAAa,GACX,EACA,IAC4B,CAC5B,IAAM,EAAc,OAAO,KAAK,EAAmB,CAEnD,IAAK,IAAM,KAAO,EAAa,CAC7B,IAAM,EACH,CAAC,EAAI,WAAW,IAAI,EACnB,CAAC,EAAI,WAAW,IAAI,EACpB,CAAC,EAAI,WAAW,IAAI,EACpB,WAAW,EAAI,GAAK,GACrB,EAAI,WAAW,IAAI,EAAI,WAAW,EAAI,MAAM,EAAE,CAAC,GAAK,EACjD,EACJ,EAAI,WAAW,IAAI,EAAI,EAAW,WAAW,EAAI,MAAM,EAAE,CAAC,CACtD,EACJ,EAAI,WAAW,KAAK,EAAI,GAAY,WAAW,EAAI,MAAM,EAAE,CAAC,CACxD,EACJ,EAAI,WAAW,IAAI,EAAI,EAAW,WAAW,EAAI,MAAM,EAAE,CAAC,CACtD,EACJ,EAAI,WAAW,KAAK,EAAI,GAAY,WAAW,EAAI,MAAM,EAAE,CAAC,CAE9D,GACE,GACA,GACA,GACA,GACA,EAEA,OAAO,IA6BA,GACX,EACA,IAMO,EAHL,EAA+B,EAAoB,EAAS,EAAI"}
1
+ {"version":3,"file":"getEnumeration.mjs","names":[],"sources":["../../../src/interpreter/getEnumeration.ts"],"sourcesContent":["import type { EnterFormat, EnumerationContentState } from '../transpiler';\n\n/**\n * Find the matching condition for a quantity.\n *\n * Usage:\n *\n * ```ts\n * const key = findMatchingCondition({\n * '<=-2.3': 'You have less than -2.3',\n * '<1': 'You have less than one',\n * '2': 'You have two',\n * '>=3': 'You have three or more',\n * }, 2);\n * // '2'\n * ```\n *\n * The order of the keys will define the priority of the content.\n *\n * ```ts\n * const key = findMatchingCondition({\n * '<4': 'You have less than four',\n * '2': 'You have two',\n * }, 2);\n * // '<4'\n * ```\n *\n * If no keys match, the default key is '1'.\n */\nexport const findMatchingCondition = <Content>(\n enumerationContent: EnumerationContentState<Content>,\n quantity: number\n): EnterFormat | undefined => {\n const numericKeys = Object.keys(enumerationContent);\n\n for (const key of numericKeys) {\n const isEqual =\n (!key.startsWith('>') &&\n !key.startsWith('<') &&\n !key.startsWith('=') &&\n parseFloat(key) === quantity) ||\n (key.startsWith('=') && parseFloat(key.slice(1)) === quantity);\n const isSuperior =\n key.startsWith('>') && quantity > parseFloat(key.slice(1));\n const isSuperiorOrEqual =\n key.startsWith('>=') && quantity >= parseFloat(key.slice(2));\n const isInferior =\n key.startsWith('<') && quantity < parseFloat(key.slice(1));\n const isInferiorOrEqual =\n key.startsWith('<=') && quantity <= parseFloat(key.slice(2));\n\n if (\n isEqual ||\n isSuperior ||\n isSuperiorOrEqual ||\n isInferior ||\n isInferiorOrEqual\n ) {\n return key as EnterFormat;\n }\n }\n};\n\n/**\n * Picks content from an enumeration map based on a provided quantity.\n *\n * Supported keys in the enumeration map:\n * - Specific numbers: '0', '1', '2'\n * - Comparison operators: '<5', '>=10', '<=2'\n * - Fallback: 'fallback'\n *\n * The first matching key in the object's iteration order will be selected.\n *\n * @param enumerationContent - A map of conditions/quantities to content.\n * @param quantity - The number to match against the conditions.\n * @returns The matching content.\n *\n * @example\n * ```ts\n * const content = getEnumeration({\n * '0': 'No items',\n * '1': 'One item',\n * '>1': 'Many items',\n * }, 5);\n * // 'Many items'\n * ```\n */\nexport const getEnumeration = <Content>(\n enumerationContent: EnumerationContentState<Content>,\n quantity: number\n): Content => {\n const key =\n findMatchingCondition<Content>(enumerationContent, quantity) ?? 'fallback';\n\n // Default or error handling if no keys match\n return enumerationContent[key] as Content;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAa,yBACX,oBACA,aAC4B;CAC5B,MAAM,cAAc,OAAO,KAAK,mBAAmB;AAEnD,MAAK,MAAM,OAAO,aAAa;EAC7B,MAAM,UACH,CAAC,IAAI,WAAW,IAAI,IACnB,CAAC,IAAI,WAAW,IAAI,IACpB,CAAC,IAAI,WAAW,IAAI,IACpB,WAAW,IAAI,KAAK,YACrB,IAAI,WAAW,IAAI,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC,KAAK;EACvD,MAAM,aACJ,IAAI,WAAW,IAAI,IAAI,WAAW,WAAW,IAAI,MAAM,EAAE,CAAC;EAC5D,MAAM,oBACJ,IAAI,WAAW,KAAK,IAAI,YAAY,WAAW,IAAI,MAAM,EAAE,CAAC;EAC9D,MAAM,aACJ,IAAI,WAAW,IAAI,IAAI,WAAW,WAAW,IAAI,MAAM,EAAE,CAAC;EAC5D,MAAM,oBACJ,IAAI,WAAW,KAAK,IAAI,YAAY,WAAW,IAAI,MAAM,EAAE,CAAC;AAE9D,MACE,WACA,cACA,qBACA,cACA,kBAEA,QAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6Bb,MAAa,kBACX,oBACA,aACY;AAKZ,QAAO,mBAHL,sBAA+B,oBAAoB,SAAS,IAAI"}
@@ -1,2 +1,37 @@
1
- const e=e=>e===`m`||e===`male`?`male`:e===`f`||e===`female`?`female`:`fallback`,t=(t,n)=>{let r=Object.keys(t),i=r[r.length-1];return t[e(n)]??t.fallback??t[i]};export{t as getGender};
1
+ //#region src/interpreter/getGender.ts
2
+ const getGenderEntry = (gender) => {
3
+ if (gender === "m" || gender === "male") return "male";
4
+ if (gender === "f" || gender === "female") return "female";
5
+ return "fallback";
6
+ };
7
+ /**
8
+ * Allow to pick a content based on a gender.
9
+ *
10
+ * Usage:
11
+ *
12
+ * ```ts
13
+ * const content = getGender({
14
+ * 'true': 'The gender is validated',
15
+ * 'false': 'The gender is not validated',
16
+ * }, true);
17
+ * // 'The gender is validated'
18
+ * ```
19
+ *
20
+ * The last key provided will be used as the fallback value.
21
+ *
22
+ * ```ts
23
+ * const content = getGender({
24
+ * 'false': 'The gender is not validated',
25
+ * 'true': 'The gender is validated',
26
+ * }, undefined);
27
+ * // 'The gender is validated'
28
+ */
29
+ const getGender = (genderContent, gender) => {
30
+ const stateList = Object.keys(genderContent);
31
+ const fallbackState = stateList[stateList.length - 1];
32
+ return genderContent[getGenderEntry(gender)] ?? genderContent.fallback ?? genderContent[fallbackState];
33
+ };
34
+
35
+ //#endregion
36
+ export { getGender };
2
37
  //# sourceMappingURL=getGender.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGender.mjs","names":[],"sources":["../../../src/interpreter/getGender.ts"],"sourcesContent":["import type { Gender, GenderContentStates } from '../transpiler';\n\ntype GenderEntry = Gender | 'm' | 'f';\n\nconst getGenderEntry = (gender: GenderEntry): Gender => {\n if (gender === 'm' || gender === 'male') return 'male';\n if (gender === 'f' || gender === 'female') return 'female';\n return 'fallback';\n};\n\n/**\n * Allow to pick a content based on a gender.\n *\n * Usage:\n *\n * ```ts\n * const content = getGender({\n * 'true': 'The gender is validated',\n * 'false': 'The gender is not validated',\n * }, true);\n * // 'The gender is validated'\n * ```\n *\n * The last key provided will be used as the fallback value.\n *\n * ```ts\n * const content = getGender({\n * 'false': 'The gender is not validated',\n * 'true': 'The gender is validated',\n * }, undefined);\n * // 'The gender is validated'\n */\nexport const getGender = <Content>(\n genderContent: GenderContentStates<Content>,\n gender: GenderEntry\n): Content => {\n const stateList = Object.keys(genderContent);\n\n const fallbackState = stateList[\n stateList.length - 1\n ] as keyof typeof genderContent;\n\n const genderEntry = getGenderEntry(gender);\n\n // Default or error handling if no keys match\n return (\n genderContent[genderEntry as keyof typeof genderContent] ??\n genderContent.fallback ??\n (genderContent[fallbackState] as Content)\n );\n};\n"],"mappings":"AAIA,MAAM,EAAkB,GAClB,IAAW,KAAO,IAAW,OAAe,OAC5C,IAAW,KAAO,IAAW,SAAiB,SAC3C,WAyBI,GACX,EACA,IACY,CACZ,IAAM,EAAY,OAAO,KAAK,EAAc,CAEtC,EAAgB,EACpB,EAAU,OAAS,GAMrB,OACE,EAJkB,EAAe,EAAO,GAKxC,EAAc,UACb,EAAc"}
1
+ {"version":3,"file":"getGender.mjs","names":[],"sources":["../../../src/interpreter/getGender.ts"],"sourcesContent":["import type { Gender, GenderContentStates } from '../transpiler';\n\ntype GenderEntry = Gender | 'm' | 'f';\n\nconst getGenderEntry = (gender: GenderEntry): Gender => {\n if (gender === 'm' || gender === 'male') return 'male';\n if (gender === 'f' || gender === 'female') return 'female';\n return 'fallback';\n};\n\n/**\n * Allow to pick a content based on a gender.\n *\n * Usage:\n *\n * ```ts\n * const content = getGender({\n * 'true': 'The gender is validated',\n * 'false': 'The gender is not validated',\n * }, true);\n * // 'The gender is validated'\n * ```\n *\n * The last key provided will be used as the fallback value.\n *\n * ```ts\n * const content = getGender({\n * 'false': 'The gender is not validated',\n * 'true': 'The gender is validated',\n * }, undefined);\n * // 'The gender is validated'\n */\nexport const getGender = <Content>(\n genderContent: GenderContentStates<Content>,\n gender: GenderEntry\n): Content => {\n const stateList = Object.keys(genderContent);\n\n const fallbackState = stateList[\n stateList.length - 1\n ] as keyof typeof genderContent;\n\n const genderEntry = getGenderEntry(gender);\n\n // Default or error handling if no keys match\n return (\n genderContent[genderEntry as keyof typeof genderContent] ??\n genderContent.fallback ??\n (genderContent[fallbackState] as Content)\n );\n};\n"],"mappings":";AAIA,MAAM,kBAAkB,WAAgC;AACtD,KAAI,WAAW,OAAO,WAAW,OAAQ,QAAO;AAChD,KAAI,WAAW,OAAO,WAAW,SAAU,QAAO;AAClD,QAAO;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,MAAa,aACX,eACA,WACY;CACZ,MAAM,YAAY,OAAO,KAAK,cAAc;CAE5C,MAAM,gBAAgB,UACpB,UAAU,SAAS;AAMrB,QACE,cAJkB,eAAe,OAAO,KAKxC,cAAc,YACb,cAAc"}
@@ -1,2 +1,123 @@
1
- const e=e=>{let t={},n=/([a-zA-Z0-9-]+)="([^"]*)"/g,r=n.exec(e);for(;r!==null;)t[r[1]]=r[2],r=n.exec(e);return t},t=new Map,n=n=>{if(t.has(n))return t.get(n);if(typeof n!=`string`)return[];let r=/<(\/)?([a-zA-Z0-9.-]+)([\s\S]*?)(\/?)>/g,i=[],a=[],o=0,s=r.exec(n),c=e=>{(a.length>0?a[a.length-1].children:i).push(e)};for(;s!==null;){let[t,i,l,u,d]=s,f=s.index;f>o&&c(n.slice(o,f));let p=i===`/`,m=d===`/`||u.trim().endsWith(`/`)||t.endsWith(`/>`),h=u.trim().replace(/\/$/,``).trim();if(p){let e=a[a.length-1];if(e&&e.tagName===l){let e=a.pop();e&&c({tagName:e.tagName,props:e.props,children:e.children})}}else if(m)c({tagName:l,props:e(h),children:[]});else{let t=e(h);a.push({tagName:l,children:[],props:t})}o=f+t.length,s=r.exec(n)}for(o<n.length&&c(n.slice(o));a.length>0;){let e=a.pop();e&&c({tagName:e.tagName,props:e.props,children:e.children})}return t.set(n,i),i},r=(e,t)=>{let r=n(e),i=0,a=e=>{if(typeof e==`string`)return e;let{tagName:n,props:r,children:o}=e,s=o.flatMap(a),c=i++,l=t[n];if(!l){let e=n.toLowerCase(),r=Object.keys(t).find(t=>t.toLowerCase()===e);r&&(l=t[r])}let u=`html-tag-${n}-${c}`;if(typeof l==`function`)return l({...r,children:s,key:u});if(typeof l==`string`){let e=t[l];return typeof e==`function`?e({...r,children:s,key:u}):s}if(typeof l==`object`&&l&&`tag`in l){let{tag:e,props:n}=l,i=t[e];return typeof i==`function`?i({...r,...n,children:s,key:u}):s}return s},o=r.flatMap(a);return o.length===1?o[0]:o};export{r as getHTML};
1
+ //#region src/interpreter/getHTML.ts
2
+ /**
3
+ * Helper to parse attributes from a tag string.
4
+ */
5
+ const parseAttributes = (attributes) => {
6
+ const props = {};
7
+ const attrRegex = /([a-zA-Z0-9-]+)="([^"]*)"/g;
8
+ let match = attrRegex.exec(attributes);
9
+ while (match !== null) {
10
+ props[match[1]] = match[2];
11
+ match = attrRegex.exec(attributes);
12
+ }
13
+ return props;
14
+ };
15
+ const astCache = /* @__PURE__ */ new Map();
16
+ const parseHTML = (content) => {
17
+ if (astCache.has(content)) return astCache.get(content);
18
+ if (typeof content !== "string") return [];
19
+ const tagRegex = /<(\/)?([a-zA-Z0-9.-]+)([\s\S]*?)(\/?)>/g;
20
+ const elements = [];
21
+ const stack = [];
22
+ let lastIndex = 0;
23
+ let match = tagRegex.exec(content);
24
+ const appendChild = (child) => {
25
+ (stack.length > 0 ? stack[stack.length - 1].children : elements).push(child);
26
+ };
27
+ while (match !== null) {
28
+ const [fullMatch, isClosingRaw, tagName, attributesRaw, isSelfClosingRaw] = match;
29
+ const matchIndex = match.index;
30
+ if (matchIndex > lastIndex) appendChild(content.slice(lastIndex, matchIndex));
31
+ const isClosing = isClosingRaw === "/";
32
+ const isSelfClosing = isSelfClosingRaw === "/" || attributesRaw.trim().endsWith("/") || fullMatch.endsWith("/>");
33
+ const cleanedAttributes = attributesRaw.trim().replace(/\/$/, "").trim();
34
+ if (isClosing) {
35
+ const last = stack[stack.length - 1];
36
+ if (last && last.tagName === tagName) {
37
+ const popped = stack.pop();
38
+ if (popped) appendChild({
39
+ tagName: popped.tagName,
40
+ props: popped.props,
41
+ children: popped.children
42
+ });
43
+ }
44
+ } else if (isSelfClosing) appendChild({
45
+ tagName,
46
+ props: parseAttributes(cleanedAttributes),
47
+ children: []
48
+ });
49
+ else {
50
+ const tagProps = parseAttributes(cleanedAttributes);
51
+ stack.push({
52
+ tagName,
53
+ children: [],
54
+ props: tagProps
55
+ });
56
+ }
57
+ lastIndex = matchIndex + fullMatch.length;
58
+ match = tagRegex.exec(content);
59
+ }
60
+ if (lastIndex < content.length) appendChild(content.slice(lastIndex));
61
+ while (stack.length > 0) {
62
+ const last = stack.pop();
63
+ if (last) appendChild({
64
+ tagName: last.tagName,
65
+ props: last.props,
66
+ children: last.children
67
+ });
68
+ }
69
+ astCache.set(content, elements);
70
+ return elements;
71
+ };
72
+ /**
73
+ * Interprets a string containing HTML-like tags and replaces them with provided components or strings.
74
+ */
75
+ const getHTML = (content, values) => {
76
+ const ast = parseHTML(content);
77
+ let keyCounter = 0;
78
+ const renderASTNode = (node) => {
79
+ if (typeof node === "string") return node;
80
+ const { tagName, props, children } = node;
81
+ const renderedChildren = children.flatMap(renderASTNode);
82
+ const index = keyCounter++;
83
+ let override = values[tagName];
84
+ if (!override) {
85
+ const lowerTagName = tagName.toLowerCase();
86
+ const foundKey = Object.keys(values).find((key) => key.toLowerCase() === lowerTagName);
87
+ if (foundKey) override = values[foundKey];
88
+ }
89
+ const key = `html-tag-${tagName}-${index}`;
90
+ if (typeof override === "function") return override({
91
+ ...props,
92
+ children: renderedChildren,
93
+ key
94
+ });
95
+ if (typeof override === "string") {
96
+ const component = values[override];
97
+ if (typeof component === "function") return component({
98
+ ...props,
99
+ children: renderedChildren,
100
+ key
101
+ });
102
+ return renderedChildren;
103
+ }
104
+ if (typeof override === "object" && override !== null && "tag" in override) {
105
+ const { tag: targetTag, props: extraProps } = override;
106
+ const component = values[targetTag];
107
+ if (typeof component === "function") return component({
108
+ ...props,
109
+ ...extraProps,
110
+ children: renderedChildren,
111
+ key
112
+ });
113
+ return renderedChildren;
114
+ }
115
+ return renderedChildren;
116
+ };
117
+ const result = ast.flatMap(renderASTNode);
118
+ return result.length === 1 ? result[0] : result;
119
+ };
120
+
121
+ //#endregion
122
+ export { getHTML };
2
123
  //# sourceMappingURL=getHTML.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getHTML.mjs","names":[],"sources":["../../../src/interpreter/getHTML.ts"],"sourcesContent":["/**\n * Component function that receives properly typed props\n * Props include:\n * - children?: any[] - Array of child elements (ReactNode[], VNode[], etc.)\n * - [key: string]: any - Any HTML attributes (className, style, href, etc.)\n */\ntype Component = (props: { children?: any[]; [key: string]: any }) => any;\n\n/**\n * Component object that delegates to another component\n */\ntype ComponentObject = {\n tag: string;\n props?: Record<string, any>;\n};\n\n/**\n * Components map:\n * - Function components receive typed props\n * - String components delegate to another tag\n * - Object components delegate with additional props\n */\ntype Components = Record<string, Component | string | ComponentObject>;\n\n/**\n * Helper to parse attributes from a tag string.\n */\nconst parseAttributes = (attributes: string): Record<string, string> => {\n const props: Record<string, string> = {};\n const attrRegex = /([a-zA-Z0-9-]+)=\"([^\"]*)\"/g;\n\n let match = attrRegex.exec(attributes);\n while (match !== null) {\n props[match[1]] = match[2];\n match = attrRegex.exec(attributes);\n }\n return props;\n};\n\ntype ASTNode =\n | string\n | {\n tagName: string;\n props: Record<string, string>;\n children: ASTNode[];\n };\n\nconst astCache = new Map<string, ASTNode[]>();\n\nconst parseHTML = (content: string): ASTNode[] => {\n if (astCache.has(content)) {\n return astCache.get(content)!;\n }\n\n if (typeof content !== 'string') {\n return [];\n }\n\n const tagRegex = /<(\\/)?([a-zA-Z0-9.-]+)([\\s\\S]*?)(\\/?)>/g;\n const elements: ASTNode[] = [];\n const stack: {\n tagName: string;\n children: ASTNode[];\n props: Record<string, string>;\n }[] = [];\n\n let lastIndex = 0;\n let match = tagRegex.exec(content);\n\n const appendChild = (child: ASTNode) => {\n const target =\n stack.length > 0 ? stack[stack.length - 1].children : elements;\n target.push(child);\n };\n\n while (match !== null) {\n const [fullMatch, isClosingRaw, tagName, attributesRaw, isSelfClosingRaw] =\n match;\n const matchIndex = match.index;\n\n if (matchIndex > lastIndex) {\n appendChild(content.slice(lastIndex, matchIndex));\n }\n\n const isClosing = isClosingRaw === '/';\n const isSelfClosing =\n isSelfClosingRaw === '/' ||\n attributesRaw.trim().endsWith('/') ||\n fullMatch.endsWith('/>');\n\n const cleanedAttributes = attributesRaw.trim().replace(/\\/$/, '').trim();\n\n if (isClosing) {\n const last = stack[stack.length - 1];\n\n // Only pop if the tag names match\n if (last && last.tagName === tagName) {\n const popped = stack.pop();\n if (popped) {\n appendChild({\n tagName: popped.tagName,\n props: popped.props,\n children: popped.children,\n });\n }\n }\n // If tags don't match or no open tag, silently ignore the closing tag\n } else if (isSelfClosing) {\n const tagProps = parseAttributes(cleanedAttributes);\n appendChild({\n tagName,\n props: tagProps,\n children: [],\n });\n } else {\n const tagProps = parseAttributes(cleanedAttributes);\n stack.push({ tagName, children: [], props: tagProps });\n }\n\n lastIndex = matchIndex + fullMatch.length;\n match = tagRegex.exec(content);\n }\n\n if (lastIndex < content.length) {\n appendChild(content.slice(lastIndex));\n }\n\n // Handle unclosed tags by appending them to the root or parent\n while (stack.length > 0) {\n const last = stack.pop();\n if (last) {\n appendChild({\n tagName: last.tagName,\n props: last.props,\n children: last.children,\n });\n }\n }\n\n astCache.set(content, elements);\n return elements;\n};\n\n/**\n * Interprets a string containing HTML-like tags and replaces them with provided components or strings.\n */\nexport const getHTML = (content: string, values: Components): any => {\n // Parse into AST (cached)\n const ast = parseHTML(content);\n\n // Render AST\n let keyCounter = 0;\n\n const renderASTNode = (node: ASTNode): any => {\n if (typeof node === 'string') {\n return node;\n }\n\n const { tagName, props, children } = node;\n const renderedChildren = children.flatMap(renderASTNode);\n const index = keyCounter++;\n\n let override = values[tagName];\n\n if (!override) {\n const lowerTagName = tagName.toLowerCase();\n const foundKey = Object.keys(values).find(\n (key) => key.toLowerCase() === lowerTagName\n );\n\n if (foundKey) override = values[foundKey];\n }\n\n const key = `html-tag-${tagName}-${index}`;\n\n if (typeof override === 'function') {\n return override({ ...props, children: renderedChildren, key });\n }\n\n if (typeof override === 'string') {\n const component = values[override];\n\n if (typeof component === 'function') {\n return component({ ...props, children: renderedChildren, key });\n }\n return renderedChildren;\n }\n\n if (\n typeof override === 'object' &&\n override !== null &&\n 'tag' in override\n ) {\n const { tag: targetTag, props: extraProps } = override as ComponentObject;\n const component = values[targetTag];\n\n if (typeof component === 'function') {\n return component({\n ...props,\n ...extraProps,\n children: renderedChildren,\n key,\n });\n }\n return renderedChildren;\n }\n\n // Default: Skip tag, render children\n return renderedChildren;\n };\n\n const result = ast.flatMap(renderASTNode);\n return result.length === 1 ? result[0] : result;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"getHTML.mjs","names":[],"sources":["../../../src/interpreter/getHTML.ts"],"sourcesContent":["/**\n * Component function that receives properly typed props\n * Props include:\n * - children?: any[] - Array of child elements (ReactNode[], VNode[], etc.)\n * - [key: string]: any - Any HTML attributes (className, style, href, etc.)\n */\ntype Component = (props: { children?: any[]; [key: string]: any }) => any;\n\n/**\n * Component object that delegates to another component\n */\ntype ComponentObject = {\n tag: string;\n props?: Record<string, any>;\n};\n\n/**\n * Components map:\n * - Function components receive typed props\n * - String components delegate to another tag\n * - Object components delegate with additional props\n */\ntype Components = Record<string, Component | string | ComponentObject>;\n\n/**\n * Helper to parse attributes from a tag string.\n */\nconst parseAttributes = (attributes: string): Record<string, string> => {\n const props: Record<string, string> = {};\n const attrRegex = /([a-zA-Z0-9-]+)=\"([^\"]*)\"/g;\n\n let match = attrRegex.exec(attributes);\n while (match !== null) {\n props[match[1]] = match[2];\n match = attrRegex.exec(attributes);\n }\n return props;\n};\n\ntype ASTNode =\n | string\n | {\n tagName: string;\n props: Record<string, string>;\n children: ASTNode[];\n };\n\nconst astCache = new Map<string, ASTNode[]>();\n\nconst parseHTML = (content: string): ASTNode[] => {\n if (astCache.has(content)) {\n return astCache.get(content)!;\n }\n\n if (typeof content !== 'string') {\n return [];\n }\n\n const tagRegex = /<(\\/)?([a-zA-Z0-9.-]+)([\\s\\S]*?)(\\/?)>/g;\n const elements: ASTNode[] = [];\n const stack: {\n tagName: string;\n children: ASTNode[];\n props: Record<string, string>;\n }[] = [];\n\n let lastIndex = 0;\n let match = tagRegex.exec(content);\n\n const appendChild = (child: ASTNode) => {\n const target =\n stack.length > 0 ? stack[stack.length - 1].children : elements;\n target.push(child);\n };\n\n while (match !== null) {\n const [fullMatch, isClosingRaw, tagName, attributesRaw, isSelfClosingRaw] =\n match;\n const matchIndex = match.index;\n\n if (matchIndex > lastIndex) {\n appendChild(content.slice(lastIndex, matchIndex));\n }\n\n const isClosing = isClosingRaw === '/';\n const isSelfClosing =\n isSelfClosingRaw === '/' ||\n attributesRaw.trim().endsWith('/') ||\n fullMatch.endsWith('/>');\n\n const cleanedAttributes = attributesRaw.trim().replace(/\\/$/, '').trim();\n\n if (isClosing) {\n const last = stack[stack.length - 1];\n\n // Only pop if the tag names match\n if (last && last.tagName === tagName) {\n const popped = stack.pop();\n if (popped) {\n appendChild({\n tagName: popped.tagName,\n props: popped.props,\n children: popped.children,\n });\n }\n }\n // If tags don't match or no open tag, silently ignore the closing tag\n } else if (isSelfClosing) {\n const tagProps = parseAttributes(cleanedAttributes);\n appendChild({\n tagName,\n props: tagProps,\n children: [],\n });\n } else {\n const tagProps = parseAttributes(cleanedAttributes);\n stack.push({ tagName, children: [], props: tagProps });\n }\n\n lastIndex = matchIndex + fullMatch.length;\n match = tagRegex.exec(content);\n }\n\n if (lastIndex < content.length) {\n appendChild(content.slice(lastIndex));\n }\n\n // Handle unclosed tags by appending them to the root or parent\n while (stack.length > 0) {\n const last = stack.pop();\n if (last) {\n appendChild({\n tagName: last.tagName,\n props: last.props,\n children: last.children,\n });\n }\n }\n\n astCache.set(content, elements);\n return elements;\n};\n\n/**\n * Interprets a string containing HTML-like tags and replaces them with provided components or strings.\n */\nexport const getHTML = (content: string, values: Components): any => {\n // Parse into AST (cached)\n const ast = parseHTML(content);\n\n // Render AST\n let keyCounter = 0;\n\n const renderASTNode = (node: ASTNode): any => {\n if (typeof node === 'string') {\n return node;\n }\n\n const { tagName, props, children } = node;\n const renderedChildren = children.flatMap(renderASTNode);\n const index = keyCounter++;\n\n let override = values[tagName];\n\n if (!override) {\n const lowerTagName = tagName.toLowerCase();\n const foundKey = Object.keys(values).find(\n (key) => key.toLowerCase() === lowerTagName\n );\n\n if (foundKey) override = values[foundKey];\n }\n\n const key = `html-tag-${tagName}-${index}`;\n\n if (typeof override === 'function') {\n return override({ ...props, children: renderedChildren, key });\n }\n\n if (typeof override === 'string') {\n const component = values[override];\n\n if (typeof component === 'function') {\n return component({ ...props, children: renderedChildren, key });\n }\n return renderedChildren;\n }\n\n if (\n typeof override === 'object' &&\n override !== null &&\n 'tag' in override\n ) {\n const { tag: targetTag, props: extraProps } = override as ComponentObject;\n const component = values[targetTag];\n\n if (typeof component === 'function') {\n return component({\n ...props,\n ...extraProps,\n children: renderedChildren,\n key,\n });\n }\n return renderedChildren;\n }\n\n // Default: Skip tag, render children\n return renderedChildren;\n };\n\n const result = ast.flatMap(renderASTNode);\n return result.length === 1 ? result[0] : result;\n};\n"],"mappings":"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"}