@common.js/next-intl 4.13.1

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 (297) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/config.d.ts +4 -0
  4. package/dist/cjs/development/ExtractorCodec-D9Tw618d.cjs +7 -0
  5. package/dist/cjs/development/JSONCodec-CzA8ubPy.cjs +55 -0
  6. package/dist/cjs/development/POCodec-CWGHK-Gp.cjs +111 -0
  7. package/dist/cjs/development/plugin-DlFYUFWh.cjs +1613 -0
  8. package/dist/cjs/development/plugin.cjs +13 -0
  9. package/dist/esm/development/config.js +13 -0
  10. package/dist/esm/development/extractor/ExtractionCompiler.js +284 -0
  11. package/dist/esm/development/extractor/catalog/CatalogLocales.js +398 -0
  12. package/dist/esm/development/extractor/catalog/CatalogManager.js +1515 -0
  13. package/dist/esm/development/extractor/catalog/CatalogPersister.js +341 -0
  14. package/dist/esm/development/extractor/catalog/SaveScheduler.js +314 -0
  15. package/dist/esm/development/extractor/catalogLoader.js +288 -0
  16. package/dist/esm/development/extractor/extractMessages.js +180 -0
  17. package/dist/esm/development/extractor/extractionLoader.js +37 -0
  18. package/dist/esm/development/extractor/extractor/LRUCache.js +68 -0
  19. package/dist/esm/development/extractor/extractor/MessageExtractor.js +273 -0
  20. package/dist/esm/development/extractor/format/ExtractorCodec.js +13 -0
  21. package/dist/esm/development/extractor/format/codecs/JSONCodec.js +91 -0
  22. package/dist/esm/development/extractor/format/codecs/POCodec.js +227 -0
  23. package/dist/esm/development/extractor/format/index.js +289 -0
  24. package/dist/esm/development/extractor/normalizeExtractorConfig.js +91 -0
  25. package/dist/esm/development/extractor/source/SourceFileFilter.js +104 -0
  26. package/dist/esm/development/extractor/source/SourceFileScanner.js +297 -0
  27. package/dist/esm/development/extractor/source/SourceFileWatcher.js +610 -0
  28. package/dist/esm/development/extractor/utils.js +133 -0
  29. package/dist/esm/development/extractor.js +25 -0
  30. package/dist/esm/development/index.react-client.js +59 -0
  31. package/dist/esm/development/index.react-server.js +61 -0
  32. package/dist/esm/development/middleware/getAlternateLinksHeaderValue.js +142 -0
  33. package/dist/esm/development/middleware/middleware.js +231 -0
  34. package/dist/esm/development/middleware/resolveLocale.js +150 -0
  35. package/dist/esm/development/middleware/syncCookie.js +87 -0
  36. package/dist/esm/development/middleware/utils.js +403 -0
  37. package/dist/esm/development/middleware.js +16 -0
  38. package/dist/esm/development/navigation/react-client/createNavigation.js +195 -0
  39. package/dist/esm/development/navigation/react-client/useBasePathname.js +46 -0
  40. package/dist/esm/development/navigation/react-server/createNavigation.js +111 -0
  41. package/dist/esm/development/navigation/react-server/getServerLocale.js +167 -0
  42. package/dist/esm/development/navigation/shared/BaseLink.js +115 -0
  43. package/dist/esm/development/navigation/shared/createSharedNavigationFns.js +214 -0
  44. package/dist/esm/development/navigation/shared/syncLocaleCookie.js +139 -0
  45. package/dist/esm/development/navigation/shared/utils.js +352 -0
  46. package/dist/esm/development/navigation.react-client.js +16 -0
  47. package/dist/esm/development/navigation.react-server.js +16 -0
  48. package/dist/esm/development/plugin/config.js +28 -0
  49. package/dist/esm/development/plugin/createNextIntlPlugin.js +66 -0
  50. package/dist/esm/development/plugin/declaration/createMessagesDeclaration.js +91 -0
  51. package/dist/esm/development/plugin/extractor/initExtractionCompiler.js +64 -0
  52. package/dist/esm/development/plugin/getNextConfig.js +355 -0
  53. package/dist/esm/development/plugin/nextFlags.js +47 -0
  54. package/dist/esm/development/plugin/utils.js +43 -0
  55. package/dist/esm/development/plugin/watchFile.js +32 -0
  56. package/dist/esm/development/plugin.js +16 -0
  57. package/dist/esm/development/react-client/index.js +67 -0
  58. package/dist/esm/development/react-server/NextIntlClientProviderServer.js +327 -0
  59. package/dist/esm/development/react-server/useConfig.js +40 -0
  60. package/dist/esm/development/react-server/useExtracted.js +21 -0
  61. package/dist/esm/development/react-server/useFormatter.js +21 -0
  62. package/dist/esm/development/react-server/useLocale.js +20 -0
  63. package/dist/esm/development/react-server/useMessages.js +21 -0
  64. package/dist/esm/development/react-server/useNow.js +25 -0
  65. package/dist/esm/development/react-server/useTimeZone.js +20 -0
  66. package/dist/esm/development/react-server/useTranslations.js +71 -0
  67. package/dist/esm/development/routing/config.js +82 -0
  68. package/dist/esm/development/routing/defineRouting.js +116 -0
  69. package/dist/esm/development/routing.js +16 -0
  70. package/dist/esm/development/server/react-client/index.js +68 -0
  71. package/dist/esm/development/server/react-server/RequestLocale.js +267 -0
  72. package/dist/esm/development/server/react-server/RequestLocaleCache.js +33 -0
  73. package/dist/esm/development/server/react-server/createRequestConfig.js +16 -0
  74. package/dist/esm/development/server/react-server/getConfig.js +283 -0
  75. package/dist/esm/development/server/react-server/getConfigNow.js +166 -0
  76. package/dist/esm/development/server/react-server/getDefaultNow.js +16 -0
  77. package/dist/esm/development/server/react-server/getExtracted.js +176 -0
  78. package/dist/esm/development/server/react-server/getFormats.js +166 -0
  79. package/dist/esm/development/server/react-server/getFormatter.js +186 -0
  80. package/dist/esm/development/server/react-server/getLocale.js +166 -0
  81. package/dist/esm/development/server/react-server/getMessages.js +194 -0
  82. package/dist/esm/development/server/react-server/getNow.js +164 -0
  83. package/dist/esm/development/server/react-server/getRequestConfig.js +15 -0
  84. package/dist/esm/development/server/react-server/getServerExtractor.js +108 -0
  85. package/dist/esm/development/server/react-server/getServerFormatter.js +81 -0
  86. package/dist/esm/development/server/react-server/getServerTranslator.js +70 -0
  87. package/dist/esm/development/server/react-server/getTimeZone.js +180 -0
  88. package/dist/esm/development/server/react-server/getTranslations.js +179 -0
  89. package/dist/esm/development/server/react-server/validateLocale.js +20 -0
  90. package/dist/esm/development/server.react-client.js +40 -0
  91. package/dist/esm/development/server.react-server.js +53 -0
  92. package/dist/esm/development/shared/NextIntlClientProvider.js +79 -0
  93. package/dist/esm/development/shared/constants.js +12 -0
  94. package/dist/esm/development/shared/use.js +59 -0
  95. package/dist/esm/development/shared/utils.js +201 -0
  96. package/dist/esm/production/config.js +13 -0
  97. package/dist/esm/production/extractor/ExtractionCompiler.js +275 -0
  98. package/dist/esm/production/extractor/catalog/CatalogLocales.js +384 -0
  99. package/dist/esm/production/extractor/catalog/CatalogManager.js +1401 -0
  100. package/dist/esm/production/extractor/catalog/CatalogPersister.js +334 -0
  101. package/dist/esm/production/extractor/catalog/SaveScheduler.js +278 -0
  102. package/dist/esm/production/extractor/catalogLoader.js +251 -0
  103. package/dist/esm/production/extractor/extractMessages.js +178 -0
  104. package/dist/esm/production/extractor/extractionLoader.js +27 -0
  105. package/dist/esm/production/extractor/extractor/LRUCache.js +59 -0
  106. package/dist/esm/production/extractor/extractor/MessageExtractor.js +259 -0
  107. package/dist/esm/production/extractor/format/ExtractorCodec.js +13 -0
  108. package/dist/esm/production/extractor/format/codecs/JSONCodec.js +83 -0
  109. package/dist/esm/production/extractor/format/codecs/POCodec.js +210 -0
  110. package/dist/esm/production/extractor/format/index.js +278 -0
  111. package/dist/esm/production/extractor/normalizeExtractorConfig.js +54 -0
  112. package/dist/esm/production/extractor/source/SourceFileFilter.js +99 -0
  113. package/dist/esm/production/extractor/source/SourceFileScanner.js +293 -0
  114. package/dist/esm/production/extractor/source/SourceFileWatcher.js +579 -0
  115. package/dist/esm/production/extractor/utils.js +108 -0
  116. package/dist/esm/production/extractor.js +25 -0
  117. package/dist/esm/production/index.react-client.js +59 -0
  118. package/dist/esm/production/index.react-server.js +61 -0
  119. package/dist/esm/production/middleware/getAlternateLinksHeaderValue.js +104 -0
  120. package/dist/esm/production/middleware/middleware.js +155 -0
  121. package/dist/esm/production/middleware/resolveLocale.js +99 -0
  122. package/dist/esm/production/middleware/syncCookie.js +81 -0
  123. package/dist/esm/production/middleware/utils.js +315 -0
  124. package/dist/esm/production/middleware.js +16 -0
  125. package/dist/esm/production/navigation/react-client/createNavigation.js +174 -0
  126. package/dist/esm/production/navigation/react-client/useBasePathname.js +32 -0
  127. package/dist/esm/production/navigation/react-server/createNavigation.js +110 -0
  128. package/dist/esm/production/navigation/react-server/getServerLocale.js +162 -0
  129. package/dist/esm/production/navigation/shared/BaseLink.js +98 -0
  130. package/dist/esm/production/navigation/shared/createSharedNavigationFns.js +182 -0
  131. package/dist/esm/production/navigation/shared/syncLocaleCookie.js +113 -0
  132. package/dist/esm/production/navigation/shared/utils.js +264 -0
  133. package/dist/esm/production/navigation.react-client.js +16 -0
  134. package/dist/esm/production/navigation.react-server.js +16 -0
  135. package/dist/esm/production/plugin/config.js +22 -0
  136. package/dist/esm/production/plugin/createNextIntlPlugin.js +48 -0
  137. package/dist/esm/production/plugin/declaration/createMessagesDeclaration.js +72 -0
  138. package/dist/esm/production/plugin/extractor/initExtractionCompiler.js +33 -0
  139. package/dist/esm/production/plugin/getNextConfig.js +242 -0
  140. package/dist/esm/production/plugin/nextFlags.js +44 -0
  141. package/dist/esm/production/plugin/utils.js +35 -0
  142. package/dist/esm/production/plugin/watchFile.js +26 -0
  143. package/dist/esm/production/plugin.js +16 -0
  144. package/dist/esm/production/react-client/index.js +57 -0
  145. package/dist/esm/production/react-server/NextIntlClientProviderServer.js +327 -0
  146. package/dist/esm/production/react-server/useConfig.js +35 -0
  147. package/dist/esm/production/react-server/useExtracted.js +21 -0
  148. package/dist/esm/production/react-server/useFormatter.js +21 -0
  149. package/dist/esm/production/react-server/useLocale.js +19 -0
  150. package/dist/esm/production/react-server/useMessages.js +21 -0
  151. package/dist/esm/production/react-server/useNow.js +22 -0
  152. package/dist/esm/production/react-server/useTimeZone.js +19 -0
  153. package/dist/esm/production/react-server/useTranslations.js +71 -0
  154. package/dist/esm/production/routing/config.js +77 -0
  155. package/dist/esm/production/routing/defineRouting.js +13 -0
  156. package/dist/esm/production/routing.js +16 -0
  157. package/dist/esm/production/server/react-client/index.js +51 -0
  158. package/dist/esm/production/server/react-server/RequestLocale.js +246 -0
  159. package/dist/esm/production/server/react-server/RequestLocaleCache.js +30 -0
  160. package/dist/esm/production/server/react-server/createRequestConfig.js +16 -0
  161. package/dist/esm/production/server/react-server/getConfig.js +262 -0
  162. package/dist/esm/production/server/react-server/getConfigNow.js +162 -0
  163. package/dist/esm/production/server/react-server/getDefaultNow.js +14 -0
  164. package/dist/esm/production/server/react-server/getExtracted.js +166 -0
  165. package/dist/esm/production/server/react-server/getFormats.js +157 -0
  166. package/dist/esm/production/server/react-server/getFormatter.js +179 -0
  167. package/dist/esm/production/server/react-server/getLocale.js +157 -0
  168. package/dist/esm/production/server/react-server/getMessages.js +190 -0
  169. package/dist/esm/production/server/react-server/getNow.js +164 -0
  170. package/dist/esm/production/server/react-server/getRequestConfig.js +13 -0
  171. package/dist/esm/production/server/react-server/getServerExtractor.js +20 -0
  172. package/dist/esm/production/server/react-server/getServerFormatter.js +78 -0
  173. package/dist/esm/production/server/react-server/getServerTranslator.js +69 -0
  174. package/dist/esm/production/server/react-server/getTimeZone.js +176 -0
  175. package/dist/esm/production/server/react-server/getTranslations.js +166 -0
  176. package/dist/esm/production/server.react-client.js +40 -0
  177. package/dist/esm/production/server.react-server.js +53 -0
  178. package/dist/esm/production/shared/NextIntlClientProvider.js +77 -0
  179. package/dist/esm/production/shared/constants.js +11 -0
  180. package/dist/esm/production/shared/use.js +51 -0
  181. package/dist/esm/production/shared/utils.js +156 -0
  182. package/dist/types/config.d.ts +1 -0
  183. package/dist/types/extractor/ExtractionCompiler.d.ts +16 -0
  184. package/dist/types/extractor/catalog/CatalogLocales.d.ts +29 -0
  185. package/dist/types/extractor/catalog/CatalogManager.d.ts +76 -0
  186. package/dist/types/extractor/catalog/CatalogPersister.d.ts +20 -0
  187. package/dist/types/extractor/catalog/SaveScheduler.d.ts +18 -0
  188. package/dist/types/extractor/extractMessages.d.ts +2 -0
  189. package/dist/types/extractor/extractor/LRUCache.d.ts +7 -0
  190. package/dist/types/extractor/extractor/MessageExtractor.bench.d.ts +1 -0
  191. package/dist/types/extractor/extractor/MessageExtractor.d.ts +17 -0
  192. package/dist/types/extractor/format/ExtractorCodec.d.ts +33 -0
  193. package/dist/types/extractor/format/codecs/JSONCodec.d.ts +2 -0
  194. package/dist/types/extractor/format/codecs/POCodec.d.ts +2 -0
  195. package/dist/types/extractor/format/codecs/fixtures/JSONCodecStructured.d.ts +2 -0
  196. package/dist/types/extractor/format/codecs/fixtures/POCodecSourceMessageKey.d.ts +2 -0
  197. package/dist/types/extractor/format/index.d.ts +15 -0
  198. package/dist/types/extractor/format/types.d.ts +8 -0
  199. package/dist/types/extractor/index.d.ts +2 -0
  200. package/dist/types/extractor/normalizeExtractorConfig.d.ts +5 -0
  201. package/dist/types/extractor/source/SourceFileFilter.d.ts +8 -0
  202. package/dist/types/extractor/source/SourceFileScanner.d.ts +4 -0
  203. package/dist/types/extractor/source/SourceFileWatcher.d.ts +15 -0
  204. package/dist/types/extractor/types.d.ts +79 -0
  205. package/dist/types/extractor/utils.d.ts +9 -0
  206. package/dist/types/extractor.d.ts +1 -0
  207. package/dist/types/index.react-client.d.ts +8 -0
  208. package/dist/types/index.react-server.d.ts +1 -0
  209. package/dist/types/middleware/getAlternateLinksHeaderValue.d.ts +13 -0
  210. package/dist/types/middleware/index.d.ts +4 -0
  211. package/dist/types/middleware/middleware.d.ts +4 -0
  212. package/dist/types/middleware/resolveLocale.d.ts +9 -0
  213. package/dist/types/middleware/syncCookie.d.ts +7 -0
  214. package/dist/types/middleware/utils.d.ts +26 -0
  215. package/dist/types/middleware.d.ts +1 -0
  216. package/dist/types/navigation/react-client/createNavigation.d.ts +465 -0
  217. package/dist/types/navigation/react-client/index.d.ts +2 -0
  218. package/dist/types/navigation/react-client/useBasePathname.d.ts +5 -0
  219. package/dist/types/navigation/react-server/createNavigation.d.ts +384 -0
  220. package/dist/types/navigation/react-server/getServerLocale.d.ts +5 -0
  221. package/dist/types/navigation/react-server/index.d.ts +2 -0
  222. package/dist/types/navigation/shared/BaseLink.d.ts +11 -0
  223. package/dist/types/navigation/shared/StrictParams.d.ts +8 -0
  224. package/dist/types/navigation/shared/createSharedNavigationFns.d.ts +370 -0
  225. package/dist/types/navigation/shared/syncLocaleCookie.d.ts +8 -0
  226. package/dist/types/navigation/shared/utils.d.ts +53 -0
  227. package/dist/types/navigation.react-client.d.ts +1 -0
  228. package/dist/types/navigation.react-server.d.ts +1 -0
  229. package/dist/types/plugin/catalog/catalogLoader.d.ts +10 -0
  230. package/dist/types/plugin/config.d.ts +3 -0
  231. package/dist/types/plugin/createNextIntlPlugin.d.ts +3 -0
  232. package/dist/types/plugin/declaration/createMessagesDeclaration.d.ts +1 -0
  233. package/dist/types/plugin/declaration/index.d.ts +1 -0
  234. package/dist/types/plugin/extractor/extractionLoader.d.ts +3 -0
  235. package/dist/types/plugin/extractor/initExtractionCompiler.d.ts +2 -0
  236. package/dist/types/plugin/getNextConfig.d.ts +4 -0
  237. package/dist/types/plugin/index.d.ts +1 -0
  238. package/dist/types/plugin/nextFlags.d.ts +2 -0
  239. package/dist/types/plugin/types.d.ts +25 -0
  240. package/dist/types/plugin/utils.d.ts +8 -0
  241. package/dist/types/plugin/watchFile.d.ts +6 -0
  242. package/dist/types/plugin.d.ts +1 -0
  243. package/dist/types/react-client/index.d.ts +16 -0
  244. package/dist/types/react-server/NextIntlClientProviderServer.d.ts +5 -0
  245. package/dist/types/react-server/index.d.ts +16 -0
  246. package/dist/types/react-server/testUtils.d.ts +2 -0
  247. package/dist/types/react-server/useConfig.d.ts +2 -0
  248. package/dist/types/react-server/useExtracted.d.ts +2 -0
  249. package/dist/types/react-server/useFormatter.d.ts +2 -0
  250. package/dist/types/react-server/useLocale.d.ts +2 -0
  251. package/dist/types/react-server/useMessages.d.ts +2 -0
  252. package/dist/types/react-server/useNow.d.ts +2 -0
  253. package/dist/types/react-server/useTimeZone.d.ts +2 -0
  254. package/dist/types/react-server/useTranslations.d.ts +2 -0
  255. package/dist/types/routing/config.d.ts +73 -0
  256. package/dist/types/routing/defineRouting.d.ts +3 -0
  257. package/dist/types/routing/index.d.ts +3 -0
  258. package/dist/types/routing/types.d.ts +25 -0
  259. package/dist/types/routing.d.ts +1 -0
  260. package/dist/types/server/react-client/index.d.ts +10 -0
  261. package/dist/types/server/react-server/RequestLocale.d.ts +1 -0
  262. package/dist/types/server/react-server/RequestLocaleCache.d.ts +3 -0
  263. package/dist/types/server/react-server/createRequestConfig.d.ts +3 -0
  264. package/dist/types/server/react-server/getConfig.d.ts +13 -0
  265. package/dist/types/server/react-server/getConfigNow.d.ts +4 -0
  266. package/dist/types/server/react-server/getDefaultNow.d.ts +3 -0
  267. package/dist/types/server/react-server/getExtracted.d.ts +10 -0
  268. package/dist/types/server/react-server/getFormats.d.ts +3 -0
  269. package/dist/types/server/react-server/getFormatter.d.ts +10 -0
  270. package/dist/types/server/react-server/getLocale.d.ts +4 -0
  271. package/dist/types/server/react-server/getMessages.d.ts +6 -0
  272. package/dist/types/server/react-server/getNow.d.ts +4 -0
  273. package/dist/types/server/react-server/getRequestConfig.d.ts +35 -0
  274. package/dist/types/server/react-server/getServerExtractor.d.ts +5 -0
  275. package/dist/types/server/react-server/getServerFormatter.d.ts +29 -0
  276. package/dist/types/server/react-server/getServerTranslator.d.ts +4 -0
  277. package/dist/types/server/react-server/getTimeZone.d.ts +4 -0
  278. package/dist/types/server/react-server/getTranslations.d.ts +8 -0
  279. package/dist/types/server/react-server/index.d.ts +12 -0
  280. package/dist/types/server/react-server/validateLocale.d.ts +1 -0
  281. package/dist/types/server.react-client.d.ts +1 -0
  282. package/dist/types/server.react-server.d.ts +1 -0
  283. package/dist/types/shared/NextIntlClientProvider.d.ts +9 -0
  284. package/dist/types/shared/constants.d.ts +1 -0
  285. package/dist/types/shared/types.d.ts +5 -0
  286. package/dist/types/shared/use.d.ts +3 -0
  287. package/dist/types/shared/utils.d.ts +20 -0
  288. package/extractor/catalogLoader.d.ts +4 -0
  289. package/extractor/extractionLoader.d.ts +4 -0
  290. package/extractor.d.ts +2 -0
  291. package/middleware.d.ts +4 -0
  292. package/navigation.d.ts +2 -0
  293. package/package.json +60 -0
  294. package/plugin.d.cts +3 -0
  295. package/plugin.d.ts +4 -0
  296. package/routing.d.ts +2 -0
  297. package/server.d.ts +2 -0
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return CatalogLocales;
9
+ }
10
+ });
11
+ var _fs = /*#__PURE__*/ _interopRequireDefault(require("fs"));
12
+ var _promises = /*#__PURE__*/ _interopRequireDefault(require("fs/promises"));
13
+ var _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
14
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
15
+ try {
16
+ var info = gen[key](arg);
17
+ var value = info.value;
18
+ } catch (error) {
19
+ reject(error);
20
+ return;
21
+ }
22
+ if (info.done) {
23
+ resolve(value);
24
+ } else {
25
+ Promise.resolve(value).then(_next, _throw);
26
+ }
27
+ }
28
+ function _asyncToGenerator(fn) {
29
+ return function() {
30
+ var self = this, args = arguments;
31
+ return new Promise(function(resolve, reject) {
32
+ var gen = fn.apply(self, args);
33
+ function _next(value) {
34
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
35
+ }
36
+ function _throw(err) {
37
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
38
+ }
39
+ _next(undefined);
40
+ });
41
+ };
42
+ }
43
+ function _classCallCheck(instance, Constructor) {
44
+ if (!(instance instanceof Constructor)) {
45
+ throw new TypeError("Cannot call a class as a function");
46
+ }
47
+ }
48
+ function _defineProperties(target, props) {
49
+ for(var i = 0; i < props.length; i++){
50
+ var descriptor = props[i];
51
+ descriptor.enumerable = descriptor.enumerable || false;
52
+ descriptor.configurable = true;
53
+ if ("value" in descriptor) descriptor.writable = true;
54
+ Object.defineProperty(target, descriptor.key, descriptor);
55
+ }
56
+ }
57
+ function _createClass(Constructor, protoProps, staticProps) {
58
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
59
+ if (staticProps) _defineProperties(Constructor, staticProps);
60
+ return Constructor;
61
+ }
62
+ function _defineProperty(obj, key, value) {
63
+ if (key in obj) {
64
+ Object.defineProperty(obj, key, {
65
+ value: value,
66
+ enumerable: true,
67
+ configurable: true,
68
+ writable: true
69
+ });
70
+ } else {
71
+ obj[key] = value;
72
+ }
73
+ return obj;
74
+ }
75
+ function _interopRequireDefault(obj) {
76
+ return obj && obj.__esModule ? obj : {
77
+ default: obj
78
+ };
79
+ }
80
+ var __generator = (void 0) && (void 0).__generator || function(thisArg, body) {
81
+ var f, y, t, g, _ = {
82
+ label: 0,
83
+ sent: function() {
84
+ if (t[0] & 1) throw t[1];
85
+ return t[1];
86
+ },
87
+ trys: [],
88
+ ops: []
89
+ };
90
+ return g = {
91
+ next: verb(0),
92
+ "throw": verb(1),
93
+ "return": verb(2)
94
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
95
+ return this;
96
+ }), g;
97
+ function verb(n) {
98
+ return function(v) {
99
+ return step([
100
+ n,
101
+ v
102
+ ]);
103
+ };
104
+ }
105
+ function step(op) {
106
+ if (f) throw new TypeError("Generator is already executing.");
107
+ while(_)try {
108
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
109
+ if (y = 0, t) op = [
110
+ op[0] & 2,
111
+ t.value
112
+ ];
113
+ switch(op[0]){
114
+ case 0:
115
+ case 1:
116
+ t = op;
117
+ break;
118
+ case 4:
119
+ _.label++;
120
+ return {
121
+ value: op[1],
122
+ done: false
123
+ };
124
+ case 5:
125
+ _.label++;
126
+ y = op[1];
127
+ op = [
128
+ 0
129
+ ];
130
+ continue;
131
+ case 7:
132
+ op = _.ops.pop();
133
+ _.trys.pop();
134
+ continue;
135
+ default:
136
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
137
+ _ = 0;
138
+ continue;
139
+ }
140
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
141
+ _.label = op[1];
142
+ break;
143
+ }
144
+ if (op[0] === 6 && _.label < t[1]) {
145
+ _.label = t[1];
146
+ t = op;
147
+ break;
148
+ }
149
+ if (t && _.label < t[2]) {
150
+ _.label = t[2];
151
+ _.ops.push(op);
152
+ break;
153
+ }
154
+ if (t[2]) _.ops.pop();
155
+ _.trys.pop();
156
+ continue;
157
+ }
158
+ op = body.call(thisArg, _);
159
+ } catch (e) {
160
+ op = [
161
+ 6,
162
+ e
163
+ ];
164
+ y = 0;
165
+ } finally{
166
+ f = t = 0;
167
+ }
168
+ if (op[0] & 5) throw op[1];
169
+ return {
170
+ value: op[0] ? op[1] : void 0,
171
+ done: true
172
+ };
173
+ }
174
+ };
175
+ var CatalogLocales = /*#__PURE__*/ function() {
176
+ "use strict";
177
+ function CatalogLocales(params) {
178
+ _classCallCheck(this, CatalogLocales);
179
+ _defineProperty(this, "onChangeCallbacks", new Set());
180
+ this.messagesDir = params.messagesDir;
181
+ this.sourceLocale = params.sourceLocale;
182
+ this.extension = params.extension;
183
+ this.locales = params.locales;
184
+ }
185
+ _createClass(CatalogLocales, [
186
+ {
187
+ key: "getTargetLocales",
188
+ value: function getTargetLocales() {
189
+ var _this = this;
190
+ return _asyncToGenerator(function() {
191
+ return __generator(this, function(_state) {
192
+ switch(_state.label){
193
+ case 0:
194
+ if (_this.targetLocales) {
195
+ return [
196
+ 2,
197
+ _this.targetLocales
198
+ ];
199
+ }
200
+ if (!(_this.locales === "infer")) return [
201
+ 3,
202
+ 2
203
+ ];
204
+ return [
205
+ 4,
206
+ _this.readTargetLocales()
207
+ ];
208
+ case 1:
209
+ _this.targetLocales = _state.sent();
210
+ return [
211
+ 3,
212
+ 3
213
+ ];
214
+ case 2:
215
+ _this.targetLocales = _this.locales.filter(function(locale) {
216
+ return locale !== _this.sourceLocale;
217
+ });
218
+ _state.label = 3;
219
+ case 3:
220
+ return [
221
+ 2,
222
+ _this.targetLocales
223
+ ];
224
+ }
225
+ });
226
+ })();
227
+ }
228
+ },
229
+ {
230
+ key: "readTargetLocales",
231
+ value: function readTargetLocales() {
232
+ var _this = this;
233
+ return _asyncToGenerator(function() {
234
+ var files, e;
235
+ return __generator(this, function(_state) {
236
+ switch(_state.label){
237
+ case 0:
238
+ _state.trys.push([
239
+ 0,
240
+ 2,
241
+ ,
242
+ 3
243
+ ]);
244
+ return [
245
+ 4,
246
+ _promises.default.readdir(_this.messagesDir)
247
+ ];
248
+ case 1:
249
+ files = _state.sent();
250
+ return [
251
+ 2,
252
+ files.filter(function(file) {
253
+ return file.endsWith(_this.extension);
254
+ }).map(function(file) {
255
+ return _path.default.basename(file, _this.extension);
256
+ }).filter(function(locale) {
257
+ return locale !== _this.sourceLocale;
258
+ })
259
+ ];
260
+ case 2:
261
+ e = _state.sent();
262
+ return [
263
+ 2,
264
+ []
265
+ ];
266
+ case 3:
267
+ return [
268
+ 2
269
+ ];
270
+ }
271
+ });
272
+ })();
273
+ }
274
+ },
275
+ {
276
+ key: "subscribeLocalesChange",
277
+ value: function subscribeLocalesChange(callback) {
278
+ this.onChangeCallbacks.add(callback);
279
+ if (this.locales === "infer" && !this.watcher) {
280
+ void this.startWatcher();
281
+ }
282
+ }
283
+ },
284
+ {
285
+ key: "unsubscribeLocalesChange",
286
+ value: function unsubscribeLocalesChange(callback) {
287
+ this.onChangeCallbacks.delete(callback);
288
+ if (this.onChangeCallbacks.size === 0) {
289
+ this.stopWatcher();
290
+ }
291
+ }
292
+ },
293
+ {
294
+ key: "startWatcher",
295
+ value: function startWatcher() {
296
+ var _this = this;
297
+ return _asyncToGenerator(function() {
298
+ return __generator(this, function(_state) {
299
+ switch(_state.label){
300
+ case 0:
301
+ if (_this.watcher) {
302
+ return [
303
+ 2
304
+ ];
305
+ }
306
+ return [
307
+ 4,
308
+ _promises.default.mkdir(_this.messagesDir, {
309
+ recursive: true
310
+ })
311
+ ];
312
+ case 1:
313
+ _state.sent();
314
+ _this.watcher = _fs.default.watch(_this.messagesDir, {
315
+ persistent: false,
316
+ recursive: false
317
+ }, function(event, filename) {
318
+ var isCatalogFile = filename != null && filename.endsWith(_this.extension) && !filename.includes(_path.default.sep);
319
+ if (isCatalogFile) {
320
+ void _this.onChange();
321
+ }
322
+ });
323
+ return [
324
+ 2
325
+ ];
326
+ }
327
+ });
328
+ })();
329
+ }
330
+ },
331
+ {
332
+ key: "stopWatcher",
333
+ value: function stopWatcher() {
334
+ if (this.watcher) {
335
+ this.watcher.close();
336
+ this.watcher = undefined;
337
+ }
338
+ }
339
+ },
340
+ {
341
+ key: "onChange",
342
+ value: function onChange() {
343
+ var _this = this;
344
+ return _asyncToGenerator(function() {
345
+ var oldLocales, newLocalesSet, added, removed, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, callback;
346
+ return __generator(this, function(_state) {
347
+ switch(_state.label){
348
+ case 0:
349
+ oldLocales = new Set(_this.targetLocales || []);
350
+ return [
351
+ 4,
352
+ _this.readTargetLocales()
353
+ ];
354
+ case 1:
355
+ _this.targetLocales = _state.sent();
356
+ newLocalesSet = new Set(_this.targetLocales);
357
+ added = _this.targetLocales.filter(function(locale) {
358
+ return !oldLocales.has(locale);
359
+ });
360
+ removed = Array.from(oldLocales).filter(function(locale) {
361
+ return !newLocalesSet.has(locale);
362
+ });
363
+ if (added.length > 0 || removed.length > 0) {
364
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
365
+ try {
366
+ for(_iterator = _this.onChangeCallbacks[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
367
+ callback = _step.value;
368
+ callback({
369
+ added: added,
370
+ removed: removed
371
+ });
372
+ }
373
+ } catch (err) {
374
+ _didIteratorError = true;
375
+ _iteratorError = err;
376
+ } finally{
377
+ try {
378
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
379
+ _iterator.return();
380
+ }
381
+ } finally{
382
+ if (_didIteratorError) {
383
+ throw _iteratorError;
384
+ }
385
+ }
386
+ }
387
+ }
388
+ return [
389
+ 2
390
+ ];
391
+ }
392
+ });
393
+ })();
394
+ }
395
+ }
396
+ ]);
397
+ return CatalogLocales;
398
+ }();