@intlayer/config 9.7.0 → 9.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
  2. package/dist/cjs/built.cjs +2 -3
  3. package/dist/cjs/bundle/index.cjs +6 -7
  4. package/dist/cjs/bundle/logBundle.cjs +4 -5
  5. package/dist/cjs/callers/base.cjs +1 -2
  6. package/dist/cjs/callers/compat/i18next.cjs +1 -2
  7. package/dist/cjs/callers/compat/lingui.cjs +1 -2
  8. package/dist/cjs/callers/compat/nextIntl.cjs +1 -2
  9. package/dist/cjs/callers/compat/ngxTranslate.cjs +1 -2
  10. package/dist/cjs/callers/compat/nuxtjsI18n.cjs +1 -2
  11. package/dist/cjs/callers/compat/reactI18next.cjs +1 -2
  12. package/dist/cjs/callers/compat/reactIntl.cjs +1 -2
  13. package/dist/cjs/callers/compat/svelteI18n.cjs +1 -2
  14. package/dist/cjs/callers/compat/useIntl.cjs +1 -2
  15. package/dist/cjs/callers/compat/vueI18n.cjs +1 -2
  16. package/dist/cjs/callers/index.cjs +13 -14
  17. package/dist/cjs/callers/transform.cjs +1 -2
  18. package/dist/cjs/client.cjs +15 -9
  19. package/dist/cjs/colors.cjs +1 -2
  20. package/dist/cjs/configFile/buildBrowserConfiguration.cjs +7 -8
  21. package/dist/cjs/configFile/buildConfigurationFields.cjs +10 -11
  22. package/dist/cjs/configFile/configurationSchema.cjs +2 -3
  23. package/dist/cjs/configFile/editorServerOverride.cjs +1 -2
  24. package/dist/cjs/configFile/getConfiguration.cjs +7 -8
  25. package/dist/cjs/configFile/index.cjs +6 -6
  26. package/dist/cjs/configFile/loadConfigurationFile.cjs +3 -4
  27. package/dist/cjs/configFile/searchConfigurationFile.cjs +3 -4
  28. package/dist/cjs/defaultValues/analytics.cjs +1 -2
  29. package/dist/cjs/defaultValues/build.cjs +1 -2
  30. package/dist/cjs/defaultValues/compiler.cjs +1 -2
  31. package/dist/cjs/defaultValues/content.cjs +1 -2
  32. package/dist/cjs/defaultValues/dictionary.cjs +1 -2
  33. package/dist/cjs/defaultValues/editor.cjs +1 -2
  34. package/dist/cjs/defaultValues/index.cjs +10 -10
  35. package/dist/cjs/defaultValues/internationalization.cjs +1 -2
  36. package/dist/cjs/defaultValues/log.cjs +2 -3
  37. package/dist/cjs/defaultValues/routing.cjs +1 -2
  38. package/dist/cjs/defaultValues/system.cjs +1 -2
  39. package/dist/cjs/dictionaryPreload.cjs +2 -3
  40. package/dist/cjs/envVars/envVars.cjs +1 -2
  41. package/dist/cjs/envVars/index.cjs +1 -1
  42. package/dist/cjs/extract/constants.cjs +1 -2
  43. package/dist/cjs/extract/index.cjs +2 -2
  44. package/dist/cjs/extract/shouldExtract.cjs +1 -2
  45. package/dist/cjs/loadEnvFile.cjs +2 -3
  46. package/dist/cjs/loadExternalFile/bundleFile.cjs +1 -2
  47. package/dist/cjs/loadExternalFile/bundleJSFile.cjs +1 -2
  48. package/dist/cjs/loadExternalFile/index.cjs +5 -5
  49. package/dist/cjs/loadExternalFile/loadExternalFile.cjs +5 -6
  50. package/dist/cjs/loadExternalFile/parseFileContent.cjs +4 -5
  51. package/dist/cjs/loadExternalFile/transpileTSToCJS.cjs +4 -5
  52. package/dist/cjs/loadExternalFile/transpileTSToCJS.cjs.map +1 -1
  53. package/dist/cjs/logger.cjs +2 -3
  54. package/dist/cjs/logger.cjs.map +1 -1
  55. package/dist/cjs/node.cjs +6 -6
  56. package/dist/cjs/secrets.browser.cjs +1 -2
  57. package/dist/cjs/secrets.cjs +1 -2
  58. package/dist/cjs/utils/ESMxCJSHelpers.cjs +2 -3
  59. package/dist/cjs/utils/alias.cjs +3 -4
  60. package/dist/cjs/utils/alias.cjs.map +1 -1
  61. package/dist/cjs/utils/builtConfigKeys.cjs +1 -2
  62. package/dist/cjs/utils/cacheDisk.cjs +3 -4
  63. package/dist/cjs/utils/cacheDisk.cjs.map +1 -1
  64. package/dist/cjs/utils/cacheMemory.cjs +1 -2
  65. package/dist/cjs/utils/chunkArray.cjs +22 -0
  66. package/dist/cjs/utils/chunkArray.cjs.map +1 -0
  67. package/dist/cjs/utils/clearModuleCache.cjs +2 -3
  68. package/dist/cjs/utils/compareVersions.cjs +1 -2
  69. package/dist/cjs/utils/extractErrorMessage.cjs +1 -2
  70. package/dist/cjs/utils/getDictionarySelectorUsage.cjs +1 -2
  71. package/dist/cjs/utils/getExtension.cjs +1 -2
  72. package/dist/cjs/utils/getPackageJsonPath.cjs +2 -3
  73. package/dist/cjs/utils/getStorageAttributes.cjs +2 -3
  74. package/dist/cjs/utils/getUsedNodeTypes.cjs +1 -2
  75. package/dist/cjs/utils/index.cjs +31 -24
  76. package/dist/cjs/utils/isPackageInstalled.cjs +2 -3
  77. package/dist/cjs/utils/logStack.cjs +3 -4
  78. package/dist/cjs/utils/normalizePath.cjs +1 -2
  79. package/dist/cjs/utils/pLimit.cjs +132 -0
  80. package/dist/cjs/utils/pLimit.cjs.map +1 -0
  81. package/dist/cjs/utils/parallelize.cjs +11 -0
  82. package/dist/cjs/utils/parallelize.cjs.map +1 -0
  83. package/dist/cjs/utils/parseFilePathPattern.cjs +1 -2
  84. package/dist/cjs/utils/pathSecurity.cjs +1 -2
  85. package/dist/cjs/utils/retryManager.cjs +3 -4
  86. package/dist/cjs/utils/setIntlayerIdentifier.cjs +1 -2
  87. package/dist/cjs/utils/stringFormatter/camelCaseToKebabCase.cjs +1 -2
  88. package/dist/cjs/utils/stringFormatter/camelCaseToSentence.cjs +1 -2
  89. package/dist/cjs/utils/stringFormatter/index.cjs +4 -4
  90. package/dist/cjs/utils/stringFormatter/kebabCaseToCamelCase.cjs +1 -2
  91. package/dist/cjs/utils/stringFormatter/toLowerCamelCase.cjs +1 -2
  92. package/dist/esm/_virtual/_rolldown/runtime.mjs +1 -2
  93. package/dist/esm/built.mjs +1 -2
  94. package/dist/esm/bundle/index.mjs +2 -3
  95. package/dist/esm/bundle/logBundle.mjs +2 -3
  96. package/dist/esm/callers/base.mjs +1 -2
  97. package/dist/esm/callers/compat/i18next.mjs +1 -2
  98. package/dist/esm/callers/compat/lingui.mjs +1 -2
  99. package/dist/esm/callers/compat/nextIntl.mjs +1 -2
  100. package/dist/esm/callers/compat/ngxTranslate.mjs +1 -2
  101. package/dist/esm/callers/compat/nuxtjsI18n.mjs +1 -2
  102. package/dist/esm/callers/compat/reactI18next.mjs +1 -2
  103. package/dist/esm/callers/compat/reactIntl.mjs +1 -2
  104. package/dist/esm/callers/compat/svelteI18n.mjs +1 -2
  105. package/dist/esm/callers/compat/useIntl.mjs +1 -2
  106. package/dist/esm/callers/compat/vueI18n.mjs +1 -2
  107. package/dist/esm/callers/index.mjs +1 -2
  108. package/dist/esm/callers/transform.mjs +1 -2
  109. package/dist/esm/client.mjs +4 -1
  110. package/dist/esm/colors.mjs +1 -2
  111. package/dist/esm/configFile/buildBrowserConfiguration.mjs +1 -2
  112. package/dist/esm/configFile/buildConfigurationFields.mjs +2 -3
  113. package/dist/esm/configFile/configurationSchema.mjs +1 -2
  114. package/dist/esm/configFile/editorServerOverride.mjs +1 -2
  115. package/dist/esm/configFile/getConfiguration.mjs +1 -2
  116. package/dist/esm/configFile/index.mjs +2 -2
  117. package/dist/esm/configFile/loadConfigurationFile.mjs +2 -3
  118. package/dist/esm/configFile/searchConfigurationFile.mjs +1 -2
  119. package/dist/esm/defaultValues/analytics.mjs +1 -2
  120. package/dist/esm/defaultValues/build.mjs +1 -2
  121. package/dist/esm/defaultValues/compiler.mjs +1 -2
  122. package/dist/esm/defaultValues/content.mjs +1 -2
  123. package/dist/esm/defaultValues/dictionary.mjs +1 -2
  124. package/dist/esm/defaultValues/editor.mjs +1 -2
  125. package/dist/esm/defaultValues/index.mjs +4 -4
  126. package/dist/esm/defaultValues/internationalization.mjs +1 -2
  127. package/dist/esm/defaultValues/log.mjs +1 -2
  128. package/dist/esm/defaultValues/routing.mjs +1 -2
  129. package/dist/esm/defaultValues/system.mjs +1 -2
  130. package/dist/esm/dictionaryPreload.mjs +1 -2
  131. package/dist/esm/envVars/envVars.mjs +1 -2
  132. package/dist/esm/extract/constants.mjs +1 -2
  133. package/dist/esm/extract/shouldExtract.mjs +1 -2
  134. package/dist/esm/loadEnvFile.mjs +1 -2
  135. package/dist/esm/loadExternalFile/bundleFile.mjs +1 -2
  136. package/dist/esm/loadExternalFile/bundleJSFile.mjs +1 -2
  137. package/dist/esm/loadExternalFile/index.mjs +3 -3
  138. package/dist/esm/loadExternalFile/loadExternalFile.mjs +1 -2
  139. package/dist/esm/loadExternalFile/parseFileContent.mjs +1 -2
  140. package/dist/esm/loadExternalFile/transpileTSToCJS.mjs +1 -2
  141. package/dist/esm/loadExternalFile/transpileTSToCJS.mjs.map +1 -1
  142. package/dist/esm/logger.mjs +1 -2
  143. package/dist/esm/logger.mjs.map +1 -1
  144. package/dist/esm/node.mjs +2 -2
  145. package/dist/esm/secrets.browser.mjs +1 -2
  146. package/dist/esm/secrets.mjs +1 -2
  147. package/dist/esm/utils/ESMxCJSHelpers.mjs +1 -2
  148. package/dist/esm/utils/alias.mjs +2 -3
  149. package/dist/esm/utils/alias.mjs.map +1 -1
  150. package/dist/esm/utils/builtConfigKeys.mjs +1 -2
  151. package/dist/esm/utils/cacheDisk.mjs +1 -2
  152. package/dist/esm/utils/cacheDisk.mjs.map +1 -1
  153. package/dist/esm/utils/cacheMemory.mjs +1 -2
  154. package/dist/esm/utils/chunkArray.mjs +21 -0
  155. package/dist/esm/utils/chunkArray.mjs.map +1 -0
  156. package/dist/esm/utils/clearModuleCache.mjs +1 -2
  157. package/dist/esm/utils/compareVersions.mjs +1 -2
  158. package/dist/esm/utils/extractErrorMessage.mjs +1 -2
  159. package/dist/esm/utils/getDictionarySelectorUsage.mjs +1 -2
  160. package/dist/esm/utils/getExtension.mjs +1 -2
  161. package/dist/esm/utils/getPackageJsonPath.mjs +1 -2
  162. package/dist/esm/utils/getStorageAttributes.mjs +1 -2
  163. package/dist/esm/utils/getUsedNodeTypes.mjs +1 -2
  164. package/dist/esm/utils/index.mjs +17 -14
  165. package/dist/esm/utils/isPackageInstalled.mjs +1 -2
  166. package/dist/esm/utils/logStack.mjs +1 -2
  167. package/dist/esm/utils/normalizePath.mjs +1 -2
  168. package/dist/esm/utils/pLimit.mjs +130 -0
  169. package/dist/esm/utils/pLimit.mjs.map +1 -0
  170. package/dist/esm/utils/parallelize.mjs +10 -0
  171. package/dist/esm/utils/parallelize.mjs.map +1 -0
  172. package/dist/esm/utils/parseFilePathPattern.mjs +1 -2
  173. package/dist/esm/utils/pathSecurity.mjs +1 -2
  174. package/dist/esm/utils/retryManager.mjs +2 -3
  175. package/dist/esm/utils/setIntlayerIdentifier.mjs +1 -2
  176. package/dist/esm/utils/stringFormatter/camelCaseToKebabCase.mjs +1 -2
  177. package/dist/esm/utils/stringFormatter/camelCaseToSentence.mjs +1 -2
  178. package/dist/esm/utils/stringFormatter/kebabCaseToCamelCase.mjs +1 -2
  179. package/dist/esm/utils/stringFormatter/toLowerCamelCase.mjs +1 -2
  180. package/dist/types/built.d.ts +0 -2
  181. package/dist/types/built.d.ts.map +1 -1
  182. package/dist/types/bundle/index.d.ts +0 -2
  183. package/dist/types/bundle/index.d.ts.map +1 -1
  184. package/dist/types/bundle/logBundle.d.ts +0 -2
  185. package/dist/types/bundle/logBundle.d.ts.map +1 -1
  186. package/dist/types/callers/base.d.ts +0 -2
  187. package/dist/types/callers/base.d.ts.map +1 -1
  188. package/dist/types/callers/compat/i18next.d.ts +0 -2
  189. package/dist/types/callers/compat/i18next.d.ts.map +1 -1
  190. package/dist/types/callers/compat/lingui.d.ts +0 -2
  191. package/dist/types/callers/compat/lingui.d.ts.map +1 -1
  192. package/dist/types/callers/compat/nextIntl.d.ts +0 -2
  193. package/dist/types/callers/compat/nextIntl.d.ts.map +1 -1
  194. package/dist/types/callers/compat/ngxTranslate.d.ts +0 -2
  195. package/dist/types/callers/compat/ngxTranslate.d.ts.map +1 -1
  196. package/dist/types/callers/compat/nuxtjsI18n.d.ts +0 -2
  197. package/dist/types/callers/compat/nuxtjsI18n.d.ts.map +1 -1
  198. package/dist/types/callers/compat/reactI18next.d.ts +0 -2
  199. package/dist/types/callers/compat/reactI18next.d.ts.map +1 -1
  200. package/dist/types/callers/compat/reactIntl.d.ts +0 -2
  201. package/dist/types/callers/compat/reactIntl.d.ts.map +1 -1
  202. package/dist/types/callers/compat/svelteI18n.d.ts +0 -2
  203. package/dist/types/callers/compat/svelteI18n.d.ts.map +1 -1
  204. package/dist/types/callers/compat/useIntl.d.ts +0 -2
  205. package/dist/types/callers/compat/useIntl.d.ts.map +1 -1
  206. package/dist/types/callers/compat/vueI18n.d.ts +0 -2
  207. package/dist/types/callers/compat/vueI18n.d.ts.map +1 -1
  208. package/dist/types/callers/index.d.ts +0 -2
  209. package/dist/types/callers/index.d.ts.map +1 -1
  210. package/dist/types/callers/transform.d.ts +0 -2
  211. package/dist/types/callers/transform.d.ts.map +1 -1
  212. package/dist/types/callers/types.d.ts +0 -2
  213. package/dist/types/callers/types.d.ts.map +1 -1
  214. package/dist/types/client.d.ts +5 -1
  215. package/dist/types/colors.d.ts +0 -1
  216. package/dist/types/configFile/buildBrowserConfiguration.d.ts +0 -2
  217. package/dist/types/configFile/buildBrowserConfiguration.d.ts.map +1 -1
  218. package/dist/types/configFile/buildConfigurationFields.d.ts +0 -2
  219. package/dist/types/configFile/buildConfigurationFields.d.ts.map +1 -1
  220. package/dist/types/configFile/configurationSchema.d.ts +0 -2
  221. package/dist/types/configFile/configurationSchema.d.ts.map +1 -1
  222. package/dist/types/configFile/editorServerOverride.d.ts +0 -2
  223. package/dist/types/configFile/editorServerOverride.d.ts.map +1 -1
  224. package/dist/types/configFile/getConfiguration.d.ts +1 -3
  225. package/dist/types/configFile/getConfiguration.d.ts.map +1 -1
  226. package/dist/types/configFile/index.d.ts +1 -1
  227. package/dist/types/configFile/loadConfigurationFile.d.ts +0 -2
  228. package/dist/types/configFile/loadConfigurationFile.d.ts.map +1 -1
  229. package/dist/types/configFile/searchConfigurationFile.d.ts +1 -2
  230. package/dist/types/configFile/searchConfigurationFile.d.ts.map +1 -1
  231. package/dist/types/defaultValues/analytics.d.ts +0 -2
  232. package/dist/types/defaultValues/analytics.d.ts.map +1 -1
  233. package/dist/types/defaultValues/build.d.ts +0 -2
  234. package/dist/types/defaultValues/build.d.ts.map +1 -1
  235. package/dist/types/defaultValues/compiler.d.ts +0 -2
  236. package/dist/types/defaultValues/compiler.d.ts.map +1 -1
  237. package/dist/types/defaultValues/content.d.ts +0 -2
  238. package/dist/types/defaultValues/content.d.ts.map +1 -1
  239. package/dist/types/defaultValues/dictionary.d.ts +0 -2
  240. package/dist/types/defaultValues/dictionary.d.ts.map +1 -1
  241. package/dist/types/defaultValues/editor.d.ts +0 -2
  242. package/dist/types/defaultValues/editor.d.ts.map +1 -1
  243. package/dist/types/defaultValues/internationalization.d.ts +1 -3
  244. package/dist/types/defaultValues/internationalization.d.ts.map +1 -1
  245. package/dist/types/defaultValues/log.d.ts +0 -2
  246. package/dist/types/defaultValues/log.d.ts.map +1 -1
  247. package/dist/types/defaultValues/routing.d.ts +0 -2
  248. package/dist/types/defaultValues/routing.d.ts.map +1 -1
  249. package/dist/types/defaultValues/system.d.ts +0 -2
  250. package/dist/types/defaultValues/system.d.ts.map +1 -1
  251. package/dist/types/dictionaryPreload.d.ts +0 -2
  252. package/dist/types/dictionaryPreload.d.ts.map +1 -1
  253. package/dist/types/envVars/envVars.d.ts +0 -2
  254. package/dist/types/envVars/envVars.d.ts.map +1 -1
  255. package/dist/types/extract/constants.d.ts +0 -2
  256. package/dist/types/extract/constants.d.ts.map +1 -1
  257. package/dist/types/extract/index.d.ts +11 -0
  258. package/dist/types/extract/shouldExtract.d.ts +0 -2
  259. package/dist/types/extract/shouldExtract.d.ts.map +1 -1
  260. package/dist/types/loadEnvFile.d.ts +0 -2
  261. package/dist/types/loadEnvFile.d.ts.map +1 -1
  262. package/dist/types/loadExternalFile/bundleFile.d.ts +0 -2
  263. package/dist/types/loadExternalFile/bundleFile.d.ts.map +1 -1
  264. package/dist/types/loadExternalFile/bundleJSFile.d.ts +0 -2
  265. package/dist/types/loadExternalFile/bundleJSFile.d.ts.map +1 -1
  266. package/dist/types/loadExternalFile/index.d.ts +3 -3
  267. package/dist/types/loadExternalFile/loadExternalFile.d.ts +0 -2
  268. package/dist/types/loadExternalFile/loadExternalFile.d.ts.map +1 -1
  269. package/dist/types/loadExternalFile/parseFileContent.d.ts +0 -2
  270. package/dist/types/loadExternalFile/parseFileContent.d.ts.map +1 -1
  271. package/dist/types/loadExternalFile/transpileTSToCJS.d.ts +0 -2
  272. package/dist/types/loadExternalFile/transpileTSToCJS.d.ts.map +1 -1
  273. package/dist/types/logger.d.ts +1 -3
  274. package/dist/types/logger.d.ts.map +1 -1
  275. package/dist/types/node.d.ts +1 -1
  276. package/dist/types/secrets.browser.d.ts +0 -2
  277. package/dist/types/secrets.browser.d.ts.map +1 -1
  278. package/dist/types/secrets.d.ts +0 -2
  279. package/dist/types/secrets.d.ts.map +1 -1
  280. package/dist/types/utils/ESMxCJSHelpers.d.ts +0 -2
  281. package/dist/types/utils/ESMxCJSHelpers.d.ts.map +1 -1
  282. package/dist/types/utils/alias.d.ts +0 -2
  283. package/dist/types/utils/alias.d.ts.map +1 -1
  284. package/dist/types/utils/builtConfigKeys.d.ts +0 -2
  285. package/dist/types/utils/builtConfigKeys.d.ts.map +1 -1
  286. package/dist/types/utils/cacheDisk.d.ts +1 -2
  287. package/dist/types/utils/cacheDisk.d.ts.map +1 -1
  288. package/dist/types/utils/cacheMemory.d.ts +1 -2
  289. package/dist/types/utils/cacheMemory.d.ts.map +1 -1
  290. package/dist/types/utils/chunkArray.d.ts +13 -0
  291. package/dist/types/utils/chunkArray.d.ts.map +1 -0
  292. package/dist/types/utils/clearModuleCache.d.ts +0 -2
  293. package/dist/types/utils/clearModuleCache.d.ts.map +1 -1
  294. package/dist/types/utils/compareVersions.d.ts +0 -2
  295. package/dist/types/utils/compareVersions.d.ts.map +1 -1
  296. package/dist/types/utils/extractErrorMessage.d.ts +0 -2
  297. package/dist/types/utils/extractErrorMessage.d.ts.map +1 -1
  298. package/dist/types/utils/getDictionarySelectorUsage.d.ts +1 -2
  299. package/dist/types/utils/getDictionarySelectorUsage.d.ts.map +1 -1
  300. package/dist/types/utils/getExtension.d.ts +0 -2
  301. package/dist/types/utils/getExtension.d.ts.map +1 -1
  302. package/dist/types/utils/getPackageJsonPath.d.ts +1 -2
  303. package/dist/types/utils/getPackageJsonPath.d.ts.map +1 -1
  304. package/dist/types/utils/getStorageAttributes.d.ts +0 -2
  305. package/dist/types/utils/getStorageAttributes.d.ts.map +1 -1
  306. package/dist/types/utils/getUsedNodeTypes.d.ts +0 -2
  307. package/dist/types/utils/getUsedNodeTypes.d.ts.map +1 -1
  308. package/dist/types/utils/index.d.ts +15 -11
  309. package/dist/types/utils/isPackageInstalled.d.ts +0 -2
  310. package/dist/types/utils/isPackageInstalled.d.ts.map +1 -1
  311. package/dist/types/utils/logStack.d.ts +0 -2
  312. package/dist/types/utils/logStack.d.ts.map +1 -1
  313. package/dist/types/utils/normalizePath.d.ts +0 -2
  314. package/dist/types/utils/normalizePath.d.ts.map +1 -1
  315. package/dist/types/utils/pLimit.d.ts +13 -0
  316. package/dist/types/utils/pLimit.d.ts.map +1 -0
  317. package/dist/types/utils/parallelize.d.ts +2 -0
  318. package/dist/types/utils/parallelize.d.ts.map +1 -0
  319. package/dist/types/utils/parseFilePathPattern.d.ts +0 -2
  320. package/dist/types/utils/parseFilePathPattern.d.ts.map +1 -1
  321. package/dist/types/utils/pathSecurity.d.ts +0 -2
  322. package/dist/types/utils/pathSecurity.d.ts.map +1 -1
  323. package/dist/types/utils/retryManager.d.ts +0 -2
  324. package/dist/types/utils/retryManager.d.ts.map +1 -1
  325. package/dist/types/utils/setIntlayerIdentifier.d.ts +1 -2
  326. package/dist/types/utils/setIntlayerIdentifier.d.ts.map +1 -1
  327. package/dist/types/utils/stringFormatter/camelCaseToKebabCase.d.ts +0 -2
  328. package/dist/types/utils/stringFormatter/camelCaseToKebabCase.d.ts.map +1 -1
  329. package/dist/types/utils/stringFormatter/camelCaseToSentence.d.ts +0 -2
  330. package/dist/types/utils/stringFormatter/camelCaseToSentence.d.ts.map +1 -1
  331. package/dist/types/utils/stringFormatter/kebabCaseToCamelCase.d.ts +0 -2
  332. package/dist/types/utils/stringFormatter/kebabCaseToCamelCase.d.ts.map +1 -1
  333. package/dist/types/utils/stringFormatter/toLowerCamelCase.d.ts +0 -2
  334. package/dist/types/utils/stringFormatter/toLowerCamelCase.d.ts.map +1 -1
  335. package/package.json +73 -73
@@ -1 +1 @@
1
- {"version":3,"file":"alias.cjs","names":["getExtension","normalizePath","relative","join"],"sources":["../../../src/utils/alias.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { getExtension } from './getExtension';\nimport { normalizePath } from './normalizePath';\n\nexport type GetAliasOptions = {\n configuration: IntlayerConfig;\n format?: 'esm' | 'cjs';\n formatter?: (value: string) => string;\n};\n\n/**\n * Generated entry files of `.intlayer/main`, keyed by the\n * `@intlayer/dictionaries-entry` subpath that resolves to them.\n */\nconst DICTIONARIES_ENTRY_SUBPATH_FILES = {\n unmerged: 'unmerged_dictionaries',\n remote: 'remote_dictionaries',\n dynamic: 'dynamic_dictionaries',\n fetch: 'fetch_dictionaries',\n} as const;\n\ntype DictionariesEntrySubpath = keyof typeof DICTIONARIES_ENTRY_SUBPATH_FILES;\n\ntype DictionariesEntrySubpathAlias = {\n [Subpath in DictionariesEntrySubpath as `@intlayer/dictionaries-entry/${Subpath}`]: string;\n};\n\n/**\n * Maps the aliasable Intlayer packages to the generated `.intlayer` files so\n * bundlers (webpack, Vite, Turbopack, esbuild, Metro, …) resolve them to the\n * app's own dictionaries and hot reload on any content change.\n *\n * Key order matters: webpack (enhanced-resolve) and Vite match string aliases\n * by prefix and stop at the first hit, so the bare `@intlayer/dictionaries-entry`\n * key MUST come after its subpaths, otherwise `@intlayer/dictionaries-entry/remote`\n * would be rewritten to `<dictionaries entry>/remote`.\n */\nexport const getAlias = ({\n configuration,\n format,\n formatter = (value: string) => value,\n}: GetAliasOptions) => {\n const extension = getExtension(\n configuration,\n format ?? configuration.build.outputFormat[0] ?? 'esm'\n );\n\n const { baseDir, mainDir, configDir } = configuration.system;\n\n const toAliasPath = (absolutePath: string) =>\n formatter(normalizePath(relative(baseDir, absolutePath)));\n\n const subpathAlias = Object.fromEntries(\n Object.entries(DICTIONARIES_ENTRY_SUBPATH_FILES).map(\n ([subpath, fileName]) => [\n `@intlayer/dictionaries-entry/${subpath}`,\n toAliasPath(join(mainDir, `${fileName}.${extension}`)),\n ]\n )\n ) as DictionariesEntrySubpathAlias;\n\n return {\n ...subpathAlias,\n '@intlayer/dictionaries-entry': toAliasPath(\n join(mainDir, `dictionaries.${extension}`)\n ),\n '@intlayer/config/built': toAliasPath(\n join(configDir, `configuration.${extension}`)\n ),\n };\n};\n"],"mappings":";;;;;;;;;;AAeA,MAAM,mCAAmC;CACvC,UAAU;CACV,QAAQ;CACR,SAAS;CACT,OAAO;AACT;;;;;;;;;;;AAkBA,MAAa,YAAY,EACvB,eACA,QACA,aAAa,UAAkB,YACV;CACrB,MAAM,YAAYA,wCAChB,eACA,UAAU,cAAc,MAAM,aAAa,MAAM,KACnD;CAEA,MAAM,EAAE,SAAS,SAAS,cAAc,cAAc;CAEtD,MAAM,eAAe,iBACnB,UAAUC,8CAAcC,oBAAS,SAAS,YAAY,CAAC,CAAC;CAW1D,OAAO;EACL,GAVmB,OAAO,YAC1B,OAAO,QAAQ,gCAAgC,CAAC,CAAC,KAC9C,CAAC,SAAS,cAAc,CACvB,gCAAgC,WAChC,gBAAYC,gBAAK,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC,CACvD,CACF,CAIc;EACd,gCAAgC,gBAC9BA,gBAAK,SAAS,gBAAgB,WAAW,CAC3C;EACA,0BAA0B,gBACxBA,gBAAK,WAAW,iBAAiB,WAAW,CAC9C;CACF;AACF"}
1
+ {"version":3,"file":"alias.cjs","names":["getExtension","normalizePath","relative","join"],"sources":["../../../src/utils/alias.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { getExtension } from './getExtension';\nimport { normalizePath } from './normalizePath';\n\nexport type GetAliasOptions = {\n configuration: IntlayerConfig;\n format?: 'esm' | 'cjs';\n formatter?: (value: string) => string;\n};\n\n/**\n * Generated entry files of `.intlayer/main`, keyed by the\n * `@intlayer/dictionaries-entry` subpath that resolves to them.\n */\nconst DICTIONARIES_ENTRY_SUBPATH_FILES = {\n unmerged: 'unmerged_dictionaries',\n remote: 'remote_dictionaries',\n dynamic: 'dynamic_dictionaries',\n fetch: 'fetch_dictionaries',\n} as const;\n\ntype DictionariesEntrySubpath = keyof typeof DICTIONARIES_ENTRY_SUBPATH_FILES;\n\ntype DictionariesEntrySubpathAlias = {\n [\n Subpath in DictionariesEntrySubpath as `@intlayer/dictionaries-entry/${Subpath}`\n ]: string;\n};\n\n/**\n * Maps the aliasable Intlayer packages to the generated `.intlayer` files so\n * bundlers (webpack, Vite, Turbopack, esbuild, Metro, …) resolve them to the\n * app's own dictionaries and hot reload on any content change.\n *\n * Key order matters: webpack (enhanced-resolve) and Vite match string aliases\n * by prefix and stop at the first hit, so the bare `@intlayer/dictionaries-entry`\n * key MUST come after its subpaths, otherwise `@intlayer/dictionaries-entry/remote`\n * would be rewritten to `<dictionaries entry>/remote`.\n */\nexport const getAlias = ({\n configuration,\n format,\n formatter = (value: string) => value,\n}: GetAliasOptions) => {\n const extension = getExtension(\n configuration,\n format ?? configuration.build.outputFormat[0] ?? 'esm'\n );\n\n const { baseDir, mainDir, configDir } = configuration.system;\n\n const toAliasPath = (absolutePath: string) =>\n formatter(normalizePath(relative(baseDir, absolutePath)));\n\n const subpathAlias = Object.fromEntries(\n Object.entries(DICTIONARIES_ENTRY_SUBPATH_FILES).map(\n ([subpath, fileName]) => [\n `@intlayer/dictionaries-entry/${subpath}`,\n toAliasPath(join(mainDir, `${fileName}.${extension}`)),\n ]\n )\n ) as DictionariesEntrySubpathAlias;\n\n return {\n ...subpathAlias,\n '@intlayer/dictionaries-entry': toAliasPath(\n join(mainDir, `dictionaries.${extension}`)\n ),\n '@intlayer/config/built': toAliasPath(\n join(configDir, `configuration.${extension}`)\n ),\n };\n};\n"],"mappings":";;;;;;;;;;AAeA,MAAM,mCAAmC;CACvC,UAAU;CACV,QAAQ;CACR,SAAS;CACT,OAAO;AACT;;;;;;;;;;;AAoBA,MAAa,YAAY,EACvB,eACA,QACA,aAAa,UAAkB,YACV;CACrB,MAAM,YAAYA,wCAChB,eACA,UAAU,cAAc,MAAM,aAAa,MAAM,KACnD;CAEA,MAAM,EAAE,SAAS,SAAS,cAAc,cAAc;CAEtD,MAAM,eAAe,iBACnB,UAAUC,8CAAcC,oBAAS,SAAS,YAAY,CAAC,CAAC;CAW1D,OAAO;EACL,GAVmB,OAAO,YAC1B,OAAO,QAAQ,gCAAgC,CAAC,CAAC,KAC9C,CAAC,SAAS,cAAc,CACvB,gCAAgC,WAChC,gBAAYC,gBAAK,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC,CACvD,CACF,CAIc;EACd,gCAAgC,gBAC9BA,gBAAK,SAAS,gBAAgB,WAAW,CAC3C;EACA,0BAA0B,gBACxBA,gBAAK,WAAW,iBAAiB,WAAW,CAC9C;CACF;AACF"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- //#region src/utils/builtConfigKeys.ts
2
+ // src/utils/builtConfigKeys.ts
3
3
  /**
4
4
  * Canonical list of configuration sections exposed as named exports by
5
5
  * `@intlayer/config/built`.
@@ -32,6 +32,5 @@ const BUILT_CONFIG_KEYS = [
32
32
  "plugins"
33
33
  ];
34
34
 
35
- //#endregion
36
35
  exports.BUILT_CONFIG_KEYS = BUILT_CONFIG_KEYS;
37
36
  //# sourceMappingURL=builtConfigKeys.cjs.map
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
- const require_utils_cacheMemory = require('./cacheMemory.cjs');
2
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
3
+ const require_utils_cacheMemory = require("./cacheMemory.cjs");
4
4
  let node_path = require("node:path");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  let node_v8 = require("node:v8");
@@ -8,7 +8,7 @@ let node_zlib = require("node:zlib");
8
8
  let _intlayer_types_package_json = require("@intlayer/types/package.json");
9
9
  _intlayer_types_package_json = require_runtime.__toESM(_intlayer_types_package_json);
10
10
 
11
- //#region src/utils/cacheDisk.ts
11
+ // src/utils/cacheDisk.ts
12
12
  const DEFAULTS = { compress: true };
13
13
  const ensureDir = async (dir) => {
14
14
  await (0, node_fs_promises.mkdir)(dir, { recursive: true });
@@ -183,7 +183,6 @@ const cacheDisk = (intlayerConfig, keys, options) => {
183
183
  };
184
184
  };
185
185
 
186
- //#endregion
187
186
  exports.cacheDisk = cacheDisk;
188
187
  exports.clearDiskCacheMemory = clearDiskCacheMemory;
189
188
  //# sourceMappingURL=cacheDisk.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cacheDisk.cjs","names":["mkdir","basename","join","writeFile","rename","rm","computeKeyId","stat","readFile","gunzipSync","deserialize","configPackageJson","unlink","dirname","serialize","gzipSync"],"sources":["../../../src/utils/cacheDisk.ts"],"sourcesContent":["import {\n mkdir,\n readFile,\n rename,\n rm,\n stat,\n unlink,\n writeFile,\n} from 'node:fs/promises';\nimport { basename, dirname, join } from 'node:path';\nimport { deserialize, serialize } from 'node:v8';\nimport { gunzipSync, gzipSync } from 'node:zlib';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport configPackageJson from '@intlayer/types/package.json' with {\n type: 'json',\n};\nimport { type CacheKey, clearAllCache, computeKeyId } from './cacheMemory';\n\n/** ------------------------- Persistence layer ------------------------- **/\n\n/** Cache envelope structure stored on disk */\ntype CacheEnvelope = {\n /** Version of the config package (for cache invalidation) */\n version: string;\n /** Timestamp when the cache entry was created (in milliseconds) */\n timestamp: number;\n /** Data payload (the actual cached value) */\n data: unknown;\n};\n\ntype LocalCacheOptions = {\n /** Preferred new option name */\n persistent?: boolean;\n /** Time-to-live in ms; if expired, disk entry is ignored. */\n ttlMs?: number;\n /** Max age in ms based on stored creation timestamp; invalidates on exceed. */\n maxTimeMs?: number;\n /** Optional namespace to separate different logical caches. */\n namespace?: string;\n /** Gzip values on disk (on by default for blobs > 1KB). */\n compress?: boolean;\n};\n\nconst DEFAULTS: Required<Pick<LocalCacheOptions, 'compress'>> = {\n compress: true,\n};\n\nconst ensureDir = async (dir: string) => {\n await mkdir(dir, { recursive: true });\n};\n\nconst atomicWriteFile = async (\n file: string,\n data: Buffer,\n tempDir?: string\n) => {\n if (tempDir) {\n try {\n await ensureDir(tempDir);\n } catch {}\n }\n\n const tempFileName = `${basename(file)}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`;\n const tmp = tempDir\n ? join(tempDir, tempFileName)\n : `${file}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`;\n try {\n await writeFile(tmp, data);\n await rename(tmp, file);\n } catch (error) {\n try {\n await rm(tmp, { force: true });\n } catch {\n // Ignore\n }\n throw error;\n }\n};\n\nconst shouldUseCompression = (buf: Buffer, force?: boolean) =>\n force === true || (force !== false && buf.byteLength > 1024);\n\n/** Derive on-disk path from config dir + namespace + key id. */\nconst cachePath = (cacheDir: string, id: string, ns?: string) =>\n join(cacheDir, ns ? join(ns, id) : id);\n\n/** ------------------------- Local cache facade ------------------------- **/\n\nconst cacheMap = new Map<string, any>();\n\n/** Clears the in-memory portion of the disk cache without touching disk files. */\nexport const clearDiskCacheMemory = (): void => {\n cacheMap.clear();\n};\n\nexport const cacheDisk = (\n intlayerConfig: IntlayerConfig,\n keys: CacheKey[],\n options?: LocalCacheOptions\n) => {\n const { cacheDir, tempDir } = intlayerConfig.system;\n const buildCacheEnabled = intlayerConfig.build.cache ?? true;\n const persistent =\n options?.persistent === true ||\n (typeof options?.persistent === 'undefined' && buildCacheEnabled);\n\n const { compress, ttlMs, maxTimeMs, namespace } = {\n ...DEFAULTS,\n ...options,\n };\n\n // single stable id for this key tuple (works for both memory & disk)\n const id = computeKeyId(keys);\n const filePath = cachePath(cacheDir, id, namespace);\n\n const readFromDisk = async (): Promise<unknown | undefined> => {\n try {\n const statValue = await stat(filePath).catch(() => undefined);\n\n if (!statValue) return undefined;\n\n if (typeof ttlMs === 'number' && ttlMs > 0) {\n const age = Date.now() - statValue.mtimeMs;\n if (age > ttlMs) return undefined;\n }\n let raw = await readFile(filePath);\n // header: 1 byte flag (0x00 raw, 0x01 gzip)\n const flag = raw[0];\n\n raw = raw.subarray(1);\n\n const payload = flag === 0x01 ? gunzipSync(raw) : raw;\n const deserialized = deserialize(payload) as unknown;\n\n let value: unknown;\n const maybeObj = deserialized as Record<string, unknown> | null;\n const isEnvelope =\n !!maybeObj &&\n typeof maybeObj === 'object' &&\n typeof (maybeObj as any).version === 'string' &&\n typeof (maybeObj as any).timestamp === 'number' &&\n Object.hasOwn(maybeObj, 'data');\n\n if (isEnvelope) {\n const entry = maybeObj as CacheEnvelope;\n\n if (entry.version !== configPackageJson.version) {\n try {\n await unlink(filePath);\n } catch {}\n return undefined;\n }\n\n if (typeof maxTimeMs === 'number' && maxTimeMs > 0) {\n const age = Date.now() - entry.timestamp;\n if (age > maxTimeMs) {\n try {\n await unlink(filePath);\n } catch {}\n return undefined;\n }\n }\n\n value = entry.data;\n } else {\n // Backward compatibility: old entries had raw serialized value.\n if (typeof maxTimeMs === 'number' && maxTimeMs > 0) {\n const age = Date.now() - statValue.mtimeMs;\n if (age > maxTimeMs) {\n try {\n await unlink(filePath);\n } catch {}\n return undefined;\n }\n }\n value = deserialized;\n }\n\n // hydrate memory cache as well\n cacheMap.set(id, value);\n return value;\n } catch {\n return undefined;\n }\n };\n\n const writeToDisk = async (value: unknown) => {\n try {\n await ensureDir(dirname(filePath));\n const envelope: CacheEnvelope = {\n version: configPackageJson.version,\n timestamp: Date.now(),\n data: value,\n };\n const payload = Buffer.from(serialize(envelope));\n\n const gz = shouldUseCompression(payload, compress)\n ? gzipSync(payload)\n : payload;\n\n // prepend a 1-byte header indicating compression\n const buf = Buffer.concat([\n Buffer.from([gz === payload ? 0x00 : 0x01]),\n gz,\n ]);\n\n await atomicWriteFile(filePath, buf, tempDir);\n } catch {\n // swallow disk errors for cache writes\n }\n };\n\n return {\n /** In-memory first, then disk (if enabled), otherwise undefined. */\n get: async <T>(): Promise<T | undefined> => {\n const mem = cacheMap.get(id);\n\n if (mem !== undefined) return mem as T;\n\n if (persistent && buildCacheEnabled) {\n return (await readFromDisk()) as T | undefined;\n }\n return undefined;\n },\n /** Sets in-memory (always) and persists to disk if enabled. */\n set: async (value: unknown): Promise<void> => {\n cacheMap.set(id, value);\n\n if (persistent && buildCacheEnabled) {\n await writeToDisk(value);\n }\n },\n /** Clears only this entry from memory and disk. */\n clear: async (): Promise<void> => {\n cacheMap.delete(id);\n\n try {\n await unlink(filePath);\n } catch {}\n },\n /** Clears ALL cached entries (memory Map and entire cacheDir namespace if persistent). */\n clearAll: async (): Promise<void> => {\n clearAllCache();\n if (persistent && buildCacheEnabled) {\n // remove only the current namespace (if provided), else the root dir\n const base = namespace ? join(cacheDir, namespace) : cacheDir;\n\n try {\n await rm(base, { recursive: true, force: true });\n } catch {}\n\n try {\n await mkdir(base, { recursive: true });\n } catch {}\n }\n },\n /** Expose the computed id (useful if you want to key other structures). */\n isValid: async (): Promise<boolean> => {\n const cachedValue = cacheMap.get(id);\n if (cachedValue !== undefined) return true;\n\n // If persistence is disabled or build cache disabled, only memory can be valid\n if (!persistent || !buildCacheEnabled) return false;\n\n try {\n const statValue = await stat(filePath).catch(() => undefined);\n if (!statValue) return false;\n\n if (typeof ttlMs === 'number' && ttlMs > 0) {\n const age = Date.now() - statValue.mtimeMs;\n if (age > ttlMs) return false;\n }\n\n let raw = await readFile(filePath);\n const flag = raw[0];\n raw = raw.subarray(1);\n const payload = flag === 0x01 ? gunzipSync(raw) : raw;\n const deserialized = deserialize(payload) as unknown;\n\n const maybeObj = deserialized as Record<string, unknown> | null;\n const isEnvelope =\n !!maybeObj &&\n typeof maybeObj === 'object' &&\n typeof maybeObj.version === 'string' &&\n typeof maybeObj.timestamp === 'number' &&\n Object.hasOwn(maybeObj, 'data');\n\n if (isEnvelope) {\n const entry = maybeObj as CacheEnvelope;\n if (entry.version !== configPackageJson.version) return false;\n\n if (typeof maxTimeMs === 'number' && maxTimeMs > 0) {\n const age = Date.now() - entry.timestamp;\n if (age > maxTimeMs) return false;\n }\n return true;\n }\n\n if (typeof maxTimeMs === 'number' && maxTimeMs > 0) {\n const age = Date.now() - statValue.mtimeMs;\n if (age > maxTimeMs) return false;\n }\n return true;\n } catch {\n return false;\n }\n },\n /** Expose the computed id (useful if you want to key other structures). */\n id,\n /** Expose the absolute file path for debugging. */\n filePath,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"cacheDisk.cjs","names":["mkdir","basename","join","writeFile","rename","rm","computeKeyId","stat","readFile","gunzipSync","deserialize","configPackageJson","unlink","dirname","serialize","gzipSync"],"sources":["../../../src/utils/cacheDisk.ts"],"sourcesContent":["import {\n mkdir,\n readFile,\n rename,\n rm,\n stat,\n unlink,\n writeFile,\n} from 'node:fs/promises';\nimport { basename, dirname, join } from 'node:path';\nimport { deserialize, serialize } from 'node:v8';\nimport { gunzipSync, gzipSync } from 'node:zlib';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport configPackageJson from '@intlayer/types/package.json' with { type: 'json' };\nimport { type CacheKey, clearAllCache, computeKeyId } from './cacheMemory';\n\n/** ------------------------- Persistence layer ------------------------- **/\n\n/** Cache envelope structure stored on disk */\ntype CacheEnvelope = {\n /** Version of the config package (for cache invalidation) */\n version: string;\n /** Timestamp when the cache entry was created (in milliseconds) */\n timestamp: number;\n /** Data payload (the actual cached value) */\n data: unknown;\n};\n\ntype LocalCacheOptions = {\n /** Preferred new option name */\n persistent?: boolean;\n /** Time-to-live in ms; if expired, disk entry is ignored. */\n ttlMs?: number;\n /** Max age in ms based on stored creation timestamp; invalidates on exceed. */\n maxTimeMs?: number;\n /** Optional namespace to separate different logical caches. */\n namespace?: string;\n /** Gzip values on disk (on by default for blobs > 1KB). */\n compress?: boolean;\n};\n\nconst DEFAULTS: Required<Pick<LocalCacheOptions, 'compress'>> = {\n compress: true,\n};\n\nconst ensureDir = async (dir: string) => {\n await mkdir(dir, { recursive: true });\n};\n\nconst atomicWriteFile = async (\n file: string,\n data: Buffer,\n tempDir?: string\n) => {\n if (tempDir) {\n try {\n await ensureDir(tempDir);\n } catch {}\n }\n\n const tempFileName = `${basename(file)}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`;\n const tmp = tempDir\n ? join(tempDir, tempFileName)\n : `${file}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`;\n try {\n await writeFile(tmp, data);\n await rename(tmp, file);\n } catch (error) {\n try {\n await rm(tmp, { force: true });\n } catch {\n // Ignore\n }\n throw error;\n }\n};\n\nconst shouldUseCompression = (buf: Buffer, force?: boolean) =>\n force === true || (force !== false && buf.byteLength > 1024);\n\n/** Derive on-disk path from config dir + namespace + key id. */\nconst cachePath = (cacheDir: string, id: string, ns?: string) =>\n join(cacheDir, ns ? join(ns, id) : id);\n\n/** ------------------------- Local cache facade ------------------------- **/\n\nconst cacheMap = new Map<string, any>();\n\n/** Clears the in-memory portion of the disk cache without touching disk files. */\nexport const clearDiskCacheMemory = (): void => {\n cacheMap.clear();\n};\n\nexport const cacheDisk = (\n intlayerConfig: IntlayerConfig,\n keys: CacheKey[],\n options?: LocalCacheOptions\n) => {\n const { cacheDir, tempDir } = intlayerConfig.system;\n const buildCacheEnabled = intlayerConfig.build.cache ?? true;\n const persistent =\n options?.persistent === true ||\n (typeof options?.persistent === 'undefined' && buildCacheEnabled);\n\n const { compress, ttlMs, maxTimeMs, namespace } = {\n ...DEFAULTS,\n ...options,\n };\n\n // single stable id for this key tuple (works for both memory & disk)\n const id = computeKeyId(keys);\n const filePath = cachePath(cacheDir, id, namespace);\n\n const readFromDisk = async (): Promise<unknown | undefined> => {\n try {\n const statValue = await stat(filePath).catch(() => undefined);\n\n if (!statValue) return undefined;\n\n if (typeof ttlMs === 'number' && ttlMs > 0) {\n const age = Date.now() - statValue.mtimeMs;\n if (age > ttlMs) return undefined;\n }\n let raw = await readFile(filePath);\n // header: 1 byte flag (0x00 raw, 0x01 gzip)\n const flag = raw[0];\n\n raw = raw.subarray(1);\n\n const payload = flag === 0x01 ? gunzipSync(raw) : raw;\n const deserialized = deserialize(payload) as unknown;\n\n let value: unknown;\n const maybeObj = deserialized as Record<string, unknown> | null;\n const isEnvelope =\n !!maybeObj &&\n typeof maybeObj === 'object' &&\n typeof (maybeObj as any).version === 'string' &&\n typeof (maybeObj as any).timestamp === 'number' &&\n Object.hasOwn(maybeObj, 'data');\n\n if (isEnvelope) {\n const entry = maybeObj as CacheEnvelope;\n\n if (entry.version !== configPackageJson.version) {\n try {\n await unlink(filePath);\n } catch {}\n return undefined;\n }\n\n if (typeof maxTimeMs === 'number' && maxTimeMs > 0) {\n const age = Date.now() - entry.timestamp;\n if (age > maxTimeMs) {\n try {\n await unlink(filePath);\n } catch {}\n return undefined;\n }\n }\n\n value = entry.data;\n } else {\n // Backward compatibility: old entries had raw serialized value.\n if (typeof maxTimeMs === 'number' && maxTimeMs > 0) {\n const age = Date.now() - statValue.mtimeMs;\n if (age > maxTimeMs) {\n try {\n await unlink(filePath);\n } catch {}\n return undefined;\n }\n }\n value = deserialized;\n }\n\n // hydrate memory cache as well\n cacheMap.set(id, value);\n return value;\n } catch {\n return undefined;\n }\n };\n\n const writeToDisk = async (value: unknown) => {\n try {\n await ensureDir(dirname(filePath));\n const envelope: CacheEnvelope = {\n version: configPackageJson.version,\n timestamp: Date.now(),\n data: value,\n };\n const payload = Buffer.from(serialize(envelope));\n\n const gz = shouldUseCompression(payload, compress)\n ? gzipSync(payload)\n : payload;\n\n // prepend a 1-byte header indicating compression\n const buf = Buffer.concat([\n Buffer.from([gz === payload ? 0x00 : 0x01]),\n gz,\n ]);\n\n await atomicWriteFile(filePath, buf, tempDir);\n } catch {\n // swallow disk errors for cache writes\n }\n };\n\n return {\n /** In-memory first, then disk (if enabled), otherwise undefined. */\n get: async <T>(): Promise<T | undefined> => {\n const mem = cacheMap.get(id);\n\n if (mem !== undefined) return mem as T;\n\n if (persistent && buildCacheEnabled) {\n return (await readFromDisk()) as T | undefined;\n }\n return undefined;\n },\n /** Sets in-memory (always) and persists to disk if enabled. */\n set: async (value: unknown): Promise<void> => {\n cacheMap.set(id, value);\n\n if (persistent && buildCacheEnabled) {\n await writeToDisk(value);\n }\n },\n /** Clears only this entry from memory and disk. */\n clear: async (): Promise<void> => {\n cacheMap.delete(id);\n\n try {\n await unlink(filePath);\n } catch {}\n },\n /** Clears ALL cached entries (memory Map and entire cacheDir namespace if persistent). */\n clearAll: async (): Promise<void> => {\n clearAllCache();\n if (persistent && buildCacheEnabled) {\n // remove only the current namespace (if provided), else the root dir\n const base = namespace ? join(cacheDir, namespace) : cacheDir;\n\n try {\n await rm(base, { recursive: true, force: true });\n } catch {}\n\n try {\n await mkdir(base, { recursive: true });\n } catch {}\n }\n },\n /** Expose the computed id (useful if you want to key other structures). */\n isValid: async (): Promise<boolean> => {\n const cachedValue = cacheMap.get(id);\n if (cachedValue !== undefined) return true;\n\n // If persistence is disabled or build cache disabled, only memory can be valid\n if (!persistent || !buildCacheEnabled) return false;\n\n try {\n const statValue = await stat(filePath).catch(() => undefined);\n if (!statValue) return false;\n\n if (typeof ttlMs === 'number' && ttlMs > 0) {\n const age = Date.now() - statValue.mtimeMs;\n if (age > ttlMs) return false;\n }\n\n let raw = await readFile(filePath);\n const flag = raw[0];\n raw = raw.subarray(1);\n const payload = flag === 0x01 ? gunzipSync(raw) : raw;\n const deserialized = deserialize(payload) as unknown;\n\n const maybeObj = deserialized as Record<string, unknown> | null;\n const isEnvelope =\n !!maybeObj &&\n typeof maybeObj === 'object' &&\n typeof maybeObj.version === 'string' &&\n typeof maybeObj.timestamp === 'number' &&\n Object.hasOwn(maybeObj, 'data');\n\n if (isEnvelope) {\n const entry = maybeObj as CacheEnvelope;\n if (entry.version !== configPackageJson.version) return false;\n\n if (typeof maxTimeMs === 'number' && maxTimeMs > 0) {\n const age = Date.now() - entry.timestamp;\n if (age > maxTimeMs) return false;\n }\n return true;\n }\n\n if (typeof maxTimeMs === 'number' && maxTimeMs > 0) {\n const age = Date.now() - statValue.mtimeMs;\n if (age > maxTimeMs) return false;\n }\n return true;\n } catch {\n return false;\n }\n },\n /** Expose the computed id (useful if you want to key other structures). */\n id,\n /** Expose the absolute file path for debugging. */\n filePath,\n };\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  let node_crypto = require("node:crypto");
3
3
 
4
- //#region src/utils/cacheMemory.ts
4
+ // src/utils/cacheMemory.ts
5
5
  /** ------------------------- Utilities ------------------------- **/
6
6
  /** Prefer a fast non-crypto hash if available, then fast crypto, then sha256. */
7
7
  const pickHashAlgorithm = () => {
@@ -258,7 +258,6 @@ const cacheMemory = {
258
258
  clear: clearCache
259
259
  };
260
260
 
261
- //#endregion
262
261
  exports.cacheMemory = cacheMemory;
263
262
  exports.clearAllCache = clearAllCache;
264
263
  exports.clearCache = clearCache;
@@ -0,0 +1,22 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ // src/utils/chunkArray.ts
3
+ /**
4
+ * Splits an array into consecutive chunks of at most `chunkSize` items.
5
+ *
6
+ * The last chunk holds the remainder and may be smaller. An empty input, or a
7
+ * `chunkSize` lower than 1, returns an empty list of chunks.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * chunkArray(['a', 'b', 'c', 'd', 'e'], 2); // [['a', 'b'], ['c', 'd'], ['e']]
12
+ * ```
13
+ */
14
+ const chunkArray = (items, chunkSize) => {
15
+ if (chunkSize < 1) return [];
16
+ const chunks = [];
17
+ for (let index = 0; index < items.length; index += chunkSize) chunks.push(items.slice(index, index + chunkSize));
18
+ return chunks;
19
+ };
20
+
21
+ exports.chunkArray = chunkArray;
22
+ //# sourceMappingURL=chunkArray.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkArray.cjs","names":[],"sources":["../../../src/utils/chunkArray.ts"],"sourcesContent":["/**\n * Splits an array into consecutive chunks of at most `chunkSize` items.\n *\n * The last chunk holds the remainder and may be smaller. An empty input, or a\n * `chunkSize` lower than 1, returns an empty list of chunks.\n *\n * @example\n * ```ts\n * chunkArray(['a', 'b', 'c', 'd', 'e'], 2); // [['a', 'b'], ['c', 'd'], ['e']]\n * ```\n */\nexport const chunkArray = <T>(items: T[], chunkSize: number): T[][] => {\n if (chunkSize < 1) return [];\n\n const chunks: T[][] = [];\n\n for (let index = 0; index < items.length; index += chunkSize) {\n chunks.push(items.slice(index, index + chunkSize));\n }\n\n return chunks;\n};\n"],"mappings":";;;;;;;;;;;;;AAWA,MAAa,cAAiB,OAAY,cAA6B;CACrE,IAAI,YAAY,GAAG,OAAO,CAAC;CAE3B,MAAM,SAAgB,CAAC;CAEvB,KAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,WACjD,OAAO,KAAK,MAAM,MAAM,OAAO,QAAQ,SAAS,CAAC;CAGnD,OAAO;AACT"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_utils_ESMxCJSHelpers = require('./ESMxCJSHelpers.cjs');
2
+ const require_utils_ESMxCJSHelpers = require("./ESMxCJSHelpers.cjs");
3
3
 
4
- //#region src/utils/clearModuleCache.ts
4
+ // src/utils/clearModuleCache.ts
5
5
  /**
6
6
  * Recursively clears the require cache for a module and all its dependencies
7
7
  */
@@ -22,6 +22,5 @@ const clearModuleCache = (modulePath, visited = /* @__PURE__ */ new Set()) => {
22
22
  }
23
23
  };
24
24
 
25
- //#endregion
26
25
  exports.clearModuleCache = clearModuleCache;
27
26
  //# sourceMappingURL=clearModuleCache.cjs.map
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- //#region src/utils/compareVersions.ts
2
+ // src/utils/compareVersions.ts
3
3
  /**
4
4
  * Compare two semver-like version strings (e.g. "15.10.4" vs "15.3.5").
5
5
  *
@@ -33,6 +33,5 @@ const compareVersions = (version1, comparison, version2) => {
33
33
  }
34
34
  };
35
35
 
36
- //#endregion
37
36
  exports.compareVersions = compareVersions;
38
37
  //# sourceMappingURL=compareVersions.cjs.map
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- //#region src/utils/extractErrorMessage.ts
2
+ // src/utils/extractErrorMessage.ts
3
3
  const extractErrorMessage = (error) => {
4
4
  const trimToSingleLine = (text) => text.split(/\r?\n/).map((stringValue) => stringValue.trim()).filter(Boolean)[0] ?? text.trim();
5
5
  const looksLikeJson = (value) => {
@@ -98,6 +98,5 @@ const extractErrorMessage = (error) => {
98
98
  return "An unknown error occurred";
99
99
  };
100
100
 
101
- //#endregion
102
101
  exports.extractErrorMessage = extractErrorMessage;
103
102
  //# sourceMappingURL=extractErrorMessage.cjs.map
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- //#region src/utils/getDictionarySelectorUsage.ts
2
+ // src/utils/getDictionarySelectorUsage.ts
3
3
  /**
4
4
  * Detects whether any built dictionary declares qualifier dimensions
5
5
  * (collections or variants).
@@ -22,6 +22,5 @@ const getHasDictionarySelector = (dictionaries) => {
22
22
  });
23
23
  };
24
24
 
25
- //#endregion
26
25
  exports.getHasDictionarySelector = getHasDictionarySelector;
27
26
  //# sourceMappingURL=getDictionarySelectorUsage.cjs.map
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- //#region src/utils/getExtension.ts
2
+ // src/utils/getExtension.ts
3
3
  const getExtension = (configuration, format) => {
4
4
  const outputFormats = configuration.build.outputFormat;
5
5
  if (format === "cjs") return "cjs";
@@ -9,6 +9,5 @@ const getExtension = (configuration, format) => {
9
9
  return "cjs";
10
10
  };
11
11
 
12
- //#endregion
13
12
  exports.getExtension = getExtension;
14
13
  //# sourceMappingURL=getExtension.cjs.map
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_utils_cacheMemory = require('./cacheMemory.cjs');
2
+ const require_utils_cacheMemory = require("./cacheMemory.cjs");
3
3
  let node_fs = require("node:fs");
4
4
  let node_path = require("node:path");
5
5
 
6
- //#region src/utils/getPackageJsonPath.ts
6
+ // src/utils/getPackageJsonPath.ts
7
7
  const MAX_LEVELS = 15;
8
8
  const getPackageJsonPath = (startDir = process.cwd()) => {
9
9
  const checkedCache = require_utils_cacheMemory.cacheMemory.get("packageJsonPath", startDir);
@@ -28,6 +28,5 @@ const getPackageJsonPath = (startDir = process.cwd()) => {
28
28
  throw new Error(`Could not find package.json in current directory or any of the ${MAX_LEVELS} parent directories. Searched from: ${startDir}`);
29
29
  };
30
30
 
31
- //#endregion
32
31
  exports.getPackageJsonPath = getPackageJsonPath;
33
32
  //# sourceMappingURL=getPackageJsonPath.cjs.map
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_defaultValues_routing = require('../defaultValues/routing.cjs');
2
+ const require_defaultValues_routing = require("../defaultValues/routing.cjs");
3
3
 
4
- //#region src/utils/getStorageAttributes.ts
4
+ // src/utils/getStorageAttributes.ts
5
5
  /** Number of seconds in a day, used to convert a `number` of days. */
6
6
  const SECONDS_PER_DAY = 86400;
7
7
  /**
@@ -109,6 +109,5 @@ const getStorageAttributes = (options) => {
109
109
  return cleanedResult;
110
110
  };
111
111
 
112
- //#endregion
113
112
  exports.getStorageAttributes = getStorageAttributes;
114
113
  //# sourceMappingURL=getStorageAttributes.cjs.map
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  let _intlayer_types_nodeType = require("@intlayer/types/nodeType");
3
3
 
4
- //#region src/utils/getUsedNodeTypes.ts
4
+ // src/utils/getUsedNodeTypes.ts
5
5
  /**
6
6
  * Detect whether a plain object looks like a serialized React element.
7
7
  * React serializes JSX as: { key, props, _owner, _store }.
@@ -63,7 +63,6 @@ const getUnusedNodeTypesAsync = async (dictionaries) => {
63
63
  return _intlayer_types_nodeType.PLUGIN_NODE_TYPES.filter((nodeType) => !usedNodeTypes.includes(nodeType));
64
64
  };
65
65
 
66
- //#endregion
67
66
  exports.getUnusedNodeTypes = getUnusedNodeTypes;
68
67
  exports.getUnusedNodeTypesAsync = getUnusedNodeTypesAsync;
69
68
  exports.getUsedNodeTypes = getUsedNodeTypes;
@@ -1,35 +1,40 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_utils_getStorageAttributes = require('./getStorageAttributes.cjs');
3
- const require_utils_extractErrorMessage = require('./extractErrorMessage.cjs');
4
- const require_utils_logStack = require('./logStack.cjs');
5
- const require_utils_normalizePath = require('./normalizePath.cjs');
6
- const require_utils_setIntlayerIdentifier = require('./setIntlayerIdentifier.cjs');
7
- const require_utils_stringFormatter_camelCaseToKebabCase = require('./stringFormatter/camelCaseToKebabCase.cjs');
8
- const require_utils_stringFormatter_camelCaseToSentence = require('./stringFormatter/camelCaseToSentence.cjs');
9
- const require_utils_stringFormatter_kebabCaseToCamelCase = require('./stringFormatter/kebabCaseToCamelCase.cjs');
10
- const require_utils_stringFormatter_toLowerCamelCase = require('./stringFormatter/toLowerCamelCase.cjs');
11
- const require_utils_getExtension = require('./getExtension.cjs');
12
- const require_utils_alias = require('./alias.cjs');
13
- const require_utils_builtConfigKeys = require('./builtConfigKeys.cjs');
14
- const require_utils_cacheMemory = require('./cacheMemory.cjs');
15
- const require_utils_cacheDisk = require('./cacheDisk.cjs');
16
- const require_utils_getPackageJsonPath = require('./getPackageJsonPath.cjs');
17
- const require_utils_ESMxCJSHelpers = require('./ESMxCJSHelpers.cjs');
18
- const require_utils_clearModuleCache = require('./clearModuleCache.cjs');
19
- const require_utils_compareVersions = require('./compareVersions.cjs');
20
- const require_utils_getDictionarySelectorUsage = require('./getDictionarySelectorUsage.cjs');
21
- const require_utils_getUsedNodeTypes = require('./getUsedNodeTypes.cjs');
22
- const require_utils_isPackageInstalled = require('./isPackageInstalled.cjs');
23
- const require_utils_parseFilePathPattern = require('./parseFilePathPattern.cjs');
24
- const require_utils_pathSecurity = require('./pathSecurity.cjs');
25
- const require_utils_retryManager = require('./retryManager.cjs');
2
+ const require_utils_alias = require("./alias.cjs");
3
+ const require_utils_builtConfigKeys = require("./builtConfigKeys.cjs");
4
+ const require_utils_cacheDisk = require("./cacheDisk.cjs");
5
+ const require_utils_cacheMemory = require("./cacheMemory.cjs");
6
+ const require_utils_chunkArray = require("./chunkArray.cjs");
7
+ const require_utils_clearModuleCache = require("./clearModuleCache.cjs");
8
+ const require_utils_compareVersions = require("./compareVersions.cjs");
9
+ const require_utils_ESMxCJSHelpers = require("./ESMxCJSHelpers.cjs");
10
+ const require_utils_stringFormatter_camelCaseToKebabCase = require("./stringFormatter/camelCaseToKebabCase.cjs");
11
+ const require_utils_stringFormatter_camelCaseToSentence = require("./stringFormatter/camelCaseToSentence.cjs");
12
+ const require_utils_stringFormatter_kebabCaseToCamelCase = require("./stringFormatter/kebabCaseToCamelCase.cjs");
13
+ const require_utils_stringFormatter_toLowerCamelCase = require("./stringFormatter/toLowerCamelCase.cjs");
14
+ const require_utils_extractErrorMessage = require("./extractErrorMessage.cjs");
15
+ const require_utils_getDictionarySelectorUsage = require("./getDictionarySelectorUsage.cjs");
16
+ const require_utils_getExtension = require("./getExtension.cjs");
17
+ const require_utils_getPackageJsonPath = require("./getPackageJsonPath.cjs");
18
+ const require_utils_getStorageAttributes = require("./getStorageAttributes.cjs");
19
+ const require_utils_getUsedNodeTypes = require("./getUsedNodeTypes.cjs");
20
+ const require_utils_isPackageInstalled = require("./isPackageInstalled.cjs");
21
+ const require_utils_logStack = require("./logStack.cjs");
22
+ const require_utils_normalizePath = require("./normalizePath.cjs");
23
+ const require_utils_parallelize = require("./parallelize.cjs");
24
+ const require_utils_parseFilePathPattern = require("./parseFilePathPattern.cjs");
25
+ const require_utils_pathSecurity = require("./pathSecurity.cjs");
26
+ const require_utils_pLimit = require("./pLimit.cjs");
27
+ const require_utils_retryManager = require("./retryManager.cjs");
28
+ const require_utils_setIntlayerIdentifier = require("./setIntlayerIdentifier.cjs");
26
29
 
27
30
  exports.BUILT_CONFIG_KEYS = require_utils_builtConfigKeys.BUILT_CONFIG_KEYS;
31
+ exports.Queue = require_utils_pLimit.Queue;
28
32
  exports.assertPathWithin = require_utils_pathSecurity.assertPathWithin;
29
33
  exports.cacheDisk = require_utils_cacheDisk.cacheDisk;
30
34
  exports.cacheMemory = require_utils_cacheMemory.cacheMemory;
31
35
  exports.camelCaseToKebabCase = require_utils_stringFormatter_camelCaseToKebabCase.camelCaseToKebabCase;
32
36
  exports.camelCaseToSentence = require_utils_stringFormatter_camelCaseToSentence.camelCaseToSentence;
37
+ exports.chunkArray = require_utils_chunkArray.chunkArray;
33
38
  exports.clearAllCache = require_utils_cacheMemory.clearAllCache;
34
39
  exports.clearCache = require_utils_cacheMemory.clearCache;
35
40
  exports.clearDiskCacheMemory = require_utils_cacheDisk.clearDiskCacheMemory;
@@ -54,6 +59,8 @@ exports.isPackageInstalled = require_utils_isPackageInstalled.isPackageInstalled
54
59
  exports.kebabCaseToCamelCase = require_utils_stringFormatter_kebabCaseToCamelCase.kebabCaseToCamelCase;
55
60
  exports.logStack = require_utils_logStack.logStack;
56
61
  exports.normalizePath = require_utils_normalizePath.normalizePath;
62
+ exports.pLimit = require_utils_pLimit.pLimit;
63
+ exports.parallelize = require_utils_parallelize.parallelize;
57
64
  exports.parseFilePathPattern = require_utils_parseFilePathPattern.parseFilePathPattern;
58
65
  exports.parseStringPattern = require_utils_parseFilePathPattern.parseStringPattern;
59
66
  exports.retryManager = require_utils_retryManager.retryManager;
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_utils_ESMxCJSHelpers = require('./ESMxCJSHelpers.cjs');
2
+ const require_utils_ESMxCJSHelpers = require("./ESMxCJSHelpers.cjs");
3
3
 
4
- //#region src/utils/isPackageInstalled.ts
4
+ // src/utils/isPackageInstalled.ts
5
5
  /**
6
6
  * Checks whether a package can be resolved from the user project.
7
7
  *
@@ -34,6 +34,5 @@ const isPackageInstalled = (packageName, baseDir) => {
34
34
  }
35
35
  };
36
36
 
37
- //#endregion
38
37
  exports.isPackageInstalled = isPackageInstalled;
39
38
  //# sourceMappingURL=isPackageInstalled.cjs.map
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_colors = require('../colors.cjs');
3
- const require_logger = require('../logger.cjs');
2
+ const require_colors = require("../colors.cjs");
3
+ const require_logger = require("../logger.cjs");
4
4
 
5
- //#region src/utils/logStack.ts
5
+ // src/utils/logStack.ts
6
6
  const logStack = (message, options = { limit: 50 }) => {
7
7
  Error.stackTraceLimit = options.limit;
8
8
  try {
@@ -13,6 +13,5 @@ const logStack = (message, options = { limit: 50 }) => {
13
13
  }
14
14
  };
15
15
 
16
- //#endregion
17
16
  exports.logStack = logStack;
18
17
  //# sourceMappingURL=logStack.cjs.map
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- //#region src/utils/normalizePath.ts
2
+ // src/utils/normalizePath.ts
3
3
  /**
4
4
  * Normalize a path for glob by replacing backslashes with forward slashes
5
5
  *
@@ -12,6 +12,5 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
12
12
  */
13
13
  const normalizePath = (path) => path.replace(/\\/g, "/");
14
14
 
15
- //#endregion
16
15
  exports.normalizePath = normalizePath;
17
16
  //# sourceMappingURL=normalizePath.cjs.map
@@ -0,0 +1,132 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ // src/utils/pLimit.ts
3
+ var Node = class {
4
+ value;
5
+ next;
6
+ constructor(value) {
7
+ this.value = value;
8
+ }
9
+ };
10
+ var Queue = class {
11
+ #head;
12
+ #tail;
13
+ #size;
14
+ constructor() {
15
+ this.clear();
16
+ }
17
+ enqueue(value) {
18
+ const node = new Node(value);
19
+ if (this.#head) {
20
+ this.#tail.next = node;
21
+ this.#tail = node;
22
+ } else {
23
+ this.#head = node;
24
+ this.#tail = node;
25
+ }
26
+ this.#size++;
27
+ }
28
+ dequeue() {
29
+ const current = this.#head;
30
+ if (!current) return;
31
+ this.#head = current.next;
32
+ this.#size--;
33
+ return current.value;
34
+ }
35
+ peek() {
36
+ if (!this.#head) return;
37
+ return this.#head.value;
38
+ }
39
+ clear() {
40
+ this.#head = void 0;
41
+ this.#tail = void 0;
42
+ this.#size = 0;
43
+ }
44
+ get size() {
45
+ return this.#size;
46
+ }
47
+ *[Symbol.iterator]() {
48
+ let current = this.#head;
49
+ while (current) {
50
+ yield current.value;
51
+ current = current.next;
52
+ }
53
+ }
54
+ *drain() {
55
+ while (this.#head) yield this.dequeue();
56
+ }
57
+ };
58
+ const pLimit = (concurrency) => {
59
+ validateConcurrency(concurrency);
60
+ const queue = new Queue();
61
+ let activeCount = 0;
62
+ const idleWaiters = [];
63
+ const notifyIdleIfNeeded = () => {
64
+ if (activeCount === 0 && queue.size === 0) while (idleWaiters.length) idleWaiters.pop()?.();
65
+ };
66
+ const resumeNext = () => {
67
+ if (activeCount < concurrency && queue.size > 0) {
68
+ activeCount++;
69
+ queue.dequeue()?.();
70
+ }
71
+ };
72
+ const next = () => {
73
+ activeCount--;
74
+ resumeNext();
75
+ };
76
+ const run = async (fn, resolve, arguments_) => {
77
+ const result = (async () => fn(...arguments_))();
78
+ resolve(result);
79
+ try {
80
+ await result;
81
+ } catch {}
82
+ next();
83
+ };
84
+ const enqueue = (fn, resolve, arguments_) => {
85
+ new Promise((internalResolve) => {
86
+ queue.enqueue(internalResolve);
87
+ }).then(run.bind(void 0, fn, resolve, arguments_));
88
+ if (activeCount < concurrency) resumeNext();
89
+ };
90
+ const generator = (fn, ...arguments_) => new Promise((resolve) => {
91
+ enqueue(fn, resolve, arguments_);
92
+ });
93
+ Object.defineProperties(generator, {
94
+ activeCount: { get: () => activeCount },
95
+ pendingCount: { get: () => queue.size },
96
+ clearQueue: { value() {
97
+ queue.clear();
98
+ notifyIdleIfNeeded();
99
+ } },
100
+ concurrency: {
101
+ get: () => concurrency,
102
+ set(newConcurrency) {
103
+ validateConcurrency(newConcurrency);
104
+ concurrency = newConcurrency;
105
+ queueMicrotask(() => {
106
+ while (activeCount < concurrency && queue.size > 0) resumeNext();
107
+ });
108
+ }
109
+ },
110
+ map: { async value(array, fn) {
111
+ const promises = array.map((value, index) => this(fn, value, index));
112
+ return Promise.all(promises);
113
+ } },
114
+ onIdle: {
115
+ /**
116
+ * Resolves when `activeCount === 0` and the queue is empty.
117
+ * Use this to wait for completion without holding a list of Promises.
118
+ */
119
+ value() {
120
+ if (activeCount === 0 && queue.size === 0) return Promise.resolve();
121
+ return new Promise((resolve) => idleWaiters.push(resolve));
122
+ } }
123
+ });
124
+ return generator;
125
+ };
126
+ const validateConcurrency = (concurrency) => {
127
+ if (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) throw new TypeError("Expected `concurrency` to be a number from 1 and up");
128
+ };
129
+
130
+ exports.Queue = Queue;
131
+ exports.pLimit = pLimit;
132
+ //# sourceMappingURL=pLimit.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pLimit.cjs","names":[],"sources":["../../../src/utils/pLimit.ts"],"sourcesContent":["/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node<T> {\n value: T;\n next: Node<T> | undefined;\n\n constructor(value: T) {\n this.value = value;\n }\n}\n\nexport class Queue<T> {\n #head: Node<T> | undefined;\n #tail: Node<T> | undefined;\n #size!: number;\n\n constructor() {\n this.clear();\n }\n\n enqueue(value: T): void {\n const node = new Node(value);\n\n if (this.#head) {\n this.#tail!.next = node;\n this.#tail = node;\n } else {\n this.#head = node;\n this.#tail = node;\n }\n\n this.#size++;\n }\n\n dequeue(): T | undefined {\n const current = this.#head;\n if (!current) {\n return;\n }\n\n this.#head = current.next;\n this.#size--;\n return current.value;\n }\n\n peek(): T | undefined {\n if (!this.#head) {\n return;\n }\n\n return this.#head.value;\n\n // TODO: Node.js 18.\n // return this.#head?.value;\n }\n\n clear(): void {\n this.#head = undefined;\n this.#tail = undefined;\n this.#size = 0;\n }\n\n get size(): number {\n return this.#size;\n }\n\n *[Symbol.iterator](): Generator<T, void, unknown> {\n let current = this.#head;\n\n while (current) {\n yield current.value;\n current = current.next;\n }\n }\n\n *drain(): Generator<T | undefined, void, unknown> {\n while (this.#head) {\n yield this.dequeue();\n }\n }\n}\n\nexport const pLimit = (concurrency: number) => {\n validateConcurrency(concurrency);\n\n const queue = new Queue<() => void>();\n let activeCount = 0;\n\n const idleWaiters: Array<() => void> = [];\n const notifyIdleIfNeeded = (): void => {\n if (activeCount === 0 && queue.size === 0) {\n while (idleWaiters.length) idleWaiters.pop()?.();\n }\n };\n\n const resumeNext = (): void => {\n // Process the next queued function if we're under the concurrency limit\n if (activeCount < concurrency && queue.size > 0) {\n activeCount++;\n queue.dequeue()?.();\n }\n };\n\n const next = (): void => {\n activeCount--;\n resumeNext();\n };\n\n const run = async (\n fn: (...args: any[]) => Promise<any>,\n resolve: (value: Promise<any>) => void,\n arguments_: any[]\n ): Promise<void> => {\n // Execute the function and capture the result promise\n const result = (async () => fn(...arguments_))();\n\n // Resolve immediately with the promise (don't wait for completion)\n resolve(result);\n\n // Wait for the function to complete (success or failure)\n // We catch errors here to prevent unhandled rejections,\n // but the original promise rejection is preserved for the caller\n try {\n await result;\n } catch {}\n\n // Decrement active count and process next queued function\n next();\n };\n\n const enqueue = (\n fn: (...args: any[]) => Promise<any>,\n resolve: (value: Promise<any>) => void,\n arguments_: any[]\n ): void => {\n // Queue the internal resolve function instead of the run function\n // to preserve the asynchronous execution context.\n new Promise<void>((internalResolve) => {\n queue.enqueue(internalResolve);\n }).then(run.bind(undefined, fn, resolve, arguments_));\n\n // Start processing immediately if we haven't reached the concurrency limit\n if (activeCount < concurrency) {\n resumeNext();\n }\n };\n\n const generator = (\n fn: (...args: any[]) => Promise<any>,\n ...arguments_: any[]\n ): Promise<any> =>\n new Promise<any>((resolve) => {\n enqueue(fn, resolve, arguments_);\n });\n\n Object.defineProperties(generator, {\n activeCount: {\n get: () => activeCount,\n },\n pendingCount: {\n get: () => queue.size,\n },\n clearQueue: {\n value() {\n queue.clear();\n notifyIdleIfNeeded();\n },\n },\n concurrency: {\n get: () => concurrency,\n\n set(newConcurrency: number) {\n validateConcurrency(newConcurrency);\n concurrency = newConcurrency;\n\n queueMicrotask(() => {\n while (activeCount < concurrency && queue.size > 0) {\n resumeNext();\n }\n });\n },\n },\n map: {\n async value<T, R>(\n array: T[],\n fn: (value: T, index: number) => Promise<R>\n ): Promise<R[]> {\n const promises = array.map((value, index) => this(fn, value, index));\n return Promise.all(promises);\n },\n },\n onIdle: {\n /**\n * Resolves when `activeCount === 0` and the queue is empty.\n * Use this to wait for completion without holding a list of Promises.\n */\n value(): Promise<void> {\n if (activeCount === 0 && queue.size === 0) return Promise.resolve();\n return new Promise<void>((resolve) => idleWaiters.push(resolve));\n },\n },\n });\n\n return generator;\n};\n\nconst validateConcurrency = (concurrency: number): void => {\n if (\n !(\n (Number.isInteger(concurrency) ||\n concurrency === Number.POSITIVE_INFINITY) &&\n concurrency > 0\n )\n ) {\n throw new TypeError('Expected `concurrency` to be a number from 1 and up');\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_utils_pLimit = require("./pLimit.cjs");
3
+
4
+ // src/utils/parallelize.ts
5
+ const parallelize = async (items, callback = async (item) => item, parallelLimit = 10) => {
6
+ const limit = require_utils_pLimit.pLimit(parallelLimit);
7
+ return Promise.all(items.map((item) => limit(() => callback(item))));
8
+ };
9
+
10
+ exports.parallelize = parallelize;
11
+ //# sourceMappingURL=parallelize.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallelize.cjs","names":["pLimit"],"sources":["../../../src/utils/parallelize.ts"],"sourcesContent":["import { pLimit } from './pLimit';\n\nexport const parallelize = async <T, R>(\n items: T[],\n callback: (item: T) => Promise<R> = async (item) =>\n item as unknown as Promise<R>,\n parallelLimit: number = 10\n): Promise<R[]> => {\n const limit = pLimit(parallelLimit);\n return Promise.all(items.map((item) => limit(() => callback(item))));\n};\n"],"mappings":";;;;AAEA,MAAa,cAAc,OACzB,OACA,WAAoC,OAAO,SACzC,MACF,gBAAwB,OACP;CACjB,MAAM,QAAQA,4BAAO,aAAa;CAClC,OAAO,QAAQ,IAAI,MAAM,KAAK,SAAS,YAAY,SAAS,IAAI,CAAC,CAAC,CAAC;AACrE"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- //#region src/utils/parseFilePathPattern.ts
2
+ // src/utils/parseFilePathPattern.ts
3
3
  /**
4
4
  * Parses a FilePathPattern configuration string or function to a final string path.
5
5
  * Resolves context variables like `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`.
@@ -18,7 +18,6 @@ const parseFilePathPattern = async (pattern, context) => {
18
18
  };
19
19
  const parseStringPattern = (pattern, context) => pattern.replaceAll(/\{\{\s*locale\s*\}\}/g, context.locale ?? "").replaceAll(/\{\{\s*key\s*\}\}/g, context.key ?? "").replaceAll(/\{\{\s*fileName\s*\}\}/g, context.fileName ?? "").replaceAll(/\{\{\s*extension\s*\}\}/g, context.extension ?? "").replaceAll(/\{\{\s*componentFileName\s*\}\}/g, context.componentFileName ?? "").replaceAll(/\{\{\s*componentExtension\s*\}\}/g, context.componentExtension ?? "").replaceAll(/\{\{\s*format\s*\}\}/g, context.format ?? "").replaceAll(/\{\{\s*componentFormat\s*\}\}/g, context.componentFormat ?? "").replaceAll(/\{\{\s*componentDirPath\s*\}\}/g, context.componentDirPath ?? "");
20
20
 
21
- //#endregion
22
21
  exports.parseFilePathPattern = parseFilePathPattern;
23
22
  exports.parseStringPattern = parseStringPattern;
24
23
  //# sourceMappingURL=parseFilePathPattern.cjs.map