adnbn 0.13.0 → 0.15.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 (392) hide show
  1. package/dist/cli/builders/app/build.d.ts +7 -0
  2. package/dist/cli/builders/app/build.js +58 -0
  3. package/dist/cli/builders/app/build.js.map +1 -0
  4. package/dist/cli/builders/app/index.d.ts +6 -1
  5. package/dist/cli/builders/app/index.js +49 -14
  6. package/dist/cli/builders/app/index.js.map +1 -1
  7. package/dist/cli/builders/app/{command.d.ts → watch.d.ts} +0 -1
  8. package/dist/cli/builders/app/{command.js → watch.js} +1 -26
  9. package/dist/cli/builders/app/watch.js.map +1 -0
  10. package/dist/cli/builders/manifest/ManifestBase.d.ts +8 -1
  11. package/dist/cli/builders/manifest/ManifestBase.js +30 -0
  12. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  13. package/dist/cli/builders/manifest/ManifestV2.js +3 -15
  14. package/dist/cli/builders/manifest/ManifestV2.js.map +1 -1
  15. package/dist/cli/builders/manifest/ManifestV3.js +3 -15
  16. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  17. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js +4 -0
  18. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -1
  19. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.d.ts +15 -0
  20. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js +20 -0
  21. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js.map +1 -0
  22. package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +6 -1
  23. package/dist/cli/entrypoint/finder/AbstractViewFinder.js +15 -0
  24. package/dist/cli/entrypoint/finder/AbstractViewFinder.js.map +1 -1
  25. package/dist/cli/entrypoint/finder/BookmarksFinder.d.ts +9 -0
  26. package/dist/cli/entrypoint/finder/BookmarksFinder.js +18 -0
  27. package/dist/cli/entrypoint/finder/BookmarksFinder.js.map +1 -0
  28. package/dist/cli/entrypoint/finder/CommandFinder.d.ts +4 -0
  29. package/dist/cli/entrypoint/finder/CommandFinder.js +20 -6
  30. package/dist/cli/entrypoint/finder/CommandFinder.js.map +1 -1
  31. package/dist/cli/entrypoint/finder/HistoryFinder.d.ts +9 -0
  32. package/dist/cli/entrypoint/finder/HistoryFinder.js +18 -0
  33. package/dist/cli/entrypoint/finder/HistoryFinder.js.map +1 -0
  34. package/dist/cli/entrypoint/finder/NewtabFinder.d.ts +9 -0
  35. package/dist/cli/entrypoint/finder/NewtabFinder.js +18 -0
  36. package/dist/cli/entrypoint/finder/NewtabFinder.js.map +1 -0
  37. package/dist/cli/entrypoint/finder/OptionsFinder.d.ts +2 -2
  38. package/dist/cli/entrypoint/finder/OptionsFinder.js +2 -2
  39. package/dist/cli/entrypoint/finder/OptionsFinder.js.map +1 -1
  40. package/dist/cli/entrypoint/finder/PageFinder.js +1 -1
  41. package/dist/cli/entrypoint/finder/PageFinder.js.map +1 -1
  42. package/dist/cli/entrypoint/finder/PopupFinder.d.ts +2 -2
  43. package/dist/cli/entrypoint/finder/PopupFinder.js +2 -2
  44. package/dist/cli/entrypoint/finder/PopupFinder.js.map +1 -1
  45. package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +2 -2
  46. package/dist/cli/entrypoint/finder/SidebarFinder.js +2 -2
  47. package/dist/cli/entrypoint/finder/SidebarFinder.js.map +1 -1
  48. package/dist/cli/entrypoint/finder/ViewCspFinder.d.ts +2 -3
  49. package/dist/cli/entrypoint/finder/ViewCspFinder.js.map +1 -1
  50. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.d.ts +22 -0
  51. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js +43 -0
  52. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js.map +1 -0
  53. package/dist/cli/entrypoint/finder/index.d.ts +5 -0
  54. package/dist/cli/entrypoint/finder/index.js +50 -40
  55. package/dist/cli/entrypoint/finder/index.js.map +1 -1
  56. package/dist/cli/entrypoint/name/NameGenerator.d.ts +2 -0
  57. package/dist/cli/entrypoint/name/NameGenerator.js +5 -1
  58. package/dist/cli/entrypoint/name/NameGenerator.js.map +1 -1
  59. package/dist/cli/entrypoint/parser/AbstractOverrideParser.d.ts +9 -0
  60. package/dist/cli/entrypoint/parser/AbstractOverrideParser.js +11 -0
  61. package/dist/cli/entrypoint/parser/AbstractOverrideParser.js.map +1 -0
  62. package/dist/cli/entrypoint/parser/BackgroundParser.js +3 -6
  63. package/dist/cli/entrypoint/parser/BackgroundParser.js.map +1 -1
  64. package/dist/cli/entrypoint/parser/BookmarksParser.d.ts +5 -0
  65. package/dist/cli/entrypoint/parser/BookmarksParser.js +10 -0
  66. package/dist/cli/entrypoint/parser/BookmarksParser.js.map +1 -0
  67. package/dist/cli/entrypoint/parser/HistoryParser.d.ts +5 -0
  68. package/dist/cli/entrypoint/parser/HistoryParser.js +10 -0
  69. package/dist/cli/entrypoint/parser/HistoryParser.js.map +1 -0
  70. package/dist/cli/entrypoint/parser/NewtabParser.d.ts +5 -0
  71. package/dist/cli/entrypoint/parser/NewtabParser.js +10 -0
  72. package/dist/cli/entrypoint/parser/NewtabParser.js.map +1 -0
  73. package/dist/cli/entrypoint/parser/OptionsParser.js +2 -1
  74. package/dist/cli/entrypoint/parser/OptionsParser.js.map +1 -1
  75. package/dist/cli/entrypoint/parser/PopupParser.js +2 -1
  76. package/dist/cli/entrypoint/parser/PopupParser.js.map +1 -1
  77. package/dist/cli/entrypoint/parser/SidebarParser.js +2 -1
  78. package/dist/cli/entrypoint/parser/SidebarParser.js.map +1 -1
  79. package/dist/cli/entrypoint/parser/ViewCspParser.d.ts +1 -1
  80. package/dist/cli/entrypoint/parser/ViewParser.d.ts +1 -1243
  81. package/dist/cli/entrypoint/parser/ViewParser.js +2 -72
  82. package/dist/cli/entrypoint/parser/ViewParser.js.map +1 -1
  83. package/dist/cli/entrypoint/parser/index.d.ts +4 -0
  84. package/dist/cli/entrypoint/parser/index.js +28 -20
  85. package/dist/cli/entrypoint/parser/index.js.map +1 -1
  86. package/dist/cli/entrypoint/parser/schemas/html.d.ts +903 -0
  87. package/dist/cli/entrypoint/parser/schemas/html.js +64 -0
  88. package/dist/cli/entrypoint/parser/schemas/html.js.map +1 -0
  89. package/dist/cli/entrypoint/parser/schemas/permissions.d.ts +23 -0
  90. package/dist/cli/entrypoint/parser/schemas/permissions.js +11 -0
  91. package/dist/cli/entrypoint/parser/schemas/permissions.js.map +1 -0
  92. package/dist/cli/index.js +16 -3
  93. package/dist/cli/index.js.map +1 -1
  94. package/dist/cli/plugins/action.d.ts +2 -0
  95. package/dist/cli/plugins/action.js +13 -0
  96. package/dist/cli/plugins/action.js.map +1 -0
  97. package/dist/cli/plugins/index.d.ts +2 -0
  98. package/dist/cli/plugins/index.js +52 -48
  99. package/dist/cli/plugins/index.js.map +1 -1
  100. package/dist/cli/plugins/offscreen/index.js +2 -4
  101. package/dist/cli/plugins/offscreen/index.js.map +1 -1
  102. package/dist/cli/plugins/options/index.js +1 -1
  103. package/dist/cli/plugins/options/index.js.map +1 -1
  104. package/dist/cli/plugins/override/Override.d.ts +31 -0
  105. package/dist/cli/plugins/override/Override.js +112 -0
  106. package/dist/cli/plugins/override/Override.js.map +1 -0
  107. package/dist/cli/plugins/override/index.d.ts +2 -0
  108. package/dist/cli/plugins/override/index.js +48 -0
  109. package/dist/cli/plugins/override/index.js.map +1 -0
  110. package/dist/cli/plugins/popup/index.js +1 -1
  111. package/dist/cli/plugins/popup/index.js.map +1 -1
  112. package/dist/cli/plugins/sidebar/index.js +1 -2
  113. package/dist/cli/plugins/sidebar/index.js.map +1 -1
  114. package/dist/cli/plugins/style/index.js +34 -31
  115. package/dist/cli/plugins/style/index.js.map +1 -1
  116. package/dist/cli/plugins/style/rebase.d.ts +14 -0
  117. package/dist/cli/plugins/style/rebase.js +63 -0
  118. package/dist/cli/plugins/style/rebase.js.map +1 -0
  119. package/dist/cli/plugins/style/utils.d.ts +5 -1
  120. package/dist/cli/plugins/style/utils.js +21 -8
  121. package/dist/cli/plugins/style/utils.js.map +1 -1
  122. package/dist/cli/plugins/typescript/TypescriptConfig.js +2 -2
  123. package/dist/cli/plugins/typescript/TypescriptConfig.js.map +1 -1
  124. package/dist/cli/plugins/view/View.d.ts +1 -1
  125. package/dist/cli/plugins/view/View.js +2 -10
  126. package/dist/cli/plugins/view/View.js.map +1 -1
  127. package/dist/cli/plugins/view/index.js +10 -1
  128. package/dist/cli/plugins/view/index.js.map +1 -1
  129. package/dist/cli/resolvers/bundler.js +9 -1
  130. package/dist/cli/resolvers/bundler.js.map +1 -1
  131. package/dist/cli/resolvers/config.js +7 -1
  132. package/dist/cli/resolvers/config.js.map +1 -1
  133. package/dist/cli/utils/path.js +1 -1
  134. package/dist/cli/utils/path.js.map +1 -1
  135. package/dist/cli/virtual/index.js +14 -17
  136. package/dist/cli/virtual/virtual.d.ts +7 -127
  137. package/dist/entry/background/Builder.js +1 -1
  138. package/dist/entry/background/Builder.js.map +1 -1
  139. package/dist/entry/background/index.d.ts +1 -1
  140. package/dist/entry/background/index.js +3 -2
  141. package/dist/entry/background/index.js.map +1 -1
  142. package/dist/entry/background/resolvers/definition.d.ts +5 -1
  143. package/dist/entry/background/resolvers/definition.js +15 -4
  144. package/dist/entry/background/resolvers/definition.js.map +1 -1
  145. package/dist/entry/command/Builder.js +1 -1
  146. package/dist/entry/command/Builder.js.map +1 -1
  147. package/dist/entry/command/index.d.ts +1 -1
  148. package/dist/entry/command/index.js +3 -2
  149. package/dist/entry/command/index.js.map +1 -1
  150. package/dist/entry/command/resolvers/definition.d.ts +6 -2
  151. package/dist/entry/command/resolvers/definition.js +14 -4
  152. package/dist/entry/command/resolvers/definition.js.map +1 -1
  153. package/dist/entry/content/adapters/react/Builder.js +4 -2
  154. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  155. package/dist/entry/content/adapters/react/Node.js +11 -6
  156. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  157. package/dist/entry/content/adapters/react/definition.js +3 -2
  158. package/dist/entry/content/adapters/react/definition.js.map +1 -1
  159. package/dist/entry/content/adapters/vanilla/Builder.js +2 -2
  160. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  161. package/dist/entry/content/adapters/vanilla/Node.js +3 -5
  162. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  163. package/dist/entry/content/adapters/vanilla/definition.js +2 -2
  164. package/dist/entry/content/adapters/vanilla/definition.js.map +1 -1
  165. package/dist/entry/content/lifecycle/Builder.js +5 -9
  166. package/dist/entry/content/lifecycle/Builder.js.map +1 -1
  167. package/dist/entry/core/react.d.ts +6 -0
  168. package/dist/entry/core/react.js +16 -0
  169. package/dist/entry/core/react.js.map +1 -0
  170. package/dist/entry/core/render.d.ts +5 -0
  171. package/dist/entry/core/render.js +16 -0
  172. package/dist/entry/core/render.js.map +1 -0
  173. package/dist/entry/offscreen/Builder.d.ts +6 -7
  174. package/dist/entry/offscreen/Builder.js +12 -13
  175. package/dist/entry/offscreen/Builder.js.map +1 -1
  176. package/dist/entry/offscreen/TransportBuilder.d.ts +1 -1
  177. package/dist/entry/offscreen/TransportBuilder.js +4 -3
  178. package/dist/entry/offscreen/TransportBuilder.js.map +1 -1
  179. package/dist/entry/offscreen/index.d.ts +5 -2
  180. package/dist/entry/offscreen/index.js +8 -2
  181. package/dist/entry/offscreen/index.js.map +1 -1
  182. package/dist/entry/offscreen/resolvers/definition.d.ts +4 -0
  183. package/dist/entry/offscreen/resolvers/definition.js +8 -0
  184. package/dist/entry/offscreen/resolvers/definition.js.map +1 -0
  185. package/dist/entry/relay/Builder.d.ts +4 -3
  186. package/dist/entry/relay/Builder.js.map +1 -1
  187. package/dist/entry/relay/index.d.ts +4 -3
  188. package/dist/entry/relay/index.js.map +1 -1
  189. package/dist/entry/relay/resolvers/definition.d.ts +1 -1
  190. package/dist/entry/relay/resolvers/definition.js +2 -10
  191. package/dist/entry/relay/resolvers/definition.js.map +1 -1
  192. package/dist/entry/sandbox/Builder.d.ts +6 -7
  193. package/dist/entry/sandbox/Builder.js +8 -12
  194. package/dist/entry/sandbox/Builder.js.map +1 -1
  195. package/dist/entry/sandbox/TransportBuilder.d.ts +1 -1
  196. package/dist/entry/sandbox/TransportBuilder.js +4 -3
  197. package/dist/entry/sandbox/TransportBuilder.js.map +1 -1
  198. package/dist/entry/sandbox/index.d.ts +7 -2
  199. package/dist/entry/sandbox/index.js +10 -4
  200. package/dist/entry/sandbox/index.js.map +1 -1
  201. package/dist/entry/sandbox/resolvers/definition.d.ts +4 -0
  202. package/dist/entry/sandbox/resolvers/definition.js +8 -0
  203. package/dist/entry/sandbox/resolvers/definition.js.map +1 -0
  204. package/dist/entry/service/index.d.ts +1 -0
  205. package/dist/entry/service/index.js +3 -1
  206. package/dist/entry/service/index.js.map +1 -1
  207. package/dist/entry/service/resolvers/definition.d.ts +3 -0
  208. package/dist/entry/service/resolvers/definition.js +8 -0
  209. package/dist/entry/service/resolvers/definition.js.map +1 -0
  210. package/dist/entry/transport/AbstractBuilder.js +1 -1
  211. package/dist/entry/transport/AbstractBuilder.js.map +1 -1
  212. package/dist/entry/transport/resolvers/definition.d.ts +7 -5
  213. package/dist/entry/transport/resolvers/definition.js +15 -4
  214. package/dist/entry/transport/resolvers/definition.js.map +1 -1
  215. package/dist/entry/view/{core/Builder.d.ts → Builder.d.ts} +9 -4
  216. package/dist/entry/view/Builder.js +62 -0
  217. package/dist/entry/view/Builder.js.map +1 -0
  218. package/dist/entry/view/adapters/react/Builder.d.ts +6 -7
  219. package/dist/entry/view/adapters/react/Builder.js +20 -23
  220. package/dist/entry/view/adapters/react/Builder.js.map +1 -1
  221. package/dist/entry/view/adapters/react/definition.d.ts +2 -0
  222. package/dist/entry/view/adapters/react/definition.js +13 -0
  223. package/dist/entry/view/adapters/react/definition.js.map +1 -0
  224. package/dist/entry/view/adapters/react/index.d.ts +2 -1
  225. package/dist/entry/view/adapters/react/index.js +3 -1
  226. package/dist/entry/view/adapters/react/index.js.map +1 -1
  227. package/dist/entry/view/adapters/vanilla/Builder.d.ts +5 -6
  228. package/dist/entry/view/adapters/vanilla/Builder.js +14 -25
  229. package/dist/entry/view/adapters/vanilla/Builder.js.map +1 -1
  230. package/dist/entry/view/adapters/vanilla/definition.d.ts +2 -0
  231. package/dist/entry/view/adapters/vanilla/definition.js +9 -0
  232. package/dist/entry/view/adapters/vanilla/definition.js.map +1 -0
  233. package/dist/entry/view/adapters/vanilla/index.d.ts +2 -1
  234. package/dist/entry/view/adapters/vanilla/index.js +3 -1
  235. package/dist/entry/view/adapters/vanilla/index.js.map +1 -1
  236. package/dist/entry/view/{core/resolvers → resolvers}/container.d.ts +1 -1
  237. package/dist/entry/view/resolvers/container.js.map +1 -0
  238. package/dist/entry/view/resolvers/definition.d.ts +3 -0
  239. package/dist/entry/view/resolvers/definition.js +18 -0
  240. package/dist/entry/view/resolvers/definition.js.map +1 -0
  241. package/dist/locale/adapters/react/hooks/use-locale.js +1 -1
  242. package/dist/locale/adapters/react/hooks/use-locale.js.map +1 -1
  243. package/dist/locale/adapters/react/hooks/use-native-locale.js +1 -1
  244. package/dist/locale/adapters/react/hooks/use-native-locale.js.map +1 -1
  245. package/dist/locale/index.d.ts +1 -0
  246. package/dist/locale/index.js +3 -1
  247. package/dist/locale/index.js.map +1 -1
  248. package/dist/locale/{providers → observers}/ObservableLocale.js +2 -2
  249. package/dist/locale/observers/ObservableLocale.js.map +1 -0
  250. package/dist/locale/observers/index.d.ts +1 -0
  251. package/dist/locale/observers/index.js +5 -0
  252. package/dist/locale/observers/index.js.map +1 -0
  253. package/dist/locale/providers/index.d.ts +0 -1
  254. package/dist/locale/providers/index.js +1 -3
  255. package/dist/locale/providers/index.js.map +1 -1
  256. package/dist/main/config.d.ts +1 -0
  257. package/dist/main/config.js.map +1 -1
  258. package/dist/main/index.d.ts +2 -0
  259. package/dist/main/index.js +2 -0
  260. package/dist/main/index.js.map +1 -1
  261. package/dist/main/override.d.ts +5 -0
  262. package/dist/main/override.js +15 -0
  263. package/dist/main/override.js.map +1 -0
  264. package/dist/main/permissions.d.ts +1 -0
  265. package/dist/main/permissions.js +1 -0
  266. package/dist/main/relay.d.ts +1 -0
  267. package/dist/main/relay.js +2 -0
  268. package/dist/main/relay.js.map +1 -1
  269. package/dist/main/view.d.ts +1 -1
  270. package/dist/message/adapters/react/index.d.ts +1 -1
  271. package/dist/message/adapters/react/index.js +1 -1
  272. package/dist/message/adapters/react/index.js.map +1 -1
  273. package/dist/message/adapters/react/{useMessageHandler.js → use-message-handler.js} +6 -4
  274. package/dist/message/adapters/react/use-message-handler.js.map +1 -0
  275. package/dist/message/handlers/MapHandler.js +2 -1
  276. package/dist/message/handlers/MapHandler.js.map +1 -1
  277. package/dist/message/handlers/SingleHandler.js +2 -1
  278. package/dist/message/handlers/SingleHandler.js.map +1 -1
  279. package/dist/message/providers/Message.js +1 -1
  280. package/dist/message/providers/Message.js.map +1 -1
  281. package/dist/relay/RelayPermission.js +8 -2
  282. package/dist/relay/RelayPermission.js.map +1 -1
  283. package/dist/relay/adapters/RelayScriptingAdapter.d.ts +1 -0
  284. package/dist/relay/adapters/RelayScriptingAdapter.js +30 -64
  285. package/dist/relay/adapters/RelayScriptingAdapter.js.map +1 -1
  286. package/dist/relay/adapters/invoke-relay.d.ts +3 -0
  287. package/dist/relay/adapters/invoke-relay.js +69 -0
  288. package/dist/relay/adapters/invoke-relay.js.map +1 -0
  289. package/dist/relay/adapters/scripting-response.d.ts +12 -0
  290. package/dist/relay/adapters/scripting-response.js +1 -0
  291. package/dist/relay/adapters/scripting-response.js.map +1 -0
  292. package/dist/relay/result.d.ts +3 -0
  293. package/dist/relay/result.js +7 -0
  294. package/dist/relay/result.js.map +1 -1
  295. package/dist/types/action.d.ts +8 -0
  296. package/dist/types/action.js +1 -0
  297. package/dist/types/action.js.map +1 -0
  298. package/dist/types/background.d.ts +2 -8
  299. package/dist/types/background.js.map +1 -1
  300. package/dist/types/config.d.ts +17 -1
  301. package/dist/types/content/definition.d.ts +2 -1
  302. package/dist/types/entrypoint.d.ts +5 -1
  303. package/dist/types/entrypoint.js +3 -0
  304. package/dist/types/entrypoint.js.map +1 -1
  305. package/dist/types/manifest.d.ts +23 -2
  306. package/dist/types/manifest.js.map +1 -1
  307. package/dist/types/offscreen.d.ts +2 -2
  308. package/dist/types/offscreen.js.map +1 -1
  309. package/dist/types/options.d.ts +3 -2
  310. package/dist/types/override.d.ts +22 -0
  311. package/dist/types/override.js +1 -0
  312. package/dist/types/override.js.map +1 -0
  313. package/dist/types/page.d.ts +1 -1
  314. package/dist/types/permissions.d.ts +39 -0
  315. package/dist/types/permissions.js +1 -0
  316. package/dist/types/permissions.js.map +1 -0
  317. package/dist/types/plugin.d.ts +4 -1
  318. package/dist/types/popup.d.ts +5 -3
  319. package/dist/types/sandbox.d.ts +2 -2
  320. package/dist/types/sandbox.js.map +1 -1
  321. package/dist/types/sidebar.d.ts +5 -3
  322. package/dist/types/sidebar.js.map +1 -1
  323. package/dist/types/view/adapters/index.d.ts +2 -0
  324. package/dist/types/view/adapters/index.js +1 -0
  325. package/dist/types/view/adapters/index.js.map +1 -0
  326. package/dist/types/view/adapters/react.d.ts +4 -0
  327. package/dist/types/view/adapters/react.js +1 -0
  328. package/dist/types/view/adapters/react.js.map +1 -0
  329. package/dist/types/view/adapters/vanilla.d.ts +1 -0
  330. package/dist/types/view/adapters/vanilla.js +1 -0
  331. package/dist/types/view/adapters/vanilla.js.map +1 -0
  332. package/dist/types/{view.d.ts → view/common.d.ts} +2 -14
  333. package/dist/types/view/common.js +1 -0
  334. package/dist/types/view/common.js.map +1 -0
  335. package/dist/types/view/definition.d.ts +15 -0
  336. package/dist/types/view/definition.js +1 -0
  337. package/dist/types/view/definition.js.map +1 -0
  338. package/dist/types/view/index.d.ts +4 -0
  339. package/dist/types/view/index.js +1 -0
  340. package/dist/types/view/index.js.map +1 -0
  341. package/dist/types/view/render.d.ts +7 -0
  342. package/dist/types/view/render.js +1 -0
  343. package/dist/types/view/render.js.map +1 -0
  344. package/package.json +18 -31
  345. package/dist/cli/builders/app/command.js.map +0 -1
  346. package/dist/entry/background/resolvers/index.d.ts +0 -1
  347. package/dist/entry/background/resolvers/index.js +0 -2
  348. package/dist/entry/background/resolvers/index.js.map +0 -1
  349. package/dist/entry/command/resolvers/index.d.ts +0 -1
  350. package/dist/entry/command/resolvers/index.js +0 -2
  351. package/dist/entry/command/resolvers/index.js.map +0 -1
  352. package/dist/entry/content/adapters/vanilla/utils.d.ts +0 -1
  353. package/dist/entry/content/adapters/vanilla/utils.js +0 -7
  354. package/dist/entry/content/adapters/vanilla/utils.js.map +0 -1
  355. package/dist/entry/content/resolvers/index.d.ts +0 -6
  356. package/dist/entry/content/resolvers/index.js +0 -7
  357. package/dist/entry/content/resolvers/index.js.map +0 -1
  358. package/dist/entry/transport/index.d.ts +0 -1
  359. package/dist/entry/transport/index.js +0 -2
  360. package/dist/entry/transport/index.js.map +0 -1
  361. package/dist/entry/transport/resolvers/index.d.ts +0 -1
  362. package/dist/entry/transport/resolvers/index.js +0 -2
  363. package/dist/entry/transport/resolvers/index.js.map +0 -1
  364. package/dist/entry/view/adapters/react/resolvers/render.d.ts +0 -2
  365. package/dist/entry/view/adapters/react/resolvers/render.js +0 -11
  366. package/dist/entry/view/adapters/react/resolvers/render.js.map +0 -1
  367. package/dist/entry/view/core/Builder.js +0 -35
  368. package/dist/entry/view/core/Builder.js.map +0 -1
  369. package/dist/entry/view/core/resolvers/container.js.map +0 -1
  370. package/dist/entry/view/core/resolvers/definition.d.ts +0 -3
  371. package/dist/entry/view/core/resolvers/definition.js +0 -12
  372. package/dist/entry/view/core/resolvers/definition.js.map +0 -1
  373. package/dist/entry/view/core/resolvers/render.d.ts +0 -3
  374. package/dist/entry/view/core/resolvers/render.js +0 -18
  375. package/dist/entry/view/core/resolvers/render.js.map +0 -1
  376. package/dist/entry/view/index.d.ts +0 -1
  377. package/dist/entry/view/index.js +0 -2
  378. package/dist/entry/view/index.js.map +0 -1
  379. package/dist/locale/providers/ObservableLocale.js.map +0 -1
  380. package/dist/message/adapters/react/useMessageHandler.js.map +0 -1
  381. package/dist/types/view.js +0 -1
  382. package/scripts/clean-dist.js +0 -7
  383. package/scripts/copy-dts.js +0 -29
  384. package/scripts/merge-coverage.mjs +0 -12
  385. package/scripts/pre-commit.mjs +0 -22
  386. package/scripts/test-inventory.mjs +0 -38
  387. package/scripts/test-run.mjs +0 -25
  388. /package/dist/cli/virtual/{transport.d.ts → service.d.ts} +0 -0
  389. /package/dist/entry/view/{core/resolvers → resolvers}/container.js +0 -0
  390. /package/dist/locale/{providers → observers}/ObservableLocale.d.ts +0 -0
  391. /package/dist/{types/view.js.map → main/permissions.js.map} +0 -0
  392. /package/dist/message/adapters/react/{useMessageHandler.d.ts → use-message-handler.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ import type { ViewConfig, ViewDefinition } from "../../../../types/view/index.js";
2
+ export declare const resolveDefinition: (module: object) => ViewDefinition<ViewConfig>;
@@ -0,0 +1,13 @@
1
+ import { isDomRenderValue } from "./../../../../entry/core/render.js";
2
+ import { isReactRenderValue } from "./../../../../entry/core/react.js";
3
+ import { mergeDefinition } from "../../resolvers/definition.js";
4
+ const resolveDefinition = (module) => {
5
+ return mergeDefinition(
6
+ module,
7
+ (value) => typeof value === "function" || isDomRenderValue(value) || isReactRenderValue(value)
8
+ );
9
+ };
10
+ export {
11
+ resolveDefinition
12
+ };
13
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/view/adapters/react/definition.ts"],"sourcesContent":["import {isDomRenderValue} from \"@entry/core/render\";\nimport {isReactRenderValue} from \"@entry/core/react\";\n\nimport {mergeDefinition} from \"../../resolvers/definition\";\n\nimport type {ViewConfig, ViewDefinition} from \"@typing/view\";\n\nexport const resolveDefinition = (module: object): ViewDefinition<ViewConfig> => {\n return mergeDefinition(\n module,\n value => typeof value === \"function\" || isDomRenderValue(value) || isReactRenderValue(value)\n );\n};\n"],"mappings":"AAAA,SAAQ,wBAAuB;AAC/B,SAAQ,0BAAyB;AAEjC,SAAQ,uBAAsB;AAIvB,MAAM,oBAAoB,CAAC,WAA+C;AAC7E,SAAO;AAAA,IACH;AAAA,IACA,WAAS,OAAO,UAAU,cAAc,iBAAiB,KAAK,KAAK,mBAAmB,KAAK;AAAA,EAC/F;AACJ;","names":[]}
@@ -1,4 +1,5 @@
1
1
  import Builder from "./Builder.js";
2
2
  export { Builder };
3
- declare const _default: (definition: import("../../../../index.js").ViewDefinition<import("../../../../types/view.js").ViewConfig>) => void;
3
+ export { resolveDefinition } from "./definition.js";
4
+ declare const _default: (definition: import("../../../../index.js").ViewDefinition<import("../../../../types/view/index.js").ViewConfig>) => void;
4
5
  export default _default;
@@ -1,7 +1,9 @@
1
1
  import Builder from "./Builder.js";
2
+ import { resolveDefinition } from "./definition.js";
2
3
  var react_default = Builder.resolver();
3
4
  export {
4
5
  Builder,
5
- react_default as default
6
+ react_default as default,
7
+ resolveDefinition
6
8
  };
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/entry/view/adapters/react/index.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nexport {Builder};\n\nexport default Builder.resolver();\n"],"mappings":"AAAA,OAAO,aAAa;AAIpB,IAAO,gBAAQ,QAAQ,SAAS;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/entry/view/adapters/react/index.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nexport {Builder};\nexport {resolveDefinition} from \"./definition\";\n\nexport default Builder.resolver();\n"],"mappings":"AAAA,OAAO,aAAa;AAGpB,SAAQ,yBAAwB;AAEhC,IAAO,gBAAQ,QAAQ,SAAS;","names":[]}
@@ -1,8 +1,7 @@
1
- import Builder from "../../core/Builder.js";
2
- import { ViewConfig, ViewDefinition } from "../../../../types/view.js";
3
- export default class<T extends ViewConfig> extends Builder<T> {
4
- protected container?: Element;
1
+ import ViewBuilder from "../../Builder.js";
2
+ import { ViewConfig, ViewDefinition, ViewRenderHandler, ViewRenderValue } from "../../../../types/view/index.js";
3
+ export default class Builder<T extends ViewConfig> extends ViewBuilder<T> {
5
4
  constructor(definition: ViewDefinition<T>);
6
- build(): Promise<void>;
7
- destroy(): Promise<void>;
5
+ protected resolveRender(render?: ViewRenderValue<T> | ViewRenderHandler<T>): ViewRenderHandler<T> | undefined;
6
+ protected mount(container: Element, value: ViewRenderValue<T>): void;
8
7
  }
@@ -1,36 +1,25 @@
1
- import Builder from "../../core/Builder.js";
2
- class Builder_default extends Builder {
3
- container;
1
+ import { isDomRenderValue, renderDomValue } from "./../../../../entry/core/render.js";
2
+ import ViewBuilder from "../../Builder.js";
3
+ class Builder extends ViewBuilder {
4
4
  constructor(definition) {
5
5
  super(definition);
6
6
  }
7
- async build() {
8
- await super.build();
9
- const props = this.getProps();
10
- const content = await this.definition.render(props);
11
- if (!content) {
7
+ resolveRender(render) {
8
+ if (render === void 0) {
12
9
  return;
13
10
  }
14
- this.container = await this.definition.container(props);
15
- if (!this.container) {
16
- return;
17
- }
18
- if (content instanceof Element) {
19
- this.container.appendChild(content);
20
- } else if (typeof content === "string" || typeof content === "number") {
21
- this.container.innerHTML = content.toString();
22
- } else {
23
- return;
24
- }
25
- document.body.prepend(this.container);
11
+ return async (props) => {
12
+ const value = typeof render === "function" ? await render(props) : render;
13
+ return isDomRenderValue(value) ? value : void 0;
14
+ };
26
15
  }
27
- async destroy() {
28
- var _a;
29
- (_a = this.container) == null ? void 0 : _a.remove();
30
- this.container = void 0;
16
+ mount(container, value) {
17
+ if (isDomRenderValue(value)) {
18
+ renderDomValue(container, value);
19
+ }
31
20
  }
32
21
  }
33
22
  export {
34
- Builder_default as default
23
+ Builder as default
35
24
  };
36
25
  //# sourceMappingURL=Builder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/entry/view/adapters/vanilla/Builder.ts"],"sourcesContent":["import Builder from \"../../core/Builder\";\n\nimport {ViewConfig, ViewDefinition} from \"@typing/view\";\n\nexport default class<T extends ViewConfig> extends Builder<T> {\n protected container?: Element;\n\n public constructor(definition: ViewDefinition<T>) {\n super(definition);\n }\n\n public async build(): Promise<void> {\n await super.build();\n\n const props = this.getProps();\n\n const content = await this.definition.render(props);\n\n if (!content) {\n return;\n }\n\n this.container = await this.definition.container(props);\n\n if (!this.container) {\n return;\n }\n\n if (content instanceof Element) {\n this.container.appendChild(content);\n } else if (typeof content === \"string\" || typeof content === \"number\") {\n this.container.innerHTML = content.toString();\n } else {\n return;\n }\n\n document.body.prepend(this.container);\n }\n\n public async destroy(): Promise<void> {\n this.container?.remove();\n this.container = undefined;\n }\n}\n"],"mappings":"AAAA,OAAO,aAAa;AAIpB,MAAO,wBAA4C,QAAW;AAAA,EAChD;AAAA,EAEH,YAAY,YAA+B;AAC9C,UAAM,UAAU;AAAA,EACpB;AAAA,EAEA,MAAa,QAAuB;AAChC,UAAM,MAAM,MAAM;AAElB,UAAM,QAAQ,KAAK,SAAS;AAE5B,UAAM,UAAU,MAAM,KAAK,WAAW,OAAO,KAAK;AAElD,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AAEA,SAAK,YAAY,MAAM,KAAK,WAAW,UAAU,KAAK;AAEtD,QAAI,CAAC,KAAK,WAAW;AACjB;AAAA,IACJ;AAEA,QAAI,mBAAmB,SAAS;AAC5B,WAAK,UAAU,YAAY,OAAO;AAAA,IACtC,WAAW,OAAO,YAAY,YAAY,OAAO,YAAY,UAAU;AACnE,WAAK,UAAU,YAAY,QAAQ,SAAS;AAAA,IAChD,OAAO;AACH;AAAA,IACJ;AAEA,aAAS,KAAK,QAAQ,KAAK,SAAS;AAAA,EACxC;AAAA,EAEA,MAAa,UAAyB;AAvC1C;AAwCQ,eAAK,cAAL,mBAAgB;AAChB,SAAK,YAAY;AAAA,EACrB;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/entry/view/adapters/vanilla/Builder.ts"],"sourcesContent":["import {isDomRenderValue, renderDomValue} from \"@entry/core/render\";\n\nimport ViewBuilder from \"../../Builder\";\n\nimport {ViewConfig, ViewDefinition, ViewRenderHandler, ViewRenderValue} from \"@typing/view\";\n\nexport default class Builder<T extends ViewConfig> extends ViewBuilder<T> {\n public constructor(definition: ViewDefinition<T>) {\n super(definition);\n }\n\n protected resolveRender(render?: ViewRenderValue<T> | ViewRenderHandler<T>): ViewRenderHandler<T> | undefined {\n if (render === undefined) {\n return;\n }\n\n return async props => {\n const value = typeof render === \"function\" ? await render(props) : render;\n\n return isDomRenderValue(value) ? value : undefined;\n };\n }\n\n protected mount(container: Element, value: ViewRenderValue<T>): void {\n if (isDomRenderValue(value)) {\n renderDomValue(container, value);\n }\n }\n}\n"],"mappings":"AAAA,SAAQ,kBAAkB,sBAAqB;AAE/C,OAAO,iBAAiB;AAIxB,MAAO,gBAAoD,YAAe;AAAA,EAC/D,YAAY,YAA+B;AAC9C,UAAM,UAAU;AAAA,EACpB;AAAA,EAEU,cAAc,QAAsF;AAC1G,QAAI,WAAW,QAAW;AACtB;AAAA,IACJ;AAEA,WAAO,OAAM,UAAS;AAClB,YAAM,QAAQ,OAAO,WAAW,aAAa,MAAM,OAAO,KAAK,IAAI;AAEnE,aAAO,iBAAiB,KAAK,IAAI,QAAQ;AAAA,IAC7C;AAAA,EACJ;AAAA,EAEU,MAAM,WAAoB,OAAiC;AACjE,QAAI,iBAAiB,KAAK,GAAG;AACzB,qBAAe,WAAW,KAAK;AAAA,IACnC;AAAA,EACJ;AACJ;","names":[]}
@@ -0,0 +1,2 @@
1
+ import type { ViewConfig, ViewDefinition } from "../../../../types/view/index.js";
2
+ export declare const resolveDefinition: (module: object) => ViewDefinition<ViewConfig>;
@@ -0,0 +1,9 @@
1
+ import { isDomRenderValue } from "./../../../../entry/core/render.js";
2
+ import { mergeDefinition } from "../../resolvers/definition.js";
3
+ const resolveDefinition = (module) => {
4
+ return mergeDefinition(module, (value) => typeof value === "function" || isDomRenderValue(value));
5
+ };
6
+ export {
7
+ resolveDefinition
8
+ };
9
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/view/adapters/vanilla/definition.ts"],"sourcesContent":["import {isDomRenderValue} from \"@entry/core/render\";\n\nimport {mergeDefinition} from \"../../resolvers/definition\";\n\nimport type {ViewConfig, ViewDefinition} from \"@typing/view\";\n\nexport const resolveDefinition = (module: object): ViewDefinition<ViewConfig> => {\n return mergeDefinition(module, value => typeof value === \"function\" || isDomRenderValue(value));\n};\n"],"mappings":"AAAA,SAAQ,wBAAuB;AAE/B,SAAQ,uBAAsB;AAIvB,MAAM,oBAAoB,CAAC,WAA+C;AAC7E,SAAO,gBAAgB,QAAQ,WAAS,OAAO,UAAU,cAAc,iBAAiB,KAAK,CAAC;AAClG;","names":[]}
@@ -1,4 +1,5 @@
1
1
  import Builder from "./Builder.js";
2
2
  export { Builder };
3
- declare const _default: (definition: import("../../../../index.js").ViewDefinition<import("../../../../types/view.js").ViewConfig>) => void;
3
+ export { resolveDefinition } from "./definition.js";
4
+ declare const _default: (definition: import("../../../../index.js").ViewDefinition<import("../../../../types/view/index.js").ViewConfig>) => void;
4
5
  export default _default;
@@ -1,7 +1,9 @@
1
1
  import Builder from "./Builder.js";
2
+ import { resolveDefinition } from "./definition.js";
2
3
  var vanilla_default = Builder.resolver();
3
4
  export {
4
5
  Builder,
5
- vanilla_default as default
6
+ vanilla_default as default,
7
+ resolveDefinition
6
8
  };
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/entry/view/adapters/vanilla/index.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nexport {Builder};\n\nexport default Builder.resolver();\n"],"mappings":"AAAA,OAAO,aAAa;AAIpB,IAAO,kBAAQ,QAAQ,SAAS;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/entry/view/adapters/vanilla/index.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nexport {Builder};\nexport {resolveDefinition} from \"./definition\";\n\nexport default Builder.resolver();\n"],"mappings":"AAAA,OAAO,aAAa;AAGpB,SAAQ,yBAAwB;AAEhC,IAAO,kBAAQ,QAAQ,SAAS;","names":[]}
@@ -1,2 +1,2 @@
1
- import { ViewConfig, ViewContainerCreator, ViewContainerFactory, ViewContainerOptions, ViewContainerTag } from "../../../../types/view.js";
1
+ import { ViewConfig, ViewContainerCreator, ViewContainerFactory, ViewContainerOptions, ViewContainerTag } from "../../../types/view/index.js";
2
2
  export declare const viewContainerResolver: <T extends ViewConfig>(container?: ViewContainerTag | ViewContainerOptions | ViewContainerFactory<T>) => ViewContainerCreator<T>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/view/resolvers/container.ts"],"sourcesContent":["import {\n ViewConfig,\n ViewContainerCreator,\n ViewContainerFactory,\n ViewContainerOptions,\n ViewContainerTag,\n} from \"@typing/view\";\n\nexport const viewContainerResolver =\n <T extends ViewConfig>(\n container?: ViewContainerTag | ViewContainerOptions | ViewContainerFactory<T>\n ): ViewContainerCreator<T> =>\n async (props: T): Promise<Element> => {\n let resolvedContainer = typeof container === \"function\" ? container(props) : container;\n\n if (resolvedContainer instanceof Promise) {\n resolvedContainer = await resolvedContainer;\n }\n\n if (resolvedContainer === undefined || typeof resolvedContainer === \"string\") {\n resolvedContainer = document.createElement(resolvedContainer || \"div\");\n } else if (typeof resolvedContainer === \"object\" && resolvedContainer.constructor === Object) {\n const {tagName = \"div\", ...options} = resolvedContainer as ViewContainerOptions;\n\n resolvedContainer = document.createElement(tagName);\n\n Object.assign(resolvedContainer, options);\n }\n\n if (!(resolvedContainer instanceof Element)) {\n throw new Error(\"The view container must be a valid element\");\n }\n\n return resolvedContainer;\n };\n"],"mappings":"AAQO,MAAM,wBACT,CACI,cAEJ,OAAO,UAA+B;AAClC,MAAI,oBAAoB,OAAO,cAAc,aAAa,UAAU,KAAK,IAAI;AAE7E,MAAI,6BAA6B,SAAS;AACtC,wBAAoB,MAAM;AAAA,EAC9B;AAEA,MAAI,sBAAsB,UAAa,OAAO,sBAAsB,UAAU;AAC1E,wBAAoB,SAAS,cAAc,qBAAqB,KAAK;AAAA,EACzE,WAAW,OAAO,sBAAsB,YAAY,kBAAkB,gBAAgB,QAAQ;AAC1F,UAAM,EAAC,UAAU,OAAO,GAAG,QAAO,IAAI;AAEtC,wBAAoB,SAAS,cAAc,OAAO;AAElD,WAAO,OAAO,mBAAmB,OAAO;AAAA,EAC5C;AAEA,MAAI,EAAE,6BAA6B,UAAU;AACzC,UAAM,IAAI,MAAM,4CAA4C;AAAA,EAChE;AAEA,SAAO;AACX;","names":[]}
@@ -0,0 +1,3 @@
1
+ import { ViewConfig, ViewDefinition } from "../../../types/view/index.js";
2
+ /** Merge module exports using the selected adapter's interpretation of the default value. */
3
+ export declare const mergeDefinition: (module: object, isRenderInput: (value: unknown) => boolean) => ViewDefinition<ViewConfig>;
@@ -0,0 +1,18 @@
1
+ const isDefinitionObject = (value) => {
2
+ return value !== null && typeof value === "object" && value.constructor === Object;
3
+ };
4
+ const mergeDefinition = (module, isRenderInput) => {
5
+ const { default: defaultDefinition, ...namedDefinition } = module;
6
+ const definition = namedDefinition;
7
+ if (isRenderInput(defaultDefinition)) {
8
+ return { ...definition, render: defaultDefinition };
9
+ }
10
+ if (isDefinitionObject(defaultDefinition)) {
11
+ return { ...definition, ...defaultDefinition };
12
+ }
13
+ return definition;
14
+ };
15
+ export {
16
+ mergeDefinition
17
+ };
18
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/view/resolvers/definition.ts"],"sourcesContent":["import {ViewConfig, ViewDefinition} from \"@typing/view\";\n\n/** Adapters must recognize their render values before falling back to an options object. */\nconst isDefinitionObject = (value: unknown): value is ViewDefinition<ViewConfig> => {\n return value !== null && typeof value === \"object\" && value.constructor === Object;\n};\n\n/** Merge module exports using the selected adapter's interpretation of the default value. */\nexport const mergeDefinition = (\n module: object,\n isRenderInput: (value: unknown) => boolean\n): ViewDefinition<ViewConfig> => {\n const {default: defaultDefinition, ...namedDefinition} = module as Record<string, unknown>;\n const definition = namedDefinition as ViewDefinition<ViewConfig>;\n\n if (isRenderInput(defaultDefinition)) {\n return {...definition, render: defaultDefinition} as ViewDefinition<ViewConfig>;\n }\n\n if (isDefinitionObject(defaultDefinition)) {\n return {...definition, ...defaultDefinition};\n }\n\n return definition;\n};\n"],"mappings":"AAGA,MAAM,qBAAqB,CAAC,UAAwD;AAChF,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,MAAM,gBAAgB;AAChF;AAGO,MAAM,kBAAkB,CAC3B,QACA,kBAC6B;AAC7B,QAAM,EAAC,SAAS,mBAAmB,GAAG,gBAAe,IAAI;AACzD,QAAM,aAAa;AAEnB,MAAI,cAAc,iBAAiB,GAAG;AAClC,WAAO,EAAC,GAAG,YAAY,QAAQ,kBAAiB;AAAA,EACpD;AAEA,MAAI,mBAAmB,iBAAiB,GAAG;AACvC,WAAO,EAAC,GAAG,YAAY,GAAG,kBAAiB;AAAA,EAC/C;AAEA,SAAO;AACX;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import { useMemo, useSyncExternalStore } from "react";
2
2
  import ReactLocale from "../ReactLocale.js";
3
- import { ObservableLocale } from "./../../../../locale/providers/index.js";
3
+ import { ObservableLocale } from "./../../../../locale/observers/index.js";
4
4
  const useLocale = (storage) => {
5
5
  const locale = useMemo(() => ObservableLocale.getInstance(storage), [storage]);
6
6
  const snapshot = useSyncExternalStore(locale.subscribe, locale.snapshot);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/locale/adapters/react/hooks/use-locale.ts"],"sourcesContent":["import {useMemo, useSyncExternalStore} from \"react\";\n\nimport ReactLocale from \"../ReactLocale\";\n\nimport {ObservableLocale} from \"@locale/providers\";\n\nimport type {LocaleReactDynamicContract} from \"../types\";\nimport type {LocaleRegistry, LocaleStorageDriver} from \"@typing/locale\";\n\nexport const useLocale = (storage?: LocaleStorageDriver | false): LocaleReactDynamicContract => {\n const locale = useMemo(() => ObservableLocale.getInstance(storage), [storage]);\n const snapshot = useSyncExternalStore(locale.subscribe, locale.snapshot);\n\n return useMemo(\n () =>\n Object.assign(new ReactLocale<LocaleRegistry>(snapshot), {\n change: locale.change,\n }),\n [locale, snapshot]\n );\n};\n"],"mappings":"AAAA,SAAQ,SAAS,4BAA2B;AAE5C,OAAO,iBAAiB;AAExB,SAAQ,wBAAuB;AAKxB,MAAM,YAAY,CAAC,YAAsE;AAC5F,QAAM,SAAS,QAAQ,MAAM,iBAAiB,YAAY,OAAO,GAAG,CAAC,OAAO,CAAC;AAC7E,QAAM,WAAW,qBAAqB,OAAO,WAAW,OAAO,QAAQ;AAEvE,SAAO;AAAA,IACH,MACI,OAAO,OAAO,IAAI,YAA4B,QAAQ,GAAG;AAAA,MACrD,QAAQ,OAAO;AAAA,IACnB,CAAC;AAAA,IACL,CAAC,QAAQ,QAAQ;AAAA,EACrB;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/locale/adapters/react/hooks/use-locale.ts"],"sourcesContent":["import {useMemo, useSyncExternalStore} from \"react\";\n\nimport ReactLocale from \"../ReactLocale\";\n\nimport {ObservableLocale} from \"@locale/observers\";\n\nimport type {LocaleReactDynamicContract} from \"../types\";\nimport type {LocaleRegistry, LocaleStorageDriver} from \"@typing/locale\";\n\nexport const useLocale = (storage?: LocaleStorageDriver | false): LocaleReactDynamicContract => {\n const locale = useMemo(() => ObservableLocale.getInstance(storage), [storage]);\n const snapshot = useSyncExternalStore(locale.subscribe, locale.snapshot);\n\n return useMemo(\n () =>\n Object.assign(new ReactLocale<LocaleRegistry>(snapshot), {\n change: locale.change,\n }),\n [locale, snapshot]\n );\n};\n"],"mappings":"AAAA,SAAQ,SAAS,4BAA2B;AAE5C,OAAO,iBAAiB;AAExB,SAAQ,wBAAuB;AAKxB,MAAM,YAAY,CAAC,YAAsE;AAC5F,QAAM,SAAS,QAAQ,MAAM,iBAAiB,YAAY,OAAO,GAAG,CAAC,OAAO,CAAC;AAC7E,QAAM,WAAW,qBAAqB,OAAO,WAAW,OAAO,QAAQ;AAEvE,SAAO;AAAA,IACH,MACI,OAAO,OAAO,IAAI,YAA4B,QAAQ,GAAG;AAAA,MACrD,QAAQ,OAAO;AAAA,IACnB,CAAC;AAAA,IACL,CAAC,QAAQ,QAAQ;AAAA,EACrB;AACJ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import { useMemo } from "react";
2
- import NativeLocale from "./../../../../locale/providers/NativeLocale.js";
3
2
  import ReactLocale from "../ReactLocale.js";
3
+ import { NativeLocale } from "./../../../../locale/providers/index.js";
4
4
  const useNativeLocale = () => {
5
5
  return useMemo(() => new ReactLocale(NativeLocale.getInstance()), []);
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/locale/adapters/react/hooks/use-native-locale.ts"],"sourcesContent":["import {useMemo} from \"react\";\nimport NativeLocale from \"@locale/providers/NativeLocale\";\nimport ReactLocale from \"../ReactLocale\";\nimport type {LocaleRegistry} from \"@typing/locale\";\nimport type {LocaleReactContract} from \"../types\";\n\n/** Uses browser-selected translations with React substitutions. */\nexport const useNativeLocale = (): LocaleReactContract => {\n return useMemo(() => new ReactLocale<LocaleRegistry>(NativeLocale.getInstance()), []);\n};\n"],"mappings":"AAAA,SAAQ,eAAc;AACtB,OAAO,kBAAkB;AACzB,OAAO,iBAAiB;AAKjB,MAAM,kBAAkB,MAA2B;AACtD,SAAO,QAAQ,MAAM,IAAI,YAA4B,aAAa,YAAY,CAAC,GAAG,CAAC,CAAC;AACxF;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/locale/adapters/react/hooks/use-native-locale.ts"],"sourcesContent":["import {useMemo} from \"react\";\n\nimport ReactLocale from \"../ReactLocale\";\n\nimport {NativeLocale} from \"@locale/providers\";\n\nimport type {LocaleReactContract} from \"../types\";\n\nimport type {LocaleRegistry} from \"@typing/locale\";\n\n/** Uses browser-selected translations with React substitutions. */\nexport const useNativeLocale = (): LocaleReactContract => {\n return useMemo(() => new ReactLocale<LocaleRegistry>(NativeLocale.getInstance()), []);\n};\n"],"mappings":"AAAA,SAAQ,eAAc;AAEtB,OAAO,iBAAiB;AAExB,SAAQ,oBAAmB;AAOpB,MAAM,kBAAkB,MAA2B;AACtD,SAAO,QAAQ,MAAM,IAAI,YAA4B,aAAa,YAAY,CAAC,GAAG,CAAC,CAAC;AACxF;","names":[]}
@@ -1,4 +1,5 @@
1
1
  export * from "./providers/index.js";
2
+ export { ObservableLocale } from "./observers/index.js";
2
3
  export * from "./helpers.js";
3
4
  export * from "./storage/index.js";
4
5
  export { Language, LanguageCodes, LocaleDir, type LocaleStructure, type LocaleRegistry, type LocaleProvider, type LocaleDynamicProvider, type LocaleSnapshot, type LocaleStorageDriver, type LocaleKeys, type LocaleSubstitutionArgs, type LocaleSubstitutionKeys, type LocaleSubstitutionValue, type LocaleNonPluralKeys, type LocalePluralKeys, } from "../types/locale.js";
@@ -1,4 +1,5 @@
1
1
  export * from "./providers/index.js";
2
+ import { ObservableLocale } from "./observers/index.js";
2
3
  export * from "./helpers.js";
3
4
  export * from "./storage/index.js";
4
5
  import {
@@ -9,6 +10,7 @@ import {
9
10
  export {
10
11
  Language,
11
12
  LanguageCodes,
12
- LocaleDir
13
+ LocaleDir,
14
+ ObservableLocale
13
15
  };
14
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/locale/index.ts"],"sourcesContent":["export * from \"./providers\";\nexport * from \"./helpers\";\nexport * from \"./storage\";\n\nexport {\n Language,\n LanguageCodes,\n LocaleDir,\n type LocaleStructure,\n type LocaleRegistry,\n type LocaleProvider,\n type LocaleDynamicProvider,\n type LocaleSnapshot,\n type LocaleStorageDriver,\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;AACd,cAAc;AAEd;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OAaG;","names":[]}
1
+ {"version":3,"sources":["../../src/locale/index.ts"],"sourcesContent":["export * from \"./providers\";\nexport {ObservableLocale} from \"./observers\";\nexport * from \"./helpers\";\nexport * from \"./storage\";\n\nexport {\n Language,\n LanguageCodes,\n LocaleDir,\n type LocaleStructure,\n type LocaleRegistry,\n type LocaleProvider,\n type LocaleDynamicProvider,\n type LocaleSnapshot,\n type LocaleStorageDriver,\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,SAAQ,wBAAuB;AAC/B,cAAc;AACd,cAAc;AAEd;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OAaG;","names":[]}
@@ -1,5 +1,5 @@
1
- import DynamicLocale from "./DynamicLocale.js";
2
- import CustomLocale from "./CustomLocale.js";
1
+ import { DynamicLocale } from "../providers/index.js";
2
+ import CustomLocale from "../providers/CustomLocale.js";
3
3
  import { LocaleStorage } from "../storage/index.js";
4
4
  class ObservableLocale {
5
5
  static defaultInstance;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/locale/observers/ObservableLocale.ts"],"sourcesContent":["import {DynamicLocale} from \"../providers\";\nimport CustomLocale from \"../providers/CustomLocale\";\n\nimport {LocaleStorage} from \"../storage\";\n\nimport type {\n Language,\n LocaleDynamicProvider,\n LocaleNonPluralKeys,\n LocalePluralKeys,\n LocaleRegistry,\n LocaleSnapshot,\n LocaleStorageDriver,\n LocaleSubstitutionArgs,\n LocaleSubstitutionValue,\n} from \"@typing/locale\";\n\n/** Dynamic translations with shared instances and subscriptions independent of any UI framework. */\nexport default class ObservableLocale<T extends object = LocaleRegistry> implements LocaleDynamicProvider<T> {\n private static defaultInstance?: ObservableLocale;\n private static memoryInstance?: ObservableLocale;\n\n private static readonly drivers = new WeakMap<LocaleStorageDriver, ObservableLocale>();\n\n public static getInstance(storage?: LocaleStorageDriver | false): ObservableLocale {\n if (typeof storage === \"object\") {\n let instance = this.drivers.get(storage);\n\n if (!instance) {\n instance = new ObservableLocale(storage);\n this.drivers.set(storage, instance);\n }\n\n return instance;\n }\n\n if (storage === false) {\n return (this.memoryInstance ??= new ObservableLocale(false));\n }\n\n return (this.defaultInstance ??= new ObservableLocale());\n }\n\n private readonly locale = new DynamicLocale<T>(false);\n private readonly storage?: LocaleStorageDriver;\n private readonly listeners = new Set<() => void>();\n private readonly languages: ReadonlySet<Language>;\n private readonly languageNames: ReadonlyMap<Language, string>;\n private currentSnapshot: LocaleSnapshot<T>;\n private revision = 0;\n private writes: Promise<void> = Promise.resolve();\n private pendingWrites = 0;\n private unsubscribe?: () => void;\n\n constructor(storage?: LocaleStorageDriver | false) {\n this.storage = storage === false ? undefined : (storage ?? new LocaleStorage());\n this.languages = this.langs();\n this.languageNames = this.langNames();\n this.currentSnapshot = this.createSnapshot();\n }\n\n public lang(): Language {\n return this.locale.lang();\n }\n\n public langs(): ReadonlySet<Language> {\n return this.locale.langs();\n }\n\n public langNames(): ReadonlyMap<Language, string> {\n return this.locale.langNames();\n }\n\n public keys(): Set<keyof T> {\n return this.locale.keys();\n }\n\n public get<K extends keyof T & string>(key: K, substitutions?: Record<string, LocaleSubstitutionValue>): string {\n return this.locale.get(key, substitutions);\n }\n\n public trans<K extends LocaleNonPluralKeys<T>>(key: K, ...args: LocaleSubstitutionArgs<T, K>): string {\n return this.locale.trans(key, ...args);\n }\n\n public choice<K extends LocalePluralKeys<T>>(key: K, count: number, ...args: LocaleSubstitutionArgs<T, K>): string {\n return this.locale.choice(key, count, ...args);\n }\n\n public readonly snapshot = (): LocaleSnapshot<T> => this.currentSnapshot;\n\n public readonly subscribe = (listener: () => void): (() => void) => {\n // Each subscription owns its cleanup, even when the same callback is subscribed twice.\n const notify = () => listener();\n\n this.listeners.add(notify);\n\n try {\n this.connect();\n } catch (error) {\n this.listeners.delete(notify);\n throw error;\n }\n\n if (this.listeners.size === 1) {\n void this.refresh();\n }\n\n return () => {\n this.listeners.delete(notify);\n this.disconnect();\n };\n };\n\n public readonly change = async (lang: Language): Promise<Language> => {\n this.locale.select(lang);\n\n const storage = this.storage;\n\n if (!storage) {\n this.publish();\n\n return lang;\n }\n\n this.revision++;\n\n // Register persistence before notifying: a subscriber may select another language immediately.\n this.pendingWrites++;\n\n const saved = this.writes.then(() => storage.set(lang));\n\n this.writes = saved.catch(() => undefined);\n\n this.publish();\n\n let succeeded = false;\n\n try {\n await saved;\n succeeded = true;\n\n return lang;\n } finally {\n if (--this.pendingWrites === 0 && succeeded) {\n void this.refresh();\n }\n }\n };\n\n public async sync(): Promise<Language> {\n if (!this.storage) {\n throw new Error(\"Language is not saving in storage\");\n }\n\n if (this.pendingWrites) {\n return this.lang();\n }\n\n const revision = ++this.revision;\n const lang = await this.storage.get();\n\n if (revision !== this.revision || this.pendingWrites) {\n return this.lang();\n }\n\n if (lang === undefined) {\n return this.lang();\n }\n\n if (!this.langs().has(lang)) {\n console.warn(`Incorrect language code in storage - \"${lang}\"`);\n\n return this.lang();\n }\n\n this.locale.select(lang);\n\n this.publish();\n\n return this.lang();\n }\n\n private connect(): void {\n if (!this.storage || this.unsubscribe) {\n return;\n }\n\n this.unsubscribe = this.storage.watch(() => {\n void this.refresh();\n });\n }\n\n private disconnect(): void {\n if (this.listeners.size) {\n return;\n }\n\n this.revision++;\n\n this.unsubscribe?.();\n this.unsubscribe = undefined;\n }\n\n private async refresh(): Promise<void> {\n if (!this.storage || this.pendingWrites) {\n return;\n }\n\n try {\n await this.sync();\n } catch (error) {\n console.error(\"[ObservableLocale] Cannot synchronize language:\", error);\n }\n }\n\n private createSnapshot(): LocaleSnapshot<T> {\n const lang = this.lang();\n const langs = this.languages;\n const langNames = this.languageNames;\n\n const reader = new CustomLocale<T>(lang, this.locale.messages());\n\n return Object.freeze({\n lang: () => lang,\n langs: () => langs,\n langNames: () => langNames,\n get: reader.get.bind(reader),\n });\n }\n\n private publish(): void {\n if (this.currentSnapshot.lang() === this.lang()) {\n return;\n }\n\n this.currentSnapshot = this.createSnapshot();\n\n for (const listener of [...this.listeners]) {\n try {\n listener();\n } catch (error) {\n console.error(\"[ObservableLocale] Language subscriber failed:\", error);\n }\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ export { default as ObservableLocale } from "./ObservableLocale.js";
@@ -0,0 +1,5 @@
1
+ import { default as default2 } from "./ObservableLocale.js";
2
+ export {
3
+ default2 as ObservableLocale
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/locale/observers/index.ts"],"sourcesContent":["export {default as ObservableLocale} from \"./ObservableLocale\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAAkC;","names":["default"]}
@@ -1,4 +1,3 @@
1
1
  export { default as AbstractLocale } from "./AbstractLocale.js";
2
2
  export { default as DynamicLocale } from "./DynamicLocale.js";
3
3
  export { default as NativeLocale } from "./NativeLocale.js";
4
- export { default as ObservableLocale } from "./ObservableLocale.js";
@@ -1,11 +1,9 @@
1
1
  import { default as default2 } from "./AbstractLocale.js";
2
2
  import { default as default3 } from "./DynamicLocale.js";
3
3
  import { default as default4 } from "./NativeLocale.js";
4
- import { default as default5 } from "./ObservableLocale.js";
5
4
  export {
6
5
  default2 as AbstractLocale,
7
6
  default3 as DynamicLocale,
8
- default4 as NativeLocale,
9
- default5 as ObservableLocale
7
+ default4 as NativeLocale
10
8
  };
11
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/locale/providers/index.ts"],"sourcesContent":["export {default as AbstractLocale} from \"./AbstractLocale\";\nexport {default as DynamicLocale} from \"./DynamicLocale\";\nexport {default as NativeLocale} from \"./NativeLocale\";\nexport {default as ObservableLocale} from \"./ObservableLocale\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAAgC;AACxC,SAAmB,WAAXA,gBAA+B;AACvC,SAAmB,WAAXA,gBAA8B;AACtC,SAAmB,WAAXA,gBAAkC;","names":["default"]}
1
+ {"version":3,"sources":["../../../src/locale/providers/index.ts"],"sourcesContent":["export {default as AbstractLocale} from \"./AbstractLocale\";\nexport {default as DynamicLocale} from \"./DynamicLocale\";\nexport {default as NativeLocale} from \"./NativeLocale\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAAgC;AACxC,SAAmB,WAAXA,gBAA+B;AACvC,SAAmB,WAAXA,gBAA8B;","names":["default"]}
@@ -1,3 +1,4 @@
1
1
  import type { Config, ConfigDefinition, ReadonlyConfig, UserConfig } from "../types/config.js";
2
+ export type { ActionOptions } from "../types/action.js";
2
3
  export type { Config, ReadonlyConfig, ConfigDefinition, UserConfig };
3
4
  export declare const defineConfig: (config: ConfigDefinition) => ConfigDefinition;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/main/config.ts"],"sourcesContent":["import type {Config, ConfigDefinition, ReadonlyConfig, UserConfig} from \"@typing/config\";\n\nexport type {Config, ReadonlyConfig, ConfigDefinition, UserConfig};\n\nexport const defineConfig = (config: ConfigDefinition): ConfigDefinition => {\n return config;\n};\n"],"mappings":"AAIO,MAAM,eAAe,CAAC,WAA+C;AACxE,SAAO;AACX;","names":[]}
1
+ {"version":3,"sources":["../../src/main/config.ts"],"sourcesContent":["import type {Config, ConfigDefinition, ReadonlyConfig, UserConfig} from \"@typing/config\";\n\nexport type {ActionOptions} from \"@typing/action\";\nexport type {Config, ReadonlyConfig, ConfigDefinition, UserConfig};\n\nexport const defineConfig = (config: ConfigDefinition): ConfigDefinition => {\n return config;\n};\n"],"mappings":"AAKO,MAAM,eAAe,CAAC,WAA+C;AACxE,SAAO;AACX;","names":[]}
@@ -11,7 +11,9 @@ export * from "./icon.js";
11
11
  export * from "./manifest.js";
12
12
  export * from "./offscreen.js";
13
13
  export * from "./options.js";
14
+ export * from "./override.js";
14
15
  export * from "./page.js";
16
+ export * from "./permissions.js";
15
17
  export * from "./plugin.js";
16
18
  export * from "./popup.js";
17
19
  export * from "./relay.js";
@@ -11,7 +11,9 @@ export * from "./icon.js";
11
11
  export * from "./manifest.js";
12
12
  export * from "./offscreen.js";
13
13
  export * from "./options.js";
14
+ export * from "./override.js";
14
15
  export * from "./page.js";
16
+ export * from "./permissions.js";
15
17
  export * from "./plugin.js";
16
18
  export * from "./popup.js";
17
19
  export * from "./relay.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/main/index.ts"],"sourcesContent":["export * from \"./app\";\nexport * from \"./background\";\nexport * from \"./browser\";\nexport * from \"./command\";\nexport * from \"./config\";\nexport * from \"./content\";\nexport * from \"./csp\";\nexport * from \"./entrypoint\";\nexport * from \"./env\";\nexport * from \"./icon\";\nexport * from \"./manifest\";\nexport * from \"./offscreen\";\nexport * from \"./options\";\nexport * from \"./page\";\nexport * from \"./plugin\";\nexport * from \"./popup\";\nexport * from \"./relay\";\nexport * from \"./sandbox\";\nexport * from \"./service\";\nexport * from \"./sidebar\";\nexport * from \"./view\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../src/main/index.ts"],"sourcesContent":["export * from \"./app\";\nexport * from \"./background\";\nexport * from \"./browser\";\nexport * from \"./command\";\nexport * from \"./config\";\nexport * from \"./content\";\nexport * from \"./csp\";\nexport * from \"./entrypoint\";\nexport * from \"./env\";\nexport * from \"./icon\";\nexport * from \"./manifest\";\nexport * from \"./offscreen\";\nexport * from \"./options\";\nexport * from \"./override\";\nexport * from \"./page\";\nexport * from \"./permissions\";\nexport * from \"./plugin\";\nexport * from \"./popup\";\nexport * from \"./relay\";\nexport * from \"./sandbox\";\nexport * from \"./service\";\nexport * from \"./sidebar\";\nexport * from \"./view\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { BookmarksDefinition, BookmarksProps, HistoryDefinition, HistoryProps, NewtabDefinition, NewtabProps } from "../types/override.js";
2
+ export type { NewtabDefinition, NewtabProps, BookmarksDefinition, BookmarksProps, HistoryDefinition, HistoryProps };
3
+ export declare const defineNewtab: (options: NewtabDefinition) => NewtabDefinition;
4
+ export declare const defineBookmarks: (options: BookmarksDefinition) => BookmarksDefinition;
5
+ export declare const defineHistory: (options: HistoryDefinition) => HistoryDefinition;
@@ -0,0 +1,15 @@
1
+ const defineNewtab = (options) => {
2
+ return options;
3
+ };
4
+ const defineBookmarks = (options) => {
5
+ return options;
6
+ };
7
+ const defineHistory = (options) => {
8
+ return options;
9
+ };
10
+ export {
11
+ defineBookmarks,
12
+ defineHistory,
13
+ defineNewtab
14
+ };
15
+ //# sourceMappingURL=override.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/main/override.ts"],"sourcesContent":["import {\n BookmarksDefinition,\n BookmarksProps,\n HistoryDefinition,\n HistoryProps,\n NewtabDefinition,\n NewtabProps,\n} from \"@typing/override\";\n\nexport type {NewtabDefinition, NewtabProps, BookmarksDefinition, BookmarksProps, HistoryDefinition, HistoryProps};\n\nexport const defineNewtab = (options: NewtabDefinition): NewtabDefinition => {\n return options;\n};\n\nexport const defineBookmarks = (options: BookmarksDefinition): BookmarksDefinition => {\n return options;\n};\n\nexport const defineHistory = (options: HistoryDefinition): HistoryDefinition => {\n return options;\n};\n"],"mappings":"AAWO,MAAM,eAAe,CAAC,YAAgD;AACzE,SAAO;AACX;AAEO,MAAM,kBAAkB,CAAC,YAAsD;AAClF,SAAO;AACX;AAEO,MAAM,gBAAgB,CAAC,YAAkD;AAC5E,SAAO;AACX;","names":[]}
@@ -0,0 +1 @@
1
+ export type { PermissionsOptions } from "../types/permissions.js";
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=permissions.js.map
@@ -3,6 +3,7 @@ import type { ContentScriptIsolation } from "../types/content/index.js";
3
3
  import { RelayDefinition, RelayAllFrames, RelayFrameErrorKind, RelayMethod, type RelayBatchOptions, type RelayBatchProxyTarget, type RelayName, type RelayProxyTarget, type RelayScalarOptions } from "../types/relay.js";
4
4
  export { RelayAllFrames, RelayFrameErrorKind, RelayMethod };
5
5
  export { RelayDiscoveryError } from "../relay/discovery/RelayDiscovery.js";
6
+ export { RelayProtocolError } from "../relay/result.js";
6
7
  export type { RelayAllFramesOptions, RelayAnyFramesOptions, RelayBatchOptions, RelayBatchProxyTarget, RelayBatchRpcProxy, RelayCallOptions, RelayDocumentOptions, RelayDocumentsOptions, RelayExecutionOptions, RelayEveryFrameOptions, RelayFrameError, RelayFrameOptions, RelayFrameResult, RelayFramesOptions, RelayFramesResult, RelayNonEmptyReadonlyArray, RelayProxyTarget, RelayResultTarget, RelayScalarOptions, RelayTopFrameOptions, RelayDefinition, } from "../types/relay.js";
7
8
  export declare const defineRelay: <T extends TransportType, Data = undefined, const Isolation extends `${ContentScriptIsolation}` = "none">(options: RelayDefinition<T, Data, Isolation>) => RelayDefinition<T, Data, Isolation>;
8
9
  export declare function getRelay<N extends RelayName>(name: N, params: number | RelayScalarOptions): RelayProxyTarget<N>;
@@ -7,6 +7,7 @@ import {
7
7
  RelayMethod
8
8
  } from "./../types/relay.js";
9
9
  import { RelayDiscoveryError } from "./../relay/discovery/RelayDiscovery.js";
10
+ import { RelayProtocolError } from "./../relay/result.js";
10
11
  const defineRelay = (options) => {
11
12
  return options;
12
13
  };
@@ -32,6 +33,7 @@ export {
32
33
  RelayDiscoveryError,
33
34
  RelayFrameErrorKind,
34
35
  RelayMethod,
36
+ RelayProtocolError,
35
37
  defineRelay,
36
38
  getRelay
37
39
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/main/relay.ts"],"sourcesContent":["import RelayPermission from \"@relay/RelayPermission\";\nimport {ProxyRelay, type ProxyRelayParams} from \"@relay/providers\";\nimport {options as relayOptions} from \"#adnbn/relay\";\n\nimport type {TransportType} from \"@typing/transport\";\nimport type {ContentScriptIsolation} from \"@typing/content\";\n\nimport {\n RelayDefinition,\n RelayAllFrames,\n RelayFrameErrorKind,\n RelayMethod,\n RelayOptionsMap,\n type RelayBatchOptions,\n type RelayBatchProxyTarget,\n type RelayName,\n type RelayProxyTarget,\n type RelayScalarOptions,\n} from \"@typing/relay\";\n\nexport {RelayAllFrames, RelayFrameErrorKind, RelayMethod};\nexport {RelayDiscoveryError} from \"@relay/discovery/RelayDiscovery\";\n\nexport type {\n RelayAllFramesOptions,\n RelayAnyFramesOptions,\n RelayBatchOptions,\n RelayBatchProxyTarget,\n RelayBatchRpcProxy,\n RelayCallOptions,\n RelayDocumentOptions,\n RelayDocumentsOptions,\n RelayExecutionOptions,\n RelayEveryFrameOptions,\n RelayFrameError,\n RelayFrameOptions,\n RelayFrameResult,\n RelayFramesOptions,\n RelayFramesResult,\n RelayNonEmptyReadonlyArray,\n RelayProxyTarget,\n RelayResultTarget,\n RelayScalarOptions,\n RelayTopFrameOptions,\n RelayDefinition,\n} from \"@typing/relay\";\n\nexport const defineRelay = <\n T extends TransportType,\n Data = undefined,\n const Isolation extends `${ContentScriptIsolation}` = \"none\",\n>(\n options: RelayDefinition<T, Data, Isolation>\n): RelayDefinition<T, Data, Isolation> => {\n return options;\n};\n\nconst getRelayOptionsMap = (): RelayOptionsMap => {\n const relays: RelayOptionsMap = new Map();\n\n try {\n Object.entries(relayOptions).forEach(([name, options]) => relays.set(name, options));\n } catch (e) {\n console.error(\"Failed getting relays: \", e);\n }\n\n return relays;\n};\n\nexport function getRelay<N extends RelayName>(name: N, params: number | RelayScalarOptions): RelayProxyTarget<N>;\n\nexport function getRelay<N extends RelayName>(name: N, params: RelayBatchOptions): RelayBatchProxyTarget<N>;\n\nexport function getRelay<N extends RelayName>(\n name: N,\n params: ProxyRelayParams\n): RelayProxyTarget<N> | RelayBatchProxyTarget<N> {\n const relays = getRelayOptionsMap();\n const options = relays.get(name);\n\n if (!options) {\n throw new Error(`Failed to get relay \"${name}\"`);\n }\n\n return new ProxyRelay(name, options, params, RelayPermission.getInstance(relays)).get() as\n | RelayProxyTarget<N>\n | RelayBatchProxyTarget<N>;\n}\n"],"mappings":"AAAA,OAAO,qBAAqB;AAC5B,SAAQ,kBAAwC;AAChD,SAAQ,WAAW,oBAAmB;AAKtC;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,OAOG;AAGP,SAAQ,2BAA0B;AA0B3B,MAAM,cAAc,CAKvB,YACsC;AACtC,SAAO;AACX;AAEA,MAAM,qBAAqB,MAAuB;AAC9C,QAAM,SAA0B,oBAAI,IAAI;AAExC,MAAI;AACA,WAAO,QAAQ,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,OAAO,MAAM,OAAO,IAAI,MAAM,OAAO,CAAC;AAAA,EACvF,SAAS,GAAG;AACR,YAAQ,MAAM,2BAA2B,CAAC;AAAA,EAC9C;AAEA,SAAO;AACX;AAMO,SAAS,SACZ,MACA,QAC8C;AAC9C,QAAM,SAAS,mBAAmB;AAClC,QAAM,UAAU,OAAO,IAAI,IAAI;AAE/B,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,MAAM,wBAAwB,IAAI,GAAG;AAAA,EACnD;AAEA,SAAO,IAAI,WAAW,MAAM,SAAS,QAAQ,gBAAgB,YAAY,MAAM,CAAC,EAAE,IAAI;AAG1F;","names":[]}
1
+ {"version":3,"sources":["../../src/main/relay.ts"],"sourcesContent":["import RelayPermission from \"@relay/RelayPermission\";\nimport {ProxyRelay, type ProxyRelayParams} from \"@relay/providers\";\nimport {options as relayOptions} from \"#adnbn/relay\";\n\nimport type {TransportType} from \"@typing/transport\";\nimport type {ContentScriptIsolation} from \"@typing/content\";\n\nimport {\n RelayDefinition,\n RelayAllFrames,\n RelayFrameErrorKind,\n RelayMethod,\n RelayOptionsMap,\n type RelayBatchOptions,\n type RelayBatchProxyTarget,\n type RelayName,\n type RelayProxyTarget,\n type RelayScalarOptions,\n} from \"@typing/relay\";\n\nexport {RelayAllFrames, RelayFrameErrorKind, RelayMethod};\nexport {RelayDiscoveryError} from \"@relay/discovery/RelayDiscovery\";\nexport {RelayProtocolError} from \"@relay/result\";\n\nexport type {\n RelayAllFramesOptions,\n RelayAnyFramesOptions,\n RelayBatchOptions,\n RelayBatchProxyTarget,\n RelayBatchRpcProxy,\n RelayCallOptions,\n RelayDocumentOptions,\n RelayDocumentsOptions,\n RelayExecutionOptions,\n RelayEveryFrameOptions,\n RelayFrameError,\n RelayFrameOptions,\n RelayFrameResult,\n RelayFramesOptions,\n RelayFramesResult,\n RelayNonEmptyReadonlyArray,\n RelayProxyTarget,\n RelayResultTarget,\n RelayScalarOptions,\n RelayTopFrameOptions,\n RelayDefinition,\n} from \"@typing/relay\";\n\nexport const defineRelay = <\n T extends TransportType,\n Data = undefined,\n const Isolation extends `${ContentScriptIsolation}` = \"none\",\n>(\n options: RelayDefinition<T, Data, Isolation>\n): RelayDefinition<T, Data, Isolation> => {\n return options;\n};\n\nconst getRelayOptionsMap = (): RelayOptionsMap => {\n const relays: RelayOptionsMap = new Map();\n\n try {\n Object.entries(relayOptions).forEach(([name, options]) => relays.set(name, options));\n } catch (e) {\n console.error(\"Failed getting relays: \", e);\n }\n\n return relays;\n};\n\nexport function getRelay<N extends RelayName>(name: N, params: number | RelayScalarOptions): RelayProxyTarget<N>;\n\nexport function getRelay<N extends RelayName>(name: N, params: RelayBatchOptions): RelayBatchProxyTarget<N>;\n\nexport function getRelay<N extends RelayName>(\n name: N,\n params: ProxyRelayParams\n): RelayProxyTarget<N> | RelayBatchProxyTarget<N> {\n const relays = getRelayOptionsMap();\n const options = relays.get(name);\n\n if (!options) {\n throw new Error(`Failed to get relay \"${name}\"`);\n }\n\n return new ProxyRelay(name, options, params, RelayPermission.getInstance(relays)).get() as\n | RelayProxyTarget<N>\n | RelayBatchProxyTarget<N>;\n}\n"],"mappings":"AAAA,OAAO,qBAAqB;AAC5B,SAAQ,kBAAwC;AAChD,SAAQ,WAAW,oBAAmB;AAKtC;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,OAOG;AAGP,SAAQ,2BAA0B;AAClC,SAAQ,0BAAyB;AA0B1B,MAAM,cAAc,CAKvB,YACsC;AACtC,SAAO;AACX;AAEA,MAAM,qBAAqB,MAAuB;AAC9C,QAAM,SAA0B,oBAAI,IAAI;AAExC,MAAI;AACA,WAAO,QAAQ,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,OAAO,MAAM,OAAO,IAAI,MAAM,OAAO,CAAC;AAAA,EACvF,SAAS,GAAG;AACR,YAAQ,MAAM,2BAA2B,CAAC;AAAA,EAC9C;AAEA,SAAO;AACX;AAMO,SAAS,SACZ,MACA,QAC8C;AAC9C,QAAM,SAAS,mBAAmB;AAClC,QAAM,UAAU,OAAO,IAAI,IAAI;AAE/B,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,MAAM,wBAAwB,IAAI,GAAG;AAAA,EACnD;AAEA,SAAO,IAAI,WAAW,MAAM,SAAS,QAAQ,gBAAgB,YAAY,MAAM,CAAC,EAAE,IAAI;AAG1F;","names":[]}
@@ -1 +1 @@
1
- export type { ViewDefinition, ViewOptions } from "../types/view.js";
1
+ export type { ViewDefinition, ViewOptions, ViewReactRenderValue, ViewRenderHandler, ViewRenderReactComponent, ViewRenderValue, ViewVanillaRenderValue, } from "../types/view/index.js";
@@ -1 +1 @@
1
- export { default as useMessageHandler } from "./useMessageHandler.js";
1
+ export { default as useMessageHandler } from "./use-message-handler.js";
@@ -1,4 +1,4 @@
1
- import { default as default2 } from "./useMessageHandler.js";
1
+ import { default as default2 } from "./use-message-handler.js";
2
2
  export {
3
3
  default2 as useMessageHandler
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/message/adapters/react/index.ts"],"sourcesContent":["export {default as useMessageHandler} from \"./useMessageHandler\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAAmC;","names":["default"]}
1
+ {"version":3,"sources":["../../../../src/message/adapters/react/index.ts"],"sourcesContent":["export {default as useMessageHandler} from \"./use-message-handler\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAAmC;","names":["default"]}
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useRef } from "react";
1
+ import { useCallback, useLayoutEffect, useRef } from "react";
2
2
  import { Message } from "./../../../message/providers/index.js";
3
3
  function useMessageHandler(type, handler) {
4
4
  const messageRef = useRef(null);
@@ -6,15 +6,17 @@ function useMessageHandler(type, handler) {
6
6
  messageRef.current = Message.getInstance();
7
7
  }
8
8
  const handlerRef = useRef(handler);
9
- handlerRef.current = handler;
9
+ useLayoutEffect(() => {
10
+ handlerRef.current = handler;
11
+ }, [handler]);
10
12
  const stableWrapper = useCallback((data, sender) => {
11
13
  return handlerRef.current(data, sender);
12
14
  }, []);
13
- useEffect(() => {
15
+ useLayoutEffect(() => {
14
16
  return messageRef.current.watch(type, stableWrapper);
15
17
  }, [type, stableWrapper]);
16
18
  }
17
19
  export {
18
20
  useMessageHandler as default
19
21
  };
20
- //# sourceMappingURL=useMessageHandler.js.map
22
+ //# sourceMappingURL=use-message-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/message/adapters/react/use-message-handler.ts"],"sourcesContent":["import {useCallback, useLayoutEffect, useRef} from \"react\";\nimport {MessageDictionary, MessageTargetHandler, MessageType} from \"@typing/message\";\n\nimport {Message} from \"@message/providers\";\n\nexport default function useMessageHandler<K extends MessageType<T>, T extends MessageDictionary = MessageDictionary>(\n type: K,\n handler: MessageTargetHandler<T, K>\n): void {\n const messageRef = useRef<Message<T> | null>(null);\n\n if (!messageRef.current) {\n messageRef.current = Message.getInstance<T>();\n }\n\n const handlerRef = useRef(handler);\n\n useLayoutEffect(() => {\n // A suspended or abandoned render must not replace the active handler.\n handlerRef.current = handler;\n }, [handler]);\n\n const stableWrapper = useCallback<MessageTargetHandler<T, K>>((data, sender) => {\n return handlerRef.current(data, sender);\n }, []);\n\n useLayoutEffect(() => {\n return messageRef.current!.watch(type, stableWrapper);\n }, [type, stableWrapper]);\n}\n"],"mappings":"AAAA,SAAQ,aAAa,iBAAiB,cAAa;AAGnD,SAAQ,eAAc;AAEP,SAAR,kBACH,MACA,SACI;AACJ,QAAM,aAAa,OAA0B,IAAI;AAEjD,MAAI,CAAC,WAAW,SAAS;AACrB,eAAW,UAAU,QAAQ,YAAe;AAAA,EAChD;AAEA,QAAM,aAAa,OAAO,OAAO;AAEjC,kBAAgB,MAAM;AAElB,eAAW,UAAU;AAAA,EACzB,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,gBAAgB,YAAwC,CAAC,MAAM,WAAW;AAC5E,WAAO,WAAW,QAAQ,MAAM,MAAM;AAAA,EAC1C,GAAG,CAAC,CAAC;AAEL,kBAAgB,MAAM;AAClB,WAAO,WAAW,QAAS,MAAM,MAAM,aAAa;AAAA,EACxD,GAAG,CAAC,MAAM,aAAa,CAAC;AAC5B;","names":[]}
@@ -9,7 +9,8 @@ class MapHandler extends AbstractHandler {
9
9
  const handler = this.map[type];
10
10
  if (handler) {
11
11
  if (typeof handler === "function") {
12
- return handler(data, sender) || null;
12
+ const result = handler(data, sender);
13
+ return result === void 0 ? null : result;
13
14
  } else {
14
15
  throw new Error(`Handler for type "${type}" in object of handlers must be a function`);
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/message/handlers/MapHandler.ts"],"sourcesContent":["import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageMapHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MapHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(private map: MessageMapHandler<T>) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined | null {\n const handler = this.map[type];\n\n if (handler) {\n if (typeof handler === \"function\") {\n return handler(data, sender) || null;\n } else {\n throw new Error(`Handler for type \"${type}\" in object of handlers must be a function`);\n }\n }\n }\n}\n"],"mappings":"AAAA,OAAO,qBAAqB;AAU5B,MAAO,mBAA8D,gBAAmB;AAAA,EACpF,YAAoB,KAA2B;AAC3C,UAAM;AADU;AAAA,EAEpB;AAAA,EAFoB;AAAA,EAIb,IACH,MACA,MACA,QACqD;AACrD,UAAM,UAAU,KAAK,IAAI,IAAI;AAE7B,QAAI,SAAS;AACT,UAAI,OAAO,YAAY,YAAY;AAC/B,eAAO,QAAQ,MAAM,MAAM,KAAK;AAAA,MACpC,OAAO;AACH,cAAM,IAAI,MAAM,qBAAqB,IAAI,4CAA4C;AAAA,MACzF;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/message/handlers/MapHandler.ts"],"sourcesContent":["import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageMapHandler,\n MessageResponse,\n MessageSender,\n MessageType,\n} from \"@typing/message\";\n\nexport default class MapHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(private map: MessageMapHandler<T>) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined | null {\n const handler = this.map[type];\n\n if (handler) {\n if (typeof handler === \"function\") {\n const result = handler(data, sender);\n\n return result === undefined ? null : result;\n } else {\n throw new Error(`Handler for type \"${type}\" in object of handlers must be a function`);\n }\n }\n }\n}\n"],"mappings":"AAAA,OAAO,qBAAqB;AAU5B,MAAO,mBAA8D,gBAAmB;AAAA,EACpF,YAAoB,KAA2B;AAC3C,UAAM;AADU;AAAA,EAEpB;AAAA,EAFoB;AAAA,EAIb,IACH,MACA,MACA,QACqD;AACrD,UAAM,UAAU,KAAK,IAAI,IAAI;AAE7B,QAAI,SAAS;AACT,UAAI,OAAO,YAAY,YAAY;AAC/B,cAAM,SAAS,QAAQ,MAAM,MAAM;AAEnC,eAAO,WAAW,SAAY,OAAO;AAAA,MACzC,OAAO;AACH,cAAM,IAAI,MAAM,qBAAqB,IAAI,4CAA4C;AAAA,MACzF;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
@@ -9,7 +9,8 @@ class SingleHandler extends AbstractHandler {
9
9
  handler;
10
10
  run(type, data, sender) {
11
11
  if (type === this.messageType) {
12
- return this.handler(data, sender) || null;
12
+ const result = this.handler(data, sender);
13
+ return result === void 0 ? null : result;
13
14
  }
14
15
  }
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/message/handlers/SingleHandler.ts"],"sourcesContent":["import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageResponse,\n MessageSender,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default class SingleHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(\n private messageType: MessageType<T>,\n private handler: MessageTargetHandler<T, MessageType<T>>\n ) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined | null {\n if (type === this.messageType) {\n return this.handler(data, sender) || null;\n }\n }\n}\n"],"mappings":"AAAA,OAAO,qBAAqB;AAU5B,MAAO,sBAAiE,gBAAmB;AAAA,EACvF,YACY,aACA,SACV;AACE,UAAM;AAHE;AACA;AAAA,EAGZ;AAAA,EAJY;AAAA,EACA;AAAA,EAKL,IACH,MACA,MACA,QACqD;AACrD,QAAI,SAAS,KAAK,aAAa;AAC3B,aAAO,KAAK,QAAQ,MAAM,MAAM,KAAK;AAAA,IACzC;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/message/handlers/SingleHandler.ts"],"sourcesContent":["import AbstractHandler from \"./AbstractHandler\";\nimport {\n MessageData,\n MessageDictionary,\n MessageResponse,\n MessageSender,\n MessageTargetHandler,\n MessageType,\n} from \"@typing/message\";\n\nexport default class SingleHandler<T extends MessageDictionary> extends AbstractHandler<T> {\n constructor(\n private messageType: MessageType<T>,\n private handler: MessageTargetHandler<T, MessageType<T>>\n ) {\n super();\n }\n\n public run(\n type: MessageType<T>,\n data: MessageData<T, MessageType<T>>,\n sender: MessageSender\n ): MessageResponse<T, MessageType<T>> | undefined | null {\n if (type === this.messageType) {\n const result = this.handler(data, sender);\n\n return result === undefined ? null : result;\n }\n }\n}\n"],"mappings":"AAAA,OAAO,qBAAqB;AAU5B,MAAO,sBAAiE,gBAAmB;AAAA,EACvF,YACY,aACA,SACV;AACE,UAAM;AAHE;AACA;AAAA,EAGZ;AAAA,EAJY;AAAA,EACA;AAAA,EAKL,IACH,MACA,MACA,QACqD;AACrD,QAAI,SAAS,KAAK,aAAa;AAC3B,YAAM,SAAS,KAAK,QAAQ,MAAM,MAAM;AAExC,aAAO,WAAW,SAAY,OAAO;AAAA,IACzC;AAAA,EACJ;AACJ;","names":[]}