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,18 +1,12 @@
1
- import ts from 'typescript';
2
- import EntryFile from '../SourceFile.js';
3
- import AbstractParser from './AbstractParser.js';
4
- import SignatureBuilder from './SignatureBuilder.js';
5
- import { MemberSignature } from './types.js';
6
- import '../resolvers/ImportResolver.js';
7
- import '../resolvers/TsResolver.js';
8
- import '../types.js';
9
- import './TypeResolver.js';
10
- import './NodeFinder.js';
11
-
1
+ import ts from "typescript";
2
+ import SourceFile from "../SourceFile.js";
3
+ import AbstractParser from "./AbstractParser.js";
4
+ import SignatureBuilder from "./SignatureBuilder.js";
5
+ import { MemberSignature } from "./types.js";
12
6
  /**
13
7
  * Parses object literal expressions.
14
8
  */
15
- declare class ObjectParser extends AbstractParser {
9
+ export default class ObjectParser extends AbstractParser {
16
10
  private readonly signatureBuilder;
17
11
  /**
18
12
  * Constructor for the ObjectParser.
@@ -21,7 +15,7 @@ declare class ObjectParser extends AbstractParser {
21
15
  * @param signatureBuilder The signature builder to use for building signatures
22
16
  */
23
17
  private readonly jsDocParser;
24
- constructor(sourceFile: EntryFile, signatureBuilder: SignatureBuilder);
18
+ constructor(sourceFile: SourceFile, signatureBuilder: SignatureBuilder);
25
19
  /**
26
20
  * Parses an object literal: each property becomes a member signature.
27
21
  *
@@ -37,5 +31,3 @@ declare class ObjectParser extends AbstractParser {
37
31
  */
38
32
  inferTypeFromExpression(expr: ts.Expression): string;
39
33
  }
40
-
41
- export { ObjectParser as default };
@@ -9,6 +9,7 @@ class ObjectParser extends AbstractParser {
9
9
  this.signatureBuilder = signatureBuilder;
10
10
  this.jsDocParser = new JSDocParser();
11
11
  }
12
+ signatureBuilder;
12
13
  /**
13
14
  * Constructor for the ObjectParser.
14
15
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/ObjectParser.ts"],"sourcesContent":["import ts from \"typescript\";\nimport _ from \"lodash\";\n\nimport SourceFile from \"../SourceFile\";\nimport AbstractParser from \"./AbstractParser\";\nimport SignatureBuilder from \"./SignatureBuilder\";\nimport JSDocParser from \"./JSDocParser\";\n\nimport {shouldIncludeMember} from \"./helpers/memberFilters\";\n\nimport {MemberSignature} from \"./types\";\n\n/**\n * Parses object literal expressions.\n */\nexport default class ObjectParser extends AbstractParser {\n /**\n * Constructor for the ObjectParser.\n *\n * @param sourceFile The source file to parse\n * @param signatureBuilder The signature builder to use for building signatures\n */\n private readonly jsDocParser: JSDocParser;\n\n constructor(\n sourceFile: SourceFile,\n private readonly signatureBuilder: SignatureBuilder\n ) {\n super(sourceFile);\n\n this.jsDocParser = new JSDocParser();\n }\n\n /**\n * Parses an object literal: each property becomes a member signature.\n *\n * @param obj The object literal expression to parse\n * @returns A record of member signatures\n */\n public parse(obj: ts.ObjectLiteralExpression): Record<string, MemberSignature> {\n const result: Record<string, MemberSignature> = {};\n\n for (const prop of obj.properties) {\n // key name helper\n const key = this.getName(prop.name ?? prop);\n\n // Skip members that start with underscore\n if (!shouldIncludeMember(key)) {\n continue;\n }\n\n if (ts.isPropertyAssignment(prop)) {\n const init = prop.initializer;\n\n if (ts.isFunctionExpression(init) || ts.isArrowFunction(init)) {\n result[key] = this.signatureBuilder.getMethodSignature(init);\n } else {\n // Check for JSDoc @type annotation\n const jsDocType = this.jsDocParser.getJSDocType(prop);\n const tsType = this.inferTypeFromExpression(init);\n\n result[key] = {\n kind: \"property\",\n type: jsDocType || tsType,\n };\n }\n } else if (ts.isMethodDeclaration(prop)) {\n result[key] = this.signatureBuilder.getMethodSignature(prop);\n } else if (ts.isShorthandPropertyAssignment(prop)) {\n const name = prop.name.text;\n const variable = this.sourceFile.getVariables().get(name);\n const val = variable ? variable.value : undefined;\n\n let type = \"any\";\n\n if (!_.isUndefined(val)) {\n if (_.isString(val)) {\n type = \"string\";\n } else if (_.isNumber(val)) {\n type = \"number\";\n } else if (_.isBoolean(val)) {\n type = \"boolean\";\n } else if (_.isArray(val)) {\n type = \"array\";\n } else if (_.isPlainObject(val)) {\n type = \"object\";\n }\n }\n\n result[key] = {kind: \"property\", type};\n }\n }\n\n return result;\n }\n\n /**\n * Infers a type string from an expression.\n *\n * @param expr The expression to infer a type from\n * @returns The inferred type as a string\n */\n public inferTypeFromExpression(expr: ts.Expression): string {\n const val = this.sourceFile.parseNode(expr);\n\n switch (typeof val) {\n case \"string\":\n return \"string\";\n case \"number\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"object\":\n if (val === null) return \"null\";\n if (_.isArray(val)) return \"array\";\n return \"object\";\n default:\n return \"any\";\n }\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AACf,OAAO,OAAO;AAGd,OAAO,oBAAoB;AAE3B,OAAO,iBAAiB;AAExB,SAAQ,2BAA0B;AAOlC,MAAO,qBAAmC,eAAe;AAAA,EASrD,YACI,YACiB,kBACnB;AACE,UAAM,UAAU;AAFC;AAIjB,SAAK,cAAc,IAAI,YAAY;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EATiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBV,MAAM,KAAkE;AAC3E,UAAM,SAA0C,CAAC;AAEjD,eAAW,QAAQ,IAAI,YAAY;AAE/B,YAAM,MAAM,KAAK,QAAQ,KAAK,QAAQ,IAAI;AAG1C,UAAI,CAAC,oBAAoB,GAAG,GAAG;AAC3B;AAAA,MACJ;AAEA,UAAI,GAAG,qBAAqB,IAAI,GAAG;AAC/B,cAAM,OAAO,KAAK;AAElB,YAAI,GAAG,qBAAqB,IAAI,KAAK,GAAG,gBAAgB,IAAI,GAAG;AAC3D,iBAAO,GAAG,IAAI,KAAK,iBAAiB,mBAAmB,IAAI;AAAA,QAC/D,OAAO;AAEH,gBAAM,YAAY,KAAK,YAAY,aAAa,IAAI;AACpD,gBAAM,SAAS,KAAK,wBAAwB,IAAI;AAEhD,iBAAO,GAAG,IAAI;AAAA,YACV,MAAM;AAAA,YACN,MAAM,aAAa;AAAA,UACvB;AAAA,QACJ;AAAA,MACJ,WAAW,GAAG,oBAAoB,IAAI,GAAG;AACrC,eAAO,GAAG,IAAI,KAAK,iBAAiB,mBAAmB,IAAI;AAAA,MAC/D,WAAW,GAAG,8BAA8B,IAAI,GAAG;AAC/C,cAAM,OAAO,KAAK,KAAK;AACvB,cAAM,WAAW,KAAK,WAAW,aAAa,EAAE,IAAI,IAAI;AACxD,cAAM,MAAM,WAAW,SAAS,QAAQ;AAExC,YAAI,OAAO;AAEX,YAAI,CAAC,EAAE,YAAY,GAAG,GAAG;AACrB,cAAI,EAAE,SAAS,GAAG,GAAG;AACjB,mBAAO;AAAA,UACX,WAAW,EAAE,SAAS,GAAG,GAAG;AACxB,mBAAO;AAAA,UACX,WAAW,EAAE,UAAU,GAAG,GAAG;AACzB,mBAAO;AAAA,UACX,WAAW,EAAE,QAAQ,GAAG,GAAG;AACvB,mBAAO;AAAA,UACX,WAAW,EAAE,cAAc,GAAG,GAAG;AAC7B,mBAAO;AAAA,UACX;AAAA,QACJ;AAEA,eAAO,GAAG,IAAI,EAAC,MAAM,YAAY,KAAI;AAAA,MACzC;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,wBAAwB,MAA6B;AACxD,UAAM,MAAM,KAAK,WAAW,UAAU,IAAI;AAE1C,YAAQ,OAAO,KAAK;AAAA,MAChB,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,YAAI,QAAQ,KAAM,QAAO;AACzB,YAAI,EAAE,QAAQ,GAAG,EAAG,QAAO;AAC3B,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/ObjectParser.ts"],"sourcesContent":["import ts from \"typescript\";\nimport _ from \"lodash\";\n\nimport SourceFile from \"../SourceFile\";\nimport AbstractParser from \"./AbstractParser\";\nimport SignatureBuilder from \"./SignatureBuilder\";\nimport JSDocParser from \"./JSDocParser\";\n\nimport {shouldIncludeMember} from \"./helpers/memberFilters\";\n\nimport {MemberSignature} from \"./types\";\n\n/**\n * Parses object literal expressions.\n */\nexport default class ObjectParser extends AbstractParser {\n /**\n * Constructor for the ObjectParser.\n *\n * @param sourceFile The source file to parse\n * @param signatureBuilder The signature builder to use for building signatures\n */\n private readonly jsDocParser: JSDocParser;\n\n constructor(\n sourceFile: SourceFile,\n private readonly signatureBuilder: SignatureBuilder\n ) {\n super(sourceFile);\n\n this.jsDocParser = new JSDocParser();\n }\n\n /**\n * Parses an object literal: each property becomes a member signature.\n *\n * @param obj The object literal expression to parse\n * @returns A record of member signatures\n */\n public parse(obj: ts.ObjectLiteralExpression): Record<string, MemberSignature> {\n const result: Record<string, MemberSignature> = {};\n\n for (const prop of obj.properties) {\n // key name helper\n const key = this.getName(prop.name ?? prop);\n\n // Skip members that start with underscore\n if (!shouldIncludeMember(key)) {\n continue;\n }\n\n if (ts.isPropertyAssignment(prop)) {\n const init = prop.initializer;\n\n if (ts.isFunctionExpression(init) || ts.isArrowFunction(init)) {\n result[key] = this.signatureBuilder.getMethodSignature(init);\n } else {\n // Check for JSDoc @type annotation\n const jsDocType = this.jsDocParser.getJSDocType(prop);\n const tsType = this.inferTypeFromExpression(init);\n\n result[key] = {\n kind: \"property\",\n type: jsDocType || tsType,\n };\n }\n } else if (ts.isMethodDeclaration(prop)) {\n result[key] = this.signatureBuilder.getMethodSignature(prop);\n } else if (ts.isShorthandPropertyAssignment(prop)) {\n const name = prop.name.text;\n const variable = this.sourceFile.getVariables().get(name);\n const val = variable ? variable.value : undefined;\n\n let type = \"any\";\n\n if (!_.isUndefined(val)) {\n if (_.isString(val)) {\n type = \"string\";\n } else if (_.isNumber(val)) {\n type = \"number\";\n } else if (_.isBoolean(val)) {\n type = \"boolean\";\n } else if (_.isArray(val)) {\n type = \"array\";\n } else if (_.isPlainObject(val)) {\n type = \"object\";\n }\n }\n\n result[key] = {kind: \"property\", type};\n }\n }\n\n return result;\n }\n\n /**\n * Infers a type string from an expression.\n *\n * @param expr The expression to infer a type from\n * @returns The inferred type as a string\n */\n public inferTypeFromExpression(expr: ts.Expression): string {\n const val = this.sourceFile.parseNode(expr);\n\n switch (typeof val) {\n case \"string\":\n return \"string\";\n case \"number\":\n return \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"object\":\n if (val === null) return \"null\";\n if (_.isArray(val)) return \"array\";\n return \"object\";\n default:\n return \"any\";\n }\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AACf,OAAO,OAAO;AAGd,OAAO,oBAAoB;AAE3B,OAAO,iBAAiB;AAExB,SAAQ,2BAA0B;AAOlC,MAAO,qBAAmC,eAAe;AAAA,EASrD,YACI,YACiB,kBACnB;AACE,UAAM,UAAU;AAFC;AAIjB,SAAK,cAAc,IAAI,YAAY;AAAA,EACvC;AAAA,EALqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAJJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBV,MAAM,KAAkE;AAC3E,UAAM,SAA0C,CAAC;AAEjD,eAAW,QAAQ,IAAI,YAAY;AAE/B,YAAM,MAAM,KAAK,QAAQ,KAAK,QAAQ,IAAI;AAG1C,UAAI,CAAC,oBAAoB,GAAG,GAAG;AAC3B;AAAA,MACJ;AAEA,UAAI,GAAG,qBAAqB,IAAI,GAAG;AAC/B,cAAM,OAAO,KAAK;AAElB,YAAI,GAAG,qBAAqB,IAAI,KAAK,GAAG,gBAAgB,IAAI,GAAG;AAC3D,iBAAO,GAAG,IAAI,KAAK,iBAAiB,mBAAmB,IAAI;AAAA,QAC/D,OAAO;AAEH,gBAAM,YAAY,KAAK,YAAY,aAAa,IAAI;AACpD,gBAAM,SAAS,KAAK,wBAAwB,IAAI;AAEhD,iBAAO,GAAG,IAAI;AAAA,YACV,MAAM;AAAA,YACN,MAAM,aAAa;AAAA,UACvB;AAAA,QACJ;AAAA,MACJ,WAAW,GAAG,oBAAoB,IAAI,GAAG;AACrC,eAAO,GAAG,IAAI,KAAK,iBAAiB,mBAAmB,IAAI;AAAA,MAC/D,WAAW,GAAG,8BAA8B,IAAI,GAAG;AAC/C,cAAM,OAAO,KAAK,KAAK;AACvB,cAAM,WAAW,KAAK,WAAW,aAAa,EAAE,IAAI,IAAI;AACxD,cAAM,MAAM,WAAW,SAAS,QAAQ;AAExC,YAAI,OAAO;AAEX,YAAI,CAAC,EAAE,YAAY,GAAG,GAAG;AACrB,cAAI,EAAE,SAAS,GAAG,GAAG;AACjB,mBAAO;AAAA,UACX,WAAW,EAAE,SAAS,GAAG,GAAG;AACxB,mBAAO;AAAA,UACX,WAAW,EAAE,UAAU,GAAG,GAAG;AACzB,mBAAO;AAAA,UACX,WAAW,EAAE,QAAQ,GAAG,GAAG;AACvB,mBAAO;AAAA,UACX,WAAW,EAAE,cAAc,GAAG,GAAG;AAC7B,mBAAO;AAAA,UACX;AAAA,QACJ;AAEA,eAAO,GAAG,IAAI,EAAC,MAAM,YAAY,KAAI;AAAA,MACzC;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,wBAAwB,MAA6B;AACxD,UAAM,MAAM,KAAK,WAAW,UAAU,IAAI;AAE1C,YAAQ,OAAO,KAAK;AAAA,MAChB,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,YAAI,QAAQ,KAAM,QAAO;AACzB,YAAI,EAAE,QAAQ,GAAG,EAAG,QAAO;AAC3B,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AACJ;","names":[]}
@@ -1,16 +1,10 @@
1
- import ts from 'typescript';
2
- import { MethodSignature, MemberSignature } from './types.js';
3
- import TypeResolver from './TypeResolver.js';
4
- import '../SourceFile.js';
5
- import '../resolvers/ImportResolver.js';
6
- import '../resolvers/TsResolver.js';
7
- import '../types.js';
8
- import './NodeFinder.js';
9
-
1
+ import ts from "typescript";
2
+ import { MemberSignature, MethodSignature } from "./types.js";
3
+ import TypeResolver from "./TypeResolver.js";
10
4
  /**
11
5
  * Builds method and property signatures from TypeScript nodes.
12
6
  */
13
- declare class SignatureBuilder {
7
+ export default class SignatureBuilder {
14
8
  private readonly typeResolver;
15
9
  /**
16
10
  * Constructor for the SignatureBuilder.
@@ -41,5 +35,3 @@ declare class SignatureBuilder {
41
35
  */
42
36
  formatMembers(members: Record<string, MemberSignature>): string;
43
37
  }
44
-
45
- export { SignatureBuilder as default };
@@ -5,6 +5,7 @@ class SignatureBuilder {
5
5
  this.typeResolver = typeResolver;
6
6
  this.jsDocParser = new JSDocParser();
7
7
  }
8
+ typeResolver;
8
9
  /**
9
10
  * Constructor for the SignatureBuilder.
10
11
  *
@@ -19,12 +20,12 @@ class SignatureBuilder {
19
20
  */
20
21
  getMethodSignature(method) {
21
22
  const jsDocParamTypes = "parameters" in method ? this.jsDocParser.getJSDocParameterTypes(method) : /* @__PURE__ */ new Map();
22
- const params = ("parameters" in method ? method.parameters : []).map((p) => {
23
+ const params = ("parameters" in method ? method.parameters : []).filter((p) => p.name.getText() !== "this").map((p) => {
23
24
  const name = ts.isIdentifier(p.name) ? p.name.text : p.name.getText();
24
25
  const tsType = p.type ? this.typeResolver.resolveTypeNode(p.type) : "any";
25
26
  const jsDocType = jsDocParamTypes.get(name);
26
27
  const type = jsDocType || tsType;
27
- const formattedType = type.replace(/\{\s+/g, "{").replace(/\s+\}/g, "}");
28
+ const formattedType = type.replace(/{\s+/g, "{").replace(/\s+}/g, "}");
28
29
  const optional = p.questionToken !== void 0 || p.initializer !== void 0;
29
30
  return { name, type: formattedType, optional };
30
31
  });
@@ -46,7 +47,7 @@ class SignatureBuilder {
46
47
  const returnNode = method.type;
47
48
  const tsReturnType = returnNode ? this.typeResolver.resolveTypeNode(returnNode) : "any";
48
49
  const returnType = jsDocReturnType || tsReturnType;
49
- const formattedReturnType = returnType.replace(/\{\s+/g, "{").replace(/\s+\}/g, "}");
50
+ const formattedReturnType = returnType.replace(/{\s+/g, "{").replace(/\s+}/g, "}");
50
51
  return {
51
52
  kind: "method",
52
53
  typeParameters: typeParams,
@@ -78,7 +79,7 @@ class SignatureBuilder {
78
79
  const params = member.parameters.map((p) => {
79
80
  let paramType = p.type;
80
81
  if (paramType.includes("@param")) {
81
- const match = paramType.match(/\{([^}]+)\}/);
82
+ const match = paramType.match(/{([^}]+)}/);
82
83
  if (match) {
83
84
  paramType = match[1];
84
85
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/SignatureBuilder.ts"],"sourcesContent":["import ts from \"typescript\";\nimport {MemberSignature, MethodSignature, ParameterSignature} from \"./types\";\nimport TypeResolver from \"./TypeResolver\";\nimport JSDocParser from \"./JSDocParser\";\n\n/**\n * Builds method and property signatures from TypeScript nodes.\n */\nexport default class SignatureBuilder {\n /**\n * Constructor for the SignatureBuilder.\n *\n * @param typeResolver The type resolver to use for resolving types\n */\n private readonly jsDocParser: JSDocParser;\n\n constructor(private readonly typeResolver: TypeResolver) {\n this.jsDocParser = new JSDocParser();\n }\n\n /**\n * Builds a method signature from a function-like node.\n *\n * @param method The function-like node to build a signature from\n * @returns The method signature\n */\n public getMethodSignature(\n method: ts.MethodDeclaration | ts.GetAccessorDeclaration | ts.FunctionExpression | ts.ArrowFunction\n ): MethodSignature {\n // Get JSDoc parameter types if available\n const jsDocParamTypes =\n \"parameters\" in method\n ? this.jsDocParser.getJSDocParameterTypes(method as ts.SignatureDeclaration)\n : new Map<string, string>();\n\n // parameters\n const params: ParameterSignature[] = (\"parameters\" in method ? method.parameters : []).map(p => {\n const name = ts.isIdentifier(p.name) ? p.name.text : p.name.getText();\n\n // Use JSDoc type if available, otherwise use TypeScript type\n const tsType = p.type ? this.typeResolver.resolveTypeNode(p.type) : \"any\";\n const jsDocType = jsDocParamTypes.get(name);\n const type = jsDocType || tsType;\n\n // Remove spaces in object types to match expected format\n const formattedType = type.replace(/\\{\\s+/g, \"{\").replace(/\\s+\\}/g, \"}\");\n const optional = p.questionToken !== undefined || p.initializer !== undefined;\n return {name, type: formattedType, optional};\n });\n\n // Get JSDoc type parameters if available, otherwise use TypeScript type parameters\n let typeParams: string[] = [];\n\n if (\"parameters\" in method) {\n const jsDocTypeParams = this.jsDocParser.getJSDocTypeParameters(method as ts.SignatureDeclaration);\n if (jsDocTypeParams.length > 0) {\n typeParams = jsDocTypeParams;\n } else if (method.typeParameters) {\n typeParams = method.typeParameters.map(tp => tp.getText());\n }\n } else {\n // For non-SignatureDeclaration types, check if typeParameters exists\n const methodWithTypeParams = method as {typeParameters?: ts.NodeArray<ts.TypeParameterDeclaration>};\n if (methodWithTypeParams.typeParameters) {\n typeParams = methodWithTypeParams.typeParameters.map(tp => tp.getText());\n }\n }\n\n // Get JSDoc return type if available\n const jsDocReturnType =\n \"parameters\" in method ? this.jsDocParser.getJSDocReturnType(method as ts.SignatureDeclaration) : undefined;\n\n // return type (inline aliases when possible)\n const returnNode = (method as ts.MethodDeclaration).type;\n const tsReturnType = returnNode ? this.typeResolver.resolveTypeNode(returnNode) : \"any\";\n\n // Use JSDoc return type if available, otherwise use TypeScript return type\n const returnType = jsDocReturnType || tsReturnType;\n\n // Remove spaces in object types to match expected format\n const formattedReturnType = returnType.replace(/\\{\\s+/g, \"{\").replace(/\\s+\\}/g, \"}\");\n\n return {\n kind: \"method\",\n typeParameters: typeParams,\n parameters: params,\n returnType: formattedReturnType,\n };\n }\n\n /**\n * Builds a function type string from a method signature.\n *\n * @param sig The method signature to build a function type from\n * @returns The function type as a string\n */\n public buildFunctionType(sig: MethodSignature): string {\n const params = sig.parameters.map(p => `${p.name}${p.optional ? \"?\" : \"\"}: ${p.type}`).join(\", \");\n return `(${params}) => ${sig.returnType}`;\n }\n\n /**\n * Formats a record of member signatures into a string representation.\n *\n * @param members The record of member signatures to format\n * @returns The formatted members as a string\n */\n public formatMembers(members: Record<string, MemberSignature>): string {\n const parts: string[] = [];\n\n for (const [name, member] of Object.entries(members)) {\n if (member.kind === \"method\") {\n const typeParams = member.typeParameters.length ? `<${member.typeParameters.join(\", \")}>` : \"\";\n\n // Clean up parameter types to remove any JSDoc comments\n const params = member.parameters\n .map(p => {\n // If the parameter type contains JSDoc comments, extract just the type\n let paramType = p.type;\n if (paramType.includes(\"@param\")) {\n // This is a parameter with JSDoc comments, extract just the type\n const match = paramType.match(/\\{([^}]+)\\}/);\n if (match) {\n paramType = match[1];\n }\n }\n\n return `${p.name}${p.optional ? \"?\" : \"\"}: ${paramType}`;\n })\n .join(\", \");\n\n parts.push(`${name}${typeParams}(${params}): ${member.returnType};`);\n } else {\n parts.push(`${name}${member.optional ? \"?\" : \"\"}: ${member.type};`);\n }\n }\n\n return `{ ${parts.join(\" \")} }`;\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AAGf,OAAO,iBAAiB;AAKxB,MAAO,iBAA+B;AAAA,EAQlC,YAA6B,cAA4B;AAA5B;AACzB,SAAK,cAAc,IAAI,YAAY;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAJiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYV,mBACH,QACe;AAEf,UAAM,kBACF,gBAAgB,SACV,KAAK,YAAY,uBAAuB,MAAiC,IACzE,oBAAI,IAAoB;AAGlC,UAAM,UAAgC,gBAAgB,SAAS,OAAO,aAAa,CAAC,GAAG,IAAI,OAAK;AAC5F,YAAM,OAAO,GAAG,aAAa,EAAE,IAAI,IAAI,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ;AAGpE,YAAM,SAAS,EAAE,OAAO,KAAK,aAAa,gBAAgB,EAAE,IAAI,IAAI;AACpE,YAAM,YAAY,gBAAgB,IAAI,IAAI;AAC1C,YAAM,OAAO,aAAa;AAG1B,YAAM,gBAAgB,KAAK,QAAQ,UAAU,GAAG,EAAE,QAAQ,UAAU,GAAG;AACvE,YAAM,WAAW,EAAE,kBAAkB,UAAa,EAAE,gBAAgB;AACpE,aAAO,EAAC,MAAM,MAAM,eAAe,SAAQ;AAAA,IAC/C,CAAC;AAGD,QAAI,aAAuB,CAAC;AAE5B,QAAI,gBAAgB,QAAQ;AACxB,YAAM,kBAAkB,KAAK,YAAY,uBAAuB,MAAiC;AACjG,UAAI,gBAAgB,SAAS,GAAG;AAC5B,qBAAa;AAAA,MACjB,WAAW,OAAO,gBAAgB;AAC9B,qBAAa,OAAO,eAAe,IAAI,QAAM,GAAG,QAAQ,CAAC;AAAA,MAC7D;AAAA,IACJ,OAAO;AAEH,YAAM,uBAAuB;AAC7B,UAAI,qBAAqB,gBAAgB;AACrC,qBAAa,qBAAqB,eAAe,IAAI,QAAM,GAAG,QAAQ,CAAC;AAAA,MAC3E;AAAA,IACJ;AAGA,UAAM,kBACF,gBAAgB,SAAS,KAAK,YAAY,mBAAmB,MAAiC,IAAI;AAGtG,UAAM,aAAc,OAAgC;AACpD,UAAM,eAAe,aAAa,KAAK,aAAa,gBAAgB,UAAU,IAAI;AAGlF,UAAM,aAAa,mBAAmB;AAGtC,UAAM,sBAAsB,WAAW,QAAQ,UAAU,GAAG,EAAE,QAAQ,UAAU,GAAG;AAEnF,WAAO;AAAA,MACH,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,YAAY;AAAA,IAChB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,kBAAkB,KAA8B;AACnD,UAAM,SAAS,IAAI,WAAW,IAAI,OAAK,GAAG,EAAE,IAAI,GAAG,EAAE,WAAW,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI;AAChG,WAAO,IAAI,MAAM,QAAQ,IAAI,UAAU;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,cAAc,SAAkD;AACnE,UAAM,QAAkB,CAAC;AAEzB,eAAW,CAAC,MAAM,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,UAAI,OAAO,SAAS,UAAU;AAC1B,cAAM,aAAa,OAAO,eAAe,SAAS,IAAI,OAAO,eAAe,KAAK,IAAI,CAAC,MAAM;AAG5F,cAAM,SAAS,OAAO,WACjB,IAAI,OAAK;AAEN,cAAI,YAAY,EAAE;AAClB,cAAI,UAAU,SAAS,QAAQ,GAAG;AAE9B,kBAAM,QAAQ,UAAU,MAAM,aAAa;AAC3C,gBAAI,OAAO;AACP,0BAAY,MAAM,CAAC;AAAA,YACvB;AAAA,UACJ;AAEA,iBAAO,GAAG,EAAE,IAAI,GAAG,EAAE,WAAW,MAAM,EAAE,KAAK,SAAS;AAAA,QAC1D,CAAC,EACA,KAAK,IAAI;AAEd,cAAM,KAAK,GAAG,IAAI,GAAG,UAAU,IAAI,MAAM,MAAM,OAAO,UAAU,GAAG;AAAA,MACvE,OAAO;AACH,cAAM,KAAK,GAAG,IAAI,GAAG,OAAO,WAAW,MAAM,EAAE,KAAK,OAAO,IAAI,GAAG;AAAA,MACtE;AAAA,IACJ;AAEA,WAAO,KAAK,MAAM,KAAK,GAAG,CAAC;AAAA,EAC/B;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/SignatureBuilder.ts"],"sourcesContent":["import ts from \"typescript\";\nimport {MemberSignature, MethodSignature, ParameterSignature} from \"./types\";\nimport TypeResolver from \"./TypeResolver\";\nimport JSDocParser from \"./JSDocParser\";\n\n/**\n * Builds method and property signatures from TypeScript nodes.\n */\nexport default class SignatureBuilder {\n /**\n * Constructor for the SignatureBuilder.\n *\n * @param typeResolver The type resolver to use for resolving types\n */\n private readonly jsDocParser: JSDocParser;\n\n constructor(private readonly typeResolver: TypeResolver) {\n this.jsDocParser = new JSDocParser();\n }\n\n /**\n * Builds a method signature from a function-like node.\n *\n * @param method The function-like node to build a signature from\n * @returns The method signature\n */\n public getMethodSignature(\n method: ts.MethodDeclaration | ts.GetAccessorDeclaration | ts.FunctionExpression | ts.ArrowFunction\n ): MethodSignature {\n // Get JSDoc parameter types if available\n const jsDocParamTypes =\n \"parameters\" in method\n ? this.jsDocParser.getJSDocParameterTypes(method as ts.SignatureDeclaration)\n : new Map<string, string>();\n\n // parameters\n const params: ParameterSignature[] = (\"parameters\" in method ? method.parameters : [])\n .filter(p => p.name.getText() !== \"this\")\n .map(p => {\n const name = ts.isIdentifier(p.name) ? p.name.text : p.name.getText();\n\n // Use JSDoc type if available, otherwise use TypeScript type\n const tsType = p.type ? this.typeResolver.resolveTypeNode(p.type) : \"any\";\n const jsDocType = jsDocParamTypes.get(name);\n const type = jsDocType || tsType;\n\n // Remove spaces in object types to match expected format\n const formattedType = type.replace(/{\\s+/g, \"{\").replace(/\\s+}/g, \"}\");\n const optional = p.questionToken !== undefined || p.initializer !== undefined;\n return {name, type: formattedType, optional};\n });\n\n // Get JSDoc type parameters if available, otherwise use TypeScript type parameters\n let typeParams: string[] = [];\n\n if (\"parameters\" in method) {\n const jsDocTypeParams = this.jsDocParser.getJSDocTypeParameters(method as ts.SignatureDeclaration);\n if (jsDocTypeParams.length > 0) {\n typeParams = jsDocTypeParams;\n } else if (method.typeParameters) {\n typeParams = method.typeParameters.map(tp => tp.getText());\n }\n } else {\n // For non-SignatureDeclaration types, check if typeParameters exists\n const methodWithTypeParams = method as {typeParameters?: ts.NodeArray<ts.TypeParameterDeclaration>};\n if (methodWithTypeParams.typeParameters) {\n typeParams = methodWithTypeParams.typeParameters.map(tp => tp.getText());\n }\n }\n\n // Get JSDoc return type if available\n const jsDocReturnType =\n \"parameters\" in method ? this.jsDocParser.getJSDocReturnType(method as ts.SignatureDeclaration) : undefined;\n\n // return type (inline aliases when possible)\n const returnNode = (method as ts.MethodDeclaration).type;\n const tsReturnType = returnNode ? this.typeResolver.resolveTypeNode(returnNode) : \"any\";\n\n // Use JSDoc return type if available, otherwise use TypeScript return type\n const returnType = jsDocReturnType || tsReturnType;\n\n // Remove spaces in object types to match expected format\n const formattedReturnType = returnType.replace(/{\\s+/g, \"{\").replace(/\\s+}/g, \"}\");\n\n return {\n kind: \"method\",\n typeParameters: typeParams,\n parameters: params,\n returnType: formattedReturnType,\n };\n }\n\n /**\n * Builds a function type string from a method signature.\n *\n * @param sig The method signature to build a function type from\n * @returns The function type as a string\n */\n public buildFunctionType(sig: MethodSignature): string {\n const params = sig.parameters.map(p => `${p.name}${p.optional ? \"?\" : \"\"}: ${p.type}`).join(\", \");\n return `(${params}) => ${sig.returnType}`;\n }\n\n /**\n * Formats a record of member signatures into a string representation.\n *\n * @param members The record of member signatures to format\n * @returns The formatted members as a string\n */\n public formatMembers(members: Record<string, MemberSignature>): string {\n const parts: string[] = [];\n\n for (const [name, member] of Object.entries(members)) {\n if (member.kind === \"method\") {\n const typeParams = member.typeParameters.length ? `<${member.typeParameters.join(\", \")}>` : \"\";\n\n // Clean up parameter types to remove any JSDoc comments\n const params = member.parameters\n .map(p => {\n // If the parameter type contains JSDoc comments, extract just the type\n let paramType = p.type;\n if (paramType.includes(\"@param\")) {\n // This is a parameter with JSDoc comments, extract just the type\n const match = paramType.match(/{([^}]+)}/);\n if (match) {\n paramType = match[1];\n }\n }\n\n return `${p.name}${p.optional ? \"?\" : \"\"}: ${paramType}`;\n })\n .join(\", \");\n\n parts.push(`${name}${typeParams}(${params}): ${member.returnType};`);\n } else {\n parts.push(`${name}${member.optional ? \"?\" : \"\"}: ${member.type};`);\n }\n }\n\n return `{ ${parts.join(\" \")} }`;\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,14 +1,10 @@
1
- import ts from 'typescript';
2
- import EntryFile from '../SourceFile.js';
3
- import NodeFinder from './NodeFinder.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 NodeFinder from "./NodeFinder.js";
8
4
  /**
9
5
  * Resolves TypeScript type nodes to string representations.
10
6
  */
11
- declare class TypeResolver {
7
+ export default class TypeResolver {
12
8
  private readonly sourceFile;
13
9
  private readonly nodeFinder?;
14
10
  /**
@@ -17,7 +13,7 @@ declare class TypeResolver {
17
13
  * @param sourceFile The source file to resolve types from
18
14
  * @param nodeFinder Optional NodeFinder instance to use for finding nodes
19
15
  */
20
- constructor(sourceFile: EntryFile, nodeFinder?: NodeFinder | undefined);
16
+ constructor(sourceFile: SourceFile, nodeFinder?: NodeFinder | undefined);
21
17
  /**
22
18
  * Resolves a TypeScript type node to a string, inlining type aliases when possible.
23
19
  *
@@ -85,5 +81,3 @@ declare class TypeResolver {
85
81
  */
86
82
  private findNodeByName;
87
83
  }
88
-
89
- export { TypeResolver as default };
@@ -12,6 +12,8 @@ class TypeResolver {
12
12
  this.sourceFile = sourceFile;
13
13
  this.nodeFinder = nodeFinder;
14
14
  }
15
+ sourceFile;
16
+ nodeFinder;
15
17
  /**
16
18
  * Resolves a TypeScript type node to a string, inlining type aliases when possible.
17
19
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/TypeResolver.ts"],"sourcesContent":["import ts from \"typescript\";\nimport fs from \"fs\";\nimport SourceFile from \"../SourceFile\";\nimport NodeFinder from \"./NodeFinder\";\n\n/**\n * Resolves TypeScript type nodes to string representations.\n */\nexport default class TypeResolver {\n /**\n * Constructor for the TypeResolver.\n *\n * @param sourceFile The source file to resolve types from\n * @param nodeFinder Optional NodeFinder instance to use for finding nodes\n */\n constructor(\n private readonly sourceFile: SourceFile,\n private readonly nodeFinder?: NodeFinder\n ) {}\n\n /**\n * Resolves a TypeScript type node to a string, inlining type aliases when possible.\n *\n * @param typeNode The type node to resolve\n * @returns The resolved type as a string\n */\n public resolveTypeNode(typeNode: ts.TypeNode): string {\n // Handle union types (like Tab | undefined)\n if (ts.isUnionTypeNode(typeNode)) {\n return this.resolveUnionType(typeNode);\n }\n\n // Handle array types (like Tab[])\n if (ts.isArrayTypeNode(typeNode)) {\n return this.resolveArrayType(typeNode);\n }\n\n // inline type aliases\n if (ts.isTypeReferenceNode(typeNode)) {\n return this.resolveTypeReference(typeNode);\n }\n\n // fallback: use textual representation\n return typeNode.getText();\n }\n\n /**\n * Resolves a union type node to a string.\n *\n * @param typeNode The union type node to resolve\n * @returns The resolved union type as a string\n */\n public resolveUnionType(typeNode: ts.UnionTypeNode): string {\n const types = typeNode.types.map(t => this.resolveTypeNode(t));\n return types.join(\" | \");\n }\n\n /**\n * Resolves an array type node to a string.\n *\n * @param typeNode The array type node to resolve\n * @returns The resolved array type as a string\n */\n public resolveArrayType(typeNode: ts.ArrayTypeNode): string {\n const elementType = this.resolveTypeNode(typeNode.elementType);\n return `${elementType}[]`;\n }\n\n /**\n * Resolves a type reference node to a string, inlining type aliases when possible.\n *\n * @param typeNode The type reference node to resolve\n * @returns The resolved type reference as a string\n */\n public resolveTypeReference(typeNode: ts.TypeReferenceNode): string {\n const name = typeNode.typeName.getText();\n\n // Try to inline the type alias\n const inlined = this.inlineAliasType(name);\n if (inlined) {\n return inlined;\n }\n\n // Check if the type is imported\n const importPath = this.sourceFile.getImports().get(name);\n if (importPath) {\n try {\n // Check if the file exists before creating a parser\n if (!fs.existsSync(importPath)) {\n console.warn(`File not found: ${importPath} when resolving type reference ${name}`);\n return typeNode.getText();\n }\n\n const parser = (this.sourceFile.constructor as typeof SourceFile).make(importPath);\n const typeResolver = new TypeResolver(parser);\n const nodeFinder = new NodeFinder(parser);\n\n // Check for interface declaration\n const interfaceDecl = nodeFinder.findInterfaceDeclaration(name);\n if (interfaceDecl) {\n const props = typeResolver.extractInterfaceProperties(interfaceDecl);\n return props.length ? `{${props.join(\"; \")};}` : `{}`;\n }\n\n // Check for type alias declaration\n const aliasDecl = nodeFinder.findTypeAliasDeclaration(name);\n if (aliasDecl) {\n // Handle intersection types specially\n if (ts.isIntersectionTypeNode(aliasDecl.type)) {\n return typeResolver.processIntersectionType(aliasDecl.type);\n }\n return typeResolver.resolveTypeNode(aliasDecl.type);\n }\n } catch (error) {\n console.warn(`Error resolving type reference ${name} from ${importPath}:`, error);\n }\n }\n\n // If there are type arguments, resolve them\n if (typeNode.typeArguments && typeNode.typeArguments.length > 0) {\n const aliasName = typeNode.typeName.getText();\n // Resolve each type argument\n const resolvedArgs = typeNode.typeArguments.map(arg => this.resolveTypeNode(arg));\n // Construct the type with resolved arguments\n return `${aliasName}<${resolvedArgs.join(\", \")}>`;\n }\n\n // preserve generics and other references\n return typeNode.getText();\n }\n\n /**\n * Attempts to inline a type alias.\n *\n * @param name The name of the type alias\n * @returns The inlined type alias or undefined if it cannot be inlined\n */\n public inlineAliasType(name: string): string | undefined {\n // Check if the type is imported from an external library\n const importPath = this.sourceFile.getImports().get(name);\n\n // Special case for chrome.* namespaces\n if (importPath && (importPath.startsWith(\"chrome.\") || importPath.startsWith(\"browser.\"))) {\n return importPath;\n }\n\n if (importPath && !importPath.startsWith(\".\") && !importPath.startsWith(\"/\") && !fs.existsSync(importPath)) {\n // This is an external library import, format it as import('libraryName').TypeName\n return `import('${importPath}').${name}`;\n }\n\n // Check for import equals declaration (import X = Y.Z)\n const nodeFinder = this.nodeFinder || new NodeFinder(this.sourceFile);\n const importEquals = nodeFinder.findImportEqualsDeclaration(name);\n if (importEquals && importEquals.moduleReference) {\n // For qualified names like chrome.tabs.Tab, return the qualified name\n if (ts.isQualifiedName(importEquals.moduleReference)) {\n return importEquals.moduleReference.getText();\n }\n // For external module references like 'somelib', handle as external library\n else if (\n ts.isExternalModuleReference(importEquals.moduleReference) &&\n importEquals.moduleReference.expression &&\n ts.isStringLiteral(importEquals.moduleReference.expression)\n ) {\n const libPath = importEquals.moduleReference.expression.text;\n return `import('${libPath}').${name}`;\n }\n // For other module references, return the text representation\n else {\n return importEquals.moduleReference.getText();\n }\n }\n\n // Find the type alias declaration\n const aliasDecl = this.findTypeAliasDeclaration(name);\n if (aliasDecl) {\n const typeNode = aliasDecl.type;\n\n // handle intersection type alias by flattening members\n if (ts.isIntersectionTypeNode(typeNode)) {\n return this.processIntersectionType(typeNode);\n }\n\n // For type reference nodes (like aliases to other types), preserve the original type\n if (ts.isTypeReferenceNode(typeNode) && ts.isIdentifier(typeNode.typeName)) {\n // Get the full text of the type node, which includes any namespace qualifiers\n return typeNode.getText();\n }\n\n return this.resolveTypeNode(typeNode);\n }\n\n // local interface\n const localInterface = nodeFinder.findInterfaceDeclaration(name);\n if (localInterface) {\n const props = this.extractInterfaceProperties(localInterface);\n return props.length ? `{${props.join(\"; \")};}` : `{}`;\n }\n\n // Handle imported types\n if (importPath) {\n try {\n // Check if the file exists before creating a parser\n if (!fs.existsSync(importPath)) {\n console.warn(`File not found: ${importPath} when resolving type alias ${name}`);\n return undefined;\n }\n\n const parser = (this.sourceFile.constructor as typeof SourceFile).make(importPath);\n const typeResolver = new TypeResolver(parser);\n\n // imported type alias\n const aliasDecl = nodeFinder.findTypeAliasDeclaration(name);\n if (aliasDecl) {\n // inline imported type alias (including intersections)\n return typeResolver.inlineAliasType(name);\n }\n\n // imported interface\n const interfaceDecl = nodeFinder.findInterfaceDeclaration(name);\n if (interfaceDecl) {\n const props = this.extractInterfaceProperties(interfaceDecl);\n return props.length ? `{${props.join(\"; \")};}` : `{}`;\n }\n } catch (error) {\n console.warn(`Error resolving type alias ${name} from ${importPath}:`, error);\n return undefined;\n }\n }\n\n return undefined;\n }\n\n /**\n * Processes an intersection type node by flattening its members\n */\n private processIntersectionType(typeNode: ts.IntersectionTypeNode): string {\n const parts: string[] = [];\n const seen = new Set<string>();\n\n for (const t of typeNode.types) {\n // inline object literal types\n if (ts.isTypeLiteralNode(t)) {\n for (const m of t.members) {\n let keyName: string;\n let entry: string;\n if (ts.isPropertySignature(m) && m.type) {\n keyName = this.getName(m.name!);\n const typeText = this.resolveTypeNode(m.type);\n // Remove spaces in object types to match expected format\n const formattedTypeText = typeText.replace(/\\{\\s+/g, \"{\").replace(/\\s+\\}/g, \"}\");\n entry = `${keyName}: ${formattedTypeText}`;\n } else if (ts.isMethodSignature(m) && m.name) {\n keyName = this.getName(m.name);\n const typeParams = m.typeParameters ? m.typeParameters.map(tp => tp.getText()) : [];\n const tpText = typeParams.length ? `<${typeParams.join(\",\")}>` : \"\";\n const paramsText = m.parameters\n .map(p => {\n const pname = ts.isIdentifier(p.name) ? p.name.text : p.name.getText();\n const ptype = p.type ? this.resolveTypeNode(p.type) : \"any\";\n // Remove spaces in object types to match expected format\n const formattedPType = ptype.replace(/\\{\\s+/g, \"{\").replace(/\\s+\\}/g, \"}\");\n return `${pname}: ${formattedPType}`;\n })\n .join(\",\");\n const returnType = m.type ? this.resolveTypeNode(m.type) : \"any\";\n // Remove spaces in object types to match expected format\n const formattedReturnType = returnType.replace(/\\{\\s+/g, \"{\").replace(/\\s+\\}/g, \"}\");\n entry = `${keyName}${tpText}(${paramsText}): ${formattedReturnType}`;\n } else if (ts.isIndexSignatureDeclaration(m) && m.type) {\n // Handle index signatures like [domain: string]: number;\n const paramName = m.parameters[0].name.getText();\n const paramType = m.parameters[0].type ? this.resolveTypeNode(m.parameters[0].type) : \"any\";\n const returnType = this.resolveTypeNode(m.type);\n // Use a special key for index signatures to avoid conflicts\n keyName = `[${paramName}:${paramType}]`;\n entry = `[${paramName}: ${paramType}]: ${returnType}`;\n } else {\n continue;\n }\n if (!seen.has(keyName)) {\n seen.add(keyName);\n parts.push(entry);\n }\n }\n }\n // inline referenced aliases or interfaces\n else if (ts.isTypeReferenceNode(t) && ts.isIdentifier(t.typeName)) {\n const refName = t.typeName.text;\n const sub = this.inlineAliasType(refName);\n if (sub) {\n this.extractSegmentsFromType(sub, seen, parts);\n }\n }\n }\n\n return `{${parts.join(\"; \")};}`;\n }\n\n /**\n * Extracts segments from a type string, handling nested braces\n */\n private extractSegmentsFromType(typeStr: string, seen: Set<string>, parts: string[]): void {\n const inner = typeStr.slice(1, -1).trim();\n if (!inner) return;\n\n // split on top-level semicolons (ignore semicolons within braces)\n const segments: string[] = [];\n let depth = 0;\n let buf = \"\";\n\n for (const ch of inner) {\n if (ch === \"{\") {\n depth++;\n buf += ch;\n } else if (ch === \"}\") {\n depth--;\n buf += ch;\n } else if (ch === \";\" && depth === 0) {\n const seg = buf.trim();\n if (seg) segments.push(seg);\n buf = \"\";\n } else {\n buf += ch;\n }\n }\n\n const last = buf.trim();\n if (last) segments.push(last);\n\n for (const s of segments) {\n const keyName = s.split(/[:(]/)[0];\n if (!seen.has(keyName)) {\n seen.add(keyName);\n parts.push(s);\n }\n }\n }\n\n /**\n * Extracts a textual property name.\n */\n private 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 * Extracts properties from an interface declaration\n */\n public extractInterfaceProperties(interfaceDecl: ts.InterfaceDeclaration, parser: TypeResolver = this): string[] {\n const props: string[] = [];\n\n // include inherited members from extended interfaces\n if (interfaceDecl.heritageClauses) {\n for (const clause of interfaceDecl.heritageClauses) {\n if (clause.token === ts.SyntaxKind.ExtendsKeyword) {\n for (const typeNode of clause.types) {\n const expr = typeNode.expression;\n if (ts.isIdentifier(expr)) {\n const parent = parser.inlineAliasType(expr.text);\n if (parent) {\n const inner = parent.slice(1, -1).trim();\n if (inner) {\n props.push(\n ...inner\n .split(/;\\s*/)\n .map(s => s.trim())\n .filter(Boolean)\n );\n }\n }\n }\n }\n }\n }\n }\n\n // Add interface members\n for (const member of interfaceDecl.members) {\n if (ts.isPropertySignature(member) && member.type) {\n const key = parser.getName(member.name!);\n const optional = member.questionToken ? \"?\" : \"\";\n const typeText = parser.resolveTypeNode(member.type);\n props.push(`${key}${optional}: ${typeText}`);\n } else if (ts.isMethodSignature(member) && member.name) {\n const key = parser.getName(member.name);\n const typeParams = member.typeParameters ? member.typeParameters.map(tp => tp.getText()) : [];\n const tpText = typeParams.length ? `<${typeParams.join(\",\")}>` : \"\";\n\n const params = member.parameters\n .map(p => {\n const pname = ts.isIdentifier(p.name) ? p.name.text : p.name.getText();\n const ptype = p.type ? parser.resolveTypeNode(p.type) : \"any\";\n return `${pname}: ${ptype}`;\n })\n .join(\", \");\n\n const returnType = member.type ? parser.resolveTypeNode(member.type) : \"any\";\n\n props.push(`${key}${tpText}(${params}): ${returnType}`);\n } else if (ts.isIndexSignatureDeclaration(member) && member.type) {\n // Handle index signatures like [domain: string]: number;\n const paramName = member.parameters[0].name.getText();\n const paramType = member.parameters[0].type ? parser.resolveTypeNode(member.parameters[0].type) : \"any\";\n const returnType = parser.resolveTypeNode(member.type);\n props.push(`[${paramName}: ${paramType}]: ${returnType}`);\n }\n }\n\n return props;\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 private 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 * 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 private 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"],"mappings":"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","names":["aliasDecl"]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/parsers/TypeResolver.ts"],"sourcesContent":["import ts from \"typescript\";\nimport fs from \"fs\";\nimport SourceFile from \"../SourceFile\";\nimport NodeFinder from \"./NodeFinder\";\n\n/**\n * Resolves TypeScript type nodes to string representations.\n */\nexport default class TypeResolver {\n /**\n * Constructor for the TypeResolver.\n *\n * @param sourceFile The source file to resolve types from\n * @param nodeFinder Optional NodeFinder instance to use for finding nodes\n */\n constructor(\n private readonly sourceFile: SourceFile,\n private readonly nodeFinder?: NodeFinder\n ) {}\n\n /**\n * Resolves a TypeScript type node to a string, inlining type aliases when possible.\n *\n * @param typeNode The type node to resolve\n * @returns The resolved type as a string\n */\n public resolveTypeNode(typeNode: ts.TypeNode): string {\n // Handle union types (like Tab | undefined)\n if (ts.isUnionTypeNode(typeNode)) {\n return this.resolveUnionType(typeNode);\n }\n\n // Handle array types (like Tab[])\n if (ts.isArrayTypeNode(typeNode)) {\n return this.resolveArrayType(typeNode);\n }\n\n // inline type aliases\n if (ts.isTypeReferenceNode(typeNode)) {\n return this.resolveTypeReference(typeNode);\n }\n\n // fallback: use textual representation\n return typeNode.getText();\n }\n\n /**\n * Resolves a union type node to a string.\n *\n * @param typeNode The union type node to resolve\n * @returns The resolved union type as a string\n */\n public resolveUnionType(typeNode: ts.UnionTypeNode): string {\n const types = typeNode.types.map(t => this.resolveTypeNode(t));\n return types.join(\" | \");\n }\n\n /**\n * Resolves an array type node to a string.\n *\n * @param typeNode The array type node to resolve\n * @returns The resolved array type as a string\n */\n public resolveArrayType(typeNode: ts.ArrayTypeNode): string {\n const elementType = this.resolveTypeNode(typeNode.elementType);\n return `${elementType}[]`;\n }\n\n /**\n * Resolves a type reference node to a string, inlining type aliases when possible.\n *\n * @param typeNode The type reference node to resolve\n * @returns The resolved type reference as a string\n */\n public resolveTypeReference(typeNode: ts.TypeReferenceNode): string {\n const name = typeNode.typeName.getText();\n\n // Try to inline the type alias\n const inlined = this.inlineAliasType(name);\n if (inlined) {\n return inlined;\n }\n\n // Check if the type is imported\n const importPath = this.sourceFile.getImports().get(name);\n if (importPath) {\n try {\n // Check if the file exists before creating a parser\n if (!fs.existsSync(importPath)) {\n console.warn(`File not found: ${importPath} when resolving type reference ${name}`);\n return typeNode.getText();\n }\n\n const parser = (this.sourceFile.constructor as typeof SourceFile).make(importPath);\n const typeResolver = new TypeResolver(parser);\n const nodeFinder = new NodeFinder(parser);\n\n // Check for interface declaration\n const interfaceDecl = nodeFinder.findInterfaceDeclaration(name);\n if (interfaceDecl) {\n const props = typeResolver.extractInterfaceProperties(interfaceDecl);\n return props.length ? `{${props.join(\"; \")};}` : `{}`;\n }\n\n // Check for type alias declaration\n const aliasDecl = nodeFinder.findTypeAliasDeclaration(name);\n if (aliasDecl) {\n // Handle intersection types specially\n if (ts.isIntersectionTypeNode(aliasDecl.type)) {\n return typeResolver.processIntersectionType(aliasDecl.type);\n }\n return typeResolver.resolveTypeNode(aliasDecl.type);\n }\n } catch (error) {\n console.warn(`Error resolving type reference ${name} from ${importPath}:`, error);\n }\n }\n\n // If there are type arguments, resolve them\n if (typeNode.typeArguments && typeNode.typeArguments.length > 0) {\n const aliasName = typeNode.typeName.getText();\n // Resolve each type argument\n const resolvedArgs = typeNode.typeArguments.map(arg => this.resolveTypeNode(arg));\n // Construct the type with resolved arguments\n return `${aliasName}<${resolvedArgs.join(\", \")}>`;\n }\n\n // preserve generics and other references\n return typeNode.getText();\n }\n\n /**\n * Attempts to inline a type alias.\n *\n * @param name The name of the type alias\n * @returns The inlined type alias or undefined if it cannot be inlined\n */\n public inlineAliasType(name: string): string | undefined {\n // Check if the type is imported from an external library\n const importPath = this.sourceFile.getImports().get(name);\n\n // Special case for chrome.* namespaces\n if (importPath && (importPath.startsWith(\"chrome.\") || importPath.startsWith(\"browser.\"))) {\n return importPath;\n }\n\n if (importPath && !importPath.startsWith(\".\") && !importPath.startsWith(\"/\") && !fs.existsSync(importPath)) {\n // This is an external library import, format it as import('libraryName').TypeName\n return `import('${importPath}').${name}`;\n }\n\n // Check for import equals declaration (import X = Y.Z)\n const nodeFinder = this.nodeFinder || new NodeFinder(this.sourceFile);\n const importEquals = nodeFinder.findImportEqualsDeclaration(name);\n if (importEquals && importEquals.moduleReference) {\n // For qualified names like chrome.tabs.Tab, return the qualified name\n if (ts.isQualifiedName(importEquals.moduleReference)) {\n return importEquals.moduleReference.getText();\n }\n // For external module references like 'somelib', handle as external library\n else if (\n ts.isExternalModuleReference(importEquals.moduleReference) &&\n importEquals.moduleReference.expression &&\n ts.isStringLiteral(importEquals.moduleReference.expression)\n ) {\n const libPath = importEquals.moduleReference.expression.text;\n return `import('${libPath}').${name}`;\n }\n // For other module references, return the text representation\n else {\n return importEquals.moduleReference.getText();\n }\n }\n\n // Find the type alias declaration\n const aliasDecl = this.findTypeAliasDeclaration(name);\n if (aliasDecl) {\n const typeNode = aliasDecl.type;\n\n // handle intersection type alias by flattening members\n if (ts.isIntersectionTypeNode(typeNode)) {\n return this.processIntersectionType(typeNode);\n }\n\n // For type reference nodes (like aliases to other types), preserve the original type\n if (ts.isTypeReferenceNode(typeNode) && ts.isIdentifier(typeNode.typeName)) {\n // Get the full text of the type node, which includes any namespace qualifiers\n return typeNode.getText();\n }\n\n return this.resolveTypeNode(typeNode);\n }\n\n // local interface\n const localInterface = nodeFinder.findInterfaceDeclaration(name);\n if (localInterface) {\n const props = this.extractInterfaceProperties(localInterface);\n return props.length ? `{${props.join(\"; \")};}` : `{}`;\n }\n\n // Handle imported types\n if (importPath) {\n try {\n // Check if the file exists before creating a parser\n if (!fs.existsSync(importPath)) {\n console.warn(`File not found: ${importPath} when resolving type alias ${name}`);\n return undefined;\n }\n\n const parser = (this.sourceFile.constructor as typeof SourceFile).make(importPath);\n const typeResolver = new TypeResolver(parser);\n\n // imported type alias\n const aliasDecl = nodeFinder.findTypeAliasDeclaration(name);\n if (aliasDecl) {\n // inline imported type alias (including intersections)\n return typeResolver.inlineAliasType(name);\n }\n\n // imported interface\n const interfaceDecl = nodeFinder.findInterfaceDeclaration(name);\n if (interfaceDecl) {\n const props = this.extractInterfaceProperties(interfaceDecl);\n return props.length ? `{${props.join(\"; \")};}` : `{}`;\n }\n } catch (error) {\n console.warn(`Error resolving type alias ${name} from ${importPath}:`, error);\n return undefined;\n }\n }\n\n return undefined;\n }\n\n /**\n * Processes an intersection type node by flattening its members\n */\n private processIntersectionType(typeNode: ts.IntersectionTypeNode): string {\n const parts: string[] = [];\n const seen = new Set<string>();\n\n for (const t of typeNode.types) {\n // inline object literal types\n if (ts.isTypeLiteralNode(t)) {\n for (const m of t.members) {\n let keyName: string;\n let entry: string;\n if (ts.isPropertySignature(m) && m.type) {\n keyName = this.getName(m.name!);\n const typeText = this.resolveTypeNode(m.type);\n // Remove spaces in object types to match expected format\n const formattedTypeText = typeText.replace(/\\{\\s+/g, \"{\").replace(/\\s+\\}/g, \"}\");\n entry = `${keyName}: ${formattedTypeText}`;\n } else if (ts.isMethodSignature(m) && m.name) {\n keyName = this.getName(m.name);\n const typeParams = m.typeParameters ? m.typeParameters.map(tp => tp.getText()) : [];\n const tpText = typeParams.length ? `<${typeParams.join(\",\")}>` : \"\";\n const paramsText = m.parameters\n .map(p => {\n const pname = ts.isIdentifier(p.name) ? p.name.text : p.name.getText();\n const ptype = p.type ? this.resolveTypeNode(p.type) : \"any\";\n // Remove spaces in object types to match expected format\n const formattedPType = ptype.replace(/\\{\\s+/g, \"{\").replace(/\\s+\\}/g, \"}\");\n return `${pname}: ${formattedPType}`;\n })\n .join(\",\");\n const returnType = m.type ? this.resolveTypeNode(m.type) : \"any\";\n // Remove spaces in object types to match expected format\n const formattedReturnType = returnType.replace(/\\{\\s+/g, \"{\").replace(/\\s+\\}/g, \"}\");\n entry = `${keyName}${tpText}(${paramsText}): ${formattedReturnType}`;\n } else if (ts.isIndexSignatureDeclaration(m) && m.type) {\n // Handle index signatures like [domain: string]: number;\n const paramName = m.parameters[0].name.getText();\n const paramType = m.parameters[0].type ? this.resolveTypeNode(m.parameters[0].type) : \"any\";\n const returnType = this.resolveTypeNode(m.type);\n // Use a special key for index signatures to avoid conflicts\n keyName = `[${paramName}:${paramType}]`;\n entry = `[${paramName}: ${paramType}]: ${returnType}`;\n } else {\n continue;\n }\n if (!seen.has(keyName)) {\n seen.add(keyName);\n parts.push(entry);\n }\n }\n }\n // inline referenced aliases or interfaces\n else if (ts.isTypeReferenceNode(t) && ts.isIdentifier(t.typeName)) {\n const refName = t.typeName.text;\n const sub = this.inlineAliasType(refName);\n if (sub) {\n this.extractSegmentsFromType(sub, seen, parts);\n }\n }\n }\n\n return `{${parts.join(\"; \")};}`;\n }\n\n /**\n * Extracts segments from a type string, handling nested braces\n */\n private extractSegmentsFromType(typeStr: string, seen: Set<string>, parts: string[]): void {\n const inner = typeStr.slice(1, -1).trim();\n if (!inner) return;\n\n // split on top-level semicolons (ignore semicolons within braces)\n const segments: string[] = [];\n let depth = 0;\n let buf = \"\";\n\n for (const ch of inner) {\n if (ch === \"{\") {\n depth++;\n buf += ch;\n } else if (ch === \"}\") {\n depth--;\n buf += ch;\n } else if (ch === \";\" && depth === 0) {\n const seg = buf.trim();\n if (seg) segments.push(seg);\n buf = \"\";\n } else {\n buf += ch;\n }\n }\n\n const last = buf.trim();\n if (last) segments.push(last);\n\n for (const s of segments) {\n const keyName = s.split(/[:(]/)[0];\n if (!seen.has(keyName)) {\n seen.add(keyName);\n parts.push(s);\n }\n }\n }\n\n /**\n * Extracts a textual property name.\n */\n private 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 * Extracts properties from an interface declaration\n */\n public extractInterfaceProperties(interfaceDecl: ts.InterfaceDeclaration, parser: TypeResolver = this): string[] {\n const props: string[] = [];\n\n // include inherited members from extended interfaces\n if (interfaceDecl.heritageClauses) {\n for (const clause of interfaceDecl.heritageClauses) {\n if (clause.token === ts.SyntaxKind.ExtendsKeyword) {\n for (const typeNode of clause.types) {\n const expr = typeNode.expression;\n if (ts.isIdentifier(expr)) {\n const parent = parser.inlineAliasType(expr.text);\n if (parent) {\n const inner = parent.slice(1, -1).trim();\n if (inner) {\n props.push(\n ...inner\n .split(/;\\s*/)\n .map(s => s.trim())\n .filter(Boolean)\n );\n }\n }\n }\n }\n }\n }\n }\n\n // Add interface members\n for (const member of interfaceDecl.members) {\n if (ts.isPropertySignature(member) && member.type) {\n const key = parser.getName(member.name!);\n const optional = member.questionToken ? \"?\" : \"\";\n const typeText = parser.resolveTypeNode(member.type);\n props.push(`${key}${optional}: ${typeText}`);\n } else if (ts.isMethodSignature(member) && member.name) {\n const key = parser.getName(member.name);\n const typeParams = member.typeParameters ? member.typeParameters.map(tp => tp.getText()) : [];\n const tpText = typeParams.length ? `<${typeParams.join(\",\")}>` : \"\";\n\n const params = member.parameters\n .map(p => {\n const pname = ts.isIdentifier(p.name) ? p.name.text : p.name.getText();\n const ptype = p.type ? parser.resolveTypeNode(p.type) : \"any\";\n return `${pname}: ${ptype}`;\n })\n .join(\", \");\n\n const returnType = member.type ? parser.resolveTypeNode(member.type) : \"any\";\n\n props.push(`${key}${tpText}(${params}): ${returnType}`);\n } else if (ts.isIndexSignatureDeclaration(member) && member.type) {\n // Handle index signatures like [domain: string]: number;\n const paramName = member.parameters[0].name.getText();\n const paramType = member.parameters[0].type ? parser.resolveTypeNode(member.parameters[0].type) : \"any\";\n const returnType = parser.resolveTypeNode(member.type);\n props.push(`[${paramName}: ${paramType}]: ${returnType}`);\n }\n }\n\n return props;\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 private 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 * 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 private 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"],"mappings":"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","names":["aliasDecl"]}
@@ -1,3 +1 @@
1
- declare const shouldIncludeMember: (name: string) => boolean;
2
-
3
- export { shouldIncludeMember };
1
+ export declare const shouldIncludeMember: (name: string) => boolean;
@@ -1,14 +1,7 @@
1
- export { default as FunctionParser } from './FunctionParser.js';
2
- export { default as ObjectParser } from './ObjectParser.js';
3
- export { default as ClassParser } from './ClassParser.js';
4
- export { default as TypeResolver } from './TypeResolver.js';
5
- export { default as SignatureBuilder } from './SignatureBuilder.js';
6
- export { default as NodeFinder } from './NodeFinder.js';
7
- export { default as JSDocParser } from './JSDocParser.js';
8
- import 'typescript';
9
- import '../SourceFile.js';
10
- import '../resolvers/ImportResolver.js';
11
- import '../resolvers/TsResolver.js';
12
- import '../types.js';
13
- import './AbstractParser.js';
14
- import './types.js';
1
+ export { default as FunctionParser } from "./FunctionParser.js";
2
+ export { default as ObjectParser } from "./ObjectParser.js";
3
+ export { default as ClassParser } from "./ClassParser.js";
4
+ export { default as TypeResolver } from "./TypeResolver.js";
5
+ export { default as SignatureBuilder } from "./SignatureBuilder.js";
6
+ export { default as NodeFinder } from "./NodeFinder.js";
7
+ export { default as JSDocParser } from "./JSDocParser.js";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Signature of a method parameter.
3
3
  */
4
- interface ParameterSignature {
4
+ export interface ParameterSignature {
5
5
  name: string;
6
6
  type: string;
7
7
  optional: boolean;
@@ -9,7 +9,7 @@ interface ParameterSignature {
9
9
  /**
10
10
  * Signature of a method.
11
11
  */
12
- interface MethodSignature {
12
+ export interface MethodSignature {
13
13
  kind: "method";
14
14
  typeParameters: string[];
15
15
  parameters: ParameterSignature[];
@@ -18,7 +18,7 @@ interface MethodSignature {
18
18
  /**
19
19
  * Signature of a property.
20
20
  */
21
- interface PropertySignature {
21
+ export interface PropertySignature {
22
22
  kind: "property";
23
23
  type: string;
24
24
  optional?: boolean;
@@ -26,6 +26,4 @@ interface PropertySignature {
26
26
  /**
27
27
  * Member of an interface: either a method or a property.
28
28
  */
29
- type MemberSignature = MethodSignature | PropertySignature;
30
-
31
- export type { MemberSignature, MethodSignature, ParameterSignature, PropertySignature };
29
+ export type MemberSignature = MethodSignature | PropertySignature;
@@ -1,7 +1,5 @@
1
- import TsResolver from './TsResolver.js';
2
- import 'typescript';
3
-
4
- declare class export_default{
1
+ import TsResolver from "./TsResolver.js";
2
+ export default class {
5
3
  protected ts: TsResolver;
6
4
  protected baseDir: string;
7
5
  constructor(ts?: TsResolver);
@@ -9,5 +7,3 @@ declare class export_default{
9
7
  setBaseDir(baseDir: string): this;
10
8
  get(importPath: string): string;
11
9
  }
12
-
13
- export { export_default as default };
@@ -8,6 +8,7 @@ class ImportResolver_default {
8
8
  this.ts = ts;
9
9
  this.baseDir = process.cwd();
10
10
  }
11
+ ts;
11
12
  baseDir;
12
13
  setTs(ts) {
13
14
  this.ts = ts;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/entrypoint/file/resolvers/ImportResolver.ts"],"sourcesContent":["import path from \"path\";\nimport {createRequire} from \"module\";\n\nimport TsResolver from \"./TsResolver\";\n\nimport {hasEntrypointPath, resolveEntrypointPath} from \"@cli/entrypoint/index.js\";\n\nimport {PackageName} from \"@typing/app\";\n\nexport default class {\n protected baseDir: string;\n\n constructor(protected ts: TsResolver = TsResolver.make()) {\n this.baseDir = process.cwd();\n }\n\n public setTs(ts: TsResolver): this {\n this.ts = ts;\n\n return this;\n }\n\n public setBaseDir(baseDir: string): this {\n this.baseDir = baseDir;\n\n return this;\n }\n\n public get(importPath: string): string {\n if (importPath.startsWith(\".\") || importPath.startsWith(\"/\")) {\n let resolvedLocal: string | undefined = path.resolve(this.baseDir, importPath);\n\n if (hasEntrypointPath(resolvedLocal)) {\n return resolvedLocal;\n }\n\n resolvedLocal = resolveEntrypointPath(resolvedLocal);\n\n if (resolvedLocal) {\n return resolvedLocal;\n }\n\n return importPath;\n }\n\n let aliased = this.ts.matchPath(importPath);\n\n if (aliased) {\n if (hasEntrypointPath(aliased)) {\n return path.resolve(aliased);\n }\n\n aliased = resolveEntrypointPath(aliased);\n\n if (aliased) {\n return path.resolve(aliased);\n }\n }\n\n try {\n if (importPath === PackageName || importPath.startsWith(`${PackageName}/`)) {\n return importPath;\n }\n\n return createRequire(import.meta.url).resolve(importPath, {paths: [this.baseDir]});\n } catch {\n return importPath;\n }\n }\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAQ,qBAAoB;AAE5B,OAAO,gBAAgB;AAEvB,SAAQ,mBAAmB,6BAA4B;AAEvD,SAAQ,mBAAkB;AAE1B,MAAO,uBAAc;AAAA,EAGjB,YAAsB,KAAiB,WAAW,KAAK,GAAG;AAApC;AAClB,SAAK,UAAU,QAAQ,IAAI;AAAA,EAC/B;AAAA,EAJU;AAAA,EAMH,MAAM,IAAsB;AAC/B,SAAK,KAAK;AAEV,WAAO;AAAA,EACX;AAAA,EAEO,WAAW,SAAuB;AACrC,SAAK,UAAU;AAEf,WAAO;AAAA,EACX;AAAA,EAEO,IAAI,YAA4B;AACnC,QAAI,WAAW,WAAW,GAAG,KAAK,WAAW,WAAW,GAAG,GAAG;AAC1D,UAAI,gBAAoC,KAAK,QAAQ,KAAK,SAAS,UAAU;AAE7E,UAAI,kBAAkB,aAAa,GAAG;AAClC,eAAO;AAAA,MACX;AAEA,sBAAgB,sBAAsB,aAAa;AAEnD,UAAI,eAAe;AACf,eAAO;AAAA,MACX;AAEA,aAAO;AAAA,IACX;AAEA,QAAI,UAAU,KAAK,GAAG,UAAU,UAAU;AAE1C,QAAI,SAAS;AACT,UAAI,kBAAkB,OAAO,GAAG;AAC5B,eAAO,KAAK,QAAQ,OAAO;AAAA,MAC/B;AAEA,gBAAU,sBAAsB,OAAO;AAEvC,UAAI,SAAS;AACT,eAAO,KAAK,QAAQ,OAAO;AAAA,MAC/B;AAAA,IACJ;AAEA,QAAI;AACA,UAAI,eAAe,eAAe,WAAW,WAAW,GAAG,WAAW,GAAG,GAAG;AACxE,eAAO;AAAA,MACX;AAEA,aAAO,cAAc,YAAY,GAAG,EAAE,QAAQ,YAAY,EAAC,OAAO,CAAC,KAAK,OAAO,EAAC,CAAC;AAAA,IACrF,QAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/file/resolvers/ImportResolver.ts"],"sourcesContent":["import path from \"path\";\nimport {createRequire} from \"module\";\n\nimport TsResolver from \"./TsResolver\";\n\nimport {hasEntrypointPath, resolveEntrypointPath} from \"@cli/entrypoint/index.js\";\n\nimport {PackageName} from \"@typing/app\";\n\nexport default class {\n protected baseDir: string;\n\n constructor(protected ts: TsResolver = TsResolver.make()) {\n this.baseDir = process.cwd();\n }\n\n public setTs(ts: TsResolver): this {\n this.ts = ts;\n\n return this;\n }\n\n public setBaseDir(baseDir: string): this {\n this.baseDir = baseDir;\n\n return this;\n }\n\n public get(importPath: string): string {\n if (importPath.startsWith(\".\") || importPath.startsWith(\"/\")) {\n let resolvedLocal: string | undefined = path.resolve(this.baseDir, importPath);\n\n if (hasEntrypointPath(resolvedLocal)) {\n return resolvedLocal;\n }\n\n resolvedLocal = resolveEntrypointPath(resolvedLocal);\n\n if (resolvedLocal) {\n return resolvedLocal;\n }\n\n return importPath;\n }\n\n let aliased = this.ts.matchPath(importPath);\n\n if (aliased) {\n if (hasEntrypointPath(aliased)) {\n return path.resolve(aliased);\n }\n\n aliased = resolveEntrypointPath(aliased);\n\n if (aliased) {\n return path.resolve(aliased);\n }\n }\n\n try {\n if (importPath === PackageName || importPath.startsWith(`${PackageName}/`)) {\n return importPath;\n }\n\n return createRequire(import.meta.url).resolve(importPath, {paths: [this.baseDir]});\n } catch {\n return importPath;\n }\n }\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAQ,qBAAoB;AAE5B,OAAO,gBAAgB;AAEvB,SAAQ,mBAAmB,6BAA4B;AAEvD,SAAQ,mBAAkB;AAE1B,MAAO,uBAAc;AAAA,EAGjB,YAAsB,KAAiB,WAAW,KAAK,GAAG;AAApC;AAClB,SAAK,UAAU,QAAQ,IAAI;AAAA,EAC/B;AAAA,EAFsB;AAAA,EAFZ;AAAA,EAMH,MAAM,IAAsB;AAC/B,SAAK,KAAK;AAEV,WAAO;AAAA,EACX;AAAA,EAEO,WAAW,SAAuB;AACrC,SAAK,UAAU;AAEf,WAAO;AAAA,EACX;AAAA,EAEO,IAAI,YAA4B;AACnC,QAAI,WAAW,WAAW,GAAG,KAAK,WAAW,WAAW,GAAG,GAAG;AAC1D,UAAI,gBAAoC,KAAK,QAAQ,KAAK,SAAS,UAAU;AAE7E,UAAI,kBAAkB,aAAa,GAAG;AAClC,eAAO;AAAA,MACX;AAEA,sBAAgB,sBAAsB,aAAa;AAEnD,UAAI,eAAe;AACf,eAAO;AAAA,MACX;AAEA,aAAO;AAAA,IACX;AAEA,QAAI,UAAU,KAAK,GAAG,UAAU,UAAU;AAE1C,QAAI,SAAS;AACT,UAAI,kBAAkB,OAAO,GAAG;AAC5B,eAAO,KAAK,QAAQ,OAAO;AAAA,MAC/B;AAEA,gBAAU,sBAAsB,OAAO;AAEvC,UAAI,SAAS;AACT,eAAO,KAAK,QAAQ,OAAO;AAAA,MAC/B;AAAA,IACJ;AAEA,QAAI;AACA,UAAI,eAAe,eAAe,WAAW,WAAW,GAAG,WAAW,GAAG,GAAG;AACxE,eAAO;AAAA,MACX;AAEA,aAAO,cAAc,YAAY,GAAG,EAAE,QAAQ,YAAY,EAAC,OAAO,CAAC,KAAK,OAAO,EAAC,CAAC;AAAA,IACrF,QAAQ;AACJ,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;","names":[]}
@@ -1,6 +1,5 @@
1
- import ts from 'typescript';
2
-
3
- declare class TsResolver {
1
+ import ts from "typescript";
2
+ export default class TsResolver {
4
3
  protected static readonly instances: Map<string, TsResolver>;
5
4
  protected filename: string;
6
5
  protected config?: ts.ParsedCommandLine;
@@ -13,5 +12,3 @@ declare class TsResolver {
13
12
  setFilename(filename: string): this;
14
13
  getConfig(): ts.ParsedCommandLine;
15
14
  }
16
-
17
- export { TsResolver as default };
@@ -1,3 +1,2 @@
1
- export { default as TsResolver } from './TsResolver.js';
2
- export { default as ImportResolver } from './ImportResolver.js';
3
- import 'typescript';
1
+ export { default as TsResolver } from "./TsResolver.js";
2
+ export { default as ImportResolver } from "./ImportResolver.js";
@@ -1,16 +1,14 @@
1
- interface Variable {
1
+ export interface Variable {
2
2
  name: string;
3
3
  value: any;
4
4
  exported: boolean;
5
5
  }
6
- interface Injector<T = any> {
6
+ export interface Injector<T = any> {
7
7
  from: string;
8
8
  target: string;
9
9
  name: string;
10
10
  value: T;
11
11
  }
12
- type VariableMap = Map<string, Variable>;
13
- type ImportMap = Map<string, string>;
14
- type EnumMap = Map<string, Map<string, string | number>>;
15
-
16
- export type { EnumMap, ImportMap, Injector, Variable, VariableMap };
12
+ export type VariableMap = Map<string, Variable>;
13
+ export type ImportMap = Map<string, string>;
14
+ export type EnumMap = Map<string, Map<string, string | number>>;
@@ -1,17 +1,6 @@
1
- import export_default$1 from './AbstractFinder.js';
2
- import { Z as EntrypointFile } from '../../../manifest-DKvERQ4d.js';
3
- import '../../../config-B38J9WIM.js';
4
- import '@rspack/core';
5
- import 'html-rspack-tags-plugin';
6
- import '../../../types/app.js';
7
- import '../../../types/browser.js';
8
- import '../../../types/locale.js';
9
- import '../../../types/helpers.js';
10
- import '../../../types/env.js';
11
- import 'react';
12
- import 'utility-types';
13
-
14
- declare abstract class export_default extends export_default$1 {
1
+ import AbstractFinder from "./AbstractFinder.js";
2
+ import { EntrypointFile } from "../../../types/entrypoint.js";
3
+ export default abstract class extends AbstractFinder {
15
4
  abstract getNames(): ReadonlySet<string>;
16
5
  abstract isValidExtension(extension: string): boolean;
17
6
  getDirectory(): string;
@@ -21,5 +10,3 @@ declare abstract class export_default extends export_default$1 {
21
10
  protected getFiles(): Promise<Set<EntrypointFile>>;
22
11
  protected findFiles(directory: string): Promise<Set<EntrypointFile>>;
23
12
  }
24
-
25
- export { export_default as default };
@@ -1,18 +1,7 @@
1
- import export_default$1 from './AbstractOptionsFinder.js';
2
- import { Y as EntrypointOptions, Z as EntrypointFile } from '../../../manifest-DKvERQ4d.js';
3
- import { R as ReadonlyConfig } from '../../../config-B38J9WIM.js';
4
- import './AbstractFinder.js';
5
- import '@rspack/core';
6
- import 'html-rspack-tags-plugin';
7
- import '../../../types/app.js';
8
- import '../../../types/browser.js';
9
- import '../../../types/locale.js';
10
- import '../../../types/helpers.js';
11
- import '../../../types/env.js';
12
- import 'react';
13
- import 'utility-types';
14
-
15
- declare abstract class export_default<O extends EntrypointOptions> extends export_default$1<O> {
1
+ import AbstractOptionsFinder from "./AbstractOptionsFinder.js";
2
+ import { EntrypointFile, EntrypointOptions } from "../../../types/entrypoint.js";
3
+ import { ReadonlyConfig } from "../../../types/config.js";
4
+ export default abstract class<O extends EntrypointOptions> extends AbstractOptionsFinder<O> {
16
5
  protected fileExtensionsPattern: string;
17
6
  protected possibleIndexFiles: Set<string>;
18
7
  protected constructor(config: ReadonlyConfig);
@@ -22,5 +11,3 @@ declare abstract class export_default<O extends EntrypointOptions> extends expor
22
11
  protected isValidFilename(filename: string): boolean;
23
12
  protected isValidDirname(dirname: string): boolean;
24
13
  }
25
-
26
- export { export_default as default };