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

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 (773) hide show
  1. package/README.md +420 -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 +49 -0
  6. package/lib/commands/generate.js +73 -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 +88 -0
  15. package/lib/config.js +471 -0
  16. package/lib/config.js.map +1 -0
  17. package/lib/conflict-resolver.d.ts +155 -0
  18. package/lib/conflict-resolver.js +1103 -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/dependency-manager.d.ts +34 -0
  24. package/lib/dependency-manager.js +78 -0
  25. package/lib/dependency-manager.js.map +1 -0
  26. package/lib/generation-handler.d.ts +12 -0
  27. package/lib/generation-handler.js +63 -0
  28. package/lib/generation-handler.js.map +1 -0
  29. package/lib/generator.d.ts +5 -0
  30. package/lib/generator.js +2 -0
  31. package/lib/generator.js.map +1 -0
  32. package/lib/gir-factory.d.ts +52 -0
  33. package/lib/gir-factory.js +376 -0
  34. package/lib/gir-factory.js.map +1 -0
  35. package/lib/gir-module.d.ts +259 -0
  36. package/lib/gir-module.js +2181 -0
  37. package/lib/gir-module.js.map +1 -0
  38. package/lib/html-doc-generator.d.ts +13 -0
  39. package/lib/html-doc-generator.js +18 -0
  40. package/lib/html-doc-generator.js.map +1 -0
  41. package/lib/index.d.ts +17 -0
  42. package/lib/index.js +18 -0
  43. package/lib/index.js.map +1 -0
  44. package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +2 -0
  45. package/lib/injection/callbacks/gjs/Gio-2.0.js +36 -0
  46. package/lib/injection/callbacks/gjs/Gio-2.0.js.map +1 -0
  47. package/lib/injection/callbacks/gjs/index.d.ts +2 -0
  48. package/lib/injection/callbacks/gjs/index.js +3 -0
  49. package/lib/injection/callbacks/gjs/index.js.map +1 -0
  50. package/lib/injection/callbacks/index.d.ts +4 -0
  51. package/lib/injection/callbacks/index.js +4 -0
  52. package/lib/injection/callbacks/index.js.map +1 -0
  53. package/lib/injection/callbacks/node-gtk/index.d.ts +2 -0
  54. package/lib/injection/callbacks/node-gtk/index.js +2 -0
  55. package/lib/injection/callbacks/node-gtk/index.js.map +1 -0
  56. package/lib/injection/classes/GLib-2-0.d.ts +2 -0
  57. package/lib/injection/classes/GLib-2-0.js +35 -0
  58. package/lib/injection/classes/GLib-2-0.js.map +1 -0
  59. package/lib/injection/classes/gjs/GLib-2.0.d.ts +2 -0
  60. package/lib/injection/classes/gjs/GLib-2.0.js +205 -0
  61. package/lib/injection/classes/gjs/GLib-2.0.js.map +1 -0
  62. package/lib/injection/classes/gjs/GObject-2.0.d.ts +2 -0
  63. package/lib/injection/classes/gjs/GObject-2.0.js +634 -0
  64. package/lib/injection/classes/gjs/GObject-2.0.js.map +1 -0
  65. package/lib/injection/classes/gjs/Gio-2.0.d.ts +5 -0
  66. package/lib/injection/classes/gjs/Gio-2.0.js +218 -0
  67. package/lib/injection/classes/gjs/Gio-2.0.js.map +1 -0
  68. package/lib/injection/classes/gjs/index.d.ts +2 -0
  69. package/lib/injection/classes/gjs/index.js +5 -0
  70. package/lib/injection/classes/gjs/index.js.map +1 -0
  71. package/lib/injection/classes/index.d.ts +4 -0
  72. package/lib/injection/classes/index.js +5 -0
  73. package/lib/injection/classes/index.js.map +1 -0
  74. package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +2 -0
  75. package/lib/injection/classes/node-gtk/GLib-2.0.js +19 -0
  76. package/lib/injection/classes/node-gtk/GLib-2.0.js.map +1 -0
  77. package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +2 -0
  78. package/lib/injection/classes/node-gtk/GObject-2.0.js +66 -0
  79. package/lib/injection/classes/node-gtk/GObject-2.0.js.map +1 -0
  80. package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +2 -0
  81. package/lib/injection/classes/node-gtk/Gdk-4.0.js +32 -0
  82. package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +1 -0
  83. package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +2 -0
  84. package/lib/injection/classes/node-gtk/Gio-2.0.js +14 -0
  85. package/lib/injection/classes/node-gtk/Gio-2.0.js.map +1 -0
  86. package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +2 -0
  87. package/lib/injection/classes/node-gtk/Graphene-1.0.js +133 -0
  88. package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +1 -0
  89. package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +2 -0
  90. package/lib/injection/classes/node-gtk/Gtk-3.0.js +31 -0
  91. package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +1 -0
  92. package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +2 -0
  93. package/lib/injection/classes/node-gtk/Gtk-4.0.js +52 -0
  94. package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +1 -0
  95. package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +2 -0
  96. package/lib/injection/classes/node-gtk/Pango-1.0.js +31 -0
  97. package/lib/injection/classes/node-gtk/Pango-1.0.js.map +1 -0
  98. package/lib/injection/classes/node-gtk/index.d.ts +2 -0
  99. package/lib/injection/classes/node-gtk/index.js +19 -0
  100. package/lib/injection/classes/node-gtk/index.js.map +1 -0
  101. package/lib/injection/index.d.ts +3 -0
  102. package/lib/injection/index.js +4 -0
  103. package/lib/injection/index.js.map +1 -0
  104. package/lib/injection/injector.d.ts +17 -0
  105. package/lib/injection/injector.js +139 -0
  106. package/lib/injection/injector.js.map +1 -0
  107. package/lib/logger.d.ts +36 -0
  108. package/lib/logger.js +137 -0
  109. package/lib/logger.js.map +1 -0
  110. package/lib/messages.d.ts +31 -0
  111. package/lib/messages.js +46 -0
  112. package/lib/messages.js.map +1 -0
  113. package/lib/module-loader.d.ts +134 -0
  114. package/lib/module-loader.js +475 -0
  115. package/lib/module-loader.js.map +1 -0
  116. package/lib/start.d.ts +2 -0
  117. package/lib/start.js +15 -0
  118. package/lib/start.js.map +1 -0
  119. package/lib/symtable.d.ts +24 -0
  120. package/lib/symtable.js +63 -0
  121. package/lib/symtable.js.map +1 -0
  122. package/lib/template-processor.d.ts +74 -0
  123. package/lib/template-processor.js +165 -0
  124. package/lib/template-processor.js.map +1 -0
  125. package/lib/transformation.d.ts +156 -0
  126. package/lib/transformation.js +524 -0
  127. package/lib/transformation.js.map +1 -0
  128. package/lib/type-definition-generator.d.ts +116 -0
  129. package/lib/type-definition-generator.js +996 -0
  130. package/lib/type-definition-generator.js.map +1 -0
  131. package/lib/types/answer-version.d.ts +4 -0
  132. package/lib/types/answer-version.js +2 -0
  133. package/lib/types/answer-version.js.map +1 -0
  134. package/lib/types/build-type.d.ts +1 -0
  135. package/lib/types/build-type.js +2 -0
  136. package/lib/types/build-type.js.map +1 -0
  137. package/lib/types/class-parent.d.ts +13 -0
  138. package/lib/types/class-parent.js +2 -0
  139. package/lib/types/class-parent.js.map +1 -0
  140. package/lib/types/config-flags.d.ts +4 -0
  141. package/lib/types/config-flags.js +2 -0
  142. package/lib/types/config-flags.js.map +1 -0
  143. package/lib/types/conflict-child-element.d.ts +10 -0
  144. package/lib/types/conflict-child-element.js +2 -0
  145. package/lib/types/conflict-child-element.js.map +1 -0
  146. package/lib/types/conflict-grouped-element.d.ts +6 -0
  147. package/lib/types/conflict-grouped-element.js +2 -0
  148. package/lib/types/conflict-grouped-element.js.map +1 -0
  149. package/lib/types/conflict-grouped-elements.d.ts +4 -0
  150. package/lib/types/conflict-grouped-elements.js +2 -0
  151. package/lib/types/conflict-grouped-elements.js.map +1 -0
  152. package/lib/types/construct-name.d.ts +1 -0
  153. package/lib/types/construct-name.js +2 -0
  154. package/lib/types/construct-name.js.map +1 -0
  155. package/lib/types/dependency-map.d.ts +4 -0
  156. package/lib/types/dependency-map.js +2 -0
  157. package/lib/types/dependency-map.js.map +1 -0
  158. package/lib/types/dependency.d.ts +15 -0
  159. package/lib/types/dependency.js +2 -0
  160. package/lib/types/dependency.js.map +1 -0
  161. package/lib/types/environment.d.ts +1 -0
  162. package/lib/types/environment.js +2 -0
  163. package/lib/types/environment.js.map +1 -0
  164. package/lib/types/file-info.d.ts +14 -0
  165. package/lib/types/file-info.js +2 -0
  166. package/lib/types/file-info.js.map +1 -0
  167. package/lib/types/generate-config.d.ts +34 -0
  168. package/lib/types/generate-config.js +2 -0
  169. package/lib/types/generate-config.js.map +1 -0
  170. package/lib/types/generator-type.d.ts +4 -0
  171. package/lib/types/generator-type.js +6 -0
  172. package/lib/types/generator-type.js.map +1 -0
  173. package/lib/types/gir-alias-element.d.ts +13 -0
  174. package/lib/types/gir-alias-element.js +2 -0
  175. package/lib/types/gir-alias-element.js.map +1 -0
  176. package/lib/types/gir-annotation.d.ts +9 -0
  177. package/lib/types/gir-annotation.js +2 -0
  178. package/lib/types/gir-annotation.js.map +1 -0
  179. package/lib/types/gir-any-element.d.ts +2 -0
  180. package/lib/types/gir-any-element.js +2 -0
  181. package/lib/types/gir-any-element.js.map +1 -0
  182. package/lib/types/gir-any-type.d.ts +5 -0
  183. package/lib/types/gir-any-type.js +2 -0
  184. package/lib/types/gir-any-type.js.map +1 -0
  185. package/lib/types/gir-array-type.d.ts +20 -0
  186. package/lib/types/gir-array-type.js +3 -0
  187. package/lib/types/gir-array-type.js.map +1 -0
  188. package/lib/types/gir-bitfield-element.d.ts +17 -0
  189. package/lib/types/gir-bitfield-element.js +2 -0
  190. package/lib/types/gir-bitfield-element.js.map +1 -0
  191. package/lib/types/gir-boolean.d.ts +1 -0
  192. package/lib/types/gir-boolean.js +2 -0
  193. package/lib/types/gir-boolean.js.map +1 -0
  194. package/lib/types/gir-boxed-element.d.ts +15 -0
  195. package/lib/types/gir-boxed-element.js +2 -0
  196. package/lib/types/gir-boxed-element.js.map +1 -0
  197. package/lib/types/gir-c-include.d.ts +7 -0
  198. package/lib/types/gir-c-include.js +2 -0
  199. package/lib/types/gir-c-include.js.map +1 -0
  200. package/lib/types/gir-callable-attrs.d.ts +15 -0
  201. package/lib/types/gir-callable-attrs.js +3 -0
  202. package/lib/types/gir-callable-attrs.js.map +1 -0
  203. package/lib/types/gir-callable-param-element.d.ts +30 -0
  204. package/lib/types/gir-callable-param-element.js +2 -0
  205. package/lib/types/gir-callable-param-element.js.map +1 -0
  206. package/lib/types/gir-callable-param.d.ts +7 -0
  207. package/lib/types/gir-callable-param.js +2 -0
  208. package/lib/types/gir-callable-param.js.map +1 -0
  209. package/lib/types/gir-callable-return.d.ts +22 -0
  210. package/lib/types/gir-callable-return.js +2 -0
  211. package/lib/types/gir-callable-return.js.map +1 -0
  212. package/lib/types/gir-callback-element.d.ts +15 -0
  213. package/lib/types/gir-callback-element.js +2 -0
  214. package/lib/types/gir-callback-element.js.map +1 -0
  215. package/lib/types/gir-class-element.d.ts +48 -0
  216. package/lib/types/gir-class-element.js +2 -0
  217. package/lib/types/gir-class-element.js.map +1 -0
  218. package/lib/types/gir-constant-element.d.ts +15 -0
  219. package/lib/types/gir-constant-element.js +2 -0
  220. package/lib/types/gir-constant-element.js.map +1 -0
  221. package/lib/types/gir-constructor-element.d.ts +8 -0
  222. package/lib/types/gir-constructor-element.js +2 -0
  223. package/lib/types/gir-constructor-element.js.map +1 -0
  224. package/lib/types/gir-direction.d.ts +5 -0
  225. package/lib/types/gir-direction.js +7 -0
  226. package/lib/types/gir-direction.js.map +1 -0
  227. package/lib/types/gir-doc-element.d.ts +68 -0
  228. package/lib/types/gir-doc-element.js +2 -0
  229. package/lib/types/gir-doc-element.js.map +1 -0
  230. package/lib/types/gir-enum-element.d.ts +19 -0
  231. package/lib/types/gir-enum-element.js +2 -0
  232. package/lib/types/gir-enum-element.js.map +1 -0
  233. package/lib/types/gir-field-element.d.ts +18 -0
  234. package/lib/types/gir-field-element.js +2 -0
  235. package/lib/types/gir-field-element.js.map +1 -0
  236. package/lib/types/gir-function-element.d.ts +8 -0
  237. package/lib/types/gir-function-element.js +2 -0
  238. package/lib/types/gir-function-element.js.map +1 -0
  239. package/lib/types/gir-implements.d.ts +8 -0
  240. package/lib/types/gir-implements.js +2 -0
  241. package/lib/types/gir-implements.js.map +1 -0
  242. package/lib/types/gir-include.d.ts +9 -0
  243. package/lib/types/gir-include.js +2 -0
  244. package/lib/types/gir-include.js.map +1 -0
  245. package/lib/types/gir-info-attrs.d.ts +13 -0
  246. package/lib/types/gir-info-attrs.js +2 -0
  247. package/lib/types/gir-info-attrs.js.map +1 -0
  248. package/lib/types/gir-info-elements.d.ts +5 -0
  249. package/lib/types/gir-info-elements.js +2 -0
  250. package/lib/types/gir-info-elements.js.map +1 -0
  251. package/lib/types/gir-instance-parameter.d.ts +21 -0
  252. package/lib/types/gir-instance-parameter.js +2 -0
  253. package/lib/types/gir-instance-parameter.js.map +1 -0
  254. package/lib/types/gir-interface-element.d.ts +31 -0
  255. package/lib/types/gir-interface-element.js +2 -0
  256. package/lib/types/gir-interface-element.js.map +1 -0
  257. package/lib/types/gir-member-element.d.ts +17 -0
  258. package/lib/types/gir-member-element.js +2 -0
  259. package/lib/types/gir-member-element.js.map +1 -0
  260. package/lib/types/gir-method-element.d.ts +13 -0
  261. package/lib/types/gir-method-element.js +2 -0
  262. package/lib/types/gir-method-element.js.map +1 -0
  263. package/lib/types/gir-module-resolved-by.d.ts +10 -0
  264. package/lib/types/gir-module-resolved-by.js +2 -0
  265. package/lib/types/gir-module-resolved-by.js.map +1 -0
  266. package/lib/types/gir-modules-grouped-map.d.ts +4 -0
  267. package/lib/types/gir-modules-grouped-map.js +2 -0
  268. package/lib/types/gir-modules-grouped-map.js.map +1 -0
  269. package/lib/types/gir-modules-grouped.d.ts +12 -0
  270. package/lib/types/gir-modules-grouped.js +2 -0
  271. package/lib/types/gir-modules-grouped.js.map +1 -0
  272. package/lib/types/gir-namespace.d.ts +30 -0
  273. package/lib/types/gir-namespace.js +2 -0
  274. package/lib/types/gir-namespace.js.map +1 -0
  275. package/lib/types/gir-package.d.ts +7 -0
  276. package/lib/types/gir-package.js +2 -0
  277. package/lib/types/gir-package.js.map +1 -0
  278. package/lib/types/gir-prerequisite.d.ts +5 -0
  279. package/lib/types/gir-prerequisite.js +2 -0
  280. package/lib/types/gir-prerequisite.js.map +1 -0
  281. package/lib/types/gir-property-element.d.ts +21 -0
  282. package/lib/types/gir-property-element.js +2 -0
  283. package/lib/types/gir-property-element.js.map +1 -0
  284. package/lib/types/gir-record-element.d.ts +30 -0
  285. package/lib/types/gir-record-element.js +2 -0
  286. package/lib/types/gir-record-element.js.map +1 -0
  287. package/lib/types/gir-repository.d.ts +16 -0
  288. package/lib/types/gir-repository.js +2 -0
  289. package/lib/types/gir-repository.js.map +1 -0
  290. package/lib/types/gir-signal.d.ts +25 -0
  291. package/lib/types/gir-signal.js +2 -0
  292. package/lib/types/gir-signal.js.map +1 -0
  293. package/lib/types/gir-transfer-ownership-type.d.ts +5 -0
  294. package/lib/types/gir-transfer-ownership-type.js +7 -0
  295. package/lib/types/gir-transfer-ownership-type.js.map +1 -0
  296. package/lib/types/gir-transfer-ownership.d.ts +5 -0
  297. package/lib/types/gir-transfer-ownership.js +2 -0
  298. package/lib/types/gir-transfer-ownership.js.map +1 -0
  299. package/lib/types/gir-type.d.ts +14 -0
  300. package/lib/types/gir-type.js +2 -0
  301. package/lib/types/gir-type.js.map +1 -0
  302. package/lib/types/gir-union-element.d.ts +22 -0
  303. package/lib/types/gir-union-element.js +2 -0
  304. package/lib/types/gir-union-element.js.map +1 -0
  305. package/lib/types/gir-unparsed-number.d.ts +2 -0
  306. package/lib/types/gir-unparsed-number.js +2 -0
  307. package/lib/types/gir-unparsed-number.js.map +1 -0
  308. package/lib/types/gir-var-args.d.ts +5 -0
  309. package/lib/types/gir-var-args.js +2 -0
  310. package/lib/types/gir-var-args.js.map +1 -0
  311. package/lib/types/gir-virtual-method.d.ts +10 -0
  312. package/lib/types/gir-virtual-method.js +2 -0
  313. package/lib/types/gir-virtual-method.js.map +1 -0
  314. package/lib/types/index.d.ts +120 -0
  315. package/lib/types/index.js +121 -0
  316. package/lib/types/index.js.map +1 -0
  317. package/lib/types/inheritance-table.d.ts +3 -0
  318. package/lib/types/inheritance-table.js +2 -0
  319. package/lib/types/inheritance-table.js.map +1 -0
  320. package/lib/types/injection-callback.d.ts +16 -0
  321. package/lib/types/injection-callback.js +2 -0
  322. package/lib/types/injection-callback.js.map +1 -0
  323. package/lib/types/injection-class.d.ts +25 -0
  324. package/lib/types/injection-class.js +2 -0
  325. package/lib/types/injection-class.js.map +1 -0
  326. package/lib/types/injection-function.d.ts +7 -0
  327. package/lib/types/injection-function.js +2 -0
  328. package/lib/types/injection-function.js.map +1 -0
  329. package/lib/types/injection-generic-parameter.d.ts +2 -0
  330. package/lib/types/injection-generic-parameter.js +2 -0
  331. package/lib/types/injection-generic-parameter.js.map +1 -0
  332. package/lib/types/injection-instance-parameter.d.ts +2 -0
  333. package/lib/types/injection-instance-parameter.js +2 -0
  334. package/lib/types/injection-instance-parameter.js.map +1 -0
  335. package/lib/types/injection-parameter.d.ts +8 -0
  336. package/lib/types/injection-parameter.js +2 -0
  337. package/lib/types/injection-parameter.js.map +1 -0
  338. package/lib/types/injection-property.d.ts +4 -0
  339. package/lib/types/injection-property.js +2 -0
  340. package/lib/types/injection-property.js.map +1 -0
  341. package/lib/types/injection-type.d.ts +2 -0
  342. package/lib/types/injection-type.js +2 -0
  343. package/lib/types/injection-type.js.map +1 -0
  344. package/lib/types/injection.d.ts +5 -0
  345. package/lib/types/injection.js +2 -0
  346. package/lib/types/injection.js.map +1 -0
  347. package/lib/types/local-name-check.d.ts +4 -0
  348. package/lib/types/local-name-check.js +2 -0
  349. package/lib/types/local-name-check.js.map +1 -0
  350. package/lib/types/local-name-type.d.ts +1 -0
  351. package/lib/types/local-name-type.js +2 -0
  352. package/lib/types/local-name-type.js.map +1 -0
  353. package/lib/types/local-name.d.ts +7 -0
  354. package/lib/types/local-name.js +2 -0
  355. package/lib/types/local-name.js.map +1 -0
  356. package/lib/types/local-names.d.ts +4 -0
  357. package/lib/types/local-names.js +2 -0
  358. package/lib/types/local-names.js.map +1 -0
  359. package/lib/types/module-type.d.ts +1 -0
  360. package/lib/types/module-type.js +2 -0
  361. package/lib/types/module-type.js.map +1 -0
  362. package/lib/types/parsed-gir.d.ts +4 -0
  363. package/lib/types/parsed-gir.js +2 -0
  364. package/lib/types/parsed-gir.js.map +1 -0
  365. package/lib/types/part-of-class.d.ts +7 -0
  366. package/lib/types/part-of-class.js +2 -0
  367. package/lib/types/part-of-class.js.map +1 -0
  368. package/lib/types/part-of-module.d.ts +6 -0
  369. package/lib/types/part-of-module.js +2 -0
  370. package/lib/types/part-of-module.js.map +1 -0
  371. package/lib/types/promisify-func.d.ts +7 -0
  372. package/lib/types/promisify-func.js +2 -0
  373. package/lib/types/promisify-func.js.map +1 -0
  374. package/lib/types/resolve-type.d.ts +4 -0
  375. package/lib/types/resolve-type.js +6 -0
  376. package/lib/types/resolve-type.js.map +1 -0
  377. package/lib/types/sym-table-items.d.ts +4 -0
  378. package/lib/types/sym-table-items.js +2 -0
  379. package/lib/types/sym-table-items.js.map +1 -0
  380. package/lib/types/transformation-case.d.ts +1 -0
  381. package/lib/types/transformation-case.js +2 -0
  382. package/lib/types/transformation-case.js.map +1 -0
  383. package/lib/types/transformations.d.ts +11 -0
  384. package/lib/types/transformations.js +2 -0
  385. package/lib/types/transformations.js.map +1 -0
  386. package/lib/types/ts-alias.d.ts +10 -0
  387. package/lib/types/ts-alias.js +2 -0
  388. package/lib/types/ts-alias.js.map +1 -0
  389. package/lib/types/ts-callback-interface.d.ts +10 -0
  390. package/lib/types/ts-callback-interface.js +2 -0
  391. package/lib/types/ts-callback-interface.js.map +1 -0
  392. package/lib/types/ts-callback.d.ts +17 -0
  393. package/lib/types/ts-callback.js +2 -0
  394. package/lib/types/ts-callback.js.map +1 -0
  395. package/lib/types/ts-class.d.ts +85 -0
  396. package/lib/types/ts-class.js +2 -0
  397. package/lib/types/ts-class.js.map +1 -0
  398. package/lib/types/ts-doc-tag.d.ts +21 -0
  399. package/lib/types/ts-doc-tag.js +2 -0
  400. package/lib/types/ts-doc-tag.js.map +1 -0
  401. package/lib/types/ts-doc.d.ts +16 -0
  402. package/lib/types/ts-doc.js +2 -0
  403. package/lib/types/ts-doc.js.map +1 -0
  404. package/lib/types/ts-enum.d.ts +12 -0
  405. package/lib/types/ts-enum.js +2 -0
  406. package/lib/types/ts-enum.js.map +1 -0
  407. package/lib/types/ts-function.d.ts +55 -0
  408. package/lib/types/ts-function.js +2 -0
  409. package/lib/types/ts-function.js.map +1 -0
  410. package/lib/types/ts-generic-parameter.d.ts +8 -0
  411. package/lib/types/ts-generic-parameter.js +2 -0
  412. package/lib/types/ts-generic-parameter.js.map +1 -0
  413. package/lib/types/ts-instance-parameter.d.ts +4 -0
  414. package/lib/types/ts-instance-parameter.js +2 -0
  415. package/lib/types/ts-instance-parameter.js.map +1 -0
  416. package/lib/types/ts-member.d.ts +10 -0
  417. package/lib/types/ts-member.js +2 -0
  418. package/lib/types/ts-member.js.map +1 -0
  419. package/lib/types/ts-method.d.ts +5 -0
  420. package/lib/types/ts-method.js +2 -0
  421. package/lib/types/ts-method.js.map +1 -0
  422. package/lib/types/ts-parameter.d.ts +15 -0
  423. package/lib/types/ts-parameter.js +2 -0
  424. package/lib/types/ts-parameter.js.map +1 -0
  425. package/lib/types/ts-property.d.ts +17 -0
  426. package/lib/types/ts-property.js +2 -0
  427. package/lib/types/ts-property.js.map +1 -0
  428. package/lib/types/ts-signal.d.ts +17 -0
  429. package/lib/types/ts-signal.js +2 -0
  430. package/lib/types/ts-signal.js.map +1 -0
  431. package/lib/types/ts-type-name.d.ts +1 -0
  432. package/lib/types/ts-type-name.js +2 -0
  433. package/lib/types/ts-type-name.js.map +1 -0
  434. package/lib/types/ts-type-separator.d.ts +1 -0
  435. package/lib/types/ts-type-separator.js +2 -0
  436. package/lib/types/ts-type-separator.js.map +1 -0
  437. package/lib/types/ts-type.d.ts +26 -0
  438. package/lib/types/ts-type.js +2 -0
  439. package/lib/types/ts-type.js.map +1 -0
  440. package/lib/types/ts-var.d.ts +17 -0
  441. package/lib/types/ts-var.js +2 -0
  442. package/lib/types/ts-var.js.map +1 -0
  443. package/lib/types/type-gir-alias.d.ts +2 -0
  444. package/lib/types/type-gir-alias.js +2 -0
  445. package/lib/types/type-gir-alias.js.map +1 -0
  446. package/lib/types/type-gir-class.d.ts +2 -0
  447. package/lib/types/type-gir-class.js +2 -0
  448. package/lib/types/type-gir-class.js.map +1 -0
  449. package/lib/types/type-gir-element.d.ts +3 -0
  450. package/lib/types/type-gir-element.js +2 -0
  451. package/lib/types/type-gir-element.js.map +1 -0
  452. package/lib/types/type-gir-enumeration-member.d.ts +2 -0
  453. package/lib/types/type-gir-enumeration-member.js +2 -0
  454. package/lib/types/type-gir-enumeration-member.js.map +1 -0
  455. package/lib/types/type-gir-enumeration.d.ts +2 -0
  456. package/lib/types/type-gir-enumeration.js +2 -0
  457. package/lib/types/type-gir-enumeration.js.map +1 -0
  458. package/lib/types/type-gir-function.d.ts +1 -0
  459. package/lib/types/type-gir-function.js +2 -0
  460. package/lib/types/type-gir-function.js.map +1 -0
  461. package/lib/types/type-gir-interface.d.ts +2 -0
  462. package/lib/types/type-gir-interface.js +2 -0
  463. package/lib/types/type-gir-interface.js.map +1 -0
  464. package/lib/types/type-gir-method.d.ts +2 -0
  465. package/lib/types/type-gir-method.js +2 -0
  466. package/lib/types/type-gir-method.js.map +1 -0
  467. package/lib/types/type-gir-parameter.d.ts +1 -0
  468. package/lib/types/type-gir-parameter.js +2 -0
  469. package/lib/types/type-gir-parameter.js.map +1 -0
  470. package/lib/types/type-gir-property.d.ts +2 -0
  471. package/lib/types/type-gir-property.js +2 -0
  472. package/lib/types/type-gir-property.js.map +1 -0
  473. package/lib/types/type-gir-variable.d.ts +1 -0
  474. package/lib/types/type-gir-variable.js +2 -0
  475. package/lib/types/type-gir-variable.js.map +1 -0
  476. package/lib/types/type-ts-element.d.ts +3 -0
  477. package/lib/types/type-ts-element.js +2 -0
  478. package/lib/types/type-ts-element.js.map +1 -0
  479. package/lib/types/type-ts-enumeration-member.d.ts +2 -0
  480. package/lib/types/type-ts-enumeration-member.js +2 -0
  481. package/lib/types/type-ts-enumeration-member.js.map +1 -0
  482. package/lib/types/type-ts-function.d.ts +1 -0
  483. package/lib/types/type-ts-function.js +2 -0
  484. package/lib/types/type-ts-function.js.map +1 -0
  485. package/lib/types/type-ts-property.d.ts +1 -0
  486. package/lib/types/type-ts-property.js +2 -0
  487. package/lib/types/type-ts-property.js.map +1 -0
  488. package/lib/types/user-config-load-result.d.ts +6 -0
  489. package/lib/types/user-config-load-result.js +2 -0
  490. package/lib/types/user-config-load-result.js.map +1 -0
  491. package/lib/types/user-config.d.ts +42 -0
  492. package/lib/types/user-config.js +2 -0
  493. package/lib/types/user-config.js.map +1 -0
  494. package/lib/utils.d.ts +292 -0
  495. package/lib/utils.js +403 -0
  496. package/lib/utils.js.map +1 -0
  497. package/package.json +89 -0
  498. package/src/commands/doc.ts +65 -0
  499. package/src/commands/generate.ts +88 -0
  500. package/src/commands/index.ts +3 -0
  501. package/src/commands/list.ts +96 -0
  502. package/src/config.ts +528 -0
  503. package/src/conflict-resolver.ts +1358 -0
  504. package/src/constants.ts +29 -0
  505. package/src/dependency-manager.ts +91 -0
  506. package/src/generation-handler.ts +79 -0
  507. package/src/generator.ts +10 -0
  508. package/src/gir-factory.ts +526 -0
  509. package/src/gir-module.ts +2953 -0
  510. package/src/html-doc-generator.ts +23 -0
  511. package/src/index.ts +17 -0
  512. package/src/injection/callbacks/gjs/Gio-2.0.ts +37 -0
  513. package/src/injection/callbacks/gjs/index.ts +5 -0
  514. package/src/injection/callbacks/index.ts +6 -0
  515. package/src/injection/callbacks/node-gtk/index.ts +3 -0
  516. package/src/injection/classes/GLib-2-0.ts +36 -0
  517. package/src/injection/classes/gjs/GLib-2.0.ts +206 -0
  518. package/src/injection/classes/gjs/GObject-2.0.ts +635 -0
  519. package/src/injection/classes/gjs/Gio-2.0.ts +219 -0
  520. package/src/injection/classes/gjs/index.ts +7 -0
  521. package/src/injection/classes/index.ts +7 -0
  522. package/src/injection/classes/node-gtk/GLib-2.0.ts +20 -0
  523. package/src/injection/classes/node-gtk/GObject-2.0.ts +67 -0
  524. package/src/injection/classes/node-gtk/Gdk-4.0.ts +33 -0
  525. package/src/injection/classes/node-gtk/Gio-2.0.ts +15 -0
  526. package/src/injection/classes/node-gtk/Graphene-1.0.ts +134 -0
  527. package/src/injection/classes/node-gtk/Gtk-3.0.ts +32 -0
  528. package/src/injection/classes/node-gtk/Gtk-4.0.ts +53 -0
  529. package/src/injection/classes/node-gtk/Pango-1.0.ts +32 -0
  530. package/src/injection/classes/node-gtk/index.ts +21 -0
  531. package/src/injection/index.ts +3 -0
  532. package/src/injection/injector.ts +184 -0
  533. package/src/logger.ts +134 -0
  534. package/src/messages.ts +69 -0
  535. package/src/module-loader.ts +576 -0
  536. package/src/start.ts +16 -0
  537. package/src/symtable.ts +72 -0
  538. package/src/template-processor.ts +199 -0
  539. package/src/transformation.ts +584 -0
  540. package/src/type-definition-generator.ts +1467 -0
  541. package/src/types/answer-version.ts +4 -0
  542. package/src/types/build-type.ts +1 -0
  543. package/src/types/class-parent.ts +14 -0
  544. package/src/types/config-flags.ts +5 -0
  545. package/src/types/conflict-child-element.ts +11 -0
  546. package/src/types/conflict-grouped-element.ts +7 -0
  547. package/src/types/conflict-grouped-elements.ts +5 -0
  548. package/src/types/construct-name.ts +11 -0
  549. package/src/types/dependency-map.ts +4 -0
  550. package/src/types/dependency.ts +16 -0
  551. package/src/types/environment.ts +1 -0
  552. package/src/types/file-info.ts +14 -0
  553. package/src/types/generate-config.ts +35 -0
  554. package/src/types/generator-type.ts +4 -0
  555. package/src/types/gir-alias-element.ts +15 -0
  556. package/src/types/gir-annotation.ts +10 -0
  557. package/src/types/gir-any-element.ts +35 -0
  558. package/src/types/gir-any-type.ts +7 -0
  559. package/src/types/gir-array-type.ts +23 -0
  560. package/src/types/gir-bitfield-element.ts +20 -0
  561. package/src/types/gir-boolean.ts +1 -0
  562. package/src/types/gir-boxed-element.ts +19 -0
  563. package/src/types/gir-c-include.ts +7 -0
  564. package/src/types/gir-callable-attrs.ts +19 -0
  565. package/src/types/gir-callable-param-element.ts +45 -0
  566. package/src/types/gir-callable-param.ts +9 -0
  567. package/src/types/gir-callable-return.ts +25 -0
  568. package/src/types/gir-callback-element.ts +28 -0
  569. package/src/types/gir-class-element.ts +71 -0
  570. package/src/types/gir-constant-element.ts +17 -0
  571. package/src/types/gir-constructor-element.ts +18 -0
  572. package/src/types/gir-direction.ts +5 -0
  573. package/src/types/gir-doc-element.ts +73 -0
  574. package/src/types/gir-enum-element.ts +28 -0
  575. package/src/types/gir-field-element.ts +31 -0
  576. package/src/types/gir-function-element.ts +19 -0
  577. package/src/types/gir-implements.ts +9 -0
  578. package/src/types/gir-include.ts +9 -0
  579. package/src/types/gir-info-attrs.ts +16 -0
  580. package/src/types/gir-info-elements.ts +8 -0
  581. package/src/types/gir-instance-parameter.ts +25 -0
  582. package/src/types/gir-interface-element.ts +53 -0
  583. package/src/types/gir-member-element.ts +19 -0
  584. package/src/types/gir-method-element.ts +25 -0
  585. package/src/types/gir-module-resolved-by.ts +11 -0
  586. package/src/types/gir-modules-grouped-map.ts +5 -0
  587. package/src/types/gir-modules-grouped.ts +13 -0
  588. package/src/types/gir-namespace.ts +47 -0
  589. package/src/types/gir-package.ts +7 -0
  590. package/src/types/gir-prerequisite.ts +5 -0
  591. package/src/types/gir-property-element.ts +31 -0
  592. package/src/types/gir-record-element.ts +47 -0
  593. package/src/types/gir-repository.ts +20 -0
  594. package/src/types/gir-signal.ts +43 -0
  595. package/src/types/gir-transfer-ownership-type.ts +5 -0
  596. package/src/types/gir-transfer-ownership.ts +6 -0
  597. package/src/types/gir-type.ts +16 -0
  598. package/src/types/gir-union-element.ts +35 -0
  599. package/src/types/gir-unparsed-number.ts +2 -0
  600. package/src/types/gir-var-args.ts +6 -0
  601. package/src/types/gir-virtual-method.ts +22 -0
  602. package/src/types/index.ts +120 -0
  603. package/src/types/inheritance-table.ts +3 -0
  604. package/src/types/injection-callback.ts +20 -0
  605. package/src/types/injection-class.ts +30 -0
  606. package/src/types/injection-function.ts +31 -0
  607. package/src/types/injection-generic-parameter.ts +3 -0
  608. package/src/types/injection-instance-parameter.ts +3 -0
  609. package/src/types/injection-parameter.ts +9 -0
  610. package/src/types/injection-property.ts +7 -0
  611. package/src/types/injection-type.ts +3 -0
  612. package/src/types/injection.ts +6 -0
  613. package/src/types/local-name-check.ts +5 -0
  614. package/src/types/local-name-type.ts +1 -0
  615. package/src/types/local-name.ts +8 -0
  616. package/src/types/local-names.ts +5 -0
  617. package/src/types/module-type.ts +1 -0
  618. package/src/types/parsed-gir.ts +5 -0
  619. package/src/types/part-of-class.ts +9 -0
  620. package/src/types/part-of-module.ts +8 -0
  621. package/src/types/promisify-func.ts +9 -0
  622. package/src/types/resolve-type.ts +4 -0
  623. package/src/types/sym-table-items.ts +5 -0
  624. package/src/types/transformation-case.ts +7 -0
  625. package/src/types/transformations.ts +12 -0
  626. package/src/types/ts-alias.ts +11 -0
  627. package/src/types/ts-callback-interface.ts +11 -0
  628. package/src/types/ts-callback.ts +21 -0
  629. package/src/types/ts-class.ts +109 -0
  630. package/src/types/ts-doc-tag.ts +23 -0
  631. package/src/types/ts-doc.ts +18 -0
  632. package/src/types/ts-enum.ts +15 -0
  633. package/src/types/ts-function.ts +70 -0
  634. package/src/types/ts-generic-parameter.ts +8 -0
  635. package/src/types/ts-instance-parameter.ts +4 -0
  636. package/src/types/ts-member.ts +11 -0
  637. package/src/types/ts-method.ts +6 -0
  638. package/src/types/ts-parameter.ts +20 -0
  639. package/src/types/ts-property.ts +22 -0
  640. package/src/types/ts-signal.ts +21 -0
  641. package/src/types/ts-type-name.ts +1 -0
  642. package/src/types/ts-type-separator.ts +1 -0
  643. package/src/types/ts-type.ts +28 -0
  644. package/src/types/ts-var.ts +21 -0
  645. package/src/types/type-gir-alias.ts +2 -0
  646. package/src/types/type-gir-class.ts +2 -0
  647. package/src/types/type-gir-element.ts +25 -0
  648. package/src/types/type-gir-enumeration-member.ts +2 -0
  649. package/src/types/type-gir-enumeration.ts +2 -0
  650. package/src/types/type-gir-function.ts +8 -0
  651. package/src/types/type-gir-interface.ts +2 -0
  652. package/src/types/type-gir-method.ts +2 -0
  653. package/src/types/type-gir-parameter.ts +1 -0
  654. package/src/types/type-gir-property.ts +2 -0
  655. package/src/types/type-gir-variable.ts +1 -0
  656. package/src/types/type-ts-element.ts +13 -0
  657. package/src/types/type-ts-enumeration-member.ts +2 -0
  658. package/src/types/type-ts-function.ts +1 -0
  659. package/src/types/type-ts-property.ts +1 -0
  660. package/src/types/user-config-load-result.ts +6 -0
  661. package/src/types/user-config.ts +43 -0
  662. package/src/utils.ts +433 -0
  663. package/templates/Cogl-2.0.d.ts +0 -0
  664. package/templates/Gjs/GObject-2.0.d.ts +238 -0
  665. package/templates/Gjs/Gio-2.0.d.ts +101 -0
  666. package/templates/Gjs/Gjs.d.ts +204 -0
  667. package/templates/Gjs/Gjs.js +21 -0
  668. package/templates/Gjs/GnomeShell.d.ts +154 -0
  669. package/templates/Gjs/GnomeShell.js +10 -0
  670. package/templates/Gjs/index.d.ts +594 -0
  671. package/templates/Gjs/index.js +4 -0
  672. package/templates/Gjs/misc/dbusUtils.d.ts +15 -0
  673. package/templates/Gjs/misc/dbusUtils.js +6 -0
  674. package/templates/Gjs/misc/extensionUtils.d.ts +99 -0
  675. package/templates/Gjs/misc/extensionUtils.js +6 -0
  676. package/templates/Gjs/misc/fileUtils.d.ts +51 -0
  677. package/templates/Gjs/misc/fileUtils.js +6 -0
  678. package/templates/Gjs/misc/gnomeSession.d.ts +74 -0
  679. package/templates/Gjs/misc/gnomeSession.js +6 -0
  680. package/templates/Gjs/misc/parentalControlsManager.d.ts +42 -0
  681. package/templates/Gjs/misc/parentalControlsManager.js +6 -0
  682. package/templates/Gjs/misc/signals.d.ts +15 -0
  683. package/templates/Gjs/misc/signals.js +6 -0
  684. package/templates/Gjs/module.d.ts +6 -0
  685. package/templates/Gjs/module.js +16 -0
  686. package/templates/Gjs/tsconfig.alias.json +10 -0
  687. package/templates/Gjs/ui/accessDialog.d.ts +19 -0
  688. package/templates/Gjs/ui/accessDialog.js +6 -0
  689. package/templates/Gjs/ui/altTab.d.ts +124 -0
  690. package/templates/Gjs/ui/altTab.js +6 -0
  691. package/templates/Gjs/ui/animation.d.ts +58 -0
  692. package/templates/Gjs/ui/animation.js +6 -0
  693. package/templates/Gjs/ui/appDisplay.d.ts +204 -0
  694. package/templates/Gjs/ui/appDisplay.js +6 -0
  695. package/templates/Gjs/ui/appFavorites.d.ts +34 -0
  696. package/templates/Gjs/ui/appFavorites.js +6 -0
  697. package/templates/Gjs/ui/appMenu.d.ts +74 -0
  698. package/templates/Gjs/ui/appMenu.js +6 -0
  699. package/templates/Gjs/ui/audioDeviceSelection.d.ts +51 -0
  700. package/templates/Gjs/ui/audioDeviceSelection.js +6 -0
  701. package/templates/Gjs/ui/background.d.ts +255 -0
  702. package/templates/Gjs/ui/background.js +5 -0
  703. package/templates/Gjs/ui/backgroundMenu.d.ts +19 -0
  704. package/templates/Gjs/ui/backgroundMenu.js +5 -0
  705. package/templates/Gjs/ui/barLevel.d.ts +42 -0
  706. package/templates/Gjs/ui/barLevel.js +5 -0
  707. package/templates/Gjs/ui/boxpointer.d.ts +103 -0
  708. package/templates/Gjs/ui/boxpointer.js +5 -0
  709. package/templates/Gjs/ui/calendar.d.ts +261 -0
  710. package/templates/Gjs/ui/calendar.js +5 -0
  711. package/templates/Gjs/ui/checkBox.d.ts +22 -0
  712. package/templates/Gjs/ui/checkBox.js +5 -0
  713. package/templates/Gjs/ui/closeDialog.d.ts +40 -0
  714. package/templates/Gjs/ui/closeDialog.js +5 -0
  715. package/templates/Gjs/ui/components/__init__.d.ts +9 -0
  716. package/templates/Gjs/ui/components/__init__.js +6 -0
  717. package/templates/Gjs/ui/components/automountManager.d.ts +8 -0
  718. package/templates/Gjs/ui/components/automountManager.js +6 -0
  719. package/templates/Gjs/ui/components/autorunManager.d.ts +8 -0
  720. package/templates/Gjs/ui/components/autorunManager.js +6 -0
  721. package/templates/Gjs/ui/components/index.d.ts +6 -0
  722. package/templates/Gjs/ui/components/index.js +6 -0
  723. package/templates/Gjs/ui/components/keyring.d.ts +19 -0
  724. package/templates/Gjs/ui/components/keyring.js +6 -0
  725. package/templates/Gjs/ui/components/networkAgent.d.ts +10 -0
  726. package/templates/Gjs/ui/components/networkAgent.js +6 -0
  727. package/templates/Gjs/ui/components/polkitAgent.d.ts +19 -0
  728. package/templates/Gjs/ui/components/polkitAgent.js +6 -0
  729. package/templates/Gjs/ui/components/telepathyClient.d.ts +10 -0
  730. package/templates/Gjs/ui/components/telepathyClient.js +6 -0
  731. package/templates/Gjs/ui/dialog.d.ts +78 -0
  732. package/templates/Gjs/ui/dialog.js +6 -0
  733. package/templates/Gjs/ui/dnd.d.ts +127 -0
  734. package/templates/Gjs/ui/dnd.js +6 -0
  735. package/templates/Gjs/ui/iconGrid.d.ts +172 -0
  736. package/templates/Gjs/ui/iconGrid.js +6 -0
  737. package/templates/Gjs/ui/layout.d.ts +311 -0
  738. package/templates/Gjs/ui/layout.js +6 -0
  739. package/templates/Gjs/ui/main.d.ts +215 -0
  740. package/templates/Gjs/ui/main.js +6 -0
  741. package/templates/Gjs/ui/messageList.d.ts +113 -0
  742. package/templates/Gjs/ui/messageList.js +6 -0
  743. package/templates/Gjs/ui/messageTray.d.ts +423 -0
  744. package/templates/Gjs/ui/messageTray.js +6 -0
  745. package/templates/Gjs/ui/modalDialog.d.ts +96 -0
  746. package/templates/Gjs/ui/modalDialog.js +6 -0
  747. package/templates/Gjs/ui/mpris.d.ts +78 -0
  748. package/templates/Gjs/ui/mpris.js +6 -0
  749. package/templates/Gjs/ui/notificationDaemon.d.ts +5 -0
  750. package/templates/Gjs/ui/notificationDaemon.js +6 -0
  751. package/templates/Gjs/ui/panel.d.ts +65 -0
  752. package/templates/Gjs/ui/panel.js +6 -0
  753. package/templates/Gjs/ui/panelMenu.d.ts +51 -0
  754. package/templates/Gjs/ui/panelMenu.js +6 -0
  755. package/templates/Gjs/ui/popupMenu.d.ts +228 -0
  756. package/templates/Gjs/ui/popupMenu.js +6 -0
  757. package/templates/Gjs/ui/ripples.d.ts +44 -0
  758. package/templates/Gjs/ui/ripples.js +6 -0
  759. package/templates/Gjs/ui/search.d.ts +158 -0
  760. package/templates/Gjs/ui/search.js +6 -0
  761. package/templates/Gjs/ui/switcherPopup.d.ts +107 -0
  762. package/templates/Gjs/ui/switcherPopup.js +6 -0
  763. package/templates/Gjs/ui/userWidget.d.ts +13 -0
  764. package/templates/Gjs/ui/userWidget.js +6 -0
  765. package/templates/Granite-1.0.d.ts +7 -0
  766. package/templates/Granite-7.0.d.ts +7 -0
  767. package/templates/GstBase-0.10.d.ts +5 -0
  768. package/templates/RygelServer-2.6.d.ts +3 -0
  769. package/templates/node-gtk/GObject-2.0.d.ts +57 -0
  770. package/templates/node-gtk/index.d.ts +40 -0
  771. package/templates/node-gtk/index.js +9 -0
  772. package/templates/node-gtk/module.d.ts +6 -0
  773. package/templates/node-gtk/module.js +17 -0
package/lib/utils.d.ts ADDED
@@ -0,0 +1,292 @@
1
+ import lodash from 'lodash';
2
+ import { Environment, GirInfoAttrs, TsType, FileInfo } from './types/index.js';
3
+ import { inspect } from 'util';
4
+ export { inspect };
5
+ /**
6
+ * Performs a deep comparison between two values to determine if they are
7
+ * equivalent.
8
+ *
9
+ * **Note:** This method supports comparing arrays, array buffers, booleans,
10
+ * date objects, error objects, maps, numbers, `Object` objects, regexes,
11
+ * sets, strings, symbols, and typed arrays. `Object` objects are compared
12
+ * by their own, not inherited, enumerable properties. Functions and DOM
13
+ * nodes are **not** supported.
14
+ *
15
+ * @category Lang
16
+ * @param value The value to compare.
17
+ * @param other The other value to compare.
18
+ * @returns Returns `true` if the values are equivalent, else `false`.
19
+ * @example
20
+ *
21
+ * var object = { 'user': 'fred' };
22
+ * var other = { 'user': 'fred' };
23
+ *
24
+ * _.isEqual(object, other);
25
+ * // => true
26
+ *
27
+ * object === other;
28
+ * // => false
29
+ */
30
+ export declare const isEqual: (value: any, other: any) => boolean;
31
+ /**
32
+ * Creates an array of values by running each element in collection through iteratee. The iteratee is
33
+ * invoked with three arguments: (value, index|key, collection).
34
+ *
35
+ * Many lodash methods are guarded to work as iteratees for methods like _.every, _.filter, _.map, _.mapValues,
36
+ * _.reject, and _.some.
37
+ *
38
+ * The guarded methods are:
39
+ * ary, callback, chunk, clone, create, curry, curryRight, drop, dropRight, every, fill, flatten, invert, max,
40
+ * min, parseInt, slice, sortBy, take, takeRight, template, trim, trimLeft, trimRight, trunc, random, range,
41
+ * sample, some, sum, uniq, and words
42
+ *
43
+ * @param collection The collection to iterate over.
44
+ * @param iteratee The function invoked per iteration.
45
+ * @return Returns the new mapped array.
46
+ */
47
+ export declare const map: {
48
+ <T, TResult>(collection: T[] | null | undefined, iteratee: lodash.ArrayIterator<T, TResult>): TResult[];
49
+ <T_1, TResult_1>(collection: lodash.List<T_1> | null | undefined, iteratee: lodash.ListIterator<T_1, TResult_1>): TResult_1[];
50
+ <T_2>(collection: lodash.Dictionary<T_2> | lodash.NumericDictionary<T_2> | null | undefined): T_2[];
51
+ <T_3 extends object, TResult_2>(collection: T_3 | null | undefined, iteratee: lodash.ObjectIterator<T_3, TResult_2>): TResult_2[];
52
+ <T_4, K extends keyof T_4>(collection: lodash.Dictionary<T_4> | lodash.NumericDictionary<T_4> | null | undefined, iteratee: K): T_4[K][];
53
+ <T_5>(collection: lodash.Dictionary<T_5> | lodash.NumericDictionary<T_5> | null | undefined, iteratee?: string | undefined): any[];
54
+ <T_6>(collection: lodash.Dictionary<T_6> | lodash.NumericDictionary<T_6> | null | undefined, iteratee?: object | undefined): boolean[];
55
+ };
56
+ /**
57
+ * Iterates over elements of collection, returning the first element predicate returns truthy for.
58
+ * The predicate is invoked with three arguments: (value, index|key, collection).
59
+ *
60
+ * @param collection The collection to search.
61
+ * @param predicate The function invoked per iteration.
62
+ * @param fromIndex The index to search from.
63
+ * @return Returns the matched element, else undefined.
64
+ */
65
+ export declare const find: {
66
+ <T, S extends T>(collection: lodash.List<T> | null | undefined, predicate: lodash.ListIteratorTypeGuard<T, S>, fromIndex?: number | undefined): S | undefined;
67
+ <T_1>(collection: lodash.List<T_1> | null | undefined, predicate?: lodash.ListIterateeCustom<T_1, boolean> | undefined, fromIndex?: number | undefined): T_1 | undefined;
68
+ <T_2 extends object, S_1 extends T_2[keyof T_2]>(collection: T_2 | null | undefined, predicate: lodash.ObjectIteratorTypeGuard<T_2, S_1>, fromIndex?: number | undefined): S_1 | undefined;
69
+ <T_3 extends object>(collection: T_3 | null | undefined, predicate?: lodash.ObjectIterateeCustom<T_3, boolean> | undefined, fromIndex?: number | undefined): T_3[keyof T_3] | undefined;
70
+ };
71
+ /**
72
+ * Recursively merges own and inherited enumerable properties of source
73
+ * objects into the destination object, skipping source properties that resolve
74
+ * to `undefined`. Array and plain object properties are merged recursively.
75
+ * Other objects and value types are overridden by assignment. Source objects
76
+ * are applied from left to right. Subsequent sources overwrite property
77
+ * assignments of previous sources.
78
+ *
79
+ * **Note:** This method mutates `object`.
80
+ *
81
+ * @category Object
82
+ * @param object The destination object.
83
+ * @param [sources] The source objects.
84
+ * @returns Returns `object`.
85
+ * @example
86
+ *
87
+ * var users = {
88
+ * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
89
+ * };
90
+ *
91
+ * var ages = {
92
+ * 'data': [{ 'age': 36 }, { 'age': 40 }]
93
+ * };
94
+ *
95
+ * _.merge(users, ages);
96
+ * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
97
+ */
98
+ export declare const merge: {
99
+ <TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
100
+ <TObject_1, TSource1, TSource2>(object: TObject_1, source1: TSource1, source2: TSource2): TObject_1 & TSource1 & TSource2;
101
+ <TObject_2, TSource1_1, TSource2_1, TSource3>(object: TObject_2, source1: TSource1_1, source2: TSource2_1, source3: TSource3): TObject_2 & TSource1_1 & TSource2_1 & TSource3;
102
+ <TObject_3, TSource1_2, TSource2_2, TSource3_1, TSource4>(object: TObject_3, source1: TSource1_2, source2: TSource2_2, source3: TSource3_1, source4: TSource4): TObject_3 & TSource1_2 & TSource2_2 & TSource3_1 & TSource4;
103
+ (object: any, ...otherArgs: any[]): any;
104
+ };
105
+ /**
106
+ * Creates a shallow clone of value.
107
+ *
108
+ * Note: This method is loosely based on the structured clone algorithm and supports cloning arrays,
109
+ * array buffers, booleans, date objects, maps, numbers, Object objects, regex's, sets, strings, symbols,
110
+ * and typed arrays. The own enumerable properties of arguments objects are cloned as plain objects. An empty
111
+ * object is returned for not cloneable values such as error objects, functions, DOM nodes, and WeakMaps.
112
+ *
113
+ * @param value The value to clone.
114
+ * @return Returns the cloned value.
115
+ */
116
+ export declare const clone: <T>(value: T) => T;
117
+ /**
118
+ * This method is like clone except that it recursively clones value.
119
+ *
120
+ * @param value The value to recursively clone.
121
+ * @return Returns the deep cloned value.
122
+ */
123
+ export declare const cloneDeep: <T>(value: T) => T;
124
+ /**
125
+ * Split a package name into namespace and version
126
+ */
127
+ export declare const splitModuleName: (packageName: string) => {
128
+ packageName: string;
129
+ namespace: string;
130
+ version: string;
131
+ };
132
+ /** Remove namespace prefix */
133
+ export declare const removeNamespace: (type: string, namespace: string) => string;
134
+ /** Remove class module name prefix */
135
+ export declare const removeClassModule: (type: string, namespace: string) => string;
136
+ /**
137
+ * Add namespace prefix
138
+ */
139
+ export declare const addNamespace: (type: string, namespace: string) => string;
140
+ /**
141
+ * Checking whether some variable is iterable
142
+ * @see https://stackoverflow.com/a/32538867
143
+ * @param obj Variable to check for iterable
144
+ * @returns Whether the variable is iterable or not
145
+ */
146
+ export declare const isIterable: (obj: unknown[]) => boolean;
147
+ /**
148
+ * Checking whether a string is numeric
149
+ * @param str The string to check
150
+ * @returns Whether the string is numeric or not
151
+ */
152
+ export declare const isNumeric: (str: string) => boolean;
153
+ /**
154
+ * Get the first character of a string
155
+ * @param str The string to get the first character from
156
+ * @returns The first character
157
+ */
158
+ export declare const getFirstChar: (str: string) => string;
159
+ /**
160
+ * Get the last character of a string
161
+ * @param str The string to get the last character from
162
+ * @returns The last character
163
+ */
164
+ export declare const getLastChar: (str: string) => string;
165
+ /**
166
+ * Check if the first character of a string is numeric
167
+ * @param str The string to check
168
+ * @returns Whether the first character is numeric or not
169
+ */
170
+ export declare const isFirstCharNumeric: (str: string) => boolean;
171
+ /**
172
+ * Convert a string to camelCase
173
+ * @param str The string to convert
174
+ * @returns The converted string
175
+ */
176
+ export declare const camelCase: (str: string) => string;
177
+ /**
178
+ * Convert a string to lowerCamelCase
179
+ * @param str The string to convert
180
+ * @returns The converted string
181
+ */
182
+ export declare const lowerCamelCase: (str: string) => string;
183
+ /**
184
+ * Convert a string to UpperCamelCase
185
+ * @param str The string to convert
186
+ * @returns The converted string
187
+ */
188
+ export declare const upperCamelCase: (str: string) => string;
189
+ /**
190
+ * Find a file in a list of directories
191
+ * @param dirs The directories to search in
192
+ * @param filename The filename to search for
193
+ * @returns The file info
194
+ */
195
+ export declare const findFileInDirs: (dirs: string[], filename: string) => FileInfo;
196
+ /**
197
+ * Union (a ∪ b): create a set that contains the elements of both set a and set b.
198
+ * See https://2ality.com/2015/01/es6-set-operations.html#union
199
+ * @param target
200
+ * @param source
201
+ */
202
+ export declare const union: <T>(target: Set<T> | T[], source: Set<T> | T[]) => Set<T>;
203
+ export declare const stripParamNames: (func: string, ignoreTail?: boolean) => string;
204
+ /**
205
+ * Check if a line is a comment line
206
+ * @param line The line to check
207
+ * @returns Whether the line is a comment line or not
208
+ */
209
+ export declare const isCommentLine: (line: string) => boolean;
210
+ /**
211
+ * Add indents to a string
212
+ * @param indents The number of indents
213
+ * @param spaceForIndent The number of spaces for each indent
214
+ * @returns The indented string
215
+ */
216
+ export declare const generateIndent: (indents?: number, spaceForIndent?: number) => string;
217
+ export declare const __filename: string;
218
+ export declare const __dirname: string;
219
+ /**
220
+ * Get the output or input directory of the environment
221
+ * @param environment The environment to get the directory for
222
+ * @param baseDir The base directory
223
+ * @returns The path to the directory
224
+ */
225
+ export declare const getEnvironmentDir: (environment: Environment, baseDir: string) => string;
226
+ /**
227
+ * Get the destination path for the environment
228
+ * @param environment The environment to get the destination path for
229
+ * @param outputDir The output directory
230
+ * @param parts The path parts
231
+ * @returns The destination path
232
+ */
233
+ export declare const getDestPath: (environment: Environment, outputDir: string, ...parts: string[]) => string;
234
+ /**
235
+ * Convert a GirBoolean to a boolean
236
+ * @param boolStr The GirBoolean string
237
+ * @param defaultVal The default value
238
+ * @returns The boolean value
239
+ */
240
+ export declare const girBool: (boolStr: string | undefined, defaultVal?: boolean) => boolean;
241
+ /**
242
+ * Returns `true` if the definitions in `d1` and `d2` have equivalent signatures
243
+ * @param d1
244
+ * @param d2
245
+ */
246
+ export declare const signaturesMatch: (d1: string, d2: string) => boolean;
247
+ /**
248
+ * GirElements contains an attribute `introspectable`, which is a GirBoolean.
249
+ * If this is attribute is falsy the element is not introspectable,
250
+ * this means doesn't exist in the bindings, due in general to missing information in the annotations in the original C code
251
+ */
252
+ export declare const girElementIsIntrospectable: (girElement?: {
253
+ $: GirInfoAttrs & {
254
+ name: string;
255
+ };
256
+ } | undefined, name?: string) => boolean;
257
+ /**
258
+ * Check if a type is optional
259
+ * @param types The types to check
260
+ * @returns Whether the type is optional or not
261
+ */
262
+ export declare const typeIsOptional: (types: TsType[]) => boolean;
263
+ /**
264
+ * Get a typescript or javascript config by path
265
+ * @param path The path to search for a tsconfig.json or jsconfig.json file
266
+ * @returns The config or null if not found
267
+ */
268
+ export declare const getTsJsConfigByPath: (path: string) => {
269
+ compilerOptions?: import("get-tsconfig").TsConfigJson.CompilerOptions | undefined;
270
+ watchOptions?: import("get-tsconfig").TsConfigJson.WatchOptions | undefined;
271
+ typeAcquisition?: import("get-tsconfig").TsConfigJson.TypeAcquisition | undefined;
272
+ compileOnSave?: boolean | undefined;
273
+ files?: string[] | undefined;
274
+ exclude?: string[] | undefined;
275
+ include?: string[] | undefined;
276
+ references?: import("get-tsconfig").TsConfigJson.References[] | undefined;
277
+ } | null;
278
+ /**
279
+ * Given an directory path search for a tsconfig.json or jsconfig.json file in it or any of its parent directories, then read the file and parse it as json.
280
+ *
281
+ * @param path - The directory path to search for a tsconfig.json or jsconfig.json file
282
+ */
283
+ export declare function readTsJsConfig(path: string): {
284
+ compilerOptions?: import("get-tsconfig").TsConfigJson.CompilerOptions | undefined;
285
+ watchOptions?: import("get-tsconfig").TsConfigJson.WatchOptions | undefined;
286
+ typeAcquisition?: import("get-tsconfig").TsConfigJson.TypeAcquisition | undefined;
287
+ compileOnSave?: boolean | undefined;
288
+ files?: string[] | undefined;
289
+ exclude?: string[] | undefined;
290
+ include?: string[] | undefined;
291
+ references?: import("get-tsconfig").TsConfigJson.References[] | undefined;
292
+ } | null;
package/lib/utils.js ADDED
@@ -0,0 +1,403 @@
1
+ /* eslint-disable @typescript-eslint/unbound-method */
2
+ import lodash from 'lodash';
3
+ import Path from 'path';
4
+ import fs from 'fs';
5
+ import { getTsconfig } from 'get-tsconfig';
6
+ import { fileURLToPath } from 'url';
7
+ import { inspect } from 'util';
8
+ import { Logger } from './logger.js';
9
+ import { COMMENT_REG_EXP, PARAM_REG_EXP, OPT_PARAM_REG_EXP } from './constants.js';
10
+ export { inspect };
11
+ /**
12
+ * Performs a deep comparison between two values to determine if they are
13
+ * equivalent.
14
+ *
15
+ * **Note:** This method supports comparing arrays, array buffers, booleans,
16
+ * date objects, error objects, maps, numbers, `Object` objects, regexes,
17
+ * sets, strings, symbols, and typed arrays. `Object` objects are compared
18
+ * by their own, not inherited, enumerable properties. Functions and DOM
19
+ * nodes are **not** supported.
20
+ *
21
+ * @category Lang
22
+ * @param value The value to compare.
23
+ * @param other The other value to compare.
24
+ * @returns Returns `true` if the values are equivalent, else `false`.
25
+ * @example
26
+ *
27
+ * var object = { 'user': 'fred' };
28
+ * var other = { 'user': 'fred' };
29
+ *
30
+ * _.isEqual(object, other);
31
+ * // => true
32
+ *
33
+ * object === other;
34
+ * // => false
35
+ */
36
+ export const isEqual = lodash.isEqual;
37
+ /**
38
+ * Creates an array of values by running each element in collection through iteratee. The iteratee is
39
+ * invoked with three arguments: (value, index|key, collection).
40
+ *
41
+ * Many lodash methods are guarded to work as iteratees for methods like _.every, _.filter, _.map, _.mapValues,
42
+ * _.reject, and _.some.
43
+ *
44
+ * The guarded methods are:
45
+ * ary, callback, chunk, clone, create, curry, curryRight, drop, dropRight, every, fill, flatten, invert, max,
46
+ * min, parseInt, slice, sortBy, take, takeRight, template, trim, trimLeft, trimRight, trunc, random, range,
47
+ * sample, some, sum, uniq, and words
48
+ *
49
+ * @param collection The collection to iterate over.
50
+ * @param iteratee The function invoked per iteration.
51
+ * @return Returns the new mapped array.
52
+ */
53
+ export const map = lodash.map;
54
+ /**
55
+ * Iterates over elements of collection, returning the first element predicate returns truthy for.
56
+ * The predicate is invoked with three arguments: (value, index|key, collection).
57
+ *
58
+ * @param collection The collection to search.
59
+ * @param predicate The function invoked per iteration.
60
+ * @param fromIndex The index to search from.
61
+ * @return Returns the matched element, else undefined.
62
+ */
63
+ export const find = lodash.find;
64
+ /**
65
+ * Recursively merges own and inherited enumerable properties of source
66
+ * objects into the destination object, skipping source properties that resolve
67
+ * to `undefined`. Array and plain object properties are merged recursively.
68
+ * Other objects and value types are overridden by assignment. Source objects
69
+ * are applied from left to right. Subsequent sources overwrite property
70
+ * assignments of previous sources.
71
+ *
72
+ * **Note:** This method mutates `object`.
73
+ *
74
+ * @category Object
75
+ * @param object The destination object.
76
+ * @param [sources] The source objects.
77
+ * @returns Returns `object`.
78
+ * @example
79
+ *
80
+ * var users = {
81
+ * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
82
+ * };
83
+ *
84
+ * var ages = {
85
+ * 'data': [{ 'age': 36 }, { 'age': 40 }]
86
+ * };
87
+ *
88
+ * _.merge(users, ages);
89
+ * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
90
+ */
91
+ export const merge = lodash.merge;
92
+ /**
93
+ * Creates a shallow clone of value.
94
+ *
95
+ * Note: This method is loosely based on the structured clone algorithm and supports cloning arrays,
96
+ * array buffers, booleans, date objects, maps, numbers, Object objects, regex's, sets, strings, symbols,
97
+ * and typed arrays. The own enumerable properties of arguments objects are cloned as plain objects. An empty
98
+ * object is returned for not cloneable values such as error objects, functions, DOM nodes, and WeakMaps.
99
+ *
100
+ * @param value The value to clone.
101
+ * @return Returns the cloned value.
102
+ */
103
+ export const clone = lodash.clone;
104
+ /**
105
+ * This method is like clone except that it recursively clones value.
106
+ *
107
+ * @param value The value to recursively clone.
108
+ * @return Returns the deep cloned value.
109
+ */
110
+ export const cloneDeep = lodash.cloneDeep;
111
+ /**
112
+ * Split a package name into namespace and version
113
+ */
114
+ export const splitModuleName = (packageName) => {
115
+ // There are modules that use multiple hyphens like 'GUPnP-DLNA-1.0'
116
+ const splits = packageName.split('-');
117
+ const version = splits.splice(-1, 1)[0];
118
+ const namespace = splits.join('');
119
+ return {
120
+ packageName,
121
+ namespace,
122
+ version,
123
+ };
124
+ };
125
+ /** Remove namespace prefix */
126
+ export const removeNamespace = (type, namespace) => {
127
+ if (type.startsWith(namespace + '.')) {
128
+ type = type.substring(namespace.length + 1);
129
+ }
130
+ return type;
131
+ };
132
+ /** Remove class module name prefix */
133
+ export const removeClassModule = removeNamespace;
134
+ /**
135
+ * Add namespace prefix
136
+ */
137
+ export const addNamespace = (type, namespace) => {
138
+ if (!type.startsWith(namespace + '.')) {
139
+ type = namespace + '.' + type;
140
+ }
141
+ return type;
142
+ };
143
+ /**
144
+ * Checking whether some variable is iterable
145
+ * @see https://stackoverflow.com/a/32538867
146
+ * @param obj Variable to check for iterable
147
+ * @returns Whether the variable is iterable or not
148
+ */
149
+ export const isIterable = (obj) => {
150
+ return obj != null && typeof obj[Symbol.iterator] === 'function';
151
+ };
152
+ /**
153
+ * Checking whether a string is numeric
154
+ * @param str The string to check
155
+ * @returns Whether the string is numeric or not
156
+ */
157
+ export const isNumeric = (str) => {
158
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
159
+ return !isNaN(str - parseFloat(str));
160
+ };
161
+ /**
162
+ * Get the first character of a string
163
+ * @param str The string to get the first character from
164
+ * @returns The first character
165
+ */
166
+ export const getFirstChar = (str) => {
167
+ return str.charAt(0);
168
+ };
169
+ /**
170
+ * Get the last character of a string
171
+ * @param str The string to get the last character from
172
+ * @returns The last character
173
+ */
174
+ export const getLastChar = (str) => {
175
+ return str.charAt(str.length - 1);
176
+ };
177
+ /**
178
+ * Check if the first character of a string is numeric
179
+ * @param str The string to check
180
+ * @returns Whether the first character is numeric or not
181
+ */
182
+ export const isFirstCharNumeric = (str) => {
183
+ return isNumeric(getFirstChar(str));
184
+ };
185
+ /**
186
+ * Convert a string to camelCase
187
+ * @param str The string to convert
188
+ * @returns The converted string
189
+ */
190
+ export const camelCase = (str) => {
191
+ return str
192
+ .replace(/\s(.)|(\s|-|_|\.)(.)/g, (a) => {
193
+ return a.toUpperCase();
194
+ })
195
+ .replace(/(\s|-|_|\.)/g, '');
196
+ };
197
+ /**
198
+ * Convert a string to lowerCamelCase
199
+ * @param str The string to convert
200
+ * @returns The converted string
201
+ */
202
+ export const lowerCamelCase = (str) => {
203
+ str = camelCase(str);
204
+ str = getFirstChar(str).toLowerCase() + str.slice(1);
205
+ return str;
206
+ };
207
+ /**
208
+ * Convert a string to UpperCamelCase
209
+ * @param str The string to convert
210
+ * @returns The converted string
211
+ */
212
+ export const upperCamelCase = (str) => {
213
+ str = camelCase(str);
214
+ str = getFirstChar(str).toUpperCase() + str.slice(1);
215
+ return str;
216
+ };
217
+ /**
218
+ * Find a file in a list of directories
219
+ * @param dirs The directories to search in
220
+ * @param filename The filename to search for
221
+ * @returns The file info
222
+ */
223
+ export const findFileInDirs = (dirs, filename) => {
224
+ const FileInfo = {
225
+ path: null,
226
+ filename,
227
+ exists: false,
228
+ };
229
+ for (const dir of dirs) {
230
+ const filePath = Path.join(dir, filename);
231
+ FileInfo.exists = fs.existsSync(filePath);
232
+ if (FileInfo.exists) {
233
+ FileInfo.path = filePath;
234
+ return FileInfo;
235
+ }
236
+ }
237
+ return FileInfo;
238
+ };
239
+ /**
240
+ * Union (a ∪ b): create a set that contains the elements of both set a and set b.
241
+ * See https://2ality.com/2015/01/es6-set-operations.html#union
242
+ * @param target
243
+ * @param source
244
+ */
245
+ export const union = (target, source) => {
246
+ return (target = new Set([...target, ...source]));
247
+ };
248
+ export const stripParamNames = (func, ignoreTail = false) => {
249
+ const g = func;
250
+ func = func.replace(COMMENT_REG_EXP, '');
251
+ const lb = func.split('(', 2);
252
+ if (lb.length < 2)
253
+ Logger.error(`Bad function definition ${g}`);
254
+ const rb = lb[1].split(')');
255
+ const tail = ignoreTail ? '' : rb[rb.length - 1];
256
+ let params = rb.slice(0, rb.length - 1).join(')');
257
+ params = params.replace(PARAM_REG_EXP, ':');
258
+ params = params.replace(OPT_PARAM_REG_EXP, '?:');
259
+ return `${lb[0]}(${params})${tail}`;
260
+ };
261
+ /**
262
+ * Check if a line is a comment line
263
+ * @param line The line to check
264
+ * @returns Whether the line is a comment line or not
265
+ */
266
+ export const isCommentLine = (line) => {
267
+ const lineTrim = line.trim();
268
+ return lineTrim.startsWith('//') || (lineTrim.startsWith('/*') && lineTrim.endsWith('*/'));
269
+ };
270
+ /**
271
+ * Add indents to a string
272
+ * @param indents The number of indents
273
+ * @param spaceForIndent The number of spaces for each indent
274
+ * @returns The indented string
275
+ */
276
+ export const generateIndent = (indents = 1, spaceForIndent = 4) => {
277
+ return ' '.repeat(indents * spaceForIndent);
278
+ };
279
+ // Get __filename on ESM
280
+ export const __filename = fileURLToPath(import.meta.url);
281
+ // Get __dirname on ESM
282
+ export const __dirname = Path.dirname(__filename);
283
+ /**
284
+ * Get the output or input directory of the environment
285
+ * @param environment The environment to get the directory for
286
+ * @param baseDir The base directory
287
+ * @returns The path to the directory
288
+ */
289
+ export const getEnvironmentDir = (environment, baseDir) => {
290
+ if (!baseDir.endsWith(environment))
291
+ if (environment === 'gjs' && !baseDir.endsWith('/Gjs')) {
292
+ return Path.join(baseDir, 'Gjs');
293
+ }
294
+ if (environment === 'node' && !baseDir.endsWith('/node-gtk')) {
295
+ return Path.join(baseDir, 'node-gtk');
296
+ }
297
+ return baseDir;
298
+ };
299
+ /**
300
+ * Get the destination path for the environment
301
+ * @param environment The environment to get the destination path for
302
+ * @param outputDir The output directory
303
+ * @param parts The path parts
304
+ * @returns The destination path
305
+ */
306
+ export const getDestPath = (environment, outputDir, ...parts) => {
307
+ const outputEnvDir = getEnvironmentDir(environment, outputDir);
308
+ const destPath = Path.join(outputEnvDir, ...parts);
309
+ return destPath;
310
+ };
311
+ /**
312
+ * Convert a GirBoolean to a boolean
313
+ * @param boolStr The GirBoolean string
314
+ * @param defaultVal The default value
315
+ * @returns The boolean value
316
+ */
317
+ export const girBool = (boolStr, defaultVal = false) => {
318
+ if (boolStr) {
319
+ if (parseInt(boolStr) === 0)
320
+ return false;
321
+ return true;
322
+ }
323
+ return defaultVal;
324
+ };
325
+ /**
326
+ * Returns `true` if the definitions in `d1` and `d2` have equivalent signatures
327
+ * @param d1
328
+ * @param d2
329
+ */
330
+ export const signaturesMatch = (d1, d2) => {
331
+ if (isCommentLine(d1) || isCommentLine(d2))
332
+ return false;
333
+ return stripParamNames(d1) == stripParamNames(d2);
334
+ };
335
+ /**
336
+ * GirElements contains an attribute `introspectable`, which is a GirBoolean.
337
+ * If this is attribute is falsy the element is not introspectable,
338
+ * this means doesn't exist in the bindings, due in general to missing information in the annotations in the original C code
339
+ */
340
+ export const girElementIsIntrospectable = (girElement, name) => {
341
+ if (!girElement) {
342
+ return false;
343
+ }
344
+ name = name || girElement?.$?.name;
345
+ if (!name) {
346
+ return false;
347
+ }
348
+ // Handle introspectable only if the attribute is also present...
349
+ if (girElement.$.hasOwnProperty('introspectable') && girElement.$.introspectable !== undefined) {
350
+ return girBool(girElement.$.introspectable, true);
351
+ }
352
+ // ...otherwise we assume that it is introspectable
353
+ return true;
354
+ };
355
+ /**
356
+ * Check if a type is optional
357
+ * @param types The types to check
358
+ * @returns Whether the type is optional or not
359
+ */
360
+ export const typeIsOptional = (types) => {
361
+ for (const type of types) {
362
+ if (type.optional)
363
+ return true;
364
+ }
365
+ return false;
366
+ };
367
+ /**
368
+ * Get a typescript or javascript config by path
369
+ * @param path The path to search for a tsconfig.json or jsconfig.json file
370
+ * @returns The config or null if not found
371
+ */
372
+ export const getTsJsConfigByPath = (path) => {
373
+ try {
374
+ const config = getTsconfig(path)?.config;
375
+ if (config)
376
+ return config;
377
+ }
378
+ catch {
379
+ // ignored
380
+ }
381
+ return null;
382
+ };
383
+ /**
384
+ * Given an directory path search for a tsconfig.json or jsconfig.json file in it or any of its parent directories, then read the file and parse it as json.
385
+ *
386
+ * @param path - The directory path to search for a tsconfig.json or jsconfig.json file
387
+ */
388
+ export function readTsJsConfig(path) {
389
+ let config = null;
390
+ let lastPath = '';
391
+ let currentPath = Path.resolve(path);
392
+ while (!config && currentPath !== lastPath) {
393
+ const tsConfigPath = Path.join(currentPath, 'tsconfig.json');
394
+ const jsConfigPath = Path.join(currentPath, 'jsconfig.json');
395
+ config =
396
+ (fs.existsSync(tsConfigPath) && getTsJsConfigByPath(tsConfigPath)) ||
397
+ (fs.existsSync(jsConfigPath) && getTsJsConfigByPath(jsConfigPath));
398
+ lastPath = currentPath;
399
+ currentPath = Path.dirname(currentPath);
400
+ }
401
+ return config || null;
402
+ }
403
+ //# sourceMappingURL=utils.js.map