@ts-for-gir/lib 3.0.0-beta.11

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 (572) hide show
  1. package/README.md +22 -0
  2. package/lib/conflict-resolver.d.ts +155 -0
  3. package/lib/conflict-resolver.js +1103 -0
  4. package/lib/conflict-resolver.js.map +1 -0
  5. package/lib/constants.d.ts +18 -0
  6. package/lib/constants.js +23 -0
  7. package/lib/constants.js.map +1 -0
  8. package/lib/dependency-manager.d.ts +34 -0
  9. package/lib/dependency-manager.js +78 -0
  10. package/lib/dependency-manager.js.map +1 -0
  11. package/lib/gir-factory.d.ts +52 -0
  12. package/lib/gir-factory.js +376 -0
  13. package/lib/gir-factory.js.map +1 -0
  14. package/lib/gir-module.d.ts +259 -0
  15. package/lib/gir-module.js +2181 -0
  16. package/lib/gir-module.js.map +1 -0
  17. package/lib/index.d.ts +14 -0
  18. package/lib/index.js +15 -0
  19. package/lib/index.js.map +1 -0
  20. package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +2 -0
  21. package/lib/injection/callbacks/gjs/Gio-2.0.js +36 -0
  22. package/lib/injection/callbacks/gjs/Gio-2.0.js.map +1 -0
  23. package/lib/injection/callbacks/gjs/index.d.ts +2 -0
  24. package/lib/injection/callbacks/gjs/index.js +3 -0
  25. package/lib/injection/callbacks/gjs/index.js.map +1 -0
  26. package/lib/injection/callbacks/index.d.ts +4 -0
  27. package/lib/injection/callbacks/index.js +4 -0
  28. package/lib/injection/callbacks/index.js.map +1 -0
  29. package/lib/injection/callbacks/node-gtk/index.d.ts +2 -0
  30. package/lib/injection/callbacks/node-gtk/index.js +2 -0
  31. package/lib/injection/callbacks/node-gtk/index.js.map +1 -0
  32. package/lib/injection/classes/GLib-2-0.d.ts +2 -0
  33. package/lib/injection/classes/GLib-2-0.js +35 -0
  34. package/lib/injection/classes/GLib-2-0.js.map +1 -0
  35. package/lib/injection/classes/gjs/GLib-2.0.d.ts +2 -0
  36. package/lib/injection/classes/gjs/GLib-2.0.js +205 -0
  37. package/lib/injection/classes/gjs/GLib-2.0.js.map +1 -0
  38. package/lib/injection/classes/gjs/GObject-2.0.d.ts +2 -0
  39. package/lib/injection/classes/gjs/GObject-2.0.js +634 -0
  40. package/lib/injection/classes/gjs/GObject-2.0.js.map +1 -0
  41. package/lib/injection/classes/gjs/Gio-2.0.d.ts +5 -0
  42. package/lib/injection/classes/gjs/Gio-2.0.js +218 -0
  43. package/lib/injection/classes/gjs/Gio-2.0.js.map +1 -0
  44. package/lib/injection/classes/gjs/index.d.ts +2 -0
  45. package/lib/injection/classes/gjs/index.js +5 -0
  46. package/lib/injection/classes/gjs/index.js.map +1 -0
  47. package/lib/injection/classes/index.d.ts +4 -0
  48. package/lib/injection/classes/index.js +5 -0
  49. package/lib/injection/classes/index.js.map +1 -0
  50. package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +2 -0
  51. package/lib/injection/classes/node-gtk/GLib-2.0.js +19 -0
  52. package/lib/injection/classes/node-gtk/GLib-2.0.js.map +1 -0
  53. package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +2 -0
  54. package/lib/injection/classes/node-gtk/GObject-2.0.js +66 -0
  55. package/lib/injection/classes/node-gtk/GObject-2.0.js.map +1 -0
  56. package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +2 -0
  57. package/lib/injection/classes/node-gtk/Gdk-4.0.js +32 -0
  58. package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +1 -0
  59. package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +2 -0
  60. package/lib/injection/classes/node-gtk/Gio-2.0.js +14 -0
  61. package/lib/injection/classes/node-gtk/Gio-2.0.js.map +1 -0
  62. package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +2 -0
  63. package/lib/injection/classes/node-gtk/Graphene-1.0.js +133 -0
  64. package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +1 -0
  65. package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +2 -0
  66. package/lib/injection/classes/node-gtk/Gtk-3.0.js +31 -0
  67. package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +1 -0
  68. package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +2 -0
  69. package/lib/injection/classes/node-gtk/Gtk-4.0.js +52 -0
  70. package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +1 -0
  71. package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +2 -0
  72. package/lib/injection/classes/node-gtk/Pango-1.0.js +31 -0
  73. package/lib/injection/classes/node-gtk/Pango-1.0.js.map +1 -0
  74. package/lib/injection/classes/node-gtk/index.d.ts +2 -0
  75. package/lib/injection/classes/node-gtk/index.js +19 -0
  76. package/lib/injection/classes/node-gtk/index.js.map +1 -0
  77. package/lib/injection/index.d.ts +3 -0
  78. package/lib/injection/index.js +4 -0
  79. package/lib/injection/index.js.map +1 -0
  80. package/lib/injection/injector.d.ts +17 -0
  81. package/lib/injection/injector.js +139 -0
  82. package/lib/injection/injector.js.map +1 -0
  83. package/lib/logger.d.ts +36 -0
  84. package/lib/logger.js +137 -0
  85. package/lib/logger.js.map +1 -0
  86. package/lib/messages.d.ts +31 -0
  87. package/lib/messages.js +46 -0
  88. package/lib/messages.js.map +1 -0
  89. package/lib/symtable.d.ts +24 -0
  90. package/lib/symtable.js +63 -0
  91. package/lib/symtable.js.map +1 -0
  92. package/lib/template-processor.d.ts +74 -0
  93. package/lib/template-processor.js +165 -0
  94. package/lib/template-processor.js.map +1 -0
  95. package/lib/transformation.d.ts +156 -0
  96. package/lib/transformation.js +524 -0
  97. package/lib/transformation.js.map +1 -0
  98. package/lib/types/answer-version.d.ts +4 -0
  99. package/lib/types/answer-version.js +2 -0
  100. package/lib/types/answer-version.js.map +1 -0
  101. package/lib/types/build-type.d.ts +1 -0
  102. package/lib/types/build-type.js +2 -0
  103. package/lib/types/build-type.js.map +1 -0
  104. package/lib/types/class-parent.d.ts +13 -0
  105. package/lib/types/class-parent.js +2 -0
  106. package/lib/types/class-parent.js.map +1 -0
  107. package/lib/types/config-flags.d.ts +4 -0
  108. package/lib/types/config-flags.js +2 -0
  109. package/lib/types/config-flags.js.map +1 -0
  110. package/lib/types/conflict-child-element.d.ts +10 -0
  111. package/lib/types/conflict-child-element.js +2 -0
  112. package/lib/types/conflict-child-element.js.map +1 -0
  113. package/lib/types/conflict-grouped-element.d.ts +6 -0
  114. package/lib/types/conflict-grouped-element.js +2 -0
  115. package/lib/types/conflict-grouped-element.js.map +1 -0
  116. package/lib/types/conflict-grouped-elements.d.ts +4 -0
  117. package/lib/types/conflict-grouped-elements.js +2 -0
  118. package/lib/types/conflict-grouped-elements.js.map +1 -0
  119. package/lib/types/construct-name.d.ts +1 -0
  120. package/lib/types/construct-name.js +2 -0
  121. package/lib/types/construct-name.js.map +1 -0
  122. package/lib/types/dependency-map.d.ts +4 -0
  123. package/lib/types/dependency-map.js +2 -0
  124. package/lib/types/dependency-map.js.map +1 -0
  125. package/lib/types/dependency.d.ts +15 -0
  126. package/lib/types/dependency.js +2 -0
  127. package/lib/types/dependency.js.map +1 -0
  128. package/lib/types/environment.d.ts +1 -0
  129. package/lib/types/environment.js +2 -0
  130. package/lib/types/environment.js.map +1 -0
  131. package/lib/types/file-info.d.ts +14 -0
  132. package/lib/types/file-info.js +2 -0
  133. package/lib/types/file-info.js.map +1 -0
  134. package/lib/types/generate-config.d.ts +34 -0
  135. package/lib/types/generate-config.js +2 -0
  136. package/lib/types/generate-config.js.map +1 -0
  137. package/lib/types/gir-alias-element.d.ts +13 -0
  138. package/lib/types/gir-alias-element.js +2 -0
  139. package/lib/types/gir-alias-element.js.map +1 -0
  140. package/lib/types/gir-annotation.d.ts +9 -0
  141. package/lib/types/gir-annotation.js +2 -0
  142. package/lib/types/gir-annotation.js.map +1 -0
  143. package/lib/types/gir-any-element.d.ts +2 -0
  144. package/lib/types/gir-any-element.js +2 -0
  145. package/lib/types/gir-any-element.js.map +1 -0
  146. package/lib/types/gir-any-type.d.ts +5 -0
  147. package/lib/types/gir-any-type.js +2 -0
  148. package/lib/types/gir-any-type.js.map +1 -0
  149. package/lib/types/gir-array-type.d.ts +20 -0
  150. package/lib/types/gir-array-type.js +3 -0
  151. package/lib/types/gir-array-type.js.map +1 -0
  152. package/lib/types/gir-bitfield-element.d.ts +17 -0
  153. package/lib/types/gir-bitfield-element.js +2 -0
  154. package/lib/types/gir-bitfield-element.js.map +1 -0
  155. package/lib/types/gir-boolean.d.ts +1 -0
  156. package/lib/types/gir-boolean.js +2 -0
  157. package/lib/types/gir-boolean.js.map +1 -0
  158. package/lib/types/gir-boxed-element.d.ts +15 -0
  159. package/lib/types/gir-boxed-element.js +2 -0
  160. package/lib/types/gir-boxed-element.js.map +1 -0
  161. package/lib/types/gir-c-include.d.ts +7 -0
  162. package/lib/types/gir-c-include.js +2 -0
  163. package/lib/types/gir-c-include.js.map +1 -0
  164. package/lib/types/gir-callable-attrs.d.ts +15 -0
  165. package/lib/types/gir-callable-attrs.js +3 -0
  166. package/lib/types/gir-callable-attrs.js.map +1 -0
  167. package/lib/types/gir-callable-param-element.d.ts +30 -0
  168. package/lib/types/gir-callable-param-element.js +2 -0
  169. package/lib/types/gir-callable-param-element.js.map +1 -0
  170. package/lib/types/gir-callable-param.d.ts +7 -0
  171. package/lib/types/gir-callable-param.js +2 -0
  172. package/lib/types/gir-callable-param.js.map +1 -0
  173. package/lib/types/gir-callable-return.d.ts +22 -0
  174. package/lib/types/gir-callable-return.js +2 -0
  175. package/lib/types/gir-callable-return.js.map +1 -0
  176. package/lib/types/gir-callback-element.d.ts +15 -0
  177. package/lib/types/gir-callback-element.js +2 -0
  178. package/lib/types/gir-callback-element.js.map +1 -0
  179. package/lib/types/gir-class-element.d.ts +48 -0
  180. package/lib/types/gir-class-element.js +2 -0
  181. package/lib/types/gir-class-element.js.map +1 -0
  182. package/lib/types/gir-constant-element.d.ts +15 -0
  183. package/lib/types/gir-constant-element.js +2 -0
  184. package/lib/types/gir-constant-element.js.map +1 -0
  185. package/lib/types/gir-constructor-element.d.ts +8 -0
  186. package/lib/types/gir-constructor-element.js +2 -0
  187. package/lib/types/gir-constructor-element.js.map +1 -0
  188. package/lib/types/gir-direction.d.ts +5 -0
  189. package/lib/types/gir-direction.js +7 -0
  190. package/lib/types/gir-direction.js.map +1 -0
  191. package/lib/types/gir-doc-element.d.ts +68 -0
  192. package/lib/types/gir-doc-element.js +2 -0
  193. package/lib/types/gir-doc-element.js.map +1 -0
  194. package/lib/types/gir-enum-element.d.ts +19 -0
  195. package/lib/types/gir-enum-element.js +2 -0
  196. package/lib/types/gir-enum-element.js.map +1 -0
  197. package/lib/types/gir-field-element.d.ts +18 -0
  198. package/lib/types/gir-field-element.js +2 -0
  199. package/lib/types/gir-field-element.js.map +1 -0
  200. package/lib/types/gir-function-element.d.ts +8 -0
  201. package/lib/types/gir-function-element.js +2 -0
  202. package/lib/types/gir-function-element.js.map +1 -0
  203. package/lib/types/gir-implements.d.ts +8 -0
  204. package/lib/types/gir-implements.js +2 -0
  205. package/lib/types/gir-implements.js.map +1 -0
  206. package/lib/types/gir-include.d.ts +9 -0
  207. package/lib/types/gir-include.js +2 -0
  208. package/lib/types/gir-include.js.map +1 -0
  209. package/lib/types/gir-info-attrs.d.ts +13 -0
  210. package/lib/types/gir-info-attrs.js +2 -0
  211. package/lib/types/gir-info-attrs.js.map +1 -0
  212. package/lib/types/gir-info-elements.d.ts +5 -0
  213. package/lib/types/gir-info-elements.js +2 -0
  214. package/lib/types/gir-info-elements.js.map +1 -0
  215. package/lib/types/gir-instance-parameter.d.ts +21 -0
  216. package/lib/types/gir-instance-parameter.js +2 -0
  217. package/lib/types/gir-instance-parameter.js.map +1 -0
  218. package/lib/types/gir-interface-element.d.ts +31 -0
  219. package/lib/types/gir-interface-element.js +2 -0
  220. package/lib/types/gir-interface-element.js.map +1 -0
  221. package/lib/types/gir-member-element.d.ts +17 -0
  222. package/lib/types/gir-member-element.js +2 -0
  223. package/lib/types/gir-member-element.js.map +1 -0
  224. package/lib/types/gir-method-element.d.ts +13 -0
  225. package/lib/types/gir-method-element.js +2 -0
  226. package/lib/types/gir-method-element.js.map +1 -0
  227. package/lib/types/gir-module-resolved-by.d.ts +10 -0
  228. package/lib/types/gir-module-resolved-by.js +2 -0
  229. package/lib/types/gir-module-resolved-by.js.map +1 -0
  230. package/lib/types/gir-modules-grouped-map.d.ts +4 -0
  231. package/lib/types/gir-modules-grouped-map.js +2 -0
  232. package/lib/types/gir-modules-grouped-map.js.map +1 -0
  233. package/lib/types/gir-modules-grouped.d.ts +12 -0
  234. package/lib/types/gir-modules-grouped.js +2 -0
  235. package/lib/types/gir-modules-grouped.js.map +1 -0
  236. package/lib/types/gir-namespace.d.ts +30 -0
  237. package/lib/types/gir-namespace.js +2 -0
  238. package/lib/types/gir-namespace.js.map +1 -0
  239. package/lib/types/gir-package.d.ts +7 -0
  240. package/lib/types/gir-package.js +2 -0
  241. package/lib/types/gir-package.js.map +1 -0
  242. package/lib/types/gir-prerequisite.d.ts +5 -0
  243. package/lib/types/gir-prerequisite.js +2 -0
  244. package/lib/types/gir-prerequisite.js.map +1 -0
  245. package/lib/types/gir-property-element.d.ts +21 -0
  246. package/lib/types/gir-property-element.js +2 -0
  247. package/lib/types/gir-property-element.js.map +1 -0
  248. package/lib/types/gir-record-element.d.ts +30 -0
  249. package/lib/types/gir-record-element.js +2 -0
  250. package/lib/types/gir-record-element.js.map +1 -0
  251. package/lib/types/gir-repository.d.ts +16 -0
  252. package/lib/types/gir-repository.js +2 -0
  253. package/lib/types/gir-repository.js.map +1 -0
  254. package/lib/types/gir-signal.d.ts +25 -0
  255. package/lib/types/gir-signal.js +2 -0
  256. package/lib/types/gir-signal.js.map +1 -0
  257. package/lib/types/gir-transfer-ownership-type.d.ts +5 -0
  258. package/lib/types/gir-transfer-ownership-type.js +7 -0
  259. package/lib/types/gir-transfer-ownership-type.js.map +1 -0
  260. package/lib/types/gir-transfer-ownership.d.ts +5 -0
  261. package/lib/types/gir-transfer-ownership.js +2 -0
  262. package/lib/types/gir-transfer-ownership.js.map +1 -0
  263. package/lib/types/gir-type.d.ts +14 -0
  264. package/lib/types/gir-type.js +2 -0
  265. package/lib/types/gir-type.js.map +1 -0
  266. package/lib/types/gir-union-element.d.ts +22 -0
  267. package/lib/types/gir-union-element.js +2 -0
  268. package/lib/types/gir-union-element.js.map +1 -0
  269. package/lib/types/gir-unparsed-number.d.ts +2 -0
  270. package/lib/types/gir-unparsed-number.js +2 -0
  271. package/lib/types/gir-unparsed-number.js.map +1 -0
  272. package/lib/types/gir-var-args.d.ts +5 -0
  273. package/lib/types/gir-var-args.js +2 -0
  274. package/lib/types/gir-var-args.js.map +1 -0
  275. package/lib/types/gir-virtual-method.d.ts +10 -0
  276. package/lib/types/gir-virtual-method.js +2 -0
  277. package/lib/types/gir-virtual-method.js.map +1 -0
  278. package/lib/types/index.d.ts +119 -0
  279. package/lib/types/index.js +120 -0
  280. package/lib/types/index.js.map +1 -0
  281. package/lib/types/inheritance-table.d.ts +3 -0
  282. package/lib/types/inheritance-table.js +2 -0
  283. package/lib/types/inheritance-table.js.map +1 -0
  284. package/lib/types/injection-callback.d.ts +16 -0
  285. package/lib/types/injection-callback.js +2 -0
  286. package/lib/types/injection-callback.js.map +1 -0
  287. package/lib/types/injection-class.d.ts +25 -0
  288. package/lib/types/injection-class.js +2 -0
  289. package/lib/types/injection-class.js.map +1 -0
  290. package/lib/types/injection-function.d.ts +7 -0
  291. package/lib/types/injection-function.js +2 -0
  292. package/lib/types/injection-function.js.map +1 -0
  293. package/lib/types/injection-generic-parameter.d.ts +2 -0
  294. package/lib/types/injection-generic-parameter.js +2 -0
  295. package/lib/types/injection-generic-parameter.js.map +1 -0
  296. package/lib/types/injection-instance-parameter.d.ts +2 -0
  297. package/lib/types/injection-instance-parameter.js +2 -0
  298. package/lib/types/injection-instance-parameter.js.map +1 -0
  299. package/lib/types/injection-parameter.d.ts +8 -0
  300. package/lib/types/injection-parameter.js +2 -0
  301. package/lib/types/injection-parameter.js.map +1 -0
  302. package/lib/types/injection-property.d.ts +4 -0
  303. package/lib/types/injection-property.js +2 -0
  304. package/lib/types/injection-property.js.map +1 -0
  305. package/lib/types/injection-type.d.ts +2 -0
  306. package/lib/types/injection-type.js +2 -0
  307. package/lib/types/injection-type.js.map +1 -0
  308. package/lib/types/injection.d.ts +5 -0
  309. package/lib/types/injection.js +2 -0
  310. package/lib/types/injection.js.map +1 -0
  311. package/lib/types/local-name-check.d.ts +4 -0
  312. package/lib/types/local-name-check.js +2 -0
  313. package/lib/types/local-name-check.js.map +1 -0
  314. package/lib/types/local-name-type.d.ts +1 -0
  315. package/lib/types/local-name-type.js +2 -0
  316. package/lib/types/local-name-type.js.map +1 -0
  317. package/lib/types/local-name.d.ts +7 -0
  318. package/lib/types/local-name.js +2 -0
  319. package/lib/types/local-name.js.map +1 -0
  320. package/lib/types/local-names.d.ts +4 -0
  321. package/lib/types/local-names.js +2 -0
  322. package/lib/types/local-names.js.map +1 -0
  323. package/lib/types/module-type.d.ts +1 -0
  324. package/lib/types/module-type.js +2 -0
  325. package/lib/types/module-type.js.map +1 -0
  326. package/lib/types/parsed-gir.d.ts +4 -0
  327. package/lib/types/parsed-gir.js +2 -0
  328. package/lib/types/parsed-gir.js.map +1 -0
  329. package/lib/types/part-of-class.d.ts +7 -0
  330. package/lib/types/part-of-class.js +2 -0
  331. package/lib/types/part-of-class.js.map +1 -0
  332. package/lib/types/part-of-module.d.ts +6 -0
  333. package/lib/types/part-of-module.js +2 -0
  334. package/lib/types/part-of-module.js.map +1 -0
  335. package/lib/types/promisify-func.d.ts +7 -0
  336. package/lib/types/promisify-func.js +2 -0
  337. package/lib/types/promisify-func.js.map +1 -0
  338. package/lib/types/resolve-type.d.ts +4 -0
  339. package/lib/types/resolve-type.js +6 -0
  340. package/lib/types/resolve-type.js.map +1 -0
  341. package/lib/types/sym-table-items.d.ts +4 -0
  342. package/lib/types/sym-table-items.js +2 -0
  343. package/lib/types/sym-table-items.js.map +1 -0
  344. package/lib/types/transformation-case.d.ts +1 -0
  345. package/lib/types/transformation-case.js +2 -0
  346. package/lib/types/transformation-case.js.map +1 -0
  347. package/lib/types/transformations.d.ts +11 -0
  348. package/lib/types/transformations.js +2 -0
  349. package/lib/types/transformations.js.map +1 -0
  350. package/lib/types/ts-alias.d.ts +10 -0
  351. package/lib/types/ts-alias.js +2 -0
  352. package/lib/types/ts-alias.js.map +1 -0
  353. package/lib/types/ts-callback-interface.d.ts +10 -0
  354. package/lib/types/ts-callback-interface.js +2 -0
  355. package/lib/types/ts-callback-interface.js.map +1 -0
  356. package/lib/types/ts-callback.d.ts +17 -0
  357. package/lib/types/ts-callback.js +2 -0
  358. package/lib/types/ts-callback.js.map +1 -0
  359. package/lib/types/ts-class.d.ts +85 -0
  360. package/lib/types/ts-class.js +2 -0
  361. package/lib/types/ts-class.js.map +1 -0
  362. package/lib/types/ts-doc-tag.d.ts +21 -0
  363. package/lib/types/ts-doc-tag.js +2 -0
  364. package/lib/types/ts-doc-tag.js.map +1 -0
  365. package/lib/types/ts-doc.d.ts +16 -0
  366. package/lib/types/ts-doc.js +2 -0
  367. package/lib/types/ts-doc.js.map +1 -0
  368. package/lib/types/ts-enum.d.ts +12 -0
  369. package/lib/types/ts-enum.js +2 -0
  370. package/lib/types/ts-enum.js.map +1 -0
  371. package/lib/types/ts-function.d.ts +55 -0
  372. package/lib/types/ts-function.js +2 -0
  373. package/lib/types/ts-function.js.map +1 -0
  374. package/lib/types/ts-generic-parameter.d.ts +8 -0
  375. package/lib/types/ts-generic-parameter.js +2 -0
  376. package/lib/types/ts-generic-parameter.js.map +1 -0
  377. package/lib/types/ts-instance-parameter.d.ts +4 -0
  378. package/lib/types/ts-instance-parameter.js +2 -0
  379. package/lib/types/ts-instance-parameter.js.map +1 -0
  380. package/lib/types/ts-member.d.ts +10 -0
  381. package/lib/types/ts-member.js +2 -0
  382. package/lib/types/ts-member.js.map +1 -0
  383. package/lib/types/ts-method.d.ts +5 -0
  384. package/lib/types/ts-method.js +2 -0
  385. package/lib/types/ts-method.js.map +1 -0
  386. package/lib/types/ts-parameter.d.ts +15 -0
  387. package/lib/types/ts-parameter.js +2 -0
  388. package/lib/types/ts-parameter.js.map +1 -0
  389. package/lib/types/ts-property.d.ts +17 -0
  390. package/lib/types/ts-property.js +2 -0
  391. package/lib/types/ts-property.js.map +1 -0
  392. package/lib/types/ts-signal.d.ts +17 -0
  393. package/lib/types/ts-signal.js +2 -0
  394. package/lib/types/ts-signal.js.map +1 -0
  395. package/lib/types/ts-type-name.d.ts +1 -0
  396. package/lib/types/ts-type-name.js +2 -0
  397. package/lib/types/ts-type-name.js.map +1 -0
  398. package/lib/types/ts-type-separator.d.ts +1 -0
  399. package/lib/types/ts-type-separator.js +2 -0
  400. package/lib/types/ts-type-separator.js.map +1 -0
  401. package/lib/types/ts-type.d.ts +26 -0
  402. package/lib/types/ts-type.js +2 -0
  403. package/lib/types/ts-type.js.map +1 -0
  404. package/lib/types/ts-var.d.ts +17 -0
  405. package/lib/types/ts-var.js +2 -0
  406. package/lib/types/ts-var.js.map +1 -0
  407. package/lib/types/type-gir-alias.d.ts +2 -0
  408. package/lib/types/type-gir-alias.js +2 -0
  409. package/lib/types/type-gir-alias.js.map +1 -0
  410. package/lib/types/type-gir-class.d.ts +2 -0
  411. package/lib/types/type-gir-class.js +2 -0
  412. package/lib/types/type-gir-class.js.map +1 -0
  413. package/lib/types/type-gir-element.d.ts +3 -0
  414. package/lib/types/type-gir-element.js +2 -0
  415. package/lib/types/type-gir-element.js.map +1 -0
  416. package/lib/types/type-gir-enumeration-member.d.ts +2 -0
  417. package/lib/types/type-gir-enumeration-member.js +2 -0
  418. package/lib/types/type-gir-enumeration-member.js.map +1 -0
  419. package/lib/types/type-gir-enumeration.d.ts +2 -0
  420. package/lib/types/type-gir-enumeration.js +2 -0
  421. package/lib/types/type-gir-enumeration.js.map +1 -0
  422. package/lib/types/type-gir-function.d.ts +1 -0
  423. package/lib/types/type-gir-function.js +2 -0
  424. package/lib/types/type-gir-function.js.map +1 -0
  425. package/lib/types/type-gir-interface.d.ts +2 -0
  426. package/lib/types/type-gir-interface.js +2 -0
  427. package/lib/types/type-gir-interface.js.map +1 -0
  428. package/lib/types/type-gir-method.d.ts +2 -0
  429. package/lib/types/type-gir-method.js +2 -0
  430. package/lib/types/type-gir-method.js.map +1 -0
  431. package/lib/types/type-gir-parameter.d.ts +1 -0
  432. package/lib/types/type-gir-parameter.js +2 -0
  433. package/lib/types/type-gir-parameter.js.map +1 -0
  434. package/lib/types/type-gir-property.d.ts +2 -0
  435. package/lib/types/type-gir-property.js +2 -0
  436. package/lib/types/type-gir-property.js.map +1 -0
  437. package/lib/types/type-gir-variable.d.ts +1 -0
  438. package/lib/types/type-gir-variable.js +2 -0
  439. package/lib/types/type-gir-variable.js.map +1 -0
  440. package/lib/types/type-ts-element.d.ts +3 -0
  441. package/lib/types/type-ts-element.js +2 -0
  442. package/lib/types/type-ts-element.js.map +1 -0
  443. package/lib/types/type-ts-enumeration-member.d.ts +2 -0
  444. package/lib/types/type-ts-enumeration-member.js +2 -0
  445. package/lib/types/type-ts-enumeration-member.js.map +1 -0
  446. package/lib/types/type-ts-function.d.ts +1 -0
  447. package/lib/types/type-ts-function.js +2 -0
  448. package/lib/types/type-ts-function.js.map +1 -0
  449. package/lib/types/type-ts-property.d.ts +1 -0
  450. package/lib/types/type-ts-property.js +2 -0
  451. package/lib/types/type-ts-property.js.map +1 -0
  452. package/lib/types/user-config-load-result.d.ts +6 -0
  453. package/lib/types/user-config-load-result.js +2 -0
  454. package/lib/types/user-config-load-result.js.map +1 -0
  455. package/lib/types/user-config.d.ts +42 -0
  456. package/lib/types/user-config.js +2 -0
  457. package/lib/types/user-config.js.map +1 -0
  458. package/lib/utils.d.ts +262 -0
  459. package/lib/utils.js +366 -0
  460. package/lib/utils.js.map +1 -0
  461. package/package.json +68 -0
  462. package/templates/Cogl-2.0.d.ts +0 -0
  463. package/templates/Gjs/GObject-2.0.d.ts +238 -0
  464. package/templates/Gjs/Gio-2.0.d.ts +101 -0
  465. package/templates/Gjs/Gjs.d.ts +204 -0
  466. package/templates/Gjs/Gjs.js +21 -0
  467. package/templates/Gjs/GnomeShell.d.ts +154 -0
  468. package/templates/Gjs/GnomeShell.js +10 -0
  469. package/templates/Gjs/index.d.ts +594 -0
  470. package/templates/Gjs/index.js +4 -0
  471. package/templates/Gjs/misc/dbusUtils.d.ts +15 -0
  472. package/templates/Gjs/misc/dbusUtils.js +6 -0
  473. package/templates/Gjs/misc/extensionUtils.d.ts +99 -0
  474. package/templates/Gjs/misc/extensionUtils.js +6 -0
  475. package/templates/Gjs/misc/fileUtils.d.ts +51 -0
  476. package/templates/Gjs/misc/fileUtils.js +6 -0
  477. package/templates/Gjs/misc/gnomeSession.d.ts +74 -0
  478. package/templates/Gjs/misc/gnomeSession.js +6 -0
  479. package/templates/Gjs/misc/parentalControlsManager.d.ts +42 -0
  480. package/templates/Gjs/misc/parentalControlsManager.js +6 -0
  481. package/templates/Gjs/misc/signals.d.ts +15 -0
  482. package/templates/Gjs/misc/signals.js +6 -0
  483. package/templates/Gjs/module.d.ts +6 -0
  484. package/templates/Gjs/module.js +16 -0
  485. package/templates/Gjs/tsconfig.alias.json +10 -0
  486. package/templates/Gjs/ui/accessDialog.d.ts +19 -0
  487. package/templates/Gjs/ui/accessDialog.js +6 -0
  488. package/templates/Gjs/ui/altTab.d.ts +124 -0
  489. package/templates/Gjs/ui/altTab.js +6 -0
  490. package/templates/Gjs/ui/animation.d.ts +58 -0
  491. package/templates/Gjs/ui/animation.js +6 -0
  492. package/templates/Gjs/ui/appDisplay.d.ts +204 -0
  493. package/templates/Gjs/ui/appDisplay.js +6 -0
  494. package/templates/Gjs/ui/appFavorites.d.ts +34 -0
  495. package/templates/Gjs/ui/appFavorites.js +6 -0
  496. package/templates/Gjs/ui/appMenu.d.ts +74 -0
  497. package/templates/Gjs/ui/appMenu.js +6 -0
  498. package/templates/Gjs/ui/audioDeviceSelection.d.ts +51 -0
  499. package/templates/Gjs/ui/audioDeviceSelection.js +6 -0
  500. package/templates/Gjs/ui/background.d.ts +255 -0
  501. package/templates/Gjs/ui/background.js +5 -0
  502. package/templates/Gjs/ui/backgroundMenu.d.ts +19 -0
  503. package/templates/Gjs/ui/backgroundMenu.js +5 -0
  504. package/templates/Gjs/ui/barLevel.d.ts +42 -0
  505. package/templates/Gjs/ui/barLevel.js +5 -0
  506. package/templates/Gjs/ui/boxpointer.d.ts +103 -0
  507. package/templates/Gjs/ui/boxpointer.js +5 -0
  508. package/templates/Gjs/ui/calendar.d.ts +261 -0
  509. package/templates/Gjs/ui/calendar.js +5 -0
  510. package/templates/Gjs/ui/checkBox.d.ts +22 -0
  511. package/templates/Gjs/ui/checkBox.js +5 -0
  512. package/templates/Gjs/ui/closeDialog.d.ts +40 -0
  513. package/templates/Gjs/ui/closeDialog.js +5 -0
  514. package/templates/Gjs/ui/components/__init__.d.ts +9 -0
  515. package/templates/Gjs/ui/components/__init__.js +6 -0
  516. package/templates/Gjs/ui/components/automountManager.d.ts +8 -0
  517. package/templates/Gjs/ui/components/automountManager.js +6 -0
  518. package/templates/Gjs/ui/components/autorunManager.d.ts +8 -0
  519. package/templates/Gjs/ui/components/autorunManager.js +6 -0
  520. package/templates/Gjs/ui/components/index.d.ts +6 -0
  521. package/templates/Gjs/ui/components/index.js +6 -0
  522. package/templates/Gjs/ui/components/keyring.d.ts +19 -0
  523. package/templates/Gjs/ui/components/keyring.js +6 -0
  524. package/templates/Gjs/ui/components/networkAgent.d.ts +10 -0
  525. package/templates/Gjs/ui/components/networkAgent.js +6 -0
  526. package/templates/Gjs/ui/components/polkitAgent.d.ts +19 -0
  527. package/templates/Gjs/ui/components/polkitAgent.js +6 -0
  528. package/templates/Gjs/ui/components/telepathyClient.d.ts +10 -0
  529. package/templates/Gjs/ui/components/telepathyClient.js +6 -0
  530. package/templates/Gjs/ui/dialog.d.ts +78 -0
  531. package/templates/Gjs/ui/dialog.js +6 -0
  532. package/templates/Gjs/ui/dnd.d.ts +127 -0
  533. package/templates/Gjs/ui/dnd.js +6 -0
  534. package/templates/Gjs/ui/iconGrid.d.ts +172 -0
  535. package/templates/Gjs/ui/iconGrid.js +6 -0
  536. package/templates/Gjs/ui/layout.d.ts +311 -0
  537. package/templates/Gjs/ui/layout.js +6 -0
  538. package/templates/Gjs/ui/main.d.ts +215 -0
  539. package/templates/Gjs/ui/main.js +6 -0
  540. package/templates/Gjs/ui/messageList.d.ts +113 -0
  541. package/templates/Gjs/ui/messageList.js +6 -0
  542. package/templates/Gjs/ui/messageTray.d.ts +423 -0
  543. package/templates/Gjs/ui/messageTray.js +6 -0
  544. package/templates/Gjs/ui/modalDialog.d.ts +96 -0
  545. package/templates/Gjs/ui/modalDialog.js +6 -0
  546. package/templates/Gjs/ui/mpris.d.ts +78 -0
  547. package/templates/Gjs/ui/mpris.js +6 -0
  548. package/templates/Gjs/ui/notificationDaemon.d.ts +5 -0
  549. package/templates/Gjs/ui/notificationDaemon.js +6 -0
  550. package/templates/Gjs/ui/panel.d.ts +65 -0
  551. package/templates/Gjs/ui/panel.js +6 -0
  552. package/templates/Gjs/ui/panelMenu.d.ts +51 -0
  553. package/templates/Gjs/ui/panelMenu.js +6 -0
  554. package/templates/Gjs/ui/popupMenu.d.ts +228 -0
  555. package/templates/Gjs/ui/popupMenu.js +6 -0
  556. package/templates/Gjs/ui/ripples.d.ts +44 -0
  557. package/templates/Gjs/ui/ripples.js +6 -0
  558. package/templates/Gjs/ui/search.d.ts +158 -0
  559. package/templates/Gjs/ui/search.js +6 -0
  560. package/templates/Gjs/ui/switcherPopup.d.ts +107 -0
  561. package/templates/Gjs/ui/switcherPopup.js +6 -0
  562. package/templates/Gjs/ui/userWidget.d.ts +13 -0
  563. package/templates/Gjs/ui/userWidget.js +6 -0
  564. package/templates/Granite-1.0.d.ts +7 -0
  565. package/templates/Granite-7.0.d.ts +7 -0
  566. package/templates/GstBase-0.10.d.ts +5 -0
  567. package/templates/RygelServer-2.6.d.ts +3 -0
  568. package/templates/node-gtk/GObject-2.0.d.ts +57 -0
  569. package/templates/node-gtk/index.d.ts +40 -0
  570. package/templates/node-gtk/index.js +9 -0
  571. package/templates/node-gtk/module.d.ts +6 -0
  572. package/templates/node-gtk/module.js +17 -0
package/lib/utils.js ADDED
@@ -0,0 +1,366 @@
1
+ /* eslint-disable @typescript-eslint/unbound-method */
2
+ import lodash from 'lodash';
3
+ import { join, dirname } from 'path';
4
+ import { existsSync } from 'fs';
5
+ import { fileURLToPath } from 'url';
6
+ import { inspect } from 'util';
7
+ import { Logger } from './logger.js';
8
+ import { COMMENT_REG_EXP, PARAM_REG_EXP, OPT_PARAM_REG_EXP } from './constants.js';
9
+ export { inspect };
10
+ /**
11
+ * Performs a deep comparison between two values to determine if they are
12
+ * equivalent.
13
+ *
14
+ * **Note:** This method supports comparing arrays, array buffers, booleans,
15
+ * date objects, error objects, maps, numbers, `Object` objects, regexes,
16
+ * sets, strings, symbols, and typed arrays. `Object` objects are compared
17
+ * by their own, not inherited, enumerable properties. Functions and DOM
18
+ * nodes are **not** supported.
19
+ *
20
+ * @category Lang
21
+ * @param value The value to compare.
22
+ * @param other The other value to compare.
23
+ * @returns Returns `true` if the values are equivalent, else `false`.
24
+ * @example
25
+ *
26
+ * var object = { 'user': 'fred' };
27
+ * var other = { 'user': 'fred' };
28
+ *
29
+ * _.isEqual(object, other);
30
+ * // => true
31
+ *
32
+ * object === other;
33
+ * // => false
34
+ */
35
+ export const isEqual = lodash.isEqual;
36
+ /**
37
+ * Creates an array of values by running each element in collection through iteratee. The iteratee is
38
+ * invoked with three arguments: (value, index|key, collection).
39
+ *
40
+ * Many lodash methods are guarded to work as iteratees for methods like _.every, _.filter, _.map, _.mapValues,
41
+ * _.reject, and _.some.
42
+ *
43
+ * The guarded methods are:
44
+ * ary, callback, chunk, clone, create, curry, curryRight, drop, dropRight, every, fill, flatten, invert, max,
45
+ * min, parseInt, slice, sortBy, take, takeRight, template, trim, trimLeft, trimRight, trunc, random, range,
46
+ * sample, some, sum, uniq, and words
47
+ *
48
+ * @param collection The collection to iterate over.
49
+ * @param iteratee The function invoked per iteration.
50
+ * @return Returns the new mapped array.
51
+ */
52
+ export const map = lodash.map;
53
+ /**
54
+ * Iterates over elements of collection, returning the first element predicate returns truthy for.
55
+ * The predicate is invoked with three arguments: (value, index|key, collection).
56
+ *
57
+ * @param collection The collection to search.
58
+ * @param predicate The function invoked per iteration.
59
+ * @param fromIndex The index to search from.
60
+ * @return Returns the matched element, else undefined.
61
+ */
62
+ export const find = lodash.find;
63
+ /**
64
+ * Recursively merges own and inherited enumerable properties of source
65
+ * objects into the destination object, skipping source properties that resolve
66
+ * to `undefined`. Array and plain object properties are merged recursively.
67
+ * Other objects and value types are overridden by assignment. Source objects
68
+ * are applied from left to right. Subsequent sources overwrite property
69
+ * assignments of previous sources.
70
+ *
71
+ * **Note:** This method mutates `object`.
72
+ *
73
+ * @category Object
74
+ * @param object The destination object.
75
+ * @param [sources] The source objects.
76
+ * @returns Returns `object`.
77
+ * @example
78
+ *
79
+ * var users = {
80
+ * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
81
+ * };
82
+ *
83
+ * var ages = {
84
+ * 'data': [{ 'age': 36 }, { 'age': 40 }]
85
+ * };
86
+ *
87
+ * _.merge(users, ages);
88
+ * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
89
+ */
90
+ export const merge = lodash.merge;
91
+ /**
92
+ * Creates a shallow clone of value.
93
+ *
94
+ * Note: This method is loosely based on the structured clone algorithm and supports cloning arrays,
95
+ * array buffers, booleans, date objects, maps, numbers, Object objects, regex's, sets, strings, symbols,
96
+ * and typed arrays. The own enumerable properties of arguments objects are cloned as plain objects. An empty
97
+ * object is returned for not cloneable values such as error objects, functions, DOM nodes, and WeakMaps.
98
+ *
99
+ * @param value The value to clone.
100
+ * @return Returns the cloned value.
101
+ */
102
+ export const clone = lodash.clone;
103
+ /**
104
+ * This method is like clone except that it recursively clones value.
105
+ *
106
+ * @param value The value to recursively clone.
107
+ * @return Returns the deep cloned value.
108
+ */
109
+ export const cloneDeep = lodash.cloneDeep;
110
+ /**
111
+ * Split a package name into namespace and version
112
+ */
113
+ export const splitModuleName = (packageName) => {
114
+ // There are modules that use multiple hyphens like 'GUPnP-DLNA-1.0'
115
+ const splits = packageName.split('-');
116
+ const version = splits.splice(-1, 1)[0];
117
+ const namespace = splits.join('');
118
+ return {
119
+ packageName,
120
+ namespace,
121
+ version,
122
+ };
123
+ };
124
+ /** Remove namespace prefix */
125
+ export const removeNamespace = (type, namespace) => {
126
+ if (type.startsWith(namespace + '.')) {
127
+ type = type.substring(namespace.length + 1);
128
+ }
129
+ return type;
130
+ };
131
+ /** Remove class module name prefix */
132
+ export const removeClassModule = removeNamespace;
133
+ /**
134
+ * Add namespace prefix
135
+ */
136
+ export const addNamespace = (type, namespace) => {
137
+ if (!type.startsWith(namespace + '.')) {
138
+ type = namespace + '.' + type;
139
+ }
140
+ return type;
141
+ };
142
+ /**
143
+ * Checking whether some variable is iterable
144
+ * @see https://stackoverflow.com/a/32538867
145
+ * @param obj Variable to check for iterable
146
+ * @returns Whether the variable is iterable or not
147
+ */
148
+ export const isIterable = (obj) => {
149
+ return obj != null && typeof obj[Symbol.iterator] === 'function';
150
+ };
151
+ /**
152
+ * Checking whether a string is numeric
153
+ * @param str The string to check
154
+ * @returns Whether the string is numeric or not
155
+ */
156
+ export const isNumeric = (str) => {
157
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
158
+ return !isNaN(str - parseFloat(str));
159
+ };
160
+ /**
161
+ * Get the first character of a string
162
+ * @param str The string to get the first character from
163
+ * @returns The first character
164
+ */
165
+ export const getFirstChar = (str) => {
166
+ return str.charAt(0);
167
+ };
168
+ /**
169
+ * Get the last character of a string
170
+ * @param str The string to get the last character from
171
+ * @returns The last character
172
+ */
173
+ export const getLastChar = (str) => {
174
+ return str.charAt(str.length - 1);
175
+ };
176
+ /**
177
+ * Check if the first character of a string is numeric
178
+ * @param str The string to check
179
+ * @returns Whether the first character is numeric or not
180
+ */
181
+ export const isFirstCharNumeric = (str) => {
182
+ return isNumeric(getFirstChar(str));
183
+ };
184
+ /**
185
+ * Convert a string to camelCase
186
+ * @param str The string to convert
187
+ * @returns The converted string
188
+ */
189
+ export const camelCase = (str) => {
190
+ return str
191
+ .replace(/\s(.)|(\s|-|_|\.)(.)/g, (a) => {
192
+ return a.toUpperCase();
193
+ })
194
+ .replace(/(\s|-|_|\.)/g, '');
195
+ };
196
+ /**
197
+ * Convert a string to lowerCamelCase
198
+ * @param str The string to convert
199
+ * @returns The converted string
200
+ */
201
+ export const lowerCamelCase = (str) => {
202
+ str = camelCase(str);
203
+ str = getFirstChar(str).toLowerCase() + str.slice(1);
204
+ return str;
205
+ };
206
+ /**
207
+ * Convert a string to UpperCamelCase
208
+ * @param str The string to convert
209
+ * @returns The converted string
210
+ */
211
+ export const upperCamelCase = (str) => {
212
+ str = camelCase(str);
213
+ str = getFirstChar(str).toUpperCase() + str.slice(1);
214
+ return str;
215
+ };
216
+ /**
217
+ * Find a file in a list of directories
218
+ * @param dirs The directories to search in
219
+ * @param filename The filename to search for
220
+ * @returns The file info
221
+ */
222
+ export const findFileInDirs = (dirs, filename) => {
223
+ const FileInfo = {
224
+ path: null,
225
+ filename,
226
+ exists: false,
227
+ };
228
+ for (const dir of dirs) {
229
+ const filePath = join(dir, filename);
230
+ FileInfo.exists = existsSync(filePath);
231
+ if (FileInfo.exists) {
232
+ FileInfo.path = filePath;
233
+ return FileInfo;
234
+ }
235
+ }
236
+ return FileInfo;
237
+ };
238
+ /**
239
+ * Union (a ∪ b): create a set that contains the elements of both set a and set b.
240
+ * See https://2ality.com/2015/01/es6-set-operations.html#union
241
+ * @param target
242
+ * @param source
243
+ */
244
+ export const union = (target, source) => {
245
+ return (target = new Set([...target, ...source]));
246
+ };
247
+ export const stripParamNames = (func, ignoreTail = false) => {
248
+ const g = func;
249
+ func = func.replace(COMMENT_REG_EXP, '');
250
+ const lb = func.split('(', 2);
251
+ if (lb.length < 2)
252
+ Logger.error(`Bad function definition ${g}`);
253
+ const rb = lb[1].split(')');
254
+ const tail = ignoreTail ? '' : rb[rb.length - 1];
255
+ let params = rb.slice(0, rb.length - 1).join(')');
256
+ params = params.replace(PARAM_REG_EXP, ':');
257
+ params = params.replace(OPT_PARAM_REG_EXP, '?:');
258
+ return `${lb[0]}(${params})${tail}`;
259
+ };
260
+ /**
261
+ * Check if a line is a comment line
262
+ * @param line The line to check
263
+ * @returns Whether the line is a comment line or not
264
+ */
265
+ export const isCommentLine = (line) => {
266
+ const lineTrim = line.trim();
267
+ return lineTrim.startsWith('//') || (lineTrim.startsWith('/*') && lineTrim.endsWith('*/'));
268
+ };
269
+ /**
270
+ * Add indents to a string
271
+ * @param indents The number of indents
272
+ * @param spaceForIndent The number of spaces for each indent
273
+ * @returns The indented string
274
+ */
275
+ export const generateIndent = (indents = 1, spaceForIndent = 4) => {
276
+ return ' '.repeat(indents * spaceForIndent);
277
+ };
278
+ // Get __filename on ESM
279
+ export const __filename = fileURLToPath(import.meta.url);
280
+ // Get __dirname on ESM
281
+ export const __dirname = dirname(__filename);
282
+ /**
283
+ * Get the output or input directory of the environment
284
+ * @param environment The environment to get the directory for
285
+ * @param baseDir The base directory
286
+ * @returns The path to the directory
287
+ */
288
+ export const getEnvironmentDir = (environment, baseDir) => {
289
+ if (!baseDir.endsWith(environment))
290
+ if (environment === 'gjs' && !baseDir.endsWith('/Gjs')) {
291
+ return join(baseDir, 'Gjs');
292
+ }
293
+ if (environment === 'node' && !baseDir.endsWith('/node-gtk')) {
294
+ return join(baseDir, 'node-gtk');
295
+ }
296
+ return baseDir;
297
+ };
298
+ /**
299
+ * Get the destination path for the environment
300
+ * @param environment The environment to get the destination path for
301
+ * @param outputDir The output directory
302
+ * @param parts The path parts
303
+ * @returns The destination path
304
+ */
305
+ export const getDestPath = (environment, outputDir, ...parts) => {
306
+ const outputEnvDir = getEnvironmentDir(environment, outputDir);
307
+ const destPath = join(outputEnvDir, ...parts);
308
+ return destPath;
309
+ };
310
+ /**
311
+ * Convert a GirBoolean to a boolean
312
+ * @param boolStr The GirBoolean string
313
+ * @param defaultVal The default value
314
+ * @returns The boolean value
315
+ */
316
+ export const girBool = (boolStr, defaultVal = false) => {
317
+ if (boolStr) {
318
+ if (parseInt(boolStr) === 0)
319
+ return false;
320
+ return true;
321
+ }
322
+ return defaultVal;
323
+ };
324
+ /**
325
+ * Returns `true` if the definitions in `d1` and `d2` have equivalent signatures
326
+ * @param d1
327
+ * @param d2
328
+ */
329
+ export const signaturesMatch = (d1, d2) => {
330
+ if (isCommentLine(d1) || isCommentLine(d2))
331
+ return false;
332
+ return stripParamNames(d1) == stripParamNames(d2);
333
+ };
334
+ /**
335
+ * GirElements contains an attribute `introspectable`, which is a GirBoolean.
336
+ * If this is attribute is falsy the element is not introspectable,
337
+ * this means doesn't exist in the bindings, due in general to missing information in the annotations in the original C code
338
+ */
339
+ export const girElementIsIntrospectable = (girElement, name) => {
340
+ if (!girElement) {
341
+ return false;
342
+ }
343
+ name = name || girElement?.$?.name;
344
+ if (!name) {
345
+ return false;
346
+ }
347
+ // Handle introspectable only if the attribute is also present...
348
+ if (girElement.$.hasOwnProperty('introspectable') && girElement.$.introspectable !== undefined) {
349
+ return girBool(girElement.$.introspectable, true);
350
+ }
351
+ // ...otherwise we assume that it is introspectable
352
+ return true;
353
+ };
354
+ /**
355
+ * Check if a type is optional
356
+ * @param types The types to check
357
+ * @returns Whether the type is optional or not
358
+ */
359
+ export const typeIsOptional = (types) => {
360
+ for (const type of types) {
361
+ if (type.optional)
362
+ return true;
363
+ }
364
+ return false;
365
+ };
366
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@ts-for-gir/lib",
3
+ "version": "3.0.0-beta.11",
4
+ "description": "Typescript .d.ts generator from GIR for gjs and node-gtk",
5
+ "module": "lib/index.js",
6
+ "main": "lib/index.js",
7
+ "type": "module",
8
+ "engines": {
9
+ "node": ">=18"
10
+ },
11
+ "scripts": {
12
+ "build": "yarn lint && yarn build:ts",
13
+ "build:ts": "tsc",
14
+ "clear": "yarn clear:build",
15
+ "clear:build": "rimraf ./lib",
16
+ "watch": "yarn build:ts -- --watch",
17
+ "lint": "eslint . --ext .ts,.tsx --fix"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/gjsify/ts-for-gjs.git"
22
+ },
23
+ "author": "Pascal Garber <pascal@artandcode.studio>",
24
+ "files": [
25
+ "lib",
26
+ "templates"
27
+ ],
28
+ "license": "Apache-2.0",
29
+ "bugs": {
30
+ "url": "https://github.com/gjsify/ts-for-gjs/issues"
31
+ },
32
+ "homepage": "https://github.com/gjsify/ts-for-gjs#readme",
33
+ "keywords": [
34
+ "gjs",
35
+ "typescript",
36
+ "generate",
37
+ "node-gtk",
38
+ "gir",
39
+ "gobject-introspection",
40
+ "gnome",
41
+ "gtk",
42
+ "glib",
43
+ "gobject",
44
+ "dts",
45
+ "type definitions"
46
+ ],
47
+ "devDependencies": {
48
+ "@types/ejs": "^3.1.2",
49
+ "@types/eslint": "8.21.1",
50
+ "@types/lodash": "^4.14.191",
51
+ "@types/node": "^18.14.0",
52
+ "@types/xml2js": "^0.4.11",
53
+ "@typescript-eslint/eslint-plugin": "^5.53.0",
54
+ "@typescript-eslint/parser": "^5.53.0",
55
+ "eslint": "^8.34.0",
56
+ "eslint-config-prettier": "^8.6.0",
57
+ "eslint-plugin-prettier": "^4.2.1",
58
+ "prettier": "^2.8.4",
59
+ "rimraf": "^4.1.2",
60
+ "typescript": "^4.9.5"
61
+ },
62
+ "dependencies": {
63
+ "colorette": "^2.0.19",
64
+ "ejs": "^3.1.8",
65
+ "lodash": "^4.17.21",
66
+ "xml2js": "^0.4.23"
67
+ }
68
+ }
File without changes
@@ -0,0 +1,238 @@
1
+ // A few things here are inspired by gi.ts
2
+ // See https://gitlab.gnome.org/ewlsh/gi.ts/-/blob/master/packages/lib/src/generators/dts/gobject.ts
3
+ // Copyright Evan Welsh
4
+
5
+ export type GType<T = unknown> = {
6
+ __type__(arg: never): T
7
+ name: string
8
+ };
9
+
10
+ // Extra interfaces used to help define GObject classes in js; these
11
+ // aren't part of gi.
12
+ export interface SignalDefinition {
13
+ flags?: SignalFlags
14
+ accumulator: number
15
+ return_type?: GType
16
+ param_types?: GType[]
17
+ }
18
+
19
+ export interface MetaInfo<Props, Interfaces, Sigs> {
20
+ GTypeName?: string
21
+ GTypeFlags?: TypeFlags
22
+ Properties?: Props
23
+ Signals?: Sigs
24
+ Implements?: Interfaces
25
+ CssName?: string
26
+ Template?: Uint8Array | GLib.Bytes
27
+ Children?: string[]
28
+ InternalChildren?: string[]
29
+ }
30
+
31
+ /** Interface of GObject Interface should be implemented by all GObject interfaces */
32
+ export class Interface<T = unknown> {
33
+ static _classInit: (cls: any) => any;
34
+ __name__: string;
35
+ _construct: (params: any, ...otherArgs: any[]) => any;
36
+ _init: (params: any) => void;
37
+ $gtype?: GType<T>;
38
+ }
39
+
40
+ /**
41
+ * Use this to signify a function that must be overridden in an
42
+ * implementation of the interface.
43
+ */
44
+ export class NotImplementedError extends Error {
45
+ get name(): 'NotImplementedError'
46
+ }
47
+
48
+ // Expose GObject static properties for ES6 classes
49
+
50
+ export const GTypeName: unique symbol;
51
+ export const requires: unique symbol;
52
+ export const interfaces: unique symbol;
53
+ export const properties: unique symbol;
54
+ export const signals: unique symbol;
55
+
56
+ export let gtypeNameBasedOnJSPath: boolean;
57
+
58
+ export let TYPE_BOOLEAN: GType<boolean>;
59
+ export let Boolean: BooleanConstructor;
60
+
61
+ export let TYPE_ENUM: GType<number>;
62
+ export let TYPE_FLAGS: GType<number>;
63
+
64
+ export let TYPE_DOUBLE: GType<number>;
65
+ export let Double: NumberConstructor;
66
+
67
+ export let TYPE_STRING: GType<string>;
68
+ export let String: StringConstructor;
69
+
70
+ export let TYPE_NONE: GType<undefined>;
71
+ export let TYPE_POINTER: GType<undefined>;
72
+ export let TYPE_BOXED: GType<unknown>;
73
+ export let TYPE_PARAM: GType<unknown>;
74
+ export let TYPE_INTERFACE: GType<unknown>;
75
+ export let TYPE_OBJECT: GType<object>;
76
+ export let TYPE_VARIANT: GType<GLib.Variant>;
77
+ export let TYPE_INT: GType<number>;
78
+ export let TYPE_UINT: GType<number>;
79
+ export let TYPE_INT64: GType<number>;
80
+ export let TYPE_UINT64: GType<number>;
81
+
82
+ // fake enum for signal accumulators, keep in sync with gi/object.c
83
+ export enum AccumulatorType {
84
+ NONE=0,
85
+ FIRST_WINS=1,
86
+ TRUE_HANDLED=2,
87
+ }
88
+
89
+ // A simple workaround if you have a class with .connect, .disconnect or .emit
90
+ // methods (such as Gio.Socket.connect or NMClient.Device.disconnect)
91
+ // The original g_signal_* functions are not introspectable anyway, because
92
+ // we need our own handling of signal argument marshalling
93
+ export function signal_connect(object: Object, name: string, handler: (...args: any[]) => any): number
94
+ export function signal_connect_after(object: Object, name: string, handler: (...args: any[]) => any): number
95
+ export function signal_emit_by_name(object: Object, ...nameAndArgs: any[]): void
96
+
97
+ /**
98
+ * Finds the first signal handler that matches certain selection criteria.
99
+ * The criteria are passed as properties of a match object.
100
+ * The match object has to be non-empty for successful matches.
101
+ * If no handler was found, a falsy value is returned.
102
+ *
103
+ * @param instance the instance owning the signal handler to be found.
104
+ * @param match a properties object indicating whether to match by signal ID, detail, or callback function.
105
+ * @param match.signalId signal the handler has to be connected to.
106
+ * @param match.detail signal detail the handler has to be connected to.
107
+ * @param match.func the callback function the handler will invoke.
108
+ * @returns A valid non-0 signal handler ID for a successful match.
109
+ */
110
+ export function signal_handler_find(instance: Object, match: {signalId: string, detail: string, func: (...args: any[]) => any}): number | bigint | object | null
111
+
112
+ /**
113
+ * Blocks all handlers on an instance that match certain selection criteria.
114
+ * The criteria are passed as properties of a match object.
115
+ * The match object has to have at least `func` for successful matches.
116
+ * If no handlers were found, 0 is returned, the number of blocked handlers
117
+ * otherwise.
118
+ *
119
+ * @param instance the instance owning the signal handler to be found.
120
+ * @param match a properties object indicating whether to match by signal ID, detail, or callback function.
121
+ * @param match.signalId signal the handler has to be connected to.
122
+ * @param match.detail signal detail the handler has to be connected to.
123
+ * @param match.func the callback function the handler will invoke.
124
+ * @returns The number of handlers that matched.
125
+ */
126
+ export function signal_handlers_block_matched(instance: Object, match: {signalId: string, detail: string, func: (...args: any[]) => any}): number
127
+
128
+ /**
129
+ * Disconnects all handlers on an instance that match certain selection
130
+ * criteria.
131
+ * The criteria are passed as properties of a match object.
132
+ * The match object has to have at least `func` for successful matches.
133
+ * If no handlers were found, 0 is returned, the number of disconnected
134
+ * handlers otherwise.
135
+ *
136
+ * @param instance the instance owning the signal handler
137
+ * to be found.
138
+ * @param match a properties object indicating whether to match by signal ID, detail, or callback function.
139
+ * @param match.signalId signal the handler has to be connected to.
140
+ * @param match.detail signal detail the handler has to be connected to.
141
+ * @param match.func the callback function the handler will invoke.
142
+ * @returns The number of handlers that matched.
143
+ */
144
+ export function signal_handlers_unblock_matched(instance: Object, match: {signalId: string, detail: string, func: (...args: any[]) => any}): number
145
+
146
+ /**
147
+ * Disconnects all handlers on an instance that match certain selection
148
+ * criteria.
149
+ * The criteria are passed as properties of a match object.
150
+ * The match object has to have at least `func` for successful matches.
151
+ * If no handlers were found, 0 is returned, the number of disconnected
152
+ * handlers otherwise.
153
+ *
154
+ * @param instance the instance owning the signal handler
155
+ * to be found.
156
+ * @param match a properties object indicating whether to match by signal ID, detail, or callback function.
157
+ * @param match.signalId signal the handler has to be connected to.
158
+ * @param match.detail signal detail the handler has to be connected to.
159
+ * @param match.func the callback function the handler will invoke.
160
+ * @returns The number of handlers that matched.
161
+ */
162
+ export function signal_handlers_disconnect_matched(instance: Object, match: {signalId: string, detail: string, func: (...args: any[]) => any}): number
163
+
164
+ // Also match the macros used in C APIs, even though they're not introspected
165
+
166
+ /**
167
+ * Blocks all handlers on an instance that match `func`.
168
+ *
169
+ * @param instance the instance to block handlers from.
170
+ * @param func the callback function the handler will invoke.
171
+ * @returns The number of handlers that matched.
172
+ */
173
+ export function signal_handlers_block_by_func(instance: Object, func: (...args: any[]) => any): number;
174
+
175
+ /**
176
+ * Unblocks all handlers on an instance that match `func`.
177
+ *
178
+ * @function
179
+ * @param instance the instance to unblock handlers from.
180
+ * @param func the callback function the handler will invoke.
181
+ * @returns The number of handlers that matched.
182
+ */
183
+ export function signal_handlers_unblock_by_func(instance: Object, func: (...args: any[]) => any): number;
184
+
185
+ /**
186
+ * Disconnects all handlers on an instance that match `func`.
187
+ *
188
+ * @param instance the instance to remove handlers from.
189
+ * @param func the callback function the handler will invoke.
190
+ * @returns The number of handlers that matched.
191
+ */
192
+ export function signal_handlers_disconnect_by_func(instance: Object, func: (...args: any[]) => any): number;
193
+ export function signal_handlers_disconnect_by_data(): void;
194
+
195
+ export type Property<K extends ParamSpec> = K extends ParamSpecBoolean
196
+ ? boolean
197
+ : K extends ParamSpecDouble | ParamSpecInt | ParamSpecUInt | ParamSpecFloat | ParamSpecLong
198
+ ? number
199
+ : K extends ParamSpecInt64 | ParamSpecUInt64 | ParamSpecULong
200
+ ? number
201
+ : K extends ParamSpecFlags
202
+ ? number
203
+ : K extends ParamSpecString | ParamSpecUnichar
204
+ ? string
205
+ : K extends ParamSpecValueArray
206
+ ? any[]
207
+ : K extends ParamSpecObject // TODO?: <infer T>
208
+ ? ParamSpecObject // T
209
+ : K extends ParamSpecEnum // TODO?: <infer T><infer E>
210
+ ? ParamSpecEnum // E
211
+ : K extends ParamSpecBoxed // TODO?: <infer T><infer B>
212
+ ? ParamSpecBoxed //B
213
+ : K extends ParamSpecVariant
214
+ ? GLib.Variant
215
+ : any;
216
+
217
+ // TODO: What about the generated class Closure
218
+ export type TClosure<R = any, P = any> = (...args: P[]) => R;
219
+
220
+ // This should be replaces by a class of GObject.Object as soon as once we have implemented inheritance
221
+ export class AnyClass {}
222
+
223
+ export function registerClass<
224
+ T extends AnyClass,
225
+ Props extends { [key: string]: ParamSpec },
226
+ Interfaces extends { $gtype: GType }[],
227
+ Sigs extends {
228
+ [key: string]: {
229
+ param_types?: readonly GType[];
230
+ [key: string]: any;
231
+ };
232
+ }
233
+ >(
234
+ options: MetaInfo<Props, Interfaces, Sigs>,
235
+ cls: T
236
+ ): T;
237
+
238
+ export function registerClass<T extends AnyClass>(cls: T): T