adnbn 0.4.2 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/dist/cli/builders/app/index.d.ts +2 -2
  2. package/dist/cli/builders/locale/index.d.ts +2 -2
  3. package/dist/cli/builders/manifest/ManifestBase.d.ts +1 -1
  4. package/dist/cli/builders/manifest/ManifestV2.d.ts +1 -1
  5. package/dist/cli/builders/manifest/ManifestV3.d.ts +1 -1
  6. package/dist/cli/builders/manifest/index.d.ts +2 -2
  7. package/dist/cli/builders/manifest/utils.d.ts +1 -1
  8. package/dist/cli/bundler/index.d.ts +1 -1
  9. package/dist/cli/bundler/plugins/EntrypointPlugin.d.ts +1 -1
  10. package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +1 -1
  11. package/dist/cli/bundler/plugins/index.d.ts +1 -1
  12. package/dist/cli/bundler/utils/optimization.js +3 -1
  13. package/dist/cli/bundler/utils/optimization.js.map +1 -1
  14. package/dist/cli/entrypoint/file/ExpressionFile.d.ts +1 -0
  15. package/dist/cli/entrypoint/file/ExpressionFile.js +29 -20
  16. package/dist/cli/entrypoint/file/ExpressionFile.js.map +1 -1
  17. package/dist/cli/entrypoint/file/SourceFile.js +2 -1
  18. package/dist/cli/entrypoint/file/SourceFile.js.map +1 -1
  19. package/dist/cli/entrypoint/file/injectors/core.js +9 -1
  20. package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
  21. package/dist/cli/entrypoint/finder/AbstractAssetFinder.d.ts +2 -2
  22. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.d.ts +2 -2
  23. package/dist/cli/entrypoint/finder/AbstractFinder.d.ts +2 -2
  24. package/dist/cli/entrypoint/finder/AbstractOptionsFinder.d.ts +2 -2
  25. package/dist/cli/entrypoint/finder/AbstractPluginFinder.d.ts +2 -2
  26. package/dist/cli/entrypoint/finder/AbstractTransportFinder.d.ts +2 -2
  27. package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +2 -2
  28. package/dist/cli/entrypoint/finder/AssetPluginFinder.d.ts +2 -2
  29. package/dist/cli/entrypoint/finder/BackgroundFinder.d.ts +2 -2
  30. package/dist/cli/entrypoint/finder/CommandFinder.d.ts +2 -2
  31. package/dist/cli/entrypoint/finder/ContentFinder.d.ts +2 -2
  32. package/dist/cli/entrypoint/finder/IconFinder.d.ts +2 -2
  33. package/dist/cli/entrypoint/finder/LocaleFinder.d.ts +2 -2
  34. package/dist/cli/entrypoint/finder/OffscreenFinder.d.ts +2 -2
  35. package/dist/cli/entrypoint/finder/OffscreenViewFinder.d.ts +2 -2
  36. package/dist/cli/entrypoint/finder/PageFinder.d.ts +2 -2
  37. package/dist/cli/entrypoint/finder/PluginFinder.d.ts +2 -2
  38. package/dist/cli/entrypoint/finder/PopupFinder.d.ts +2 -2
  39. package/dist/cli/entrypoint/finder/RelayFinder.d.ts +2 -2
  40. package/dist/cli/entrypoint/finder/ServiceFinder.d.ts +2 -2
  41. package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +2 -2
  42. package/dist/cli/entrypoint/finder/index.d.ts +2 -2
  43. package/dist/cli/entrypoint/index.d.ts +2 -2
  44. package/dist/cli/entrypoint/name/InlineNameGenerator.d.ts +1 -1
  45. package/dist/cli/entrypoint/name/NameGenerator.d.ts +1 -1
  46. package/dist/cli/entrypoint/name/index.d.ts +1 -1
  47. package/dist/cli/entrypoint/parser/AbstractParser.d.ts +2 -2
  48. package/dist/cli/entrypoint/parser/BackgroundParser.d.ts +2 -2
  49. package/dist/cli/entrypoint/parser/CommandParser.d.ts +2 -2
  50. package/dist/cli/entrypoint/parser/ContentParser.d.ts +2 -2
  51. package/dist/cli/entrypoint/parser/ContentParser.js +7 -2
  52. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  53. package/dist/cli/entrypoint/parser/OffscreenParser.d.ts +2 -2
  54. package/dist/cli/entrypoint/parser/PageParser.d.ts +2 -2
  55. package/dist/cli/entrypoint/parser/PopupParser.d.ts +2 -2
  56. package/dist/cli/entrypoint/parser/RelayParser.d.ts +2 -2
  57. package/dist/cli/entrypoint/parser/ServiceParser.d.ts +2 -2
  58. package/dist/cli/entrypoint/parser/SidebarParser.d.ts +2 -2
  59. package/dist/cli/entrypoint/parser/ViewParser.d.ts +2 -2
  60. package/dist/cli/entrypoint/parser/index.d.ts +2 -2
  61. package/dist/cli/entrypoint/utils/framework.d.ts +1 -1
  62. package/dist/cli/entrypoint/utils/index.d.ts +1 -1
  63. package/dist/cli/plugins/asset.d.ts +2 -2
  64. package/dist/cli/plugins/background/Background.d.ts +2 -2
  65. package/dist/cli/plugins/background/BackgroundEntry.d.ts +2 -2
  66. package/dist/cli/plugins/background/BackgroundManifest.d.ts +2 -2
  67. package/dist/cli/plugins/background/Command.d.ts +2 -2
  68. package/dist/cli/plugins/background/Service.d.ts +2 -2
  69. package/dist/cli/plugins/background/ServiceDeclaration.d.ts +2 -2
  70. package/dist/cli/plugins/background/index.d.ts +2 -2
  71. package/dist/cli/plugins/bundler.d.ts +2 -2
  72. package/dist/cli/plugins/content/Content.d.ts +2 -2
  73. package/dist/cli/plugins/content/ContentDriver.d.ts +2 -2
  74. package/dist/cli/plugins/content/ContentManager.d.ts +2 -2
  75. package/dist/cli/plugins/content/ContentName.d.ts +2 -2
  76. package/dist/cli/plugins/content/Relay.d.ts +2 -2
  77. package/dist/cli/plugins/content/RelayDeclaration.d.ts +2 -2
  78. package/dist/cli/plugins/content/index.d.ts +2 -2
  79. package/dist/cli/plugins/content/types.d.ts +1 -1
  80. package/dist/cli/plugins/content/utils.d.ts +1 -1
  81. package/dist/cli/plugins/dotenv/index.d.ts +2 -2
  82. package/dist/cli/plugins/html.d.ts +2 -2
  83. package/dist/cli/plugins/icon/Icon.d.ts +2 -2
  84. package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +2 -2
  85. package/dist/cli/plugins/icon/declaration/index.d.ts +2 -2
  86. package/dist/cli/plugins/icon/index.d.ts +2 -2
  87. package/dist/cli/plugins/index.d.ts +2 -2
  88. package/dist/cli/plugins/locale/Locale.d.ts +2 -2
  89. package/dist/cli/plugins/locale/declaration/LocaleDeclaration.d.ts +2 -2
  90. package/dist/cli/plugins/locale/declaration/index.d.ts +2 -2
  91. package/dist/cli/plugins/locale/index.d.ts +2 -2
  92. package/dist/cli/plugins/meta/AbstractMeta.d.ts +2 -2
  93. package/dist/cli/plugins/meta/Author.d.ts +2 -2
  94. package/dist/cli/plugins/meta/Email.d.ts +2 -2
  95. package/dist/cli/plugins/meta/Homepage.d.ts +2 -2
  96. package/dist/cli/plugins/meta/Incognito.d.ts +2 -2
  97. package/dist/cli/plugins/meta/index.d.ts +2 -2
  98. package/dist/cli/plugins/offscreen/Offscreen.d.ts +2 -2
  99. package/dist/cli/plugins/offscreen/OffscreenDeclaration.d.ts +2 -2
  100. package/dist/cli/plugins/offscreen/index.d.ts +2 -2
  101. package/dist/cli/plugins/optimization.d.ts +2 -2
  102. package/dist/cli/plugins/output.d.ts +2 -2
  103. package/dist/cli/plugins/page/Page.d.ts +2 -2
  104. package/dist/cli/plugins/page/declaration/PageDeclaration.d.ts +2 -2
  105. package/dist/cli/plugins/page/declaration/index.d.ts +2 -2
  106. package/dist/cli/plugins/page/index.d.ts +2 -2
  107. package/dist/cli/plugins/popup/Popup.d.ts +2 -2
  108. package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +2 -2
  109. package/dist/cli/plugins/popup/declaration/index.d.ts +2 -2
  110. package/dist/cli/plugins/popup/index.d.ts +2 -2
  111. package/dist/cli/plugins/public.d.ts +2 -2
  112. package/dist/cli/plugins/react.d.ts +2 -2
  113. package/dist/cli/plugins/sidebar/Sidebar.d.ts +2 -2
  114. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +2 -2
  115. package/dist/cli/plugins/sidebar/declaration/index.d.ts +2 -2
  116. package/dist/cli/plugins/sidebar/index.d.ts +2 -2
  117. package/dist/cli/plugins/style.d.ts +2 -2
  118. package/dist/cli/plugins/typescript/FileBuilder.d.ts +2 -2
  119. package/dist/cli/plugins/typescript/TypescriptConfig.d.ts +2 -2
  120. package/dist/cli/plugins/typescript/declaration/index.d.ts +2 -2
  121. package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.d.ts +2 -2
  122. package/dist/cli/plugins/typescript/declaration/transport/index.d.ts +2 -2
  123. package/dist/cli/plugins/typescript/declaration/vendor/VendorDeclaration.d.ts +2 -2
  124. package/dist/cli/plugins/typescript/declaration/vendor/index.d.ts +2 -2
  125. package/dist/cli/plugins/typescript/index.d.ts +2 -2
  126. package/dist/cli/plugins/version/AbstractVersion.d.ts +2 -2
  127. package/dist/cli/plugins/version/AddonVersion.d.ts +2 -2
  128. package/dist/cli/plugins/version/BrowserMinimumVersion.d.ts +2 -2
  129. package/dist/cli/plugins/version/index.d.ts +2 -2
  130. package/dist/cli/plugins/view/View.d.ts +2 -2
  131. package/dist/cli/plugins/view/index.d.ts +2 -2
  132. package/dist/cli/resolvers/bundler.d.ts +2 -2
  133. package/dist/cli/resolvers/config.d.ts +2 -2
  134. package/dist/cli/resolvers/path.d.ts +2 -2
  135. package/dist/cli/resolvers/plugin.d.ts +2 -2
  136. package/dist/{config-DwvfY9v8.d.ts → config-BChBSE68.d.ts} +1 -1
  137. package/dist/entry/background/Builder.d.ts +1 -1
  138. package/dist/entry/background/index.d.ts +1 -1
  139. package/dist/entry/background/resolvers/definition.d.ts +1 -1
  140. package/dist/entry/background/resolvers/index.d.ts +1 -1
  141. package/dist/entry/command/Builder.d.ts +1 -1
  142. package/dist/entry/command/index.d.ts +1 -1
  143. package/dist/entry/command/resolvers/definition.d.ts +1 -1
  144. package/dist/entry/command/resolvers/index.d.ts +1 -1
  145. package/dist/entry/content/adapters/react/Builder.d.ts +1 -1
  146. package/dist/entry/content/adapters/react/Node.d.ts +1 -1
  147. package/dist/entry/content/adapters/react/index.d.ts +1 -1
  148. package/dist/entry/content/adapters/react/resolvers/index.d.ts +1 -1
  149. package/dist/entry/content/adapters/react/resolvers/render.d.ts +1 -1
  150. package/dist/entry/content/adapters/vanilla/Builder.d.ts +1 -1
  151. package/dist/entry/content/adapters/vanilla/Node.d.ts +1 -1
  152. package/dist/entry/content/adapters/vanilla/index.d.ts +1 -1
  153. package/dist/entry/content/core/AbstractMarker.d.ts +29 -0
  154. package/dist/entry/content/core/AbstractMarker.js +71 -0
  155. package/dist/entry/content/core/AbstractMarker.js.map +1 -0
  156. package/dist/entry/content/core/AttributeMarker.d.ts +21 -0
  157. package/dist/entry/content/core/AttributeMarker.js +36 -0
  158. package/dist/entry/content/core/AttributeMarker.js.map +1 -0
  159. package/dist/entry/content/core/Builder.d.ts +5 -3
  160. package/dist/entry/content/core/Builder.js +39 -8
  161. package/dist/entry/content/core/Builder.js.map +1 -1
  162. package/dist/entry/content/core/Context.d.ts +1 -1
  163. package/dist/entry/content/core/EventEmitter.d.ts +1 -1
  164. package/dist/entry/content/core/EventNode.d.ts +1 -1
  165. package/dist/entry/content/core/ManagedContext.d.ts +1 -1
  166. package/dist/entry/content/core/MarkerNode.d.ts +19 -0
  167. package/dist/entry/content/core/MarkerNode.js +24 -0
  168. package/dist/entry/content/core/MarkerNode.js.map +1 -0
  169. package/dist/entry/content/core/MountBuilder.d.ts +1 -1
  170. package/dist/entry/content/core/MountBuilder.js +2 -1
  171. package/dist/entry/content/core/MountBuilder.js.map +1 -1
  172. package/dist/entry/content/core/MountNode.d.ts +1 -1
  173. package/dist/entry/content/core/Node.d.ts +1 -4
  174. package/dist/entry/content/core/Node.js +0 -19
  175. package/dist/entry/content/core/Node.js.map +1 -1
  176. package/dist/entry/content/core/WeakMarker.d.ts +20 -0
  177. package/dist/entry/content/core/WeakMarker.js +32 -0
  178. package/dist/entry/content/core/WeakMarker.js.map +1 -0
  179. package/dist/entry/content/core/resolvers/anchor.d.ts +3 -4
  180. package/dist/entry/content/core/resolvers/anchor.js +2 -30
  181. package/dist/entry/content/core/resolvers/anchor.js.map +1 -1
  182. package/dist/entry/content/core/resolvers/container.d.ts +1 -1
  183. package/dist/entry/content/core/resolvers/definition.d.ts +1 -1
  184. package/dist/entry/content/core/resolvers/definition.js +1 -1
  185. package/dist/entry/content/core/resolvers/definition.js.map +1 -1
  186. package/dist/entry/content/core/resolvers/index.d.ts +2 -2
  187. package/dist/entry/content/core/resolvers/mount.d.ts +1 -1
  188. package/dist/entry/content/core/resolvers/render.d.ts +1 -1
  189. package/dist/entry/content/core/resolvers/watch.d.ts +1 -1
  190. package/dist/entry/content/index.d.ts +1 -1
  191. package/dist/entry/core/Builder.d.ts +1 -1
  192. package/dist/entry/offscreen/Builder.d.ts +1 -1
  193. package/dist/entry/offscreen/TransportBuilder.d.ts +1 -1
  194. package/dist/entry/offscreen/index.d.ts +1 -1
  195. package/dist/entry/relay/Builder.d.ts +1 -1
  196. package/dist/entry/relay/TransportBuilder.d.ts +1 -1
  197. package/dist/entry/relay/index.d.ts +1 -1
  198. package/dist/entry/service/Builder.d.ts +1 -1
  199. package/dist/entry/service/index.d.ts +1 -1
  200. package/dist/entry/transport/AbstractBuilder.d.ts +1 -1
  201. package/dist/entry/transport/index.d.ts +1 -1
  202. package/dist/entry/transport/resolvers/definition.d.ts +1 -1
  203. package/dist/entry/transport/resolvers/index.d.ts +1 -1
  204. package/dist/entry/view/adapters/react/Builder.d.ts +1 -1
  205. package/dist/entry/view/adapters/react/index.d.ts +1 -1
  206. package/dist/entry/view/adapters/react/resolvers/render.d.ts +1 -1
  207. package/dist/entry/view/adapters/vanilla/Builder.d.ts +1 -1
  208. package/dist/entry/view/adapters/vanilla/index.d.ts +1 -1
  209. package/dist/entry/view/core/Builder.d.ts +1 -1
  210. package/dist/entry/view/core/resolvers/container.d.ts +1 -1
  211. package/dist/entry/view/core/resolvers/definition.d.ts +1 -1
  212. package/dist/entry/view/core/resolvers/render.d.ts +1 -1
  213. package/dist/entry/view/index.d.ts +1 -1
  214. package/dist/index.d.ts +3 -3
  215. package/dist/main/background.d.ts +2 -2
  216. package/dist/main/command.d.ts +2 -2
  217. package/dist/main/config.d.ts +3 -3
  218. package/dist/main/content.d.ts +2 -2
  219. package/dist/main/env.d.ts +1 -1
  220. package/dist/main/icon.d.ts +6 -4
  221. package/dist/main/icon.js +7 -4
  222. package/dist/main/icon.js.map +1 -1
  223. package/dist/main/index.d.ts +3 -3
  224. package/dist/main/manifest.d.ts +1 -1
  225. package/dist/main/offscreen.d.ts +1 -1
  226. package/dist/main/page.d.ts +1 -1
  227. package/dist/main/plugin.d.ts +3 -3
  228. package/dist/main/popup.d.ts +1 -1
  229. package/dist/main/relay.d.ts +1 -1
  230. package/dist/main/service.d.ts +1 -1
  231. package/dist/main/sidebar.d.ts +1 -1
  232. package/dist/main/view.d.ts +1 -1
  233. package/dist/{manifest-DAV18Z2K.d.ts → manifest-DbS9rsvj.d.ts} +34 -4
  234. package/dist/message/providers/Message.js +5 -0
  235. package/dist/message/providers/Message.js.map +1 -1
  236. package/dist/offscreen/OffscreenManager.d.ts +1 -1
  237. package/dist/offscreen/OffscreenMessage.d.ts +1 -1
  238. package/dist/offscreen/index.d.ts +1 -1
  239. package/dist/offscreen/providers/Offscreen.d.ts +1 -1
  240. package/dist/offscreen/providers/ProxyOffscreen.d.ts +1 -1
  241. package/dist/offscreen/providers/RegisterOffscreen.d.ts +1 -1
  242. package/dist/offscreen/providers/index.d.ts +1 -1
  243. package/dist/relay/RelayManager.d.ts +1 -1
  244. package/dist/relay/RelayMessage.d.ts +1 -1
  245. package/dist/relay/RelayPermission.d.ts +1 -1
  246. package/dist/relay/index.d.ts +1 -1
  247. package/dist/relay/providers/ProxyRelay.d.ts +1 -1
  248. package/dist/relay/providers/RegisterRelay.d.ts +1 -1
  249. package/dist/relay/providers/Relay.d.ts +1 -1
  250. package/dist/relay/providers/index.d.ts +1 -1
  251. package/dist/service/ServiceManager.d.ts +1 -1
  252. package/dist/service/ServiceMessage.d.ts +1 -1
  253. package/dist/service/index.d.ts +1 -1
  254. package/dist/service/providers/ProxyService.d.ts +1 -1
  255. package/dist/service/providers/RegisterService.d.ts +1 -1
  256. package/dist/service/providers/Service.d.ts +1 -1
  257. package/dist/service/providers/index.d.ts +1 -1
  258. package/dist/transport/BaseTransport.d.ts +1 -1
  259. package/dist/transport/ProxyTransport.d.ts +1 -1
  260. package/dist/transport/RegisterTransport.d.ts +1 -1
  261. package/dist/transport/TransportManager.d.ts +1 -1
  262. package/dist/transport/TransportMessage.d.ts +1 -1
  263. package/dist/transport/index.d.ts +1 -1
  264. package/dist/types/background.d.ts +1 -1
  265. package/dist/types/command.d.ts +1 -1
  266. package/dist/types/config.d.ts +2 -2
  267. package/dist/types/content.d.ts +1 -1
  268. package/dist/types/content.js +12 -0
  269. package/dist/types/content.js.map +1 -1
  270. package/dist/types/entrypoint.d.ts +1 -1
  271. package/dist/types/manifest.d.ts +1 -1
  272. package/dist/types/offscreen.d.ts +1 -1
  273. package/dist/types/page.d.ts +1 -1
  274. package/dist/types/plugin.d.ts +2 -2
  275. package/dist/types/popup.d.ts +1 -1
  276. package/dist/types/relay.d.ts +1 -1
  277. package/dist/types/service.d.ts +1 -1
  278. package/dist/types/sidebar.d.ts +1 -1
  279. package/dist/types/transport.d.ts +1 -1
  280. package/dist/types/view.d.ts +1 -1
  281. package/package.json +3 -3
@@ -1,9 +1,9 @@
1
- import { O as OptionalConfig } from '../../../config-DwvfY9v8.js';
1
+ import { O as OptionalConfig } from '../../../config-BChBSE68.js';
2
2
  import '@rspack/core';
3
3
  import 'html-rspack-tags-plugin';
4
4
  import '../../../types/app.js';
5
5
  import '../../../types/browser.js';
6
- import '../../../manifest-DAV18Z2K.js';
6
+ import '../../../manifest-DbS9rsvj.js';
7
7
  import 'react';
8
8
  import 'utility-types';
9
9
  import '../../../types/helpers.js';
@@ -3,12 +3,12 @@ export { default as LocaleValidator } from './LocaleValidator.js';
3
3
  export { default as OperaLocaleValidator } from './OperaLocaleValidator.js';
4
4
  export { default as FirefoxLocaleValidator } from './FirefoxLocaleValidator.js';
5
5
  import { Language, LocaleBuilder } from '../../../types/locale.js';
6
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
6
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
7
7
  import '../../../types/browser.js';
8
8
  import '@rspack/core';
9
9
  import 'html-rspack-tags-plugin';
10
10
  import '../../../types/app.js';
11
- import '../../../manifest-DAV18Z2K.js';
11
+ import '../../../manifest-DbS9rsvj.js';
12
12
  import 'react';
13
13
  import 'utility-types';
14
14
  import '../../../types/helpers.js';
@@ -1,4 +1,4 @@
1
- import { a9 as CoreManifest, O as ManifestBuilder, P as ManifestIncognito, a2 as ManifestIcons, aa as ManifestBackground, R as ManifestPopup, S as ManifestSidebar, ab as ManifestCommands, ac as ManifestContentScripts, ad as ManifestDependencies, ae as ManifestPermissions, af as ManifestOptionalPermissions, ag as ManifestHostPermissions, ah as ManifestAccessibleResources, Q as ManifestVersion, ai as ManifestAccessibleResource, aj as FirefoxManifest } from '../../../manifest-DAV18Z2K.js';
1
+ import { ae as CoreManifest, T as ManifestBuilder, U as ManifestIncognito, a7 as ManifestIcons, af as ManifestBackground, W as ManifestPopup, X as ManifestSidebar, ag as ManifestCommands, ah as ManifestContentScripts, ai as ManifestDependencies, aj as ManifestPermissions, ak as ManifestOptionalPermissions, al as ManifestHostPermissions, am as ManifestAccessibleResources, V as ManifestVersion, an as ManifestAccessibleResource, ao as FirefoxManifest } from '../../../manifest-DbS9rsvj.js';
2
2
  import { Browser } from '../../../types/browser.js';
3
3
  import { Language } from '../../../types/locale.js';
4
4
  import 'react';
@@ -1,5 +1,5 @@
1
1
  import export_default$1 from './ManifestBase.js';
2
- import { Q as ManifestVersion, a9 as CoreManifest } from '../../../manifest-DAV18Z2K.js';
2
+ import { V as ManifestVersion, ae as CoreManifest } from '../../../manifest-DbS9rsvj.js';
3
3
  import { Browser } from '../../../types/browser.js';
4
4
  import '../../../types/locale.js';
5
5
  import 'react';
@@ -1,5 +1,5 @@
1
1
  import export_default$1 from './ManifestBase.js';
2
- import { Q as ManifestVersion, a9 as CoreManifest } from '../../../manifest-DAV18Z2K.js';
2
+ import { V as ManifestVersion, ae as CoreManifest } from '../../../manifest-DbS9rsvj.js';
3
3
  import { Browser } from '../../../types/browser.js';
4
4
  import '../../../types/locale.js';
5
5
  import 'react';
@@ -1,5 +1,5 @@
1
- import { O as ManifestBuilder } from '../../../manifest-DAV18Z2K.js';
2
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
1
+ import { T as ManifestBuilder } from '../../../manifest-DbS9rsvj.js';
2
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
3
3
  import 'react';
4
4
  import 'utility-types';
5
5
  import '../../../types/app.js';
@@ -1,4 +1,4 @@
1
- import { ai as ManifestAccessibleResource } from '../../../manifest-DAV18Z2K.js';
1
+ import { an as ManifestAccessibleResource } from '../../../manifest-DbS9rsvj.js';
2
2
  import 'react';
3
3
  import 'utility-types';
4
4
  import '../../../types/app.js';
@@ -7,7 +7,7 @@ export { isEntryModuleOrIssuer, onlyViaTopLevelEntry } from './utils/optimizatio
7
7
  export { appFilenameResolver } from './utils/output.js';
8
8
  import '@rspack/core';
9
9
  import 'rspack-plugin-virtual-module';
10
- import '../../manifest-DAV18Z2K.js';
10
+ import '../../manifest-DbS9rsvj.js';
11
11
  import 'react';
12
12
  import 'utility-types';
13
13
  import '../../types/app.js';
@@ -1,6 +1,6 @@
1
1
  import { Compiler, EntryNormalized } from '@rspack/core';
2
2
  import { RspackVirtualModulePlugin } from 'rspack-plugin-virtual-module';
3
- import { U as EntrypointFile, V as EntrypointEntries } from '../../../manifest-DAV18Z2K.js';
3
+ import { Z as EntrypointFile, _ as EntrypointEntries } from '../../../manifest-DbS9rsvj.js';
4
4
  import 'react';
5
5
  import 'utility-types';
6
6
  import '../../../types/app.js';
@@ -1,5 +1,5 @@
1
1
  import { Compiler } from '@rspack/core';
2
- import { O as ManifestBuilder } from '../../../manifest-DAV18Z2K.js';
2
+ import { T as ManifestBuilder } from '../../../manifest-DbS9rsvj.js';
3
3
  import 'react';
4
4
  import 'utility-types';
5
5
  import '../../../types/app.js';
@@ -5,7 +5,7 @@ export { default as ReplacePlugin } from './ReplacePlugin.js';
5
5
  export { default as WatchPlugin } from './WatchPlugin.js';
6
6
  import '@rspack/core';
7
7
  import 'rspack-plugin-virtual-module';
8
- import '../../../manifest-DAV18Z2K.js';
8
+ import '../../../manifest-DbS9rsvj.js';
9
9
  import 'react';
10
10
  import 'utility-types';
11
11
  import '../../../types/app.js';
@@ -7,7 +7,9 @@ const getEntryDirs = (entry) => {
7
7
  }
8
8
  return entries.flatMap((v) => [
9
9
  path.join("node_modules", PackageName, "dist", "entry", v),
10
- path.join("addonbone", "dist", "entry", v)
10
+ path.join("addonbone", "dist", "entry", v),
11
+ // TODO: Only for test. Remove this
12
+ path.join("addon-bone", "dist", "entry", v)
11
13
  // TODO: Only for test. Remove this
12
14
  ]);
13
15
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/bundler/utils/optimization.ts"],"sourcesContent":["import path from \"path\";\nimport {NormalModule, type OptimizationSplitChunksCacheGroupTestFn} from \"@rspack/core\";\n\nimport {PackageName} from \"@typing/app\";\n\nconst getEntryDirs = (entry: string | string[]): string[] => {\n const entries = Array.isArray(entry) ? entry : [entry];\n\n if (entries.length === 0) {\n return [];\n }\n\n return entries.flatMap(v => [\n path.join(\"node_modules\", PackageName, \"dist\", \"entry\", v),\n path.join(\"addonbone\", \"dist\", \"entry\", v), // TODO: Only for test. Remove this\n ]);\n};\n\nexport const onlyViaTopLevelEntry = (entry: string | string[]): OptimizationSplitChunksCacheGroupTestFn => {\n const entryDirs = getEntryDirs(entry);\n\n if (entryDirs.length === 0) {\n return () => false;\n }\n\n const isTargetRes = (res?: string) => !!res && entryDirs.some(dir => res!.includes(dir));\n\n const memoTopLevelTarget = new WeakMap<object, boolean>();\n const memoPathOk = new WeakMap<object, boolean>();\n\n const isTopLevelTarget = (m: NormalModule | undefined, mg: any): boolean => {\n if (!m) {\n return false;\n }\n\n const cached = memoTopLevelTarget.get(m);\n\n if (cached !== undefined) {\n return cached;\n }\n\n const ok =\n isTargetRes(m.resource) &&\n (() => {\n const issuer = mg.getIssuer(m) as NormalModule | undefined;\n return !!issuer && !mg.getIssuer(issuer);\n })();\n\n memoTopLevelTarget.set(m, ok);\n\n return ok;\n };\n\n const pathHasTopLevelTarget = (start: NormalModule | undefined, mg: any): boolean => {\n if (!start) {\n return false;\n }\n\n const cached = memoPathOk.get(start);\n\n if (cached !== undefined) {\n return cached;\n }\n\n let cur: NormalModule | undefined = start;\n let steps = 0;\n\n const MAX_STEPS = 1024;\n\n while (cur && steps++ < MAX_STEPS) {\n if (isTopLevelTarget(cur, mg)) {\n memoPathOk.set(start, true);\n return true;\n }\n\n cur = mg.getIssuer(cur) as NormalModule | undefined;\n }\n\n memoPathOk.set(start, false);\n\n return false;\n };\n\n return (module, {moduleGraph}) => {\n const nm = module as NormalModule;\n const res = nm.resource;\n\n if (!res) {\n return false;\n }\n\n if (isTargetRes(res)) return true;\n\n const conns = moduleGraph.getIncomingConnections(nm);\n\n if (!conns || conns.length === 0) {\n return false;\n }\n\n for (let i = 0; i < conns.length; i++) {\n const origin = conns[i].originModule as NormalModule | undefined;\n\n if (!pathHasTopLevelTarget(origin, moduleGraph)) {\n return false;\n }\n }\n\n return true;\n };\n};\n\nexport const isEntryModuleOrIssuer = (entry: string | string[]): OptimizationSplitChunksCacheGroupTestFn => {\n const entryDirs = getEntryDirs(entry);\n\n if (entryDirs.length === 0) {\n return () => false;\n }\n\n return (module, {moduleGraph}) => {\n const nm = module as NormalModule;\n const resource = nm.resource || \"\";\n\n if (entryDirs.some(dir => resource.includes(dir))) {\n return true;\n }\n\n for (const connection of moduleGraph.getIncomingConnections(nm)) {\n const origin = connection.originModule as NormalModule | undefined;\n\n if (!origin?.resource) {\n continue;\n }\n\n const originRes = origin.resource;\n\n if (entryDirs.some(dir => originRes.includes(dir))) {\n return true;\n }\n }\n\n return false;\n };\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/bundler/utils/optimization.ts"],"sourcesContent":["import path from \"path\";\nimport {NormalModule, type OptimizationSplitChunksCacheGroupTestFn} from \"@rspack/core\";\n\nimport {PackageName} from \"@typing/app\";\n\nconst getEntryDirs = (entry: string | string[]): string[] => {\n const entries = Array.isArray(entry) ? entry : [entry];\n\n if (entries.length === 0) {\n return [];\n }\n\n return entries.flatMap(v => [\n path.join(\"node_modules\", PackageName, \"dist\", \"entry\", v),\n path.join(\"addonbone\", \"dist\", \"entry\", v), // TODO: Only for test. Remove this\n path.join(\"addon-bone\", \"dist\", \"entry\", v), // TODO: Only for test. Remove this\n ]);\n};\n\nexport const onlyViaTopLevelEntry = (entry: string | string[]): OptimizationSplitChunksCacheGroupTestFn => {\n const entryDirs = getEntryDirs(entry);\n\n if (entryDirs.length === 0) {\n return () => false;\n }\n\n const isTargetRes = (res?: string) => !!res && entryDirs.some(dir => res!.includes(dir));\n\n const memoTopLevelTarget = new WeakMap<object, boolean>();\n const memoPathOk = new WeakMap<object, boolean>();\n\n const isTopLevelTarget = (m: NormalModule | undefined, mg: any): boolean => {\n if (!m) {\n return false;\n }\n\n const cached = memoTopLevelTarget.get(m);\n\n if (cached !== undefined) {\n return cached;\n }\n\n const ok =\n isTargetRes(m.resource) &&\n (() => {\n const issuer = mg.getIssuer(m) as NormalModule | undefined;\n return !!issuer && !mg.getIssuer(issuer);\n })();\n\n memoTopLevelTarget.set(m, ok);\n\n return ok;\n };\n\n const pathHasTopLevelTarget = (start: NormalModule | undefined, mg: any): boolean => {\n if (!start) {\n return false;\n }\n\n const cached = memoPathOk.get(start);\n\n if (cached !== undefined) {\n return cached;\n }\n\n let cur: NormalModule | undefined = start;\n let steps = 0;\n\n const MAX_STEPS = 1024;\n\n while (cur && steps++ < MAX_STEPS) {\n if (isTopLevelTarget(cur, mg)) {\n memoPathOk.set(start, true);\n return true;\n }\n\n cur = mg.getIssuer(cur) as NormalModule | undefined;\n }\n\n memoPathOk.set(start, false);\n\n return false;\n };\n\n return (module, {moduleGraph}) => {\n const nm = module as NormalModule;\n const res = nm.resource;\n\n if (!res) {\n return false;\n }\n\n if (isTargetRes(res)) return true;\n\n const conns = moduleGraph.getIncomingConnections(nm);\n\n if (!conns || conns.length === 0) {\n return false;\n }\n\n for (let i = 0; i < conns.length; i++) {\n const origin = conns[i].originModule as NormalModule | undefined;\n\n if (!pathHasTopLevelTarget(origin, moduleGraph)) {\n return false;\n }\n }\n\n return true;\n };\n};\n\nexport const isEntryModuleOrIssuer = (entry: string | string[]): OptimizationSplitChunksCacheGroupTestFn => {\n const entryDirs = getEntryDirs(entry);\n\n if (entryDirs.length === 0) {\n return () => false;\n }\n\n return (module, {moduleGraph}) => {\n const nm = module as NormalModule;\n const resource = nm.resource || \"\";\n\n if (entryDirs.some(dir => resource.includes(dir))) {\n return true;\n }\n\n for (const connection of moduleGraph.getIncomingConnections(nm)) {\n const origin = connection.originModule as NormalModule | undefined;\n\n if (!origin?.resource) {\n continue;\n }\n\n const originRes = origin.resource;\n\n if (entryDirs.some(dir => originRes.includes(dir))) {\n return true;\n }\n }\n\n return false;\n };\n};\n"],"mappings":"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","names":[]}
@@ -42,6 +42,7 @@ declare class ExpressionFile extends EntryFile {
42
42
  * Given an initializer or expression, extracts its type: function signature or interface.
43
43
  */
44
44
  private getTypeFromInitializer;
45
+ private resolveTypeFromShorthand;
45
46
  /**
46
47
  * Extracts the type of the return value of a method, taking into account JSDoc annotations.
47
48
  *
@@ -74,6 +74,8 @@ class ExpressionFile extends SourceFile {
74
74
  } else if (ts.isMethodDeclaration(prop)) {
75
75
  const returnType = this.getTypeFromMethodReturn(prop);
76
76
  if (returnType) return returnType;
77
+ } else if (ts.isShorthandPropertyAssignment(prop)) {
78
+ return this.resolveTypeFromShorthand(prop.name.text);
77
79
  }
78
80
  }
79
81
  }
@@ -91,26 +93,7 @@ class ExpressionFile extends SourceFile {
91
93
  const sig = this.signatureBuilder.getMethodSignature(prop);
92
94
  return this.signatureBuilder.buildFunctionType(sig);
93
95
  } else if (ts.isShorthandPropertyAssignment(prop)) {
94
- const name = prop.name.text;
95
- const variable = this.getVariables().get(name);
96
- if (variable) {
97
- const val = variable.value;
98
- switch (typeof val) {
99
- case "string":
100
- return "string";
101
- case "number":
102
- return "number";
103
- case "boolean":
104
- return "boolean";
105
- case "object":
106
- if (val === null) return "null";
107
- if (Array.isArray(val)) return "array";
108
- return "object";
109
- default:
110
- return "any";
111
- }
112
- }
113
- return "any";
96
+ return this.resolveTypeFromShorthand(prop.name.text);
114
97
  }
115
98
  }
116
99
  return void 0;
@@ -223,6 +206,32 @@ class ExpressionFile extends SourceFile {
223
206
  }
224
207
  return void 0;
225
208
  }
209
+ resolveTypeFromShorthand(name) {
210
+ const varDecl = this.nodeFinder.findVariableDeclaration(name);
211
+ if (varDecl && varDecl.initializer) {
212
+ const t = this.getTypeFromInitializer(varDecl.initializer);
213
+ if (t) return t;
214
+ }
215
+ const variable = this.getVariables().get(name);
216
+ if (variable) {
217
+ const val = variable.value;
218
+ switch (typeof val) {
219
+ case "string":
220
+ return "string";
221
+ case "number":
222
+ return "number";
223
+ case "boolean":
224
+ return "boolean";
225
+ case "object":
226
+ if (val === null) return "null";
227
+ if (Array.isArray(val)) return "array";
228
+ return "object";
229
+ default:
230
+ return "any";
231
+ }
232
+ }
233
+ return "any";
234
+ }
226
235
  /**
227
236
  * Extracts the type of the return value of a method, taking into account JSDoc annotations.
228
237
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/entrypoint/file/ExpressionFile.ts"],"sourcesContent":["import ts from \"typescript\";\n\nimport SourceFile from \"./SourceFile\";\nimport {\n ClassParser,\n FunctionParser,\n JSDocParser,\n NodeFinder,\n ObjectParser,\n SignatureBuilder,\n TypeResolver,\n} from \"./parsers\";\nimport {MemberSignature} from \"./parsers/types\";\n\nimport {PackageName} from \"@typing/app\";\n\n/**\n * Parses a TypeScript expression (object literal, function, or class)\n * and builds a full interface of its public members (methods and properties).\n */\nexport default class ExpressionFile extends SourceFile {\n protected property?: string;\n /**\n * Names of wrapper functions whose first argument should be unwrapped for parsing.\n */\n protected definition = new Set<string>();\n\n private readonly typeResolver: TypeResolver;\n private readonly nodeFinder: NodeFinder;\n private readonly signatureBuilder: SignatureBuilder;\n private readonly functionParser: FunctionParser;\n private readonly objectParser: ObjectParser;\n private readonly classParser: ClassParser;\n private readonly jsDocParser: JSDocParser;\n constructor(filePath: string) {\n super(filePath);\n\n this.typeResolver = new TypeResolver(this);\n this.nodeFinder = new NodeFinder(this);\n this.signatureBuilder = new SignatureBuilder(this.typeResolver);\n this.objectParser = new ObjectParser(this, this.signatureBuilder);\n this.classParser = new ClassParser(this, this.typeResolver, this.signatureBuilder, this.nodeFinder);\n this.functionParser = new FunctionParser(this, this.nodeFinder, this.objectParser, this.classParser);\n this.jsDocParser = new JSDocParser();\n }\n\n public getType(): string | undefined {\n // If a specific variable or property is requested, extract its type\n if (this.property) {\n // 1) Named variable scenario: e.g. export const init = () => ...\n const varDecl = this.nodeFinder.findVariableDeclaration(this.property);\n\n if (varDecl && varDecl.initializer) {\n return this.getTypeFromInitializer(varDecl.initializer);\n }\n\n // 2) Property on default export object: unwrap and look up key\n let exportExpr: ts.Expression | undefined;\n const sf = this.getSourceFile();\n\n const findExport = (node: ts.Node) => {\n if (ts.isExportAssignment(node)) {\n exportExpr = node.expression;\n }\n ts.forEachChild(node, findExport);\n };\n\n findExport(sf);\n\n if (!exportExpr) return undefined;\n\n // Special case for service definitions with JSDoc annotations\n if (this.definition.size > 0 && ts.isCallExpression(exportExpr) && ts.isIdentifier(exportExpr.expression)) {\n const fnName = exportExpr.expression.text;\n\n if (this.definition.has(fnName)) {\n // Check if the wrapper function is imported from the designated package name\n let importPath: string | undefined;\n try {\n importPath = this.getImports().get(fnName);\n } catch {\n // unable to resolve import source -> ignore wrapper\n return undefined;\n }\n\n if (importPath !== PackageName) {\n // Function is not imported from the designated package name -> ignore wrapper\n console.warn(`Function ${fnName} is not imported from '${PackageName}' in file ${this.file}`);\n return undefined;\n }\n\n if (exportExpr.arguments.length > 0) {\n const firstArg = exportExpr.arguments[0];\n\n if (ts.isObjectLiteralExpression(firstArg)) {\n for (const prop of firstArg.properties) {\n const key = this.objectParser.getName(prop.name ?? prop);\n\n if (key !== this.property) continue;\n\n if (ts.isPropertyAssignment(prop)) {\n const initType = this.getTypeFromInitializer(prop.initializer);\n if (initType) return initType;\n } else if (ts.isMethodDeclaration(prop)) {\n // Get the return type of the method\n const returnType = this.getTypeFromMethodReturn(prop);\n if (returnType) return returnType;\n }\n }\n }\n }\n }\n }\n\n const expr = this.unwrapExpression(exportExpr);\n\n if (ts.isObjectLiteralExpression(expr)) {\n for (const prop of expr.properties) {\n const key = this.objectParser.getName(prop.name ?? prop);\n\n if (key !== this.property) continue;\n\n if (ts.isPropertyAssignment(prop)) {\n return this.getTypeFromInitializer(prop.initializer);\n } else if (ts.isMethodDeclaration(prop) || ts.isGetAccessorDeclaration(prop)) {\n const sig = this.signatureBuilder.getMethodSignature(prop as ts.MethodDeclaration);\n\n return this.signatureBuilder.buildFunctionType(sig);\n } else if (ts.isShorthandPropertyAssignment(prop)) {\n const name = prop.name.text;\n const variable = this.getVariables().get(name);\n\n if (variable) {\n const val = variable.value;\n switch (typeof val) {\n case \"string\":\n return \"string\";\n case \"number\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"object\":\n if (val === null) return \"null\";\n if (Array.isArray(val)) return \"array\";\n return \"object\";\n default:\n return \"any\";\n }\n }\n return \"any\";\n }\n }\n return undefined;\n }\n\n // Fallback: treat default export expression as initializer\n return this.getTypeFromInitializer(expr);\n }\n\n // Default: parse full default export into interface-like string\n let members: Record<string, MemberSignature> | undefined;\n const sf = this.getSourceFile();\n\n const collect = (node: ts.Node) => {\n if (ts.isExportAssignment(node)) {\n const expr0 = node.expression;\n const expr = this.unwrapExpression(expr0);\n const parsed = this.parse(expr);\n if (parsed) members = parsed;\n }\n ts.forEachChild(node, collect);\n };\n\n collect(sf);\n if (!members) return undefined;\n return this.signatureBuilder.formatMembers(members);\n }\n\n public setProperty(property: string): this {\n this.property = property;\n\n return this;\n }\n\n /**\n * Entry point: accepts an expression and returns a map of member signatures,\n * or undefined if the expression cannot be parsed.\n */\n protected parse(expr: ts.Expression): Record<string, MemberSignature> | undefined {\n if (ts.isFunctionExpression(expr) || ts.isArrowFunction(expr)) {\n return this.functionParser.parse(expr);\n } else if (ts.isObjectLiteralExpression(expr)) {\n return this.objectParser.parse(expr);\n } else if (ts.isClassExpression(expr)) {\n return this.classParser.parse(expr);\n }\n\n return undefined;\n }\n\n /**\n * Specify wrapper functions whose first argument should be unwrapped for parsing.\n */\n public setDefinition(definition: string | string[]): this {\n const defs = typeof definition === \"string\" ? [definition] : definition;\n\n defs.forEach(def => this.definition.add(def));\n\n return this;\n }\n\n /**\n * Recursively unwraps type assertions, satisfies, parentheses, and allowed wrapper calls.\n */\n private unwrapExpression(expr: ts.Expression): ts.Expression {\n // First use the AbstractExpressionParser's unwrapExpression for basic unwrapping\n expr = this.functionParser.unwrapExpression(expr);\n\n // Explicitly handle type assertions\n if (ts.isAsExpression(expr)) {\n return this.unwrapExpression(expr.expression);\n }\n\n // Then handle the additional unwrapping for known definition wrappers\n if (ts.isCallExpression(expr) && ts.isIdentifier(expr.expression)) {\n const fnName = expr.expression.text;\n\n if (this.definition.has(fnName)) {\n let importPath: string | undefined;\n\n try {\n importPath = this.getImports().get(fnName);\n } catch {\n // unable to resolve import source -> ignore wrapper\n return expr;\n }\n\n if (importPath !== PackageName) {\n console.warn(`Function ${fnName} is not imported from '${PackageName}' in file ${this.file}`);\n } else if (expr.arguments.length > 0) {\n const first = expr.arguments[0];\n return this.unwrapExpression(first as ts.Expression);\n }\n }\n }\n\n return expr;\n }\n\n /**\n * Given an initializer or expression, extracts its type: function signature or interface.\n */\n private getTypeFromInitializer(\n node: ts.Expression | ts.MethodDeclaration | ts.GetAccessorDeclaration\n ): string | undefined {\n // Unwrap type assertions\n if (ts.isAsExpression(node)) {\n return this.getTypeFromInitializer(node.expression);\n }\n\n // Function or arrow function: try to parse returned object or instance\n if (ts.isFunctionExpression(node) || ts.isArrowFunction(node)) {\n // attempt to parse returned expression into members\n const members = this.functionParser.parse(node as ts.FunctionExpression | ts.ArrowFunction);\n\n if (members) {\n return this.signatureBuilder.formatMembers(members);\n }\n\n // fallback to function signature\n const sig = this.signatureBuilder.getMethodSignature(node as ts.FunctionExpression | ts.ArrowFunction);\n\n return this.signatureBuilder.buildFunctionType(sig);\n }\n\n // Class or method-like: signature of accessor/method\n if (ts.isMethodDeclaration(node) || ts.isGetAccessorDeclaration(node)) {\n const sig = this.signatureBuilder.getMethodSignature(node as ts.MethodDeclaration);\n return this.signatureBuilder.buildFunctionType(sig);\n }\n\n // Object literal, class expression/declaration, or new expression: return interface of members\n let members: Record<string, MemberSignature> | undefined;\n\n if (ts.isObjectLiteralExpression(node) || ts.isClassExpression(node) || ts.isClassDeclaration(node)) {\n members = this.parse(node as ts.Expression);\n } else if (ts.isNewExpression(node)) {\n const ctor = node.expression;\n\n if (ts.isIdentifier(ctor)) {\n members = this.classParser.parseFileClass(ctor.text);\n } else if (ts.isClassExpression(ctor)) {\n members = this.classParser.parse(ctor);\n }\n }\n\n if (members) {\n return this.signatureBuilder.formatMembers(members);\n }\n\n // For literals or other expressions, infer a simple type\n if (ts.isLiteralExpression(node) || ts.isArrayLiteralExpression(node) || ts.isObjectLiteralExpression(node)) {\n return this.objectParser.inferTypeFromExpression(node as ts.Expression);\n }\n\n // Fallback: undefined\n return undefined;\n }\n\n /**\n * Extracts the type of the return value of a method, taking into account JSDoc annotations.\n *\n * @param method The method declaration to extract the return type from\n * @returns The extracted return type as a string, or undefined if it cannot be extracted\n */\n private getTypeFromMethodReturn(method: ts.MethodDeclaration): string | undefined {\n // Try to find a return statement in the method body\n if (method.body) {\n // First, check if there's a JSDoc return type annotation\n const jsDocReturnType = this.jsDocParser.getJSDocReturnType(method);\n if (jsDocReturnType) {\n // If the return type is a new expression, try to parse it\n if (jsDocReturnType.includes(\"new \")) {\n const className = jsDocReturnType.replace(\"new \", \"\").trim();\n const members = this.classParser.parseFileClass(className);\n if (members) {\n return this.signatureBuilder.formatMembers(members);\n }\n }\n\n // If the return type is a class name, try to parse it\n const members = this.classParser.parseFileClass(jsDocReturnType);\n if (members) {\n return this.signatureBuilder.formatMembers(members);\n }\n\n return jsDocReturnType;\n }\n\n // If there's no JSDoc return type, try to find a return statement\n let returnExpr: ts.Expression | undefined;\n\n const findReturn = (node: ts.Node): void => {\n if (ts.isReturnStatement(node) && node.expression) {\n returnExpr = node.expression;\n return;\n }\n ts.forEachChild(node, findReturn);\n };\n\n findReturn(method.body);\n\n if (returnExpr) {\n return this.getTypeFromInitializer(returnExpr);\n }\n }\n\n // If we couldn't find a return statement, use the method's return type\n if (method.type) {\n return this.typeResolver.resolveTypeNode(method.type);\n }\n\n return undefined;\n }\n}\n"],"mappings":"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","names":["sf","members"]}
1
+ {"version":3,"sources":["../../../../src/cli/entrypoint/file/ExpressionFile.ts"],"sourcesContent":["import ts from \"typescript\";\n\nimport SourceFile from \"./SourceFile\";\nimport {\n ClassParser,\n FunctionParser,\n JSDocParser,\n NodeFinder,\n ObjectParser,\n SignatureBuilder,\n TypeResolver,\n} from \"./parsers\";\nimport {MemberSignature} from \"./parsers/types\";\n\nimport {PackageName} from \"@typing/app\";\n\n/**\n * Parses a TypeScript expression (object literal, function, or class)\n * and builds a full interface of its public members (methods and properties).\n */\nexport default class ExpressionFile extends SourceFile {\n protected property?: string;\n /**\n * Names of wrapper functions whose first argument should be unwrapped for parsing.\n */\n protected definition = new Set<string>();\n\n private readonly typeResolver: TypeResolver;\n private readonly nodeFinder: NodeFinder;\n private readonly signatureBuilder: SignatureBuilder;\n private readonly functionParser: FunctionParser;\n private readonly objectParser: ObjectParser;\n private readonly classParser: ClassParser;\n private readonly jsDocParser: JSDocParser;\n\n constructor(filePath: string) {\n super(filePath);\n\n this.typeResolver = new TypeResolver(this);\n this.nodeFinder = new NodeFinder(this);\n this.signatureBuilder = new SignatureBuilder(this.typeResolver);\n this.objectParser = new ObjectParser(this, this.signatureBuilder);\n this.classParser = new ClassParser(this, this.typeResolver, this.signatureBuilder, this.nodeFinder);\n this.functionParser = new FunctionParser(this, this.nodeFinder, this.objectParser, this.classParser);\n this.jsDocParser = new JSDocParser();\n }\n\n public getType(): string | undefined {\n // If a specific variable or property is requested, extract its type\n if (this.property) {\n // 1) Named variable scenario: e.g. export const init = () => ...\n const varDecl = this.nodeFinder.findVariableDeclaration(this.property);\n\n if (varDecl && varDecl.initializer) {\n return this.getTypeFromInitializer(varDecl.initializer);\n }\n\n // 2) Property on default export object: unwrap and look up key\n let exportExpr: ts.Expression | undefined;\n const sf = this.getSourceFile();\n\n const findExport = (node: ts.Node) => {\n if (ts.isExportAssignment(node)) {\n exportExpr = node.expression;\n }\n ts.forEachChild(node, findExport);\n };\n\n findExport(sf);\n\n if (!exportExpr) return undefined;\n\n // Special case for service definitions with JSDoc annotations\n if (this.definition.size > 0 && ts.isCallExpression(exportExpr) && ts.isIdentifier(exportExpr.expression)) {\n const fnName = exportExpr.expression.text;\n\n if (this.definition.has(fnName)) {\n // Check if the wrapper function is imported from the designated package name\n let importPath: string | undefined;\n try {\n importPath = this.getImports().get(fnName);\n } catch {\n // unable to resolve import source -> ignore wrapper\n return undefined;\n }\n\n if (importPath !== PackageName) {\n // Function is not imported from the designated package name -> ignore wrapper\n console.warn(`Function ${fnName} is not imported from '${PackageName}' in file ${this.file}`);\n return undefined;\n }\n\n if (exportExpr.arguments.length > 0) {\n const firstArg = exportExpr.arguments[0];\n\n if (ts.isObjectLiteralExpression(firstArg)) {\n for (const prop of firstArg.properties) {\n const key = this.objectParser.getName(prop.name ?? prop);\n\n if (key !== this.property) continue;\n\n if (ts.isPropertyAssignment(prop)) {\n const initType = this.getTypeFromInitializer(prop.initializer);\n if (initType) return initType;\n } else if (ts.isMethodDeclaration(prop)) {\n // Get the return type of the method\n const returnType = this.getTypeFromMethodReturn(prop);\n if (returnType) return returnType;\n } else if (ts.isShorthandPropertyAssignment(prop)) {\n return this.resolveTypeFromShorthand(prop.name.text);\n }\n }\n }\n }\n }\n }\n\n const expr = this.unwrapExpression(exportExpr);\n\n if (ts.isObjectLiteralExpression(expr)) {\n for (const prop of expr.properties) {\n const key = this.objectParser.getName(prop.name ?? prop);\n\n if (key !== this.property) continue;\n\n if (ts.isPropertyAssignment(prop)) {\n return this.getTypeFromInitializer(prop.initializer);\n } else if (ts.isMethodDeclaration(prop) || ts.isGetAccessorDeclaration(prop)) {\n const sig = this.signatureBuilder.getMethodSignature(prop as ts.MethodDeclaration);\n\n return this.signatureBuilder.buildFunctionType(sig);\n } else if (ts.isShorthandPropertyAssignment(prop)) {\n return this.resolveTypeFromShorthand(prop.name.text);\n }\n }\n return undefined;\n }\n\n // Fallback: treat default export expression as initializer\n return this.getTypeFromInitializer(expr);\n }\n\n // Default: parse full default export into interface-like string\n let members: Record<string, MemberSignature> | undefined;\n const sf = this.getSourceFile();\n\n const collect = (node: ts.Node) => {\n if (ts.isExportAssignment(node)) {\n const expr0 = node.expression;\n const expr = this.unwrapExpression(expr0);\n const parsed = this.parse(expr);\n if (parsed) members = parsed;\n }\n ts.forEachChild(node, collect);\n };\n\n collect(sf);\n if (!members) return undefined;\n return this.signatureBuilder.formatMembers(members);\n }\n\n public setProperty(property: string): this {\n this.property = property;\n\n return this;\n }\n\n /**\n * Entry point: accepts an expression and returns a map of member signatures,\n * or undefined if the expression cannot be parsed.\n */\n protected parse(expr: ts.Expression): Record<string, MemberSignature> | undefined {\n if (ts.isFunctionExpression(expr) || ts.isArrowFunction(expr)) {\n return this.functionParser.parse(expr);\n } else if (ts.isObjectLiteralExpression(expr)) {\n return this.objectParser.parse(expr);\n } else if (ts.isClassExpression(expr)) {\n return this.classParser.parse(expr);\n }\n\n return undefined;\n }\n\n /**\n * Specify wrapper functions whose first argument should be unwrapped for parsing.\n */\n public setDefinition(definition: string | string[]): this {\n const defs = typeof definition === \"string\" ? [definition] : definition;\n\n defs.forEach(def => this.definition.add(def));\n\n return this;\n }\n\n /**\n * Recursively unwraps type assertions, satisfies, parentheses, and allowed wrapper calls.\n */\n private unwrapExpression(expr: ts.Expression): ts.Expression {\n // First use the AbstractExpressionParser's unwrapExpression for basic unwrapping\n expr = this.functionParser.unwrapExpression(expr);\n\n // Explicitly handle type assertions\n if (ts.isAsExpression(expr)) {\n return this.unwrapExpression(expr.expression);\n }\n\n // Then handle the additional unwrapping for known definition wrappers\n if (ts.isCallExpression(expr) && ts.isIdentifier(expr.expression)) {\n const fnName = expr.expression.text;\n\n if (this.definition.has(fnName)) {\n let importPath: string | undefined;\n\n try {\n importPath = this.getImports().get(fnName);\n } catch {\n // unable to resolve import source -> ignore wrapper\n return expr;\n }\n\n if (importPath !== PackageName) {\n console.warn(`Function ${fnName} is not imported from '${PackageName}' in file ${this.file}`);\n } else if (expr.arguments.length > 0) {\n const first = expr.arguments[0];\n return this.unwrapExpression(first as ts.Expression);\n }\n }\n }\n\n return expr;\n }\n\n /**\n * Given an initializer or expression, extracts its type: function signature or interface.\n */\n private getTypeFromInitializer(\n node: ts.Expression | ts.MethodDeclaration | ts.GetAccessorDeclaration\n ): string | undefined {\n // Unwrap type assertions\n if (ts.isAsExpression(node)) {\n return this.getTypeFromInitializer(node.expression);\n }\n\n // Function or arrow function: try to parse returned object or instance\n if (ts.isFunctionExpression(node) || ts.isArrowFunction(node)) {\n // attempt to parse returned expression into members\n const members = this.functionParser.parse(node as ts.FunctionExpression | ts.ArrowFunction);\n\n if (members) {\n return this.signatureBuilder.formatMembers(members);\n }\n\n // fallback to function signature\n const sig = this.signatureBuilder.getMethodSignature(node as ts.FunctionExpression | ts.ArrowFunction);\n\n return this.signatureBuilder.buildFunctionType(sig);\n }\n\n // Class or method-like: signature of accessor/method\n if (ts.isMethodDeclaration(node) || ts.isGetAccessorDeclaration(node)) {\n const sig = this.signatureBuilder.getMethodSignature(node as ts.MethodDeclaration);\n return this.signatureBuilder.buildFunctionType(sig);\n }\n\n // Object literal, class expression/declaration, or new expression: return interface of members\n let members: Record<string, MemberSignature> | undefined;\n\n if (ts.isObjectLiteralExpression(node) || ts.isClassExpression(node) || ts.isClassDeclaration(node)) {\n members = this.parse(node as ts.Expression);\n } else if (ts.isNewExpression(node)) {\n const ctor = node.expression;\n\n if (ts.isIdentifier(ctor)) {\n members = this.classParser.parseFileClass(ctor.text);\n } else if (ts.isClassExpression(ctor)) {\n members = this.classParser.parse(ctor);\n }\n }\n\n if (members) {\n return this.signatureBuilder.formatMembers(members);\n }\n\n if (ts.isLiteralExpression(node) || ts.isArrayLiteralExpression(node) || ts.isObjectLiteralExpression(node)) {\n return this.objectParser.inferTypeFromExpression(node as ts.Expression);\n }\n\n return undefined;\n }\n\n private resolveTypeFromShorthand(name: string): string | undefined {\n const varDecl = this.nodeFinder.findVariableDeclaration(name);\n if (varDecl && varDecl.initializer) {\n const t = this.getTypeFromInitializer(varDecl.initializer);\n if (t) return t;\n }\n const variable = this.getVariables().get(name);\n if (variable) {\n const val = variable.value;\n switch (typeof val) {\n case \"string\":\n return \"string\";\n case \"number\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"object\":\n if (val === null) return \"null\";\n if (Array.isArray(val)) return \"array\";\n return \"object\";\n default:\n return \"any\";\n }\n }\n return \"any\";\n }\n\n /**\n * Extracts the type of the return value of a method, taking into account JSDoc annotations.\n *\n * @param method The method declaration to extract the return type from\n * @returns The extracted return type as a string, or undefined if it cannot be extracted\n */\n private getTypeFromMethodReturn(method: ts.MethodDeclaration): string | undefined {\n // Try to find a return statement in the method body\n if (method.body) {\n // First, check if there's a JSDoc return type annotation\n const jsDocReturnType = this.jsDocParser.getJSDocReturnType(method);\n if (jsDocReturnType) {\n // If the return type is a new expression, try to parse it\n if (jsDocReturnType.includes(\"new \")) {\n const className = jsDocReturnType.replace(\"new \", \"\").trim();\n const members = this.classParser.parseFileClass(className);\n if (members) {\n return this.signatureBuilder.formatMembers(members);\n }\n }\n\n // If the return type is a class name, try to parse it\n const members = this.classParser.parseFileClass(jsDocReturnType);\n if (members) {\n return this.signatureBuilder.formatMembers(members);\n }\n\n return jsDocReturnType;\n }\n\n // If there's no JSDoc return type, try to find a return statement\n let returnExpr: ts.Expression | undefined;\n\n const findReturn = (node: ts.Node): void => {\n if (ts.isReturnStatement(node) && node.expression) {\n returnExpr = node.expression;\n return;\n }\n ts.forEachChild(node, findReturn);\n };\n\n findReturn(method.body);\n\n if (returnExpr) {\n return this.getTypeFromInitializer(returnExpr);\n }\n }\n\n // If we couldn't find a return statement, use the method's return type\n if (method.type) {\n return this.typeResolver.resolveTypeNode(method.type);\n }\n\n return undefined;\n }\n}\n"],"mappings":"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","names":["sf","members"]}
@@ -203,7 +203,8 @@ class EntryFile {
203
203
  return acc;
204
204
  }
205
205
  const key = property.name.text;
206
- let value = this.parseNode(property.initializer);
206
+ const initNode = ts.isShorthandPropertyAssignment(property) ? property.name : property.initializer;
207
+ let value = this.parseNode(initNode);
207
208
  if (typeof value === "string" && ((_a2 = this.variables) == null ? void 0 : _a2.has(value))) {
208
209
  value = (_c = (_b = this.variables) == null ? void 0 : _b.get(value)) == null ? void 0 : _c.value;
209
210
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/entrypoint/file/SourceFile.ts"],"sourcesContent":["import ts from \"typescript\";\nimport fs from \"fs\";\nimport path from \"path\";\n\nimport {ImportResolver} from \"./resolvers\";\n\nimport injectors from \"./injectors\";\n\nimport {EnumMap, ImportMap, Variable, VariableMap} from \"./types\";\n\nexport default class EntryFile {\n private sourceFile?: ts.SourceFile;\n\n private variables?: VariableMap;\n\n private imports?: ImportMap;\n\n private enums?: EnumMap;\n\n protected importResolver?: ImportResolver;\n\n static make<T extends EntryFile>(this: new (file: string) => T, file: string): T {\n return new this(file);\n }\n\n constructor(protected readonly file: string) {}\n\n public getSourceFile(): ts.SourceFile {\n if (this.sourceFile) {\n return this.sourceFile;\n }\n\n const sourceCode = fs.readFileSync(this.file, \"utf8\");\n\n return (this.sourceFile = ts.createSourceFile(this.file, sourceCode, ts.ScriptTarget.ESNext, true));\n }\n\n public getImports(): ImportMap {\n if (this.imports) {\n return this.imports;\n }\n\n this.imports = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isImportDeclaration(node) && node.moduleSpecifier) {\n const importPath = (node.moduleSpecifier as ts.StringLiteral).text;\n if (node.importClause) {\n // default import: import X from '...'\n if (node.importClause.name) {\n this.imports?.set(node.importClause.name.text, this.getInputResolver().get(importPath));\n }\n // named imports: import { A, B } from '...'\n if (node.importClause.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {\n node.importClause.namedBindings.elements.forEach(el => {\n this.imports?.set(el.name.text, this.getInputResolver().get(importPath));\n });\n }\n }\n }\n // import equals: import X = Y.Z\n else if (ts.isImportEqualsDeclaration(node) && ts.isExternalModuleReference(node.moduleReference)) {\n if (node.moduleReference.expression && ts.isStringLiteral(node.moduleReference.expression)) {\n const importPath = node.moduleReference.expression.text;\n this.imports?.set(node.name.text, this.getInputResolver().get(importPath));\n }\n }\n // import equals with qualified name: import X = Y.Z\n else if (ts.isImportEqualsDeclaration(node)) {\n // For qualified names like chrome.tabs.Tab, we don't need to resolve a path\n // Just store the full qualified name as the \"import path\"\n const qualifiedName = node.moduleReference.getText();\n this.imports?.set(node.name.text, qualifiedName);\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.imports;\n }\n\n public getEnums(): EnumMap {\n if (this.enums) {\n return this.enums;\n }\n\n this.enums = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isEnumDeclaration(node)) {\n const enumName = node.name.text;\n const enumProperties: Map<string, string | number> = new Map();\n\n node.members.forEach(member => {\n const key = member.name.getText();\n const value = member.initializer ? member.initializer.getText().replace(/['\"]/g, \"\") : key;\n\n enumProperties.set(key, value);\n });\n\n this.enums?.set(enumName, enumProperties);\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.enums;\n }\n\n public getVariables(): VariableMap {\n if (this.variables) {\n return this.variables;\n }\n\n this.variables = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isVariableStatement(node)) {\n const isExported = node.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.ExportKeyword);\n\n node.declarationList.declarations.forEach(declaration => {\n if (ts.isIdentifier(declaration.name) && declaration.initializer) {\n const name = declaration.name.text;\n const value = this.parseNode(declaration.initializer);\n\n this.variables?.set(name, {\n name,\n value,\n exported: isExported || false,\n });\n }\n });\n }\n\n if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) {\n node.exportClause.elements.forEach(el => {\n const name = el.name.text;\n\n if (this.variables?.has(name)) {\n const variable = this.variables?.get(name) as Variable;\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true,\n });\n }\n });\n }\n\n if (ts.isExportAssignment(node)) {\n const expr = node.expression;\n if (ts.isIdentifier(expr) && this.variables?.has(expr.text)) {\n const variable = this.variables?.get(expr.text) as Variable;\n const name = \"default\";\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true,\n });\n }\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.variables;\n }\n\n protected resolveValue(from: string, target: string, name: string): any {\n return injectors([])(from, target, name);\n }\n\n protected findPropertyAccessValue(property: ts.Node): any {\n if (ts.isPropertyAccessExpression(property)) {\n const objectName = property.expression.getText();\n const propertyName = property.name.getText();\n\n const varItem = this.getVariables().get(objectName);\n\n if (varItem) {\n return varItem.value;\n }\n\n const enumItem = this.getEnums().get(objectName);\n\n if (enumItem) {\n return enumItem.get(propertyName);\n }\n\n const importItem = this.getImports().get(objectName);\n\n if (importItem) {\n const resolverItem = this.resolveValue(importItem, objectName, propertyName);\n\n if (resolverItem) {\n return resolverItem;\n }\n\n return EntryFile.make(importItem).findPropertyAccessValue(property);\n }\n\n return `${objectName}.${propertyName}`;\n }\n\n return undefined;\n }\n\n public parseNode(node?: ts.Node): any {\n if (!node) {\n return undefined;\n }\n\n switch (node.kind) {\n case ts.SyntaxKind.StringLiteral:\n return (node as ts.StringLiteral).text;\n case ts.SyntaxKind.TrueKeyword:\n return true;\n case ts.SyntaxKind.FalseKeyword:\n return false;\n case ts.SyntaxKind.NullKeyword:\n return null;\n case ts.SyntaxKind.NumericLiteral:\n return parseFloat((node as ts.NumericLiteral).text);\n case ts.SyntaxKind.Identifier: {\n const id = node as ts.Identifier;\n const name = id.text;\n // local variable\n const local = this.variables?.get(name);\n if (local && local.value !== undefined) {\n return local.value;\n }\n // imported constant: try to resolve its value from source file\n const importPath = this.getImports().get(name);\n if (importPath) {\n // load imported file and check its variables\n const parser = EntryFile.make(importPath);\n const imported = parser.getVariables().get(name);\n if (imported && imported.value !== undefined) {\n return imported.value;\n }\n }\n return name;\n }\n case ts.SyntaxKind.ArrayLiteralExpression:\n return (node as ts.ArrayLiteralExpression).elements.map(element => this.parseNode(element));\n case ts.SyntaxKind.ObjectLiteralExpression:\n return (node as ts.ObjectLiteralExpression).properties\n .filter(\n (property): property is ts.PropertyAssignment =>\n ts.isPropertyAssignment(property) || ts.isShorthandPropertyAssignment(property)\n )\n .reduce(\n (acc, property) => {\n if (ts.isComputedPropertyName(property.name)) {\n return acc;\n }\n\n const key = (property.name as ts.Identifier | ts.StringLiteral).text;\n let value = this.parseNode(property.initializer);\n\n if (typeof value === \"string\" && this.variables?.has(value)) {\n value = this.variables?.get(value)?.value;\n }\n\n acc[key] = value;\n\n return acc;\n },\n {} as Record<string, any>\n );\n case ts.SyntaxKind.PropertyAccessExpression: {\n return this.findPropertyAccessValue(node);\n }\n default:\n return undefined;\n }\n }\n\n protected getInputResolver(): ImportResolver {\n if (this.importResolver) {\n return this.importResolver;\n }\n\n return this.setImportResolver(new ImportResolver());\n }\n\n public setImportResolver(resolver: ImportResolver): ImportResolver {\n return (this.importResolver = resolver.setBaseDir(path.dirname(this.file)));\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,SAAQ,sBAAqB;AAE7B,OAAO,eAAe;AAItB,MAAO,UAAwB;AAAA,EAe3B,YAA+B,MAAc;AAAd;AAAA,EAAe;AAAA,EAdtC;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAEE;AAAA,EAEV,OAAO,KAAyD,MAAiB;AAC7E,WAAO,IAAI,KAAK,IAAI;AAAA,EACxB;AAAA,EAIO,gBAA+B;AAClC,QAAI,KAAK,YAAY;AACjB,aAAO,KAAK;AAAA,IAChB;AAEA,UAAM,aAAa,GAAG,aAAa,KAAK,MAAM,MAAM;AAEpD,WAAQ,KAAK,aAAa,GAAG,iBAAiB,KAAK,MAAM,YAAY,GAAG,aAAa,QAAQ,IAAI;AAAA,EACrG;AAAA,EAEO,aAAwB;AAC3B,QAAI,KAAK,SAAS;AACd,aAAO,KAAK;AAAA,IAChB;AAEA,SAAK,UAAU,oBAAI,IAAI;AAEvB,UAAM,QAAQ,CAAC,SAAkB;AA5CzC;AA6CY,UAAI,GAAG,oBAAoB,IAAI,KAAK,KAAK,iBAAiB;AACtD,cAAM,aAAc,KAAK,gBAAqC;AAC9D,YAAI,KAAK,cAAc;AAEnB,cAAI,KAAK,aAAa,MAAM;AACxB,uBAAK,YAAL,mBAAc,IAAI,KAAK,aAAa,KAAK,MAAM,KAAK,iBAAiB,EAAE,IAAI,UAAU;AAAA,UACzF;AAEA,cAAI,KAAK,aAAa,iBAAiB,GAAG,eAAe,KAAK,aAAa,aAAa,GAAG;AACvF,iBAAK,aAAa,cAAc,SAAS,QAAQ,QAAM;AAtD/E,kBAAAA;AAuD4B,eAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,IAAI,GAAG,KAAK,MAAM,KAAK,iBAAiB,EAAE,IAAI,UAAU;AAAA,YAC1E,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,MACJ,WAES,GAAG,0BAA0B,IAAI,KAAK,GAAG,0BAA0B,KAAK,eAAe,GAAG;AAC/F,YAAI,KAAK,gBAAgB,cAAc,GAAG,gBAAgB,KAAK,gBAAgB,UAAU,GAAG;AACxF,gBAAM,aAAa,KAAK,gBAAgB,WAAW;AACnD,qBAAK,YAAL,mBAAc,IAAI,KAAK,KAAK,MAAM,KAAK,iBAAiB,EAAE,IAAI,UAAU;AAAA,QAC5E;AAAA,MACJ,WAES,GAAG,0BAA0B,IAAI,GAAG;AAGzC,cAAM,gBAAgB,KAAK,gBAAgB,QAAQ;AACnD,mBAAK,YAAL,mBAAc,IAAI,KAAK,KAAK,MAAM;AAAA,MACtC;AAEA,SAAG,aAAa,MAAM,KAAK;AAAA,IAC/B;AAEA,UAAM,KAAK,cAAc,CAAC;AAE1B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,WAAoB;AACvB,QAAI,KAAK,OAAO;AACZ,aAAO,KAAK;AAAA,IAChB;AAEA,SAAK,QAAQ,oBAAI,IAAI;AAErB,UAAM,QAAQ,CAAC,SAAkB;AA1FzC;AA2FY,UAAI,GAAG,kBAAkB,IAAI,GAAG;AAC5B,cAAM,WAAW,KAAK,KAAK;AAC3B,cAAM,iBAA+C,oBAAI,IAAI;AAE7D,aAAK,QAAQ,QAAQ,YAAU;AAC3B,gBAAM,MAAM,OAAO,KAAK,QAAQ;AAChC,gBAAM,QAAQ,OAAO,cAAc,OAAO,YAAY,QAAQ,EAAE,QAAQ,SAAS,EAAE,IAAI;AAEvF,yBAAe,IAAI,KAAK,KAAK;AAAA,QACjC,CAAC;AAED,mBAAK,UAAL,mBAAY,IAAI,UAAU;AAAA,MAC9B;AAEA,SAAG,aAAa,MAAM,KAAK;AAAA,IAC/B;AAEA,UAAM,KAAK,cAAc,CAAC;AAE1B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,eAA4B;AAC/B,QAAI,KAAK,WAAW;AAChB,aAAO,KAAK;AAAA,IAChB;AAEA,SAAK,YAAY,oBAAI,IAAI;AAEzB,UAAM,QAAQ,CAAC,SAAkB;AAxHzC;AAyHY,UAAI,GAAG,oBAAoB,IAAI,GAAG;AAC9B,cAAM,cAAa,UAAK,cAAL,mBAAgB,KAAK,cAAY,SAAS,SAAS,GAAG,WAAW;AAEpF,aAAK,gBAAgB,aAAa,QAAQ,iBAAe;AA5HzE,cAAAA;AA6HoB,cAAI,GAAG,aAAa,YAAY,IAAI,KAAK,YAAY,aAAa;AAC9D,kBAAM,OAAO,YAAY,KAAK;AAC9B,kBAAM,QAAQ,KAAK,UAAU,YAAY,WAAW;AAEpD,aAAAA,MAAA,KAAK,cAAL,gBAAAA,IAAgB,IAAI,MAAM;AAAA,cACtB;AAAA,cACA;AAAA,cACA,UAAU,cAAc;AAAA,YAC5B;AAAA,UACJ;AAAA,QACJ,CAAC;AAAA,MACL;AAEA,UAAI,GAAG,oBAAoB,IAAI,KAAK,KAAK,gBAAgB,GAAG,eAAe,KAAK,YAAY,GAAG;AAC3F,aAAK,aAAa,SAAS,QAAQ,QAAM;AA3IzD,cAAAA,KAAAC,KAAAC;AA4IoB,gBAAM,OAAO,GAAG,KAAK;AAErB,eAAIF,MAAA,KAAK,cAAL,gBAAAA,IAAgB,IAAI,OAAO;AAC3B,kBAAM,YAAWC,MAAA,KAAK,cAAL,gBAAAA,IAAgB,IAAI;AAErC,aAAAC,MAAA,KAAK,cAAL,gBAAAA,IAAgB,IAAI,MAAM;AAAA,cACtB;AAAA,cACA,OAAO,SAAS;AAAA,cAChB,UAAU;AAAA,YACd;AAAA,UACJ;AAAA,QACJ,CAAC;AAAA,MACL;AAEA,UAAI,GAAG,mBAAmB,IAAI,GAAG;AAC7B,cAAM,OAAO,KAAK;AAClB,YAAI,GAAG,aAAa,IAAI,OAAK,UAAK,cAAL,mBAAgB,IAAI,KAAK,QAAO;AACzD,gBAAM,YAAW,UAAK,cAAL,mBAAgB,IAAI,KAAK;AAC1C,gBAAM,OAAO;AAEb,qBAAK,cAAL,mBAAgB,IAAI,MAAM;AAAA,YACtB;AAAA,YACA,OAAO,SAAS;AAAA,YAChB,UAAU;AAAA,UACd;AAAA,QACJ;AAAA,MACJ;AAEA,SAAG,aAAa,MAAM,KAAK;AAAA,IAC/B;AAEA,UAAM,KAAK,cAAc,CAAC;AAE1B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEU,aAAa,MAAc,QAAgB,MAAmB;AACpE,WAAO,UAAU,CAAC,CAAC,EAAE,MAAM,QAAQ,IAAI;AAAA,EAC3C;AAAA,EAEU,wBAAwB,UAAwB;AACtD,QAAI,GAAG,2BAA2B,QAAQ,GAAG;AACzC,YAAM,aAAa,SAAS,WAAW,QAAQ;AAC/C,YAAM,eAAe,SAAS,KAAK,QAAQ;AAE3C,YAAM,UAAU,KAAK,aAAa,EAAE,IAAI,UAAU;AAElD,UAAI,SAAS;AACT,eAAO,QAAQ;AAAA,MACnB;AAEA,YAAM,WAAW,KAAK,SAAS,EAAE,IAAI,UAAU;AAE/C,UAAI,UAAU;AACV,eAAO,SAAS,IAAI,YAAY;AAAA,MACpC;AAEA,YAAM,aAAa,KAAK,WAAW,EAAE,IAAI,UAAU;AAEnD,UAAI,YAAY;AACZ,cAAM,eAAe,KAAK,aAAa,YAAY,YAAY,YAAY;AAE3E,YAAI,cAAc;AACd,iBAAO;AAAA,QACX;AAEA,eAAO,UAAU,KAAK,UAAU,EAAE,wBAAwB,QAAQ;AAAA,MACtE;AAEA,aAAO,GAAG,UAAU,IAAI,YAAY;AAAA,IACxC;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,UAAU,MAAqB;AAvN1C;AAwNQ,QAAI,CAAC,MAAM;AACP,aAAO;AAAA,IACX;AAEA,YAAQ,KAAK,MAAM;AAAA,MACf,KAAK,GAAG,WAAW;AACf,eAAQ,KAA0B;AAAA,MACtC,KAAK,GAAG,WAAW;AACf,eAAO;AAAA,MACX,KAAK,GAAG,WAAW;AACf,eAAO;AAAA,MACX,KAAK,GAAG,WAAW;AACf,eAAO;AAAA,MACX,KAAK,GAAG,WAAW;AACf,eAAO,WAAY,KAA2B,IAAI;AAAA,MACtD,KAAK,GAAG,WAAW,YAAY;AAC3B,cAAM,KAAK;AACX,cAAM,OAAO,GAAG;AAEhB,cAAM,SAAQ,UAAK,cAAL,mBAAgB,IAAI;AAClC,YAAI,SAAS,MAAM,UAAU,QAAW;AACpC,iBAAO,MAAM;AAAA,QACjB;AAEA,cAAM,aAAa,KAAK,WAAW,EAAE,IAAI,IAAI;AAC7C,YAAI,YAAY;AAEZ,gBAAM,SAAS,UAAU,KAAK,UAAU;AACxC,gBAAM,WAAW,OAAO,aAAa,EAAE,IAAI,IAAI;AAC/C,cAAI,YAAY,SAAS,UAAU,QAAW;AAC1C,mBAAO,SAAS;AAAA,UACpB;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,MACA,KAAK,GAAG,WAAW;AACf,eAAQ,KAAmC,SAAS,IAAI,aAAW,KAAK,UAAU,OAAO,CAAC;AAAA,MAC9F,KAAK,GAAG,WAAW;AACf,eAAQ,KAAoC,WACvC;AAAA,UACG,CAAC,aACG,GAAG,qBAAqB,QAAQ,KAAK,GAAG,8BAA8B,QAAQ;AAAA,QACtF,EACC;AAAA,UACG,CAAC,KAAK,aAAa;AApQ3C,gBAAAF,KAAA;AAqQ4B,gBAAI,GAAG,uBAAuB,SAAS,IAAI,GAAG;AAC1C,qBAAO;AAAA,YACX;AAEA,kBAAM,MAAO,SAAS,KAA0C;AAChE,gBAAI,QAAQ,KAAK,UAAU,SAAS,WAAW;AAE/C,gBAAI,OAAO,UAAU,cAAYA,MAAA,KAAK,cAAL,gBAAAA,IAAgB,IAAI,SAAQ;AACzD,uBAAQ,gBAAK,cAAL,mBAAgB,IAAI,WAApB,mBAA4B;AAAA,YACxC;AAEA,gBAAI,GAAG,IAAI;AAEX,mBAAO;AAAA,UACX;AAAA,UACA,CAAC;AAAA,QACL;AAAA,MACR,KAAK,GAAG,WAAW,0BAA0B;AACzC,eAAO,KAAK,wBAAwB,IAAI;AAAA,MAC5C;AAAA,MACA;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AAAA,EAEU,mBAAmC;AACzC,QAAI,KAAK,gBAAgB;AACrB,aAAO,KAAK;AAAA,IAChB;AAEA,WAAO,KAAK,kBAAkB,IAAI,eAAe,CAAC;AAAA,EACtD;AAAA,EAEO,kBAAkB,UAA0C;AAC/D,WAAQ,KAAK,iBAAiB,SAAS,WAAW,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,EAC7E;AACJ;","names":["_a","_b","_c"]}
1
+ {"version":3,"sources":["../../../../src/cli/entrypoint/file/SourceFile.ts"],"sourcesContent":["import ts from \"typescript\";\nimport fs from \"fs\";\nimport path from \"path\";\n\nimport {ImportResolver} from \"./resolvers\";\n\nimport injectors from \"./injectors\";\n\nimport {EnumMap, ImportMap, Variable, VariableMap} from \"./types\";\n\nexport default class EntryFile {\n private sourceFile?: ts.SourceFile;\n\n private variables?: VariableMap;\n\n private imports?: ImportMap;\n\n private enums?: EnumMap;\n\n protected importResolver?: ImportResolver;\n\n static make<T extends EntryFile>(this: new (file: string) => T, file: string): T {\n return new this(file);\n }\n\n constructor(protected readonly file: string) {}\n\n public getSourceFile(): ts.SourceFile {\n if (this.sourceFile) {\n return this.sourceFile;\n }\n\n const sourceCode = fs.readFileSync(this.file, \"utf8\");\n\n return (this.sourceFile = ts.createSourceFile(this.file, sourceCode, ts.ScriptTarget.ESNext, true));\n }\n\n public getImports(): ImportMap {\n if (this.imports) {\n return this.imports;\n }\n\n this.imports = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isImportDeclaration(node) && node.moduleSpecifier) {\n const importPath = (node.moduleSpecifier as ts.StringLiteral).text;\n if (node.importClause) {\n // default import: import X from '...'\n if (node.importClause.name) {\n this.imports?.set(node.importClause.name.text, this.getInputResolver().get(importPath));\n }\n // named imports: import { A, B } from '...'\n if (node.importClause.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {\n node.importClause.namedBindings.elements.forEach(el => {\n this.imports?.set(el.name.text, this.getInputResolver().get(importPath));\n });\n }\n }\n }\n // import equals: import X = Y.Z\n else if (ts.isImportEqualsDeclaration(node) && ts.isExternalModuleReference(node.moduleReference)) {\n if (node.moduleReference.expression && ts.isStringLiteral(node.moduleReference.expression)) {\n const importPath = node.moduleReference.expression.text;\n this.imports?.set(node.name.text, this.getInputResolver().get(importPath));\n }\n }\n // import equals with qualified name: import X = Y.Z\n else if (ts.isImportEqualsDeclaration(node)) {\n // For qualified names like chrome.tabs.Tab, we don't need to resolve a path\n // Just store the full qualified name as the \"import path\"\n const qualifiedName = node.moduleReference.getText();\n this.imports?.set(node.name.text, qualifiedName);\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.imports;\n }\n\n public getEnums(): EnumMap {\n if (this.enums) {\n return this.enums;\n }\n\n this.enums = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isEnumDeclaration(node)) {\n const enumName = node.name.text;\n const enumProperties: Map<string, string | number> = new Map();\n\n node.members.forEach(member => {\n const key = member.name.getText();\n const value = member.initializer ? member.initializer.getText().replace(/['\"]/g, \"\") : key;\n\n enumProperties.set(key, value);\n });\n\n this.enums?.set(enumName, enumProperties);\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.enums;\n }\n\n public getVariables(): VariableMap {\n if (this.variables) {\n return this.variables;\n }\n\n this.variables = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isVariableStatement(node)) {\n const isExported = node.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.ExportKeyword);\n\n node.declarationList.declarations.forEach(declaration => {\n if (ts.isIdentifier(declaration.name) && declaration.initializer) {\n const name = declaration.name.text;\n const value = this.parseNode(declaration.initializer);\n\n this.variables?.set(name, {\n name,\n value,\n exported: isExported || false,\n });\n }\n });\n }\n\n if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) {\n node.exportClause.elements.forEach(el => {\n const name = el.name.text;\n\n if (this.variables?.has(name)) {\n const variable = this.variables?.get(name) as Variable;\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true,\n });\n }\n });\n }\n\n if (ts.isExportAssignment(node)) {\n const expr = node.expression;\n if (ts.isIdentifier(expr) && this.variables?.has(expr.text)) {\n const variable = this.variables?.get(expr.text) as Variable;\n const name = \"default\";\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true,\n });\n }\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.variables;\n }\n\n protected resolveValue(from: string, target: string, name: string): any {\n return injectors([])(from, target, name);\n }\n\n protected findPropertyAccessValue(property: ts.Node): any {\n if (ts.isPropertyAccessExpression(property)) {\n const objectName = property.expression.getText();\n const propertyName = property.name.getText();\n\n const varItem = this.getVariables().get(objectName);\n\n if (varItem) {\n return varItem.value;\n }\n\n const enumItem = this.getEnums().get(objectName);\n\n if (enumItem) {\n return enumItem.get(propertyName);\n }\n\n const importItem = this.getImports().get(objectName);\n\n if (importItem) {\n const resolverItem = this.resolveValue(importItem, objectName, propertyName);\n\n if (resolverItem) {\n return resolverItem;\n }\n\n return EntryFile.make(importItem).findPropertyAccessValue(property);\n }\n\n return `${objectName}.${propertyName}`;\n }\n\n return undefined;\n }\n\n public parseNode(node?: ts.Node): any {\n if (!node) {\n return undefined;\n }\n\n switch (node.kind) {\n case ts.SyntaxKind.StringLiteral:\n return (node as ts.StringLiteral).text;\n case ts.SyntaxKind.TrueKeyword:\n return true;\n case ts.SyntaxKind.FalseKeyword:\n return false;\n case ts.SyntaxKind.NullKeyword:\n return null;\n case ts.SyntaxKind.NumericLiteral:\n return parseFloat((node as ts.NumericLiteral).text);\n case ts.SyntaxKind.Identifier: {\n const id = node as ts.Identifier;\n const name = id.text;\n // local variable\n const local = this.variables?.get(name);\n if (local && local.value !== undefined) {\n return local.value;\n }\n // imported constant: try to resolve its value from source file\n const importPath = this.getImports().get(name);\n if (importPath) {\n // load imported file and check its variables\n const parser = EntryFile.make(importPath);\n const imported = parser.getVariables().get(name);\n if (imported && imported.value !== undefined) {\n return imported.value;\n }\n }\n return name;\n }\n case ts.SyntaxKind.ArrayLiteralExpression:\n return (node as ts.ArrayLiteralExpression).elements.map(element => this.parseNode(element));\n case ts.SyntaxKind.ObjectLiteralExpression:\n return (node as ts.ObjectLiteralExpression).properties\n .filter(\n (property): property is ts.PropertyAssignment | ts.ShorthandPropertyAssignment =>\n ts.isPropertyAssignment(property) || ts.isShorthandPropertyAssignment(property)\n )\n .reduce(\n (acc, property) => {\n if (ts.isComputedPropertyName(property.name)) {\n return acc;\n }\n\n const key = (property.name as ts.Identifier | ts.StringLiteral).text;\n\n // Determine the initializer node: for shorthand, use the identifier itself\n const initNode = ts.isShorthandPropertyAssignment(property)\n ? (property.name as ts.Identifier)\n : (property.initializer as ts.Expression | undefined);\n\n let value = this.parseNode(initNode);\n\n // If value is still just an identifier name, resolve from collected variables\n if (typeof value === \"string\" && this.variables?.has(value)) {\n value = this.variables?.get(value)?.value;\n }\n\n acc[key] = value;\n\n return acc;\n },\n {} as Record<string, any>\n );\n case ts.SyntaxKind.PropertyAccessExpression: {\n return this.findPropertyAccessValue(node);\n }\n default:\n return undefined;\n }\n }\n\n protected getInputResolver(): ImportResolver {\n if (this.importResolver) {\n return this.importResolver;\n }\n\n return this.setImportResolver(new ImportResolver());\n }\n\n public setImportResolver(resolver: ImportResolver): ImportResolver {\n return (this.importResolver = resolver.setBaseDir(path.dirname(this.file)));\n }\n}\n"],"mappings":"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","names":["_a","_b","_c"]}
@@ -1,7 +1,7 @@
1
1
  import { Command, Mode, PackageName } from "./../../../../types/app.js";
2
2
  import { Browser } from "./../../../../types/browser.js";
3
3
  import { RelayMethod } from "./../../../../types/relay.js";
4
- import { ContentScriptAppend, ContentScriptDeclarative } from "./../../../../types/content.js";
4
+ import { ContentScriptAppend, ContentScriptDeclarative, ContentScriptMarker } from "./../../../../types/content.js";
5
5
  import { OffscreenReason } from "./../../../../types/offscreen.js";
6
6
  var core_default = () => {
7
7
  const resolvers = [];
@@ -45,6 +45,14 @@ var core_default = () => {
45
45
  value
46
46
  });
47
47
  });
48
+ Object.entries(ContentScriptMarker).forEach(([key, value]) => {
49
+ resolvers.push({
50
+ from: PackageName,
51
+ target: "ContentScriptMarker",
52
+ name: key,
53
+ value
54
+ });
55
+ });
48
56
  Object.entries(RelayMethod).forEach(([key, value]) => {
49
57
  resolvers.push({
50
58
  from: PackageName,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/injectors/core.ts"],"sourcesContent":["import {Command, Mode, PackageName} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {RelayMethod} from \"@typing/relay\";\nimport {ContentScriptAppend, ContentScriptDeclarative} from \"@typing/content\";\nimport {OffscreenReason} from \"@typing/offscreen\";\n\nimport {Injector} from \"../types\";\n\nexport default (): Injector[] => {\n const resolvers: Injector[] = [];\n\n Object.entries(Browser).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"Browser\",\n name: key,\n value,\n });\n });\n\n Object.entries(Mode).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"Mode\",\n name: key,\n value,\n });\n });\n\n Object.entries(Command).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"Command\",\n name: key,\n value,\n });\n });\n\n Object.entries(ContentScriptDeclarative).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"ContentScriptDeclarative\",\n name: key,\n value,\n });\n });\n\n Object.entries(ContentScriptAppend).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"ContentScriptAppend\",\n name: key,\n value,\n });\n });\n\n Object.entries(RelayMethod).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"RelayMethod\",\n name: key,\n value,\n });\n });\n\n Object.entries(OffscreenReason).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"OffscreenReason\",\n name: key,\n value,\n });\n });\n\n return resolvers;\n};\n"],"mappings":"AAAA,SAAQ,SAAS,MAAM,mBAAkB;AACzC,SAAQ,eAAc;AACtB,SAAQ,mBAAkB;AAC1B,SAAQ,qBAAqB,gCAA+B;AAC5D,SAAQ,uBAAsB;AAI9B,IAAO,eAAQ,MAAkB;AAC7B,QAAM,YAAwB,CAAC;AAE/B,SAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC9C,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3C,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC9C,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,wBAAwB,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC/D,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,mBAAmB,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC1D,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,WAAW,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAClD,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,eAAe,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACtD,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO;AACX;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/injectors/core.ts"],"sourcesContent":["import {Command, Mode, PackageName} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {RelayMethod} from \"@typing/relay\";\nimport {ContentScriptAppend, ContentScriptDeclarative, ContentScriptMarker} from \"@typing/content\";\nimport {OffscreenReason} from \"@typing/offscreen\";\n\nimport {Injector} from \"../types\";\n\nexport default (): Injector[] => {\n const resolvers: Injector[] = [];\n\n Object.entries(Browser).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"Browser\",\n name: key,\n value,\n });\n });\n\n Object.entries(Mode).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"Mode\",\n name: key,\n value,\n });\n });\n\n Object.entries(Command).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"Command\",\n name: key,\n value,\n });\n });\n\n Object.entries(ContentScriptDeclarative).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"ContentScriptDeclarative\",\n name: key,\n value,\n });\n });\n\n Object.entries(ContentScriptAppend).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"ContentScriptAppend\",\n name: key,\n value,\n });\n });\n\n Object.entries(ContentScriptMarker).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"ContentScriptMarker\",\n name: key,\n value,\n });\n });\n\n Object.entries(RelayMethod).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"RelayMethod\",\n name: key,\n value,\n });\n });\n\n Object.entries(OffscreenReason).forEach(([key, value]) => {\n resolvers.push({\n from: PackageName,\n target: \"OffscreenReason\",\n name: key,\n value,\n });\n });\n\n return resolvers;\n};\n"],"mappings":"AAAA,SAAQ,SAAS,MAAM,mBAAkB;AACzC,SAAQ,eAAc;AACtB,SAAQ,mBAAkB;AAC1B,SAAQ,qBAAqB,0BAA0B,2BAA0B;AACjF,SAAQ,uBAAsB;AAI9B,IAAO,eAAQ,MAAkB;AAC7B,QAAM,YAAwB,CAAC;AAE/B,SAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC9C,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3C,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC9C,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,wBAAwB,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC/D,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,mBAAmB,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC1D,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,mBAAmB,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC1D,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,WAAW,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAClD,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO,QAAQ,eAAe,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACtD,cAAU,KAAK;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,SAAO;AACX;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import export_default$1 from './AbstractFinder.js';
2
- import { U as EntrypointFile } from '../../../manifest-DAV18Z2K.js';
3
- import '../../../config-DwvfY9v8.js';
2
+ import { Z as EntrypointFile } from '../../../manifest-DbS9rsvj.js';
3
+ import '../../../config-BChBSE68.js';
4
4
  import '@rspack/core';
5
5
  import 'html-rspack-tags-plugin';
6
6
  import '../../../types/app.js';
@@ -1,6 +1,6 @@
1
1
  import export_default$1 from './AbstractOptionsFinder.js';
2
- import { T as EntrypointOptions, U as EntrypointFile } from '../../../manifest-DAV18Z2K.js';
3
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
2
+ import { Y as EntrypointOptions, Z as EntrypointFile } from '../../../manifest-DbS9rsvj.js';
3
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
4
4
  import './AbstractFinder.js';
5
5
  import '@rspack/core';
6
6
  import 'html-rspack-tags-plugin';
@@ -1,5 +1,5 @@
1
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
2
- import { W as EntrypointFinder, U as EntrypointFile } from '../../../manifest-DAV18Z2K.js';
1
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
2
+ import { $ as EntrypointFinder, Z as EntrypointFile } from '../../../manifest-DbS9rsvj.js';
3
3
  import '@rspack/core';
4
4
  import 'html-rspack-tags-plugin';
5
5
  import '../../../types/app.js';
@@ -1,6 +1,6 @@
1
1
  import export_default$1 from './AbstractFinder.js';
2
- import { T as EntrypointOptions, X as EntrypointOptionsFinder, Z as EntrypointParser, U as EntrypointFile, _ as EntrypointType } from '../../../manifest-DAV18Z2K.js';
3
- import '../../../config-DwvfY9v8.js';
2
+ import { Y as EntrypointOptions, a0 as EntrypointOptionsFinder, a2 as EntrypointParser, Z as EntrypointFile, a3 as EntrypointType } from '../../../manifest-DbS9rsvj.js';
3
+ import '../../../config-BChBSE68.js';
4
4
  import '@rspack/core';
5
5
  import 'html-rspack-tags-plugin';
6
6
  import '../../../types/app.js';
@@ -1,8 +1,8 @@
1
1
  import export_default$1 from './AbstractEntrypointFinder.js';
2
- import { T as EntrypointOptions, X as EntrypointOptionsFinder, U as EntrypointFile } from '../../../manifest-DAV18Z2K.js';
2
+ import { Y as EntrypointOptions, a0 as EntrypointOptionsFinder, Z as EntrypointFile } from '../../../manifest-DbS9rsvj.js';
3
3
  import './AbstractOptionsFinder.js';
4
4
  import './AbstractFinder.js';
5
- import '../../../config-DwvfY9v8.js';
5
+ import '../../../config-BChBSE68.js';
6
6
  import '@rspack/core';
7
7
  import 'html-rspack-tags-plugin';
8
8
  import '../../../types/app.js';
@@ -1,7 +1,7 @@
1
1
  import export_default$1 from './AbstractPluginFinder.js';
2
2
  import export_default$2 from '../name/InlineNameGenerator.js';
3
- import { U as EntrypointFile } from '../../../manifest-DAV18Z2K.js';
4
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
3
+ import { Z as EntrypointFile } from '../../../manifest-DbS9rsvj.js';
4
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
5
5
  import { TransportEntrypointOptions, TransportOptions } from '../../../types/transport.js';
6
6
  import './AbstractEntrypointFinder.js';
7
7
  import './AbstractOptionsFinder.js';
@@ -1,7 +1,7 @@
1
1
  import export_default$1 from './AbstractPluginFinder.js';
2
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
2
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
3
3
  import { ViewEntrypointOptions } from '../../../types/view.js';
4
- import { U as EntrypointFile, Y as EntrypointNameGenerator } from '../../../manifest-DAV18Z2K.js';
4
+ import { Z as EntrypointFile, a1 as EntrypointNameGenerator } from '../../../manifest-DbS9rsvj.js';
5
5
  import './AbstractEntrypointFinder.js';
6
6
  import './AbstractOptionsFinder.js';
7
7
  import './AbstractFinder.js';
@@ -1,7 +1,7 @@
1
1
  import export_default$1 from './AbstractFinder.js';
2
2
  import export_default$2 from './AbstractAssetFinder.js';
3
- import { U as EntrypointFile } from '../../../manifest-DAV18Z2K.js';
4
- import { d as PluginAssetKeys, R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
3
+ import { Z as EntrypointFile } from '../../../manifest-DbS9rsvj.js';
4
+ import { d as PluginAssetKeys, R as ReadonlyConfig } from '../../../config-BChBSE68.js';
5
5
  import '@rspack/core';
6
6
  import 'html-rspack-tags-plugin';
7
7
  import '../../../types/app.js';
@@ -1,6 +1,6 @@
1
1
  import export_default$1 from './AbstractPluginFinder.js';
2
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
3
- import { $ as BackgroundEntrypointOptions, _ as EntrypointType, Z as EntrypointParser, X as EntrypointOptionsFinder } from '../../../manifest-DAV18Z2K.js';
2
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
3
+ import { a4 as BackgroundEntrypointOptions, a3 as EntrypointType, a2 as EntrypointParser, a0 as EntrypointOptionsFinder } from '../../../manifest-DbS9rsvj.js';
4
4
  import './AbstractEntrypointFinder.js';
5
5
  import './AbstractOptionsFinder.js';
6
6
  import './AbstractFinder.js';
@@ -1,7 +1,7 @@
1
1
  import export_default$1 from './AbstractPluginFinder.js';
2
2
  import export_default$2 from '../name/InlineNameGenerator.js';
3
- import { a0 as CommandEntrypointOptions, U as EntrypointFile, a1 as CommandOptions, _ as EntrypointType, Z as EntrypointParser, X as EntrypointOptionsFinder } from '../../../manifest-DAV18Z2K.js';
4
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
3
+ import { a5 as CommandEntrypointOptions, Z as EntrypointFile, a6 as CommandOptions, a3 as EntrypointType, a2 as EntrypointParser, a0 as EntrypointOptionsFinder } from '../../../manifest-DbS9rsvj.js';
4
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
5
5
  import './AbstractEntrypointFinder.js';
6
6
  import './AbstractOptionsFinder.js';
7
7
  import './AbstractFinder.js';
@@ -1,6 +1,6 @@
1
1
  import export_default$1 from './AbstractPluginFinder.js';
2
- import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
3
- import { k as ContentScriptEntrypointOptions, _ as EntrypointType, X as EntrypointOptionsFinder, Z as EntrypointParser } from '../../../manifest-DAV18Z2K.js';
2
+ import { R as ReadonlyConfig } from '../../../config-BChBSE68.js';
3
+ import { k as ContentScriptEntrypointOptions, a3 as EntrypointType, a0 as EntrypointOptionsFinder, a2 as EntrypointParser } from '../../../manifest-DbS9rsvj.js';
4
4
  import './AbstractEntrypointFinder.js';
5
5
  import './AbstractOptionsFinder.js';
6
6
  import './AbstractFinder.js';