adnbn 0.5.7 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/dist/cli/builders/app/command.d.ts +3 -6
  2. package/dist/cli/builders/app/index.d.ts +2 -14
  3. package/dist/cli/builders/locale/FirefoxLocaleValidator.d.ts +4 -7
  4. package/dist/cli/builders/locale/LocaleBuilder.d.ts +3 -6
  5. package/dist/cli/builders/locale/LocaleBuilder.js +3 -1
  6. package/dist/cli/builders/locale/LocaleBuilder.js.map +1 -1
  7. package/dist/cli/builders/locale/LocaleStructureValidator.d.ts +8 -0
  8. package/dist/cli/builders/locale/LocaleStructureValidator.js +64 -0
  9. package/dist/cli/builders/locale/LocaleStructureValidator.js.map +1 -0
  10. package/dist/cli/builders/locale/LocaleValidator.d.ts +4 -7
  11. package/dist/cli/builders/locale/LocaleValidator.js +2 -0
  12. package/dist/cli/builders/locale/LocaleValidator.js.map +1 -1
  13. package/dist/cli/builders/locale/OperaLocaleValidator.d.ts +4 -7
  14. package/dist/cli/builders/locale/index.d.ts +10 -19
  15. package/dist/cli/builders/locale/index.js +2 -0
  16. package/dist/cli/builders/locale/index.js.map +1 -1
  17. package/dist/cli/builders/manifest/ManifestBase.d.ts +30 -18
  18. package/dist/cli/builders/manifest/ManifestBase.js +212 -70
  19. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  20. package/dist/cli/builders/manifest/ManifestV2.d.ts +5 -12
  21. package/dist/cli/builders/manifest/ManifestV2.js +8 -7
  22. package/dist/cli/builders/manifest/ManifestV2.js.map +1 -1
  23. package/dist/cli/builders/manifest/ManifestV3.d.ts +5 -12
  24. package/dist/cli/builders/manifest/ManifestV3.js +9 -6
  25. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  26. package/dist/cli/builders/manifest/index.d.ts +3 -14
  27. package/dist/cli/builders/manifest/utils.d.ts +10 -15
  28. package/dist/cli/builders/manifest/utils.js +14 -2
  29. package/dist/cli/builders/manifest/utils.js.map +1 -1
  30. package/dist/cli/bundler/index.d.ts +2 -16
  31. package/dist/cli/bundler/plugins/EntrypointPlugin.d.ts +10 -19
  32. package/dist/cli/bundler/plugins/EntrypointPlugin.js +1 -0
  33. package/dist/cli/bundler/plugins/EntrypointPlugin.js.map +1 -1
  34. package/dist/cli/bundler/plugins/GenerateJsonPlugin.d.ts +5 -7
  35. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js +1 -0
  36. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js.map +1 -1
  37. package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +3 -11
  38. package/dist/cli/bundler/plugins/ManifestPlugin.js +1 -0
  39. package/dist/cli/bundler/plugins/ManifestPlugin.js.map +1 -1
  40. package/dist/cli/bundler/plugins/ReplacePlugin.d.ts +3 -5
  41. package/dist/cli/bundler/plugins/ReplacePlugin.js +1 -0
  42. package/dist/cli/bundler/plugins/ReplacePlugin.js.map +1 -1
  43. package/dist/cli/bundler/plugins/WatchPlugin.d.ts +3 -6
  44. package/dist/cli/bundler/plugins/WatchPlugin.js +1 -0
  45. package/dist/cli/bundler/plugins/WatchPlugin.js.map +1 -1
  46. package/dist/cli/bundler/plugins/index.d.ts +5 -14
  47. package/dist/cli/bundler/utils/index.d.ts +2 -3
  48. package/dist/cli/bundler/utils/optimization.d.ts +2 -5
  49. package/dist/cli/bundler/utils/output.d.ts +2 -5
  50. package/dist/cli/entrypoint/file/ExpressionFile.d.ts +4 -10
  51. package/dist/cli/entrypoint/file/OptionFile.d.ts +3 -9
  52. package/dist/cli/entrypoint/file/SourceFile.d.ts +7 -11
  53. package/dist/cli/entrypoint/file/SourceFile.js +1 -0
  54. package/dist/cli/entrypoint/file/SourceFile.js.map +1 -1
  55. package/dist/cli/entrypoint/file/index.d.ts +4 -8
  56. package/dist/cli/entrypoint/file/injectors/core.d.ts +2 -4
  57. package/dist/cli/entrypoint/file/injectors/index.d.ts +2 -4
  58. package/dist/cli/entrypoint/file/parsers/AbstractParser.d.ts +6 -12
  59. package/dist/cli/entrypoint/file/parsers/AbstractParser.js +1 -0
  60. package/dist/cli/entrypoint/file/parsers/AbstractParser.js.map +1 -1
  61. package/dist/cli/entrypoint/file/parsers/ClassParser.d.ts +9 -15
  62. package/dist/cli/entrypoint/file/parsers/ClassParser.js +3 -0
  63. package/dist/cli/entrypoint/file/parsers/ClassParser.js.map +1 -1
  64. package/dist/cli/entrypoint/file/parsers/FunctionParser.d.ts +9 -17
  65. package/dist/cli/entrypoint/file/parsers/FunctionParser.js +3 -0
  66. package/dist/cli/entrypoint/file/parsers/FunctionParser.js.map +1 -1
  67. package/dist/cli/entrypoint/file/parsers/JSDocParser.d.ts +2 -5
  68. package/dist/cli/entrypoint/file/parsers/NodeFinder.d.ts +4 -10
  69. package/dist/cli/entrypoint/file/parsers/NodeFinder.js +1 -0
  70. package/dist/cli/entrypoint/file/parsers/NodeFinder.js.map +1 -1
  71. package/dist/cli/entrypoint/file/parsers/ObjectParser.d.ts +7 -15
  72. package/dist/cli/entrypoint/file/parsers/ObjectParser.js +1 -0
  73. package/dist/cli/entrypoint/file/parsers/ObjectParser.js.map +1 -1
  74. package/dist/cli/entrypoint/file/parsers/SignatureBuilder.d.ts +4 -12
  75. package/dist/cli/entrypoint/file/parsers/SignatureBuilder.js +5 -4
  76. package/dist/cli/entrypoint/file/parsers/SignatureBuilder.js.map +1 -1
  77. package/dist/cli/entrypoint/file/parsers/TypeResolver.d.ts +5 -11
  78. package/dist/cli/entrypoint/file/parsers/TypeResolver.js +2 -0
  79. package/dist/cli/entrypoint/file/parsers/TypeResolver.js.map +1 -1
  80. package/dist/cli/entrypoint/file/parsers/helpers/memberFilters.d.ts +1 -3
  81. package/dist/cli/entrypoint/file/parsers/index.d.ts +7 -14
  82. package/dist/cli/entrypoint/file/parsers/types.d.ts +4 -6
  83. package/dist/cli/entrypoint/file/resolvers/ImportResolver.d.ts +2 -6
  84. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +1 -0
  85. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
  86. package/dist/cli/entrypoint/file/resolvers/TsResolver.d.ts +2 -5
  87. package/dist/cli/entrypoint/file/resolvers/index.d.ts +2 -3
  88. package/dist/cli/entrypoint/file/types.d.ts +5 -7
  89. package/dist/cli/entrypoint/finder/AbstractAssetFinder.d.ts +3 -16
  90. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.d.ts +4 -17
  91. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js +22 -17
  92. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js.map +1 -1
  93. package/dist/cli/entrypoint/finder/AbstractFinder.d.ts +4 -15
  94. package/dist/cli/entrypoint/finder/AbstractFinder.js +7 -2
  95. package/dist/cli/entrypoint/finder/AbstractFinder.js.map +1 -1
  96. package/dist/cli/entrypoint/finder/AbstractOptionsFinder.d.ts +3 -16
  97. package/dist/cli/entrypoint/finder/AbstractPluginFinder.d.ts +3 -18
  98. package/dist/cli/entrypoint/finder/AbstractTransportFinder.d.ts +9 -26
  99. package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +9 -24
  100. package/dist/cli/entrypoint/finder/AssetPluginFinder.d.ts +8 -19
  101. package/dist/cli/entrypoint/finder/AssetPluginFinder.js +2 -0
  102. package/dist/cli/entrypoint/finder/AssetPluginFinder.js.map +1 -1
  103. package/dist/cli/entrypoint/finder/BackgroundFinder.d.ts +5 -19
  104. package/dist/cli/entrypoint/finder/CommandFinder.d.ts +7 -22
  105. package/dist/cli/entrypoint/finder/ContentFinder.d.ts +5 -19
  106. package/dist/cli/entrypoint/finder/IconFinder.d.ts +12 -25
  107. package/dist/cli/entrypoint/finder/LocaleFinder.d.ts +14 -22
  108. package/dist/cli/entrypoint/finder/LocaleFinder.js +23 -9
  109. package/dist/cli/entrypoint/finder/LocaleFinder.js.map +1 -1
  110. package/dist/cli/entrypoint/finder/OffscreenFinder.d.ts +5 -26
  111. package/dist/cli/entrypoint/finder/OffscreenViewFinder.d.ts +8 -29
  112. package/dist/cli/entrypoint/finder/OffscreenViewFinder.js +1 -0
  113. package/dist/cli/entrypoint/finder/OffscreenViewFinder.js.map +1 -1
  114. package/dist/cli/entrypoint/finder/PageFinder.d.ts +5 -22
  115. package/dist/cli/entrypoint/finder/PluginFinder.d.ts +7 -19
  116. package/dist/cli/entrypoint/finder/PluginFinder.js +2 -0
  117. package/dist/cli/entrypoint/finder/PluginFinder.js.map +1 -1
  118. package/dist/cli/entrypoint/finder/PopupFinder.d.ts +5 -22
  119. package/dist/cli/entrypoint/finder/RelayFinder.d.ts +5 -25
  120. package/dist/cli/entrypoint/finder/ServiceFinder.d.ts +5 -25
  121. package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +5 -22
  122. package/dist/cli/entrypoint/finder/index.d.ts +18 -43
  123. package/dist/cli/entrypoint/index.d.ts +4 -64
  124. package/dist/cli/entrypoint/name/InlineNameGenerator.d.ts +2 -12
  125. package/dist/cli/entrypoint/name/NameGenerator.d.ts +2 -11
  126. package/dist/cli/entrypoint/name/NameGenerator.js +1 -0
  127. package/dist/cli/entrypoint/name/NameGenerator.js.map +1 -1
  128. package/dist/cli/entrypoint/name/index.d.ts +2 -9
  129. package/dist/cli/entrypoint/parser/AbstractParser.d.ts +14 -29
  130. package/dist/cli/entrypoint/parser/AbstractParser.js +1 -0
  131. package/dist/cli/entrypoint/parser/AbstractParser.js.map +1 -1
  132. package/dist/cli/entrypoint/parser/BackgroundParser.d.ts +3 -23
  133. package/dist/cli/entrypoint/parser/CommandParser.d.ts +4 -24
  134. package/dist/cli/entrypoint/parser/CommandParser.js +20 -5
  135. package/dist/cli/entrypoint/parser/CommandParser.js.map +1 -1
  136. package/dist/cli/entrypoint/parser/ContentParser.d.ts +4 -23
  137. package/dist/cli/entrypoint/parser/OffscreenParser.d.ts +3 -28
  138. package/dist/cli/entrypoint/parser/PageParser.d.ts +3 -26
  139. package/dist/cli/entrypoint/parser/PopupParser.d.ts +3 -26
  140. package/dist/cli/entrypoint/parser/RelayParser.d.ts +4 -27
  141. package/dist/cli/entrypoint/parser/ServiceParser.d.ts +3 -27
  142. package/dist/cli/entrypoint/parser/SidebarParser.d.ts +3 -26
  143. package/dist/cli/entrypoint/parser/ViewParser.d.ts +60 -80
  144. package/dist/cli/entrypoint/parser/index.d.ts +9 -38
  145. package/dist/cli/entrypoint/utils/framework.d.ts +3 -12
  146. package/dist/cli/entrypoint/utils/index.d.ts +2 -10
  147. package/dist/cli/entrypoint/utils/resolve.d.ts +3 -5
  148. package/dist/cli/index.d.ts +1 -2
  149. package/dist/cli/plugins/asset.d.ts +2 -15
  150. package/dist/cli/plugins/background/Background.d.ts +4 -21
  151. package/dist/cli/plugins/background/BackgroundEntry.d.ts +7 -21
  152. package/dist/cli/plugins/background/BackgroundEntry.js +1 -0
  153. package/dist/cli/plugins/background/BackgroundEntry.js.map +1 -1
  154. package/dist/cli/plugins/background/BackgroundManifest.d.ts +5 -21
  155. package/dist/cli/plugins/background/Command.d.ts +6 -23
  156. package/dist/cli/plugins/background/Service.d.ts +5 -27
  157. package/dist/cli/plugins/background/ServiceDeclaration.d.ts +3 -17
  158. package/dist/cli/plugins/background/index.d.ts +2 -15
  159. package/dist/cli/plugins/bundler.d.ts +2 -15
  160. package/dist/cli/plugins/content/Content.d.ts +9 -24
  161. package/dist/cli/plugins/content/ContentDriver.d.ts +7 -22
  162. package/dist/cli/plugins/content/ContentDriver.js +1 -0
  163. package/dist/cli/plugins/content/ContentDriver.js.map +1 -1
  164. package/dist/cli/plugins/content/ContentManager.d.ts +8 -19
  165. package/dist/cli/plugins/content/ContentName.d.ts +5 -17
  166. package/dist/cli/plugins/content/ContentName.js +1 -0
  167. package/dist/cli/plugins/content/ContentName.js.map +1 -1
  168. package/dist/cli/plugins/content/Relay.d.ts +9 -30
  169. package/dist/cli/plugins/content/RelayDeclaration.d.ts +3 -17
  170. package/dist/cli/plugins/content/index.d.ts +2 -15
  171. package/dist/cli/plugins/content/types.d.ts +8 -16
  172. package/dist/cli/plugins/content/utils.d.ts +2 -11
  173. package/dist/cli/plugins/dotenv/index.d.ts +3 -16
  174. package/dist/cli/plugins/dotenv/utils.d.ts +4 -7
  175. package/dist/cli/plugins/html.d.ts +2 -15
  176. package/dist/cli/plugins/icon/Icon.d.ts +6 -22
  177. package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +3 -16
  178. package/dist/cli/plugins/icon/declaration/index.d.ts +1 -13
  179. package/dist/cli/plugins/icon/index.d.ts +4 -21
  180. package/dist/cli/plugins/index.d.ts +22 -58
  181. package/dist/cli/plugins/index.js +32 -30
  182. package/dist/cli/plugins/index.js.map +1 -1
  183. package/dist/cli/plugins/locale/Locale.d.ts +3 -20
  184. package/dist/cli/plugins/locale/declaration/LocaleDeclaration.d.ts +4 -16
  185. package/dist/cli/plugins/locale/declaration/index.d.ts +1 -13
  186. package/dist/cli/plugins/locale/declaration/locale.d.ts +61 -11
  187. package/dist/cli/plugins/locale/index.d.ts +2 -15
  188. package/dist/cli/plugins/locale/index.js +44 -49
  189. package/dist/cli/plugins/locale/index.js.map +1 -1
  190. package/dist/cli/plugins/manifest.d.ts +2 -0
  191. package/dist/cli/plugins/manifest.js +27 -0
  192. package/dist/cli/plugins/manifest.js.map +1 -0
  193. package/dist/cli/plugins/meta/AbstractMeta.d.ts +2 -15
  194. package/dist/cli/plugins/meta/AbstractMeta.js +1 -0
  195. package/dist/cli/plugins/meta/AbstractMeta.js.map +1 -1
  196. package/dist/cli/plugins/meta/Author.d.ts +3 -16
  197. package/dist/cli/plugins/meta/Homepage.d.ts +3 -16
  198. package/dist/cli/plugins/meta/Incognito.d.ts +4 -16
  199. package/dist/cli/plugins/meta/SpecificSettings.d.ts +4 -16
  200. package/dist/cli/plugins/meta/index.d.ts +7 -20
  201. package/dist/cli/plugins/offscreen/Offscreen.d.ts +11 -35
  202. package/dist/cli/plugins/offscreen/OffscreenDeclaration.d.ts +3 -17
  203. package/dist/cli/plugins/offscreen/index.d.ts +2 -15
  204. package/dist/cli/plugins/optimization.d.ts +2 -15
  205. package/dist/cli/plugins/output.d.ts +2 -15
  206. package/dist/cli/plugins/page/Page.d.ts +8 -26
  207. package/dist/cli/plugins/page/declaration/PageDeclaration.d.ts +3 -16
  208. package/dist/cli/plugins/page/declaration/index.d.ts +1 -13
  209. package/dist/cli/plugins/page/index.d.ts +2 -15
  210. package/dist/cli/plugins/popup/Popup.d.ts +9 -27
  211. package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +3 -16
  212. package/dist/cli/plugins/popup/declaration/index.d.ts +1 -13
  213. package/dist/cli/plugins/popup/index.d.ts +2 -15
  214. package/dist/cli/plugins/public.d.ts +2 -15
  215. package/dist/cli/plugins/react.d.ts +2 -15
  216. package/dist/cli/plugins/sidebar/Sidebar.d.ts +9 -27
  217. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +3 -16
  218. package/dist/cli/plugins/sidebar/declaration/index.d.ts +1 -13
  219. package/dist/cli/plugins/sidebar/index.d.ts +2 -15
  220. package/dist/cli/plugins/style.d.ts +2 -15
  221. package/dist/cli/plugins/typescript/FileBuilder.d.ts +2 -15
  222. package/dist/cli/plugins/typescript/FileBuilder.js +1 -0
  223. package/dist/cli/plugins/typescript/FileBuilder.js.map +1 -1
  224. package/dist/cli/plugins/typescript/TypescriptConfig.d.ts +4 -17
  225. package/dist/cli/plugins/typescript/declaration/index.d.ts +2 -14
  226. package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.d.ts +4 -17
  227. package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.js +1 -0
  228. package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.js.map +1 -1
  229. package/dist/cli/plugins/typescript/declaration/transport/index.d.ts +1 -13
  230. package/dist/cli/plugins/typescript/declaration/vendor/VendorDeclaration.d.ts +3 -16
  231. package/dist/cli/plugins/typescript/declaration/vendor/index.d.ts +1 -13
  232. package/dist/cli/plugins/typescript/index.d.ts +6 -20
  233. package/dist/cli/plugins/version/AbstractVersion.d.ts +2 -15
  234. package/dist/cli/plugins/version/AbstractVersion.js +2 -1
  235. package/dist/cli/plugins/version/AbstractVersion.js.map +1 -1
  236. package/dist/cli/plugins/version/AddonVersion.d.ts +3 -16
  237. package/dist/cli/plugins/version/BrowserMinimumVersion.d.ts +3 -16
  238. package/dist/cli/plugins/version/index.d.ts +5 -18
  239. package/dist/cli/plugins/view/View.d.ts +10 -24
  240. package/dist/cli/plugins/view/View.js +2 -0
  241. package/dist/cli/plugins/view/View.js.map +1 -1
  242. package/dist/cli/plugins/view/index.d.ts +3 -22
  243. package/dist/cli/resolvers/bundler.d.ts +4 -15
  244. package/dist/cli/resolvers/config.d.ts +2 -14
  245. package/dist/cli/resolvers/config.js +45 -6
  246. package/dist/cli/resolvers/config.js.map +1 -1
  247. package/dist/cli/resolvers/path.d.ts +11 -24
  248. package/dist/cli/resolvers/plugin.d.ts +3 -16
  249. package/dist/cli/utils/fs.d.ts +3 -5
  250. package/dist/cli/utils/path.d.ts +3 -5
  251. package/dist/cli/utils/string.d.ts +2 -4
  252. package/dist/cli/virtual/background.d.ts +1 -0
  253. package/dist/cli/virtual/command.d.ts +1 -0
  254. package/dist/cli/virtual/content.d.ts +1 -0
  255. package/dist/cli/virtual/index.d.ts +9 -0
  256. package/dist/cli/virtual/index.js +2 -2
  257. package/dist/cli/virtual/offscreen.background.d.ts +1 -0
  258. package/dist/cli/virtual/offscreen.d.ts +1 -0
  259. package/dist/cli/virtual/relay.d.ts +1 -0
  260. package/dist/cli/virtual/transport.d.ts +1 -0
  261. package/dist/cli/virtual/view.d.ts +1 -0
  262. package/dist/cli/virtual/virtual.d.ts +38 -38
  263. package/dist/entry/background/Builder.d.ts +3 -12
  264. package/dist/entry/background/Builder.js +1 -0
  265. package/dist/entry/background/Builder.js.map +1 -1
  266. package/dist/entry/background/index.d.ts +3 -12
  267. package/dist/entry/background/resolvers/definition.d.ts +3 -12
  268. package/dist/entry/background/resolvers/index.d.ts +1 -8
  269. package/dist/entry/command/Builder.d.ts +4 -12
  270. package/dist/entry/command/index.d.ts +3 -12
  271. package/dist/entry/command/resolvers/definition.d.ts +4 -13
  272. package/dist/entry/command/resolvers/index.d.ts +1 -8
  273. package/dist/entry/content/adapters/react/Builder.d.ts +3 -17
  274. package/dist/entry/content/adapters/react/Node.d.ts +6 -14
  275. package/dist/entry/content/adapters/react/Node.js +2 -0
  276. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  277. package/dist/entry/content/adapters/react/index.d.ts +4 -18
  278. package/dist/entry/content/adapters/react/resolvers/index.d.ts +1 -8
  279. package/dist/entry/content/adapters/react/resolvers/render.d.ts +2 -11
  280. package/dist/entry/content/adapters/vanilla/Builder.d.ts +3 -17
  281. package/dist/entry/content/adapters/vanilla/Node.d.ts +2 -11
  282. package/dist/entry/content/adapters/vanilla/Node.js +2 -0
  283. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  284. package/dist/entry/content/adapters/vanilla/index.d.ts +4 -18
  285. package/dist/entry/content/core/AbstractMarker.d.ts +2 -11
  286. package/dist/entry/content/core/AbstractMarker.js +1 -0
  287. package/dist/entry/content/core/AbstractMarker.js.map +1 -1
  288. package/dist/entry/content/core/AttributeMarker.d.ts +3 -12
  289. package/dist/entry/content/core/Builder.d.ts +8 -17
  290. package/dist/entry/content/core/Context.d.ts +2 -11
  291. package/dist/entry/content/core/Context.js +1 -0
  292. package/dist/entry/content/core/Context.js.map +1 -1
  293. package/dist/entry/content/core/EventEmitter.d.ts +2 -11
  294. package/dist/entry/content/core/EventNode.d.ts +2 -11
  295. package/dist/entry/content/core/EventNode.js +2 -0
  296. package/dist/entry/content/core/EventNode.js.map +1 -1
  297. package/dist/entry/content/core/ManagedContext.d.ts +3 -12
  298. package/dist/entry/content/core/MarkerNode.d.ts +2 -11
  299. package/dist/entry/content/core/MarkerNode.js +2 -0
  300. package/dist/entry/content/core/MarkerNode.js.map +1 -1
  301. package/dist/entry/content/core/MountBuilder.d.ts +3 -16
  302. package/dist/entry/content/core/MountNode.d.ts +2 -11
  303. package/dist/entry/content/core/MountNode.js +2 -0
  304. package/dist/entry/content/core/MountNode.js.map +1 -1
  305. package/dist/entry/content/core/Node.d.ts +2 -11
  306. package/dist/entry/content/core/Node.js +2 -0
  307. package/dist/entry/content/core/Node.js.map +1 -1
  308. package/dist/entry/content/core/WeakMarker.d.ts +3 -12
  309. package/dist/entry/content/core/resolvers/anchor.d.ts +2 -11
  310. package/dist/entry/content/core/resolvers/container.d.ts +2 -11
  311. package/dist/entry/content/core/resolvers/definition.d.ts +3 -12
  312. package/dist/entry/content/core/resolvers/index.d.ts +6 -13
  313. package/dist/entry/content/core/resolvers/mount.d.ts +2 -11
  314. package/dist/entry/content/core/resolvers/render.d.ts +3 -12
  315. package/dist/entry/content/core/resolvers/watch.d.ts +4 -13
  316. package/dist/entry/content/index.d.ts +1 -8
  317. package/dist/entry/core/Builder.d.ts +2 -11
  318. package/dist/entry/offscreen/Builder.d.ts +8 -25
  319. package/dist/entry/offscreen/Builder.js +8 -1
  320. package/dist/entry/offscreen/Builder.js.map +1 -1
  321. package/dist/entry/offscreen/TransportBuilder.d.ts +6 -24
  322. package/dist/entry/offscreen/index.d.ts +4 -25
  323. package/dist/entry/relay/Builder.d.ts +7 -21
  324. package/dist/entry/relay/Builder.js +1 -0
  325. package/dist/entry/relay/Builder.js.map +1 -1
  326. package/dist/entry/relay/TransportBuilder.d.ts +6 -20
  327. package/dist/entry/relay/index.d.ts +4 -21
  328. package/dist/entry/service/Builder.d.ts +6 -20
  329. package/dist/entry/service/index.d.ts +2 -14
  330. package/dist/entry/transport/AbstractBuilder.d.ts +4 -14
  331. package/dist/entry/transport/index.d.ts +1 -14
  332. package/dist/entry/transport/resolvers/definition.d.ts +7 -20
  333. package/dist/entry/transport/resolvers/index.d.ts +1 -14
  334. package/dist/entry/view/adapters/react/Builder.d.ts +4 -16
  335. package/dist/entry/view/adapters/react/index.d.ts +4 -17
  336. package/dist/entry/view/adapters/react/resolvers/render.d.ts +2 -13
  337. package/dist/entry/view/adapters/vanilla/Builder.d.ts +3 -15
  338. package/dist/entry/view/adapters/vanilla/index.d.ts +4 -16
  339. package/dist/entry/view/core/Builder.d.ts +3 -14
  340. package/dist/entry/view/core/resolvers/container.d.ts +2 -13
  341. package/dist/entry/view/core/resolvers/definition.d.ts +3 -14
  342. package/dist/entry/view/core/resolvers/render.d.ts +3 -14
  343. package/dist/entry/view/index.d.ts +1 -10
  344. package/dist/index.d.ts +1 -43
  345. package/dist/locale/adapters/react/LocaleProvider.d.ts +4 -6
  346. package/dist/locale/adapters/react/LocaleProvider.js +5 -5
  347. package/dist/locale/adapters/react/LocaleProvider.js.map +1 -1
  348. package/dist/locale/adapters/react/context.d.ts +8 -13
  349. package/dist/locale/adapters/react/context.js +2 -5
  350. package/dist/locale/adapters/react/context.js.map +1 -1
  351. package/dist/locale/adapters/react/index.d.ts +2 -6
  352. package/dist/locale/helpers.d.ts +60 -36
  353. package/dist/locale/helpers.js +14 -14
  354. package/dist/locale/helpers.js.map +1 -1
  355. package/dist/locale/index.d.ts +3 -7
  356. package/dist/locale/index.js.map +1 -1
  357. package/dist/locale/providers/AbstractLocale.d.ts +5 -8
  358. package/dist/locale/providers/AbstractLocale.js +9 -6
  359. package/dist/locale/providers/AbstractLocale.js.map +1 -1
  360. package/dist/locale/providers/CustomLocale.d.ts +5 -8
  361. package/dist/locale/providers/CustomLocale.js +3 -1
  362. package/dist/locale/providers/CustomLocale.js.map +1 -1
  363. package/dist/locale/providers/DynamicLocale.d.ts +7 -11
  364. package/dist/locale/providers/DynamicLocale.js +1 -1
  365. package/dist/locale/providers/DynamicLocale.js.map +1 -1
  366. package/dist/locale/providers/NativeLocale.d.ts +7 -10
  367. package/dist/locale/providers/NativeLocale.js.map +1 -1
  368. package/dist/locale/providers/index.d.ts +3 -6
  369. package/dist/locale/utils.d.ts +11 -14
  370. package/dist/main/app.d.ts +1 -1
  371. package/dist/main/app.js +3 -2
  372. package/dist/main/app.js.map +1 -1
  373. package/dist/main/background.d.ts +3 -12
  374. package/dist/main/browser.d.ts +1 -1
  375. package/dist/main/command.d.ts +4 -13
  376. package/dist/main/config.d.ts +3 -16
  377. package/dist/main/config.js.map +1 -1
  378. package/dist/main/content.d.ts +6 -18
  379. package/dist/main/env.d.ts +7 -15
  380. package/dist/main/icon.d.ts +6 -7
  381. package/dist/main/index.d.ts +17 -43
  382. package/dist/main/manifest.d.ts +1 -7
  383. package/dist/main/offscreen.d.ts +9 -22
  384. package/dist/main/offscreen.js +1 -1
  385. package/dist/main/offscreen.js.map +1 -1
  386. package/dist/main/page.d.ts +7 -19
  387. package/dist/main/plugin.d.ts +3 -16
  388. package/dist/main/popup.d.ts +8 -18
  389. package/dist/main/popup.js +2 -2
  390. package/dist/main/popup.js.map +1 -1
  391. package/dist/main/relay.d.ts +8 -21
  392. package/dist/main/service.d.ts +6 -15
  393. package/dist/main/sidebar.d.ts +8 -18
  394. package/dist/main/sidebar.js +2 -2
  395. package/dist/main/sidebar.js.map +1 -1
  396. package/dist/main/view.d.ts +1 -9
  397. package/dist/message/MessageManager.d.ts +2 -5
  398. package/dist/message/adapters/react/index.d.ts +1 -2
  399. package/dist/message/adapters/react/useMessageHandler.d.ts +2 -5
  400. package/dist/message/handlers/AbstractHandler.d.ts +2 -5
  401. package/dist/message/handlers/GeneralHandler.d.ts +3 -6
  402. package/dist/message/handlers/GeneralHandler.js +1 -0
  403. package/dist/message/handlers/GeneralHandler.js.map +1 -1
  404. package/dist/message/handlers/MapHandler.d.ts +3 -6
  405. package/dist/message/handlers/MapHandler.js +1 -0
  406. package/dist/message/handlers/MapHandler.js.map +1 -1
  407. package/dist/message/handlers/SingleHandler.d.ts +3 -6
  408. package/dist/message/handlers/SingleHandler.js +2 -0
  409. package/dist/message/handlers/SingleHandler.js.map +1 -1
  410. package/dist/message/handlers/index.d.ts +3 -5
  411. package/dist/message/index.d.ts +9 -13
  412. package/dist/message/providers/AbstractMessage.d.ts +2 -5
  413. package/dist/message/providers/Message.d.ts +4 -7
  414. package/dist/message/providers/index.d.ts +1 -4
  415. package/dist/offscreen/OffscreenBackground.d.ts +2 -9
  416. package/dist/offscreen/OffscreenBridge.d.ts +8 -9
  417. package/dist/offscreen/OffscreenBridge.js +55 -7
  418. package/dist/offscreen/OffscreenBridge.js.map +1 -1
  419. package/dist/offscreen/OffscreenManager.d.ts +4 -15
  420. package/dist/offscreen/OffscreenMessage.d.ts +2 -14
  421. package/dist/offscreen/index.d.ts +5 -26
  422. package/dist/offscreen/providers/Offscreen.d.ts +3 -14
  423. package/dist/offscreen/providers/ProxyOffscreen.d.ts +7 -18
  424. package/dist/offscreen/providers/ProxyOffscreen.js +44 -23
  425. package/dist/offscreen/providers/ProxyOffscreen.js.map +1 -1
  426. package/dist/offscreen/providers/RegisterOffscreen.d.ts +5 -18
  427. package/dist/offscreen/providers/RegisterOffscreen.js +1 -0
  428. package/dist/offscreen/providers/RegisterOffscreen.js.map +1 -1
  429. package/dist/offscreen/providers/index.d.ts +3 -17
  430. package/dist/offscreen/utils.d.ts +1 -3
  431. package/dist/relay/RelayManager.d.ts +6 -16
  432. package/dist/relay/RelayMessage.d.ts +2 -14
  433. package/dist/relay/RelayPermission.d.ts +4 -15
  434. package/dist/relay/index.d.ts +4 -22
  435. package/dist/relay/providers/ProxyRelay.d.ts +8 -19
  436. package/dist/relay/providers/ProxyRelay.js +2 -0
  437. package/dist/relay/providers/ProxyRelay.js.map +1 -1
  438. package/dist/relay/providers/RegisterRelay.d.ts +4 -16
  439. package/dist/relay/providers/RegisterRelay.js +2 -0
  440. package/dist/relay/providers/RegisterRelay.js.map +1 -1
  441. package/dist/relay/providers/Relay.d.ts +3 -14
  442. package/dist/relay/providers/index.d.ts +3 -18
  443. package/dist/relay/utils.d.ts +3 -5
  444. package/dist/service/ServiceManager.d.ts +4 -15
  445. package/dist/service/ServiceMessage.d.ts +2 -14
  446. package/dist/service/index.d.ts +4 -19
  447. package/dist/service/providers/ProxyService.d.ts +4 -15
  448. package/dist/service/providers/RegisterService.d.ts +3 -15
  449. package/dist/service/providers/RegisterService.js +1 -0
  450. package/dist/service/providers/RegisterService.js.map +1 -1
  451. package/dist/service/providers/Service.d.ts +3 -14
  452. package/dist/service/providers/index.d.ts +3 -15
  453. package/dist/transport/BaseTransport.d.ts +2 -13
  454. package/dist/transport/BaseTransport.js +1 -0
  455. package/dist/transport/BaseTransport.js.map +1 -1
  456. package/dist/transport/ProxyTransport.d.ts +4 -14
  457. package/dist/transport/RegisterTransport.d.ts +4 -16
  458. package/dist/transport/RegisterTransport.js +13 -20
  459. package/dist/transport/RegisterTransport.js.map +1 -1
  460. package/dist/transport/TransportManager.d.ts +2 -13
  461. package/dist/transport/TransportMessage.d.ts +3 -13
  462. package/dist/transport/index.d.ts +1 -9
  463. package/dist/types/app.d.ts +8 -6
  464. package/dist/types/app.js +7 -1
  465. package/dist/types/app.js.map +1 -1
  466. package/dist/types/background.d.ts +20 -7
  467. package/dist/types/browser.d.ts +6 -8
  468. package/dist/types/command.d.ts +27 -7
  469. package/dist/types/config.d.ts +673 -11
  470. package/dist/types/content.d.ts +195 -7
  471. package/dist/types/entrypoint.d.ts +106 -7
  472. package/dist/types/entrypoint.js.map +1 -1
  473. package/dist/types/env.d.ts +4 -6
  474. package/dist/types/framework.d.ts +1 -3
  475. package/dist/types/helpers.d.ts +6 -7
  476. package/dist/types/icon.d.ts +3 -5
  477. package/dist/types/locale.d.ts +35 -29
  478. package/dist/types/locale.js.map +1 -1
  479. package/dist/types/manifest.d.ts +163 -7
  480. package/dist/types/manifest.js.map +1 -1
  481. package/dist/types/message.d.ts +17 -19
  482. package/dist/types/message.js +1 -1
  483. package/dist/types/message.js.map +1 -1
  484. package/dist/types/offscreen.d.ts +13 -23
  485. package/dist/types/offscreen.js +2 -0
  486. package/dist/types/offscreen.js.map +1 -1
  487. package/dist/types/page.d.ts +5 -16
  488. package/dist/types/plugin.d.ts +101 -11
  489. package/dist/types/popup.d.ts +5 -16
  490. package/dist/types/relay.d.ts +13 -21
  491. package/dist/types/service.d.ts +9 -18
  492. package/dist/types/sidebar.d.ts +7 -17
  493. package/dist/types/transport.d.ts +22 -29
  494. package/dist/types/view.d.ts +18 -24
  495. package/package.json +9 -11
  496. package/dist/config-B38J9WIM.d.ts +0 -743
  497. package/dist/manifest-DKvERQ4d.d.ts +0 -503
@@ -5,11 +5,11 @@ import { DynamicLocale } from "./../../../locale/providers/index.js";
5
5
  const LocaleProvider = ({ children, storage, container = "html" }) => {
6
6
  const locale = useMemo(() => new DynamicLocale(storage), []);
7
7
  const [lang, setLang] = useState(locale.lang());
8
- const _ = useCallback((key, substitutions) => {
9
- return locale.trans(key, substitutions);
8
+ const t = useCallback((key, ...args) => {
9
+ return locale.trans(key, ...args);
10
10
  }, []);
11
- const choice = useCallback((key, count, substitutions) => {
12
- return locale.choice(key, count, substitutions);
11
+ const choice = useCallback((key, count, ...args) => {
12
+ return locale.choice(key, count, ...args);
13
13
  }, []);
14
14
  const change = useCallback((lang2) => {
15
15
  locale.change(lang2).catch((err) => console.error(`[LocaleProvider] Cannot find locale file for "${lang2}" language`, err));
@@ -38,7 +38,7 @@ const LocaleProvider = ({ children, storage, container = "html" }) => {
38
38
  LocaleContext.Provider,
39
39
  {
40
40
  value: {
41
- _,
41
+ t,
42
42
  choice,
43
43
  change,
44
44
  lang,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/locale/adapters/react/LocaleProvider.tsx"],"sourcesContent":["import React, {PropsWithChildren, useCallback, useEffect, useMemo, useState} from \"react\";\n\nimport {LocaleContext, LocaleContract} from \"./context\";\n\nimport {getLocaleDir, isLocaleRtl} from \"@locale/utils\";\n\nimport {DynamicLocale} from \"@locale/providers\";\n\nimport {Language} from \"@typing/locale\";\n\nexport interface LocaleProviderProps {\n storage?: string | false;\n container?: string | Element | false;\n}\n\nconst LocaleProvider = ({children, storage, container = \"html\"}: PropsWithChildren<LocaleProviderProps>) => {\n const locale = useMemo(() => new DynamicLocale(storage), []);\n\n const [lang, setLang] = useState<Language>(locale.lang());\n\n const _: LocaleContract[\"_\"] = useCallback((key, substitutions): string => {\n return locale.trans(key, substitutions);\n }, []);\n\n const choice: LocaleContract[\"choice\"] = useCallback((key, count, substitutions): string => {\n return locale.choice(key, count, substitutions);\n }, []);\n\n const change: LocaleContract[\"change\"] = useCallback((lang): void => {\n locale\n .change(lang)\n .catch(err => console.error(`[LocaleProvider] Cannot find locale file for \"${lang}\" language`, err));\n }, []);\n\n useEffect(() => {\n if (container === false) {\n return;\n }\n\n const element = typeof container === \"string\" ? document.querySelector(container) : container;\n\n if (element) {\n element.setAttribute(\"lang\", lang);\n element.setAttribute(\"dir\", getLocaleDir(lang));\n\n return () => {\n element.removeAttribute(\"lang\");\n element.removeAttribute(\"dir\");\n };\n }\n }, [lang, container]);\n\n useEffect(() => {\n locale.sync().then(lang => setLang(lang));\n }, []);\n\n useEffect(() => {\n return locale.watch(lang => setLang(lang));\n }, []);\n\n return (\n <LocaleContext.Provider\n value={{\n _,\n choice,\n change,\n lang,\n dir: getLocaleDir(lang),\n isRtl: isLocaleRtl(lang),\n }}\n >\n {children}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleProvider;\n"],"mappings":"AAAA,OAAO,SAA2B,aAAa,WAAW,SAAS,gBAAe;AAElF,SAAQ,qBAAoC;AAE5C,SAAQ,cAAc,mBAAkB;AAExC,SAAQ,qBAAoB;AAS5B,MAAM,iBAAiB,CAAC,EAAC,UAAU,SAAS,YAAY,OAAM,MAA8C;AACxG,QAAM,SAAS,QAAQ,MAAM,IAAI,cAAc,OAAO,GAAG,CAAC,CAAC;AAE3D,QAAM,CAAC,MAAM,OAAO,IAAI,SAAmB,OAAO,KAAK,CAAC;AAExD,QAAM,IAAyB,YAAY,CAAC,KAAK,kBAA0B;AACvE,WAAO,OAAO,MAAM,KAAK,aAAa;AAAA,EAC1C,GAAG,CAAC,CAAC;AAEL,QAAM,SAAmC,YAAY,CAAC,KAAK,OAAO,kBAA0B;AACxF,WAAO,OAAO,OAAO,KAAK,OAAO,aAAa;AAAA,EAClD,GAAG,CAAC,CAAC;AAEL,QAAM,SAAmC,YAAY,CAACA,UAAe;AACjE,WACK,OAAOA,KAAI,EACX,MAAM,SAAO,QAAQ,MAAM,iDAAiDA,KAAI,cAAc,GAAG,CAAC;AAAA,EAC3G,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACZ,QAAI,cAAc,OAAO;AACrB;AAAA,IACJ;AAEA,UAAM,UAAU,OAAO,cAAc,WAAW,SAAS,cAAc,SAAS,IAAI;AAEpF,QAAI,SAAS;AACT,cAAQ,aAAa,QAAQ,IAAI;AACjC,cAAQ,aAAa,OAAO,aAAa,IAAI,CAAC;AAE9C,aAAO,MAAM;AACT,gBAAQ,gBAAgB,MAAM;AAC9B,gBAAQ,gBAAgB,KAAK;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,MAAM,SAAS,CAAC;AAEpB,YAAU,MAAM;AACZ,WAAO,KAAK,EAAE,KAAK,CAAAA,UAAQ,QAAQA,KAAI,CAAC;AAAA,EAC5C,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACZ,WAAO,OAAO,MAAM,CAAAA,UAAQ,QAAQA,KAAI,CAAC;AAAA,EAC7C,GAAG,CAAC,CAAC;AAEL,SACI;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACG,OAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK,aAAa,IAAI;AAAA,QACtB,OAAO,YAAY,IAAI;AAAA,MAC3B;AAAA;AAAA,IAEC;AAAA,EACL;AAER;AAEA,IAAO,yBAAQ;","names":["lang"]}
1
+ {"version":3,"sources":["../../../../src/locale/adapters/react/LocaleProvider.tsx"],"sourcesContent":["import React, {PropsWithChildren, useCallback, useEffect, useMemo, useState} from \"react\";\n\nimport {LocaleContext, LocaleContract} from \"./context\";\n\nimport {getLocaleDir, isLocaleRtl} from \"@locale/utils\";\n\nimport {DynamicLocale} from \"@locale/providers\";\n\nimport {Language} from \"@typing/locale\";\n\nexport interface LocaleProviderProps {\n storage?: string | false;\n container?: string | Element | false;\n}\n\nconst LocaleProvider = ({children, storage, container = \"html\"}: PropsWithChildren<LocaleProviderProps>) => {\n const locale = useMemo(() => new DynamicLocale(storage), []);\n\n const [lang, setLang] = useState<Language>(locale.lang());\n\n const t: LocaleContract[\"t\"] = useCallback((key, ...args): string => {\n return locale.trans(key, ...args);\n }, []);\n\n const choice: LocaleContract[\"choice\"] = useCallback((key, count, ...args): string => {\n return locale.choice(key, count, ...args);\n }, []);\n\n const change: LocaleContract[\"change\"] = useCallback((lang): void => {\n locale\n .change(lang)\n .catch(err => console.error(`[LocaleProvider] Cannot find locale file for \"${lang}\" language`, err));\n }, []);\n\n useEffect(() => {\n if (container === false) {\n return;\n }\n\n const element = typeof container === \"string\" ? document.querySelector(container) : container;\n\n if (element) {\n element.setAttribute(\"lang\", lang);\n element.setAttribute(\"dir\", getLocaleDir(lang));\n\n return () => {\n element.removeAttribute(\"lang\");\n element.removeAttribute(\"dir\");\n };\n }\n }, [lang, container]);\n\n useEffect(() => {\n locale.sync().then(lang => setLang(lang));\n }, []);\n\n useEffect(() => {\n return locale.watch(lang => setLang(lang));\n }, []);\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n choice,\n change,\n lang,\n dir: getLocaleDir(lang),\n isRtl: isLocaleRtl(lang),\n }}\n >\n {children}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleProvider;\n"],"mappings":"AAAA,OAAO,SAA2B,aAAa,WAAW,SAAS,gBAAe;AAElF,SAAQ,qBAAoC;AAE5C,SAAQ,cAAc,mBAAkB;AAExC,SAAQ,qBAAoB;AAS5B,MAAM,iBAAiB,CAAC,EAAC,UAAU,SAAS,YAAY,OAAM,MAA8C;AACxG,QAAM,SAAS,QAAQ,MAAM,IAAI,cAAc,OAAO,GAAG,CAAC,CAAC;AAE3D,QAAM,CAAC,MAAM,OAAO,IAAI,SAAmB,OAAO,KAAK,CAAC;AAExD,QAAM,IAAyB,YAAY,CAAC,QAAQ,SAAiB;AACjE,WAAO,OAAO,MAAM,KAAK,GAAG,IAAI;AAAA,EACpC,GAAG,CAAC,CAAC;AAEL,QAAM,SAAmC,YAAY,CAAC,KAAK,UAAU,SAAiB;AAClF,WAAO,OAAO,OAAO,KAAK,OAAO,GAAG,IAAI;AAAA,EAC5C,GAAG,CAAC,CAAC;AAEL,QAAM,SAAmC,YAAY,CAACA,UAAe;AACjE,WACK,OAAOA,KAAI,EACX,MAAM,SAAO,QAAQ,MAAM,iDAAiDA,KAAI,cAAc,GAAG,CAAC;AAAA,EAC3G,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACZ,QAAI,cAAc,OAAO;AACrB;AAAA,IACJ;AAEA,UAAM,UAAU,OAAO,cAAc,WAAW,SAAS,cAAc,SAAS,IAAI;AAEpF,QAAI,SAAS;AACT,cAAQ,aAAa,QAAQ,IAAI;AACjC,cAAQ,aAAa,OAAO,aAAa,IAAI,CAAC;AAE9C,aAAO,MAAM;AACT,gBAAQ,gBAAgB,MAAM;AAC9B,gBAAQ,gBAAgB,KAAK;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,MAAM,SAAS,CAAC;AAEpB,YAAU,MAAM;AACZ,WAAO,KAAK,EAAE,KAAK,CAAAA,UAAQ,QAAQA,KAAI,CAAC;AAAA,EAC5C,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACZ,WAAO,OAAO,MAAM,CAAAA,UAAQ,QAAQA,KAAI,CAAC;AAAA,EAC7C,GAAG,CAAC,CAAC;AAEL,SACI;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACG,OAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK,aAAa,IAAI;AAAA,QACtB,OAAO,YAAY,IAAI;AAAA,MAC3B;AAAA;AAAA,IAEC;AAAA,EACL;AAER;AAEA,IAAO,yBAAQ;","names":["lang"]}
@@ -1,18 +1,13 @@
1
- import * as React from 'react';
2
- import { LocaleStructure, Language, LocaleDir, LocaleNonPluralKeys, LocaleSubstitutionsFor, LocalePluralKeys } from '../../../types/locale.js';
3
- import { LocaleNativeStructure } from '../../providers/NativeLocale.js';
4
- import '../../providers/AbstractLocale.js';
5
-
6
- interface LocaleContract<S extends LocaleStructure = LocaleNativeStructure> {
1
+ import { LocaleDir, Language, LocaleNonPluralKeys, LocaleSubstitutionArgs, LocalePluralKeys } from "../../../types/locale.js";
2
+ import { LocaleNativeStructure } from "../../providers/index.js";
3
+ export interface LocaleContract<S extends object = LocaleNativeStructure> {
7
4
  lang: Language;
8
5
  dir: LocaleDir;
9
6
  isRtl: boolean;
10
- _<K extends LocaleNonPluralKeys<S>>(key: K, substitutions?: LocaleSubstitutionsFor<S, K>): string;
11
- choice<K extends LocalePluralKeys<S>>(key: K, count: number, substitutions?: LocaleSubstitutionsFor<S, K>): string;
7
+ t<K extends LocaleNonPluralKeys<S>>(key: K, ...args: LocaleSubstitutionArgs<S, K>): string;
8
+ choice<K extends LocalePluralKeys<S>>(key: K, count: number, ...args: LocaleSubstitutionArgs<S, K>): string;
12
9
  change(lang: Language): void;
13
10
  }
14
- declare const DefaultLocale: LocaleContract;
15
- declare const LocaleContext: React.Context<LocaleContract<LocaleNativeStructure>>;
16
- declare const useLocale: () => LocaleContract<LocaleNativeStructure>;
17
-
18
- export { DefaultLocale, LocaleContext, type LocaleContract, useLocale };
11
+ export declare const DefaultLocale: LocaleContract;
12
+ export declare const LocaleContext: import("react").Context<LocaleContract<LocaleNativeStructure>>;
13
+ export declare const useLocale: () => LocaleContract<LocaleNativeStructure>;
@@ -1,13 +1,10 @@
1
1
  import { createContext, useContext } from "react";
2
- import {
3
- LocaleDir,
4
- Language
5
- } from "./../../../types/locale.js";
2
+ import { LocaleDir, Language } from "./../../../types/locale.js";
6
3
  const DefaultLocale = {
7
4
  lang: Language.English,
8
5
  isRtl: false,
9
6
  dir: LocaleDir.LeftToRight,
10
- _(key) {
7
+ t(key) {
11
8
  return key;
12
9
  },
13
10
  choice(key) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/locale/adapters/react/context.ts"],"sourcesContent":["import {createContext, useContext} from \"react\";\n\nimport {\n LocaleDir,\n Language,\n LocaleNonPluralKeys,\n LocaleStructure,\n LocaleSubstitutionsFor,\n LocalePluralKeys,\n} from \"@typing/locale\";\n\nimport {LocaleNativeStructure} from \"@locale/providers\";\n\nexport interface LocaleContract<S extends LocaleStructure = LocaleNativeStructure> {\n lang: Language;\n\n dir: LocaleDir;\n\n isRtl: boolean;\n\n _<K extends LocaleNonPluralKeys<S>>(key: K, substitutions?: LocaleSubstitutionsFor<S, K>): string;\n\n choice<K extends LocalePluralKeys<S>>(key: K, count: number, substitutions?: LocaleSubstitutionsFor<S, K>): string;\n\n change(lang: Language): void;\n}\n\nexport const DefaultLocale: LocaleContract = {\n lang: Language.English,\n isRtl: false,\n dir: LocaleDir.LeftToRight,\n _(key: string): string {\n return key as string;\n },\n choice(key: string): string {\n return key;\n },\n change(_lang: Language) {},\n};\n\nexport const LocaleContext = createContext<LocaleContract>(DefaultLocale);\n\nLocaleContext.displayName = \"LocaleContext\";\n\nexport const useLocale = () => useContext(LocaleContext);\n"],"mappings":"AAAA,SAAQ,eAAe,kBAAiB;AAExC;AAAA,EACI;AAAA,EACA;AAAA,OAKG;AAkBA,MAAM,gBAAgC;AAAA,EACzC,MAAM,SAAS;AAAA,EACf,OAAO;AAAA,EACP,KAAK,UAAU;AAAA,EACf,EAAE,KAAqB;AACnB,WAAO;AAAA,EACX;AAAA,EACA,OAAO,KAAqB;AACxB,WAAO;AAAA,EACX;AAAA,EACA,OAAO,OAAiB;AAAA,EAAC;AAC7B;AAEO,MAAM,gBAAgB,cAA8B,aAAa;AAExE,cAAc,cAAc;AAErB,MAAM,YAAY,MAAM,WAAW,aAAa;","names":[]}
1
+ {"version":3,"sources":["../../../../src/locale/adapters/react/context.ts"],"sourcesContent":["import {createContext, useContext} from \"react\";\n\nimport {LocaleDir, Language, LocaleNonPluralKeys, LocaleSubstitutionArgs, LocalePluralKeys} from \"@typing/locale\";\n\nimport {LocaleNativeStructure} from \"@locale/providers\";\n\nexport interface LocaleContract<S extends object = LocaleNativeStructure> {\n lang: Language;\n\n dir: LocaleDir;\n\n isRtl: boolean;\n\n t<K extends LocaleNonPluralKeys<S>>(key: K, ...args: LocaleSubstitutionArgs<S, K>): string;\n\n choice<K extends LocalePluralKeys<S>>(key: K, count: number, ...args: LocaleSubstitutionArgs<S, K>): string;\n\n change(lang: Language): void;\n}\n\nexport const DefaultLocale: LocaleContract = {\n lang: Language.English,\n isRtl: false,\n dir: LocaleDir.LeftToRight,\n t(key: string): string {\n return key as string;\n },\n choice(key: string): string {\n return key;\n },\n change(_lang: Language) {},\n};\n\nexport const LocaleContext = createContext<LocaleContract>(DefaultLocale);\n\nLocaleContext.displayName = \"LocaleContext\";\n\nexport const useLocale = () => useContext(LocaleContext);\n"],"mappings":"AAAA,SAAQ,eAAe,kBAAiB;AAExC,SAAQ,WAAW,gBAA8E;AAkB1F,MAAM,gBAAgC;AAAA,EACzC,MAAM,SAAS;AAAA,EACf,OAAO;AAAA,EACP,KAAK,UAAU;AAAA,EACf,EAAE,KAAqB;AACnB,WAAO;AAAA,EACX;AAAA,EACA,OAAO,KAAqB;AACxB,WAAO;AAAA,EACX;AAAA,EACA,OAAO,OAAiB;AAAA,EAAC;AAC7B;AAEO,MAAM,gBAAgB,cAA8B,aAAa;AAExE,cAAc,cAAc;AAErB,MAAM,YAAY,MAAM,WAAW,aAAa;","names":[]}
@@ -1,6 +1,2 @@
1
- export { default as LocaleProvider, LocaleProviderProps } from './LocaleProvider.js';
2
- export { LocaleContract, useLocale } from './context.js';
3
- import 'react';
4
- import '../../../types/locale.js';
5
- import '../../providers/NativeLocale.js';
6
- import '../../providers/AbstractLocale.js';
1
+ export { default as LocaleProvider, type LocaleProviderProps } from "./LocaleProvider.js";
2
+ export { useLocale, type LocaleContract } from "./context.js";
@@ -1,47 +1,71 @@
1
- import { LocaleNonPluralKeys, LocaleSubstitutionsFor, LocalePluralKeys } from '../types/locale.js';
2
- import { LocaleNativeStructure } from './providers/NativeLocale.js';
3
- import './providers/AbstractLocale.js';
4
-
1
+ import { LocaleNativeStructure } from "./providers/index.js";
2
+ import { LocaleNonPluralKeys, LocalePluralKeys, LocaleSubstitutionArgs } from "../types/locale.js";
5
3
  /**
6
- * Translates a given locale key into the corresponding localized string.
4
+ * Translates a non-plural locale key.
7
5
  *
8
- * @template K - A type representing the non-plural keys of the locale structure.
9
- * @param {K} key - The locale key to be translated.
10
- * @param {LocaleSubstitutionsFor<LocaleNativeStructure, K>} [substitutions] - Optional substitutions to be applied
11
- * within the localized string. These are typically placeholders replaced with dynamic values.
12
- * @returns {string} - The translated string for the given key, with substitutions applied if provided.
6
+ * Substitutions are type-checked from the generated locale structure:
7
+ * keys without placeholders do not accept substitutions, while keys with
8
+ * placeholders require all declared substitution values.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * t("app.name");
13
+ * t("app.greeting", {name: "Alice"});
14
+ * ```
15
+ *
16
+ * @param key - The locale key to translate.
17
+ * @param args
18
+ * @returns The translated string.
13
19
  */
14
- declare const _: <K extends LocaleNonPluralKeys<LocaleNativeStructure>>(key: K, substitutions?: LocaleSubstitutionsFor<LocaleNativeStructure, K>) => string;
20
+ export declare const t: <K extends LocaleNonPluralKeys<LocaleNativeStructure>>(key: K, ...args: LocaleSubstitutionArgs<LocaleNativeStructure, K>) => string;
15
21
  /**
16
- * Translates a given locale key into the corresponding localized string
17
- * based on a specific count for pluralization.
18
- *
19
- * @template K - A type representing the non-plural keys of the locale structure.
20
- * @param {K} key - The locale key to be translated.
21
- * @param {number} count - The count used to determine the pluralization form.
22
- * @param {LocaleSubstitutionsFor<LocaleNativeStructure, K>} [substitutions] - Optional substitutions to be applied
23
- * within the localized string. These are typically placeholders replaced with dynamic values.
24
- * @returns {string} - The translated string for the given key, adjusted for pluralization and with substitutions applied if provided.
22
+ * Translates a plural locale key using the provided count.
23
+ *
24
+ * Substitutions are type-checked from the generated locale structure:
25
+ * keys without placeholders do not accept substitutions, while keys with
26
+ * placeholders require all declared substitution values.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * choice("cart.items", count, {count});
31
+ * ```
32
+ *
33
+ * @param key - The locale key to translate.
34
+ * @param count - The count used to select the plural form.
35
+ * @param args
36
+ * @returns The translated string.
25
37
  */
26
- declare const _c: <K extends LocalePluralKeys<LocaleNativeStructure>>(key: K, count: number, substitutions?: LocaleSubstitutionsFor<LocaleNativeStructure, K>) => string;
38
+ export declare const choice: <K extends LocalePluralKeys<LocaleNativeStructure>>(key: K, count: number, ...args: LocaleSubstitutionArgs<LocaleNativeStructure, K>) => string;
27
39
  /**
28
- * Converts a locale key into a standardized format and logs a warning if the key is not found
29
- * in the current language's locale keys.
40
+ * Converts a locale key to a browser message reference.
30
41
  *
31
- * @param {Extract<keyof LocaleNativeStructure, string>} key - The locale key to be converted.
32
- * This key must be a string and exist within the `LocaleNativeStructure`.
33
- * @returns {string} - The converted locale message key.
42
+ * This is useful for browser-managed extension fields that expect
43
+ * `__MSG_name__` references instead of already translated text.
44
+ *
45
+ * A warning is logged when the key does not exist in the generated locale keys.
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * key("app.name"); // "__MSG_app_name__"
50
+ * ```
51
+ *
52
+ * @param value - The locale key to convert.
53
+ * @returns The browser message reference.
34
54
  */
35
- declare const __: (key: keyof LocaleNativeStructure & string) => string;
55
+ export declare const key: (value: keyof LocaleNativeStructure & string) => string;
36
56
  /**
37
- * Attempts to extract a locale key from the provided string and translates it
38
- * into the corresponding localized string. If no locale key can be extracted,
39
- * the original string is returned.
57
+ * Resolves a string that may contain a locale marker.
58
+ *
59
+ * When the input contains a locale marker, the marker is extracted and translated.
60
+ * Plain strings are returned unchanged.
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * resolve("@app.name");
65
+ * resolve("Plain title");
66
+ * ```
40
67
  *
41
- * @param {string} input - The input string from which a locale key is to be extracted.
42
- * @returns {string} - The translated string if a locale key is successfully extracted,
43
- * or the original string if no locale key is found.
68
+ * @param input - A plain string or a marked locale key string.
69
+ * @returns The translated text when a marker is found, otherwise the original input.
44
70
  */
45
- declare const __t: (input: string) => string;
46
-
47
- export { _, __, __t, _c };
71
+ export declare const resolve: (input: string) => string;
@@ -1,29 +1,29 @@
1
1
  import { NativeLocale } from "./../locale/providers/index.js";
2
2
  import { convertLocaleMessageKey, extractLocaleKey } from "./../locale/utils.js";
3
- const _ = (key, substitutions) => {
4
- return NativeLocale.getInstance().trans(key, substitutions);
3
+ const t = (key2, ...args) => {
4
+ return NativeLocale.getInstance().trans(key2, ...args);
5
5
  };
6
- const _c = (key, count, substitutions) => {
7
- return NativeLocale.getInstance().choice(key, count, substitutions);
6
+ const choice = (key2, count, ...args) => {
7
+ return NativeLocale.getInstance().choice(key2, count, ...args);
8
8
  };
9
- const __ = (key) => {
9
+ const key = (value) => {
10
10
  const locale = NativeLocale.getInstance();
11
- if (!locale.keys().has(key)) {
12
- console.warn(`Locale key "${key}" not found in "${locale.lang()}" language.`);
11
+ if (!locale.keys().has(value)) {
12
+ console.warn(`Locale key "${value}" not found in "${locale.lang()}" language.`);
13
13
  }
14
- return convertLocaleMessageKey(key);
14
+ return convertLocaleMessageKey(value);
15
15
  };
16
- const __t = (input) => {
16
+ const resolve = (input) => {
17
17
  const localeKey = extractLocaleKey(input);
18
18
  if (localeKey) {
19
- return _(localeKey);
19
+ return t(localeKey);
20
20
  }
21
21
  return input;
22
22
  };
23
23
  export {
24
- _,
25
- __,
26
- __t,
27
- _c
24
+ choice,
25
+ key,
26
+ resolve,
27
+ t
28
28
  };
29
29
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/locale/helpers.ts"],"sourcesContent":["import {LocaleNativeStructure, NativeLocale} from \"@locale/providers\";\nimport {convertLocaleMessageKey, extractLocaleKey} from \"@locale/utils\";\nimport {LocaleNonPluralKeys, LocalePluralKeys, LocaleSubstitutionsFor} from \"@typing/locale\";\n\n/**\n * Translates a given locale key into the corresponding localized string.\n *\n * @template K - A type representing the non-plural keys of the locale structure.\n * @param {K} key - The locale key to be translated.\n * @param {LocaleSubstitutionsFor<LocaleNativeStructure, K>} [substitutions] - Optional substitutions to be applied\n * within the localized string. These are typically placeholders replaced with dynamic values.\n * @returns {string} - The translated string for the given key, with substitutions applied if provided.\n */\nexport const _ = <K extends LocaleNonPluralKeys<LocaleNativeStructure>>(\n key: K,\n substitutions?: LocaleSubstitutionsFor<LocaleNativeStructure, K>\n): string => {\n return NativeLocale.getInstance().trans(key, substitutions);\n};\n\n/**\n * Translates a given locale key into the corresponding localized string\n * based on a specific count for pluralization.\n *\n * @template K - A type representing the non-plural keys of the locale structure.\n * @param {K} key - The locale key to be translated.\n * @param {number} count - The count used to determine the pluralization form.\n * @param {LocaleSubstitutionsFor<LocaleNativeStructure, K>} [substitutions] - Optional substitutions to be applied\n * within the localized string. These are typically placeholders replaced with dynamic values.\n * @returns {string} - The translated string for the given key, adjusted for pluralization and with substitutions applied if provided.\n */\nexport const _c = <K extends LocalePluralKeys<LocaleNativeStructure>>(\n key: K,\n count: number,\n substitutions?: LocaleSubstitutionsFor<LocaleNativeStructure, K>\n): string => {\n return NativeLocale.getInstance().choice(key, count, substitutions);\n};\n\n/**\n * Converts a locale key into a standardized format and logs a warning if the key is not found\n * in the current language's locale keys.\n *\n * @param {Extract<keyof LocaleNativeStructure, string>} key - The locale key to be converted.\n * This key must be a string and exist within the `LocaleNativeStructure`.\n * @returns {string} - The converted locale message key.\n */\nexport const __ = (key: keyof LocaleNativeStructure & string): string => {\n const locale = NativeLocale.getInstance();\n\n if (!locale.keys().has(key)) {\n console.warn(`Locale key \"${key}\" not found in \"${locale.lang()}\" language.`);\n }\n\n return convertLocaleMessageKey(key);\n};\n\n/**\n * Attempts to extract a locale key from the provided string and translates it\n * into the corresponding localized string. If no locale key can be extracted,\n * the original string is returned.\n *\n * @param {string} input - The input string from which a locale key is to be extracted.\n * @returns {string} - The translated string if a locale key is successfully extracted,\n * or the original string if no locale key is found.\n */\nexport const __t = (input: string): string => {\n const localeKey = extractLocaleKey(input);\n\n if (localeKey) {\n return _(localeKey as LocaleNonPluralKeys<LocaleNativeStructure>);\n }\n\n return input;\n};\n"],"mappings":"AAAA,SAA+B,oBAAmB;AAClD,SAAQ,yBAAyB,wBAAuB;AAYjD,MAAM,IAAI,CACb,KACA,kBACS;AACT,SAAO,aAAa,YAAY,EAAE,MAAM,KAAK,aAAa;AAC9D;AAaO,MAAM,KAAK,CACd,KACA,OACA,kBACS;AACT,SAAO,aAAa,YAAY,EAAE,OAAO,KAAK,OAAO,aAAa;AACtE;AAUO,MAAM,KAAK,CAAC,QAAsD;AACrE,QAAM,SAAS,aAAa,YAAY;AAExC,MAAI,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,GAAG;AACzB,YAAQ,KAAK,eAAe,GAAG,mBAAmB,OAAO,KAAK,CAAC,aAAa;AAAA,EAChF;AAEA,SAAO,wBAAwB,GAAG;AACtC;AAWO,MAAM,MAAM,CAAC,UAA0B;AAC1C,QAAM,YAAY,iBAAiB,KAAK;AAExC,MAAI,WAAW;AACX,WAAO,EAAE,SAAuD;AAAA,EACpE;AAEA,SAAO;AACX;","names":[]}
1
+ {"version":3,"sources":["../../src/locale/helpers.ts"],"sourcesContent":["import {LocaleNativeStructure, NativeLocale} from \"@locale/providers\";\nimport {convertLocaleMessageKey, extractLocaleKey} from \"@locale/utils\";\nimport {LocaleNonPluralKeys, LocalePluralKeys, LocaleSubstitutionArgs} from \"@typing/locale\";\n\n/**\n * Translates a non-plural locale key.\n *\n * Substitutions are type-checked from the generated locale structure:\n * keys without placeholders do not accept substitutions, while keys with\n * placeholders require all declared substitution values.\n *\n * @example\n * ```ts\n * t(\"app.name\");\n * t(\"app.greeting\", {name: \"Alice\"});\n * ```\n *\n * @param key - The locale key to translate.\n * @param args\n * @returns The translated string.\n */\nexport const t = <K extends LocaleNonPluralKeys<LocaleNativeStructure>>(\n key: K,\n ...args: LocaleSubstitutionArgs<LocaleNativeStructure, K>\n): string => {\n return NativeLocale.getInstance().trans(key, ...args);\n};\n\n/**\n * Translates a plural locale key using the provided count.\n *\n * Substitutions are type-checked from the generated locale structure:\n * keys without placeholders do not accept substitutions, while keys with\n * placeholders require all declared substitution values.\n *\n * @example\n * ```ts\n * choice(\"cart.items\", count, {count});\n * ```\n *\n * @param key - The locale key to translate.\n * @param count - The count used to select the plural form.\n * @param args\n * @returns The translated string.\n */\nexport const choice = <K extends LocalePluralKeys<LocaleNativeStructure>>(\n key: K,\n count: number,\n ...args: LocaleSubstitutionArgs<LocaleNativeStructure, K>\n): string => {\n return NativeLocale.getInstance().choice(key, count, ...args);\n};\n\n/**\n * Converts a locale key to a browser message reference.\n *\n * This is useful for browser-managed extension fields that expect\n * `__MSG_name__` references instead of already translated text.\n *\n * A warning is logged when the key does not exist in the generated locale keys.\n *\n * @example\n * ```ts\n * key(\"app.name\"); // \"__MSG_app_name__\"\n * ```\n *\n * @param value - The locale key to convert.\n * @returns The browser message reference.\n */\nexport const key = (value: keyof LocaleNativeStructure & string): string => {\n const locale = NativeLocale.getInstance();\n\n if (!locale.keys().has(value)) {\n console.warn(`Locale key \"${value}\" not found in \"${locale.lang()}\" language.`);\n }\n\n return convertLocaleMessageKey(value);\n};\n\n/**\n * Resolves a string that may contain a locale marker.\n *\n * When the input contains a locale marker, the marker is extracted and translated.\n * Plain strings are returned unchanged.\n *\n * @example\n * ```ts\n * resolve(\"@app.name\");\n * resolve(\"Plain title\");\n * ```\n *\n * @param input - A plain string or a marked locale key string.\n * @returns The translated text when a marker is found, otherwise the original input.\n */\nexport const resolve = (input: string): string => {\n const localeKey = extractLocaleKey(input);\n\n if (localeKey) {\n return t(localeKey as LocaleNonPluralKeys<LocaleNativeStructure>);\n }\n\n return input;\n};\n"],"mappings":"AAAA,SAA+B,oBAAmB;AAClD,SAAQ,yBAAyB,wBAAuB;AAoBjD,MAAM,IAAI,CACbA,SACG,SACM;AACT,SAAO,aAAa,YAAY,EAAE,MAAMA,MAAK,GAAG,IAAI;AACxD;AAmBO,MAAM,SAAS,CAClBA,MACA,UACG,SACM;AACT,SAAO,aAAa,YAAY,EAAE,OAAOA,MAAK,OAAO,GAAG,IAAI;AAChE;AAkBO,MAAM,MAAM,CAAC,UAAwD;AACxE,QAAM,SAAS,aAAa,YAAY;AAExC,MAAI,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,GAAG;AAC3B,YAAQ,KAAK,eAAe,KAAK,mBAAmB,OAAO,KAAK,CAAC,aAAa;AAAA,EAClF;AAEA,SAAO,wBAAwB,KAAK;AACxC;AAiBO,MAAM,UAAU,CAAC,UAA0B;AAC9C,QAAM,YAAY,iBAAiB,KAAK;AAExC,MAAI,WAAW;AACX,WAAO,EAAE,SAAuD;AAAA,EACpE;AAEA,SAAO;AACX;","names":["key"]}
@@ -1,7 +1,3 @@
1
- export { default as AbstractLocale } from './providers/AbstractLocale.js';
2
- export { default as DynamicLocale } from './providers/DynamicLocale.js';
3
- export { LocaleNativeStructure, default as NativeLocale } from './providers/NativeLocale.js';
4
- export { _, __, __t, _c } from './helpers.js';
5
- export { Language, LanguageCodes, LocaleDir, LocaleDynamicProvider, LocaleKeys, LocaleNonPluralKeys, LocalePluralKeys, LocaleProvider, LocaleStructure, LocaleSubstitutionsFor } from '../types/locale.js';
6
- import '@addon-core/storage';
7
- import './providers/CustomLocale.js';
1
+ export * from "./providers/index.js";
2
+ export * from "./helpers.js";
3
+ export { Language, LanguageCodes, LocaleDir, type LocaleStructure, type LocaleProvider, type LocaleDynamicProvider, type LocaleKeys, type LocaleSubstitutionArgs, type LocaleSubstitutionKeys, type LocaleSubstitutionValue, type LocaleNonPluralKeys, type LocalePluralKeys, } from "../types/locale.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/locale/index.ts"],"sourcesContent":["export * from \"./providers\";\nexport * from \"./helpers\";\n\nexport {\n Language,\n LanguageCodes,\n LocaleDir,\n type LocaleStructure,\n type LocaleProvider,\n type LocaleDynamicProvider,\n type LocaleKeys,\n type LocaleSubstitutionsFor,\n type LocaleNonPluralKeys,\n type LocalePluralKeys,\n} from \"@typing/locale\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AAEd;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OAQG;","names":[]}
1
+ {"version":3,"sources":["../../src/locale/index.ts"],"sourcesContent":["export * from \"./providers\";\nexport * from \"./helpers\";\n\nexport {\n Language,\n LanguageCodes,\n LocaleDir,\n type LocaleStructure,\n type LocaleProvider,\n type LocaleDynamicProvider,\n type LocaleKeys,\n type LocaleSubstitutionArgs,\n type LocaleSubstitutionKeys,\n type LocaleSubstitutionValue,\n type LocaleNonPluralKeys,\n type LocalePluralKeys,\n} from \"@typing/locale\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AAEd;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OAUG;","names":[]}
@@ -1,14 +1,11 @@
1
- import { LocaleStructure, LocaleProvider, Language, LocaleNonPluralKeys, LocaleSubstitutionsFor, LocalePluralKeys } from '../../types/locale.js';
2
-
3
- declare abstract class export_default<S extends LocaleStructure> implements LocaleProvider<S> {
1
+ import { Language, LocaleNonPluralKeys, LocalePluralKeys, LocaleProvider, LocaleStructure, LocaleSubstitutionArgs, LocaleSubstitutionValue } from "../../types/locale.js";
2
+ export default abstract class<S extends object = LocaleStructure> implements LocaleProvider<S> {
4
3
  abstract lang(): Language;
5
4
  abstract keys(): Set<keyof S>;
6
5
  abstract languages(): Set<Language>;
7
6
  protected abstract value(key: keyof S & string): string | undefined;
8
- trans<K extends LocaleNonPluralKeys<S>>(key: K, substitutions?: LocaleSubstitutionsFor<S, K>): string;
9
- choice<K extends LocalePluralKeys<S>>(key: K, count: number, substitutions?: LocaleSubstitutionsFor<S, K>): string;
10
- get<K extends keyof S & string>(key: K, substitutions?: LocaleSubstitutionsFor<S, K>): string;
7
+ trans<K extends LocaleNonPluralKeys<S>>(key: K, ...args: LocaleSubstitutionArgs<S, K>): string;
8
+ choice<K extends LocalePluralKeys<S>>(key: K, count: number, ...args: LocaleSubstitutionArgs<S, K>): string;
9
+ get<K extends keyof S & string>(key: K, substitutions?: Record<string, LocaleSubstitutionValue>): string;
11
10
  private getPluralIndex;
12
11
  }
13
-
14
- export { export_default as default };
@@ -3,10 +3,12 @@ import {
3
3
  LocaleValuesSeparator
4
4
  } from "./../../types/locale.js";
5
5
  class AbstractLocale_default {
6
- trans(key, substitutions) {
6
+ trans(key, ...args) {
7
+ const [substitutions] = args;
7
8
  return this.get(key, substitutions);
8
9
  }
9
- choice(key, count, substitutions) {
10
+ choice(key, count, ...args) {
11
+ const [substitutions] = args;
10
12
  const parts = this.get(key, substitutions).split(LocaleValuesSeparator);
11
13
  const idx = this.getPluralIndex(count);
12
14
  return parts[idx] ?? parts[0] ?? key;
@@ -19,13 +21,14 @@ class AbstractLocale_default {
19
21
  }
20
22
  if (substitutions) {
21
23
  return template.replace(/{{(.*?)}}/g, (_, placeholder) => {
22
- if (placeholder in substitutions) {
23
- return substitutions[placeholder].toString();
24
+ const substitution = placeholder.trim();
25
+ if (substitution in substitutions) {
26
+ return substitutions[substitution].toString();
24
27
  }
25
28
  console.warn(
26
- `Locale substitution "${placeholder}" not found for key "${key}" in "${this.lang()}" language.`
29
+ `Locale substitution "${substitution}" not found for key "${key}" in "${this.lang()}" language.`
27
30
  );
28
- return placeholder;
31
+ return substitution;
29
32
  });
30
33
  }
31
34
  return template;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/locale/providers/AbstractLocale.ts"],"sourcesContent":["import {\n Language,\n LocaleNonPluralKeys,\n LocalePluralKeys,\n LocaleProvider,\n LocaleStructure,\n LocaleSubstitutionsFor,\n LocaleValuesSeparator,\n} from \"@typing/locale\";\n\nexport default abstract class<S extends LocaleStructure> implements LocaleProvider<S> {\n public abstract lang(): Language;\n\n public abstract keys(): Set<keyof S>;\n\n public abstract languages(): Set<Language>;\n\n protected abstract value(key: keyof S & string): string | undefined;\n\n public trans<K extends LocaleNonPluralKeys<S>>(key: K, substitutions?: LocaleSubstitutionsFor<S, K>): string {\n return this.get(key, substitutions);\n }\n\n public choice<K extends LocalePluralKeys<S>>(\n key: K,\n count: number,\n substitutions?: LocaleSubstitutionsFor<S, K>\n ): string {\n const parts = this.get(key, substitutions).split(LocaleValuesSeparator);\n\n const idx = this.getPluralIndex(count);\n\n return parts[idx] ?? parts[0] ?? (key as string);\n }\n\n public get<K extends keyof S & string>(key: K, substitutions?: LocaleSubstitutionsFor<S, K>): string {\n const template = this.value(key);\n\n if (template === undefined) {\n console.warn(`Locale key \"${key}\" not found in \"${this.lang()}\" language.`);\n\n return key as string;\n }\n\n if (substitutions) {\n return template.replace(/{{(.*?)}}/g, (_, placeholder: string) => {\n if (placeholder in substitutions) {\n return substitutions[placeholder]!.toString();\n }\n\n console.warn(\n `Locale substitution \"${placeholder}\" not found for key \"${key}\" in \"${this.lang()}\" language.`\n );\n\n return placeholder;\n });\n }\n\n return template;\n }\n\n private getPluralIndex(count: number): number {\n switch (this.lang()) {\n case Language.Indonesian:\n case Language.Japanese:\n case Language.Kannada:\n case Language.Korean:\n case Language.Malay:\n case Language.Thai:\n case Language.Turkish:\n case Language.Vietnamese:\n return 0;\n\n case Language.Bengali:\n case Language.Bulgarian:\n case Language.Catalan:\n case Language.Danish:\n case Language.German:\n case Language.Greek:\n case Language.English:\n case Language.EnglishAustralia:\n case Language.EnglishGreatBritain:\n case Language.EnglishUSA:\n case Language.Spanish:\n case Language.SpanishLatinAmericaAndCaribbean:\n case Language.Estonian:\n case Language.Persian:\n case Language.Finnish:\n case Language.Gujarati:\n case Language.Hebrew:\n case Language.Hungarian:\n case Language.Italian:\n case Language.Malayalam:\n case Language.Marathi:\n case Language.Dutch:\n case Language.Norwegian:\n case Language.Swedish:\n case Language.Swahili:\n case Language.Tamil:\n case Language.Telugu:\n case Language.ChineseChina:\n case Language.ChineseTaiwan:\n case Language.PortugueseBrazil:\n case Language.PortuguesePortugal:\n return count == 1 ? 0 : 1;\n\n case Language.Amharic:\n case Language.Filipino:\n case Language.French:\n case Language.Hindi:\n return count == 0 || count == 1 ? 0 : 1;\n\n case Language.Croatian:\n case Language.Russian:\n case Language.Serbian:\n case Language.Ukrainian:\n return count % 10 == 1 && count % 100 != 11\n ? 0\n : count % 10 >= 2 && count % 10 <= 4 && (count % 100 < 10 || count % 100 >= 20)\n ? 1\n : 2;\n\n case Language.Czech:\n case Language.Slovak:\n return count == 1 ? 0 : count >= 2 && count <= 4 ? 1 : 2;\n\n case Language.Lithuanian:\n return count % 10 == 1 && count % 100 != 11\n ? 0\n : count % 10 >= 2 && (count % 100 < 10 || count % 100 >= 20)\n ? 1\n : 2;\n\n case Language.Slovenian:\n return count % 100 == 1 ? 0 : count % 100 == 2 ? 1 : count % 100 == 3 || count % 100 == 4 ? 2 : 3;\n\n case Language.Latvian:\n return count == 0 ? 0 : count % 10 == 1 && count % 100 != 11 ? 1 : 2;\n\n case Language.Polish:\n return count == 1\n ? 0\n : count % 10 >= 2 && count % 10 <= 4 && (count % 100 < 12 || count % 100 > 14)\n ? 1\n : 2;\n\n case Language.Romanian:\n return count == 1 ? 0 : count == 0 || (count % 100 > 0 && count % 100 < 20) ? 1 : 2;\n\n case Language.Arabic:\n return count == 0\n ? 0\n : count == 1\n ? 1\n : count == 2\n ? 2\n : count % 100 >= 3 && count % 100 <= 10\n ? 3\n : count % 100 >= 11 && count % 100 <= 99\n ? 4\n : 5;\n\n default:\n return 0;\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/locale/providers/AbstractLocale.ts"],"sourcesContent":["import {\n Language,\n LocaleNonPluralKeys,\n LocalePluralKeys,\n LocaleProvider,\n LocaleStructure,\n LocaleSubstitutionArgs,\n LocaleSubstitutionValue,\n LocaleValuesSeparator,\n} from \"@typing/locale\";\n\nexport default abstract class<S extends object = LocaleStructure> implements LocaleProvider<S> {\n public abstract lang(): Language;\n\n public abstract keys(): Set<keyof S>;\n\n public abstract languages(): Set<Language>;\n\n protected abstract value(key: keyof S & string): string | undefined;\n\n public trans<K extends LocaleNonPluralKeys<S>>(key: K, ...args: LocaleSubstitutionArgs<S, K>): string {\n const [substitutions] = args;\n\n return this.get(key, substitutions);\n }\n\n public choice<K extends LocalePluralKeys<S>>(key: K, count: number, ...args: LocaleSubstitutionArgs<S, K>): string {\n const [substitutions] = args;\n const parts = this.get(key, substitutions).split(LocaleValuesSeparator);\n\n const idx = this.getPluralIndex(count);\n\n return parts[idx] ?? parts[0] ?? (key as string);\n }\n\n public get<K extends keyof S & string>(key: K, substitutions?: Record<string, LocaleSubstitutionValue>): string {\n const template = this.value(key);\n\n if (template === undefined) {\n console.warn(`Locale key \"${key}\" not found in \"${this.lang()}\" language.`);\n\n return key as string;\n }\n\n if (substitutions) {\n return template.replace(/{{(.*?)}}/g, (_, placeholder: string) => {\n const substitution = placeholder.trim();\n\n if (substitution in substitutions) {\n return substitutions[substitution]!.toString();\n }\n\n console.warn(\n `Locale substitution \"${substitution}\" not found for key \"${key}\" in \"${this.lang()}\" language.`\n );\n\n return substitution;\n });\n }\n\n return template;\n }\n\n private getPluralIndex(count: number): number {\n switch (this.lang()) {\n case Language.Indonesian:\n case Language.Japanese:\n case Language.Kannada:\n case Language.Korean:\n case Language.Malay:\n case Language.Thai:\n case Language.Turkish:\n case Language.Vietnamese:\n return 0;\n\n case Language.Bengali:\n case Language.Bulgarian:\n case Language.Catalan:\n case Language.Danish:\n case Language.German:\n case Language.Greek:\n case Language.English:\n case Language.EnglishAustralia:\n case Language.EnglishGreatBritain:\n case Language.EnglishUSA:\n case Language.Spanish:\n case Language.SpanishLatinAmericaAndCaribbean:\n case Language.Estonian:\n case Language.Persian:\n case Language.Finnish:\n case Language.Gujarati:\n case Language.Hebrew:\n case Language.Hungarian:\n case Language.Italian:\n case Language.Malayalam:\n case Language.Marathi:\n case Language.Dutch:\n case Language.Norwegian:\n case Language.Swedish:\n case Language.Swahili:\n case Language.Tamil:\n case Language.Telugu:\n case Language.ChineseChina:\n case Language.ChineseTaiwan:\n case Language.PortugueseBrazil:\n case Language.PortuguesePortugal:\n return count == 1 ? 0 : 1;\n\n case Language.Amharic:\n case Language.Filipino:\n case Language.French:\n case Language.Hindi:\n return count == 0 || count == 1 ? 0 : 1;\n\n case Language.Croatian:\n case Language.Russian:\n case Language.Serbian:\n case Language.Ukrainian:\n return count % 10 == 1 && count % 100 != 11\n ? 0\n : count % 10 >= 2 && count % 10 <= 4 && (count % 100 < 10 || count % 100 >= 20)\n ? 1\n : 2;\n\n case Language.Czech:\n case Language.Slovak:\n return count == 1 ? 0 : count >= 2 && count <= 4 ? 1 : 2;\n\n case Language.Lithuanian:\n return count % 10 == 1 && count % 100 != 11\n ? 0\n : count % 10 >= 2 && (count % 100 < 10 || count % 100 >= 20)\n ? 1\n : 2;\n\n case Language.Slovenian:\n return count % 100 == 1 ? 0 : count % 100 == 2 ? 1 : count % 100 == 3 || count % 100 == 4 ? 2 : 3;\n\n case Language.Latvian:\n return count == 0 ? 0 : count % 10 == 1 && count % 100 != 11 ? 1 : 2;\n\n case Language.Polish:\n return count == 1\n ? 0\n : count % 10 >= 2 && count % 10 <= 4 && (count % 100 < 12 || count % 100 > 14)\n ? 1\n : 2;\n\n case Language.Romanian:\n return count == 1 ? 0 : count == 0 || (count % 100 > 0 && count % 100 < 20) ? 1 : 2;\n\n case Language.Arabic:\n return count == 0\n ? 0\n : count == 1\n ? 1\n : count == 2\n ? 2\n : count % 100 >= 3 && count % 100 <= 10\n ? 3\n : count % 100 >= 11 && count % 100 <= 99\n ? 4\n : 5;\n\n default:\n return 0;\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,17 +1,14 @@
1
- import export_default$1 from './AbstractLocale.js';
2
- import { LocaleStructure, Language } from '../../types/locale.js';
3
-
4
- type CustomLocaleData = Record<string, string>;
5
- declare class export_default<T extends LocaleStructure = LocaleStructure> extends export_default$1<T> {
1
+ import AbstractLocale from "./AbstractLocale.js";
2
+ import { Language, LocaleStructure } from "../../types/locale.js";
3
+ export type CustomLocaleData = Record<string, string>;
4
+ export default class<T extends object = LocaleStructure> extends AbstractLocale<T> {
6
5
  protected language: Language;
7
6
  protected data: CustomLocaleData;
8
7
  constructor(language?: Language, data?: CustomLocaleData);
9
8
  setLang(lang: Language): this;
10
9
  setData(data: CustomLocaleData): this;
11
10
  lang(): Language;
12
- keys(): Set<string>;
11
+ keys(): Set<keyof T>;
13
12
  languages(): Set<Language>;
14
13
  protected value(key: string): string | undefined;
15
14
  }
16
-
17
- export { type CustomLocaleData, export_default as default };
@@ -7,6 +7,8 @@ class CustomLocale_default extends AbstractLocale {
7
7
  this.language = language;
8
8
  this.data = data;
9
9
  }
10
+ language;
11
+ data;
10
12
  setLang(lang) {
11
13
  this.language = lang;
12
14
  return this;
@@ -26,7 +28,7 @@ class CustomLocale_default extends AbstractLocale {
26
28
  }
27
29
  value(key) {
28
30
  const value = this.data[convertLocaleKey(key)];
29
- if (!value || value.length === 0) {
31
+ if (value === void 0) {
30
32
  return void 0;
31
33
  }
32
34
  return value;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/locale/providers/CustomLocale.ts"],"sourcesContent":["import {convertLocaleKey} from \"../utils\";\n\nimport AbstractLocale from \"./AbstractLocale\";\n\nimport {Language, LocaleStructure} from \"@typing/locale\";\n\nexport type CustomLocaleData = Record<string, string>;\n\nexport default class<T extends LocaleStructure = LocaleStructure> extends AbstractLocale<T> {\n constructor(\n protected language: Language = Language.English,\n protected data: CustomLocaleData = {}\n ) {\n super();\n }\n\n public setLang(lang: Language): this {\n this.language = lang;\n\n return this;\n }\n\n public setData(data: CustomLocaleData): this {\n this.data = data;\n\n return this;\n }\n\n public lang(): Language {\n return this.language;\n }\n\n public keys(): Set<string> {\n return new Set(Object.keys(this.data));\n }\n\n public languages(): Set<Language> {\n return new Set([this.lang()]);\n }\n\n protected value(key: string): string | undefined {\n const value = this.data[convertLocaleKey(key)];\n\n if (!value || value.length === 0) {\n return undefined;\n }\n\n return value;\n }\n}\n"],"mappings":"AAAA,SAAQ,wBAAuB;AAE/B,OAAO,oBAAoB;AAE3B,SAAQ,gBAAgC;AAIxC,MAAO,6BAAmE,eAAkB;AAAA,EACxF,YACc,WAAqB,SAAS,SAC9B,OAAyB,CAAC,GACtC;AACE,UAAM;AAHI;AACA;AAAA,EAGd;AAAA,EAEO,QAAQ,MAAsB;AACjC,SAAK,WAAW;AAEhB,WAAO;AAAA,EACX;AAAA,EAEO,QAAQ,MAA8B;AACzC,SAAK,OAAO;AAEZ,WAAO;AAAA,EACX;AAAA,EAEO,OAAiB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,OAAoB;AACvB,WAAO,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC;AAAA,EACzC;AAAA,EAEO,YAA2B;AAC9B,WAAO,oBAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;AAAA,EAChC;AAAA,EAEU,MAAM,KAAiC;AAC7C,UAAM,QAAQ,KAAK,KAAK,iBAAiB,GAAG,CAAC;AAE7C,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAC9B,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/locale/providers/CustomLocale.ts"],"sourcesContent":["import {convertLocaleKey} from \"../utils\";\n\nimport AbstractLocale from \"./AbstractLocale\";\n\nimport {Language, LocaleStructure} from \"@typing/locale\";\n\nexport type CustomLocaleData = Record<string, string>;\n\nexport default class<T extends object = LocaleStructure> extends AbstractLocale<T> {\n constructor(\n protected language: Language = Language.English,\n protected data: CustomLocaleData = {}\n ) {\n super();\n }\n\n public setLang(lang: Language): this {\n this.language = lang;\n\n return this;\n }\n\n public setData(data: CustomLocaleData): this {\n this.data = data;\n\n return this;\n }\n\n public lang(): Language {\n return this.language;\n }\n\n public keys(): Set<keyof T> {\n return new Set(Object.keys(this.data)) as Set<keyof T>;\n }\n\n public languages(): Set<Language> {\n return new Set([this.lang()]);\n }\n\n protected value(key: string): string | undefined {\n const value = this.data[convertLocaleKey(key)];\n\n if (value === undefined) {\n return undefined;\n }\n\n return value;\n }\n}\n"],"mappings":"AAAA,SAAQ,wBAAuB;AAE/B,OAAO,oBAAoB;AAE3B,SAAQ,gBAAgC;AAIxC,MAAO,6BAA0D,eAAkB;AAAA,EAC/E,YACc,WAAqB,SAAS,SAC9B,OAAyB,CAAC,GACtC;AACE,UAAM;AAHI;AACA;AAAA,EAGd;AAAA,EAJc;AAAA,EACA;AAAA,EAKP,QAAQ,MAAsB;AACjC,SAAK,WAAW;AAEhB,WAAO;AAAA,EACX;AAAA,EAEO,QAAQ,MAA8B;AACzC,SAAK,OAAO;AAEZ,WAAO;AAAA,EACX;AAAA,EAEO,OAAiB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,OAAqB;AACxB,WAAO,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC;AAAA,EACzC;AAAA,EAEO,YAA2B;AAC9B,WAAO,oBAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;AAAA,EAChC;AAAA,EAEU,MAAM,KAAiC;AAC7C,UAAM,QAAQ,KAAK,KAAK,iBAAiB,GAAG,CAAC;AAE7C,QAAI,UAAU,QAAW;AACrB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1,12 +1,10 @@
1
- import './AbstractLocale.js';
2
- import { StorageProvider } from '@addon-core/storage';
3
- import NativeLocale, { LocaleNativeStructure } from './NativeLocale.js';
4
- import export_default$1, { CustomLocaleData } from './CustomLocale.js';
5
- import { LocaleDynamicProvider, Language } from '../../types/locale.js';
6
-
7
- declare class export_default<T extends LocaleNativeStructure> extends NativeLocale implements LocaleDynamicProvider<T> {
1
+ import { type StorageProvider } from "@addon-core/storage";
2
+ import NativeLocale, { LocaleNativeStructure } from "./NativeLocale.js";
3
+ import CustomLocale, { CustomLocaleData } from "./CustomLocale.js";
4
+ import { Language, LocaleDynamicProvider } from "../../types/locale.js";
5
+ export default class<T extends object = LocaleNativeStructure> extends NativeLocale<T> implements LocaleDynamicProvider<T> {
8
6
  protected cache: Map<Language, CustomLocaleData>;
9
- protected locale?: export_default$1<T>;
7
+ protected locale?: CustomLocale<T>;
10
8
  protected storage?: StorageProvider<Record<string, Language>>;
11
9
  protected storageKey?: string;
12
10
  protected unsubscribe?: () => void;
@@ -16,8 +14,6 @@ declare class export_default<T extends LocaleNativeStructure> extends NativeLoca
16
14
  watch(handler?: (lang: Language) => void): () => void;
17
15
  unwatch(): void;
18
16
  lang(): Language;
19
- protected value(key: Extract<keyof LocaleNativeStructure, string>): string | undefined;
17
+ protected value(key: Extract<keyof T, string>): string | undefined;
20
18
  protected fetch(lang: Language): Promise<CustomLocaleData>;
21
19
  }
22
-
23
- export { export_default as default };
@@ -68,7 +68,7 @@ class DynamicLocale_default extends NativeLocale {
68
68
  }
69
69
  value(key) {
70
70
  var _a;
71
- return ((_a = this.locale) == null ? void 0 : _a.get(key)) || super.value(key);
71
+ return ((_a = this.locale) == null ? void 0 : _a.get(key)) ?? super.value(key);
72
72
  }
73
73
  async fetch(lang) {
74
74
  let messages = this.cache.get(lang);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/locale/providers/DynamicLocale.ts"],"sourcesContent":["import {flattenLocaleMessages, getLocaleFilename} from \"../utils\";\n\nimport {Storage, type StorageProvider} from \"@addon-core/storage\";\n\nimport NativeLocale, {LocaleNativeStructure} from \"./NativeLocale\";\nimport CustomLocale, {CustomLocaleData} from \"./CustomLocale\";\n\nimport {Language, LanguageCodes, LocaleDynamicProvider, LocaleMessages} from \"@typing/locale\";\n\nexport default class<T extends LocaleNativeStructure> extends NativeLocale implements LocaleDynamicProvider<T> {\n protected cache = new Map<Language, CustomLocaleData>();\n\n protected locale?: CustomLocale<T>;\n\n protected storage?: StorageProvider<Record<string, Language>>;\n protected storageKey?: string;\n\n protected unsubscribe?: () => void;\n\n constructor(storage: string | false = \"lang\") {\n super();\n\n if (storage) {\n this.storageKey = storage;\n this.storage = Storage.Local();\n }\n }\n\n public async change(lang: Language): Promise<Language> {\n if (lang === this.lang()) {\n return lang;\n }\n\n const messages = await this.fetch(lang);\n\n (this.locale ??= new CustomLocale()).setLang(lang).setData(messages);\n\n if (this.storage && this.storageKey) {\n await this.storage.set(this.storageKey, lang);\n }\n\n return lang;\n }\n\n public async sync(): Promise<Language> {\n if (!this.storage || !this.storageKey) {\n throw new Error(\"Language is not saving in storage\");\n }\n\n const lang = await this.storage.get(this.storageKey);\n\n if (!lang) {\n return this.lang();\n }\n\n if (!LanguageCodes.has(lang)) {\n console.warn(`Incorrect language code in storage - \"${lang}\"`);\n\n return this.lang();\n }\n\n return this.change(lang);\n }\n\n public watch(handler?: (lang: Language) => void): () => void {\n if (!this.storage || !this.storageKey) {\n throw new Error(\"Language is not saved in storage\");\n }\n\n if (this.unsubscribe) {\n throw new Error(\"Already subscribed to language changes in storage\");\n }\n\n this.unsubscribe = this.storage.watch({\n [this.storageKey]: newValue => {\n if (newValue) {\n this.change(newValue)\n .then(() => handler && handler(newValue))\n .catch(err => console.error(\"Error while changing language:\", err));\n }\n },\n });\n\n return this.unwatch.bind(this);\n }\n\n public unwatch(): void {\n this.unsubscribe?.();\n this.unsubscribe = undefined;\n }\n\n public lang(): Language {\n return this.locale?.lang() || super.lang();\n }\n\n protected value(key: Extract<keyof LocaleNativeStructure, string>): string | undefined {\n return this.locale?.get(key) || super.value(key);\n }\n\n protected async fetch(lang: Language): Promise<CustomLocaleData> {\n let messages = this.cache.get(lang);\n\n if (!messages) {\n const response: LocaleMessages = await (await fetch(getLocaleFilename(lang))).json();\n\n if (!response || typeof response !== \"object\") {\n throw new Error(`Invalid or empty locale data for \"${lang}\"`);\n }\n\n messages = flattenLocaleMessages(response);\n\n this.cache.set(lang, messages);\n }\n\n return messages;\n }\n}\n"],"mappings":"AAAA,SAAQ,uBAAuB,yBAAwB;AAEvD,SAAQ,eAAoC;AAE5C,OAAO,kBAA2C;AAClD,OAAO,kBAAsC;AAE7C,SAAkB,qBAA2D;AAE7E,MAAO,8BAAuD,aAAiD;AAAA,EACjG,QAAQ,oBAAI,IAAgC;AAAA,EAE5C;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EAEV,YAAY,UAA0B,QAAQ;AAC1C,UAAM;AAEN,QAAI,SAAS;AACT,WAAK,aAAa;AAClB,WAAK,UAAU,QAAQ,MAAM;AAAA,IACjC;AAAA,EACJ;AAAA,EAEA,MAAa,OAAO,MAAmC;AACnD,QAAI,SAAS,KAAK,KAAK,GAAG;AACtB,aAAO;AAAA,IACX;AAEA,UAAM,WAAW,MAAM,KAAK,MAAM,IAAI;AAEtC,KAAC,KAAK,WAAL,KAAK,SAAW,IAAI,aAAa,IAAG,QAAQ,IAAI,EAAE,QAAQ,QAAQ;AAEnE,QAAI,KAAK,WAAW,KAAK,YAAY;AACjC,YAAM,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI;AAAA,IAChD;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAA0B;AACnC,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,YAAY;AACnC,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACvD;AAEA,UAAM,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,UAAU;AAEnD,QAAI,CAAC,MAAM;AACP,aAAO,KAAK,KAAK;AAAA,IACrB;AAEA,QAAI,CAAC,cAAc,IAAI,IAAI,GAAG;AAC1B,cAAQ,KAAK,yCAAyC,IAAI,GAAG;AAE7D,aAAO,KAAK,KAAK;AAAA,IACrB;AAEA,WAAO,KAAK,OAAO,IAAI;AAAA,EAC3B;AAAA,EAEO,MAAM,SAAgD;AACzD,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,YAAY;AACnC,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACtD;AAEA,QAAI,KAAK,aAAa;AAClB,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACvE;AAEA,SAAK,cAAc,KAAK,QAAQ,MAAM;AAAA,MAClC,CAAC,KAAK,UAAU,GAAG,cAAY;AAC3B,YAAI,UAAU;AACV,eAAK,OAAO,QAAQ,EACf,KAAK,MAAM,WAAW,QAAQ,QAAQ,CAAC,EACvC,MAAM,SAAO,QAAQ,MAAM,kCAAkC,GAAG,CAAC;AAAA,QAC1E;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,WAAO,KAAK,QAAQ,KAAK,IAAI;AAAA,EACjC;AAAA,EAEO,UAAgB;AAtF3B;AAuFQ,eAAK,gBAAL;AACA,SAAK,cAAc;AAAA,EACvB;AAAA,EAEO,OAAiB;AA3F5B;AA4FQ,aAAO,UAAK,WAAL,mBAAa,WAAU,MAAM,KAAK;AAAA,EAC7C;AAAA,EAEU,MAAM,KAAuE;AA/F3F;AAgGQ,aAAO,UAAK,WAAL,mBAAa,IAAI,SAAQ,MAAM,MAAM,GAAG;AAAA,EACnD;AAAA,EAEA,MAAgB,MAAM,MAA2C;AAC7D,QAAI,WAAW,KAAK,MAAM,IAAI,IAAI;AAElC,QAAI,CAAC,UAAU;AACX,YAAM,WAA2B,OAAO,MAAM,MAAM,kBAAkB,IAAI,CAAC,GAAG,KAAK;AAEnF,UAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAC3C,cAAM,IAAI,MAAM,qCAAqC,IAAI,GAAG;AAAA,MAChE;AAEA,iBAAW,sBAAsB,QAAQ;AAEzC,WAAK,MAAM,IAAI,MAAM,QAAQ;AAAA,IACjC;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/locale/providers/DynamicLocale.ts"],"sourcesContent":["import {flattenLocaleMessages, getLocaleFilename} from \"../utils\";\n\nimport {Storage, type StorageProvider} from \"@addon-core/storage\";\n\nimport NativeLocale, {LocaleNativeStructure} from \"./NativeLocale\";\nimport CustomLocale, {CustomLocaleData} from \"./CustomLocale\";\n\nimport {Language, LanguageCodes, LocaleDynamicProvider, LocaleMessages} from \"@typing/locale\";\n\nexport default class<T extends object = LocaleNativeStructure>\n extends NativeLocale<T>\n implements LocaleDynamicProvider<T>\n{\n protected cache = new Map<Language, CustomLocaleData>();\n\n protected locale?: CustomLocale<T>;\n\n protected storage?: StorageProvider<Record<string, Language>>;\n protected storageKey?: string;\n\n protected unsubscribe?: () => void;\n\n constructor(storage: string | false = \"lang\") {\n super();\n\n if (storage) {\n this.storageKey = storage;\n this.storage = Storage.Local();\n }\n }\n\n public async change(lang: Language): Promise<Language> {\n if (lang === this.lang()) {\n return lang;\n }\n\n const messages = await this.fetch(lang);\n\n (this.locale ??= new CustomLocale()).setLang(lang).setData(messages);\n\n if (this.storage && this.storageKey) {\n await this.storage.set(this.storageKey, lang);\n }\n\n return lang;\n }\n\n public async sync(): Promise<Language> {\n if (!this.storage || !this.storageKey) {\n throw new Error(\"Language is not saving in storage\");\n }\n\n const lang = await this.storage.get(this.storageKey);\n\n if (!lang) {\n return this.lang();\n }\n\n if (!LanguageCodes.has(lang)) {\n console.warn(`Incorrect language code in storage - \"${lang}\"`);\n\n return this.lang();\n }\n\n return this.change(lang);\n }\n\n public watch(handler?: (lang: Language) => void): () => void {\n if (!this.storage || !this.storageKey) {\n throw new Error(\"Language is not saved in storage\");\n }\n\n if (this.unsubscribe) {\n throw new Error(\"Already subscribed to language changes in storage\");\n }\n\n this.unsubscribe = this.storage.watch({\n [this.storageKey]: newValue => {\n if (newValue) {\n this.change(newValue)\n .then(() => handler && handler(newValue))\n .catch(err => console.error(\"Error while changing language:\", err));\n }\n },\n });\n\n return this.unwatch.bind(this);\n }\n\n public unwatch(): void {\n this.unsubscribe?.();\n this.unsubscribe = undefined;\n }\n\n public lang(): Language {\n return this.locale?.lang() || super.lang();\n }\n\n protected value(key: Extract<keyof T, string>): string | undefined {\n return this.locale?.get(key) ?? super.value(key);\n }\n\n protected async fetch(lang: Language): Promise<CustomLocaleData> {\n let messages = this.cache.get(lang);\n\n if (!messages) {\n const response: LocaleMessages = await (await fetch(getLocaleFilename(lang))).json();\n\n if (!response || typeof response !== \"object\") {\n throw new Error(`Invalid or empty locale data for \"${lang}\"`);\n }\n\n messages = flattenLocaleMessages(response);\n\n this.cache.set(lang, messages);\n }\n\n return messages;\n }\n}\n"],"mappings":"AAAA,SAAQ,uBAAuB,yBAAwB;AAEvD,SAAQ,eAAoC;AAE5C,OAAO,kBAA2C;AAClD,OAAO,kBAAsC;AAE7C,SAAkB,qBAA2D;AAE7E,MAAO,8BACK,aAEZ;AAAA,EACc,QAAQ,oBAAI,IAAgC;AAAA,EAE5C;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EAEV,YAAY,UAA0B,QAAQ;AAC1C,UAAM;AAEN,QAAI,SAAS;AACT,WAAK,aAAa;AAClB,WAAK,UAAU,QAAQ,MAAM;AAAA,IACjC;AAAA,EACJ;AAAA,EAEA,MAAa,OAAO,MAAmC;AACnD,QAAI,SAAS,KAAK,KAAK,GAAG;AACtB,aAAO;AAAA,IACX;AAEA,UAAM,WAAW,MAAM,KAAK,MAAM,IAAI;AAEtC,KAAC,KAAK,WAAL,KAAK,SAAW,IAAI,aAAa,IAAG,QAAQ,IAAI,EAAE,QAAQ,QAAQ;AAEnE,QAAI,KAAK,WAAW,KAAK,YAAY;AACjC,YAAM,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI;AAAA,IAChD;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAA0B;AACnC,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,YAAY;AACnC,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACvD;AAEA,UAAM,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,UAAU;AAEnD,QAAI,CAAC,MAAM;AACP,aAAO,KAAK,KAAK;AAAA,IACrB;AAEA,QAAI,CAAC,cAAc,IAAI,IAAI,GAAG;AAC1B,cAAQ,KAAK,yCAAyC,IAAI,GAAG;AAE7D,aAAO,KAAK,KAAK;AAAA,IACrB;AAEA,WAAO,KAAK,OAAO,IAAI;AAAA,EAC3B;AAAA,EAEO,MAAM,SAAgD;AACzD,QAAI,CAAC,KAAK,WAAW,CAAC,KAAK,YAAY;AACnC,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACtD;AAEA,QAAI,KAAK,aAAa;AAClB,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACvE;AAEA,SAAK,cAAc,KAAK,QAAQ,MAAM;AAAA,MAClC,CAAC,KAAK,UAAU,GAAG,cAAY;AAC3B,YAAI,UAAU;AACV,eAAK,OAAO,QAAQ,EACf,KAAK,MAAM,WAAW,QAAQ,QAAQ,CAAC,EACvC,MAAM,SAAO,QAAQ,MAAM,kCAAkC,GAAG,CAAC;AAAA,QAC1E;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,WAAO,KAAK,QAAQ,KAAK,IAAI;AAAA,EACjC;AAAA,EAEO,UAAgB;AAzF3B;AA0FQ,eAAK,gBAAL;AACA,SAAK,cAAc;AAAA,EACvB;AAAA,EAEO,OAAiB;AA9F5B;AA+FQ,aAAO,UAAK,WAAL,mBAAa,WAAU,MAAM,KAAK;AAAA,EAC7C;AAAA,EAEU,MAAM,KAAmD;AAlGvE;AAmGQ,aAAO,UAAK,WAAL,mBAAa,IAAI,SAAQ,MAAM,MAAM,GAAG;AAAA,EACnD;AAAA,EAEA,MAAgB,MAAM,MAA2C;AAC7D,QAAI,WAAW,KAAK,MAAM,IAAI,IAAI;AAElC,QAAI,CAAC,UAAU;AACX,YAAM,WAA2B,OAAO,MAAM,MAAM,kBAAkB,IAAI,CAAC,GAAG,KAAK;AAEnF,UAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAC3C,cAAM,IAAI,MAAM,qCAAqC,IAAI,GAAG;AAAA,MAChE;AAEA,iBAAW,sBAAsB,QAAQ;AAEzC,WAAK,MAAM,IAAI,MAAM,QAAQ;AAAA,IACjC;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1,17 +1,14 @@
1
- import export_default from './AbstractLocale.js';
2
- import { LocaleStructure, LocaleProvider, Language } from '../../types/locale.js';
3
-
4
- interface LocaleNativeStructure extends LocaleStructure {
1
+ import AbstractLocale from "./AbstractLocale.js";
2
+ import { Language, LocaleProvider, LocaleStructure } from "../../types/locale.js";
3
+ export interface LocaleNativeStructure extends LocaleStructure {
5
4
  }
6
- declare class NativeLocale extends export_default<LocaleNativeStructure> {
5
+ export default class NativeLocale<S extends object = LocaleNativeStructure> extends AbstractLocale<S> {
7
6
  private static instance?;
8
- static getInstance<S extends LocaleStructure = LocaleNativeStructure>(): LocaleProvider<S>;
7
+ static getInstance(): LocaleProvider<LocaleNativeStructure>;
9
8
  private readonly language?;
10
9
  constructor();
11
10
  lang(): Language;
12
- keys(): Set<keyof LocaleNativeStructure>;
11
+ keys(): Set<keyof S>;
13
12
  languages(): Set<Language>;
14
- protected value(key: Extract<keyof LocaleNativeStructure, string>): string | undefined;
13
+ protected value(key: Extract<keyof S, string>): string | undefined;
15
14
  }
16
-
17
- export { type LocaleNativeStructure, NativeLocale as default };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/locale/providers/NativeLocale.ts"],"sourcesContent":["import {getI18nMessage} from \"@addon-core/browser\";\n\nimport AbstractLocale from \"./AbstractLocale\";\n\nimport {convertLocaleKey, resolveLanguage} from \"@locale/utils\";\n\nimport {Language, LocaleCustomKeyForLanguage, LocaleProvider, LocaleStructure} from \"@typing/locale\";\n\nexport interface LocaleNativeStructure extends LocaleStructure {}\n\nexport default class NativeLocale extends AbstractLocale<LocaleNativeStructure> {\n private static instance?: LocaleProvider<LocaleNativeStructure>;\n\n public static getInstance<S extends LocaleStructure = LocaleNativeStructure>(): LocaleProvider<S> {\n return (NativeLocale.instance ??= new NativeLocale());\n }\n\n private readonly language?: Language;\n\n constructor() {\n super();\n\n /**\n Locale detection note:\n Chrome does NOT expose an API to get the effective translation locale.\n getUILanguage() returns browser UI language (e.g., es-MX),\n even if extension translations fall back to default_locale (e.g., en).\n To detect the actual language used by i18n, we read a locale marker\n from messages.json via chrome.i18n.getMessage().\n */\n const markerLang = getI18nMessage(LocaleCustomKeyForLanguage);\n const resolvedLang = resolveLanguage(markerLang);\n\n if (!resolvedLang) {\n console.warn(`[NativeLocale] Unsupported language detected: \"${markerLang}\".`);\n }\n\n if (markerLang && resolvedLang && markerLang !== resolvedLang) {\n console.info(`[NativeLocale] Language normalized: using \"${resolvedLang}\" instead of \"${markerLang}\".`);\n }\n\n this.language = resolvedLang;\n }\n\n public lang(): Language {\n if (!this.language) {\n throw new Error(\"[NativeLocale] Language is not defined. Failed to determine a supported locale.\");\n }\n\n return this.language;\n }\n\n public keys(): Set<keyof LocaleNativeStructure> {\n try {\n // @ts-expect-error: __ADNBN_LOCALE_KEYS__ is a virtual variable generated by the bundler `src/cli/plugins/locale/index.ts`\n return new Set<string>(__ADNBN_LOCALE_KEYS__);\n } catch (e) {\n console.error(\"[NativeLocale] Failed to access locale keys. Ensure the bundler plugin is active.\", e);\n\n return new Set<string>();\n }\n }\n\n public languages(): Set<Language> {\n try {\n // @ts-expect-error: __ADNBN_DEFINED_LOCALES__ is a virtual variable generated by the bundler `src/cli/plugins/locale/index.ts`\n return new Set<Language>(__ADNBN_DEFINED_LOCALES__);\n } catch (e) {\n console.error(\"[NativeLocale] Failed to access defined locales. Check virtual variables configuration.\", e);\n\n return new Set<Language>();\n }\n }\n\n protected value(key: Extract<keyof LocaleNativeStructure, string>): string | undefined {\n const value = getI18nMessage(convertLocaleKey(key));\n\n if (!value || value.length === 0) {\n return undefined;\n }\n\n return value;\n }\n}\n"],"mappings":"AAAA,SAAQ,sBAAqB;AAE7B,OAAO,oBAAoB;AAE3B,SAAQ,kBAAkB,uBAAsB;AAEhD,SAAkB,kCAAkE;AAIpF,MAAO,qBAAmC,eAAsC;AAAA,EAC5E,OAAe;AAAA,EAEf,OAAc,cAAoF;AAC9F,WAAQ,aAAa,aAAb,aAAa,WAAa,IAAI,aAAa;AAAA,EACvD;AAAA,EAEiB;AAAA,EAEjB,cAAc;AACV,UAAM;AAUN,UAAM,aAAa,eAAe,0BAA0B;AAC5D,UAAM,eAAe,gBAAgB,UAAU;AAE/C,QAAI,CAAC,cAAc;AACf,cAAQ,KAAK,kDAAkD,UAAU,IAAI;AAAA,IACjF;AAEA,QAAI,cAAc,gBAAgB,eAAe,cAAc;AAC3D,cAAQ,KAAK,8CAA8C,YAAY,iBAAiB,UAAU,IAAI;AAAA,IAC1G;AAEA,SAAK,WAAW;AAAA,EACpB;AAAA,EAEO,OAAiB;AACpB,QAAI,CAAC,KAAK,UAAU;AAChB,YAAM,IAAI,MAAM,iFAAiF;AAAA,IACrG;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,OAAyC;AAC5C,QAAI;AAEA,aAAO,IAAI,IAAY,qBAAqB;AAAA,IAChD,SAAS,GAAG;AACR,cAAQ,MAAM,qFAAqF,CAAC;AAEpG,aAAO,oBAAI,IAAY;AAAA,IAC3B;AAAA,EACJ;AAAA,EAEO,YAA2B;AAC9B,QAAI;AAEA,aAAO,IAAI,IAAc,yBAAyB;AAAA,IACtD,SAAS,GAAG;AACR,cAAQ,MAAM,2FAA2F,CAAC;AAE1G,aAAO,oBAAI,IAAc;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEU,MAAM,KAAuE;AACnF,UAAM,QAAQ,eAAe,iBAAiB,GAAG,CAAC;AAElD,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAC9B,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/locale/providers/NativeLocale.ts"],"sourcesContent":["import {getI18nMessage} from \"@addon-core/browser\";\n\nimport AbstractLocale from \"./AbstractLocale\";\n\nimport {convertLocaleKey, resolveLanguage} from \"@locale/utils\";\n\nimport {Language, LocaleCustomKeyForLanguage, LocaleProvider, LocaleStructure} from \"@typing/locale\";\n\nexport interface LocaleNativeStructure extends LocaleStructure {}\n\nexport default class NativeLocale<S extends object = LocaleNativeStructure> extends AbstractLocale<S> {\n private static instance?: LocaleProvider<LocaleNativeStructure>;\n\n public static getInstance(): LocaleProvider<LocaleNativeStructure> {\n return (NativeLocale.instance ??= new NativeLocale());\n }\n\n private readonly language?: Language;\n\n constructor() {\n super();\n\n /**\n Locale detection note:\n Chrome does NOT expose an API to get the effective translation locale.\n getUILanguage() returns browser UI language (e.g., es-MX),\n even if extension translations fall back to default_locale (e.g., en).\n To detect the actual language used by i18n, we read a locale marker\n from messages.json via chrome.i18n.getMessage().\n */\n const markerLang = getI18nMessage(LocaleCustomKeyForLanguage);\n const resolvedLang = resolveLanguage(markerLang);\n\n if (!resolvedLang) {\n console.warn(`[NativeLocale] Unsupported language detected: \"${markerLang}\".`);\n }\n\n if (markerLang && resolvedLang && markerLang !== resolvedLang) {\n console.info(`[NativeLocale] Language normalized: using \"${resolvedLang}\" instead of \"${markerLang}\".`);\n }\n\n this.language = resolvedLang;\n }\n\n public lang(): Language {\n if (!this.language) {\n throw new Error(\"[NativeLocale] Language is not defined. Failed to determine a supported locale.\");\n }\n\n return this.language;\n }\n\n public keys(): Set<keyof S> {\n try {\n // @ts-expect-error: __ADNBN_LOCALE_KEYS__ is a virtual variable generated by the bundler `src/cli/plugins/locale/index.ts`\n return new Set<string>(__ADNBN_LOCALE_KEYS__) as Set<keyof S>;\n } catch (e) {\n console.error(\"[NativeLocale] Failed to access locale keys. Ensure the bundler plugin is active.\", e);\n\n return new Set<keyof S>();\n }\n }\n\n public languages(): Set<Language> {\n try {\n // @ts-expect-error: __ADNBN_DEFINED_LOCALES__ is a virtual variable generated by the bundler `src/cli/plugins/locale/index.ts`\n return new Set<Language>(__ADNBN_DEFINED_LOCALES__);\n } catch (e) {\n console.error(\"[NativeLocale] Failed to access defined locales. Check virtual variables configuration.\", e);\n\n return new Set<Language>();\n }\n }\n\n protected value(key: Extract<keyof S, string>): string | undefined {\n const value = getI18nMessage(convertLocaleKey(key));\n\n if (!value || value.length === 0) {\n return undefined;\n }\n\n return value;\n }\n}\n"],"mappings":"AAAA,SAAQ,sBAAqB;AAE7B,OAAO,oBAAoB;AAE3B,SAAQ,kBAAkB,uBAAsB;AAEhD,SAAkB,kCAAkE;AAIpF,MAAO,qBAA6E,eAAkB;AAAA,EAClG,OAAe;AAAA,EAEf,OAAc,cAAqD;AAC/D,WAAQ,aAAa,aAAb,aAAa,WAAa,IAAI,aAAa;AAAA,EACvD;AAAA,EAEiB;AAAA,EAEjB,cAAc;AACV,UAAM;AAUN,UAAM,aAAa,eAAe,0BAA0B;AAC5D,UAAM,eAAe,gBAAgB,UAAU;AAE/C,QAAI,CAAC,cAAc;AACf,cAAQ,KAAK,kDAAkD,UAAU,IAAI;AAAA,IACjF;AAEA,QAAI,cAAc,gBAAgB,eAAe,cAAc;AAC3D,cAAQ,KAAK,8CAA8C,YAAY,iBAAiB,UAAU,IAAI;AAAA,IAC1G;AAEA,SAAK,WAAW;AAAA,EACpB;AAAA,EAEO,OAAiB;AACpB,QAAI,CAAC,KAAK,UAAU;AAChB,YAAM,IAAI,MAAM,iFAAiF;AAAA,IACrG;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,OAAqB;AACxB,QAAI;AAEA,aAAO,IAAI,IAAY,qBAAqB;AAAA,IAChD,SAAS,GAAG;AACR,cAAQ,MAAM,qFAAqF,CAAC;AAEpG,aAAO,oBAAI,IAAa;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEO,YAA2B;AAC9B,QAAI;AAEA,aAAO,IAAI,IAAc,yBAAyB;AAAA,IACtD,SAAS,GAAG;AACR,cAAQ,MAAM,2FAA2F,CAAC;AAE1G,aAAO,oBAAI,IAAc;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEU,MAAM,KAAmD;AAC/D,UAAM,QAAQ,eAAe,iBAAiB,GAAG,CAAC;AAElD,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAC9B,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}