adnbn 0.5.7 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/dist/cli/builders/app/command.d.ts +3 -6
  2. package/dist/cli/builders/app/index.d.ts +2 -14
  3. package/dist/cli/builders/locale/FirefoxLocaleValidator.d.ts +4 -7
  4. package/dist/cli/builders/locale/LocaleBuilder.d.ts +3 -6
  5. package/dist/cli/builders/locale/LocaleBuilder.js +3 -1
  6. package/dist/cli/builders/locale/LocaleBuilder.js.map +1 -1
  7. package/dist/cli/builders/locale/LocaleStructureValidator.d.ts +8 -0
  8. package/dist/cli/builders/locale/LocaleStructureValidator.js +64 -0
  9. package/dist/cli/builders/locale/LocaleStructureValidator.js.map +1 -0
  10. package/dist/cli/builders/locale/LocaleValidator.d.ts +4 -7
  11. package/dist/cli/builders/locale/LocaleValidator.js +2 -0
  12. package/dist/cli/builders/locale/LocaleValidator.js.map +1 -1
  13. package/dist/cli/builders/locale/OperaLocaleValidator.d.ts +4 -7
  14. package/dist/cli/builders/locale/index.d.ts +10 -19
  15. package/dist/cli/builders/locale/index.js +2 -0
  16. package/dist/cli/builders/locale/index.js.map +1 -1
  17. package/dist/cli/builders/manifest/ManifestBase.d.ts +30 -18
  18. package/dist/cli/builders/manifest/ManifestBase.js +212 -70
  19. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  20. package/dist/cli/builders/manifest/ManifestV2.d.ts +5 -12
  21. package/dist/cli/builders/manifest/ManifestV2.js +8 -7
  22. package/dist/cli/builders/manifest/ManifestV2.js.map +1 -1
  23. package/dist/cli/builders/manifest/ManifestV3.d.ts +5 -12
  24. package/dist/cli/builders/manifest/ManifestV3.js +9 -6
  25. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  26. package/dist/cli/builders/manifest/index.d.ts +3 -14
  27. package/dist/cli/builders/manifest/utils.d.ts +10 -15
  28. package/dist/cli/builders/manifest/utils.js +14 -2
  29. package/dist/cli/builders/manifest/utils.js.map +1 -1
  30. package/dist/cli/bundler/index.d.ts +2 -16
  31. package/dist/cli/bundler/plugins/EntrypointPlugin.d.ts +10 -19
  32. package/dist/cli/bundler/plugins/EntrypointPlugin.js +1 -0
  33. package/dist/cli/bundler/plugins/EntrypointPlugin.js.map +1 -1
  34. package/dist/cli/bundler/plugins/GenerateJsonPlugin.d.ts +5 -7
  35. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js +1 -0
  36. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js.map +1 -1
  37. package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +3 -11
  38. package/dist/cli/bundler/plugins/ManifestPlugin.js +1 -0
  39. package/dist/cli/bundler/plugins/ManifestPlugin.js.map +1 -1
  40. package/dist/cli/bundler/plugins/ReplacePlugin.d.ts +3 -5
  41. package/dist/cli/bundler/plugins/ReplacePlugin.js +1 -0
  42. package/dist/cli/bundler/plugins/ReplacePlugin.js.map +1 -1
  43. package/dist/cli/bundler/plugins/WatchPlugin.d.ts +3 -6
  44. package/dist/cli/bundler/plugins/WatchPlugin.js +1 -0
  45. package/dist/cli/bundler/plugins/WatchPlugin.js.map +1 -1
  46. package/dist/cli/bundler/plugins/index.d.ts +5 -14
  47. package/dist/cli/bundler/utils/index.d.ts +2 -3
  48. package/dist/cli/bundler/utils/optimization.d.ts +2 -5
  49. package/dist/cli/bundler/utils/output.d.ts +2 -5
  50. package/dist/cli/entrypoint/file/ExpressionFile.d.ts +4 -10
  51. package/dist/cli/entrypoint/file/OptionFile.d.ts +3 -9
  52. package/dist/cli/entrypoint/file/SourceFile.d.ts +7 -11
  53. package/dist/cli/entrypoint/file/SourceFile.js +1 -0
  54. package/dist/cli/entrypoint/file/SourceFile.js.map +1 -1
  55. package/dist/cli/entrypoint/file/index.d.ts +4 -8
  56. package/dist/cli/entrypoint/file/injectors/core.d.ts +2 -4
  57. package/dist/cli/entrypoint/file/injectors/index.d.ts +2 -4
  58. package/dist/cli/entrypoint/file/parsers/AbstractParser.d.ts +6 -12
  59. package/dist/cli/entrypoint/file/parsers/AbstractParser.js +1 -0
  60. package/dist/cli/entrypoint/file/parsers/AbstractParser.js.map +1 -1
  61. package/dist/cli/entrypoint/file/parsers/ClassParser.d.ts +9 -15
  62. package/dist/cli/entrypoint/file/parsers/ClassParser.js +3 -0
  63. package/dist/cli/entrypoint/file/parsers/ClassParser.js.map +1 -1
  64. package/dist/cli/entrypoint/file/parsers/FunctionParser.d.ts +9 -17
  65. package/dist/cli/entrypoint/file/parsers/FunctionParser.js +3 -0
  66. package/dist/cli/entrypoint/file/parsers/FunctionParser.js.map +1 -1
  67. package/dist/cli/entrypoint/file/parsers/JSDocParser.d.ts +2 -5
  68. package/dist/cli/entrypoint/file/parsers/NodeFinder.d.ts +4 -10
  69. package/dist/cli/entrypoint/file/parsers/NodeFinder.js +1 -0
  70. package/dist/cli/entrypoint/file/parsers/NodeFinder.js.map +1 -1
  71. package/dist/cli/entrypoint/file/parsers/ObjectParser.d.ts +7 -15
  72. package/dist/cli/entrypoint/file/parsers/ObjectParser.js +1 -0
  73. package/dist/cli/entrypoint/file/parsers/ObjectParser.js.map +1 -1
  74. package/dist/cli/entrypoint/file/parsers/SignatureBuilder.d.ts +4 -12
  75. package/dist/cli/entrypoint/file/parsers/SignatureBuilder.js +5 -4
  76. package/dist/cli/entrypoint/file/parsers/SignatureBuilder.js.map +1 -1
  77. package/dist/cli/entrypoint/file/parsers/TypeResolver.d.ts +5 -11
  78. package/dist/cli/entrypoint/file/parsers/TypeResolver.js +2 -0
  79. package/dist/cli/entrypoint/file/parsers/TypeResolver.js.map +1 -1
  80. package/dist/cli/entrypoint/file/parsers/helpers/memberFilters.d.ts +1 -3
  81. package/dist/cli/entrypoint/file/parsers/index.d.ts +7 -14
  82. package/dist/cli/entrypoint/file/parsers/types.d.ts +4 -6
  83. package/dist/cli/entrypoint/file/resolvers/ImportResolver.d.ts +2 -6
  84. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +1 -0
  85. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
  86. package/dist/cli/entrypoint/file/resolvers/TsResolver.d.ts +2 -5
  87. package/dist/cli/entrypoint/file/resolvers/index.d.ts +2 -3
  88. package/dist/cli/entrypoint/file/types.d.ts +5 -7
  89. package/dist/cli/entrypoint/finder/AbstractAssetFinder.d.ts +3 -16
  90. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.d.ts +4 -17
  91. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js +22 -17
  92. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js.map +1 -1
  93. package/dist/cli/entrypoint/finder/AbstractFinder.d.ts +4 -15
  94. package/dist/cli/entrypoint/finder/AbstractFinder.js +7 -2
  95. package/dist/cli/entrypoint/finder/AbstractFinder.js.map +1 -1
  96. package/dist/cli/entrypoint/finder/AbstractOptionsFinder.d.ts +3 -16
  97. package/dist/cli/entrypoint/finder/AbstractPluginFinder.d.ts +3 -18
  98. package/dist/cli/entrypoint/finder/AbstractTransportFinder.d.ts +9 -26
  99. package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +9 -24
  100. package/dist/cli/entrypoint/finder/AssetPluginFinder.d.ts +8 -19
  101. package/dist/cli/entrypoint/finder/AssetPluginFinder.js +2 -0
  102. package/dist/cli/entrypoint/finder/AssetPluginFinder.js.map +1 -1
  103. package/dist/cli/entrypoint/finder/BackgroundFinder.d.ts +5 -19
  104. package/dist/cli/entrypoint/finder/CommandFinder.d.ts +7 -22
  105. package/dist/cli/entrypoint/finder/ContentFinder.d.ts +5 -19
  106. package/dist/cli/entrypoint/finder/IconFinder.d.ts +12 -25
  107. package/dist/cli/entrypoint/finder/LocaleFinder.d.ts +14 -22
  108. package/dist/cli/entrypoint/finder/LocaleFinder.js +23 -9
  109. package/dist/cli/entrypoint/finder/LocaleFinder.js.map +1 -1
  110. package/dist/cli/entrypoint/finder/OffscreenFinder.d.ts +5 -26
  111. package/dist/cli/entrypoint/finder/OffscreenViewFinder.d.ts +8 -29
  112. package/dist/cli/entrypoint/finder/OffscreenViewFinder.js +1 -0
  113. package/dist/cli/entrypoint/finder/OffscreenViewFinder.js.map +1 -1
  114. package/dist/cli/entrypoint/finder/PageFinder.d.ts +5 -22
  115. package/dist/cli/entrypoint/finder/PluginFinder.d.ts +7 -19
  116. package/dist/cli/entrypoint/finder/PluginFinder.js +2 -0
  117. package/dist/cli/entrypoint/finder/PluginFinder.js.map +1 -1
  118. package/dist/cli/entrypoint/finder/PopupFinder.d.ts +5 -22
  119. package/dist/cli/entrypoint/finder/RelayFinder.d.ts +5 -25
  120. package/dist/cli/entrypoint/finder/ServiceFinder.d.ts +5 -25
  121. package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +5 -22
  122. package/dist/cli/entrypoint/finder/index.d.ts +18 -43
  123. package/dist/cli/entrypoint/index.d.ts +4 -64
  124. package/dist/cli/entrypoint/name/InlineNameGenerator.d.ts +2 -12
  125. package/dist/cli/entrypoint/name/NameGenerator.d.ts +2 -11
  126. package/dist/cli/entrypoint/name/NameGenerator.js +1 -0
  127. package/dist/cli/entrypoint/name/NameGenerator.js.map +1 -1
  128. package/dist/cli/entrypoint/name/index.d.ts +2 -9
  129. package/dist/cli/entrypoint/parser/AbstractParser.d.ts +14 -29
  130. package/dist/cli/entrypoint/parser/AbstractParser.js +1 -0
  131. package/dist/cli/entrypoint/parser/AbstractParser.js.map +1 -1
  132. package/dist/cli/entrypoint/parser/BackgroundParser.d.ts +3 -23
  133. package/dist/cli/entrypoint/parser/CommandParser.d.ts +4 -24
  134. package/dist/cli/entrypoint/parser/CommandParser.js +20 -5
  135. package/dist/cli/entrypoint/parser/CommandParser.js.map +1 -1
  136. package/dist/cli/entrypoint/parser/ContentParser.d.ts +4 -23
  137. package/dist/cli/entrypoint/parser/OffscreenParser.d.ts +3 -28
  138. package/dist/cli/entrypoint/parser/PageParser.d.ts +3 -26
  139. package/dist/cli/entrypoint/parser/PopupParser.d.ts +3 -26
  140. package/dist/cli/entrypoint/parser/RelayParser.d.ts +4 -27
  141. package/dist/cli/entrypoint/parser/ServiceParser.d.ts +3 -27
  142. package/dist/cli/entrypoint/parser/SidebarParser.d.ts +3 -26
  143. package/dist/cli/entrypoint/parser/ViewParser.d.ts +60 -80
  144. package/dist/cli/entrypoint/parser/index.d.ts +9 -38
  145. package/dist/cli/entrypoint/utils/framework.d.ts +3 -12
  146. package/dist/cli/entrypoint/utils/index.d.ts +2 -10
  147. package/dist/cli/entrypoint/utils/resolve.d.ts +3 -5
  148. package/dist/cli/index.d.ts +1 -2
  149. package/dist/cli/plugins/asset.d.ts +2 -15
  150. package/dist/cli/plugins/background/Background.d.ts +4 -21
  151. package/dist/cli/plugins/background/BackgroundEntry.d.ts +7 -21
  152. package/dist/cli/plugins/background/BackgroundEntry.js +1 -0
  153. package/dist/cli/plugins/background/BackgroundEntry.js.map +1 -1
  154. package/dist/cli/plugins/background/BackgroundManifest.d.ts +5 -21
  155. package/dist/cli/plugins/background/Command.d.ts +6 -23
  156. package/dist/cli/plugins/background/Service.d.ts +5 -27
  157. package/dist/cli/plugins/background/ServiceDeclaration.d.ts +3 -17
  158. package/dist/cli/plugins/background/index.d.ts +2 -15
  159. package/dist/cli/plugins/bundler.d.ts +2 -15
  160. package/dist/cli/plugins/content/Content.d.ts +9 -24
  161. package/dist/cli/plugins/content/ContentDriver.d.ts +7 -22
  162. package/dist/cli/plugins/content/ContentDriver.js +1 -0
  163. package/dist/cli/plugins/content/ContentDriver.js.map +1 -1
  164. package/dist/cli/plugins/content/ContentManager.d.ts +8 -19
  165. package/dist/cli/plugins/content/ContentName.d.ts +5 -17
  166. package/dist/cli/plugins/content/ContentName.js +1 -0
  167. package/dist/cli/plugins/content/ContentName.js.map +1 -1
  168. package/dist/cli/plugins/content/Relay.d.ts +9 -30
  169. package/dist/cli/plugins/content/RelayDeclaration.d.ts +3 -17
  170. package/dist/cli/plugins/content/index.d.ts +2 -15
  171. package/dist/cli/plugins/content/types.d.ts +8 -16
  172. package/dist/cli/plugins/content/utils.d.ts +2 -11
  173. package/dist/cli/plugins/dotenv/index.d.ts +3 -16
  174. package/dist/cli/plugins/dotenv/utils.d.ts +4 -7
  175. package/dist/cli/plugins/html.d.ts +2 -15
  176. package/dist/cli/plugins/icon/Icon.d.ts +6 -22
  177. package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +3 -16
  178. package/dist/cli/plugins/icon/declaration/index.d.ts +1 -13
  179. package/dist/cli/plugins/icon/index.d.ts +4 -21
  180. package/dist/cli/plugins/index.d.ts +22 -58
  181. package/dist/cli/plugins/index.js +32 -30
  182. package/dist/cli/plugins/index.js.map +1 -1
  183. package/dist/cli/plugins/locale/Locale.d.ts +3 -20
  184. package/dist/cli/plugins/locale/declaration/LocaleDeclaration.d.ts +4 -16
  185. package/dist/cli/plugins/locale/declaration/index.d.ts +1 -13
  186. package/dist/cli/plugins/locale/declaration/locale.d.ts +61 -11
  187. package/dist/cli/plugins/locale/index.d.ts +2 -15
  188. package/dist/cli/plugins/locale/index.js +44 -49
  189. package/dist/cli/plugins/locale/index.js.map +1 -1
  190. package/dist/cli/plugins/manifest.d.ts +2 -0
  191. package/dist/cli/plugins/manifest.js +27 -0
  192. package/dist/cli/plugins/manifest.js.map +1 -0
  193. package/dist/cli/plugins/meta/AbstractMeta.d.ts +2 -15
  194. package/dist/cli/plugins/meta/AbstractMeta.js +1 -0
  195. package/dist/cli/plugins/meta/AbstractMeta.js.map +1 -1
  196. package/dist/cli/plugins/meta/Author.d.ts +3 -16
  197. package/dist/cli/plugins/meta/Homepage.d.ts +3 -16
  198. package/dist/cli/plugins/meta/Incognito.d.ts +4 -16
  199. package/dist/cli/plugins/meta/SpecificSettings.d.ts +4 -16
  200. package/dist/cli/plugins/meta/index.d.ts +7 -20
  201. package/dist/cli/plugins/offscreen/Offscreen.d.ts +11 -35
  202. package/dist/cli/plugins/offscreen/OffscreenDeclaration.d.ts +3 -17
  203. package/dist/cli/plugins/offscreen/index.d.ts +2 -15
  204. package/dist/cli/plugins/optimization.d.ts +2 -15
  205. package/dist/cli/plugins/output.d.ts +2 -15
  206. package/dist/cli/plugins/page/Page.d.ts +8 -26
  207. package/dist/cli/plugins/page/declaration/PageDeclaration.d.ts +3 -16
  208. package/dist/cli/plugins/page/declaration/index.d.ts +1 -13
  209. package/dist/cli/plugins/page/index.d.ts +2 -15
  210. package/dist/cli/plugins/popup/Popup.d.ts +9 -27
  211. package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +3 -16
  212. package/dist/cli/plugins/popup/declaration/index.d.ts +1 -13
  213. package/dist/cli/plugins/popup/index.d.ts +2 -15
  214. package/dist/cli/plugins/public.d.ts +2 -15
  215. package/dist/cli/plugins/react.d.ts +2 -15
  216. package/dist/cli/plugins/sidebar/Sidebar.d.ts +9 -27
  217. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +3 -16
  218. package/dist/cli/plugins/sidebar/declaration/index.d.ts +1 -13
  219. package/dist/cli/plugins/sidebar/index.d.ts +2 -15
  220. package/dist/cli/plugins/style.d.ts +2 -15
  221. package/dist/cli/plugins/typescript/FileBuilder.d.ts +2 -15
  222. package/dist/cli/plugins/typescript/FileBuilder.js +1 -0
  223. package/dist/cli/plugins/typescript/FileBuilder.js.map +1 -1
  224. package/dist/cli/plugins/typescript/TypescriptConfig.d.ts +4 -17
  225. package/dist/cli/plugins/typescript/declaration/index.d.ts +2 -14
  226. package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.d.ts +4 -17
  227. package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.js +1 -0
  228. package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.js.map +1 -1
  229. package/dist/cli/plugins/typescript/declaration/transport/index.d.ts +1 -13
  230. package/dist/cli/plugins/typescript/declaration/vendor/VendorDeclaration.d.ts +3 -16
  231. package/dist/cli/plugins/typescript/declaration/vendor/index.d.ts +1 -13
  232. package/dist/cli/plugins/typescript/index.d.ts +6 -20
  233. package/dist/cli/plugins/version/AbstractVersion.d.ts +2 -15
  234. package/dist/cli/plugins/version/AbstractVersion.js +2 -1
  235. package/dist/cli/plugins/version/AbstractVersion.js.map +1 -1
  236. package/dist/cli/plugins/version/AddonVersion.d.ts +3 -16
  237. package/dist/cli/plugins/version/BrowserMinimumVersion.d.ts +3 -16
  238. package/dist/cli/plugins/version/index.d.ts +5 -18
  239. package/dist/cli/plugins/view/View.d.ts +10 -24
  240. package/dist/cli/plugins/view/View.js +2 -0
  241. package/dist/cli/plugins/view/View.js.map +1 -1
  242. package/dist/cli/plugins/view/index.d.ts +3 -22
  243. package/dist/cli/resolvers/bundler.d.ts +4 -15
  244. package/dist/cli/resolvers/config.d.ts +2 -14
  245. package/dist/cli/resolvers/config.js +45 -6
  246. package/dist/cli/resolvers/config.js.map +1 -1
  247. package/dist/cli/resolvers/path.d.ts +11 -24
  248. package/dist/cli/resolvers/plugin.d.ts +3 -16
  249. package/dist/cli/utils/fs.d.ts +3 -5
  250. package/dist/cli/utils/path.d.ts +3 -5
  251. package/dist/cli/utils/string.d.ts +2 -4
  252. package/dist/cli/virtual/background.d.ts +1 -0
  253. package/dist/cli/virtual/command.d.ts +1 -0
  254. package/dist/cli/virtual/content.d.ts +1 -0
  255. package/dist/cli/virtual/index.d.ts +9 -0
  256. package/dist/cli/virtual/index.js +2 -2
  257. package/dist/cli/virtual/offscreen.background.d.ts +1 -0
  258. package/dist/cli/virtual/offscreen.d.ts +1 -0
  259. package/dist/cli/virtual/relay.d.ts +1 -0
  260. package/dist/cli/virtual/transport.d.ts +1 -0
  261. package/dist/cli/virtual/view.d.ts +1 -0
  262. package/dist/cli/virtual/virtual.d.ts +38 -38
  263. package/dist/entry/background/Builder.d.ts +3 -12
  264. package/dist/entry/background/Builder.js +1 -0
  265. package/dist/entry/background/Builder.js.map +1 -1
  266. package/dist/entry/background/index.d.ts +3 -12
  267. package/dist/entry/background/resolvers/definition.d.ts +3 -12
  268. package/dist/entry/background/resolvers/index.d.ts +1 -8
  269. package/dist/entry/command/Builder.d.ts +4 -12
  270. package/dist/entry/command/index.d.ts +3 -12
  271. package/dist/entry/command/resolvers/definition.d.ts +4 -13
  272. package/dist/entry/command/resolvers/index.d.ts +1 -8
  273. package/dist/entry/content/adapters/react/Builder.d.ts +3 -17
  274. package/dist/entry/content/adapters/react/Node.d.ts +6 -14
  275. package/dist/entry/content/adapters/react/Node.js +2 -0
  276. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  277. package/dist/entry/content/adapters/react/index.d.ts +4 -18
  278. package/dist/entry/content/adapters/react/resolvers/index.d.ts +1 -8
  279. package/dist/entry/content/adapters/react/resolvers/render.d.ts +2 -11
  280. package/dist/entry/content/adapters/vanilla/Builder.d.ts +3 -17
  281. package/dist/entry/content/adapters/vanilla/Node.d.ts +2 -11
  282. package/dist/entry/content/adapters/vanilla/Node.js +2 -0
  283. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  284. package/dist/entry/content/adapters/vanilla/index.d.ts +4 -18
  285. package/dist/entry/content/core/AbstractMarker.d.ts +2 -11
  286. package/dist/entry/content/core/AbstractMarker.js +1 -0
  287. package/dist/entry/content/core/AbstractMarker.js.map +1 -1
  288. package/dist/entry/content/core/AttributeMarker.d.ts +3 -12
  289. package/dist/entry/content/core/Builder.d.ts +8 -17
  290. package/dist/entry/content/core/Context.d.ts +2 -11
  291. package/dist/entry/content/core/Context.js +1 -0
  292. package/dist/entry/content/core/Context.js.map +1 -1
  293. package/dist/entry/content/core/EventEmitter.d.ts +2 -11
  294. package/dist/entry/content/core/EventNode.d.ts +2 -11
  295. package/dist/entry/content/core/EventNode.js +2 -0
  296. package/dist/entry/content/core/EventNode.js.map +1 -1
  297. package/dist/entry/content/core/ManagedContext.d.ts +3 -12
  298. package/dist/entry/content/core/MarkerNode.d.ts +2 -11
  299. package/dist/entry/content/core/MarkerNode.js +2 -0
  300. package/dist/entry/content/core/MarkerNode.js.map +1 -1
  301. package/dist/entry/content/core/MountBuilder.d.ts +3 -16
  302. package/dist/entry/content/core/MountNode.d.ts +2 -11
  303. package/dist/entry/content/core/MountNode.js +2 -0
  304. package/dist/entry/content/core/MountNode.js.map +1 -1
  305. package/dist/entry/content/core/Node.d.ts +2 -11
  306. package/dist/entry/content/core/Node.js +2 -0
  307. package/dist/entry/content/core/Node.js.map +1 -1
  308. package/dist/entry/content/core/WeakMarker.d.ts +3 -12
  309. package/dist/entry/content/core/resolvers/anchor.d.ts +2 -11
  310. package/dist/entry/content/core/resolvers/container.d.ts +2 -11
  311. package/dist/entry/content/core/resolvers/definition.d.ts +3 -12
  312. package/dist/entry/content/core/resolvers/index.d.ts +6 -13
  313. package/dist/entry/content/core/resolvers/mount.d.ts +2 -11
  314. package/dist/entry/content/core/resolvers/render.d.ts +3 -12
  315. package/dist/entry/content/core/resolvers/watch.d.ts +4 -13
  316. package/dist/entry/content/index.d.ts +1 -8
  317. package/dist/entry/core/Builder.d.ts +2 -11
  318. package/dist/entry/offscreen/Builder.d.ts +8 -25
  319. package/dist/entry/offscreen/Builder.js +8 -1
  320. package/dist/entry/offscreen/Builder.js.map +1 -1
  321. package/dist/entry/offscreen/TransportBuilder.d.ts +6 -24
  322. package/dist/entry/offscreen/index.d.ts +4 -25
  323. package/dist/entry/relay/Builder.d.ts +7 -21
  324. package/dist/entry/relay/Builder.js +1 -0
  325. package/dist/entry/relay/Builder.js.map +1 -1
  326. package/dist/entry/relay/TransportBuilder.d.ts +6 -20
  327. package/dist/entry/relay/index.d.ts +4 -21
  328. package/dist/entry/service/Builder.d.ts +6 -20
  329. package/dist/entry/service/index.d.ts +2 -14
  330. package/dist/entry/transport/AbstractBuilder.d.ts +4 -14
  331. package/dist/entry/transport/index.d.ts +1 -14
  332. package/dist/entry/transport/resolvers/definition.d.ts +7 -20
  333. package/dist/entry/transport/resolvers/index.d.ts +1 -14
  334. package/dist/entry/view/adapters/react/Builder.d.ts +4 -16
  335. package/dist/entry/view/adapters/react/index.d.ts +4 -17
  336. package/dist/entry/view/adapters/react/resolvers/render.d.ts +2 -13
  337. package/dist/entry/view/adapters/vanilla/Builder.d.ts +3 -15
  338. package/dist/entry/view/adapters/vanilla/index.d.ts +4 -16
  339. package/dist/entry/view/core/Builder.d.ts +3 -14
  340. package/dist/entry/view/core/resolvers/container.d.ts +2 -13
  341. package/dist/entry/view/core/resolvers/definition.d.ts +3 -14
  342. package/dist/entry/view/core/resolvers/render.d.ts +3 -14
  343. package/dist/entry/view/index.d.ts +1 -10
  344. package/dist/index.d.ts +1 -43
  345. package/dist/locale/adapters/react/LocaleProvider.d.ts +4 -6
  346. package/dist/locale/adapters/react/LocaleProvider.js +5 -5
  347. package/dist/locale/adapters/react/LocaleProvider.js.map +1 -1
  348. package/dist/locale/adapters/react/context.d.ts +8 -13
  349. package/dist/locale/adapters/react/context.js +2 -5
  350. package/dist/locale/adapters/react/context.js.map +1 -1
  351. package/dist/locale/adapters/react/index.d.ts +2 -6
  352. package/dist/locale/helpers.d.ts +60 -36
  353. package/dist/locale/helpers.js +14 -14
  354. package/dist/locale/helpers.js.map +1 -1
  355. package/dist/locale/index.d.ts +3 -7
  356. package/dist/locale/index.js.map +1 -1
  357. package/dist/locale/providers/AbstractLocale.d.ts +5 -8
  358. package/dist/locale/providers/AbstractLocale.js +9 -6
  359. package/dist/locale/providers/AbstractLocale.js.map +1 -1
  360. package/dist/locale/providers/CustomLocale.d.ts +5 -8
  361. package/dist/locale/providers/CustomLocale.js +3 -1
  362. package/dist/locale/providers/CustomLocale.js.map +1 -1
  363. package/dist/locale/providers/DynamicLocale.d.ts +7 -11
  364. package/dist/locale/providers/DynamicLocale.js +1 -1
  365. package/dist/locale/providers/DynamicLocale.js.map +1 -1
  366. package/dist/locale/providers/NativeLocale.d.ts +7 -10
  367. package/dist/locale/providers/NativeLocale.js.map +1 -1
  368. package/dist/locale/providers/index.d.ts +3 -6
  369. package/dist/locale/utils.d.ts +11 -14
  370. package/dist/main/app.d.ts +1 -1
  371. package/dist/main/app.js +3 -2
  372. package/dist/main/app.js.map +1 -1
  373. package/dist/main/background.d.ts +3 -12
  374. package/dist/main/browser.d.ts +1 -1
  375. package/dist/main/command.d.ts +4 -13
  376. package/dist/main/config.d.ts +3 -16
  377. package/dist/main/config.js.map +1 -1
  378. package/dist/main/content.d.ts +6 -18
  379. package/dist/main/env.d.ts +7 -15
  380. package/dist/main/icon.d.ts +6 -7
  381. package/dist/main/index.d.ts +17 -43
  382. package/dist/main/manifest.d.ts +1 -7
  383. package/dist/main/offscreen.d.ts +9 -22
  384. package/dist/main/offscreen.js +1 -1
  385. package/dist/main/offscreen.js.map +1 -1
  386. package/dist/main/page.d.ts +7 -19
  387. package/dist/main/plugin.d.ts +3 -16
  388. package/dist/main/popup.d.ts +8 -18
  389. package/dist/main/popup.js +2 -2
  390. package/dist/main/popup.js.map +1 -1
  391. package/dist/main/relay.d.ts +8 -21
  392. package/dist/main/service.d.ts +6 -15
  393. package/dist/main/sidebar.d.ts +8 -18
  394. package/dist/main/sidebar.js +2 -2
  395. package/dist/main/sidebar.js.map +1 -1
  396. package/dist/main/view.d.ts +1 -9
  397. package/dist/message/MessageManager.d.ts +2 -5
  398. package/dist/message/adapters/react/index.d.ts +1 -2
  399. package/dist/message/adapters/react/useMessageHandler.d.ts +2 -5
  400. package/dist/message/handlers/AbstractHandler.d.ts +2 -5
  401. package/dist/message/handlers/GeneralHandler.d.ts +3 -6
  402. package/dist/message/handlers/GeneralHandler.js +1 -0
  403. package/dist/message/handlers/GeneralHandler.js.map +1 -1
  404. package/dist/message/handlers/MapHandler.d.ts +3 -6
  405. package/dist/message/handlers/MapHandler.js +1 -0
  406. package/dist/message/handlers/MapHandler.js.map +1 -1
  407. package/dist/message/handlers/SingleHandler.d.ts +3 -6
  408. package/dist/message/handlers/SingleHandler.js +2 -0
  409. package/dist/message/handlers/SingleHandler.js.map +1 -1
  410. package/dist/message/handlers/index.d.ts +3 -5
  411. package/dist/message/index.d.ts +9 -13
  412. package/dist/message/providers/AbstractMessage.d.ts +2 -5
  413. package/dist/message/providers/Message.d.ts +4 -7
  414. package/dist/message/providers/index.d.ts +1 -4
  415. package/dist/offscreen/OffscreenBackground.d.ts +2 -9
  416. package/dist/offscreen/OffscreenBridge.d.ts +8 -9
  417. package/dist/offscreen/OffscreenBridge.js +55 -7
  418. package/dist/offscreen/OffscreenBridge.js.map +1 -1
  419. package/dist/offscreen/OffscreenManager.d.ts +4 -15
  420. package/dist/offscreen/OffscreenMessage.d.ts +2 -14
  421. package/dist/offscreen/index.d.ts +5 -26
  422. package/dist/offscreen/providers/Offscreen.d.ts +3 -14
  423. package/dist/offscreen/providers/ProxyOffscreen.d.ts +7 -18
  424. package/dist/offscreen/providers/ProxyOffscreen.js +44 -23
  425. package/dist/offscreen/providers/ProxyOffscreen.js.map +1 -1
  426. package/dist/offscreen/providers/RegisterOffscreen.d.ts +5 -18
  427. package/dist/offscreen/providers/RegisterOffscreen.js +1 -0
  428. package/dist/offscreen/providers/RegisterOffscreen.js.map +1 -1
  429. package/dist/offscreen/providers/index.d.ts +3 -17
  430. package/dist/offscreen/utils.d.ts +1 -3
  431. package/dist/relay/RelayManager.d.ts +6 -16
  432. package/dist/relay/RelayMessage.d.ts +2 -14
  433. package/dist/relay/RelayPermission.d.ts +4 -15
  434. package/dist/relay/index.d.ts +4 -22
  435. package/dist/relay/providers/ProxyRelay.d.ts +8 -19
  436. package/dist/relay/providers/ProxyRelay.js +2 -0
  437. package/dist/relay/providers/ProxyRelay.js.map +1 -1
  438. package/dist/relay/providers/RegisterRelay.d.ts +4 -16
  439. package/dist/relay/providers/RegisterRelay.js +2 -0
  440. package/dist/relay/providers/RegisterRelay.js.map +1 -1
  441. package/dist/relay/providers/Relay.d.ts +3 -14
  442. package/dist/relay/providers/index.d.ts +3 -18
  443. package/dist/relay/utils.d.ts +3 -5
  444. package/dist/service/ServiceManager.d.ts +4 -15
  445. package/dist/service/ServiceMessage.d.ts +2 -14
  446. package/dist/service/index.d.ts +4 -19
  447. package/dist/service/providers/ProxyService.d.ts +4 -15
  448. package/dist/service/providers/RegisterService.d.ts +3 -15
  449. package/dist/service/providers/RegisterService.js +1 -0
  450. package/dist/service/providers/RegisterService.js.map +1 -1
  451. package/dist/service/providers/Service.d.ts +3 -14
  452. package/dist/service/providers/index.d.ts +3 -15
  453. package/dist/transport/BaseTransport.d.ts +2 -13
  454. package/dist/transport/BaseTransport.js +1 -0
  455. package/dist/transport/BaseTransport.js.map +1 -1
  456. package/dist/transport/ProxyTransport.d.ts +4 -14
  457. package/dist/transport/RegisterTransport.d.ts +4 -16
  458. package/dist/transport/RegisterTransport.js +13 -20
  459. package/dist/transport/RegisterTransport.js.map +1 -1
  460. package/dist/transport/TransportManager.d.ts +2 -13
  461. package/dist/transport/TransportMessage.d.ts +3 -13
  462. package/dist/transport/index.d.ts +1 -9
  463. package/dist/types/app.d.ts +8 -6
  464. package/dist/types/app.js +7 -1
  465. package/dist/types/app.js.map +1 -1
  466. package/dist/types/background.d.ts +20 -7
  467. package/dist/types/browser.d.ts +6 -8
  468. package/dist/types/command.d.ts +27 -7
  469. package/dist/types/config.d.ts +673 -11
  470. package/dist/types/content.d.ts +195 -7
  471. package/dist/types/entrypoint.d.ts +106 -7
  472. package/dist/types/entrypoint.js.map +1 -1
  473. package/dist/types/env.d.ts +4 -6
  474. package/dist/types/framework.d.ts +1 -3
  475. package/dist/types/helpers.d.ts +6 -7
  476. package/dist/types/icon.d.ts +3 -5
  477. package/dist/types/locale.d.ts +35 -29
  478. package/dist/types/locale.js.map +1 -1
  479. package/dist/types/manifest.d.ts +163 -7
  480. package/dist/types/manifest.js.map +1 -1
  481. package/dist/types/message.d.ts +17 -19
  482. package/dist/types/message.js +1 -1
  483. package/dist/types/message.js.map +1 -1
  484. package/dist/types/offscreen.d.ts +13 -23
  485. package/dist/types/offscreen.js +2 -0
  486. package/dist/types/offscreen.js.map +1 -1
  487. package/dist/types/page.d.ts +5 -16
  488. package/dist/types/plugin.d.ts +101 -11
  489. package/dist/types/popup.d.ts +5 -16
  490. package/dist/types/relay.d.ts +13 -21
  491. package/dist/types/service.d.ts +9 -18
  492. package/dist/types/sidebar.d.ts +7 -17
  493. package/dist/types/transport.d.ts +22 -29
  494. package/dist/types/view.d.ts +18 -24
  495. package/package.json +9 -11
  496. package/dist/config-B38J9WIM.d.ts +0 -743
  497. package/dist/manifest-DKvERQ4d.d.ts +0 -503
@@ -1,14 +1,5 @@
1
- export { default as EntrypointPlugin, EntrypointPluginEntryModules, EntrypointPluginModule, EntrypointPluginModules, EntrypointPluginTemplate, EntrypointPluginUpdate } from './EntrypointPlugin.js';
2
- export { default as GenerateJsonPlugin, GenerateJsonPluginData, GenerateJsonPluginUpdate } from './GenerateJsonPlugin.js';
3
- export { default as ManifestPlugin } from './ManifestPlugin.js';
4
- export { default as ReplacePlugin } from './ReplacePlugin.js';
5
- export { default as WatchPlugin } from './WatchPlugin.js';
6
- import '@rspack/core';
7
- import 'rspack-plugin-virtual-module';
8
- import '../../../manifest-DKvERQ4d.js';
9
- import 'react';
10
- import 'utility-types';
11
- import '../../../types/app.js';
12
- import '../../../types/browser.js';
13
- import '../../../types/helpers.js';
14
- import '../../../types/locale.js';
1
+ export { default as EntrypointPlugin, type EntrypointPluginModules, type EntrypointPluginModule, type EntrypointPluginEntryModules, type EntrypointPluginTemplate, type EntrypointPluginUpdate, } from "./EntrypointPlugin.js";
2
+ export { default as GenerateJsonPlugin, type GenerateJsonPluginData, type GenerateJsonPluginUpdate, } from "./GenerateJsonPlugin.js";
3
+ export { default as ManifestPlugin } from "./ManifestPlugin.js";
4
+ export { default as ReplacePlugin } from "./ReplacePlugin.js";
5
+ export { default as WatchPlugin } from "./WatchPlugin.js";
@@ -1,3 +1,2 @@
1
- export { onlyViaTopLevelEntry } from './optimization.js';
2
- export { appFilenameResolver } from './output.js';
3
- import '@rspack/core';
1
+ export * from "./optimization.js";
2
+ export * from "./output.js";
@@ -1,5 +1,2 @@
1
- import { OptimizationSplitChunksCacheGroupTestFn } from '@rspack/core';
2
-
3
- declare const onlyViaTopLevelEntry: (entryTypes: string | string[]) => OptimizationSplitChunksCacheGroupTestFn;
4
-
5
- export { onlyViaTopLevelEntry };
1
+ import { type OptimizationSplitChunksCacheGroupTestFn } from "@rspack/core";
2
+ export declare const onlyViaTopLevelEntry: (entryTypes: string | string[]) => OptimizationSplitChunksCacheGroupTestFn;
@@ -1,5 +1,2 @@
1
- import { Filename } from '@rspack/core';
2
-
3
- declare const appFilenameResolver: (app: string, filename: Filename, dirname?: string) => Extract<Filename, Filename>;
4
-
5
- export { appFilenameResolver };
1
+ import { Filename } from "@rspack/core";
2
+ export declare const appFilenameResolver: (app: string, filename: Filename, dirname?: string) => Extract<Filename, Filename>;
@@ -1,15 +1,11 @@
1
- import ts from 'typescript';
2
- import EntryFile from './SourceFile.js';
3
- import { MemberSignature } from './parsers/types.js';
4
- import './resolvers/ImportResolver.js';
5
- import './resolvers/TsResolver.js';
6
- import './types.js';
7
-
1
+ import ts from "typescript";
2
+ import SourceFile from "./SourceFile.js";
3
+ import { MemberSignature } from "./parsers/types.js";
8
4
  /**
9
5
  * Parses a TypeScript expression (object literal, function, or class)
10
6
  * and builds a full interface of its public members (methods and properties).
11
7
  */
12
- declare class ExpressionFile extends EntryFile {
8
+ export default class ExpressionFile extends SourceFile {
13
9
  protected property?: string;
14
10
  /**
15
11
  * Names of wrapper functions whose first argument should be unwrapped for parsing.
@@ -51,5 +47,3 @@ declare class ExpressionFile extends EntryFile {
51
47
  */
52
48
  private getTypeFromMethodReturn;
53
49
  }
54
-
55
- export { ExpressionFile as default };
@@ -1,10 +1,6 @@
1
- import ts from 'typescript';
2
- import EntryFile from './SourceFile.js';
3
- import './resolvers/ImportResolver.js';
4
- import './resolvers/TsResolver.js';
5
- import './types.js';
6
-
7
- declare class export_default<T extends Record<string, any>> extends EntryFile {
1
+ import ts from "typescript";
2
+ import SourceFile from "./SourceFile.js";
3
+ export default class<T extends Record<string, any>> extends SourceFile {
8
4
  protected definitions: Set<string>;
9
5
  protected definition: string | null | undefined;
10
6
  protected properties: Set<string>;
@@ -16,5 +12,3 @@ declare class export_default<T extends Record<string, any>> extends EntryFile {
16
12
  protected getOptionsFromDefinition(): T;
17
13
  protected getExpressionForOptions(expr: ts.Expression): ts.Expression | undefined;
18
14
  }
19
-
20
- export { export_default as default };
@@ -1,15 +1,13 @@
1
- import ts from 'typescript';
2
- import export_default from './resolvers/ImportResolver.js';
3
- import { ImportMap, EnumMap, VariableMap } from './types.js';
4
- import './resolvers/TsResolver.js';
5
-
6
- declare class EntryFile {
1
+ import ts from "typescript";
2
+ import { ImportResolver } from "./resolvers/index.js";
3
+ import { EnumMap, ImportMap, VariableMap } from "./types.js";
4
+ export default class EntryFile {
7
5
  protected readonly file: string;
8
6
  private sourceFile?;
9
7
  private variables?;
10
8
  private imports?;
11
9
  private enums?;
12
- protected importResolver?: export_default;
10
+ protected importResolver?: ImportResolver;
13
11
  static make<T extends EntryFile>(this: new (file: string) => T, file: string): T;
14
12
  constructor(file: string);
15
13
  getSourceFile(): ts.SourceFile;
@@ -19,8 +17,6 @@ declare class EntryFile {
19
17
  protected resolveValue(from: string, target: string, name: string): any;
20
18
  protected findPropertyAccessValue(property: ts.Node): any;
21
19
  parseNode(node?: ts.Node): any;
22
- protected getInputResolver(): export_default;
23
- setImportResolver(resolver: export_default): export_default;
20
+ protected getInputResolver(): ImportResolver;
21
+ setImportResolver(resolver: ImportResolver): ImportResolver;
24
22
  }
25
-
26
- export { EntryFile as default };
@@ -7,6 +7,7 @@ class EntryFile {
7
7
  constructor(file) {
8
8
  this.file = file;
9
9
  }
10
+ file;
10
11
  sourceFile;
11
12
  variables;
12
13
  imports;
@@ -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 | 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":"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;AAGhE,kBAAM,WAAW,GAAG,8BAA8B,QAAQ,IACnD,SAAS,OACT,SAAS;AAEhB,gBAAI,QAAQ,KAAK,UAAU,QAAQ;AAGnC,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":"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,EAAf;AAAA,EAdvB;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;AAGhE,kBAAM,WAAW,GAAG,8BAA8B,QAAQ,IACnD,SAAS,OACT,SAAS;AAEhB,gBAAI,QAAQ,KAAK,UAAU,QAAQ;AAGnC,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,8 +1,4 @@
1
- export { default as OptionFile } from './OptionFile.js';
2
- export { default as SourceFile } from './SourceFile.js';
3
- export { default as ExpressionFile } from './ExpressionFile.js';
4
- export { default as TsResolver } from './resolvers/TsResolver.js';
5
- export { default as ImportResolver } from './resolvers/ImportResolver.js';
6
- import 'typescript';
7
- import './types.js';
8
- import './parsers/types.js';
1
+ export { default as OptionFile } from "./OptionFile.js";
2
+ export { default as SourceFile } from "./SourceFile.js";
3
+ export { default as ExpressionFile } from "./ExpressionFile.js";
4
+ export * from "./resolvers/index.js";
@@ -1,5 +1,3 @@
1
- import { Injector } from '../types.js';
2
-
1
+ import { Injector } from "../types.js";
3
2
  declare const _default: () => Injector[];
4
-
5
- export { _default as default };
3
+ export default _default;
@@ -1,5 +1,3 @@
1
- import { Injector } from '../types.js';
2
-
1
+ import { Injector } from "../types.js";
3
2
  declare const _default: (resolvers: Injector[]) => (from: string, target: string, name: string) => any;
4
-
5
- export { _default as default };
3
+ export default _default;
@@ -1,21 +1,17 @@
1
- import ts from 'typescript';
2
- import EntryFile from '../SourceFile.js';
3
- import { MemberSignature } from './types.js';
4
- import '../resolvers/ImportResolver.js';
5
- import '../resolvers/TsResolver.js';
6
- import '../types.js';
7
-
1
+ import ts from "typescript";
2
+ import SourceFile from "../SourceFile.js";
3
+ import { MemberSignature } from "./types.js";
8
4
  /**
9
5
  * Abstract base class for all expression parsers.
10
6
  */
11
- declare abstract class AbstractParser {
12
- protected readonly sourceFile: EntryFile;
7
+ export default abstract class AbstractParser {
8
+ protected readonly sourceFile: SourceFile;
13
9
  /**
14
10
  * Constructor for the parser.
15
11
  *
16
12
  * @param sourceFile The source file to parse
17
13
  */
18
- protected constructor(sourceFile: EntryFile);
14
+ protected constructor(sourceFile: SourceFile);
19
15
  /**
20
16
  * Parse a node and return a record of member signatures.
21
17
  *
@@ -38,5 +34,3 @@ declare abstract class AbstractParser {
38
34
  */
39
35
  unwrapExpression(expr: ts.Expression): ts.Expression;
40
36
  }
41
-
42
- export { AbstractParser as default };
@@ -8,6 +8,7 @@ class AbstractParser {
8
8
  constructor(sourceFile) {
9
9
  this.sourceFile = sourceFile;
10
10
  }
11
+ sourceFile;
11
12
  /**
12
13
  * Extracts a textual property name.
13
14
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/AbstractParser.ts"],"sourcesContent":["import ts from \"typescript\";\nimport SourceFile from \"../SourceFile\";\nimport {MemberSignature} from \"./types\";\n\n/**\n * Abstract base class for all expression parsers.\n */\nexport default abstract class AbstractParser {\n /**\n * Constructor for the parser.\n *\n * @param sourceFile The source file to parse\n */\n protected constructor(protected readonly sourceFile: SourceFile) {}\n\n /**\n * Parse a node and return a record of member signatures.\n *\n * @param node The node to parse\n * @returns A record of member signatures or undefined if the node cannot be parsed\n */\n abstract parse(node: ts.Node): Record<string, MemberSignature> | undefined;\n\n /**\n * Extracts a textual property name.\n *\n * @param name The property name node\n * @returns The extracted name as a string\n */\n public getName(name: ts.PropertyName | ts.BindingName | ts.Node): string {\n if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name)) {\n return name.text;\n }\n\n return name.getText();\n }\n\n /**\n * Unwraps an expression by removing type assertions, parentheses, etc.\n *\n * @param expr The expression to unwrap\n * @returns The unwrapped expression\n */\n public unwrapExpression(expr: ts.Expression): ts.Expression {\n // remove `as` and `satisfies` assertions, parentheses\n if (ts.isAsExpression(expr) || ts.isSatisfiesExpression(expr) || ts.isParenthesizedExpression(expr)) {\n return this.unwrapExpression(expr.expression as ts.Expression);\n }\n\n return expr;\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AAOf,MAAO,eAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,YAA+B,YAAwB;AAAxB;AAAA,EAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgB3D,QAAQ,MAA0D;AACrE,QAAI,GAAG,aAAa,IAAI,KAAK,GAAG,gBAAgB,IAAI,KAAK,GAAG,iBAAiB,IAAI,GAAG;AAChF,aAAO,KAAK;AAAA,IAChB;AAEA,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,iBAAiB,MAAoC;AAExD,QAAI,GAAG,eAAe,IAAI,KAAK,GAAG,sBAAsB,IAAI,KAAK,GAAG,0BAA0B,IAAI,GAAG;AACjG,aAAO,KAAK,iBAAiB,KAAK,UAA2B;AAAA,IACjE;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/AbstractParser.ts"],"sourcesContent":["import ts from \"typescript\";\nimport SourceFile from \"../SourceFile\";\nimport {MemberSignature} from \"./types\";\n\n/**\n * Abstract base class for all expression parsers.\n */\nexport default abstract class AbstractParser {\n /**\n * Constructor for the parser.\n *\n * @param sourceFile The source file to parse\n */\n protected constructor(protected readonly sourceFile: SourceFile) {}\n\n /**\n * Parse a node and return a record of member signatures.\n *\n * @param node The node to parse\n * @returns A record of member signatures or undefined if the node cannot be parsed\n */\n abstract parse(node: ts.Node): Record<string, MemberSignature> | undefined;\n\n /**\n * Extracts a textual property name.\n *\n * @param name The property name node\n * @returns The extracted name as a string\n */\n public getName(name: ts.PropertyName | ts.BindingName | ts.Node): string {\n if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name)) {\n return name.text;\n }\n\n return name.getText();\n }\n\n /**\n * Unwraps an expression by removing type assertions, parentheses, etc.\n *\n * @param expr The expression to unwrap\n * @returns The unwrapped expression\n */\n public unwrapExpression(expr: ts.Expression): ts.Expression {\n // remove `as` and `satisfies` assertions, parentheses\n if (ts.isAsExpression(expr) || ts.isSatisfiesExpression(expr) || ts.isParenthesizedExpression(expr)) {\n return this.unwrapExpression(expr.expression as ts.Expression);\n }\n\n return expr;\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AAOf,MAAO,eAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,YAA+B,YAAwB;AAAxB;AAAA,EAAyB;AAAA,EAAzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBlC,QAAQ,MAA0D;AACrE,QAAI,GAAG,aAAa,IAAI,KAAK,GAAG,gBAAgB,IAAI,KAAK,GAAG,iBAAiB,IAAI,GAAG;AAChF,aAAO,KAAK;AAAA,IAChB;AAEA,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,iBAAiB,MAAoC;AAExD,QAAI,GAAG,eAAe,IAAI,KAAK,GAAG,sBAAsB,IAAI,KAAK,GAAG,0BAA0B,IAAI,GAAG;AACjG,aAAO,KAAK,iBAAiB,KAAK,UAA2B;AAAA,IACjE;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1,18 +1,14 @@
1
- import ts from 'typescript';
2
- import EntryFile from '../SourceFile.js';
3
- import AbstractParser from './AbstractParser.js';
4
- import TypeResolver from './TypeResolver.js';
5
- import SignatureBuilder from './SignatureBuilder.js';
6
- import NodeFinder from './NodeFinder.js';
7
- import { MemberSignature } from './types.js';
8
- import '../resolvers/ImportResolver.js';
9
- import '../resolvers/TsResolver.js';
10
- import '../types.js';
11
-
1
+ import ts from "typescript";
2
+ import SourceFile from "../SourceFile.js";
3
+ import AbstractParser from "./AbstractParser.js";
4
+ import TypeResolver from "./TypeResolver.js";
5
+ import SignatureBuilder from "./SignatureBuilder.js";
6
+ import NodeFinder from "./NodeFinder.js";
7
+ import { MemberSignature } from "./types.js";
12
8
  /**
13
9
  * Parses class expressions and declarations.
14
10
  */
15
- declare class ClassParser extends AbstractParser {
11
+ export default class ClassParser extends AbstractParser {
16
12
  private readonly typeResolver;
17
13
  private readonly signatureBuilder;
18
14
  private readonly nodeFinder;
@@ -25,7 +21,7 @@ declare class ClassParser extends AbstractParser {
25
21
  * @param nodeFinder The node finder to use for finding nodes
26
22
  */
27
23
  private readonly jsDocParser;
28
- constructor(sourceFile: EntryFile, typeResolver: TypeResolver, signatureBuilder: SignatureBuilder, nodeFinder: NodeFinder);
24
+ constructor(sourceFile: SourceFile, typeResolver: TypeResolver, signatureBuilder: SignatureBuilder, nodeFinder: NodeFinder);
29
25
  /**
30
26
  * Parses a class expression or declaration: collects public members,
31
27
  * including inherited members from base classes.
@@ -42,5 +38,3 @@ declare class ClassParser extends AbstractParser {
42
38
  */
43
39
  parseFileClass(name: string): Record<string, MemberSignature>;
44
40
  }
45
-
46
- export { ClassParser as default };
@@ -13,6 +13,9 @@ class ClassParser extends AbstractParser {
13
13
  this.nodeFinder = nodeFinder;
14
14
  this.jsDocParser = new JSDocParser();
15
15
  }
16
+ typeResolver;
17
+ signatureBuilder;
18
+ nodeFinder;
16
19
  /**
17
20
  * Constructor for the ClassParser.
18
21
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/ClassParser.ts"],"sourcesContent":["import ts from \"typescript\";\n\nimport SourceFile from \"../SourceFile\";\nimport AbstractParser from \"./AbstractParser\";\nimport TypeResolver from \"./TypeResolver\";\nimport SignatureBuilder from \"./SignatureBuilder\";\nimport NodeFinder from \"./NodeFinder\";\nimport JSDocParser from \"./JSDocParser\";\n\nimport {shouldIncludeMember} from \"./helpers/memberFilters\";\n\nimport {MemberSignature} from \"./types\";\n\n/**\n * Parses class expressions and declarations.\n */\nexport default class ClassParser extends AbstractParser {\n /**\n * Constructor for the ClassParser.\n *\n * @param sourceFile The source file to parse\n * @param typeResolver The type resolver to use for resolving types\n * @param signatureBuilder The signature builder to use for building signatures\n * @param nodeFinder The node finder to use for finding nodes\n */\n private readonly jsDocParser: JSDocParser;\n\n constructor(\n sourceFile: SourceFile,\n private readonly typeResolver: TypeResolver,\n private readonly signatureBuilder: SignatureBuilder,\n private readonly nodeFinder: NodeFinder\n ) {\n super(sourceFile);\n\n this.jsDocParser = new JSDocParser();\n }\n\n /**\n * Parses a class expression or declaration: collects public members,\n * including inherited members from base classes.\n *\n * @param node The class expression or declaration to parse\n * @returns A record of member signatures\n */\n public parse(node: ts.ClassExpression | ts.ClassDeclaration): Record<string, MemberSignature> {\n let members: Record<string, MemberSignature> = {};\n // inherit from base class(es)\n\n if (node.heritageClauses) {\n for (const clause of node.heritageClauses) {\n if (clause.token === ts.SyntaxKind.ExtendsKeyword) {\n for (const typeNode of clause.types) {\n const expr = typeNode.expression;\n\n if (ts.isIdentifier(expr)) {\n Object.assign(members, this.parseFileClass(expr.text));\n }\n }\n }\n }\n }\n\n // own members\n for (const member of node.members) {\n // Parameter properties in constructor: include only when extracting a specific property\n if (ts.isConstructorDeclaration(member)) {\n // include public parameter properties: e.g. constructor(public foo: string)\n for (const param of member.parameters) {\n const mods = ts.getCombinedModifierFlags(param);\n\n if (mods & ts.ModifierFlags.Public) {\n const name = ts.isIdentifier(param.name) ? param.name.text : param.name.getText();\n\n // Skip constructor parameters that start with underscore\n if (!shouldIncludeMember(name)) {\n continue;\n }\n\n const type = param.type ? param.type.getText() : \"any\";\n members[name] = {kind: \"property\", type};\n }\n }\n\n continue;\n }\n\n // only public instance members (skip private, protected, or static members)\n const flags = ts.getCombinedModifierFlags(member);\n\n if (flags & (ts.ModifierFlags.Private | ts.ModifierFlags.Protected | ts.ModifierFlags.Static)) {\n continue;\n }\n\n // determine member name\n const name =\n member.name && ts.isIdentifier(member.name)\n ? member.name.text\n : member.name\n ? member.name.getText()\n : \"\";\n\n if (!name) continue;\n\n // Skip members that start with underscore\n if (!shouldIncludeMember(name)) {\n continue;\n }\n\n if (ts.isMethodDeclaration(member) || ts.isGetAccessorDeclaration(member)) {\n members[name] = this.signatureBuilder.getMethodSignature(member as ts.MethodDeclaration);\n } else if (ts.isPropertyDeclaration(member)) {\n // Check for JSDoc @type annotation\n const jsDocType = this.jsDocParser.getJSDocType(member);\n const tsType = member.type ? this.typeResolver.resolveTypeNode(member.type) : \"any\";\n const type = jsDocType || tsType;\n const optional = member.questionToken !== undefined;\n members[name] = {kind: \"property\", type, optional};\n }\n }\n\n return members;\n }\n\n /**\n * Finds and parses a class by name in current or imported files.\n *\n * @param name The name of the class to find\n * @returns A record of member signatures\n */\n public parseFileClass(name: string): Record<string, MemberSignature> {\n // current file\n const decl = this.nodeFinder.findClassDeclaration(name);\n\n if (decl) {\n return this.parse(decl);\n }\n\n // imported file\n const importPath = this.sourceFile.getImports().get(name);\n\n if (importPath) {\n const parser = (this.sourceFile.constructor as typeof SourceFile).make(importPath);\n const sf = parser.getSourceFile();\n\n // Try named class export\n let found: ts.ClassDeclaration | undefined;\n const find = (node: ts.Node) => {\n if (ts.isClassDeclaration(node) && node.name?.text === name) {\n found = node;\n } else {\n ts.forEachChild(node, find);\n }\n };\n\n ts.forEachChild(sf, find);\n\n if (found) {\n // Create a new ClassParser for the imported file\n const typeResolver = new TypeResolver(parser);\n const nodeFinder = new NodeFinder(parser);\n const signatureBuilder = new SignatureBuilder(typeResolver);\n const classParser = new ClassParser(parser, typeResolver, signatureBuilder, nodeFinder);\n return classParser.parse(found);\n }\n\n // Try default exported anonymous class\n let defaultClass: ts.ClassDeclaration | undefined;\n\n const findDefault = (node: ts.Node) => {\n if (\n ts.isClassDeclaration(node) &&\n node.modifiers &&\n node.modifiers.some(m => m.kind === ts.SyntaxKind.DefaultKeyword)\n ) {\n defaultClass = node;\n } else {\n ts.forEachChild(node, findDefault);\n }\n };\n\n ts.forEachChild(sf, findDefault);\n\n if (defaultClass) {\n // Create a new ClassParser for the imported file\n const typeResolver = new TypeResolver(parser);\n const nodeFinder = new NodeFinder(parser);\n const signatureBuilder = new SignatureBuilder(typeResolver);\n const classParser = new ClassParser(parser, typeResolver, signatureBuilder, nodeFinder);\n return classParser.parse(defaultClass);\n }\n }\n\n return {};\n }\n}\n"],"mappings":"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","names":["name"]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/ClassParser.ts"],"sourcesContent":["import ts from \"typescript\";\n\nimport SourceFile from \"../SourceFile\";\nimport AbstractParser from \"./AbstractParser\";\nimport TypeResolver from \"./TypeResolver\";\nimport SignatureBuilder from \"./SignatureBuilder\";\nimport NodeFinder from \"./NodeFinder\";\nimport JSDocParser from \"./JSDocParser\";\n\nimport {shouldIncludeMember} from \"./helpers/memberFilters\";\n\nimport {MemberSignature} from \"./types\";\n\n/**\n * Parses class expressions and declarations.\n */\nexport default class ClassParser extends AbstractParser {\n /**\n * Constructor for the ClassParser.\n *\n * @param sourceFile The source file to parse\n * @param typeResolver The type resolver to use for resolving types\n * @param signatureBuilder The signature builder to use for building signatures\n * @param nodeFinder The node finder to use for finding nodes\n */\n private readonly jsDocParser: JSDocParser;\n\n constructor(\n sourceFile: SourceFile,\n private readonly typeResolver: TypeResolver,\n private readonly signatureBuilder: SignatureBuilder,\n private readonly nodeFinder: NodeFinder\n ) {\n super(sourceFile);\n\n this.jsDocParser = new JSDocParser();\n }\n\n /**\n * Parses a class expression or declaration: collects public members,\n * including inherited members from base classes.\n *\n * @param node The class expression or declaration to parse\n * @returns A record of member signatures\n */\n public parse(node: ts.ClassExpression | ts.ClassDeclaration): Record<string, MemberSignature> {\n let members: Record<string, MemberSignature> = {};\n // inherit from base class(es)\n\n if (node.heritageClauses) {\n for (const clause of node.heritageClauses) {\n if (clause.token === ts.SyntaxKind.ExtendsKeyword) {\n for (const typeNode of clause.types) {\n const expr = typeNode.expression;\n\n if (ts.isIdentifier(expr)) {\n Object.assign(members, this.parseFileClass(expr.text));\n }\n }\n }\n }\n }\n\n // own members\n for (const member of node.members) {\n // Parameter properties in constructor: include only when extracting a specific property\n if (ts.isConstructorDeclaration(member)) {\n // include public parameter properties: e.g. constructor(public foo: string)\n for (const param of member.parameters) {\n const mods = ts.getCombinedModifierFlags(param);\n\n if (mods & ts.ModifierFlags.Public) {\n const name = ts.isIdentifier(param.name) ? param.name.text : param.name.getText();\n\n // Skip constructor parameters that start with underscore\n if (!shouldIncludeMember(name)) {\n continue;\n }\n\n const type = param.type ? param.type.getText() : \"any\";\n members[name] = {kind: \"property\", type};\n }\n }\n\n continue;\n }\n\n // only public instance members (skip private, protected, or static members)\n const flags = ts.getCombinedModifierFlags(member);\n\n if (flags & (ts.ModifierFlags.Private | ts.ModifierFlags.Protected | ts.ModifierFlags.Static)) {\n continue;\n }\n\n // determine member name\n const name =\n member.name && ts.isIdentifier(member.name)\n ? member.name.text\n : member.name\n ? member.name.getText()\n : \"\";\n\n if (!name) continue;\n\n // Skip members that start with underscore\n if (!shouldIncludeMember(name)) {\n continue;\n }\n\n if (ts.isMethodDeclaration(member) || ts.isGetAccessorDeclaration(member)) {\n members[name] = this.signatureBuilder.getMethodSignature(member as ts.MethodDeclaration);\n } else if (ts.isPropertyDeclaration(member)) {\n // Check for JSDoc @type annotation\n const jsDocType = this.jsDocParser.getJSDocType(member);\n const tsType = member.type ? this.typeResolver.resolveTypeNode(member.type) : \"any\";\n const type = jsDocType || tsType;\n const optional = member.questionToken !== undefined;\n members[name] = {kind: \"property\", type, optional};\n }\n }\n\n return members;\n }\n\n /**\n * Finds and parses a class by name in current or imported files.\n *\n * @param name The name of the class to find\n * @returns A record of member signatures\n */\n public parseFileClass(name: string): Record<string, MemberSignature> {\n // current file\n const decl = this.nodeFinder.findClassDeclaration(name);\n\n if (decl) {\n return this.parse(decl);\n }\n\n // imported file\n const importPath = this.sourceFile.getImports().get(name);\n\n if (importPath) {\n const parser = (this.sourceFile.constructor as typeof SourceFile).make(importPath);\n const sf = parser.getSourceFile();\n\n // Try named class export\n let found: ts.ClassDeclaration | undefined;\n const find = (node: ts.Node) => {\n if (ts.isClassDeclaration(node) && node.name?.text === name) {\n found = node;\n } else {\n ts.forEachChild(node, find);\n }\n };\n\n ts.forEachChild(sf, find);\n\n if (found) {\n // Create a new ClassParser for the imported file\n const typeResolver = new TypeResolver(parser);\n const nodeFinder = new NodeFinder(parser);\n const signatureBuilder = new SignatureBuilder(typeResolver);\n const classParser = new ClassParser(parser, typeResolver, signatureBuilder, nodeFinder);\n return classParser.parse(found);\n }\n\n // Try default exported anonymous class\n let defaultClass: ts.ClassDeclaration | undefined;\n\n const findDefault = (node: ts.Node) => {\n if (\n ts.isClassDeclaration(node) &&\n node.modifiers &&\n node.modifiers.some(m => m.kind === ts.SyntaxKind.DefaultKeyword)\n ) {\n defaultClass = node;\n } else {\n ts.forEachChild(node, findDefault);\n }\n };\n\n ts.forEachChild(sf, findDefault);\n\n if (defaultClass) {\n // Create a new ClassParser for the imported file\n const typeResolver = new TypeResolver(parser);\n const nodeFinder = new NodeFinder(parser);\n const signatureBuilder = new SignatureBuilder(typeResolver);\n const classParser = new ClassParser(parser, typeResolver, signatureBuilder, nodeFinder);\n return classParser.parse(defaultClass);\n }\n }\n\n return {};\n }\n}\n"],"mappings":"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","names":["name"]}
@@ -1,20 +1,14 @@
1
- import ts from 'typescript';
2
- import EntryFile from '../SourceFile.js';
3
- import AbstractParser from './AbstractParser.js';
4
- import NodeFinder from './NodeFinder.js';
5
- import ClassParser from './ClassParser.js';
6
- import ObjectParser from './ObjectParser.js';
7
- import { MemberSignature } from './types.js';
8
- import '../resolvers/ImportResolver.js';
9
- import '../resolvers/TsResolver.js';
10
- import '../types.js';
11
- import './TypeResolver.js';
12
- import './SignatureBuilder.js';
13
-
1
+ import ts from "typescript";
2
+ import SourceFile from "../SourceFile.js";
3
+ import AbstractParser from "./AbstractParser.js";
4
+ import NodeFinder from "./NodeFinder.js";
5
+ import ClassParser from "./ClassParser.js";
6
+ import ObjectParser from "./ObjectParser.js";
7
+ import { MemberSignature } from "./types.js";
14
8
  /**
15
9
  * Parses function expressions and arrow functions.
16
10
  */
17
- declare class FunctionParser extends AbstractParser {
11
+ export default class FunctionParser extends AbstractParser {
18
12
  private readonly nodeFinder;
19
13
  private readonly objectParser;
20
14
  private readonly classParser;
@@ -26,7 +20,7 @@ declare class FunctionParser extends AbstractParser {
26
20
  * @param objectParser The object parser to use for parsing object literals
27
21
  * @param classParser The class parser to use for parsing classes
28
22
  */
29
- constructor(sourceFile: EntryFile, nodeFinder: NodeFinder, objectParser: ObjectParser, classParser: ClassParser);
23
+ constructor(sourceFile: SourceFile, nodeFinder: NodeFinder, objectParser: ObjectParser, classParser: ClassParser);
30
24
  /**
31
25
  * Parses a function or arrow function: finds its return expression,
32
26
  * then parses that if it's an object literal or a class instantiation.
@@ -36,5 +30,3 @@ declare class FunctionParser extends AbstractParser {
36
30
  */
37
31
  parse(fn: ts.FunctionExpression | ts.ArrowFunction): Record<string, MemberSignature> | undefined;
38
32
  }
39
-
40
- export { FunctionParser as default };
@@ -15,6 +15,9 @@ class FunctionParser extends AbstractParser {
15
15
  this.objectParser = objectParser;
16
16
  this.classParser = classParser;
17
17
  }
18
+ nodeFinder;
19
+ objectParser;
20
+ classParser;
18
21
  /**
19
22
  * Parses a function or arrow function: finds its return expression,
20
23
  * then parses that if it's an object literal or a class instantiation.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/FunctionParser.ts"],"sourcesContent":["import ts from \"typescript\";\n\nimport SourceFile from \"../SourceFile\";\nimport AbstractParser from \"./AbstractParser\";\nimport NodeFinder from \"./NodeFinder\";\nimport ClassParser from \"./ClassParser\";\nimport ObjectParser from \"./ObjectParser\";\n\nimport {MemberSignature} from \"./types\";\n\n/**\n * Parses function expressions and arrow functions.\n */\nexport default class FunctionParser extends AbstractParser {\n /**\n * Constructor for the FunctionParser.\n *\n * @param sourceFile The source file to parse\n * @param nodeFinder The node finder to use for finding nodes\n * @param objectParser The object parser to use for parsing object literals\n * @param classParser The class parser to use for parsing classes\n */\n constructor(\n sourceFile: SourceFile,\n private readonly nodeFinder: NodeFinder,\n private readonly objectParser: ObjectParser,\n private readonly classParser: ClassParser\n ) {\n super(sourceFile);\n }\n\n /**\n * Parses a function or arrow function: finds its return expression,\n * then parses that if it's an object literal or a class instantiation.\n *\n * @param fn The function expression or arrow function to parse\n * @returns A record of member signatures or undefined if the function cannot be parsed\n */\n public parse(fn: ts.FunctionExpression | ts.ArrowFunction): Record<string, MemberSignature> | undefined {\n let retExpr: ts.Expression | undefined;\n\n // block-bodied function\n if (ts.isBlock(fn.body)) {\n for (const stmt of fn.body.statements) {\n if (ts.isReturnStatement(stmt) && stmt.expression) {\n retExpr = stmt.expression;\n break;\n }\n }\n } else {\n // concise arrow\n retExpr = fn.body;\n }\n\n if (!retExpr) return undefined;\n\n // unwrap assertions, parentheses, wrapper calls\n const expr = this.unwrapExpression(retExpr);\n\n // object literal return\n if (ts.isObjectLiteralExpression(expr)) {\n return this.objectParser.parse(expr);\n }\n\n // class instance return: new ClassName(...) or inline class expression\n if (ts.isNewExpression(expr)) {\n const ctor = expr.expression;\n\n // external named class\n if (ts.isIdentifier(ctor)) {\n return this.classParser.parseFileClass(ctor.text);\n }\n\n // inline anonymous class expression\n if (ts.isClassExpression(ctor)) {\n return this.classParser.parse(ctor);\n }\n }\n\n // variable reference return: identifier pointing to object or class instance\n if (ts.isIdentifier(retExpr)) {\n const name = retExpr.text;\n const decl = this.nodeFinder.findVariableDeclaration(name);\n\n if (decl && decl.initializer) {\n const init = decl.initializer;\n\n if (ts.isObjectLiteralExpression(init)) {\n return this.objectParser.parse(init);\n }\n\n if (ts.isNewExpression(init)) {\n const ctor2 = init.expression;\n\n if (ts.isIdentifier(ctor2)) {\n return this.classParser.parseFileClass(ctor2.text);\n }\n\n if (ts.isClassExpression(ctor2)) {\n return this.classParser.parse(ctor2);\n }\n }\n }\n }\n\n return undefined;\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AAGf,OAAO,oBAAoB;AAU3B,MAAO,uBAAqC,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,YACI,YACiB,YACA,cACA,aACnB;AACE,UAAM,UAAU;AAJC;AACA;AACA;AAAA,EAGrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,MAAM,IAA2F;AACpG,QAAI;AAGJ,QAAI,GAAG,QAAQ,GAAG,IAAI,GAAG;AACrB,iBAAW,QAAQ,GAAG,KAAK,YAAY;AACnC,YAAI,GAAG,kBAAkB,IAAI,KAAK,KAAK,YAAY;AAC/C,oBAAU,KAAK;AACf;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,OAAO;AAEH,gBAAU,GAAG;AAAA,IACjB;AAEA,QAAI,CAAC,QAAS,QAAO;AAGrB,UAAM,OAAO,KAAK,iBAAiB,OAAO;AAG1C,QAAI,GAAG,0BAA0B,IAAI,GAAG;AACpC,aAAO,KAAK,aAAa,MAAM,IAAI;AAAA,IACvC;AAGA,QAAI,GAAG,gBAAgB,IAAI,GAAG;AAC1B,YAAM,OAAO,KAAK;AAGlB,UAAI,GAAG,aAAa,IAAI,GAAG;AACvB,eAAO,KAAK,YAAY,eAAe,KAAK,IAAI;AAAA,MACpD;AAGA,UAAI,GAAG,kBAAkB,IAAI,GAAG;AAC5B,eAAO,KAAK,YAAY,MAAM,IAAI;AAAA,MACtC;AAAA,IACJ;AAGA,QAAI,GAAG,aAAa,OAAO,GAAG;AAC1B,YAAM,OAAO,QAAQ;AACrB,YAAM,OAAO,KAAK,WAAW,wBAAwB,IAAI;AAEzD,UAAI,QAAQ,KAAK,aAAa;AAC1B,cAAM,OAAO,KAAK;AAElB,YAAI,GAAG,0BAA0B,IAAI,GAAG;AACpC,iBAAO,KAAK,aAAa,MAAM,IAAI;AAAA,QACvC;AAEA,YAAI,GAAG,gBAAgB,IAAI,GAAG;AAC1B,gBAAM,QAAQ,KAAK;AAEnB,cAAI,GAAG,aAAa,KAAK,GAAG;AACxB,mBAAO,KAAK,YAAY,eAAe,MAAM,IAAI;AAAA,UACrD;AAEA,cAAI,GAAG,kBAAkB,KAAK,GAAG;AAC7B,mBAAO,KAAK,YAAY,MAAM,KAAK;AAAA,UACvC;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/FunctionParser.ts"],"sourcesContent":["import ts from \"typescript\";\n\nimport SourceFile from \"../SourceFile\";\nimport AbstractParser from \"./AbstractParser\";\nimport NodeFinder from \"./NodeFinder\";\nimport ClassParser from \"./ClassParser\";\nimport ObjectParser from \"./ObjectParser\";\n\nimport {MemberSignature} from \"./types\";\n\n/**\n * Parses function expressions and arrow functions.\n */\nexport default class FunctionParser extends AbstractParser {\n /**\n * Constructor for the FunctionParser.\n *\n * @param sourceFile The source file to parse\n * @param nodeFinder The node finder to use for finding nodes\n * @param objectParser The object parser to use for parsing object literals\n * @param classParser The class parser to use for parsing classes\n */\n constructor(\n sourceFile: SourceFile,\n private readonly nodeFinder: NodeFinder,\n private readonly objectParser: ObjectParser,\n private readonly classParser: ClassParser\n ) {\n super(sourceFile);\n }\n\n /**\n * Parses a function or arrow function: finds its return expression,\n * then parses that if it's an object literal or a class instantiation.\n *\n * @param fn The function expression or arrow function to parse\n * @returns A record of member signatures or undefined if the function cannot be parsed\n */\n public parse(fn: ts.FunctionExpression | ts.ArrowFunction): Record<string, MemberSignature> | undefined {\n let retExpr: ts.Expression | undefined;\n\n // block-bodied function\n if (ts.isBlock(fn.body)) {\n for (const stmt of fn.body.statements) {\n if (ts.isReturnStatement(stmt) && stmt.expression) {\n retExpr = stmt.expression;\n break;\n }\n }\n } else {\n // concise arrow\n retExpr = fn.body;\n }\n\n if (!retExpr) return undefined;\n\n // unwrap assertions, parentheses, wrapper calls\n const expr = this.unwrapExpression(retExpr);\n\n // object literal return\n if (ts.isObjectLiteralExpression(expr)) {\n return this.objectParser.parse(expr);\n }\n\n // class instance return: new ClassName(...) or inline class expression\n if (ts.isNewExpression(expr)) {\n const ctor = expr.expression;\n\n // external named class\n if (ts.isIdentifier(ctor)) {\n return this.classParser.parseFileClass(ctor.text);\n }\n\n // inline anonymous class expression\n if (ts.isClassExpression(ctor)) {\n return this.classParser.parse(ctor);\n }\n }\n\n // variable reference return: identifier pointing to object or class instance\n if (ts.isIdentifier(retExpr)) {\n const name = retExpr.text;\n const decl = this.nodeFinder.findVariableDeclaration(name);\n\n if (decl && decl.initializer) {\n const init = decl.initializer;\n\n if (ts.isObjectLiteralExpression(init)) {\n return this.objectParser.parse(init);\n }\n\n if (ts.isNewExpression(init)) {\n const ctor2 = init.expression;\n\n if (ts.isIdentifier(ctor2)) {\n return this.classParser.parseFileClass(ctor2.text);\n }\n\n if (ts.isClassExpression(ctor2)) {\n return this.classParser.parse(ctor2);\n }\n }\n }\n }\n\n return undefined;\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AAGf,OAAO,oBAAoB;AAU3B,MAAO,uBAAqC,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,YACI,YACiB,YACA,cACA,aACnB;AACE,UAAM,UAAU;AAJC;AACA;AACA;AAAA,EAGrB;AAAA,EALqB;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYd,MAAM,IAA2F;AACpG,QAAI;AAGJ,QAAI,GAAG,QAAQ,GAAG,IAAI,GAAG;AACrB,iBAAW,QAAQ,GAAG,KAAK,YAAY;AACnC,YAAI,GAAG,kBAAkB,IAAI,KAAK,KAAK,YAAY;AAC/C,oBAAU,KAAK;AACf;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,OAAO;AAEH,gBAAU,GAAG;AAAA,IACjB;AAEA,QAAI,CAAC,QAAS,QAAO;AAGrB,UAAM,OAAO,KAAK,iBAAiB,OAAO;AAG1C,QAAI,GAAG,0BAA0B,IAAI,GAAG;AACpC,aAAO,KAAK,aAAa,MAAM,IAAI;AAAA,IACvC;AAGA,QAAI,GAAG,gBAAgB,IAAI,GAAG;AAC1B,YAAM,OAAO,KAAK;AAGlB,UAAI,GAAG,aAAa,IAAI,GAAG;AACvB,eAAO,KAAK,YAAY,eAAe,KAAK,IAAI;AAAA,MACpD;AAGA,UAAI,GAAG,kBAAkB,IAAI,GAAG;AAC5B,eAAO,KAAK,YAAY,MAAM,IAAI;AAAA,MACtC;AAAA,IACJ;AAGA,QAAI,GAAG,aAAa,OAAO,GAAG;AAC1B,YAAM,OAAO,QAAQ;AACrB,YAAM,OAAO,KAAK,WAAW,wBAAwB,IAAI;AAEzD,UAAI,QAAQ,KAAK,aAAa;AAC1B,cAAM,OAAO,KAAK;AAElB,YAAI,GAAG,0BAA0B,IAAI,GAAG;AACpC,iBAAO,KAAK,aAAa,MAAM,IAAI;AAAA,QACvC;AAEA,YAAI,GAAG,gBAAgB,IAAI,GAAG;AAC1B,gBAAM,QAAQ,KAAK;AAEnB,cAAI,GAAG,aAAa,KAAK,GAAG;AACxB,mBAAO,KAAK,YAAY,eAAe,MAAM,IAAI;AAAA,UACrD;AAEA,cAAI,GAAG,kBAAkB,KAAK,GAAG;AAC7B,mBAAO,KAAK,YAAY,MAAM,KAAK;AAAA,UACvC;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1,9 +1,8 @@
1
- import ts from 'typescript';
2
-
1
+ import ts from "typescript";
3
2
  /**
4
3
  * Parses JSDoc comments to extract type information.
5
4
  */
6
- declare class JSDocParser {
5
+ export default class JSDocParser {
7
6
  /**
8
7
  * Extracts a type from a JSDoc tag with @type annotation.
9
8
  *
@@ -77,5 +76,3 @@ declare class JSDocParser {
77
76
  */
78
77
  private addPropertyToObjectType;
79
78
  }
80
-
81
- export { JSDocParser as default };
@@ -1,20 +1,16 @@
1
- import ts from 'typescript';
2
- import EntryFile from '../SourceFile.js';
3
- import '../resolvers/ImportResolver.js';
4
- import '../resolvers/TsResolver.js';
5
- import '../types.js';
6
-
1
+ import ts from "typescript";
2
+ import SourceFile from "../SourceFile.js";
7
3
  /**
8
4
  * Finds nodes in the TypeScript AST.
9
5
  */
10
- declare class NodeFinder {
6
+ export default class NodeFinder {
11
7
  private sourceFile;
12
8
  /**
13
9
  * Constructor for the NodeFinder.
14
10
  *
15
11
  * @param sourceFile The source file to find nodes in
16
12
  */
17
- constructor(sourceFile: EntryFile);
13
+ constructor(sourceFile: SourceFile);
18
14
  /**
19
15
  * Generic method to find a node of a specific type by name in the AST.
20
16
  *
@@ -59,5 +55,3 @@ declare class NodeFinder {
59
55
  */
60
56
  findImportEqualsDeclaration(name: string): ts.ImportEqualsDeclaration | undefined;
61
57
  }
62
-
63
- export { NodeFinder as default };
@@ -8,6 +8,7 @@ class NodeFinder {
8
8
  constructor(sourceFile) {
9
9
  this.sourceFile = sourceFile;
10
10
  }
11
+ sourceFile;
11
12
  /**
12
13
  * Generic method to find a node of a specific type by name in the AST.
13
14
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/NodeFinder.ts"],"sourcesContent":["import ts from \"typescript\";\nimport SourceFile from \"../SourceFile\";\n\n/**\n * Finds nodes in the TypeScript AST.\n */\nexport default class NodeFinder {\n /**\n * Constructor for the NodeFinder.\n *\n * @param sourceFile The source file to find nodes in\n */\n constructor(private sourceFile: SourceFile) {}\n\n /**\n * Generic method to find a node of a specific type by name in the AST.\n *\n * @param predicate The predicate to match the node\n * @param name The name to search for\n * @returns The found node or undefined if not found\n */\n public findNodeByName<T extends ts.Node>(\n predicate: (node: ts.Node, name: string) => node is T,\n name: string\n ): T | undefined {\n const sf = this.sourceFile.getSourceFile();\n let found: T | undefined;\n\n const visit = (node: ts.Node) => {\n if (predicate(node, name)) {\n found = node;\n } else {\n ts.forEachChild(node, visit);\n }\n };\n\n ts.forEachChild(sf, visit);\n return found;\n }\n\n /**\n * Searches the AST of this file for a class declaration by name.\n *\n * @param name The name of the class to find\n * @returns The class declaration or undefined if not found\n */\n public findClassDeclaration(name: string): ts.ClassDeclaration | undefined {\n return this.findNodeByName<ts.ClassDeclaration>(\n (node, searchName): node is ts.ClassDeclaration =>\n ts.isClassDeclaration(node) && node.name?.text === searchName,\n name\n );\n }\n\n /**\n * Searches the AST of this file for a type alias declaration by name.\n *\n * @param name The name of the type alias to find\n * @returns The type alias declaration or undefined if not found\n */\n public findTypeAliasDeclaration(name: string): ts.TypeAliasDeclaration | undefined {\n return this.findNodeByName<ts.TypeAliasDeclaration>(\n (node, searchName): node is ts.TypeAliasDeclaration =>\n ts.isTypeAliasDeclaration(node) && node.name.text === searchName,\n name\n );\n }\n\n /**\n * Searches the AST of this file for an interface declaration by name.\n *\n * @param name The name of the interface to find\n * @returns The interface declaration or undefined if not found\n */\n public findInterfaceDeclaration(name: string): ts.InterfaceDeclaration | undefined {\n return this.findNodeByName<ts.InterfaceDeclaration>(\n (node, searchName): node is ts.InterfaceDeclaration =>\n ts.isInterfaceDeclaration(node) && node.name.text === searchName,\n name\n );\n }\n\n /**\n * Searches the AST of this file for a variable declaration by name.\n *\n * @param name The name of the variable to find\n * @returns The variable declaration or undefined if not found\n */\n public findVariableDeclaration(name: string): ts.VariableDeclaration | undefined {\n return this.findNodeByName<ts.VariableDeclaration>(\n (node, searchName): node is ts.VariableDeclaration =>\n ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.name.text === searchName,\n name\n );\n }\n\n /**\n * Searches the AST of this file for an import equals declaration by name.\n *\n * @param name The name of the import equals declaration to find\n * @returns The import equals declaration or undefined if not found\n */\n public findImportEqualsDeclaration(name: string): ts.ImportEqualsDeclaration | undefined {\n return this.findNodeByName<ts.ImportEqualsDeclaration>(\n (node, searchName): node is ts.ImportEqualsDeclaration =>\n ts.isImportEqualsDeclaration(node) && ts.isIdentifier(node.name) && node.name.text === searchName,\n name\n );\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AAMf,MAAO,WAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5B,YAAoB,YAAwB;AAAxB;AAAA,EAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAStC,eACH,WACA,MACa;AACb,UAAM,KAAK,KAAK,WAAW,cAAc;AACzC,QAAI;AAEJ,UAAM,QAAQ,CAAC,SAAkB;AAC7B,UAAI,UAAU,MAAM,IAAI,GAAG;AACvB,gBAAQ;AAAA,MACZ,OAAO;AACH,WAAG,aAAa,MAAM,KAAK;AAAA,MAC/B;AAAA,IACJ;AAEA,OAAG,aAAa,IAAI,KAAK;AACzB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,qBAAqB,MAA+C;AACvE,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eAAyC;AAhD5D;AAiDgB,kBAAG,mBAAmB,IAAI,OAAK,UAAK,SAAL,mBAAW,UAAS;AAAA;AAAA,MACvD;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,yBAAyB,MAAmD;AAC/E,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eACH,GAAG,uBAAuB,IAAI,KAAK,KAAK,KAAK,SAAS;AAAA,MAC1D;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,yBAAyB,MAAmD;AAC/E,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eACH,GAAG,uBAAuB,IAAI,KAAK,KAAK,KAAK,SAAS;AAAA,MAC1D;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,wBAAwB,MAAkD;AAC7E,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eACH,GAAG,sBAAsB,IAAI,KAAK,GAAG,aAAa,KAAK,IAAI,KAAK,KAAK,KAAK,SAAS;AAAA,MACvF;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,4BAA4B,MAAsD;AACrF,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eACH,GAAG,0BAA0B,IAAI,KAAK,GAAG,aAAa,KAAK,IAAI,KAAK,KAAK,KAAK,SAAS;AAAA,MAC3F;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/NodeFinder.ts"],"sourcesContent":["import ts from \"typescript\";\nimport SourceFile from \"../SourceFile\";\n\n/**\n * Finds nodes in the TypeScript AST.\n */\nexport default class NodeFinder {\n /**\n * Constructor for the NodeFinder.\n *\n * @param sourceFile The source file to find nodes in\n */\n constructor(private sourceFile: SourceFile) {}\n\n /**\n * Generic method to find a node of a specific type by name in the AST.\n *\n * @param predicate The predicate to match the node\n * @param name The name to search for\n * @returns The found node or undefined if not found\n */\n public findNodeByName<T extends ts.Node>(\n predicate: (node: ts.Node, name: string) => node is T,\n name: string\n ): T | undefined {\n const sf = this.sourceFile.getSourceFile();\n let found: T | undefined;\n\n const visit = (node: ts.Node) => {\n if (predicate(node, name)) {\n found = node;\n } else {\n ts.forEachChild(node, visit);\n }\n };\n\n ts.forEachChild(sf, visit);\n return found;\n }\n\n /**\n * Searches the AST of this file for a class declaration by name.\n *\n * @param name The name of the class to find\n * @returns The class declaration or undefined if not found\n */\n public findClassDeclaration(name: string): ts.ClassDeclaration | undefined {\n return this.findNodeByName<ts.ClassDeclaration>(\n (node, searchName): node is ts.ClassDeclaration =>\n ts.isClassDeclaration(node) && node.name?.text === searchName,\n name\n );\n }\n\n /**\n * Searches the AST of this file for a type alias declaration by name.\n *\n * @param name The name of the type alias to find\n * @returns The type alias declaration or undefined if not found\n */\n public findTypeAliasDeclaration(name: string): ts.TypeAliasDeclaration | undefined {\n return this.findNodeByName<ts.TypeAliasDeclaration>(\n (node, searchName): node is ts.TypeAliasDeclaration =>\n ts.isTypeAliasDeclaration(node) && node.name.text === searchName,\n name\n );\n }\n\n /**\n * Searches the AST of this file for an interface declaration by name.\n *\n * @param name The name of the interface to find\n * @returns The interface declaration or undefined if not found\n */\n public findInterfaceDeclaration(name: string): ts.InterfaceDeclaration | undefined {\n return this.findNodeByName<ts.InterfaceDeclaration>(\n (node, searchName): node is ts.InterfaceDeclaration =>\n ts.isInterfaceDeclaration(node) && node.name.text === searchName,\n name\n );\n }\n\n /**\n * Searches the AST of this file for a variable declaration by name.\n *\n * @param name The name of the variable to find\n * @returns The variable declaration or undefined if not found\n */\n public findVariableDeclaration(name: string): ts.VariableDeclaration | undefined {\n return this.findNodeByName<ts.VariableDeclaration>(\n (node, searchName): node is ts.VariableDeclaration =>\n ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.name.text === searchName,\n name\n );\n }\n\n /**\n * Searches the AST of this file for an import equals declaration by name.\n *\n * @param name The name of the import equals declaration to find\n * @returns The import equals declaration or undefined if not found\n */\n public findImportEqualsDeclaration(name: string): ts.ImportEqualsDeclaration | undefined {\n return this.findNodeByName<ts.ImportEqualsDeclaration>(\n (node, searchName): node is ts.ImportEqualsDeclaration =>\n ts.isImportEqualsDeclaration(node) && ts.isIdentifier(node.name) && node.name.text === searchName,\n name\n );\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AAMf,MAAO,WAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5B,YAAoB,YAAwB;AAAxB;AAAA,EAAyB;AAAA,EAAzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASb,eACH,WACA,MACa;AACb,UAAM,KAAK,KAAK,WAAW,cAAc;AACzC,QAAI;AAEJ,UAAM,QAAQ,CAAC,SAAkB;AAC7B,UAAI,UAAU,MAAM,IAAI,GAAG;AACvB,gBAAQ;AAAA,MACZ,OAAO;AACH,WAAG,aAAa,MAAM,KAAK;AAAA,MAC/B;AAAA,IACJ;AAEA,OAAG,aAAa,IAAI,KAAK;AACzB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,qBAAqB,MAA+C;AACvE,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eAAyC;AAhD5D;AAiDgB,kBAAG,mBAAmB,IAAI,OAAK,UAAK,SAAL,mBAAW,UAAS;AAAA;AAAA,MACvD;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,yBAAyB,MAAmD;AAC/E,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eACH,GAAG,uBAAuB,IAAI,KAAK,KAAK,KAAK,SAAS;AAAA,MAC1D;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,yBAAyB,MAAmD;AAC/E,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eACH,GAAG,uBAAuB,IAAI,KAAK,KAAK,KAAK,SAAS;AAAA,MAC1D;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,wBAAwB,MAAkD;AAC7E,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eACH,GAAG,sBAAsB,IAAI,KAAK,GAAG,aAAa,KAAK,IAAI,KAAK,KAAK,KAAK,SAAS;AAAA,MACvF;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,4BAA4B,MAAsD;AACrF,WAAO,KAAK;AAAA,MACR,CAAC,MAAM,eACH,GAAG,0BAA0B,IAAI,KAAK,GAAG,aAAa,KAAK,IAAI,KAAK,KAAK,KAAK,SAAS;AAAA,MAC3F;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}