@ts-for-gir/cli 3.0.0-beta.8 → 3.0.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 (672) hide show
  1. package/README.md +429 -49
  2. package/lib/commands/doc.d.ts +1 -17
  3. package/lib/commands/doc.js +7 -13
  4. package/lib/commands/doc.js.map +1 -1
  5. package/lib/commands/generate.d.ts +1 -39
  6. package/lib/commands/generate.js +8 -25
  7. package/lib/commands/generate.js.map +1 -1
  8. package/lib/commands/list.d.ts +1 -11
  9. package/lib/commands/list.js +6 -10
  10. package/lib/commands/list.js.map +1 -1
  11. package/lib/config.d.ts +25 -11
  12. package/lib/config.js +194 -112
  13. package/lib/config.js.map +1 -1
  14. package/lib/generation-handler.d.ts +3 -4
  15. package/lib/generation-handler.js +8 -12
  16. package/lib/generation-handler.js.map +1 -1
  17. package/lib/index.d.ts +0 -12
  18. package/lib/index.js +0 -12
  19. package/lib/index.js.map +1 -1
  20. package/lib/module-loader.d.ts +41 -27
  21. package/lib/module-loader.js +54 -56
  22. package/lib/module-loader.js.map +1 -1
  23. package/lib/utils.d.ts +13 -86
  24. package/lib/utils.js +13 -194
  25. package/lib/utils.js.map +1 -1
  26. package/package.json +32 -37
  27. package/src/commands/doc.ts +9 -14
  28. package/src/commands/generate.ts +10 -25
  29. package/src/commands/list.ts +8 -10
  30. package/src/config.ts +211 -115
  31. package/src/generation-handler.ts +12 -13
  32. package/src/index.ts +0 -12
  33. package/src/module-loader.ts +88 -75
  34. package/src/utils.ts +12 -222
  35. package/lib/conflict-resolver.d.ts +0 -155
  36. package/lib/conflict-resolver.js +0 -1103
  37. package/lib/conflict-resolver.js.map +0 -1
  38. package/lib/constants.d.ts +0 -18
  39. package/lib/constants.js +0 -23
  40. package/lib/constants.js.map +0 -1
  41. package/lib/generator.d.ts +0 -5
  42. package/lib/generator.js +0 -2
  43. package/lib/generator.js.map +0 -1
  44. package/lib/gir-factory.d.ts +0 -51
  45. package/lib/gir-factory.js +0 -361
  46. package/lib/gir-factory.js.map +0 -1
  47. package/lib/gir-module.d.ts +0 -256
  48. package/lib/gir-module.js +0 -2075
  49. package/lib/gir-module.js.map +0 -1
  50. package/lib/html-doc-generator.d.ts +0 -13
  51. package/lib/html-doc-generator.js +0 -18
  52. package/lib/html-doc-generator.js.map +0 -1
  53. package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +0 -2
  54. package/lib/injection/callbacks/gjs/Gio-2.0.js +0 -36
  55. package/lib/injection/callbacks/gjs/Gio-2.0.js.map +0 -1
  56. package/lib/injection/callbacks/gjs/index.d.ts +0 -2
  57. package/lib/injection/callbacks/gjs/index.js +0 -3
  58. package/lib/injection/callbacks/gjs/index.js.map +0 -1
  59. package/lib/injection/callbacks/index.d.ts +0 -4
  60. package/lib/injection/callbacks/index.js +0 -4
  61. package/lib/injection/callbacks/index.js.map +0 -1
  62. package/lib/injection/callbacks/node-gtk/index.d.ts +0 -2
  63. package/lib/injection/callbacks/node-gtk/index.js +0 -2
  64. package/lib/injection/callbacks/node-gtk/index.js.map +0 -1
  65. package/lib/injection/classes/GLib-2-0.d.ts +0 -2
  66. package/lib/injection/classes/GLib-2-0.js +0 -35
  67. package/lib/injection/classes/GLib-2-0.js.map +0 -1
  68. package/lib/injection/classes/gjs/GLib-2.0.d.ts +0 -2
  69. package/lib/injection/classes/gjs/GLib-2.0.js +0 -200
  70. package/lib/injection/classes/gjs/GLib-2.0.js.map +0 -1
  71. package/lib/injection/classes/gjs/GObject-2.0.d.ts +0 -2
  72. package/lib/injection/classes/gjs/GObject-2.0.js +0 -634
  73. package/lib/injection/classes/gjs/GObject-2.0.js.map +0 -1
  74. package/lib/injection/classes/gjs/Gio-2.0.d.ts +0 -5
  75. package/lib/injection/classes/gjs/Gio-2.0.js +0 -218
  76. package/lib/injection/classes/gjs/Gio-2.0.js.map +0 -1
  77. package/lib/injection/classes/gjs/index.d.ts +0 -2
  78. package/lib/injection/classes/gjs/index.js +0 -5
  79. package/lib/injection/classes/gjs/index.js.map +0 -1
  80. package/lib/injection/classes/index.d.ts +0 -4
  81. package/lib/injection/classes/index.js +0 -5
  82. package/lib/injection/classes/index.js.map +0 -1
  83. package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +0 -2
  84. package/lib/injection/classes/node-gtk/GLib-2.0.js +0 -19
  85. package/lib/injection/classes/node-gtk/GLib-2.0.js.map +0 -1
  86. package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +0 -2
  87. package/lib/injection/classes/node-gtk/GObject-2.0.js +0 -66
  88. package/lib/injection/classes/node-gtk/GObject-2.0.js.map +0 -1
  89. package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +0 -2
  90. package/lib/injection/classes/node-gtk/Gdk-4.0.js +0 -32
  91. package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +0 -1
  92. package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +0 -2
  93. package/lib/injection/classes/node-gtk/Gio-2.0.js +0 -14
  94. package/lib/injection/classes/node-gtk/Gio-2.0.js.map +0 -1
  95. package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +0 -2
  96. package/lib/injection/classes/node-gtk/Graphene-1.0.js +0 -133
  97. package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +0 -1
  98. package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +0 -2
  99. package/lib/injection/classes/node-gtk/Gtk-3.0.js +0 -31
  100. package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +0 -1
  101. package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +0 -2
  102. package/lib/injection/classes/node-gtk/Gtk-4.0.js +0 -52
  103. package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +0 -1
  104. package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +0 -2
  105. package/lib/injection/classes/node-gtk/Pango-1.0.js +0 -31
  106. package/lib/injection/classes/node-gtk/Pango-1.0.js.map +0 -1
  107. package/lib/injection/classes/node-gtk/index.d.ts +0 -2
  108. package/lib/injection/classes/node-gtk/index.js +0 -19
  109. package/lib/injection/classes/node-gtk/index.js.map +0 -1
  110. package/lib/injection/index.d.ts +0 -3
  111. package/lib/injection/index.js +0 -4
  112. package/lib/injection/index.js.map +0 -1
  113. package/lib/injection/injector.d.ts +0 -17
  114. package/lib/injection/injector.js +0 -139
  115. package/lib/injection/injector.js.map +0 -1
  116. package/lib/logger.d.ts +0 -36
  117. package/lib/logger.js +0 -137
  118. package/lib/logger.js.map +0 -1
  119. package/lib/messages.d.ts +0 -30
  120. package/lib/messages.js +0 -45
  121. package/lib/messages.js.map +0 -1
  122. package/lib/symtable.d.ts +0 -24
  123. package/lib/symtable.js +0 -63
  124. package/lib/symtable.js.map +0 -1
  125. package/lib/template-processor.d.ts +0 -75
  126. package/lib/template-processor.js +0 -207
  127. package/lib/template-processor.js.map +0 -1
  128. package/lib/transformation.d.ts +0 -156
  129. package/lib/transformation.js +0 -523
  130. package/lib/transformation.js.map +0 -1
  131. package/lib/type-definition-generator.d.ts +0 -116
  132. package/lib/type-definition-generator.js +0 -989
  133. package/lib/type-definition-generator.js.map +0 -1
  134. package/lib/types/answer-version.d.ts +0 -4
  135. package/lib/types/answer-version.js +0 -2
  136. package/lib/types/answer-version.js.map +0 -1
  137. package/lib/types/build-type.d.ts +0 -1
  138. package/lib/types/build-type.js +0 -2
  139. package/lib/types/build-type.js.map +0 -1
  140. package/lib/types/class-parent.d.ts +0 -11
  141. package/lib/types/class-parent.js +0 -2
  142. package/lib/types/class-parent.js.map +0 -1
  143. package/lib/types/config-flags.d.ts +0 -4
  144. package/lib/types/config-flags.js +0 -2
  145. package/lib/types/config-flags.js.map +0 -1
  146. package/lib/types/conflict-child-element.d.ts +0 -10
  147. package/lib/types/conflict-child-element.js +0 -2
  148. package/lib/types/conflict-child-element.js.map +0 -1
  149. package/lib/types/conflict-grouped-element.d.ts +0 -6
  150. package/lib/types/conflict-grouped-element.js +0 -2
  151. package/lib/types/conflict-grouped-element.js.map +0 -1
  152. package/lib/types/conflict-grouped-elements.d.ts +0 -4
  153. package/lib/types/conflict-grouped-elements.js +0 -2
  154. package/lib/types/conflict-grouped-elements.js.map +0 -1
  155. package/lib/types/construct-name.d.ts +0 -1
  156. package/lib/types/construct-name.js +0 -2
  157. package/lib/types/construct-name.js.map +0 -1
  158. package/lib/types/dependency-map.d.ts +0 -4
  159. package/lib/types/dependency-map.js +0 -2
  160. package/lib/types/dependency-map.js.map +0 -1
  161. package/lib/types/dependency.d.ts +0 -14
  162. package/lib/types/dependency.js +0 -2
  163. package/lib/types/dependency.js.map +0 -1
  164. package/lib/types/environment.d.ts +0 -1
  165. package/lib/types/environment.js +0 -2
  166. package/lib/types/environment.js.map +0 -1
  167. package/lib/types/generate-config.d.ts +0 -34
  168. package/lib/types/generate-config.js +0 -2
  169. package/lib/types/generate-config.js.map +0 -1
  170. package/lib/types/generator-type.d.ts +0 -4
  171. package/lib/types/generator-type.js +0 -6
  172. package/lib/types/generator-type.js.map +0 -1
  173. package/lib/types/gir-alias-element.d.ts +0 -13
  174. package/lib/types/gir-alias-element.js +0 -2
  175. package/lib/types/gir-alias-element.js.map +0 -1
  176. package/lib/types/gir-annotation.d.ts +0 -9
  177. package/lib/types/gir-annotation.js +0 -2
  178. package/lib/types/gir-annotation.js.map +0 -1
  179. package/lib/types/gir-any-element.d.ts +0 -2
  180. package/lib/types/gir-any-element.js +0 -2
  181. package/lib/types/gir-any-element.js.map +0 -1
  182. package/lib/types/gir-any-type.d.ts +0 -5
  183. package/lib/types/gir-any-type.js +0 -2
  184. package/lib/types/gir-any-type.js.map +0 -1
  185. package/lib/types/gir-array-type.d.ts +0 -20
  186. package/lib/types/gir-array-type.js +0 -3
  187. package/lib/types/gir-array-type.js.map +0 -1
  188. package/lib/types/gir-bitfield-element.d.ts +0 -17
  189. package/lib/types/gir-bitfield-element.js +0 -2
  190. package/lib/types/gir-bitfield-element.js.map +0 -1
  191. package/lib/types/gir-boolean.d.ts +0 -1
  192. package/lib/types/gir-boolean.js +0 -2
  193. package/lib/types/gir-boolean.js.map +0 -1
  194. package/lib/types/gir-boxed-element.d.ts +0 -15
  195. package/lib/types/gir-boxed-element.js +0 -2
  196. package/lib/types/gir-boxed-element.js.map +0 -1
  197. package/lib/types/gir-c-include.d.ts +0 -7
  198. package/lib/types/gir-c-include.js +0 -2
  199. package/lib/types/gir-c-include.js.map +0 -1
  200. package/lib/types/gir-callable-attrs.d.ts +0 -15
  201. package/lib/types/gir-callable-attrs.js +0 -3
  202. package/lib/types/gir-callable-attrs.js.map +0 -1
  203. package/lib/types/gir-callable-param-element.d.ts +0 -30
  204. package/lib/types/gir-callable-param-element.js +0 -2
  205. package/lib/types/gir-callable-param-element.js.map +0 -1
  206. package/lib/types/gir-callable-param.d.ts +0 -7
  207. package/lib/types/gir-callable-param.js +0 -2
  208. package/lib/types/gir-callable-param.js.map +0 -1
  209. package/lib/types/gir-callable-return.d.ts +0 -22
  210. package/lib/types/gir-callable-return.js +0 -2
  211. package/lib/types/gir-callable-return.js.map +0 -1
  212. package/lib/types/gir-callback-element.d.ts +0 -15
  213. package/lib/types/gir-callback-element.js +0 -2
  214. package/lib/types/gir-callback-element.js.map +0 -1
  215. package/lib/types/gir-class-element.d.ts +0 -48
  216. package/lib/types/gir-class-element.js +0 -2
  217. package/lib/types/gir-class-element.js.map +0 -1
  218. package/lib/types/gir-constant-element.d.ts +0 -15
  219. package/lib/types/gir-constant-element.js +0 -2
  220. package/lib/types/gir-constant-element.js.map +0 -1
  221. package/lib/types/gir-constructor-element.d.ts +0 -8
  222. package/lib/types/gir-constructor-element.js +0 -2
  223. package/lib/types/gir-constructor-element.js.map +0 -1
  224. package/lib/types/gir-direction.d.ts +0 -5
  225. package/lib/types/gir-direction.js +0 -7
  226. package/lib/types/gir-direction.js.map +0 -1
  227. package/lib/types/gir-doc-element.d.ts +0 -68
  228. package/lib/types/gir-doc-element.js +0 -2
  229. package/lib/types/gir-doc-element.js.map +0 -1
  230. package/lib/types/gir-enum-element.d.ts +0 -19
  231. package/lib/types/gir-enum-element.js +0 -2
  232. package/lib/types/gir-enum-element.js.map +0 -1
  233. package/lib/types/gir-field-element.d.ts +0 -18
  234. package/lib/types/gir-field-element.js +0 -2
  235. package/lib/types/gir-field-element.js.map +0 -1
  236. package/lib/types/gir-function-element.d.ts +0 -8
  237. package/lib/types/gir-function-element.js +0 -2
  238. package/lib/types/gir-function-element.js.map +0 -1
  239. package/lib/types/gir-implements.d.ts +0 -8
  240. package/lib/types/gir-implements.js +0 -2
  241. package/lib/types/gir-implements.js.map +0 -1
  242. package/lib/types/gir-include.d.ts +0 -9
  243. package/lib/types/gir-include.js +0 -2
  244. package/lib/types/gir-include.js.map +0 -1
  245. package/lib/types/gir-info-attrs.d.ts +0 -13
  246. package/lib/types/gir-info-attrs.js +0 -2
  247. package/lib/types/gir-info-attrs.js.map +0 -1
  248. package/lib/types/gir-info-elements.d.ts +0 -5
  249. package/lib/types/gir-info-elements.js +0 -2
  250. package/lib/types/gir-info-elements.js.map +0 -1
  251. package/lib/types/gir-instance-parameter.d.ts +0 -21
  252. package/lib/types/gir-instance-parameter.js +0 -2
  253. package/lib/types/gir-instance-parameter.js.map +0 -1
  254. package/lib/types/gir-interface-element.d.ts +0 -31
  255. package/lib/types/gir-interface-element.js +0 -2
  256. package/lib/types/gir-interface-element.js.map +0 -1
  257. package/lib/types/gir-member-element.d.ts +0 -17
  258. package/lib/types/gir-member-element.js +0 -2
  259. package/lib/types/gir-member-element.js.map +0 -1
  260. package/lib/types/gir-method-element.d.ts +0 -13
  261. package/lib/types/gir-method-element.js +0 -2
  262. package/lib/types/gir-method-element.js.map +0 -1
  263. package/lib/types/gir-module-resolved-by.d.ts +0 -10
  264. package/lib/types/gir-module-resolved-by.js +0 -2
  265. package/lib/types/gir-module-resolved-by.js.map +0 -1
  266. package/lib/types/gir-modules-grouped-map.d.ts +0 -4
  267. package/lib/types/gir-modules-grouped-map.js +0 -2
  268. package/lib/types/gir-modules-grouped-map.js.map +0 -1
  269. package/lib/types/gir-modules-grouped.d.ts +0 -12
  270. package/lib/types/gir-modules-grouped.js +0 -2
  271. package/lib/types/gir-modules-grouped.js.map +0 -1
  272. package/lib/types/gir-namespace.d.ts +0 -30
  273. package/lib/types/gir-namespace.js +0 -2
  274. package/lib/types/gir-namespace.js.map +0 -1
  275. package/lib/types/gir-package.d.ts +0 -7
  276. package/lib/types/gir-package.js +0 -2
  277. package/lib/types/gir-package.js.map +0 -1
  278. package/lib/types/gir-prerequisite.d.ts +0 -5
  279. package/lib/types/gir-prerequisite.js +0 -2
  280. package/lib/types/gir-prerequisite.js.map +0 -1
  281. package/lib/types/gir-property-element.d.ts +0 -21
  282. package/lib/types/gir-property-element.js +0 -2
  283. package/lib/types/gir-property-element.js.map +0 -1
  284. package/lib/types/gir-record-element.d.ts +0 -30
  285. package/lib/types/gir-record-element.js +0 -2
  286. package/lib/types/gir-record-element.js.map +0 -1
  287. package/lib/types/gir-repository.d.ts +0 -16
  288. package/lib/types/gir-repository.js +0 -2
  289. package/lib/types/gir-repository.js.map +0 -1
  290. package/lib/types/gir-signal.d.ts +0 -25
  291. package/lib/types/gir-signal.js +0 -2
  292. package/lib/types/gir-signal.js.map +0 -1
  293. package/lib/types/gir-transfer-ownership-type.d.ts +0 -5
  294. package/lib/types/gir-transfer-ownership-type.js +0 -7
  295. package/lib/types/gir-transfer-ownership-type.js.map +0 -1
  296. package/lib/types/gir-transfer-ownership.d.ts +0 -5
  297. package/lib/types/gir-transfer-ownership.js +0 -2
  298. package/lib/types/gir-transfer-ownership.js.map +0 -1
  299. package/lib/types/gir-type.d.ts +0 -14
  300. package/lib/types/gir-type.js +0 -2
  301. package/lib/types/gir-type.js.map +0 -1
  302. package/lib/types/gir-union-element.d.ts +0 -22
  303. package/lib/types/gir-union-element.js +0 -2
  304. package/lib/types/gir-union-element.js.map +0 -1
  305. package/lib/types/gir-unparsed-number.d.ts +0 -2
  306. package/lib/types/gir-unparsed-number.js +0 -2
  307. package/lib/types/gir-unparsed-number.js.map +0 -1
  308. package/lib/types/gir-var-args.d.ts +0 -5
  309. package/lib/types/gir-var-args.js +0 -2
  310. package/lib/types/gir-var-args.js.map +0 -1
  311. package/lib/types/gir-virtual-method.d.ts +0 -10
  312. package/lib/types/gir-virtual-method.js +0 -2
  313. package/lib/types/gir-virtual-method.js.map +0 -1
  314. package/lib/types/index.d.ts +0 -118
  315. package/lib/types/index.js +0 -119
  316. package/lib/types/index.js.map +0 -1
  317. package/lib/types/inheritance-table.d.ts +0 -3
  318. package/lib/types/inheritance-table.js +0 -2
  319. package/lib/types/inheritance-table.js.map +0 -1
  320. package/lib/types/injection-callback.d.ts +0 -16
  321. package/lib/types/injection-callback.js +0 -2
  322. package/lib/types/injection-callback.js.map +0 -1
  323. package/lib/types/injection-class.d.ts +0 -25
  324. package/lib/types/injection-class.js +0 -2
  325. package/lib/types/injection-class.js.map +0 -1
  326. package/lib/types/injection-function.d.ts +0 -7
  327. package/lib/types/injection-function.js +0 -2
  328. package/lib/types/injection-function.js.map +0 -1
  329. package/lib/types/injection-generic-parameter.d.ts +0 -2
  330. package/lib/types/injection-generic-parameter.js +0 -2
  331. package/lib/types/injection-generic-parameter.js.map +0 -1
  332. package/lib/types/injection-instance-parameter.d.ts +0 -2
  333. package/lib/types/injection-instance-parameter.js +0 -2
  334. package/lib/types/injection-instance-parameter.js.map +0 -1
  335. package/lib/types/injection-parameter.d.ts +0 -8
  336. package/lib/types/injection-parameter.js +0 -2
  337. package/lib/types/injection-parameter.js.map +0 -1
  338. package/lib/types/injection-property.d.ts +0 -4
  339. package/lib/types/injection-property.js +0 -2
  340. package/lib/types/injection-property.js.map +0 -1
  341. package/lib/types/injection-type.d.ts +0 -2
  342. package/lib/types/injection-type.js +0 -2
  343. package/lib/types/injection-type.js.map +0 -1
  344. package/lib/types/injection.d.ts +0 -5
  345. package/lib/types/injection.js +0 -2
  346. package/lib/types/injection.js.map +0 -1
  347. package/lib/types/local-name-check.d.ts +0 -4
  348. package/lib/types/local-name-check.js +0 -2
  349. package/lib/types/local-name-check.js.map +0 -1
  350. package/lib/types/local-name-type.d.ts +0 -1
  351. package/lib/types/local-name-type.js +0 -2
  352. package/lib/types/local-name-type.js.map +0 -1
  353. package/lib/types/local-name.d.ts +0 -7
  354. package/lib/types/local-name.js +0 -2
  355. package/lib/types/local-name.js.map +0 -1
  356. package/lib/types/local-names.d.ts +0 -4
  357. package/lib/types/local-names.js +0 -2
  358. package/lib/types/local-names.js.map +0 -1
  359. package/lib/types/module-type.d.ts +0 -1
  360. package/lib/types/module-type.js +0 -2
  361. package/lib/types/module-type.js.map +0 -1
  362. package/lib/types/parsed-gir.d.ts +0 -4
  363. package/lib/types/parsed-gir.js +0 -2
  364. package/lib/types/parsed-gir.js.map +0 -1
  365. package/lib/types/part-of-class.d.ts +0 -7
  366. package/lib/types/part-of-class.js +0 -2
  367. package/lib/types/part-of-class.js.map +0 -1
  368. package/lib/types/part-of-module.d.ts +0 -6
  369. package/lib/types/part-of-module.js +0 -2
  370. package/lib/types/part-of-module.js.map +0 -1
  371. package/lib/types/resolve-type.d.ts +0 -4
  372. package/lib/types/resolve-type.js +0 -6
  373. package/lib/types/resolve-type.js.map +0 -1
  374. package/lib/types/sym-table-items.d.ts +0 -4
  375. package/lib/types/sym-table-items.js +0 -2
  376. package/lib/types/sym-table-items.js.map +0 -1
  377. package/lib/types/transformation-case.d.ts +0 -1
  378. package/lib/types/transformation-case.js +0 -2
  379. package/lib/types/transformation-case.js.map +0 -1
  380. package/lib/types/transformations.d.ts +0 -11
  381. package/lib/types/transformations.js +0 -2
  382. package/lib/types/transformations.js.map +0 -1
  383. package/lib/types/ts-alias.d.ts +0 -10
  384. package/lib/types/ts-alias.js +0 -2
  385. package/lib/types/ts-alias.js.map +0 -1
  386. package/lib/types/ts-callback-interface.d.ts +0 -10
  387. package/lib/types/ts-callback-interface.js +0 -2
  388. package/lib/types/ts-callback-interface.js.map +0 -1
  389. package/lib/types/ts-callback.d.ts +0 -17
  390. package/lib/types/ts-callback.js +0 -2
  391. package/lib/types/ts-callback.js.map +0 -1
  392. package/lib/types/ts-class.d.ts +0 -85
  393. package/lib/types/ts-class.js +0 -2
  394. package/lib/types/ts-class.js.map +0 -1
  395. package/lib/types/ts-doc-tag.d.ts +0 -21
  396. package/lib/types/ts-doc-tag.js +0 -2
  397. package/lib/types/ts-doc-tag.js.map +0 -1
  398. package/lib/types/ts-doc.d.ts +0 -20
  399. package/lib/types/ts-doc.js +0 -2
  400. package/lib/types/ts-doc.js.map +0 -1
  401. package/lib/types/ts-enum.d.ts +0 -12
  402. package/lib/types/ts-enum.js +0 -2
  403. package/lib/types/ts-enum.js.map +0 -1
  404. package/lib/types/ts-function.d.ts +0 -44
  405. package/lib/types/ts-function.js +0 -2
  406. package/lib/types/ts-function.js.map +0 -1
  407. package/lib/types/ts-generic-parameter.d.ts +0 -8
  408. package/lib/types/ts-generic-parameter.js +0 -2
  409. package/lib/types/ts-generic-parameter.js.map +0 -1
  410. package/lib/types/ts-instance-parameter.d.ts +0 -4
  411. package/lib/types/ts-instance-parameter.js +0 -2
  412. package/lib/types/ts-instance-parameter.js.map +0 -1
  413. package/lib/types/ts-member.d.ts +0 -10
  414. package/lib/types/ts-member.js +0 -2
  415. package/lib/types/ts-member.js.map +0 -1
  416. package/lib/types/ts-method.d.ts +0 -5
  417. package/lib/types/ts-method.js +0 -2
  418. package/lib/types/ts-method.js.map +0 -1
  419. package/lib/types/ts-parameter.d.ts +0 -15
  420. package/lib/types/ts-parameter.js +0 -2
  421. package/lib/types/ts-parameter.js.map +0 -1
  422. package/lib/types/ts-property.d.ts +0 -17
  423. package/lib/types/ts-property.js +0 -2
  424. package/lib/types/ts-property.js.map +0 -1
  425. package/lib/types/ts-signal.d.ts +0 -17
  426. package/lib/types/ts-signal.js +0 -2
  427. package/lib/types/ts-signal.js.map +0 -1
  428. package/lib/types/ts-type-name.d.ts +0 -1
  429. package/lib/types/ts-type-name.js +0 -2
  430. package/lib/types/ts-type-name.js.map +0 -1
  431. package/lib/types/ts-type-separator.d.ts +0 -1
  432. package/lib/types/ts-type-separator.js +0 -2
  433. package/lib/types/ts-type-separator.js.map +0 -1
  434. package/lib/types/ts-type.d.ts +0 -22
  435. package/lib/types/ts-type.js +0 -2
  436. package/lib/types/ts-type.js.map +0 -1
  437. package/lib/types/ts-var.d.ts +0 -17
  438. package/lib/types/ts-var.js +0 -2
  439. package/lib/types/ts-var.js.map +0 -1
  440. package/lib/types/type-gir-alias.d.ts +0 -2
  441. package/lib/types/type-gir-alias.js +0 -2
  442. package/lib/types/type-gir-alias.js.map +0 -1
  443. package/lib/types/type-gir-class.d.ts +0 -2
  444. package/lib/types/type-gir-class.js +0 -2
  445. package/lib/types/type-gir-class.js.map +0 -1
  446. package/lib/types/type-gir-element.d.ts +0 -3
  447. package/lib/types/type-gir-element.js +0 -2
  448. package/lib/types/type-gir-element.js.map +0 -1
  449. package/lib/types/type-gir-enumeration-member.d.ts +0 -2
  450. package/lib/types/type-gir-enumeration-member.js +0 -2
  451. package/lib/types/type-gir-enumeration-member.js.map +0 -1
  452. package/lib/types/type-gir-enumeration.d.ts +0 -2
  453. package/lib/types/type-gir-enumeration.js +0 -2
  454. package/lib/types/type-gir-enumeration.js.map +0 -1
  455. package/lib/types/type-gir-function.d.ts +0 -1
  456. package/lib/types/type-gir-function.js +0 -2
  457. package/lib/types/type-gir-function.js.map +0 -1
  458. package/lib/types/type-gir-interface.d.ts +0 -2
  459. package/lib/types/type-gir-interface.js +0 -2
  460. package/lib/types/type-gir-interface.js.map +0 -1
  461. package/lib/types/type-gir-method.d.ts +0 -2
  462. package/lib/types/type-gir-method.js +0 -2
  463. package/lib/types/type-gir-method.js.map +0 -1
  464. package/lib/types/type-gir-parameter.d.ts +0 -1
  465. package/lib/types/type-gir-parameter.js +0 -2
  466. package/lib/types/type-gir-parameter.js.map +0 -1
  467. package/lib/types/type-gir-property.d.ts +0 -2
  468. package/lib/types/type-gir-property.js +0 -2
  469. package/lib/types/type-gir-property.js.map +0 -1
  470. package/lib/types/type-gir-variable.d.ts +0 -1
  471. package/lib/types/type-gir-variable.js +0 -2
  472. package/lib/types/type-gir-variable.js.map +0 -1
  473. package/lib/types/type-ts-element.d.ts +0 -3
  474. package/lib/types/type-ts-element.js +0 -2
  475. package/lib/types/type-ts-element.js.map +0 -1
  476. package/lib/types/type-ts-enumeration-member.d.ts +0 -2
  477. package/lib/types/type-ts-enumeration-member.js +0 -2
  478. package/lib/types/type-ts-enumeration-member.js.map +0 -1
  479. package/lib/types/type-ts-function.d.ts +0 -1
  480. package/lib/types/type-ts-function.js +0 -2
  481. package/lib/types/type-ts-function.js.map +0 -1
  482. package/lib/types/type-ts-property.d.ts +0 -1
  483. package/lib/types/type-ts-property.js +0 -2
  484. package/lib/types/type-ts-property.js.map +0 -1
  485. package/lib/types/user-config-load-result.d.ts +0 -6
  486. package/lib/types/user-config-load-result.js +0 -2
  487. package/lib/types/user-config-load-result.js.map +0 -1
  488. package/lib/types/user-config.d.ts +0 -42
  489. package/lib/types/user-config.js +0 -2
  490. package/lib/types/user-config.js.map +0 -1
  491. package/src/conflict-resolver.ts +0 -1358
  492. package/src/constants.ts +0 -29
  493. package/src/generator.ts +0 -10
  494. package/src/gir-factory.ts +0 -499
  495. package/src/gir-module.ts +0 -2816
  496. package/src/html-doc-generator.ts +0 -23
  497. package/src/injection/callbacks/gjs/Gio-2.0.ts +0 -37
  498. package/src/injection/callbacks/gjs/index.ts +0 -5
  499. package/src/injection/callbacks/index.ts +0 -6
  500. package/src/injection/callbacks/node-gtk/index.ts +0 -3
  501. package/src/injection/classes/GLib-2-0.ts +0 -36
  502. package/src/injection/classes/gjs/GLib-2.0.ts +0 -201
  503. package/src/injection/classes/gjs/GObject-2.0.ts +0 -635
  504. package/src/injection/classes/gjs/Gio-2.0.ts +0 -219
  505. package/src/injection/classes/gjs/index.ts +0 -7
  506. package/src/injection/classes/index.ts +0 -7
  507. package/src/injection/classes/node-gtk/GLib-2.0.ts +0 -20
  508. package/src/injection/classes/node-gtk/GObject-2.0.ts +0 -67
  509. package/src/injection/classes/node-gtk/Gdk-4.0.ts +0 -33
  510. package/src/injection/classes/node-gtk/Gio-2.0.ts +0 -15
  511. package/src/injection/classes/node-gtk/Graphene-1.0.ts +0 -134
  512. package/src/injection/classes/node-gtk/Gtk-3.0.ts +0 -32
  513. package/src/injection/classes/node-gtk/Gtk-4.0.ts +0 -53
  514. package/src/injection/classes/node-gtk/Pango-1.0.ts +0 -32
  515. package/src/injection/classes/node-gtk/index.ts +0 -21
  516. package/src/injection/index.ts +0 -3
  517. package/src/injection/injector.ts +0 -184
  518. package/src/logger.ts +0 -134
  519. package/src/messages.ts +0 -68
  520. package/src/symtable.ts +0 -70
  521. package/src/template-processor.ts +0 -233
  522. package/src/transformation.ts +0 -583
  523. package/src/type-definition-generator.ts +0 -1458
  524. package/src/types/answer-version.ts +0 -4
  525. package/src/types/build-type.ts +0 -1
  526. package/src/types/class-parent.ts +0 -12
  527. package/src/types/config-flags.ts +0 -5
  528. package/src/types/conflict-child-element.ts +0 -11
  529. package/src/types/conflict-grouped-element.ts +0 -7
  530. package/src/types/conflict-grouped-elements.ts +0 -5
  531. package/src/types/construct-name.ts +0 -11
  532. package/src/types/dependency-map.ts +0 -4
  533. package/src/types/dependency.ts +0 -14
  534. package/src/types/environment.ts +0 -1
  535. package/src/types/generate-config.ts +0 -35
  536. package/src/types/generator-type.ts +0 -4
  537. package/src/types/gir-alias-element.ts +0 -15
  538. package/src/types/gir-annotation.ts +0 -10
  539. package/src/types/gir-any-element.ts +0 -35
  540. package/src/types/gir-any-type.ts +0 -7
  541. package/src/types/gir-array-type.ts +0 -23
  542. package/src/types/gir-bitfield-element.ts +0 -20
  543. package/src/types/gir-boolean.ts +0 -1
  544. package/src/types/gir-boxed-element.ts +0 -19
  545. package/src/types/gir-c-include.ts +0 -7
  546. package/src/types/gir-callable-attrs.ts +0 -19
  547. package/src/types/gir-callable-param-element.ts +0 -45
  548. package/src/types/gir-callable-param.ts +0 -9
  549. package/src/types/gir-callable-return.ts +0 -25
  550. package/src/types/gir-callback-element.ts +0 -28
  551. package/src/types/gir-class-element.ts +0 -71
  552. package/src/types/gir-constant-element.ts +0 -17
  553. package/src/types/gir-constructor-element.ts +0 -18
  554. package/src/types/gir-direction.ts +0 -5
  555. package/src/types/gir-doc-element.ts +0 -73
  556. package/src/types/gir-enum-element.ts +0 -28
  557. package/src/types/gir-field-element.ts +0 -31
  558. package/src/types/gir-function-element.ts +0 -19
  559. package/src/types/gir-implements.ts +0 -9
  560. package/src/types/gir-include.ts +0 -9
  561. package/src/types/gir-info-attrs.ts +0 -16
  562. package/src/types/gir-info-elements.ts +0 -8
  563. package/src/types/gir-instance-parameter.ts +0 -25
  564. package/src/types/gir-interface-element.ts +0 -53
  565. package/src/types/gir-member-element.ts +0 -19
  566. package/src/types/gir-method-element.ts +0 -25
  567. package/src/types/gir-module-resolved-by.ts +0 -11
  568. package/src/types/gir-modules-grouped-map.ts +0 -5
  569. package/src/types/gir-modules-grouped.ts +0 -13
  570. package/src/types/gir-namespace.ts +0 -47
  571. package/src/types/gir-package.ts +0 -7
  572. package/src/types/gir-prerequisite.ts +0 -5
  573. package/src/types/gir-property-element.ts +0 -31
  574. package/src/types/gir-record-element.ts +0 -47
  575. package/src/types/gir-repository.ts +0 -20
  576. package/src/types/gir-signal.ts +0 -43
  577. package/src/types/gir-transfer-ownership-type.ts +0 -5
  578. package/src/types/gir-transfer-ownership.ts +0 -6
  579. package/src/types/gir-type.ts +0 -16
  580. package/src/types/gir-union-element.ts +0 -35
  581. package/src/types/gir-unparsed-number.ts +0 -2
  582. package/src/types/gir-var-args.ts +0 -6
  583. package/src/types/gir-virtual-method.ts +0 -22
  584. package/src/types/index.ts +0 -118
  585. package/src/types/inheritance-table.ts +0 -3
  586. package/src/types/injection-callback.ts +0 -20
  587. package/src/types/injection-class.ts +0 -30
  588. package/src/types/injection-function.ts +0 -23
  589. package/src/types/injection-generic-parameter.ts +0 -3
  590. package/src/types/injection-instance-parameter.ts +0 -3
  591. package/src/types/injection-parameter.ts +0 -9
  592. package/src/types/injection-property.ts +0 -7
  593. package/src/types/injection-type.ts +0 -3
  594. package/src/types/injection.ts +0 -6
  595. package/src/types/local-name-check.ts +0 -5
  596. package/src/types/local-name-type.ts +0 -1
  597. package/src/types/local-name.ts +0 -8
  598. package/src/types/local-names.ts +0 -5
  599. package/src/types/module-type.ts +0 -1
  600. package/src/types/parsed-gir.ts +0 -5
  601. package/src/types/part-of-class.ts +0 -9
  602. package/src/types/part-of-module.ts +0 -8
  603. package/src/types/resolve-type.ts +0 -4
  604. package/src/types/sym-table-items.ts +0 -5
  605. package/src/types/transformation-case.ts +0 -7
  606. package/src/types/transformations.ts +0 -12
  607. package/src/types/ts-alias.ts +0 -11
  608. package/src/types/ts-callback-interface.ts +0 -11
  609. package/src/types/ts-callback.ts +0 -21
  610. package/src/types/ts-class.ts +0 -109
  611. package/src/types/ts-doc-tag.ts +0 -23
  612. package/src/types/ts-doc.ts +0 -23
  613. package/src/types/ts-enum.ts +0 -15
  614. package/src/types/ts-function.ts +0 -59
  615. package/src/types/ts-generic-parameter.ts +0 -8
  616. package/src/types/ts-instance-parameter.ts +0 -4
  617. package/src/types/ts-member.ts +0 -11
  618. package/src/types/ts-method.ts +0 -6
  619. package/src/types/ts-parameter.ts +0 -20
  620. package/src/types/ts-property.ts +0 -22
  621. package/src/types/ts-signal.ts +0 -21
  622. package/src/types/ts-type-name.ts +0 -1
  623. package/src/types/ts-type-separator.ts +0 -1
  624. package/src/types/ts-type.ts +0 -25
  625. package/src/types/ts-var.ts +0 -21
  626. package/src/types/type-gir-alias.ts +0 -2
  627. package/src/types/type-gir-class.ts +0 -2
  628. package/src/types/type-gir-element.ts +0 -25
  629. package/src/types/type-gir-enumeration-member.ts +0 -2
  630. package/src/types/type-gir-enumeration.ts +0 -2
  631. package/src/types/type-gir-function.ts +0 -8
  632. package/src/types/type-gir-interface.ts +0 -2
  633. package/src/types/type-gir-method.ts +0 -2
  634. package/src/types/type-gir-parameter.ts +0 -1
  635. package/src/types/type-gir-property.ts +0 -2
  636. package/src/types/type-gir-variable.ts +0 -1
  637. package/src/types/type-ts-element.ts +0 -13
  638. package/src/types/type-ts-enumeration-member.ts +0 -2
  639. package/src/types/type-ts-function.ts +0 -1
  640. package/src/types/type-ts-property.ts +0 -1
  641. package/src/types/user-config-load-result.ts +0 -6
  642. package/src/types/user-config.ts +0 -43
  643. package/templates/Cogl-2.0.d.ts +0 -0
  644. package/templates/Gjs/GObject-2.0.d.ts +0 -238
  645. package/templates/Gjs/Gio-2.0.d.ts +0 -64
  646. package/templates/Gjs/Gjs.d.ts +0 -137
  647. package/templates/Gjs/Gjs.js +0 -21
  648. package/templates/Gjs/GnomeShell.d.ts +0 -122
  649. package/templates/Gjs/GnomeShell.js +0 -10
  650. package/templates/Gjs/index.d.ts +0 -594
  651. package/templates/Gjs/index.js +0 -4
  652. package/templates/Gjs/misc/dbusUtils.d.ts +0 -15
  653. package/templates/Gjs/misc/dbusUtils.js +0 -6
  654. package/templates/Gjs/misc/extensionUtils.d.ts +0 -99
  655. package/templates/Gjs/misc/extensionUtils.js +0 -6
  656. package/templates/Gjs/misc/fileUtils.d.ts +0 -49
  657. package/templates/Gjs/misc/fileUtils.js +0 -6
  658. package/templates/Gjs/misc/gnomeSession.d.ts +0 -72
  659. package/templates/Gjs/misc/gnomeSession.js +0 -6
  660. package/templates/Gjs/module.d.ts +0 -10
  661. package/templates/Gjs/module.js +0 -16
  662. package/templates/Gjs/ui/userWidget.d.ts +0 -10
  663. package/templates/Gjs/ui/userWidget.js +0 -6
  664. package/templates/Granite-1.0.d.ts +0 -7
  665. package/templates/Granite-7.0.d.ts +0 -7
  666. package/templates/GstBase-0.10.d.ts +0 -5
  667. package/templates/RygelServer-2.6.d.ts +0 -3
  668. package/templates/node-gtk/GObject-2.0.d.ts +0 -57
  669. package/templates/node-gtk/index.d.ts +0 -40
  670. package/templates/node-gtk/index.js +0 -9
  671. package/templates/node-gtk/module.d.ts +0 -10
  672. package/templates/node-gtk/module.js +0 -17
@@ -4,10 +4,22 @@
4
4
 
5
5
  import inquirer, { ListQuestion, Answers } from 'inquirer'
6
6
  import glob from 'tiny-glob'
7
- import Path from 'path'
8
- import fs from 'fs'
7
+ import { basename } from 'path'
8
+ import { readFile } from 'fs/promises'
9
9
  import { bold } from 'colorette'
10
10
  import * as xml2js from 'xml2js'
11
+ import {
12
+ DependencyManager,
13
+ ResolveType,
14
+ GirModule,
15
+ Logger,
16
+ splitModuleName,
17
+ union,
18
+ isIterable,
19
+ WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE,
20
+ } from '@ts-for-gir/lib'
21
+ import { Config } from './config.js'
22
+
11
23
  import type {
12
24
  GirModulesGroupedMap,
13
25
  ParsedGir,
@@ -17,20 +29,16 @@ import type {
17
29
  DependencyMap,
18
30
  Dependency,
19
31
  AnswerVersion,
20
- } from './types/index.js'
21
- import { ResolveType } from './types/index.js'
22
- import { GirModule } from './gir-module.js'
23
- import { Config } from './config.js'
24
- import { Logger } from './logger.js'
25
- import { splitModuleName, union, isIterable, map, findFileInDirs } from './utils.js'
26
- import { WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE } from './messages.js'
32
+ } from '@ts-for-gir/lib'
27
33
 
28
34
  export class ModuleLoader {
29
35
  log: Logger
36
+ dependencyManager: DependencyManager
30
37
  /** Transitive module dependencies */
31
38
  modDependencyMap: DependencyMap = {}
32
- constructor(private readonly config: GenerateConfig) {
39
+ constructor(protected readonly config: GenerateConfig) {
33
40
  this.log = new Logger('', config.verbose, 'ModuleLoader')
41
+ this.dependencyManager = DependencyManager.getInstance(config)
34
42
  }
35
43
 
36
44
  /**
@@ -38,7 +46,7 @@ export class ModuleLoader {
38
46
  * E.g. Gtk-3.0 and Gtk-4.0 will be grouped
39
47
  * @param girFiles
40
48
  */
41
- private groupGirFiles(resolveGirModules: Set<GirModuleResolvedBy> | GirModuleResolvedBy[]): GirModulesGroupedMap {
49
+ protected groupGirFiles(resolveGirModules: Set<GirModuleResolvedBy> | GirModuleResolvedBy[]): GirModulesGroupedMap {
42
50
  const girModulesGrouped: GirModulesGroupedMap = {}
43
51
 
44
52
  for (const resolveGirModule of resolveGirModules) {
@@ -65,7 +73,7 @@ export class ModuleLoader {
65
73
  * @param girModulesGrouped
66
74
  * @param selected Users selected module packageName
67
75
  */
68
- private sortVersionsByAnswer(
76
+ protected sortVersionsByAnswer(
69
77
  girModulesGrouped: GirModulesGrouped,
70
78
  selected: string[],
71
79
  ): { keep: Set<GirModuleResolvedBy>; ignore: string[] } {
@@ -99,7 +107,10 @@ export class ModuleLoader {
99
107
  }
100
108
  }
101
109
 
102
- private generateContinueQuestion(message = `do you want to continue?`, choices = ['Yes', 'Go back']): ListQuestion {
110
+ protected generateContinueQuestion(
111
+ message = `do you want to continue?`,
112
+ choices = ['Yes', 'Go back'],
113
+ ): ListQuestion {
103
114
  const question: ListQuestion = {
104
115
  name: 'continue',
105
116
  message,
@@ -109,7 +120,7 @@ export class ModuleLoader {
109
120
  return question
110
121
  }
111
122
 
112
- private generateIgnoreDepsQuestion(
123
+ protected generateIgnoreDepsQuestion(
113
124
  message = `Do you want to ignore them too?`,
114
125
  choices = ['Yes', 'No', 'Go back'],
115
126
  ): ListQuestion {
@@ -122,7 +133,7 @@ export class ModuleLoader {
122
133
  return question
123
134
  }
124
135
 
125
- private async askIgnoreDepsPrompt(
136
+ protected async askIgnoreDepsPrompt(
126
137
  deps: GirModuleResolvedBy[] | Set<GirModuleResolvedBy>,
127
138
  ): Promise<'Yes' | 'No' | 'Go back'> {
128
139
  let question: ListQuestion<Answers> | null = null
@@ -149,7 +160,7 @@ export class ModuleLoader {
149
160
  * @param girModuleGrouped
150
161
  * @param message
151
162
  */
152
- private generateModuleVersionQuestion(girModuleGrouped: GirModulesGrouped, message?: string): ListQuestion {
163
+ protected generateModuleVersionQuestion(girModuleGrouped: GirModulesGrouped, message?: string): ListQuestion {
153
164
  message = message || `Multiple versions of '${girModuleGrouped.namespace}' found, which one do you want to use?`
154
165
  const choices = ['All', ...girModuleGrouped.modules.map((module) => module.packageName)]
155
166
  const question: ListQuestion = {
@@ -166,7 +177,7 @@ export class ModuleLoader {
166
177
  * @param girModulesGroupedMap
167
178
  * @param packageName
168
179
  */
169
- private findModulesDependOnPackage(
180
+ protected findPackageNamesDependOnPackage(
170
181
  girModulesGroupedMap: GirModulesGroupedMap,
171
182
  packageName: string,
172
183
  ): GirModuleResolvedBy[] {
@@ -177,7 +188,7 @@ export class ModuleLoader {
177
188
  continue
178
189
  }
179
190
  for (const dep of girModuleResolvedBy.module.dependencies) {
180
- if (dep === packageName && !girModules.includes(girModuleResolvedBy)) {
191
+ if (dep.packageName === packageName && !girModules.includes(girModuleResolvedBy)) {
181
192
  girModules.push(girModuleResolvedBy)
182
193
  }
183
194
  }
@@ -191,18 +202,18 @@ export class ModuleLoader {
191
202
  * @param girModulesGroupedMap
192
203
  * @param packageName
193
204
  */
194
- private findModulesDependOnPackages(
205
+ protected findPackageNamesDependOnPackages(
195
206
  girModulesGroupedMap: GirModulesGroupedMap,
196
207
  packageNames: string[],
197
208
  ): GirModuleResolvedBy[] {
198
209
  let girModules: GirModuleResolvedBy[] = []
199
210
  for (const packageName of packageNames) {
200
- girModules = girModules.concat(this.findModulesDependOnPackage(girModulesGroupedMap, packageName))
211
+ girModules = girModules.concat(this.findPackageNamesDependOnPackage(girModulesGroupedMap, packageName))
201
212
  }
202
213
  return girModules
203
214
  }
204
215
 
205
- private async askForVersionsPrompt(girModulesGrouped: GirModulesGrouped): Promise<AnswerVersion> {
216
+ protected async askForVersionsPrompt(girModulesGrouped: GirModulesGrouped): Promise<AnswerVersion> {
206
217
  const question = this.generateModuleVersionQuestion(girModulesGrouped)
207
218
  const choices = question.choices as string[]
208
219
  if (!choices) {
@@ -233,7 +244,7 @@ export class ModuleLoader {
233
244
  * Ignores also modules that depend on a module that should be ignored
234
245
  * @param resolveFirModules
235
246
  */
236
- private async askForEachConflictVersionsPrompt(
247
+ protected async askForEachConflictVersionsPrompt(
237
248
  girModulesGroupedMap: GirModulesGroupedMap,
238
249
  ignore: string[],
239
250
  ): Promise<{ keep: Set<GirModuleResolvedBy>; ignore: string[] }> {
@@ -260,7 +271,10 @@ export class ModuleLoader {
260
271
  while (goBack) {
261
272
  versionAnswer = await this.askForVersionsPrompt(girModulesGrouped)
262
273
  // Check modules that depend on the unchosen modules
263
- wouldIgnoreDeps = this.findModulesDependOnPackages(girModulesGroupedMap, versionAnswer.unselected)
274
+ wouldIgnoreDeps = this.findPackageNamesDependOnPackages(
275
+ girModulesGroupedMap,
276
+ versionAnswer.unselected,
277
+ )
264
278
  // Do not check dependencies that have already been ignored
265
279
  wouldIgnoreDeps = wouldIgnoreDeps.filter((dep) => !ignore.includes(dep.packageName))
266
280
  ignoreDepsAnswer = await this.askIgnoreDepsPrompt(wouldIgnoreDeps)
@@ -298,9 +312,9 @@ export class ModuleLoader {
298
312
 
299
313
  /**
300
314
  * Asks via cli prompt if the user wants to add the ignored modules to his config file
301
- * @param ignore
315
+ * @param ignoredModules
302
316
  */
303
- private async askAddToIgnoreToConfigPrompt(ignore: string[] | Set<string>): Promise<void> {
317
+ protected async askAddToIgnoreToConfigPrompt(ignoredModules: string[] | Set<string>): Promise<void> {
304
318
  const questions = [
305
319
  {
306
320
  name: 'addToIgnore',
@@ -315,7 +329,7 @@ export class ModuleLoader {
315
329
 
316
330
  if (answer.addToIgnore === 'Yes') {
317
331
  await Config.addToConfig({
318
- ignore: Array.from(ignore),
332
+ ignore: Array.from(ignoredModules),
319
333
  })
320
334
  this.log.log(`Add ignored modules to '${Config.configFilePath}'`)
321
335
  }
@@ -326,12 +340,12 @@ export class ModuleLoader {
326
340
  * @param packageName
327
341
  * @param result
328
342
  */
329
- private traverseDependencies(packageName: string, result: { [name: string]: 1 } = {}): void {
343
+ protected traverseDependencies(packageName: string, result: { [name: string]: Dependency } = {}): void {
330
344
  const deps = this.modDependencyMap[packageName]
331
345
  if (isIterable(deps)) {
332
346
  for (const dep of deps) {
333
347
  if (result[dep.packageName]) continue
334
- result[dep.packageName] = 1
348
+ result[dep.packageName] = dep
335
349
  this.traverseDependencies(dep.packageName, result)
336
350
  }
337
351
  }
@@ -342,18 +356,8 @@ export class ModuleLoader {
342
356
  * should be called for each girModule so that the modDependencyMap is complete
343
357
  * @param girModule
344
358
  */
345
- private extendDependencyMapByGirModule(girModule: GirModule): void {
346
- this.modDependencyMap[girModule.packageName || '-'] = map(
347
- girModule.dependencies || [],
348
- (packageName: string): Dependency => {
349
- const { namespace, version } = splitModuleName(packageName)
350
- return {
351
- namespace,
352
- version,
353
- packageName,
354
- }
355
- },
356
- )
359
+ protected extendDependencyMapByGirModule(girModule: GirModule): void {
360
+ this.modDependencyMap[girModule.packageName] = girModule.dependencies
357
361
  }
358
362
 
359
363
  /**
@@ -361,11 +365,11 @@ export class ModuleLoader {
361
365
  * is required so that all dependencies can be found internally when generating the dependency imports for the module .d.ts file
362
366
  * @param girModules
363
367
  */
364
- private setTraverseDependenciesForModules(girModules: GirModuleResolvedBy[]): void {
368
+ protected setTraverseDependenciesForModules(girModules: GirModuleResolvedBy[]): void {
365
369
  for (const girModule of girModules) {
366
- const result: { [name: string]: 1 } = {}
370
+ const result: { [name: string]: Dependency } = {}
367
371
  this.traverseDependencies(girModule.packageName, result)
368
- girModule.module.transitiveDependencies = Object.keys(result)
372
+ girModule.module.transitiveDependencies = Object.values(result)
369
373
  }
370
374
  }
371
375
 
@@ -375,14 +379,13 @@ export class ModuleLoader {
375
379
  * @param fillName
376
380
  * @param config
377
381
  */
378
- private async loadAndCreateGirModule(packageName: string): Promise<GirModule | null> {
379
- const file = findFileInDirs(this.config.girDirectories, packageName + '.gir')
380
- if (!file.exists || file.path === null) {
382
+ protected async loadAndCreateGirModule(dependency: Dependency): Promise<GirModule | null> {
383
+ if (!dependency.exists || dependency.path === null) {
381
384
  return null
382
385
  }
383
386
 
384
- this.log.log(`Parsing ${file.path}...`)
385
- const fileContents = fs.readFileSync(file.path, 'utf8')
387
+ this.log.log(`Parsing ${dependency.path}...`)
388
+ const fileContents = await readFile(dependency.path, 'utf8')
386
389
  const result = (await xml2js.parseStringPromise(fileContents)) as ParsedGir
387
390
  const girModule = new GirModule(result, this.config)
388
391
  // Figure out transitive module dependencies
@@ -395,7 +398,7 @@ export class ModuleLoader {
395
398
  * @param girModules Array of girModules
396
399
  * @param packageNames Full name like 'Gtk-3.0' you are looking for
397
400
  */
398
- private findGirModuleByFullNames(
401
+ protected findGirModuleByFullNames(
399
402
  girModules: (GirModuleResolvedBy | GirModule)[],
400
403
  packageNames: string[],
401
404
  ): Array<GirModuleResolvedBy | GirModule> {
@@ -407,41 +410,42 @@ export class ModuleLoader {
407
410
  * @param girModules
408
411
  * @param packageName
409
412
  */
410
- private existsGirModules(girModules: (GirModuleResolvedBy | GirModule)[], packageNames: string[]): boolean {
411
- const foundModule = this.findGirModuleByFullNames(girModules, packageNames)
413
+ protected existsGirModules(girModules: (GirModuleResolvedBy | GirModule)[], packageName: string): boolean {
414
+ const foundModule = this.findGirModuleByFullNames(girModules, [packageName])
412
415
  return foundModule.length > 0
413
416
  }
414
417
 
415
418
  /**
416
419
  * Reads the gir xml module files and creates an object of GirModule for each module
417
- * @param girModulesToRead
420
+ * @param dependencies
418
421
  * @param girModules
419
422
  * @param resolvedBy
420
423
  * @param failedGirModules
421
424
  * @param ignoreDependencies
422
425
  * @returns
423
426
  */
424
- private async loadGirModules(
425
- girModulesToRead: string[] | Set<string>,
427
+ protected async loadGirModules(
428
+ dependencies: Dependency[],
426
429
  ignoreDependencies: string[] = [],
427
430
  girModules: GirModuleResolvedBy[] = [],
428
431
  resolvedBy = ResolveType.BY_HAND,
429
432
  failedGirModules = new Set<string>(),
430
433
  ): Promise<{ loaded: GirModuleResolvedBy[]; failed: Set<string> }> {
431
- // A copy is needed here because we are changing the array for the while loop
432
- const girToLoad = Array.from(girModulesToRead)
433
434
  let newModuleFound = false
434
435
 
435
- while (girToLoad.length > 0) {
436
- const packageName = girToLoad.shift() || 'unknown'
437
- if (!packageName) throw new Error(`Module name '${packageName} 'not found!`)
436
+ // Clone array
437
+ dependencies = [...dependencies]
438
+
439
+ while (dependencies.length > 0) {
440
+ const dependency = dependencies.shift()
441
+ if (!dependency?.packageName) continue
438
442
  // If module has not already been loaded
439
- if (!this.existsGirModules(girModules, [packageName])) {
440
- const girModule = await this.loadAndCreateGirModule(packageName)
443
+ if (!this.existsGirModules(girModules, dependency.packageName)) {
444
+ const girModule = await this.loadAndCreateGirModule(dependency)
441
445
  if (!girModule) {
442
- if (!failedGirModules.has(packageName)) {
443
- this.log.warn(WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE(packageName))
444
- failedGirModules.add(packageName)
446
+ if (!failedGirModules.has(dependency.packageName)) {
447
+ this.log.warn(WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE(dependency.packageName))
448
+ failedGirModules.add(dependency.packageName)
445
449
  }
446
450
  } else if (girModule && girModule.packageName) {
447
451
  const addModule = {
@@ -471,9 +475,9 @@ export class ModuleLoader {
471
475
  const transitiveDependencies = girModule.module.transitiveDependencies
472
476
  if (transitiveDependencies.length > 0) {
473
477
  for (const transitiveDependency of transitiveDependencies) {
474
- if (ignoreDependencies.includes(transitiveDependency)) {
478
+ if (ignoreDependencies.includes(transitiveDependency.packageName)) {
475
479
  this.log.warn(
476
- `Load dependency "${transitiveDependency}" which is in the ignore list, if this should really be ignored also ignore "${girModule.packageName}"`,
480
+ `Load dependency "${transitiveDependency.packageName}" which is in the ignore list, if this should really be ignored also ignore "${girModule.packageName}"`,
477
481
  )
478
482
  }
479
483
  }
@@ -498,7 +502,7 @@ export class ModuleLoader {
498
502
  * @param modules
499
503
  * @param ignore
500
504
  */
501
- private async findModules(modules: string[], ignore: string[] = []): Promise<Set<string>> {
505
+ protected async findPackageNames(modules: string[], ignore: string[] = []): Promise<Set<string>> {
502
506
  const foundModules = new Set<string>()
503
507
 
504
508
  for (let i = 0; i < modules.length; i++) {
@@ -513,7 +517,7 @@ export class ModuleLoader {
513
517
  }
514
518
  }
515
519
 
516
- let globModules = files.map((file) => Path.basename(file, '.gir'))
520
+ let globModules = files.map((file) => basename(file, '.gir'))
517
521
  // Filter out the ignored modules
518
522
  globModules = globModules.filter((mod) => {
519
523
  const isIgnored = ignore.includes(mod)
@@ -528,18 +532,26 @@ export class ModuleLoader {
528
532
  return foundModules
529
533
  }
530
534
 
535
+ protected packageNamesToDependencies(packageNames: Set<string>): Dependency[] {
536
+ return Array.from(packageNames).map((packageName) => {
537
+ const { namespace, version } = splitModuleName(packageName)
538
+ return this.dependencyManager.get(namespace, version)
539
+ })
540
+ }
541
+
531
542
  /**
532
- * Loads all found modules and sorts out those that the user does not want to use including their dependencies
543
+ * Loads all found `packageNames` and sorts out those that the user does not want to use including their dependencies
533
544
  * @param girDirectories
534
- * @param modules
545
+ * @param packageNames
535
546
  */
536
547
  public async getModulesResolved(
537
- modules: string[],
548
+ packageNames: string[],
538
549
  ignore: string[] = [],
539
550
  doNotAskForVersionOnConflict = true,
540
551
  ): Promise<{ keep: GirModuleResolvedBy[]; grouped: GirModulesGroupedMap; ignore: string[]; failed: Set<string> }> {
541
- const foundGirModules = await this.findModules(modules, ignore)
542
- const { loaded, failed } = await this.loadGirModules(foundGirModules, ignore)
552
+ const foundPackageNames = await this.findPackageNames(packageNames, ignore)
553
+ const dependencies = this.packageNamesToDependencies(foundPackageNames)
554
+ const { loaded, failed } = await this.loadGirModules(dependencies, ignore)
543
555
  let keep: GirModuleResolvedBy[] = []
544
556
  if (doNotAskForVersionOnConflict) {
545
557
  keep = loaded
@@ -563,8 +575,9 @@ export class ModuleLoader {
563
575
  modules: string[],
564
576
  ignore: string[] = [],
565
577
  ): Promise<{ grouped: GirModulesGroupedMap; loaded: GirModuleResolvedBy[]; failed: string[] }> {
566
- const foundGirModules = await this.findModules(modules, ignore)
567
- const { loaded, failed } = await this.loadGirModules(foundGirModules, ignore)
578
+ const foundPackageNames = await this.findPackageNames(modules, ignore)
579
+ const dependencies = this.packageNamesToDependencies(foundPackageNames)
580
+ const { loaded, failed } = await this.loadGirModules(dependencies, ignore)
568
581
  const grouped = this.groupGirFiles(loaded)
569
582
  return { grouped, loaded, failed: Array.from(failed) }
570
583
  }
package/src/utils.ts CHANGED
@@ -1,223 +1,13 @@
1
- /* eslint-disable @typescript-eslint/unbound-method */
2
- import lodash from 'lodash'
3
- import Path from 'path'
4
- import fs from 'fs'
1
+ import { join, dirname, resolve } from 'path'
2
+ import { existsSync } from 'fs'
5
3
  import { getTsconfig, TsConfigJsonResolved } from 'get-tsconfig'
6
- import { fileURLToPath } from 'url'
7
- import { Environment, GirInfoAttrs, TsType } from './types/index.js'
8
- import { inspect } from 'util'
9
- import { Logger } from './logger.js'
10
-
11
- import { COMMENT_REG_EXP, PARAM_REG_EXP, OPT_PARAM_REG_EXP } from './constants.js'
12
-
13
- export { inspect }
14
-
15
- export const isEqual = lodash.isEqual
16
-
17
- export const map = lodash.map
18
-
19
- export const find = lodash.find
20
-
21
- export const merge = lodash.merge
22
-
23
- export const clone = lodash.clone
24
-
25
- export const cloneDeep = lodash.cloneDeep
26
-
27
- export const splitModuleName = (packageName: string): { packageName: string; namespace: string; version: string } => {
28
- // There are modules that use multiple hyphens like 'GUPnP-DLNA-1.0'
29
- const splits = packageName.split('-')
30
- const version = splits.splice(-1, 1)[0]
31
- const namespace = splits.join('')
32
- return {
33
- packageName,
34
- namespace,
35
- version,
36
- }
37
- }
38
-
39
- /** Remove namespace prefix */
40
- export const removeNamespace = (type: string, namespace: string) => {
41
- if (type.startsWith(namespace + '.')) {
42
- type = type.substring(namespace.length + 1)
43
- }
44
- return type
45
- }
46
-
47
- /** Remove class module name prefix */
48
- export const removeClassModule = removeNamespace
49
-
50
- export const addNamespace = (type: string, namespace: string) => {
51
- if (!type.startsWith(namespace + '.')) {
52
- type = namespace + '.' + type
53
- }
54
- return type
55
- }
56
4
 
57
5
  /**
58
- * Checking whether some variable is iterable
59
- * see https://stackoverflow.com/a/32538867
60
- * @param obj Variable to check for iterable
6
+ * Get a typescript or javascript config by path
7
+ * @param path The path to search for a tsconfig.json or jsconfig.json file
8
+ * @returns The config or null if not found
61
9
  */
62
- export const isIterable = (obj: unknown[]): boolean => {
63
- return obj != null && typeof obj[Symbol.iterator] === 'function'
64
- }
65
-
66
- export const isNumeric = (str: string): boolean => {
67
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
- return !isNaN((str as any) - parseFloat(str))
69
- }
70
-
71
- export const getFirstChar = (str: string): string => {
72
- return str.charAt(0)
73
- }
74
-
75
- export const getLastChar = (str: string): string => {
76
- return str.charAt(str.length - 1)
77
- }
78
-
79
- export const isFirstCharNumeric = (str: string): boolean => {
80
- return isNumeric(getFirstChar(str))
81
- }
82
-
83
- export const camelCase = (str: string): string => {
84
- return str
85
- .replace(/\s(.)|(\s|-|_|\.)(.)/g, (a) => {
86
- return a.toUpperCase()
87
- })
88
- .replace(/(\s|-|_|\.)/g, '')
89
- }
90
-
91
- export const lowerCamelCase = (str: string): string => {
92
- str = camelCase(str)
93
- str = getFirstChar(str).toLowerCase() + str.slice(1)
94
- return str
95
- }
96
-
97
- export const upperCamelCase = (str: string): string => {
98
- str = camelCase(str)
99
- str = getFirstChar(str).toUpperCase() + str.slice(1)
100
- return str
101
- }
102
-
103
- export const findFileInDirs = (dirs: string[], filename: string): { path: string | null; exists: boolean } => {
104
- let exists = false
105
- for (const dir of dirs) {
106
- const filePath = Path.join(dir, filename)
107
- exists = fs.existsSync(filePath)
108
- if (exists) {
109
- return {
110
- path: filePath,
111
- exists,
112
- }
113
- }
114
- }
115
- return {
116
- path: null,
117
- exists,
118
- }
119
- }
120
-
121
- /**
122
- * Union (a ∪ b): create a set that contains the elements of both set a and set b.
123
- * See https://2ality.com/2015/01/es6-set-operations.html#union
124
- * @param target
125
- * @param source
126
- */
127
- export const union = <T>(target: Set<T> | T[], source: Set<T> | T[]): Set<T> => {
128
- return (target = new Set<T>([...target, ...source]))
129
- }
130
-
131
- export const stripParamNames = (func: string, ignoreTail = false): string => {
132
- const g = func
133
- func = func.replace(COMMENT_REG_EXP, '')
134
- const lb = func.split('(', 2)
135
- if (lb.length < 2) Logger.error(`Bad function definition ${g}`)
136
- const rb = lb[1].split(')')
137
- const tail = ignoreTail ? '' : rb[rb.length - 1]
138
- let params = rb.slice(0, rb.length - 1).join(')')
139
- params = params.replace(PARAM_REG_EXP, ':')
140
- params = params.replace(OPT_PARAM_REG_EXP, '?:')
141
- return `${lb[0]}(${params})${tail}`
142
- }
143
-
144
- export const isCommentLine = (line: string) => {
145
- const lineTrim = line.trim()
146
- return lineTrim.startsWith('//') || (lineTrim.startsWith('/*') && lineTrim.endsWith('*/'))
147
- }
148
-
149
- export const generateIndent = (indents = 1, spaceForIndent = 4): string => {
150
- return ' '.repeat(indents * spaceForIndent)
151
- }
152
-
153
- // Get __dirname on ESM
154
- export const __filename = fileURLToPath(import.meta.url)
155
- export const __dirname = Path.dirname(__filename)
156
-
157
- export const getEnvironmentDir = (environment: Environment, baseDir: string): string => {
158
- if (!baseDir.endsWith(environment))
159
- if (environment === 'gjs' && !baseDir.endsWith('/Gjs')) {
160
- return Path.join(baseDir, 'Gjs')
161
- }
162
- if (environment === 'node' && !baseDir.endsWith('/node-gtk')) {
163
- return Path.join(baseDir, 'node-gtk')
164
- }
165
- return baseDir
166
- }
167
-
168
- export const getDestPath = (environment: Environment, outputDir: string, ...parts: string[]) => {
169
- const outputEnvDir = getEnvironmentDir(environment, outputDir)
170
- const destPath = Path.join(outputEnvDir, ...parts)
171
- return destPath
172
- }
173
-
174
- export const girBool = (boolStr: string | undefined, defaultVal = false): boolean => {
175
- if (boolStr) {
176
- if (parseInt(boolStr) === 0) return false
177
- return true
178
- }
179
- return defaultVal
180
- }
181
-
182
- /**
183
- * Returns `true` if the definitions in `d1` and `d2` have equivalent signatures
184
- * @param d1
185
- * @param d2
186
- */
187
- export const signaturesMatch = (d1: string, d2: string) => {
188
- if (isCommentLine(d1) || isCommentLine(d2)) return false
189
- return stripParamNames(d1) == stripParamNames(d2)
190
- }
191
-
192
- /**
193
- * GirElements contains an attribute `introspectable`, which is a GirBoolean.
194
- * If this is attribute is falsy the element is not introspectable,
195
- * this means doesn't exist in the bindings, due in general to missing information in the annotations in the original C code
196
- */
197
- export const girElementIsIntrospectable = (girElement?: { $: GirInfoAttrs & { name: string } }, name?: string) => {
198
- if (!girElement) {
199
- return false
200
- }
201
- name = name || girElement?.$?.name
202
- if (!name) {
203
- return false
204
- }
205
- // Handle introspectable only if the attribute is also present...
206
- if (girElement.$.hasOwnProperty('introspectable') && girElement.$.introspectable !== undefined) {
207
- return girBool(girElement.$.introspectable, true)
208
- }
209
- // ...otherwise we assume that it is introspectable
210
- return true
211
- }
212
-
213
- export const typeIsOptional = (types: TsType[]) => {
214
- for (const type of types) {
215
- if (type.optional) return true
216
- }
217
- return false
218
- }
219
-
220
- function convertTsJsConfigToObject(path: string) {
10
+ export const getTsJsConfigByPath = (path: string) => {
221
11
  try {
222
12
  const config = getTsconfig(path)?.config
223
13
  if (config) return config
@@ -235,15 +25,15 @@ function convertTsJsConfigToObject(path: string) {
235
25
  export function readTsJsConfig(path: string) {
236
26
  let config: null | false | TsConfigJsonResolved = null
237
27
  let lastPath = ''
238
- let currentPath = Path.resolve(path)
28
+ let currentPath = resolve(path)
239
29
  while (!config && currentPath !== lastPath) {
240
- const tsConfigPath = Path.join(currentPath, 'tsconfig.json')
241
- const jsConfigPath = Path.join(currentPath, 'jsconfig.json')
30
+ const tsConfigPath = join(currentPath, 'tsconfig.json')
31
+ const jsConfigPath = join(currentPath, 'jsconfig.json')
242
32
  config =
243
- (fs.existsSync(tsConfigPath) && convertTsJsConfigToObject(tsConfigPath)) ||
244
- (fs.existsSync(jsConfigPath) && convertTsJsConfigToObject(jsConfigPath))
33
+ (existsSync(tsConfigPath) && getTsJsConfigByPath(tsConfigPath)) ||
34
+ (existsSync(jsConfigPath) && getTsJsConfigByPath(jsConfigPath))
245
35
  lastPath = currentPath
246
- currentPath = Path.dirname(currentPath)
36
+ currentPath = dirname(currentPath)
247
37
  }
248
38
 
249
39
  return config || null