@ts-for-gir/cli 3.0.0-beta.2

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 (669) hide show
  1. package/README.md +156 -0
  2. package/lib/commands/doc.d.ts +27 -0
  3. package/lib/commands/doc.js +48 -0
  4. package/lib/commands/doc.js.map +1 -0
  5. package/lib/commands/generate.d.ts +45 -0
  6. package/lib/commands/generate.js +71 -0
  7. package/lib/commands/generate.js.map +1 -0
  8. package/lib/commands/index.d.ts +3 -0
  9. package/lib/commands/index.js +4 -0
  10. package/lib/commands/index.js.map +1 -0
  11. package/lib/commands/list.d.ts +21 -0
  12. package/lib/commands/list.js +77 -0
  13. package/lib/commands/list.js.map +1 -0
  14. package/lib/config.d.ts +103 -0
  15. package/lib/config.js +385 -0
  16. package/lib/config.js.map +1 -0
  17. package/lib/conflict-resolver.d.ts +154 -0
  18. package/lib/conflict-resolver.js +1095 -0
  19. package/lib/conflict-resolver.js.map +1 -0
  20. package/lib/constants.d.ts +18 -0
  21. package/lib/constants.js +23 -0
  22. package/lib/constants.js.map +1 -0
  23. package/lib/generation-handler.d.ts +12 -0
  24. package/lib/generation-handler.js +63 -0
  25. package/lib/generation-handler.js.map +1 -0
  26. package/lib/generator.d.ts +5 -0
  27. package/lib/generator.js +2 -0
  28. package/lib/generator.js.map +1 -0
  29. package/lib/gir-factory.d.ts +50 -0
  30. package/lib/gir-factory.js +354 -0
  31. package/lib/gir-factory.js.map +1 -0
  32. package/lib/gir-module.d.ts +256 -0
  33. package/lib/gir-module.js +2075 -0
  34. package/lib/gir-module.js.map +1 -0
  35. package/lib/html-doc-generator.d.ts +13 -0
  36. package/lib/html-doc-generator.js +18 -0
  37. package/lib/html-doc-generator.js.map +1 -0
  38. package/lib/index.d.ts +17 -0
  39. package/lib/index.js +18 -0
  40. package/lib/index.js.map +1 -0
  41. package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +2 -0
  42. package/lib/injection/callbacks/gjs/Gio-2.0.js +36 -0
  43. package/lib/injection/callbacks/gjs/Gio-2.0.js.map +1 -0
  44. package/lib/injection/callbacks/gjs/index.d.ts +2 -0
  45. package/lib/injection/callbacks/gjs/index.js +3 -0
  46. package/lib/injection/callbacks/gjs/index.js.map +1 -0
  47. package/lib/injection/callbacks/index.d.ts +4 -0
  48. package/lib/injection/callbacks/index.js +4 -0
  49. package/lib/injection/callbacks/index.js.map +1 -0
  50. package/lib/injection/callbacks/node-gtk/index.d.ts +2 -0
  51. package/lib/injection/callbacks/node-gtk/index.js +2 -0
  52. package/lib/injection/callbacks/node-gtk/index.js.map +1 -0
  53. package/lib/injection/classes/GLib-2-0.d.ts +2 -0
  54. package/lib/injection/classes/GLib-2-0.js +35 -0
  55. package/lib/injection/classes/GLib-2-0.js.map +1 -0
  56. package/lib/injection/classes/gjs/GLib-2.0.d.ts +2 -0
  57. package/lib/injection/classes/gjs/GLib-2.0.js +74 -0
  58. package/lib/injection/classes/gjs/GLib-2.0.js.map +1 -0
  59. package/lib/injection/classes/gjs/GObject-2.0.d.ts +2 -0
  60. package/lib/injection/classes/gjs/GObject-2.0.js +634 -0
  61. package/lib/injection/classes/gjs/GObject-2.0.js.map +1 -0
  62. package/lib/injection/classes/gjs/Gio-2.0.d.ts +5 -0
  63. package/lib/injection/classes/gjs/Gio-2.0.js +218 -0
  64. package/lib/injection/classes/gjs/Gio-2.0.js.map +1 -0
  65. package/lib/injection/classes/gjs/index.d.ts +2 -0
  66. package/lib/injection/classes/gjs/index.js +5 -0
  67. package/lib/injection/classes/gjs/index.js.map +1 -0
  68. package/lib/injection/classes/index.d.ts +4 -0
  69. package/lib/injection/classes/index.js +5 -0
  70. package/lib/injection/classes/index.js.map +1 -0
  71. package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +2 -0
  72. package/lib/injection/classes/node-gtk/GLib-2.0.js +19 -0
  73. package/lib/injection/classes/node-gtk/GLib-2.0.js.map +1 -0
  74. package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +2 -0
  75. package/lib/injection/classes/node-gtk/GObject-2.0.js +66 -0
  76. package/lib/injection/classes/node-gtk/GObject-2.0.js.map +1 -0
  77. package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +2 -0
  78. package/lib/injection/classes/node-gtk/Gdk-4.0.js +32 -0
  79. package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +1 -0
  80. package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +2 -0
  81. package/lib/injection/classes/node-gtk/Gio-2.0.js +14 -0
  82. package/lib/injection/classes/node-gtk/Gio-2.0.js.map +1 -0
  83. package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +2 -0
  84. package/lib/injection/classes/node-gtk/Graphene-1.0.js +133 -0
  85. package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +1 -0
  86. package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +2 -0
  87. package/lib/injection/classes/node-gtk/Gtk-3.0.js +31 -0
  88. package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +1 -0
  89. package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +2 -0
  90. package/lib/injection/classes/node-gtk/Gtk-4.0.js +52 -0
  91. package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +1 -0
  92. package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +2 -0
  93. package/lib/injection/classes/node-gtk/Pango-1.0.js +31 -0
  94. package/lib/injection/classes/node-gtk/Pango-1.0.js.map +1 -0
  95. package/lib/injection/classes/node-gtk/index.d.ts +2 -0
  96. package/lib/injection/classes/node-gtk/index.js +19 -0
  97. package/lib/injection/classes/node-gtk/index.js.map +1 -0
  98. package/lib/injection/index.d.ts +3 -0
  99. package/lib/injection/index.js +4 -0
  100. package/lib/injection/index.js.map +1 -0
  101. package/lib/injection/injector.d.ts +17 -0
  102. package/lib/injection/injector.js +136 -0
  103. package/lib/injection/injector.js.map +1 -0
  104. package/lib/logger.d.ts +36 -0
  105. package/lib/logger.js +133 -0
  106. package/lib/logger.js.map +1 -0
  107. package/lib/messages.d.ts +30 -0
  108. package/lib/messages.js +45 -0
  109. package/lib/messages.js.map +1 -0
  110. package/lib/module-loader.d.ts +131 -0
  111. package/lib/module-loader.js +467 -0
  112. package/lib/module-loader.js.map +1 -0
  113. package/lib/start.d.ts +2 -0
  114. package/lib/start.js +15 -0
  115. package/lib/start.js.map +1 -0
  116. package/lib/symtable.d.ts +24 -0
  117. package/lib/symtable.js +63 -0
  118. package/lib/symtable.js.map +1 -0
  119. package/lib/template-processor.d.ts +46 -0
  120. package/lib/template-processor.js +154 -0
  121. package/lib/template-processor.js.map +1 -0
  122. package/lib/transformation.d.ts +156 -0
  123. package/lib/transformation.js +523 -0
  124. package/lib/transformation.js.map +1 -0
  125. package/lib/type-definition-generator.d.ts +117 -0
  126. package/lib/type-definition-generator.js +929 -0
  127. package/lib/type-definition-generator.js.map +1 -0
  128. package/lib/types/answer-version.d.ts +4 -0
  129. package/lib/types/answer-version.js +2 -0
  130. package/lib/types/answer-version.js.map +1 -0
  131. package/lib/types/build-type.d.ts +1 -0
  132. package/lib/types/build-type.js +2 -0
  133. package/lib/types/build-type.js.map +1 -0
  134. package/lib/types/class-parent.d.ts +11 -0
  135. package/lib/types/class-parent.js +2 -0
  136. package/lib/types/class-parent.js.map +1 -0
  137. package/lib/types/config-flags.d.ts +4 -0
  138. package/lib/types/config-flags.js +2 -0
  139. package/lib/types/config-flags.js.map +1 -0
  140. package/lib/types/conflict-child-element.d.ts +10 -0
  141. package/lib/types/conflict-child-element.js +2 -0
  142. package/lib/types/conflict-child-element.js.map +1 -0
  143. package/lib/types/conflict-grouped-element.d.ts +6 -0
  144. package/lib/types/conflict-grouped-element.js +2 -0
  145. package/lib/types/conflict-grouped-element.js.map +1 -0
  146. package/lib/types/conflict-grouped-elements.d.ts +4 -0
  147. package/lib/types/conflict-grouped-elements.js +2 -0
  148. package/lib/types/conflict-grouped-elements.js.map +1 -0
  149. package/lib/types/construct-name.d.ts +1 -0
  150. package/lib/types/construct-name.js +2 -0
  151. package/lib/types/construct-name.js.map +1 -0
  152. package/lib/types/dependency-map.d.ts +4 -0
  153. package/lib/types/dependency-map.js +2 -0
  154. package/lib/types/dependency-map.js.map +1 -0
  155. package/lib/types/dependency.d.ts +14 -0
  156. package/lib/types/dependency.js +2 -0
  157. package/lib/types/dependency.js.map +1 -0
  158. package/lib/types/environment.d.ts +1 -0
  159. package/lib/types/environment.js +2 -0
  160. package/lib/types/environment.js.map +1 -0
  161. package/lib/types/generate-config.d.ts +30 -0
  162. package/lib/types/generate-config.js +2 -0
  163. package/lib/types/generate-config.js.map +1 -0
  164. package/lib/types/generator-type.d.ts +4 -0
  165. package/lib/types/generator-type.js +6 -0
  166. package/lib/types/generator-type.js.map +1 -0
  167. package/lib/types/gir-alias-element.d.ts +13 -0
  168. package/lib/types/gir-alias-element.js +2 -0
  169. package/lib/types/gir-alias-element.js.map +1 -0
  170. package/lib/types/gir-annotation.d.ts +9 -0
  171. package/lib/types/gir-annotation.js +2 -0
  172. package/lib/types/gir-annotation.js.map +1 -0
  173. package/lib/types/gir-any-element.d.ts +2 -0
  174. package/lib/types/gir-any-element.js +2 -0
  175. package/lib/types/gir-any-element.js.map +1 -0
  176. package/lib/types/gir-any-type.d.ts +5 -0
  177. package/lib/types/gir-any-type.js +2 -0
  178. package/lib/types/gir-any-type.js.map +1 -0
  179. package/lib/types/gir-array-type.d.ts +20 -0
  180. package/lib/types/gir-array-type.js +3 -0
  181. package/lib/types/gir-array-type.js.map +1 -0
  182. package/lib/types/gir-bitfield-element.d.ts +17 -0
  183. package/lib/types/gir-bitfield-element.js +2 -0
  184. package/lib/types/gir-bitfield-element.js.map +1 -0
  185. package/lib/types/gir-boolean.d.ts +1 -0
  186. package/lib/types/gir-boolean.js +2 -0
  187. package/lib/types/gir-boolean.js.map +1 -0
  188. package/lib/types/gir-boxed-element.d.ts +15 -0
  189. package/lib/types/gir-boxed-element.js +2 -0
  190. package/lib/types/gir-boxed-element.js.map +1 -0
  191. package/lib/types/gir-c-include.d.ts +7 -0
  192. package/lib/types/gir-c-include.js +2 -0
  193. package/lib/types/gir-c-include.js.map +1 -0
  194. package/lib/types/gir-callable-attrs.d.ts +15 -0
  195. package/lib/types/gir-callable-attrs.js +3 -0
  196. package/lib/types/gir-callable-attrs.js.map +1 -0
  197. package/lib/types/gir-callable-param-element.d.ts +30 -0
  198. package/lib/types/gir-callable-param-element.js +2 -0
  199. package/lib/types/gir-callable-param-element.js.map +1 -0
  200. package/lib/types/gir-callable-param.d.ts +7 -0
  201. package/lib/types/gir-callable-param.js +2 -0
  202. package/lib/types/gir-callable-param.js.map +1 -0
  203. package/lib/types/gir-callable-return.d.ts +22 -0
  204. package/lib/types/gir-callable-return.js +2 -0
  205. package/lib/types/gir-callable-return.js.map +1 -0
  206. package/lib/types/gir-callback-element.d.ts +15 -0
  207. package/lib/types/gir-callback-element.js +2 -0
  208. package/lib/types/gir-callback-element.js.map +1 -0
  209. package/lib/types/gir-class-element.d.ts +48 -0
  210. package/lib/types/gir-class-element.js +2 -0
  211. package/lib/types/gir-class-element.js.map +1 -0
  212. package/lib/types/gir-constant-element.d.ts +15 -0
  213. package/lib/types/gir-constant-element.js +2 -0
  214. package/lib/types/gir-constant-element.js.map +1 -0
  215. package/lib/types/gir-constructor-element.d.ts +8 -0
  216. package/lib/types/gir-constructor-element.js +2 -0
  217. package/lib/types/gir-constructor-element.js.map +1 -0
  218. package/lib/types/gir-direction.d.ts +5 -0
  219. package/lib/types/gir-direction.js +7 -0
  220. package/lib/types/gir-direction.js.map +1 -0
  221. package/lib/types/gir-doc-element.d.ts +68 -0
  222. package/lib/types/gir-doc-element.js +2 -0
  223. package/lib/types/gir-doc-element.js.map +1 -0
  224. package/lib/types/gir-enum-element.d.ts +19 -0
  225. package/lib/types/gir-enum-element.js +2 -0
  226. package/lib/types/gir-enum-element.js.map +1 -0
  227. package/lib/types/gir-field-element.d.ts +18 -0
  228. package/lib/types/gir-field-element.js +2 -0
  229. package/lib/types/gir-field-element.js.map +1 -0
  230. package/lib/types/gir-function-element.d.ts +8 -0
  231. package/lib/types/gir-function-element.js +2 -0
  232. package/lib/types/gir-function-element.js.map +1 -0
  233. package/lib/types/gir-implements.d.ts +8 -0
  234. package/lib/types/gir-implements.js +2 -0
  235. package/lib/types/gir-implements.js.map +1 -0
  236. package/lib/types/gir-include.d.ts +9 -0
  237. package/lib/types/gir-include.js +2 -0
  238. package/lib/types/gir-include.js.map +1 -0
  239. package/lib/types/gir-info-attrs.d.ts +13 -0
  240. package/lib/types/gir-info-attrs.js +2 -0
  241. package/lib/types/gir-info-attrs.js.map +1 -0
  242. package/lib/types/gir-info-elements.d.ts +5 -0
  243. package/lib/types/gir-info-elements.js +2 -0
  244. package/lib/types/gir-info-elements.js.map +1 -0
  245. package/lib/types/gir-instance-parameter.d.ts +21 -0
  246. package/lib/types/gir-instance-parameter.js +2 -0
  247. package/lib/types/gir-instance-parameter.js.map +1 -0
  248. package/lib/types/gir-interface-element.d.ts +31 -0
  249. package/lib/types/gir-interface-element.js +2 -0
  250. package/lib/types/gir-interface-element.js.map +1 -0
  251. package/lib/types/gir-member-element.d.ts +17 -0
  252. package/lib/types/gir-member-element.js +2 -0
  253. package/lib/types/gir-member-element.js.map +1 -0
  254. package/lib/types/gir-method-element.d.ts +13 -0
  255. package/lib/types/gir-method-element.js +2 -0
  256. package/lib/types/gir-method-element.js.map +1 -0
  257. package/lib/types/gir-module-resolved-by.d.ts +10 -0
  258. package/lib/types/gir-module-resolved-by.js +2 -0
  259. package/lib/types/gir-module-resolved-by.js.map +1 -0
  260. package/lib/types/gir-modules-grouped-map.d.ts +4 -0
  261. package/lib/types/gir-modules-grouped-map.js +2 -0
  262. package/lib/types/gir-modules-grouped-map.js.map +1 -0
  263. package/lib/types/gir-modules-grouped.d.ts +12 -0
  264. package/lib/types/gir-modules-grouped.js +2 -0
  265. package/lib/types/gir-modules-grouped.js.map +1 -0
  266. package/lib/types/gir-namespace.d.ts +30 -0
  267. package/lib/types/gir-namespace.js +2 -0
  268. package/lib/types/gir-namespace.js.map +1 -0
  269. package/lib/types/gir-package.d.ts +7 -0
  270. package/lib/types/gir-package.js +2 -0
  271. package/lib/types/gir-package.js.map +1 -0
  272. package/lib/types/gir-prerequisite.d.ts +5 -0
  273. package/lib/types/gir-prerequisite.js +2 -0
  274. package/lib/types/gir-prerequisite.js.map +1 -0
  275. package/lib/types/gir-property-element.d.ts +21 -0
  276. package/lib/types/gir-property-element.js +2 -0
  277. package/lib/types/gir-property-element.js.map +1 -0
  278. package/lib/types/gir-record-element.d.ts +30 -0
  279. package/lib/types/gir-record-element.js +2 -0
  280. package/lib/types/gir-record-element.js.map +1 -0
  281. package/lib/types/gir-repository.d.ts +16 -0
  282. package/lib/types/gir-repository.js +2 -0
  283. package/lib/types/gir-repository.js.map +1 -0
  284. package/lib/types/gir-signal.d.ts +25 -0
  285. package/lib/types/gir-signal.js +2 -0
  286. package/lib/types/gir-signal.js.map +1 -0
  287. package/lib/types/gir-transfer-ownership-type.d.ts +5 -0
  288. package/lib/types/gir-transfer-ownership-type.js +7 -0
  289. package/lib/types/gir-transfer-ownership-type.js.map +1 -0
  290. package/lib/types/gir-transfer-ownership.d.ts +5 -0
  291. package/lib/types/gir-transfer-ownership.js +2 -0
  292. package/lib/types/gir-transfer-ownership.js.map +1 -0
  293. package/lib/types/gir-type.d.ts +14 -0
  294. package/lib/types/gir-type.js +2 -0
  295. package/lib/types/gir-type.js.map +1 -0
  296. package/lib/types/gir-union-element.d.ts +22 -0
  297. package/lib/types/gir-union-element.js +2 -0
  298. package/lib/types/gir-union-element.js.map +1 -0
  299. package/lib/types/gir-unparsed-number.d.ts +2 -0
  300. package/lib/types/gir-unparsed-number.js +2 -0
  301. package/lib/types/gir-unparsed-number.js.map +1 -0
  302. package/lib/types/gir-var-args.d.ts +5 -0
  303. package/lib/types/gir-var-args.js +2 -0
  304. package/lib/types/gir-var-args.js.map +1 -0
  305. package/lib/types/gir-virtual-method.d.ts +10 -0
  306. package/lib/types/gir-virtual-method.js +2 -0
  307. package/lib/types/gir-virtual-method.js.map +1 -0
  308. package/lib/types/index.d.ts +118 -0
  309. package/lib/types/index.js +119 -0
  310. package/lib/types/index.js.map +1 -0
  311. package/lib/types/inheritance-table.d.ts +3 -0
  312. package/lib/types/inheritance-table.js +2 -0
  313. package/lib/types/inheritance-table.js.map +1 -0
  314. package/lib/types/injection-callback.d.ts +16 -0
  315. package/lib/types/injection-callback.js +2 -0
  316. package/lib/types/injection-callback.js.map +1 -0
  317. package/lib/types/injection-class.d.ts +24 -0
  318. package/lib/types/injection-class.js +2 -0
  319. package/lib/types/injection-class.js.map +1 -0
  320. package/lib/types/injection-function.d.ts +7 -0
  321. package/lib/types/injection-function.js +2 -0
  322. package/lib/types/injection-function.js.map +1 -0
  323. package/lib/types/injection-generic-parameter.d.ts +2 -0
  324. package/lib/types/injection-generic-parameter.js +2 -0
  325. package/lib/types/injection-generic-parameter.js.map +1 -0
  326. package/lib/types/injection-instance-parameter.d.ts +2 -0
  327. package/lib/types/injection-instance-parameter.js +2 -0
  328. package/lib/types/injection-instance-parameter.js.map +1 -0
  329. package/lib/types/injection-parameter.d.ts +8 -0
  330. package/lib/types/injection-parameter.js +2 -0
  331. package/lib/types/injection-parameter.js.map +1 -0
  332. package/lib/types/injection-property.d.ts +4 -0
  333. package/lib/types/injection-property.js +2 -0
  334. package/lib/types/injection-property.js.map +1 -0
  335. package/lib/types/injection-type.d.ts +2 -0
  336. package/lib/types/injection-type.js +2 -0
  337. package/lib/types/injection-type.js.map +1 -0
  338. package/lib/types/injection.d.ts +5 -0
  339. package/lib/types/injection.js +2 -0
  340. package/lib/types/injection.js.map +1 -0
  341. package/lib/types/local-name-check.d.ts +4 -0
  342. package/lib/types/local-name-check.js +2 -0
  343. package/lib/types/local-name-check.js.map +1 -0
  344. package/lib/types/local-name-type.d.ts +1 -0
  345. package/lib/types/local-name-type.js +2 -0
  346. package/lib/types/local-name-type.js.map +1 -0
  347. package/lib/types/local-name.d.ts +7 -0
  348. package/lib/types/local-name.js +2 -0
  349. package/lib/types/local-name.js.map +1 -0
  350. package/lib/types/local-names.d.ts +4 -0
  351. package/lib/types/local-names.js +2 -0
  352. package/lib/types/local-names.js.map +1 -0
  353. package/lib/types/module-type.d.ts +1 -0
  354. package/lib/types/module-type.js +2 -0
  355. package/lib/types/module-type.js.map +1 -0
  356. package/lib/types/parsed-gir.d.ts +4 -0
  357. package/lib/types/parsed-gir.js +2 -0
  358. package/lib/types/parsed-gir.js.map +1 -0
  359. package/lib/types/part-of-class.d.ts +7 -0
  360. package/lib/types/part-of-class.js +2 -0
  361. package/lib/types/part-of-class.js.map +1 -0
  362. package/lib/types/part-of-module.d.ts +6 -0
  363. package/lib/types/part-of-module.js +2 -0
  364. package/lib/types/part-of-module.js.map +1 -0
  365. package/lib/types/resolve-type.d.ts +4 -0
  366. package/lib/types/resolve-type.js +6 -0
  367. package/lib/types/resolve-type.js.map +1 -0
  368. package/lib/types/sym-table-items.d.ts +4 -0
  369. package/lib/types/sym-table-items.js +2 -0
  370. package/lib/types/sym-table-items.js.map +1 -0
  371. package/lib/types/transformation-case.d.ts +1 -0
  372. package/lib/types/transformation-case.js +2 -0
  373. package/lib/types/transformation-case.js.map +1 -0
  374. package/lib/types/transformations.d.ts +11 -0
  375. package/lib/types/transformations.js +2 -0
  376. package/lib/types/transformations.js.map +1 -0
  377. package/lib/types/ts-alias.d.ts +10 -0
  378. package/lib/types/ts-alias.js +2 -0
  379. package/lib/types/ts-alias.js.map +1 -0
  380. package/lib/types/ts-callback-interface.d.ts +10 -0
  381. package/lib/types/ts-callback-interface.js +2 -0
  382. package/lib/types/ts-callback-interface.js.map +1 -0
  383. package/lib/types/ts-callback.d.ts +17 -0
  384. package/lib/types/ts-callback.js +2 -0
  385. package/lib/types/ts-callback.js.map +1 -0
  386. package/lib/types/ts-class.d.ts +85 -0
  387. package/lib/types/ts-class.js +2 -0
  388. package/lib/types/ts-class.js.map +1 -0
  389. package/lib/types/ts-doc-tag.d.ts +21 -0
  390. package/lib/types/ts-doc-tag.js +2 -0
  391. package/lib/types/ts-doc-tag.js.map +1 -0
  392. package/lib/types/ts-doc.d.ts +20 -0
  393. package/lib/types/ts-doc.js +2 -0
  394. package/lib/types/ts-doc.js.map +1 -0
  395. package/lib/types/ts-enum.d.ts +12 -0
  396. package/lib/types/ts-enum.js +2 -0
  397. package/lib/types/ts-enum.js.map +1 -0
  398. package/lib/types/ts-function.d.ts +44 -0
  399. package/lib/types/ts-function.js +2 -0
  400. package/lib/types/ts-function.js.map +1 -0
  401. package/lib/types/ts-generic-parameter.d.ts +8 -0
  402. package/lib/types/ts-generic-parameter.js +2 -0
  403. package/lib/types/ts-generic-parameter.js.map +1 -0
  404. package/lib/types/ts-instance-parameter.d.ts +4 -0
  405. package/lib/types/ts-instance-parameter.js +2 -0
  406. package/lib/types/ts-instance-parameter.js.map +1 -0
  407. package/lib/types/ts-member.d.ts +10 -0
  408. package/lib/types/ts-member.js +2 -0
  409. package/lib/types/ts-member.js.map +1 -0
  410. package/lib/types/ts-method.d.ts +5 -0
  411. package/lib/types/ts-method.js +2 -0
  412. package/lib/types/ts-method.js.map +1 -0
  413. package/lib/types/ts-parameter.d.ts +15 -0
  414. package/lib/types/ts-parameter.js +2 -0
  415. package/lib/types/ts-parameter.js.map +1 -0
  416. package/lib/types/ts-property.d.ts +17 -0
  417. package/lib/types/ts-property.js +2 -0
  418. package/lib/types/ts-property.js.map +1 -0
  419. package/lib/types/ts-signal.d.ts +17 -0
  420. package/lib/types/ts-signal.js +2 -0
  421. package/lib/types/ts-signal.js.map +1 -0
  422. package/lib/types/ts-type-name.d.ts +1 -0
  423. package/lib/types/ts-type-name.js +2 -0
  424. package/lib/types/ts-type-name.js.map +1 -0
  425. package/lib/types/ts-type-separator.d.ts +1 -0
  426. package/lib/types/ts-type-separator.js +2 -0
  427. package/lib/types/ts-type-separator.js.map +1 -0
  428. package/lib/types/ts-type.d.ts +22 -0
  429. package/lib/types/ts-type.js +2 -0
  430. package/lib/types/ts-type.js.map +1 -0
  431. package/lib/types/ts-var.d.ts +17 -0
  432. package/lib/types/ts-var.js +2 -0
  433. package/lib/types/ts-var.js.map +1 -0
  434. package/lib/types/type-gir-alias.d.ts +2 -0
  435. package/lib/types/type-gir-alias.js +2 -0
  436. package/lib/types/type-gir-alias.js.map +1 -0
  437. package/lib/types/type-gir-class.d.ts +2 -0
  438. package/lib/types/type-gir-class.js +2 -0
  439. package/lib/types/type-gir-class.js.map +1 -0
  440. package/lib/types/type-gir-element.d.ts +3 -0
  441. package/lib/types/type-gir-element.js +2 -0
  442. package/lib/types/type-gir-element.js.map +1 -0
  443. package/lib/types/type-gir-enumeration-member.d.ts +2 -0
  444. package/lib/types/type-gir-enumeration-member.js +2 -0
  445. package/lib/types/type-gir-enumeration-member.js.map +1 -0
  446. package/lib/types/type-gir-enumeration.d.ts +2 -0
  447. package/lib/types/type-gir-enumeration.js +2 -0
  448. package/lib/types/type-gir-enumeration.js.map +1 -0
  449. package/lib/types/type-gir-function.d.ts +1 -0
  450. package/lib/types/type-gir-function.js +2 -0
  451. package/lib/types/type-gir-function.js.map +1 -0
  452. package/lib/types/type-gir-interface.d.ts +2 -0
  453. package/lib/types/type-gir-interface.js +2 -0
  454. package/lib/types/type-gir-interface.js.map +1 -0
  455. package/lib/types/type-gir-method.d.ts +2 -0
  456. package/lib/types/type-gir-method.js +2 -0
  457. package/lib/types/type-gir-method.js.map +1 -0
  458. package/lib/types/type-gir-parameter.d.ts +1 -0
  459. package/lib/types/type-gir-parameter.js +2 -0
  460. package/lib/types/type-gir-parameter.js.map +1 -0
  461. package/lib/types/type-gir-property.d.ts +2 -0
  462. package/lib/types/type-gir-property.js +2 -0
  463. package/lib/types/type-gir-property.js.map +1 -0
  464. package/lib/types/type-gir-variable.d.ts +1 -0
  465. package/lib/types/type-gir-variable.js +2 -0
  466. package/lib/types/type-gir-variable.js.map +1 -0
  467. package/lib/types/type-ts-element.d.ts +3 -0
  468. package/lib/types/type-ts-element.js +2 -0
  469. package/lib/types/type-ts-element.js.map +1 -0
  470. package/lib/types/type-ts-enumeration-member.d.ts +2 -0
  471. package/lib/types/type-ts-enumeration-member.js +2 -0
  472. package/lib/types/type-ts-enumeration-member.js.map +1 -0
  473. package/lib/types/type-ts-function.d.ts +1 -0
  474. package/lib/types/type-ts-function.js +2 -0
  475. package/lib/types/type-ts-function.js.map +1 -0
  476. package/lib/types/type-ts-property.d.ts +1 -0
  477. package/lib/types/type-ts-property.js +2 -0
  478. package/lib/types/type-ts-property.js.map +1 -0
  479. package/lib/types/user-config-load-result.d.ts +6 -0
  480. package/lib/types/user-config-load-result.js +2 -0
  481. package/lib/types/user-config-load-result.js.map +1 -0
  482. package/lib/types/user-config.d.ts +38 -0
  483. package/lib/types/user-config.js +2 -0
  484. package/lib/types/user-config.js.map +1 -0
  485. package/lib/utils.d.ts +88 -0
  486. package/lib/utils.js +189 -0
  487. package/lib/utils.js.map +1 -0
  488. package/package.json +72 -0
  489. package/src/commands/doc.ts +65 -0
  490. package/src/commands/generate.ts +86 -0
  491. package/src/commands/index.ts +3 -0
  492. package/src/commands/list.ts +96 -0
  493. package/src/config.ts +426 -0
  494. package/src/conflict-resolver.ts +1350 -0
  495. package/src/constants.ts +29 -0
  496. package/src/generation-handler.ts +79 -0
  497. package/src/generator.ts +10 -0
  498. package/src/gir-factory.ts +488 -0
  499. package/src/gir-module.ts +2816 -0
  500. package/src/html-doc-generator.ts +23 -0
  501. package/src/index.ts +17 -0
  502. package/src/injection/callbacks/gjs/Gio-2.0.ts +37 -0
  503. package/src/injection/callbacks/gjs/index.ts +5 -0
  504. package/src/injection/callbacks/index.ts +6 -0
  505. package/src/injection/callbacks/node-gtk/index.ts +3 -0
  506. package/src/injection/classes/GLib-2-0.ts +36 -0
  507. package/src/injection/classes/gjs/GLib-2.0.ts +75 -0
  508. package/src/injection/classes/gjs/GObject-2.0.ts +635 -0
  509. package/src/injection/classes/gjs/Gio-2.0.ts +219 -0
  510. package/src/injection/classes/gjs/index.ts +7 -0
  511. package/src/injection/classes/index.ts +7 -0
  512. package/src/injection/classes/node-gtk/GLib-2.0.ts +20 -0
  513. package/src/injection/classes/node-gtk/GObject-2.0.ts +67 -0
  514. package/src/injection/classes/node-gtk/Gdk-4.0.ts +33 -0
  515. package/src/injection/classes/node-gtk/Gio-2.0.ts +15 -0
  516. package/src/injection/classes/node-gtk/Graphene-1.0.ts +134 -0
  517. package/src/injection/classes/node-gtk/Gtk-3.0.ts +32 -0
  518. package/src/injection/classes/node-gtk/Gtk-4.0.ts +53 -0
  519. package/src/injection/classes/node-gtk/Pango-1.0.ts +32 -0
  520. package/src/injection/classes/node-gtk/index.ts +21 -0
  521. package/src/injection/index.ts +3 -0
  522. package/src/injection/injector.ts +179 -0
  523. package/src/logger.ts +134 -0
  524. package/src/messages.ts +68 -0
  525. package/src/module-loader.ts +573 -0
  526. package/src/start.ts +16 -0
  527. package/src/symtable.ts +70 -0
  528. package/src/template-processor.ts +170 -0
  529. package/src/transformation.ts +583 -0
  530. package/src/type-definition-generator.ts +1387 -0
  531. package/src/types/answer-version.ts +4 -0
  532. package/src/types/build-type.ts +1 -0
  533. package/src/types/class-parent.ts +12 -0
  534. package/src/types/config-flags.ts +5 -0
  535. package/src/types/conflict-child-element.ts +11 -0
  536. package/src/types/conflict-grouped-element.ts +7 -0
  537. package/src/types/conflict-grouped-elements.ts +5 -0
  538. package/src/types/construct-name.ts +11 -0
  539. package/src/types/dependency-map.ts +4 -0
  540. package/src/types/dependency.ts +14 -0
  541. package/src/types/environment.ts +1 -0
  542. package/src/types/generate-config.ts +31 -0
  543. package/src/types/generator-type.ts +4 -0
  544. package/src/types/gir-alias-element.ts +15 -0
  545. package/src/types/gir-annotation.ts +10 -0
  546. package/src/types/gir-any-element.ts +35 -0
  547. package/src/types/gir-any-type.ts +7 -0
  548. package/src/types/gir-array-type.ts +23 -0
  549. package/src/types/gir-bitfield-element.ts +20 -0
  550. package/src/types/gir-boolean.ts +1 -0
  551. package/src/types/gir-boxed-element.ts +19 -0
  552. package/src/types/gir-c-include.ts +7 -0
  553. package/src/types/gir-callable-attrs.ts +19 -0
  554. package/src/types/gir-callable-param-element.ts +45 -0
  555. package/src/types/gir-callable-param.ts +9 -0
  556. package/src/types/gir-callable-return.ts +25 -0
  557. package/src/types/gir-callback-element.ts +28 -0
  558. package/src/types/gir-class-element.ts +71 -0
  559. package/src/types/gir-constant-element.ts +17 -0
  560. package/src/types/gir-constructor-element.ts +18 -0
  561. package/src/types/gir-direction.ts +5 -0
  562. package/src/types/gir-doc-element.ts +73 -0
  563. package/src/types/gir-enum-element.ts +28 -0
  564. package/src/types/gir-field-element.ts +31 -0
  565. package/src/types/gir-function-element.ts +19 -0
  566. package/src/types/gir-implements.ts +9 -0
  567. package/src/types/gir-include.ts +9 -0
  568. package/src/types/gir-info-attrs.ts +16 -0
  569. package/src/types/gir-info-elements.ts +8 -0
  570. package/src/types/gir-instance-parameter.ts +25 -0
  571. package/src/types/gir-interface-element.ts +53 -0
  572. package/src/types/gir-member-element.ts +19 -0
  573. package/src/types/gir-method-element.ts +25 -0
  574. package/src/types/gir-module-resolved-by.ts +11 -0
  575. package/src/types/gir-modules-grouped-map.ts +5 -0
  576. package/src/types/gir-modules-grouped.ts +13 -0
  577. package/src/types/gir-namespace.ts +47 -0
  578. package/src/types/gir-package.ts +7 -0
  579. package/src/types/gir-prerequisite.ts +5 -0
  580. package/src/types/gir-property-element.ts +31 -0
  581. package/src/types/gir-record-element.ts +47 -0
  582. package/src/types/gir-repository.ts +20 -0
  583. package/src/types/gir-signal.ts +43 -0
  584. package/src/types/gir-transfer-ownership-type.ts +5 -0
  585. package/src/types/gir-transfer-ownership.ts +6 -0
  586. package/src/types/gir-type.ts +16 -0
  587. package/src/types/gir-union-element.ts +35 -0
  588. package/src/types/gir-unparsed-number.ts +2 -0
  589. package/src/types/gir-var-args.ts +6 -0
  590. package/src/types/gir-virtual-method.ts +22 -0
  591. package/src/types/index.ts +118 -0
  592. package/src/types/inheritance-table.ts +3 -0
  593. package/src/types/injection-callback.ts +20 -0
  594. package/src/types/injection-class.ts +30 -0
  595. package/src/types/injection-function.ts +23 -0
  596. package/src/types/injection-generic-parameter.ts +3 -0
  597. package/src/types/injection-instance-parameter.ts +3 -0
  598. package/src/types/injection-parameter.ts +9 -0
  599. package/src/types/injection-property.ts +7 -0
  600. package/src/types/injection-type.ts +3 -0
  601. package/src/types/injection.ts +6 -0
  602. package/src/types/local-name-check.ts +5 -0
  603. package/src/types/local-name-type.ts +1 -0
  604. package/src/types/local-name.ts +8 -0
  605. package/src/types/local-names.ts +5 -0
  606. package/src/types/module-type.ts +1 -0
  607. package/src/types/parsed-gir.ts +5 -0
  608. package/src/types/part-of-class.ts +9 -0
  609. package/src/types/part-of-module.ts +8 -0
  610. package/src/types/resolve-type.ts +4 -0
  611. package/src/types/sym-table-items.ts +5 -0
  612. package/src/types/transformation-case.ts +7 -0
  613. package/src/types/transformations.ts +12 -0
  614. package/src/types/ts-alias.ts +11 -0
  615. package/src/types/ts-callback-interface.ts +11 -0
  616. package/src/types/ts-callback.ts +21 -0
  617. package/src/types/ts-class.ts +109 -0
  618. package/src/types/ts-doc-tag.ts +23 -0
  619. package/src/types/ts-doc.ts +23 -0
  620. package/src/types/ts-enum.ts +15 -0
  621. package/src/types/ts-function.ts +59 -0
  622. package/src/types/ts-generic-parameter.ts +8 -0
  623. package/src/types/ts-instance-parameter.ts +4 -0
  624. package/src/types/ts-member.ts +11 -0
  625. package/src/types/ts-method.ts +6 -0
  626. package/src/types/ts-parameter.ts +20 -0
  627. package/src/types/ts-property.ts +22 -0
  628. package/src/types/ts-signal.ts +21 -0
  629. package/src/types/ts-type-name.ts +1 -0
  630. package/src/types/ts-type-separator.ts +1 -0
  631. package/src/types/ts-type.ts +25 -0
  632. package/src/types/ts-var.ts +21 -0
  633. package/src/types/type-gir-alias.ts +2 -0
  634. package/src/types/type-gir-class.ts +2 -0
  635. package/src/types/type-gir-element.ts +25 -0
  636. package/src/types/type-gir-enumeration-member.ts +2 -0
  637. package/src/types/type-gir-enumeration.ts +2 -0
  638. package/src/types/type-gir-function.ts +8 -0
  639. package/src/types/type-gir-interface.ts +2 -0
  640. package/src/types/type-gir-method.ts +2 -0
  641. package/src/types/type-gir-parameter.ts +1 -0
  642. package/src/types/type-gir-property.ts +2 -0
  643. package/src/types/type-gir-variable.ts +1 -0
  644. package/src/types/type-ts-element.ts +13 -0
  645. package/src/types/type-ts-enumeration-member.ts +2 -0
  646. package/src/types/type-ts-function.ts +1 -0
  647. package/src/types/type-ts-property.ts +1 -0
  648. package/src/types/user-config-load-result.ts +6 -0
  649. package/src/types/user-config.ts +39 -0
  650. package/src/utils.ts +217 -0
  651. package/templates/Cogl-2.0.d.ts +0 -0
  652. package/templates/Gjs/GObject-2.0.d.ts +238 -0
  653. package/templates/Gjs/Gio-2.0.d.ts +64 -0
  654. package/templates/Gjs/Gjs.d.ts +135 -0
  655. package/templates/Gjs/Gjs.js +21 -0
  656. package/templates/Gjs/cast.ts +52 -0
  657. package/templates/Gjs/index.d.ts +279 -0
  658. package/templates/Gjs/index.js +4 -0
  659. package/templates/Gjs/module.d.ts +10 -0
  660. package/templates/Gjs/module.js +16 -0
  661. package/templates/Granite-1.0.d.ts +7 -0
  662. package/templates/Granite-7.0.d.ts +7 -0
  663. package/templates/GstBase-0.10.d.ts +5 -0
  664. package/templates/RygelServer-2.6.d.ts +3 -0
  665. package/templates/node-gtk/GObject-2.0.d.ts +57 -0
  666. package/templates/node-gtk/index.d.ts +40 -0
  667. package/templates/node-gtk/index.js +9 -0
  668. package/templates/node-gtk/module.d.ts +10 -0
  669. package/templates/node-gtk/module.js +17 -0
@@ -0,0 +1,131 @@
1
+ /**
2
+ * The ModuleLoader is used for reading gir modules from the file system and to solve conflicts (e.g. Gtk-3.0 and Gtk-4.0 would be a conflict)
3
+ */
4
+ import type { GirModulesGroupedMap, GenerateConfig, GirModuleResolvedBy, DependencyMap } from './types/index.js';
5
+ import { Logger } from './logger.js';
6
+ export declare class ModuleLoader {
7
+ private readonly config;
8
+ log: Logger;
9
+ /** Transitive module dependencies */
10
+ modDependencyMap: DependencyMap;
11
+ constructor(config: GenerateConfig);
12
+ /**
13
+ * Groups Gir modules by name id
14
+ * E.g. Gtk-3.0 and Gtk-4.0 will be grouped
15
+ * @param girFiles
16
+ */
17
+ private groupGirFiles;
18
+ /**
19
+ * Sorts out the module the user has not selected via cli prompt
20
+ * @param girModulesGrouped
21
+ * @param keepFullName Users selected module packageName
22
+ */
23
+ private sortVersionsByAnswer;
24
+ private generateContinueQuestion;
25
+ private generateIgnoreDepsQuestion;
26
+ private askIgnoreDepsPrompt;
27
+ /**
28
+ * Ask for duplicates / multiple versions of a module
29
+ * @param girModuleGrouped
30
+ * @param message
31
+ */
32
+ private generateModuleVersionQuestion;
33
+ /**
34
+ * Find modules that depend on the module with the name 'packageName'
35
+ * @param girModulesGroupedMap
36
+ * @param packageName
37
+ */
38
+ private findModulesDependOnPackage;
39
+ /**
40
+ * Find modules that depend on the module with the names in `packageNames`
41
+ * @param girModulesGroupedMap
42
+ * @param packageName
43
+ */
44
+ private findModulesDependOnPackages;
45
+ private askForVersionsPrompt;
46
+ /**
47
+ * If multiple versions of the same module are found, this will aks the user with input prompts for the version he wish to use.
48
+ * Ignores also modules that depend on a module that should be ignored
49
+ * @param resolveFirModules
50
+ */
51
+ private askForEachConflictVersionsPrompt;
52
+ /**
53
+ * Asks via cli prompt if the user wants to add the ignored modules to his config file
54
+ * @param ignore
55
+ */
56
+ private askAddToIgnoreToConfigPrompt;
57
+ /**
58
+ * Figure out transitive module dependencies
59
+ * @param packageName
60
+ * @param result
61
+ */
62
+ private traverseDependencies;
63
+ /**
64
+ * Extends the modDependencyMap by the current Module,
65
+ * should be called for each girModule so that the modDependencyMap is complete
66
+ * @param girModule
67
+ */
68
+ private extendDependencyMapByGirModule;
69
+ /**
70
+ * Sets the traverse dependencies for the current girModule,
71
+ * is required so that all dependencies can be found internally when generating the dependency imports for the module .d.ts file
72
+ * @param girModules
73
+ */
74
+ private setTraverseDependenciesForModules;
75
+ /**
76
+ * Reads a gir xml module file and creates an object of GirModule.
77
+ * Also sets the setDependencyMap
78
+ * @param fillName
79
+ * @param config
80
+ */
81
+ private loadAndCreateGirModule;
82
+ /**
83
+ * Returns a girModule found by `packageName` property
84
+ * @param girModules Array of girModules
85
+ * @param packageNames Full name like 'Gtk-3.0' you are looking for
86
+ */
87
+ private findGirModuleByFullNames;
88
+ /**
89
+ * Checks if a girModules with the `packageNames` exists
90
+ * @param girModules
91
+ * @param packageName
92
+ */
93
+ private existsGirModules;
94
+ /**
95
+ * Reads the gir xml module files and creates an object of GirModule for each module
96
+ * @param girModulesToRead
97
+ * @param girModules
98
+ * @param resolvedBy
99
+ * @param failedGirModules
100
+ * @param ignoreDependencies
101
+ * @returns
102
+ */
103
+ private loadGirModules;
104
+ /**
105
+ * Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
106
+ * @param girDirectories
107
+ * @param modules
108
+ */
109
+ private findModules;
110
+ /**
111
+ * Loads all found modules and sorts out those that the user does not want to use including their dependencies
112
+ * @param girDirectories
113
+ * @param modules
114
+ */
115
+ getModulesResolved(modules: string[], ignore?: string[], doNotAskForVersionOnConflict?: boolean): Promise<{
116
+ keep: GirModuleResolvedBy[];
117
+ grouped: GirModulesGroupedMap;
118
+ ignore: string[];
119
+ failed: Set<string>;
120
+ }>;
121
+ /**
122
+ * Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
123
+ * @param girDirectories
124
+ * @param modules
125
+ */
126
+ getModules(modules: string[], ignore?: string[]): Promise<{
127
+ grouped: GirModulesGroupedMap;
128
+ loaded: GirModuleResolvedBy[];
129
+ failed: string[];
130
+ }>;
131
+ }
@@ -0,0 +1,467 @@
1
+ /**
2
+ * The ModuleLoader is used for reading gir modules from the file system and to solve conflicts (e.g. Gtk-3.0 and Gtk-4.0 would be a conflict)
3
+ */
4
+ import inquirer from 'inquirer';
5
+ import glob from 'tiny-glob';
6
+ import Path from 'path';
7
+ import fs from 'fs';
8
+ import { bold } from 'colorette';
9
+ import * as xml2js from 'xml2js';
10
+ import { ResolveType } from './types/index.js';
11
+ import { GirModule } from './gir-module.js';
12
+ import { Config } from './config.js';
13
+ import { Logger } from './logger.js';
14
+ import { splitModuleName, union, isIterable, map, findFileInDirs } from './utils.js';
15
+ import { WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE } from './messages.js';
16
+ export class ModuleLoader {
17
+ config;
18
+ log;
19
+ /** Transitive module dependencies */
20
+ modDependencyMap = {};
21
+ constructor(config) {
22
+ this.config = config;
23
+ this.log = new Logger('', config.verbose, 'ModuleLoader');
24
+ }
25
+ /**
26
+ * Groups Gir modules by name id
27
+ * E.g. Gtk-3.0 and Gtk-4.0 will be grouped
28
+ * @param girFiles
29
+ */
30
+ groupGirFiles(resolveGirModules) {
31
+ const girModulesGrouped = {};
32
+ for (const resolveGirModule of resolveGirModules) {
33
+ const { namespace } = splitModuleName(resolveGirModule.packageName);
34
+ const id = namespace.toLowerCase();
35
+ if (!girModulesGrouped[id]) {
36
+ girModulesGrouped[id] = {
37
+ namespace: namespace,
38
+ modules: [resolveGirModule],
39
+ hasConflict: false,
40
+ };
41
+ }
42
+ else {
43
+ girModulesGrouped[id].modules.push(resolveGirModule);
44
+ girModulesGrouped[id].hasConflict = true;
45
+ }
46
+ }
47
+ return girModulesGrouped;
48
+ }
49
+ /**
50
+ * Sorts out the module the user has not selected via cli prompt
51
+ * @param girModulesGrouped
52
+ * @param keepFullName Users selected module packageName
53
+ */
54
+ sortVersionsByAnswer(girModulesGrouped, selected) {
55
+ const keep = new Set();
56
+ let ignore = [];
57
+ if (!girModulesGrouped.hasConflict) {
58
+ keep.add(girModulesGrouped.modules[0]);
59
+ }
60
+ else {
61
+ const keepModules = this.findGirModuleByFullNames(girModulesGrouped.modules, selected);
62
+ const girModulePackageNames = girModulesGrouped.modules.map((resolveGirModule) => resolveGirModule.packageName);
63
+ if (!keepModules || keepModules.length <= 0) {
64
+ throw new Error('Module not found!');
65
+ }
66
+ for (const keepModule of keepModules) {
67
+ keep.add(keepModule);
68
+ }
69
+ const toIgnore = girModulePackageNames.filter((packageName) => !selected.includes(packageName));
70
+ ignore = ignore.concat(toIgnore);
71
+ }
72
+ return {
73
+ keep,
74
+ ignore,
75
+ };
76
+ }
77
+ generateContinueQuestion(message = `do you want to continue?`, choices = ['Yes', 'Go back']) {
78
+ const question = {
79
+ name: 'continue',
80
+ message,
81
+ type: 'list',
82
+ choices,
83
+ };
84
+ return question;
85
+ }
86
+ generateIgnoreDepsQuestion(message = `Do you want to ignore them too?`, choices = ['Yes', 'No', 'Go back']) {
87
+ const question = {
88
+ name: 'continue',
89
+ message,
90
+ type: 'list',
91
+ choices,
92
+ };
93
+ return question;
94
+ }
95
+ async askIgnoreDepsPrompt(deps) {
96
+ let question = null;
97
+ const size = deps.length || deps.size || 0;
98
+ if (size > 0) {
99
+ this.log.log(bold('\nThe following modules have the ignored modules as dependencies:'));
100
+ for (const dep of deps) {
101
+ this.log.log(`- ${dep.packageName}`);
102
+ }
103
+ this.log.log(bold('\n'));
104
+ question = this.generateIgnoreDepsQuestion();
105
+ }
106
+ else {
107
+ this.log.log(bold('\nNo dependencies found on the ignored modules'));
108
+ question = this.generateContinueQuestion();
109
+ }
110
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
111
+ const answer = (await inquirer.prompt([question])).continue;
112
+ return answer;
113
+ }
114
+ /**
115
+ * Ask for duplicates / multiple versions of a module
116
+ * @param girModuleGrouped
117
+ * @param message
118
+ */
119
+ generateModuleVersionQuestion(girModuleGrouped, message) {
120
+ message = message || `Multiple versions of '${girModuleGrouped.namespace}' found, which one do you want to use?`;
121
+ const choices = ['All', ...girModuleGrouped.modules.map((module) => module.packageName)];
122
+ const question = {
123
+ name: girModuleGrouped.namespace,
124
+ message,
125
+ type: 'list',
126
+ choices,
127
+ };
128
+ return question;
129
+ }
130
+ /**
131
+ * Find modules that depend on the module with the name 'packageName'
132
+ * @param girModulesGroupedMap
133
+ * @param packageName
134
+ */
135
+ findModulesDependOnPackage(girModulesGroupedMap, packageName) {
136
+ const girModules = [];
137
+ for (const girModulesGrouped of Object.values(girModulesGroupedMap)) {
138
+ for (const girModuleResolvedBy of girModulesGrouped.modules) {
139
+ if (girModuleResolvedBy.packageName === packageName) {
140
+ continue;
141
+ }
142
+ for (const dep of girModuleResolvedBy.module.dependencies) {
143
+ if (dep === packageName && !girModules.includes(girModuleResolvedBy)) {
144
+ girModules.push(girModuleResolvedBy);
145
+ }
146
+ }
147
+ }
148
+ }
149
+ return girModules;
150
+ }
151
+ /**
152
+ * Find modules that depend on the module with the names in `packageNames`
153
+ * @param girModulesGroupedMap
154
+ * @param packageName
155
+ */
156
+ findModulesDependOnPackages(girModulesGroupedMap, packageNames) {
157
+ let girModules = [];
158
+ for (const packageName of packageNames) {
159
+ girModules = girModules.concat(this.findModulesDependOnPackage(girModulesGroupedMap, packageName));
160
+ }
161
+ return girModules;
162
+ }
163
+ async askForVersionsPrompt(girModulesGrouped) {
164
+ const question = this.generateModuleVersionQuestion(girModulesGrouped);
165
+ const choices = question.choices;
166
+ if (!choices) {
167
+ throw new Error('No valid questions!');
168
+ }
169
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
170
+ const selected = (await inquirer.prompt([question]))[girModulesGrouped.namespace];
171
+ if (!selected) {
172
+ throw new Error('No valid answer!');
173
+ }
174
+ if (selected === 'All') {
175
+ return {
176
+ selected: choices.filter((choice) => choice !== 'All'),
177
+ unselected: [],
178
+ };
179
+ }
180
+ const unselected = choices.filter((choice) => choice !== selected);
181
+ return {
182
+ selected: [selected],
183
+ unselected,
184
+ };
185
+ }
186
+ /**
187
+ * If multiple versions of the same module are found, this will aks the user with input prompts for the version he wish to use.
188
+ * Ignores also modules that depend on a module that should be ignored
189
+ * @param resolveFirModules
190
+ */
191
+ async askForEachConflictVersionsPrompt(girModulesGroupedMap, ignore) {
192
+ let keep = new Set();
193
+ for (const girModulesGrouped of Object.values(girModulesGroupedMap)) {
194
+ // Remove ignored modules from group
195
+ girModulesGrouped.modules = girModulesGrouped.modules.filter((girGroup) => !ignore.includes(girGroup.packageName));
196
+ girModulesGrouped.hasConflict = girModulesGrouped.modules.length >= 2;
197
+ if (girModulesGrouped.modules.length <= 0) {
198
+ continue;
199
+ }
200
+ // Ask for version if there is a conflict
201
+ if (!girModulesGrouped.hasConflict) {
202
+ keep = union(keep, girModulesGrouped.modules);
203
+ }
204
+ else {
205
+ let goBack = true;
206
+ let versionAnswer = null;
207
+ let ignoreDepsAnswer = null;
208
+ let wouldIgnoreDeps = [];
209
+ while (goBack) {
210
+ versionAnswer = await this.askForVersionsPrompt(girModulesGrouped);
211
+ // Check modules that depend on the unchosen modules
212
+ wouldIgnoreDeps = this.findModulesDependOnPackages(girModulesGroupedMap, versionAnswer.unselected);
213
+ // Do not check dependencies that have already been ignored
214
+ wouldIgnoreDeps = wouldIgnoreDeps.filter((dep) => !ignore.includes(dep.packageName));
215
+ ignoreDepsAnswer = await this.askIgnoreDepsPrompt(wouldIgnoreDeps);
216
+ goBack = ignoreDepsAnswer === 'Go back';
217
+ }
218
+ if (!versionAnswer) {
219
+ throw new Error('Error in processing the prompt versionAnswer');
220
+ }
221
+ if (ignoreDepsAnswer === 'Yes') {
222
+ // Also ignore the dependencies of the unselected version
223
+ ignore = ignore.concat(wouldIgnoreDeps.map((dep) => dep.packageName));
224
+ }
225
+ const unionMe = this.sortVersionsByAnswer(girModulesGrouped, versionAnswer.selected);
226
+ // Do not ignore the selected package version
227
+ keep = union(keep, unionMe.keep);
228
+ // Ignore the unchosen package versions
229
+ ignore = ignore.concat(unionMe.ignore);
230
+ }
231
+ }
232
+ if (ignore && ignore.length > 0) {
233
+ const ignoreLogList = '- ' + ignore.join('\n- ');
234
+ this.log.log(bold(`\n The following modules will be ignored:`));
235
+ this.log.log(`\n${ignoreLogList}\n`);
236
+ await this.askAddToIgnoreToConfigPrompt(ignore);
237
+ }
238
+ return {
239
+ keep,
240
+ ignore,
241
+ };
242
+ }
243
+ /**
244
+ * Asks via cli prompt if the user wants to add the ignored modules to his config file
245
+ * @param ignore
246
+ */
247
+ async askAddToIgnoreToConfigPrompt(ignore) {
248
+ const questions = [
249
+ {
250
+ name: 'addToIgnore',
251
+ message: `Do you want to add the ignored modules to your config so that you don't need to select them again next time?\n Config path: '${Config.configFilePath}`,
252
+ type: 'list',
253
+ choices: ['No', 'Yes'],
254
+ },
255
+ ];
256
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
257
+ const answer = await inquirer.prompt(questions);
258
+ if (answer.addToIgnore === 'Yes') {
259
+ await Config.addToConfig({
260
+ ignore: Array.from(ignore),
261
+ });
262
+ this.log.log(`Add ignored modules to '${Config.configFilePath}'`);
263
+ }
264
+ }
265
+ /**
266
+ * Figure out transitive module dependencies
267
+ * @param packageName
268
+ * @param result
269
+ */
270
+ traverseDependencies(packageName, result = {}) {
271
+ const deps = this.modDependencyMap[packageName];
272
+ if (isIterable(deps)) {
273
+ for (const dep of deps) {
274
+ if (result[dep.packageName])
275
+ continue;
276
+ result[dep.packageName] = 1;
277
+ this.traverseDependencies(dep.packageName, result);
278
+ }
279
+ }
280
+ }
281
+ /**
282
+ * Extends the modDependencyMap by the current Module,
283
+ * should be called for each girModule so that the modDependencyMap is complete
284
+ * @param girModule
285
+ */
286
+ extendDependencyMapByGirModule(girModule) {
287
+ this.modDependencyMap[girModule.packageName || '-'] = map(girModule.dependencies || [], (packageName) => {
288
+ const { namespace, version } = splitModuleName(packageName);
289
+ return {
290
+ namespace,
291
+ version,
292
+ packageName,
293
+ };
294
+ });
295
+ }
296
+ /**
297
+ * Sets the traverse dependencies for the current girModule,
298
+ * is required so that all dependencies can be found internally when generating the dependency imports for the module .d.ts file
299
+ * @param girModules
300
+ */
301
+ setTraverseDependenciesForModules(girModules) {
302
+ for (const girModule of girModules) {
303
+ const result = {};
304
+ this.traverseDependencies(girModule.packageName, result);
305
+ girModule.module.transitiveDependencies = Object.keys(result);
306
+ }
307
+ }
308
+ /**
309
+ * Reads a gir xml module file and creates an object of GirModule.
310
+ * Also sets the setDependencyMap
311
+ * @param fillName
312
+ * @param config
313
+ */
314
+ async loadAndCreateGirModule(packageName) {
315
+ const file = findFileInDirs(this.config.girDirectories, packageName + '.gir');
316
+ if (!file.exists || file.path === null) {
317
+ return null;
318
+ }
319
+ this.log.log(`Parsing ${file.path}...`);
320
+ const fileContents = fs.readFileSync(file.path, 'utf8');
321
+ const result = (await xml2js.parseStringPromise(fileContents));
322
+ const girModule = new GirModule(result, this.config);
323
+ // Figure out transitive module dependencies
324
+ this.extendDependencyMapByGirModule(girModule);
325
+ return girModule;
326
+ }
327
+ /**
328
+ * Returns a girModule found by `packageName` property
329
+ * @param girModules Array of girModules
330
+ * @param packageNames Full name like 'Gtk-3.0' you are looking for
331
+ */
332
+ findGirModuleByFullNames(girModules, packageNames) {
333
+ return girModules.filter((girModule) => packageNames.includes(girModule.packageName));
334
+ }
335
+ /**
336
+ * Checks if a girModules with the `packageNames` exists
337
+ * @param girModules
338
+ * @param packageName
339
+ */
340
+ existsGirModules(girModules, packageNames) {
341
+ const foundModule = this.findGirModuleByFullNames(girModules, packageNames);
342
+ return foundModule.length > 0;
343
+ }
344
+ /**
345
+ * Reads the gir xml module files and creates an object of GirModule for each module
346
+ * @param girModulesToRead
347
+ * @param girModules
348
+ * @param resolvedBy
349
+ * @param failedGirModules
350
+ * @param ignoreDependencies
351
+ * @returns
352
+ */
353
+ async loadGirModules(girModulesToRead, ignoreDependencies = [], girModules = [], resolvedBy = ResolveType.BY_HAND, failedGirModules = new Set()) {
354
+ // A copy is needed here because we are changing the array for the while loop
355
+ const girToLoad = Array.from(girModulesToRead);
356
+ let newModuleFound = false;
357
+ while (girToLoad.length > 0) {
358
+ const packageName = girToLoad.shift() || 'unknown';
359
+ if (!packageName)
360
+ throw new Error(`Module name '${packageName} 'not found!`);
361
+ // If module has not already been loaded
362
+ if (!this.existsGirModules(girModules, [packageName])) {
363
+ const girModule = await this.loadAndCreateGirModule(packageName);
364
+ if (!girModule) {
365
+ if (!failedGirModules.has(packageName)) {
366
+ this.log.warn(WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE(packageName));
367
+ failedGirModules.add(packageName);
368
+ }
369
+ }
370
+ else if (girModule && girModule.packageName) {
371
+ const addModule = {
372
+ packageName: girModule.packageName,
373
+ module: girModule,
374
+ resolvedBy,
375
+ };
376
+ girModules.push(addModule);
377
+ newModuleFound = true;
378
+ }
379
+ }
380
+ }
381
+ if (!newModuleFound) {
382
+ return {
383
+ loaded: girModules,
384
+ failed: failedGirModules,
385
+ };
386
+ }
387
+ // Figure out transitive module dependencies
388
+ this.setTraverseDependenciesForModules(girModules);
389
+ // Load girModules for dependencies
390
+ for (const girModule of girModules) {
391
+ // Load dependencies
392
+ const transitiveDependencies = girModule.module.transitiveDependencies;
393
+ if (transitiveDependencies.length > 0) {
394
+ for (const transitiveDependency of transitiveDependencies) {
395
+ if (ignoreDependencies.includes(transitiveDependency)) {
396
+ this.log.warn(`Load dependency "${transitiveDependency}" which is in the ignore list, if this should really be ignored also ignore "${girModule.packageName}"`);
397
+ }
398
+ }
399
+ await this.loadGirModules(transitiveDependencies, ignoreDependencies, girModules, ResolveType.DEPENDENCE, failedGirModules);
400
+ }
401
+ }
402
+ return {
403
+ loaded: girModules,
404
+ failed: failedGirModules,
405
+ };
406
+ }
407
+ /**
408
+ * Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
409
+ * @param girDirectories
410
+ * @param modules
411
+ */
412
+ async findModules(modules, ignore = []) {
413
+ const foundModules = new Set();
414
+ for (let i = 0; i < modules.length; i++) {
415
+ if (modules[i]) {
416
+ const filename = `${modules[i]}.gir`;
417
+ let files = [];
418
+ for (const girDirectory of this.config.girDirectories) {
419
+ files = files.concat(await glob(filename, { cwd: girDirectory }));
420
+ }
421
+ let globModules = files.map((file) => Path.basename(file, '.gir'));
422
+ // Filter out the ignored modules
423
+ globModules = globModules.filter((mod) => {
424
+ const isIgnored = ignore.includes(mod);
425
+ if (isIgnored) {
426
+ this.log.warn(`Ignore ${mod}`);
427
+ }
428
+ return !isIgnored;
429
+ });
430
+ globModules.forEach((mod) => foundModules.add(mod));
431
+ }
432
+ }
433
+ return foundModules;
434
+ }
435
+ /**
436
+ * Loads all found modules and sorts out those that the user does not want to use including their dependencies
437
+ * @param girDirectories
438
+ * @param modules
439
+ */
440
+ async getModulesResolved(modules, ignore = [], doNotAskForVersionOnConflict = true) {
441
+ const foundGirModules = await this.findModules(modules, ignore);
442
+ const { loaded, failed } = await this.loadGirModules(foundGirModules, ignore);
443
+ let keep = [];
444
+ if (doNotAskForVersionOnConflict) {
445
+ keep = loaded;
446
+ }
447
+ else {
448
+ const girModulesGrouped = this.groupGirFiles(loaded);
449
+ const filtered = await this.askForEachConflictVersionsPrompt(girModulesGrouped, ignore);
450
+ keep = Array.from(filtered.keep);
451
+ }
452
+ const grouped = this.groupGirFiles(keep);
453
+ return { keep, grouped, ignore, failed };
454
+ }
455
+ /**
456
+ * Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
457
+ * @param girDirectories
458
+ * @param modules
459
+ */
460
+ async getModules(modules, ignore = []) {
461
+ const foundGirModules = await this.findModules(modules, ignore);
462
+ const { loaded, failed } = await this.loadGirModules(foundGirModules, ignore);
463
+ const grouped = this.groupGirFiles(loaded);
464
+ return { grouped, loaded, failed: Array.from(failed) };
465
+ }
466
+ }
467
+ //# sourceMappingURL=module-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"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"}
package/lib/start.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/lib/start.js ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import yargs from 'yargs';
3
+ import { hideBin } from 'yargs/helpers';
4
+ import { generate, list, doc } from './commands/index.js';
5
+ import { Config } from './config.js';
6
+ void yargs(hideBin(process.argv))
7
+ .scriptName(Config.appName)
8
+ .strict()
9
+ .usage(Config.usage)
10
+ .command(generate.command, generate.description, generate.builder, generate.handler)
11
+ .command(list.command, list.description, list.builder, list.handler)
12
+ .command(doc.command, doc.description, doc.builder, doc.handler)
13
+ .demandCommand(1)
14
+ .help().argv;
15
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;KACnF,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KACnE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;KAC/D,aAAa,CAAC,CAAC,CAAC;KAChB,IAAI,EAAE,CAAC,IAAI,CAAA"}
@@ -0,0 +1,24 @@
1
+ import type { GenerateConfig, GirAnyElement } from './types/index.js';
2
+ /**
3
+ * The SymTable is used to get any Type from any dependency to compare or to get information from
4
+ */
5
+ export declare class SymTable {
6
+ private readonly config;
7
+ private readonly modPackageName;
8
+ private readonly modNamespace;
9
+ /**
10
+ * The items are static because any GirModule has the same items to be able to access the types of dependencies as well
11
+ */
12
+ private static items;
13
+ private log;
14
+ constructor(config: GenerateConfig, modPackageName: string, modNamespace: string);
15
+ /**
16
+ * Get symTable key, we use this method to prepend the package version to each key to prevent version conflicts e.g. in 'Gtk-3.0' and 'Gtk-4.0'
17
+ * @param implementation E.g. Gtk.Window
18
+ * @returns E.g. 'Gtk-3.0.Gtk.Window'
19
+ */
20
+ getKey(dependencies: string[], implementation: string): string | null;
21
+ get<T>(dependencies: string[], fullTypeName: string): T | null;
22
+ getByHand<T = GirAnyElement>(key: string): T | null;
23
+ set(dependencies: string[], fullTypeName: string, GirElement: GirAnyElement): void;
24
+ }