@gtkx/ffi 0.1.6 → 0.1.7

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 (1160) hide show
  1. package/dist/codegen/ffi-generator.d.ts +23 -1
  2. package/dist/codegen/ffi-generator.js +631 -68
  3. package/dist/generated/cairo/index.d.ts +1 -1
  4. package/dist/generated/cairo/index.js +1 -1
  5. package/dist/generated/gdk/app-launch-context.d.ts +5 -3
  6. package/dist/generated/gdk/app-launch-context.js +8 -2
  7. package/dist/generated/gdk/cairo-context.d.ts +2 -1
  8. package/dist/generated/gdk/cairo-context.js +13 -2
  9. package/dist/generated/gdk/cicp-params.d.ts +1 -1
  10. package/dist/generated/gdk/cicp-params.js +7 -2
  11. package/dist/generated/gdk/clipboard.d.ts +18 -18
  12. package/dist/generated/gdk/clipboard.js +58 -140
  13. package/dist/generated/gdk/color-state.d.ts +2 -1
  14. package/dist/generated/gdk/color-state.js +15 -4
  15. package/dist/generated/gdk/content-deserializer.d.ts +7 -4
  16. package/dist/generated/gdk/content-deserializer.js +30 -8
  17. package/dist/generated/gdk/content-formats-builder.d.ts +1 -1
  18. package/dist/generated/gdk/content-formats-builder.js +20 -4
  19. package/dist/generated/gdk/content-formats.d.ts +2 -1
  20. package/dist/generated/gdk/content-formats.js +42 -12
  21. package/dist/generated/gdk/content-provider.d.ts +9 -7
  22. package/dist/generated/gdk/content-provider.js +27 -41
  23. package/dist/generated/gdk/content-serializer.d.ts +7 -4
  24. package/dist/generated/gdk/content-serializer.js +30 -8
  25. package/dist/generated/gdk/cursor.d.ts +8 -7
  26. package/dist/generated/gdk/cursor.js +20 -9
  27. package/dist/generated/gdk/device-pad.d.ts +4 -2
  28. package/dist/generated/gdk/device-pad.js +7 -0
  29. package/dist/generated/gdk/device.d.ts +15 -10
  30. package/dist/generated/gdk/device.js +28 -5
  31. package/dist/generated/gdk/display-manager.d.ts +6 -5
  32. package/dist/generated/gdk/display-manager.js +13 -3
  33. package/dist/generated/gdk/display.d.ts +21 -11
  34. package/dist/generated/gdk/display.js +56 -14
  35. package/dist/generated/gdk/dmabuf-formats.js +8 -3
  36. package/dist/generated/gdk/dmabuf-texture-builder.d.ts +17 -14
  37. package/dist/generated/gdk/dmabuf-texture-builder.js +51 -14
  38. package/dist/generated/gdk/dndevent.d.ts +2 -1
  39. package/dist/generated/gdk/dndevent.js +7 -1
  40. package/dist/generated/gdk/drag-surface.d.ts +4 -3
  41. package/dist/generated/gdk/drag-surface.js +7 -28
  42. package/dist/generated/gdk/drag.d.ts +15 -11
  43. package/dist/generated/gdk/drag.js +44 -9
  44. package/dist/generated/gdk/draw-context.d.ts +9 -6
  45. package/dist/generated/gdk/draw-context.js +33 -6
  46. package/dist/generated/gdk/drop.d.ts +17 -13
  47. package/dist/generated/gdk/drop.js +57 -68
  48. package/dist/generated/gdk/event.d.ts +15 -10
  49. package/dist/generated/gdk/event.js +51 -10
  50. package/dist/generated/gdk/file-list.d.ts +2 -1
  51. package/dist/generated/gdk/file-list.js +2 -2
  52. package/dist/generated/gdk/frame-clock.d.ts +1 -1
  53. package/dist/generated/gdk/frame-clock.js +13 -2
  54. package/dist/generated/gdk/frame-timings.js +6 -1
  55. package/dist/generated/gdk/functions.d.ts +31 -22
  56. package/dist/generated/gdk/functions.js +195 -71
  57. package/dist/generated/gdk/glcontext.d.ts +3 -5
  58. package/dist/generated/gdk/glcontext.js +7 -18
  59. package/dist/generated/gdk/gltexture-builder.d.ts +17 -14
  60. package/dist/generated/gdk/gltexture-builder.js +52 -14
  61. package/dist/generated/gdk/gltexture.d.ts +2 -1
  62. package/dist/generated/gdk/gltexture.js +3 -3
  63. package/dist/generated/gdk/grab-broken-event.d.ts +2 -1
  64. package/dist/generated/gdk/grab-broken-event.js +7 -1
  65. package/dist/generated/gdk/index.d.ts +21 -21
  66. package/dist/generated/gdk/index.js +21 -21
  67. package/dist/generated/gdk/memory-texture-builder.d.ts +17 -14
  68. package/dist/generated/gdk/memory-texture-builder.js +59 -16
  69. package/dist/generated/gdk/memory-texture.d.ts +2 -1
  70. package/dist/generated/gdk/memory-texture.js +3 -3
  71. package/dist/generated/gdk/monitor.d.ts +4 -3
  72. package/dist/generated/gdk/monitor.js +7 -1
  73. package/dist/generated/gdk/paintable.d.ts +7 -5
  74. package/dist/generated/gdk/paintable.js +14 -31
  75. package/dist/generated/gdk/popup-layout.d.ts +1 -1
  76. package/dist/generated/gdk/popup-layout.js +22 -6
  77. package/dist/generated/gdk/popup.d.ts +7 -6
  78. package/dist/generated/gdk/popup.js +15 -8
  79. package/dist/generated/gdk/rectangle.js +3 -3
  80. package/dist/generated/gdk/rgba.js +7 -2
  81. package/dist/generated/gdk/scroll-event.d.ts +1 -1
  82. package/dist/generated/gdk/scroll-event.js +1 -1
  83. package/dist/generated/gdk/seat.d.ts +6 -4
  84. package/dist/generated/gdk/seat.js +19 -3
  85. package/dist/generated/gdk/surface.d.ts +28 -20
  86. package/dist/generated/gdk/surface.js +76 -25
  87. package/dist/generated/gdk/texture-downloader.d.ts +8 -6
  88. package/dist/generated/gdk/texture-downloader.js +49 -11
  89. package/dist/generated/gdk/texture.d.ts +22 -7
  90. package/dist/generated/gdk/texture.js +151 -10
  91. package/dist/generated/gdk/toplevel-layout.d.ts +3 -2
  92. package/dist/generated/gdk/toplevel-layout.js +21 -5
  93. package/dist/generated/gdk/toplevel.d.ts +14 -31
  94. package/dist/generated/gdk/toplevel.js +14 -98
  95. package/dist/generated/gdkpixbuf/index.d.ts +2 -2
  96. package/dist/generated/gdkpixbuf/index.js +2 -2
  97. package/dist/generated/gdkpixbuf/pixbuf-animation-iter.d.ts +2 -1
  98. package/dist/generated/gdkpixbuf/pixbuf-animation-iter.js +8 -2
  99. package/dist/generated/gdkpixbuf/pixbuf-animation.d.ts +9 -6
  100. package/dist/generated/gdkpixbuf/pixbuf-animation.js +32 -15
  101. package/dist/generated/gdkpixbuf/pixbuf-format.js +6 -1
  102. package/dist/generated/gdkpixbuf/pixbuf-loader.d.ts +7 -4
  103. package/dist/generated/gdkpixbuf/pixbuf-loader.js +28 -6
  104. package/dist/generated/gdkpixbuf/pixbuf-non-anim.d.ts +2 -1
  105. package/dist/generated/gdkpixbuf/pixbuf-non-anim.js +1 -1
  106. package/dist/generated/gdkpixbuf/pixbuf-simple-anim.d.ts +2 -1
  107. package/dist/generated/gdkpixbuf/pixbuf-simple-anim.js +1 -1
  108. package/dist/generated/gdkpixbuf/pixbuf.d.ts +35 -35
  109. package/dist/generated/gdkpixbuf/pixbuf.js +153 -131
  110. package/dist/generated/gio/action-group.d.ts +13 -11
  111. package/dist/generated/gio/action-group.js +106 -55
  112. package/dist/generated/gio/action-map.d.ts +7 -4
  113. package/dist/generated/gio/action-map.js +16 -3
  114. package/dist/generated/gio/action.d.ts +11 -13
  115. package/dist/generated/gio/action.js +68 -27
  116. package/dist/generated/gio/app-info.d.ts +15 -9
  117. package/dist/generated/gio/app-info.js +31 -13
  118. package/dist/generated/gio/app-launch-context.d.ts +3 -2
  119. package/dist/generated/gio/app-launch-context.js +6 -6
  120. package/dist/generated/gio/application-command-line.d.ts +7 -4
  121. package/dist/generated/gio/application-command-line.js +39 -6
  122. package/dist/generated/gio/application.d.ts +38 -10
  123. package/dist/generated/gio/application.js +382 -11
  124. package/dist/generated/gio/async-initable.d.ts +10 -5
  125. package/dist/generated/gio/async-initable.js +19 -7
  126. package/dist/generated/gio/async-result.d.ts +6 -3
  127. package/dist/generated/gio/async-result.js +15 -2
  128. package/dist/generated/gio/buffered-input-stream.d.ts +15 -6
  129. package/dist/generated/gio/buffered-input-stream.js +106 -14
  130. package/dist/generated/gio/buffered-output-stream.d.ts +10 -2
  131. package/dist/generated/gio/buffered-output-stream.js +97 -4
  132. package/dist/generated/gio/bytes-icon.d.ts +16 -3
  133. package/dist/generated/gio/bytes-icon.js +163 -4
  134. package/dist/generated/gio/cancellable.d.ts +3 -2
  135. package/dist/generated/gio/cancellable.js +18 -7
  136. package/dist/generated/gio/charset-converter.d.ts +8 -0
  137. package/dist/generated/gio/charset-converter.js +133 -0
  138. package/dist/generated/gio/converter-input-stream.d.ts +12 -3
  139. package/dist/generated/gio/converter-input-stream.js +91 -3
  140. package/dist/generated/gio/converter-output-stream.d.ts +14 -3
  141. package/dist/generated/gio/converter-output-stream.js +128 -3
  142. package/dist/generated/gio/converter.d.ts +6 -3
  143. package/dist/generated/gio/converter.js +24 -7
  144. package/dist/generated/gio/credentials.d.ts +1 -1
  145. package/dist/generated/gio/credentials.js +3 -3
  146. package/dist/generated/gio/data-input-stream.d.ts +21 -19
  147. package/dist/generated/gio/data-input-stream.js +26 -54
  148. package/dist/generated/gio/data-output-stream.d.ts +17 -9
  149. package/dist/generated/gio/data-output-stream.js +101 -9
  150. package/dist/generated/gio/datagram-based.d.ts +11 -7
  151. package/dist/generated/gio/datagram-based.js +29 -11
  152. package/dist/generated/gio/dbus-action-group.d.ts +20 -1
  153. package/dist/generated/gio/dbus-action-group.js +338 -1
  154. package/dist/generated/gio/dbus-annotation-info.js +6 -1
  155. package/dist/generated/gio/dbus-arg-info.d.ts +1 -1
  156. package/dist/generated/gio/dbus-arg-info.js +6 -1
  157. package/dist/generated/gio/dbus-auth-observer.d.ts +3 -1
  158. package/dist/generated/gio/dbus-auth-observer.js +2 -2
  159. package/dist/generated/gio/dbus-connection.d.ts +46 -31
  160. package/dist/generated/gio/dbus-connection.js +343 -112
  161. package/dist/generated/gio/dbus-interface-info.d.ts +6 -5
  162. package/dist/generated/gio/dbus-interface-info.js +29 -6
  163. package/dist/generated/gio/dbus-interface-skeleton.d.ts +12 -6
  164. package/dist/generated/gio/dbus-interface-skeleton.js +69 -7
  165. package/dist/generated/gio/dbus-interface.d.ts +9 -6
  166. package/dist/generated/gio/dbus-interface.js +28 -4
  167. package/dist/generated/gio/dbus-menu-model.d.ts +2 -1
  168. package/dist/generated/gio/dbus-menu-model.js +1 -1
  169. package/dist/generated/gio/dbus-message.d.ts +13 -11
  170. package/dist/generated/gio/dbus-message.js +78 -19
  171. package/dist/generated/gio/dbus-method-info.d.ts +2 -2
  172. package/dist/generated/gio/dbus-method-info.js +6 -1
  173. package/dist/generated/gio/dbus-method-invocation.d.ts +13 -9
  174. package/dist/generated/gio/dbus-method-invocation.js +59 -16
  175. package/dist/generated/gio/dbus-node-info.d.ts +4 -3
  176. package/dist/generated/gio/dbus-node-info.js +15 -4
  177. package/dist/generated/gio/dbus-object-manager-client.d.ts +22 -8
  178. package/dist/generated/gio/dbus-object-manager-client.js +203 -23
  179. package/dist/generated/gio/dbus-object-manager-server.d.ts +15 -7
  180. package/dist/generated/gio/dbus-object-manager-server.js +67 -5
  181. package/dist/generated/gio/dbus-object-manager.d.ts +8 -5
  182. package/dist/generated/gio/dbus-object-manager.js +21 -39
  183. package/dist/generated/gio/dbus-object-proxy.d.ts +8 -3
  184. package/dist/generated/gio/dbus-object-proxy.js +42 -2
  185. package/dist/generated/gio/dbus-object-skeleton.d.ts +7 -2
  186. package/dist/generated/gio/dbus-object-skeleton.js +36 -2
  187. package/dist/generated/gio/dbus-object.d.ts +6 -4
  188. package/dist/generated/gio/dbus-object.js +14 -30
  189. package/dist/generated/gio/dbus-property-info.d.ts +1 -1
  190. package/dist/generated/gio/dbus-property-info.js +6 -1
  191. package/dist/generated/gio/dbus-proxy.d.ts +32 -17
  192. package/dist/generated/gio/dbus-proxy.js +306 -57
  193. package/dist/generated/gio/dbus-server.d.ts +5 -2
  194. package/dist/generated/gio/dbus-server.js +31 -2
  195. package/dist/generated/gio/dbus-signal-info.d.ts +2 -2
  196. package/dist/generated/gio/dbus-signal-info.js +6 -1
  197. package/dist/generated/gio/debug-controller-dbus.d.ts +7 -2
  198. package/dist/generated/gio/debug-controller-dbus.js +51 -2
  199. package/dist/generated/gio/debug-controller.d.ts +4 -4
  200. package/dist/generated/gio/debug-controller.js +7 -6
  201. package/dist/generated/gio/drive.d.ts +20 -15
  202. package/dist/generated/gio/drive.js +43 -56
  203. package/dist/generated/gio/dtls-client-connection.d.ts +7 -9
  204. package/dist/generated/gio/dtls-client-connection.js +15 -17
  205. package/dist/generated/gio/dtls-connection.d.ts +28 -39
  206. package/dist/generated/gio/dtls-connection.js +60 -109
  207. package/dist/generated/gio/dtls-server-connection.d.ts +4 -5
  208. package/dist/generated/gio/dtls-server-connection.js +5 -4
  209. package/dist/generated/gio/emblem.d.ts +11 -4
  210. package/dist/generated/gio/emblem.js +56 -3
  211. package/dist/generated/gio/emblemed-icon.d.ts +11 -4
  212. package/dist/generated/gio/emblemed-icon.js +57 -4
  213. package/dist/generated/gio/file-attribute-info-list.js +12 -2
  214. package/dist/generated/gio/file-attribute-matcher.js +13 -3
  215. package/dist/generated/gio/file-enumerator.d.ts +13 -9
  216. package/dist/generated/gio/file-enumerator.js +32 -16
  217. package/dist/generated/gio/file-icon.d.ts +17 -3
  218. package/dist/generated/gio/file-icon.js +157 -2
  219. package/dist/generated/gio/file-info.d.ts +19 -16
  220. package/dist/generated/gio/file-info.js +100 -25
  221. package/dist/generated/gio/file-input-stream.d.ts +12 -3
  222. package/dist/generated/gio/file-input-stream.js +110 -9
  223. package/dist/generated/gio/file-iostream.d.ts +12 -3
  224. package/dist/generated/gio/file-iostream.js +110 -9
  225. package/dist/generated/gio/file-monitor.d.ts +2 -1
  226. package/dist/generated/gio/file-monitor.js +2 -2
  227. package/dist/generated/gio/file-output-stream.d.ts +12 -3
  228. package/dist/generated/gio/file-output-stream.js +110 -9
  229. package/dist/generated/gio/file.d.ts +139 -124
  230. package/dist/generated/gio/file.js +506 -303
  231. package/dist/generated/gio/filter-input-stream.d.ts +2 -2
  232. package/dist/generated/gio/filter-input-stream.js +6 -1
  233. package/dist/generated/gio/filter-output-stream.d.ts +2 -2
  234. package/dist/generated/gio/filter-output-stream.js +6 -1
  235. package/dist/generated/gio/functions.d.ts +107 -79
  236. package/dist/generated/gio/functions.js +484 -217
  237. package/dist/generated/gio/icon.d.ts +7 -4
  238. package/dist/generated/gio/icon.js +21 -3
  239. package/dist/generated/gio/index.d.ts +61 -61
  240. package/dist/generated/gio/index.js +61 -61
  241. package/dist/generated/gio/inet-address-mask.d.ts +9 -6
  242. package/dist/generated/gio/inet-address-mask.js +39 -4
  243. package/dist/generated/gio/inet-address.d.ts +1 -1
  244. package/dist/generated/gio/inet-address.js +1 -1
  245. package/dist/generated/gio/inet-socket-address.d.ts +4 -3
  246. package/dist/generated/gio/inet-socket-address.js +8 -2
  247. package/dist/generated/gio/initable.d.ts +6 -3
  248. package/dist/generated/gio/initable.js +8 -1
  249. package/dist/generated/gio/input-stream.d.ts +18 -15
  250. package/dist/generated/gio/input-stream.js +58 -39
  251. package/dist/generated/gio/iostream.d.ts +13 -9
  252. package/dist/generated/gio/iostream.js +24 -12
  253. package/dist/generated/gio/list-model.d.ts +6 -4
  254. package/dist/generated/gio/list-model.js +14 -33
  255. package/dist/generated/gio/list-store.d.ts +13 -7
  256. package/dist/generated/gio/list-store.js +76 -10
  257. package/dist/generated/gio/loadable-icon.d.ts +10 -5
  258. package/dist/generated/gio/loadable-icon.js +25 -9
  259. package/dist/generated/gio/memory-input-stream.d.ts +14 -2
  260. package/dist/generated/gio/memory-input-stream.js +182 -8
  261. package/dist/generated/gio/memory-monitor.d.ts +4 -3
  262. package/dist/generated/gio/memory-monitor.js +6 -30
  263. package/dist/generated/gio/memory-output-stream.d.ts +15 -1
  264. package/dist/generated/gio/memory-output-stream.js +226 -5
  265. package/dist/generated/gio/menu-attribute-iter.d.ts +3 -2
  266. package/dist/generated/gio/menu-attribute-iter.js +21 -3
  267. package/dist/generated/gio/menu-item.d.ts +14 -11
  268. package/dist/generated/gio/menu-item.js +46 -17
  269. package/dist/generated/gio/menu-link-iter.d.ts +3 -2
  270. package/dist/generated/gio/menu-link-iter.js +7 -1
  271. package/dist/generated/gio/menu-model.d.ts +7 -4
  272. package/dist/generated/gio/menu-model.js +40 -8
  273. package/dist/generated/gio/menu.d.ts +10 -9
  274. package/dist/generated/gio/menu.js +9 -9
  275. package/dist/generated/gio/mount-operation.js +1 -1
  276. package/dist/generated/gio/mount.d.ts +30 -22
  277. package/dist/generated/gio/mount.js +75 -64
  278. package/dist/generated/gio/native-socket-address.js +2 -2
  279. package/dist/generated/gio/network-address.d.ts +4 -0
  280. package/dist/generated/gio/network-address.js +35 -0
  281. package/dist/generated/gio/network-monitor.d.ts +10 -9
  282. package/dist/generated/gio/network-monitor.js +14 -44
  283. package/dist/generated/gio/network-service.d.ts +4 -0
  284. package/dist/generated/gio/network-service.js +35 -0
  285. package/dist/generated/gio/notification.d.ts +5 -3
  286. package/dist/generated/gio/notification.js +13 -5
  287. package/dist/generated/gio/output-stream.d.ts +30 -26
  288. package/dist/generated/gio/output-stream.js +61 -61
  289. package/dist/generated/gio/permission.d.ts +8 -6
  290. package/dist/generated/gio/permission.js +10 -10
  291. package/dist/generated/gio/pollable-input-stream.d.ts +8 -4
  292. package/dist/generated/gio/pollable-input-stream.js +23 -5
  293. package/dist/generated/gio/pollable-output-stream.d.ts +9 -5
  294. package/dist/generated/gio/pollable-output-stream.js +25 -7
  295. package/dist/generated/gio/power-profile-monitor.d.ts +4 -3
  296. package/dist/generated/gio/power-profile-monitor.js +7 -3
  297. package/dist/generated/gio/property-action.d.ts +14 -4
  298. package/dist/generated/gio/property-action.js +122 -1
  299. package/dist/generated/gio/proxy-address-enumerator.d.ts +5 -3
  300. package/dist/generated/gio/proxy-address.d.ts +2 -1
  301. package/dist/generated/gio/proxy-address.js +1 -1
  302. package/dist/generated/gio/proxy-resolver.d.ts +9 -5
  303. package/dist/generated/gio/proxy-resolver.js +12 -5
  304. package/dist/generated/gio/proxy.d.ts +11 -5
  305. package/dist/generated/gio/proxy.js +29 -13
  306. package/dist/generated/gio/remote-action-group.d.ts +7 -4
  307. package/dist/generated/gio/remote-action-group.js +31 -8
  308. package/dist/generated/gio/resolver.d.ts +18 -15
  309. package/dist/generated/gio/resolver.js +29 -29
  310. package/dist/generated/gio/resource.d.ts +5 -3
  311. package/dist/generated/gio/resource.js +28 -8
  312. package/dist/generated/gio/seekable.d.ts +8 -4
  313. package/dist/generated/gio/seekable.js +10 -3
  314. package/dist/generated/gio/settings-backend.d.ts +3 -2
  315. package/dist/generated/gio/settings-backend.js +16 -9
  316. package/dist/generated/gio/settings-schema-key.d.ts +5 -4
  317. package/dist/generated/gio/settings-schema-key.js +49 -9
  318. package/dist/generated/gio/settings-schema-source.d.ts +1 -1
  319. package/dist/generated/gio/settings-schema-source.js +14 -3
  320. package/dist/generated/gio/settings-schema.d.ts +1 -1
  321. package/dist/generated/gio/settings-schema.js +13 -2
  322. package/dist/generated/gio/settings.d.ts +22 -18
  323. package/dist/generated/gio/settings.js +101 -33
  324. package/dist/generated/gio/simple-action-group.d.ts +24 -2
  325. package/dist/generated/gio/simple-action-group.js +367 -3
  326. package/dist/generated/gio/simple-action.d.ts +17 -8
  327. package/dist/generated/gio/simple-action.js +157 -12
  328. package/dist/generated/gio/simple-async-result.d.ts +17 -9
  329. package/dist/generated/gio/simple-async-result.js +87 -29
  330. package/dist/generated/gio/simple-iostream.d.ts +5 -3
  331. package/dist/generated/gio/simple-iostream.js +2 -2
  332. package/dist/generated/gio/simple-proxy-resolver.d.ts +8 -1
  333. package/dist/generated/gio/simple-proxy-resolver.js +93 -0
  334. package/dist/generated/gio/socket-address-enumerator.d.ts +6 -3
  335. package/dist/generated/gio/socket-address-enumerator.js +18 -9
  336. package/dist/generated/gio/socket-address.d.ts +4 -0
  337. package/dist/generated/gio/socket-address.js +39 -4
  338. package/dist/generated/gio/socket-client.d.ts +26 -20
  339. package/dist/generated/gio/socket-client.js +87 -42
  340. package/dist/generated/gio/socket-connectable.d.ts +7 -4
  341. package/dist/generated/gio/socket-connectable.js +20 -2
  342. package/dist/generated/gio/socket-connection.d.ts +11 -7
  343. package/dist/generated/gio/socket-connection.js +27 -12
  344. package/dist/generated/gio/socket-control-message.js +2 -2
  345. package/dist/generated/gio/socket-listener.d.ts +16 -10
  346. package/dist/generated/gio/socket-listener.js +41 -24
  347. package/dist/generated/gio/socket.d.ts +38 -30
  348. package/dist/generated/gio/socket.js +140 -59
  349. package/dist/generated/gio/srv-target.js +7 -2
  350. package/dist/generated/gio/subprocess-launcher.d.ts +4 -2
  351. package/dist/generated/gio/subprocess-launcher.js +17 -7
  352. package/dist/generated/gio/subprocess.d.ts +22 -16
  353. package/dist/generated/gio/subprocess.js +106 -33
  354. package/dist/generated/gio/task.d.ts +19 -12
  355. package/dist/generated/gio/task.js +109 -35
  356. package/dist/generated/gio/tcp-wrapper-connection.d.ts +5 -3
  357. package/dist/generated/gio/tcp-wrapper-connection.js +9 -3
  358. package/dist/generated/gio/themed-icon.d.ts +6 -0
  359. package/dist/generated/gio/themed-icon.js +47 -0
  360. package/dist/generated/gio/tls-backend.d.ts +7 -4
  361. package/dist/generated/gio/tls-backend.js +15 -2
  362. package/dist/generated/gio/tls-certificate.d.ts +16 -14
  363. package/dist/generated/gio/tls-certificate.js +60 -14
  364. package/dist/generated/gio/tls-client-connection.d.ts +8 -12
  365. package/dist/generated/gio/tls-client-connection.js +16 -24
  366. package/dist/generated/gio/tls-connection.d.ts +26 -20
  367. package/dist/generated/gio/tls-connection.js +43 -14
  368. package/dist/generated/gio/tls-database.d.ts +19 -13
  369. package/dist/generated/gio/tls-database.js +72 -47
  370. package/dist/generated/gio/tls-file-database.d.ts +4 -4
  371. package/dist/generated/gio/tls-file-database.js +5 -4
  372. package/dist/generated/gio/tls-interaction.d.ts +12 -8
  373. package/dist/generated/gio/tls-interaction.js +18 -18
  374. package/dist/generated/gio/tls-password.js +3 -3
  375. package/dist/generated/gio/tls-server-connection.d.ts +4 -5
  376. package/dist/generated/gio/tls-server-connection.js +5 -4
  377. package/dist/generated/gio/unix-connection.d.ts +11 -8
  378. package/dist/generated/gio/unix-connection.js +25 -16
  379. package/dist/generated/gio/unix-credentials-message.d.ts +4 -3
  380. package/dist/generated/gio/unix-credentials-message.js +8 -2
  381. package/dist/generated/gio/unix-socket-address.d.ts +2 -1
  382. package/dist/generated/gio/vfs.d.ts +4 -3
  383. package/dist/generated/gio/vfs.js +23 -7
  384. package/dist/generated/gio/volume-monitor.d.ts +5 -3
  385. package/dist/generated/gio/volume-monitor.js +15 -3
  386. package/dist/generated/gio/volume.d.ts +22 -14
  387. package/dist/generated/gio/volume.js +55 -48
  388. package/dist/generated/gio/zlib-compressor.d.ts +11 -5
  389. package/dist/generated/gio/zlib-compressor.js +113 -2
  390. package/dist/generated/gio/zlib-decompressor.d.ts +9 -3
  391. package/dist/generated/gio/zlib-decompressor.js +112 -1
  392. package/dist/generated/glib/array.js +26 -26
  393. package/dist/generated/glib/bookmark-file.d.ts +1 -1
  394. package/dist/generated/glib/bookmark-file.js +35 -17
  395. package/dist/generated/glib/byte-array.d.ts +1 -1
  396. package/dist/generated/glib/byte-array.js +15 -15
  397. package/dist/generated/glib/bytes.d.ts +1 -1
  398. package/dist/generated/glib/bytes.js +32 -16
  399. package/dist/generated/glib/checksum.js +7 -2
  400. package/dist/generated/glib/date-time.d.ts +1 -1
  401. package/dist/generated/glib/date-time.js +96 -25
  402. package/dist/generated/glib/date.js +32 -27
  403. package/dist/generated/glib/dir.js +6 -1
  404. package/dist/generated/glib/error.js +9 -4
  405. package/dist/generated/glib/functions.d.ts +16 -16
  406. package/dist/generated/glib/functions.js +780 -555
  407. package/dist/generated/glib/hash-table.d.ts +1 -1
  408. package/dist/generated/glib/hash-table.js +44 -44
  409. package/dist/generated/glib/hmac.js +15 -5
  410. package/dist/generated/glib/index.d.ts +1 -1
  411. package/dist/generated/glib/index.js +1 -1
  412. package/dist/generated/glib/iochannel.d.ts +1 -1
  413. package/dist/generated/glib/iochannel.js +16 -11
  414. package/dist/generated/glib/key-file.d.ts +1 -1
  415. package/dist/generated/glib/key-file.js +13 -8
  416. package/dist/generated/glib/main-context.d.ts +2 -2
  417. package/dist/generated/glib/main-context.js +36 -15
  418. package/dist/generated/glib/main-loop.d.ts +1 -1
  419. package/dist/generated/glib/main-loop.js +14 -3
  420. package/dist/generated/glib/mapped-file.d.ts +1 -1
  421. package/dist/generated/glib/mapped-file.js +13 -2
  422. package/dist/generated/glib/markup-parse-context.js +12 -7
  423. package/dist/generated/glib/match-info.d.ts +1 -1
  424. package/dist/generated/glib/match-info.js +13 -2
  425. package/dist/generated/glib/option-group.js +10 -5
  426. package/dist/generated/glib/pattern-spec.js +8 -3
  427. package/dist/generated/glib/ptr-array.js +51 -51
  428. package/dist/generated/glib/rand.js +6 -1
  429. package/dist/generated/glib/regex.d.ts +1 -1
  430. package/dist/generated/glib/regex.js +14 -9
  431. package/dist/generated/glib/source.d.ts +2 -2
  432. package/dist/generated/glib/source.js +37 -21
  433. package/dist/generated/glib/string.d.ts +1 -1
  434. package/dist/generated/glib/string.js +173 -47
  435. package/dist/generated/glib/strv-builder.js +6 -1
  436. package/dist/generated/glib/thread.js +14 -9
  437. package/dist/generated/glib/time-zone.js +6 -1
  438. package/dist/generated/glib/tree.js +30 -25
  439. package/dist/generated/glib/uri.d.ts +2 -2
  440. package/dist/generated/glib/uri.js +15 -6
  441. package/dist/generated/glib/variant-builder.d.ts +2 -2
  442. package/dist/generated/glib/variant-builder.js +18 -7
  443. package/dist/generated/glib/variant-dict.d.ts +2 -2
  444. package/dist/generated/glib/variant-dict.js +23 -7
  445. package/dist/generated/glib/variant-type.js +42 -12
  446. package/dist/generated/glib/variant.d.ts +4 -4
  447. package/dist/generated/glib/variant.js +110 -47
  448. package/dist/generated/gmodule/index.d.ts +1 -1
  449. package/dist/generated/gmodule/index.js +1 -1
  450. package/dist/generated/gobject/binding-group.d.ts +8 -8
  451. package/dist/generated/gobject/binding-group.js +14 -9
  452. package/dist/generated/gobject/binding.d.ts +6 -6
  453. package/dist/generated/gobject/binding.js +24 -4
  454. package/dist/generated/gobject/closure.d.ts +3 -2
  455. package/dist/generated/gobject/closure.js +24 -19
  456. package/dist/generated/gobject/functions.d.ts +64 -60
  457. package/dist/generated/gobject/functions.js +462 -293
  458. package/dist/generated/gobject/index.d.ts +6 -6
  459. package/dist/generated/gobject/index.js +6 -6
  460. package/dist/generated/gobject/object.d.ts +15 -13
  461. package/dist/generated/gobject/object.js +78 -49
  462. package/dist/generated/gobject/param-spec.d.ts +4 -4
  463. package/dist/generated/gobject/param-spec.js +28 -7
  464. package/dist/generated/gobject/signal-group.d.ts +5 -6
  465. package/dist/generated/gobject/signal-group.js +17 -32
  466. package/dist/generated/gobject/type-module.d.ts +2 -0
  467. package/dist/generated/gobject/type-module.js +42 -2
  468. package/dist/generated/gobject/type-plugin.d.ts +4 -2
  469. package/dist/generated/gobject/type-plugin.js +10 -3
  470. package/dist/generated/gobject/value-array.d.ts +1 -1
  471. package/dist/generated/gobject/value-array.js +53 -12
  472. package/dist/generated/gobject/value.d.ts +15 -12
  473. package/dist/generated/gobject/value.js +91 -30
  474. package/dist/generated/graphene/box.d.ts +3 -3
  475. package/dist/generated/graphene/box.js +42 -17
  476. package/dist/generated/graphene/euler.d.ts +3 -3
  477. package/dist/generated/graphene/euler.js +47 -12
  478. package/dist/generated/graphene/frustum.d.ts +5 -5
  479. package/dist/generated/graphene/frustum.js +30 -15
  480. package/dist/generated/graphene/functions.d.ts +8 -8
  481. package/dist/generated/graphene/functions.js +164 -26
  482. package/dist/generated/graphene/index.d.ts +1 -1
  483. package/dist/generated/graphene/index.js +1 -1
  484. package/dist/generated/graphene/matrix.d.ts +11 -11
  485. package/dist/generated/graphene/matrix.js +115 -50
  486. package/dist/generated/graphene/plane.d.ts +4 -4
  487. package/dist/generated/graphene/plane.js +42 -17
  488. package/dist/generated/graphene/point.d.ts +1 -1
  489. package/dist/generated/graphene/point.js +24 -9
  490. package/dist/generated/graphene/point3d.d.ts +2 -2
  491. package/dist/generated/graphene/point3d.js +27 -12
  492. package/dist/generated/graphene/quad.d.ts +2 -2
  493. package/dist/generated/graphene/quad.js +31 -10
  494. package/dist/generated/graphene/quaternion.d.ts +4 -4
  495. package/dist/generated/graphene/quaternion.js +64 -19
  496. package/dist/generated/graphene/ray.d.ts +6 -6
  497. package/dist/generated/graphene/ray.js +33 -18
  498. package/dist/generated/graphene/rect.d.ts +3 -3
  499. package/dist/generated/graphene/rect.js +44 -14
  500. package/dist/generated/graphene/size.js +15 -5
  501. package/dist/generated/graphene/sphere.d.ts +3 -3
  502. package/dist/generated/graphene/sphere.js +25 -10
  503. package/dist/generated/graphene/triangle.d.ts +5 -5
  504. package/dist/generated/graphene/triangle.js +31 -16
  505. package/dist/generated/graphene/vec2.js +29 -14
  506. package/dist/generated/graphene/vec3.d.ts +2 -2
  507. package/dist/generated/graphene/vec3.js +30 -15
  508. package/dist/generated/graphene/vec4.d.ts +2 -2
  509. package/dist/generated/graphene/vec4.js +43 -18
  510. package/dist/generated/gsk/blend-node.d.ts +3 -3
  511. package/dist/generated/gsk/blend-node.js +14 -4
  512. package/dist/generated/gsk/blur-node.d.ts +2 -2
  513. package/dist/generated/gsk/blur-node.js +7 -2
  514. package/dist/generated/gsk/border-node.d.ts +3 -2
  515. package/dist/generated/gsk/border-node.js +13 -3
  516. package/dist/generated/gsk/cairo-node.d.ts +5 -3
  517. package/dist/generated/gsk/cairo-node.js +31 -6
  518. package/dist/generated/gsk/clip-node.d.ts +4 -3
  519. package/dist/generated/gsk/clip-node.js +26 -6
  520. package/dist/generated/gsk/color-matrix-node.d.ts +5 -4
  521. package/dist/generated/gsk/color-matrix-node.js +44 -10
  522. package/dist/generated/gsk/color-node.d.ts +4 -2
  523. package/dist/generated/gsk/color-node.js +21 -6
  524. package/dist/generated/gsk/component-transfer-node.d.ts +3 -3
  525. package/dist/generated/gsk/component-transfer-node.js +18 -7
  526. package/dist/generated/gsk/component-transfer.js +8 -3
  527. package/dist/generated/gsk/conic-gradient-node.d.ts +3 -2
  528. package/dist/generated/gsk/conic-gradient-node.js +26 -7
  529. package/dist/generated/gsk/container-node.d.ts +2 -2
  530. package/dist/generated/gsk/container-node.js +6 -1
  531. package/dist/generated/gsk/cross-fade-node.d.ts +3 -3
  532. package/dist/generated/gsk/cross-fade-node.js +14 -4
  533. package/dist/generated/gsk/debug-node.d.ts +2 -2
  534. package/dist/generated/gsk/debug-node.js +7 -2
  535. package/dist/generated/gsk/fill-node.d.ts +3 -3
  536. package/dist/generated/gsk/fill-node.js +15 -4
  537. package/dist/generated/gsk/functions.d.ts +8 -6
  538. package/dist/generated/gsk/functions.js +34 -17
  539. package/dist/generated/gsk/glshader-node.d.ts +7 -4
  540. package/dist/generated/gsk/glshader-node.js +35 -9
  541. package/dist/generated/gsk/glshader.d.ts +16 -13
  542. package/dist/generated/gsk/glshader.js +73 -30
  543. package/dist/generated/gsk/index.d.ts +11 -11
  544. package/dist/generated/gsk/index.js +11 -11
  545. package/dist/generated/gsk/inset-shadow-node.d.ts +3 -2
  546. package/dist/generated/gsk/inset-shadow-node.js +16 -5
  547. package/dist/generated/gsk/linear-gradient-node.d.ts +4 -3
  548. package/dist/generated/gsk/linear-gradient-node.js +44 -11
  549. package/dist/generated/gsk/mask-node.d.ts +3 -3
  550. package/dist/generated/gsk/mask-node.js +14 -4
  551. package/dist/generated/gsk/opacity-node.d.ts +2 -2
  552. package/dist/generated/gsk/opacity-node.js +7 -2
  553. package/dist/generated/gsk/outset-shadow-node.d.ts +3 -2
  554. package/dist/generated/gsk/outset-shadow-node.js +16 -5
  555. package/dist/generated/gsk/path-builder.d.ts +9 -7
  556. package/dist/generated/gsk/path-builder.js +53 -18
  557. package/dist/generated/gsk/path-measure.d.ts +2 -2
  558. package/dist/generated/gsk/path-measure.js +15 -4
  559. package/dist/generated/gsk/path-point.d.ts +6 -5
  560. package/dist/generated/gsk/path-point.js +37 -11
  561. package/dist/generated/gsk/path.d.ts +11 -8
  562. package/dist/generated/gsk/path.js +46 -15
  563. package/dist/generated/gsk/radial-gradient-node.d.ts +3 -2
  564. package/dist/generated/gsk/radial-gradient-node.js +26 -7
  565. package/dist/generated/gsk/render-node.d.ts +9 -6
  566. package/dist/generated/gsk/render-node.js +44 -10
  567. package/dist/generated/gsk/renderer.d.ts +11 -7
  568. package/dist/generated/gsk/renderer.js +30 -11
  569. package/dist/generated/gsk/repeat-node.d.ts +4 -3
  570. package/dist/generated/gsk/repeat-node.js +32 -8
  571. package/dist/generated/gsk/repeating-linear-gradient-node.d.ts +2 -1
  572. package/dist/generated/gsk/repeating-linear-gradient-node.js +19 -7
  573. package/dist/generated/gsk/repeating-radial-gradient-node.d.ts +2 -1
  574. package/dist/generated/gsk/repeating-radial-gradient-node.js +13 -5
  575. package/dist/generated/gsk/rounded-clip-node.d.ts +2 -2
  576. package/dist/generated/gsk/rounded-clip-node.js +8 -3
  577. package/dist/generated/gsk/shader-args-builder.d.ts +9 -6
  578. package/dist/generated/gsk/shader-args-builder.js +52 -14
  579. package/dist/generated/gsk/shadow-node.d.ts +2 -2
  580. package/dist/generated/gsk/shadow-node.js +9 -4
  581. package/dist/generated/gsk/stroke-node.d.ts +4 -4
  582. package/dist/generated/gsk/stroke-node.js +23 -6
  583. package/dist/generated/gsk/stroke.d.ts +2 -1
  584. package/dist/generated/gsk/stroke.js +15 -6
  585. package/dist/generated/gsk/subsurface-node.d.ts +4 -3
  586. package/dist/generated/gsk/subsurface-node.js +9 -4
  587. package/dist/generated/gsk/text-node.d.ts +7 -4
  588. package/dist/generated/gsk/text-node.js +48 -12
  589. package/dist/generated/gsk/texture-node.d.ts +4 -2
  590. package/dist/generated/gsk/texture-node.js +14 -4
  591. package/dist/generated/gsk/texture-scale-node.d.ts +4 -2
  592. package/dist/generated/gsk/texture-scale-node.js +14 -4
  593. package/dist/generated/gsk/transform-node.d.ts +3 -3
  594. package/dist/generated/gsk/transform-node.js +15 -4
  595. package/dist/generated/gsk/transform.d.ts +10 -8
  596. package/dist/generated/gsk/transform.js +142 -32
  597. package/dist/generated/gtk/about-dialog.d.ts +5 -4
  598. package/dist/generated/gtk/about-dialog.js +8 -2
  599. package/dist/generated/gtk/accessible-list.d.ts +2 -1
  600. package/dist/generated/gtk/accessible-list.js +2 -2
  601. package/dist/generated/gtk/accessible-range.d.ts +4 -2
  602. package/dist/generated/gtk/accessible-range.js +7 -0
  603. package/dist/generated/gtk/accessible-text.d.ts +4 -2
  604. package/dist/generated/gtk/accessible-text.js +7 -0
  605. package/dist/generated/gtk/accessible.d.ts +15 -13
  606. package/dist/generated/gtk/accessible.js +59 -16
  607. package/dist/generated/gtk/action-bar.d.ts +5 -5
  608. package/dist/generated/gtk/action-bar.js +10 -5
  609. package/dist/generated/gtk/actionable.d.ts +7 -8
  610. package/dist/generated/gtk/actionable.js +22 -16
  611. package/dist/generated/gtk/alert-dialog.d.ts +4 -3
  612. package/dist/generated/gtk/alert-dialog.js +48 -50
  613. package/dist/generated/gtk/alternative-trigger.d.ts +5 -5
  614. package/dist/generated/gtk/alternative-trigger.js +14 -4
  615. package/dist/generated/gtk/app-chooser-button.d.ts +5 -1
  616. package/dist/generated/gtk/app-chooser-button.js +31 -1
  617. package/dist/generated/gtk/app-chooser-dialog.d.ts +10 -4
  618. package/dist/generated/gtk/app-chooser-dialog.js +40 -4
  619. package/dist/generated/gtk/app-chooser-widget.d.ts +4 -0
  620. package/dist/generated/gtk/app-chooser-widget.js +30 -0
  621. package/dist/generated/gtk/app-chooser.d.ts +6 -4
  622. package/dist/generated/gtk/app-chooser.js +14 -4
  623. package/dist/generated/gtk/application-window.d.ts +5 -3
  624. package/dist/generated/gtk/application-window.js +9 -3
  625. package/dist/generated/gtk/application.d.ts +14 -12
  626. package/dist/generated/gtk/application.js +30 -9
  627. package/dist/generated/gtk/aspect-frame.d.ts +4 -4
  628. package/dist/generated/gtk/aspect-frame.js +7 -2
  629. package/dist/generated/gtk/assistant-page.d.ts +3 -2
  630. package/dist/generated/gtk/assistant-page.js +7 -1
  631. package/dist/generated/gtk/assistant.d.ts +18 -15
  632. package/dist/generated/gtk/assistant.js +34 -17
  633. package/dist/generated/gtk/atcontext.d.ts +7 -5
  634. package/dist/generated/gtk/atcontext.js +9 -3
  635. package/dist/generated/gtk/bitset-iter.d.ts +1 -1
  636. package/dist/generated/gtk/bitset-iter.js +3 -3
  637. package/dist/generated/gtk/bitset.js +17 -7
  638. package/dist/generated/gtk/bool-filter.d.ts +6 -5
  639. package/dist/generated/gtk/bool-filter.js +9 -3
  640. package/dist/generated/gtk/border.js +6 -1
  641. package/dist/generated/gtk/box-layout.d.ts +2 -0
  642. package/dist/generated/gtk/box-layout.js +20 -0
  643. package/dist/generated/gtk/box.d.ts +7 -5
  644. package/dist/generated/gtk/box.js +27 -7
  645. package/dist/generated/gtk/buildable.d.ts +4 -2
  646. package/dist/generated/gtk/buildable.js +7 -0
  647. package/dist/generated/gtk/builder-cscope.js +2 -2
  648. package/dist/generated/gtk/builder-list-item-factory.d.ts +8 -6
  649. package/dist/generated/gtk/builder-list-item-factory.js +24 -7
  650. package/dist/generated/gtk/builder-scope.d.ts +4 -2
  651. package/dist/generated/gtk/builder-scope.js +7 -0
  652. package/dist/generated/gtk/builder.d.ts +16 -14
  653. package/dist/generated/gtk/builder.js +58 -18
  654. package/dist/generated/gtk/button.d.ts +11 -4
  655. package/dist/generated/gtk/button.js +82 -2
  656. package/dist/generated/gtk/calendar.d.ts +6 -5
  657. package/dist/generated/gtk/calendar.js +17 -6
  658. package/dist/generated/gtk/callback-action.js +2 -2
  659. package/dist/generated/gtk/cclosure-expression.d.ts +1 -1
  660. package/dist/generated/gtk/cclosure-expression.js +4 -4
  661. package/dist/generated/gtk/cell-area-box.d.ts +3 -2
  662. package/dist/generated/gtk/cell-area-box.js +16 -44
  663. package/dist/generated/gtk/cell-area-context.d.ts +3 -2
  664. package/dist/generated/gtk/cell-area-context.js +7 -1
  665. package/dist/generated/gtk/cell-area.d.ts +62 -43
  666. package/dist/generated/gtk/cell-area.js +346 -95
  667. package/dist/generated/gtk/cell-editable.d.ts +6 -6
  668. package/dist/generated/gtk/cell-editable.js +8 -36
  669. package/dist/generated/gtk/cell-layout.d.ts +14 -10
  670. package/dist/generated/gtk/cell-layout.js +23 -10
  671. package/dist/generated/gtk/cell-renderer-accel.d.ts +3 -2
  672. package/dist/generated/gtk/cell-renderer-accel.js +1 -1
  673. package/dist/generated/gtk/cell-renderer-combo.d.ts +3 -2
  674. package/dist/generated/gtk/cell-renderer-pixbuf.d.ts +12 -9
  675. package/dist/generated/gtk/cell-renderer-progress.d.ts +3 -0
  676. package/dist/generated/gtk/cell-renderer-progress.js +20 -0
  677. package/dist/generated/gtk/cell-renderer-spin.d.ts +3 -2
  678. package/dist/generated/gtk/cell-renderer-text.d.ts +24 -23
  679. package/dist/generated/gtk/cell-renderer.d.ts +17 -13
  680. package/dist/generated/gtk/cell-renderer.js +70 -29
  681. package/dist/generated/gtk/cell-view.d.ts +27 -9
  682. package/dist/generated/gtk/cell-view.js +185 -7
  683. package/dist/generated/gtk/center-box.d.ts +15 -13
  684. package/dist/generated/gtk/center-box.js +41 -6
  685. package/dist/generated/gtk/center-layout.d.ts +7 -6
  686. package/dist/generated/gtk/center-layout.js +22 -6
  687. package/dist/generated/gtk/check-button.d.ts +13 -6
  688. package/dist/generated/gtk/check-button.js +83 -3
  689. package/dist/generated/gtk/closure-expression.d.ts +2 -1
  690. package/dist/generated/gtk/closure-expression.js +2 -2
  691. package/dist/generated/gtk/color-button.d.ts +9 -1
  692. package/dist/generated/gtk/color-button.js +84 -2
  693. package/dist/generated/gtk/color-chooser-dialog.d.ts +10 -1
  694. package/dist/generated/gtk/color-chooser-dialog.js +83 -1
  695. package/dist/generated/gtk/color-chooser-widget.d.ts +8 -0
  696. package/dist/generated/gtk/color-chooser-widget.js +82 -0
  697. package/dist/generated/gtk/color-chooser.d.ts +8 -10
  698. package/dist/generated/gtk/color-chooser.js +25 -44
  699. package/dist/generated/gtk/color-dialog-button.d.ts +11 -9
  700. package/dist/generated/gtk/color-dialog-button.js +24 -7
  701. package/dist/generated/gtk/color-dialog.d.ts +4 -2
  702. package/dist/generated/gtk/color-dialog.js +62 -52
  703. package/dist/generated/gtk/column-view-cell.d.ts +5 -10
  704. package/dist/generated/gtk/column-view-cell.js +0 -65
  705. package/dist/generated/gtk/column-view-column.d.ts +19 -15
  706. package/dist/generated/gtk/column-view-column.js +32 -8
  707. package/dist/generated/gtk/column-view-row.d.ts +3 -2
  708. package/dist/generated/gtk/column-view-row.js +7 -1
  709. package/dist/generated/gtk/column-view-sorter.d.ts +4 -3
  710. package/dist/generated/gtk/column-view-sorter.js +13 -2
  711. package/dist/generated/gtk/column-view.d.ts +41 -24
  712. package/dist/generated/gtk/column-view.js +154 -15
  713. package/dist/generated/gtk/combo-box.d.ts +29 -12
  714. package/dist/generated/gtk/combo-box.js +195 -10
  715. package/dist/generated/gtk/constant-expression.d.ts +3 -2
  716. package/dist/generated/gtk/constant-expression.js +15 -4
  717. package/dist/generated/gtk/constraint-layout.d.ts +13 -8
  718. package/dist/generated/gtk/constraint-layout.js +35 -12
  719. package/dist/generated/gtk/constraint-target.d.ts +4 -2
  720. package/dist/generated/gtk/constraint-target.js +7 -0
  721. package/dist/generated/gtk/constraint.d.ts +7 -6
  722. package/dist/generated/gtk/constraint.js +16 -5
  723. package/dist/generated/gtk/css-provider.d.ts +4 -2
  724. package/dist/generated/gtk/css-provider.js +5 -5
  725. package/dist/generated/gtk/css-section.d.ts +7 -5
  726. package/dist/generated/gtk/css-section.js +42 -15
  727. package/dist/generated/gtk/custom-filter.js +4 -4
  728. package/dist/generated/gtk/custom-sorter.js +4 -4
  729. package/dist/generated/gtk/dialog.d.ts +10 -7
  730. package/dist/generated/gtk/dialog.js +30 -7
  731. package/dist/generated/gtk/directory-list.d.ts +9 -7
  732. package/dist/generated/gtk/directory-list.js +22 -5
  733. package/dist/generated/gtk/drag-icon.d.ts +16 -7
  734. package/dist/generated/gtk/drag-icon.js +81 -7
  735. package/dist/generated/gtk/drag-source.d.ts +11 -10
  736. package/dist/generated/gtk/drag-source.js +18 -7
  737. package/dist/generated/gtk/drawing-area.js +2 -2
  738. package/dist/generated/gtk/drop-controller-motion.d.ts +3 -2
  739. package/dist/generated/gtk/drop-controller-motion.js +7 -1
  740. package/dist/generated/gtk/drop-down.d.ts +27 -23
  741. package/dist/generated/gtk/drop-down.js +47 -13
  742. package/dist/generated/gtk/drop-target-async.d.ts +11 -10
  743. package/dist/generated/gtk/drop-target-async.js +29 -10
  744. package/dist/generated/gtk/drop-target.d.ts +15 -13
  745. package/dist/generated/gtk/drop-target.js +43 -11
  746. package/dist/generated/gtk/editable-label.d.ts +27 -0
  747. package/dist/generated/gtk/editable-label.js +283 -0
  748. package/dist/generated/gtk/editable.d.ts +5 -18
  749. package/dist/generated/gtk/editable.js +13 -80
  750. package/dist/generated/gtk/entry-completion.d.ts +22 -7
  751. package/dist/generated/gtk/entry-completion.js +172 -6
  752. package/dist/generated/gtk/entry.d.ts +67 -36
  753. package/dist/generated/gtk/entry.js +379 -23
  754. package/dist/generated/gtk/event-controller-key.d.ts +5 -3
  755. package/dist/generated/gtk/event-controller-key.js +12 -6
  756. package/dist/generated/gtk/event-controller-scroll.d.ts +2 -1
  757. package/dist/generated/gtk/event-controller-scroll.js +1 -1
  758. package/dist/generated/gtk/event-controller.d.ts +7 -5
  759. package/dist/generated/gtk/event-controller.js +21 -4
  760. package/dist/generated/gtk/expander.d.ts +8 -8
  761. package/dist/generated/gtk/expander.js +14 -4
  762. package/dist/generated/gtk/expression-watch.d.ts +2 -1
  763. package/dist/generated/gtk/expression-watch.js +8 -3
  764. package/dist/generated/gtk/expression.d.ts +6 -5
  765. package/dist/generated/gtk/expression.js +28 -12
  766. package/dist/generated/gtk/file-chooser-dialog.d.ts +29 -1
  767. package/dist/generated/gtk/file-chooser-dialog.js +374 -1
  768. package/dist/generated/gtk/file-chooser-native.d.ts +29 -1
  769. package/dist/generated/gtk/file-chooser-native.js +374 -1
  770. package/dist/generated/gtk/file-chooser-widget.d.ts +27 -0
  771. package/dist/generated/gtk/file-chooser-widget.js +373 -0
  772. package/dist/generated/gtk/file-chooser.d.ts +19 -25
  773. package/dist/generated/gtk/file-chooser.js +52 -43
  774. package/dist/generated/gtk/file-dialog.d.ts +37 -33
  775. package/dist/generated/gtk/file-dialog.js +481 -416
  776. package/dist/generated/gtk/file-filter.d.ts +4 -2
  777. package/dist/generated/gtk/file-filter.js +23 -4
  778. package/dist/generated/gtk/file-launcher.d.ts +9 -9
  779. package/dist/generated/gtk/file-launcher.js +104 -102
  780. package/dist/generated/gtk/filter-list-model.d.ts +14 -9
  781. package/dist/generated/gtk/filter-list-model.js +60 -6
  782. package/dist/generated/gtk/filter.d.ts +2 -1
  783. package/dist/generated/gtk/filter.js +1 -1
  784. package/dist/generated/gtk/fixed-layout-child.d.ts +5 -4
  785. package/dist/generated/gtk/fixed-layout-child.js +19 -4
  786. package/dist/generated/gtk/fixed.d.ts +7 -6
  787. package/dist/generated/gtk/fixed.js +25 -10
  788. package/dist/generated/gtk/flatten-list-model.d.ts +10 -6
  789. package/dist/generated/gtk/flatten-list-model.js +57 -4
  790. package/dist/generated/gtk/flow-box-child.d.ts +4 -4
  791. package/dist/generated/gtk/flow-box-child.js +7 -2
  792. package/dist/generated/gtk/flow-box.d.ts +17 -12
  793. package/dist/generated/gtk/flow-box.js +48 -18
  794. package/dist/generated/gtk/font-button.d.ts +19 -0
  795. package/dist/generated/gtk/font-button.js +197 -0
  796. package/dist/generated/gtk/font-chooser-dialog.d.ts +21 -1
  797. package/dist/generated/gtk/font-chooser-dialog.js +198 -1
  798. package/dist/generated/gtk/font-chooser-widget.d.ts +21 -1
  799. package/dist/generated/gtk/font-chooser-widget.js +197 -0
  800. package/dist/generated/gtk/font-chooser.d.ts +11 -22
  801. package/dist/generated/gtk/font-chooser.js +47 -77
  802. package/dist/generated/gtk/font-dialog-button.d.ts +15 -13
  803. package/dist/generated/gtk/font-dialog-button.js +46 -11
  804. package/dist/generated/gtk/font-dialog.d.ts +25 -21
  805. package/dist/generated/gtk/font-dialog.js +301 -230
  806. package/dist/generated/gtk/frame.d.ts +8 -8
  807. package/dist/generated/gtk/frame.js +14 -4
  808. package/dist/generated/gtk/functions.d.ts +70 -56
  809. package/dist/generated/gtk/functions.js +227 -129
  810. package/dist/generated/gtk/gesture-click.js +7 -1
  811. package/dist/generated/gtk/gesture-single.d.ts +2 -1
  812. package/dist/generated/gtk/gesture-single.js +13 -2
  813. package/dist/generated/gtk/gesture-stylus.d.ts +4 -3
  814. package/dist/generated/gtk/gesture-stylus.js +12 -3
  815. package/dist/generated/gtk/gesture.d.ts +11 -10
  816. package/dist/generated/gtk/gesture.js +108 -22
  817. package/dist/generated/gtk/glarea.d.ts +12 -10
  818. package/dist/generated/gtk/glarea.js +25 -8
  819. package/dist/generated/gtk/graphics-offload.d.ts +5 -5
  820. package/dist/generated/gtk/graphics-offload.js +8 -3
  821. package/dist/generated/gtk/grid-view.d.ts +12 -10
  822. package/dist/generated/gtk/grid-view.js +19 -7
  823. package/dist/generated/gtk/grid.d.ts +9 -7
  824. package/dist/generated/gtk/grid.js +32 -7
  825. package/dist/generated/gtk/header-bar.d.ts +7 -7
  826. package/dist/generated/gtk/header-bar.js +10 -5
  827. package/dist/generated/gtk/icon-paintable.d.ts +6 -3
  828. package/dist/generated/gtk/icon-paintable.js +43 -2
  829. package/dist/generated/gtk/icon-theme.d.ts +10 -7
  830. package/dist/generated/gtk/icon-theme.js +23 -6
  831. package/dist/generated/gtk/icon-view.d.ts +44 -20
  832. package/dist/generated/gtk/icon-view.js +320 -78
  833. package/dist/generated/gtk/image.d.ts +15 -12
  834. package/dist/generated/gtk/image.js +20 -8
  835. package/dist/generated/gtk/imcontext.d.ts +9 -6
  836. package/dist/generated/gtk/imcontext.js +20 -9
  837. package/dist/generated/gtk/index.d.ts +65 -65
  838. package/dist/generated/gtk/index.js +65 -65
  839. package/dist/generated/gtk/info-bar.d.ts +6 -5
  840. package/dist/generated/gtk/info-bar.js +11 -5
  841. package/dist/generated/gtk/inscription.d.ts +13 -9
  842. package/dist/generated/gtk/inscription.js +55 -4
  843. package/dist/generated/gtk/keyval-trigger.d.ts +4 -3
  844. package/dist/generated/gtk/keyval-trigger.js +2 -2
  845. package/dist/generated/gtk/label.d.ts +31 -26
  846. package/dist/generated/gtk/label.js +96 -15
  847. package/dist/generated/gtk/layout-child.d.ts +6 -4
  848. package/dist/generated/gtk/layout-child.js +14 -2
  849. package/dist/generated/gtk/layout-manager.d.ts +6 -4
  850. package/dist/generated/gtk/layout-manager.js +17 -5
  851. package/dist/generated/gtk/level-bar.d.ts +3 -1
  852. package/dist/generated/gtk/level-bar.js +20 -0
  853. package/dist/generated/gtk/list-base.d.ts +15 -1
  854. package/dist/generated/gtk/list-base.js +131 -0
  855. package/dist/generated/gtk/list-box-row.d.ts +13 -6
  856. package/dist/generated/gtk/list-box-row.js +89 -4
  857. package/dist/generated/gtk/list-box.d.ts +17 -14
  858. package/dist/generated/gtk/list-box.js +44 -23
  859. package/dist/generated/gtk/list-header.d.ts +8 -6
  860. package/dist/generated/gtk/list-header.js +15 -3
  861. package/dist/generated/gtk/list-item.d.ts +8 -6
  862. package/dist/generated/gtk/list-item.js +15 -3
  863. package/dist/generated/gtk/list-store.d.ts +49 -4
  864. package/dist/generated/gtk/list-store.js +810 -19
  865. package/dist/generated/gtk/list-view.d.ts +16 -14
  866. package/dist/generated/gtk/list-view.js +26 -9
  867. package/dist/generated/gtk/lock-button.d.ts +6 -5
  868. package/dist/generated/gtk/lock-button.js +9 -3
  869. package/dist/generated/gtk/map-list-model.d.ts +9 -5
  870. package/dist/generated/gtk/map-list-model.js +55 -7
  871. package/dist/generated/gtk/media-controls.d.ts +6 -5
  872. package/dist/generated/gtk/media-controls.js +9 -3
  873. package/dist/generated/gtk/media-file.d.ts +11 -10
  874. package/dist/generated/gtk/media-file.js +17 -6
  875. package/dist/generated/gtk/media-stream.d.ts +6 -4
  876. package/dist/generated/gtk/media-stream.js +18 -7
  877. package/dist/generated/gtk/menu-button.d.ts +14 -14
  878. package/dist/generated/gtk/menu-button.js +25 -28
  879. package/dist/generated/gtk/message-dialog.d.ts +6 -4
  880. package/dist/generated/gtk/message-dialog.js +9 -3
  881. package/dist/generated/gtk/mount-operation.d.ts +11 -9
  882. package/dist/generated/gtk/mount-operation.js +17 -5
  883. package/dist/generated/gtk/multi-filter.d.ts +2 -1
  884. package/dist/generated/gtk/multi-filter.js +9 -1
  885. package/dist/generated/gtk/multi-selection.d.ts +21 -5
  886. package/dist/generated/gtk/multi-selection.js +220 -3
  887. package/dist/generated/gtk/multi-sorter.d.ts +2 -1
  888. package/dist/generated/gtk/multi-sorter.js +9 -1
  889. package/dist/generated/gtk/native-dialog.d.ts +5 -4
  890. package/dist/generated/gtk/native-dialog.js +8 -2
  891. package/dist/generated/gtk/native.d.ts +8 -4
  892. package/dist/generated/gtk/native.js +21 -2
  893. package/dist/generated/gtk/no-selection.d.ts +21 -5
  894. package/dist/generated/gtk/no-selection.js +220 -3
  895. package/dist/generated/gtk/notebook-page.d.ts +5 -4
  896. package/dist/generated/gtk/notebook-page.js +7 -1
  897. package/dist/generated/gtk/notebook.d.ts +29 -27
  898. package/dist/generated/gtk/notebook.js +72 -40
  899. package/dist/generated/gtk/numeric-sorter.d.ts +6 -5
  900. package/dist/generated/gtk/numeric-sorter.js +9 -3
  901. package/dist/generated/gtk/object-expression.d.ts +3 -2
  902. package/dist/generated/gtk/object-expression.js +8 -2
  903. package/dist/generated/gtk/orientable.d.ts +4 -4
  904. package/dist/generated/gtk/orientable.js +7 -6
  905. package/dist/generated/gtk/overlay.d.ts +10 -10
  906. package/dist/generated/gtk/overlay.js +14 -9
  907. package/dist/generated/gtk/pad-controller.d.ts +5 -3
  908. package/dist/generated/gtk/pad-controller.js +2 -2
  909. package/dist/generated/gtk/page-setup-unix-dialog.d.ts +8 -5
  910. package/dist/generated/gtk/page-setup-unix-dialog.js +17 -5
  911. package/dist/generated/gtk/page-setup.d.ts +8 -7
  912. package/dist/generated/gtk/page-setup.js +36 -14
  913. package/dist/generated/gtk/paned.d.ts +10 -8
  914. package/dist/generated/gtk/paned.js +34 -4
  915. package/dist/generated/gtk/paper-size.d.ts +5 -4
  916. package/dist/generated/gtk/paper-size.js +26 -10
  917. package/dist/generated/gtk/password-entry.d.ts +32 -4
  918. package/dist/generated/gtk/password-entry.js +291 -2
  919. package/dist/generated/gtk/picture.d.ts +15 -12
  920. package/dist/generated/gtk/picture.js +20 -8
  921. package/dist/generated/gtk/popover-menu-bar.d.ts +8 -7
  922. package/dist/generated/gtk/popover-menu-bar.js +11 -5
  923. package/dist/generated/gtk/popover-menu.d.ts +10 -8
  924. package/dist/generated/gtk/popover-menu.js +12 -6
  925. package/dist/generated/gtk/popover.d.ts +16 -11
  926. package/dist/generated/gtk/popover.js +66 -6
  927. package/dist/generated/gtk/print-context.d.ts +9 -6
  928. package/dist/generated/gtk/print-context.js +45 -8
  929. package/dist/generated/gtk/print-dialog.d.ts +15 -15
  930. package/dist/generated/gtk/print-dialog.js +131 -173
  931. package/dist/generated/gtk/print-job.d.ts +11 -7
  932. package/dist/generated/gtk/print-job.js +32 -10
  933. package/dist/generated/gtk/print-operation-preview.d.ts +4 -3
  934. package/dist/generated/gtk/print-operation-preview.js +7 -36
  935. package/dist/generated/gtk/print-operation.d.ts +15 -9
  936. package/dist/generated/gtk/print-operation.js +47 -5
  937. package/dist/generated/gtk/print-settings.d.ts +8 -7
  938. package/dist/generated/gtk/print-settings.js +36 -14
  939. package/dist/generated/gtk/print-setup.d.ts +4 -2
  940. package/dist/generated/gtk/print-setup.js +20 -3
  941. package/dist/generated/gtk/print-unix-dialog.d.ts +16 -12
  942. package/dist/generated/gtk/print-unix-dialog.js +19 -15
  943. package/dist/generated/gtk/printer.d.ts +4 -3
  944. package/dist/generated/gtk/printer.js +10 -4
  945. package/dist/generated/gtk/progress-bar.d.ts +8 -4
  946. package/dist/generated/gtk/progress-bar.js +22 -2
  947. package/dist/generated/gtk/property-expression.d.ts +5 -4
  948. package/dist/generated/gtk/property-expression.js +16 -5
  949. package/dist/generated/gtk/range.d.ts +10 -5
  950. package/dist/generated/gtk/range.js +36 -3
  951. package/dist/generated/gtk/recent-info.d.ts +8 -6
  952. package/dist/generated/gtk/recent-info.js +65 -12
  953. package/dist/generated/gtk/recent-manager.d.ts +1 -1
  954. package/dist/generated/gtk/recent-manager.js +8 -3
  955. package/dist/generated/gtk/requisition.js +6 -1
  956. package/dist/generated/gtk/revealer.d.ts +4 -4
  957. package/dist/generated/gtk/revealer.js +7 -2
  958. package/dist/generated/gtk/root.d.ts +9 -5
  959. package/dist/generated/gtk/root.js +22 -3
  960. package/dist/generated/gtk/scale-button.d.ts +12 -7
  961. package/dist/generated/gtk/scale-button.js +47 -5
  962. package/dist/generated/gtk/scale.d.ts +4 -2
  963. package/dist/generated/gtk/scale.js +10 -4
  964. package/dist/generated/gtk/scroll-info.js +6 -1
  965. package/dist/generated/gtk/scrollable.d.ts +10 -15
  966. package/dist/generated/gtk/scrollable.js +22 -28
  967. package/dist/generated/gtk/scrollbar.d.ts +8 -5
  968. package/dist/generated/gtk/scrollbar.js +29 -3
  969. package/dist/generated/gtk/scrolled-window.d.ts +15 -14
  970. package/dist/generated/gtk/scrolled-window.js +34 -8
  971. package/dist/generated/gtk/search-bar.d.ts +10 -9
  972. package/dist/generated/gtk/search-bar.js +15 -5
  973. package/dist/generated/gtk/search-entry.d.ts +29 -3
  974. package/dist/generated/gtk/search-entry.js +290 -2
  975. package/dist/generated/gtk/section-model.d.ts +4 -3
  976. package/dist/generated/gtk/section-model.js +7 -31
  977. package/dist/generated/gtk/selection-filter-model.d.ts +6 -5
  978. package/dist/generated/gtk/selection-filter-model.js +9 -3
  979. package/dist/generated/gtk/selection-model.d.ts +5 -4
  980. package/dist/generated/gtk/selection-model.js +22 -35
  981. package/dist/generated/gtk/separator.d.ts +2 -0
  982. package/dist/generated/gtk/separator.js +20 -0
  983. package/dist/generated/gtk/settings.d.ts +2 -1
  984. package/dist/generated/gtk/settings.js +1 -1
  985. package/dist/generated/gtk/shortcut-action.d.ts +4 -2
  986. package/dist/generated/gtk/shortcut-action.js +5 -5
  987. package/dist/generated/gtk/shortcut-controller.d.ts +11 -7
  988. package/dist/generated/gtk/shortcut-controller.js +13 -5
  989. package/dist/generated/gtk/shortcut-manager.d.ts +4 -2
  990. package/dist/generated/gtk/shortcut-manager.js +7 -0
  991. package/dist/generated/gtk/shortcut-trigger.d.ts +8 -6
  992. package/dist/generated/gtk/shortcut-trigger.js +10 -10
  993. package/dist/generated/gtk/shortcut.d.ts +17 -14
  994. package/dist/generated/gtk/shortcut.js +35 -12
  995. package/dist/generated/gtk/shortcuts-group.d.ts +5 -3
  996. package/dist/generated/gtk/shortcuts-group.js +1 -1
  997. package/dist/generated/gtk/shortcuts-section.d.ts +2 -1
  998. package/dist/generated/gtk/shortcuts-section.js +1 -1
  999. package/dist/generated/gtk/shortcuts-shortcut.d.ts +6 -4
  1000. package/dist/generated/gtk/shortcuts-window.d.ts +2 -1
  1001. package/dist/generated/gtk/shortcuts-window.js +1 -1
  1002. package/dist/generated/gtk/single-selection.d.ts +24 -7
  1003. package/dist/generated/gtk/single-selection.js +227 -4
  1004. package/dist/generated/gtk/size-group.d.ts +4 -2
  1005. package/dist/generated/gtk/size-group.js +10 -2
  1006. package/dist/generated/gtk/slice-list-model.d.ts +9 -5
  1007. package/dist/generated/gtk/slice-list-model.js +51 -3
  1008. package/dist/generated/gtk/snapshot.d.ts +46 -39
  1009. package/dist/generated/gtk/snapshot.js +299 -127
  1010. package/dist/generated/gtk/sort-list-model.d.ts +18 -13
  1011. package/dist/generated/gtk/sort-list-model.js +67 -8
  1012. package/dist/generated/gtk/sorter.d.ts +2 -1
  1013. package/dist/generated/gtk/sorter.js +2 -2
  1014. package/dist/generated/gtk/spin-button.d.ts +39 -7
  1015. package/dist/generated/gtk/spin-button.js +341 -4
  1016. package/dist/generated/gtk/stack-page.d.ts +28 -2
  1017. package/dist/generated/gtk/stack-page.js +335 -1
  1018. package/dist/generated/gtk/stack-sidebar.d.ts +5 -4
  1019. package/dist/generated/gtk/stack-sidebar.js +8 -2
  1020. package/dist/generated/gtk/stack-switcher.d.ts +8 -4
  1021. package/dist/generated/gtk/stack-switcher.js +28 -2
  1022. package/dist/generated/gtk/stack.d.ts +14 -12
  1023. package/dist/generated/gtk/stack.js +50 -13
  1024. package/dist/generated/gtk/string-filter.d.ts +6 -5
  1025. package/dist/generated/gtk/string-filter.js +9 -3
  1026. package/dist/generated/gtk/string-list.d.ts +1 -0
  1027. package/dist/generated/gtk/string-list.js +8 -0
  1028. package/dist/generated/gtk/string-sorter.d.ts +6 -5
  1029. package/dist/generated/gtk/string-sorter.js +9 -3
  1030. package/dist/generated/gtk/style-context.d.ts +13 -11
  1031. package/dist/generated/gtk/style-context.js +30 -10
  1032. package/dist/generated/gtk/style-provider.d.ts +4 -3
  1033. package/dist/generated/gtk/style-provider.js +6 -28
  1034. package/dist/generated/gtk/switch.d.ts +7 -0
  1035. package/dist/generated/gtk/switch.js +75 -0
  1036. package/dist/generated/gtk/symbolic-paintable.d.ts +6 -3
  1037. package/dist/generated/gtk/symbolic-paintable.js +17 -3
  1038. package/dist/generated/gtk/text-buffer.d.ts +31 -26
  1039. package/dist/generated/gtk/text-buffer.js +110 -68
  1040. package/dist/generated/gtk/text-child-anchor.d.ts +2 -1
  1041. package/dist/generated/gtk/text-iter.d.ts +15 -10
  1042. package/dist/generated/gtk/text-iter.js +64 -30
  1043. package/dist/generated/gtk/text-mark.d.ts +2 -1
  1044. package/dist/generated/gtk/text-mark.js +7 -1
  1045. package/dist/generated/gtk/text-tag-table.d.ts +5 -3
  1046. package/dist/generated/gtk/text-tag-table.js +18 -5
  1047. package/dist/generated/gtk/text-tag.d.ts +32 -30
  1048. package/dist/generated/gtk/text-view.d.ts +50 -30
  1049. package/dist/generated/gtk/text-view.js +252 -36
  1050. package/dist/generated/gtk/text.d.ts +51 -19
  1051. package/dist/generated/gtk/text.js +391 -17
  1052. package/dist/generated/gtk/toggle-button.d.ts +2 -2
  1053. package/dist/generated/gtk/toggle-button.js +1 -1
  1054. package/dist/generated/gtk/tooltip.d.ts +7 -4
  1055. package/dist/generated/gtk/tooltip.js +9 -5
  1056. package/dist/generated/gtk/tree-drag-dest.d.ts +8 -5
  1057. package/dist/generated/gtk/tree-drag-dest.js +13 -6
  1058. package/dist/generated/gtk/tree-drag-source.d.ts +7 -4
  1059. package/dist/generated/gtk/tree-drag-source.js +17 -4
  1060. package/dist/generated/gtk/tree-expander.d.ts +12 -10
  1061. package/dist/generated/gtk/tree-expander.js +22 -5
  1062. package/dist/generated/gtk/tree-iter.js +6 -1
  1063. package/dist/generated/gtk/tree-list-model.d.ts +7 -5
  1064. package/dist/generated/gtk/tree-list-model.js +23 -6
  1065. package/dist/generated/gtk/tree-list-row-sorter.d.ts +5 -5
  1066. package/dist/generated/gtk/tree-list-row-sorter.js +8 -3
  1067. package/dist/generated/gtk/tree-list-row.d.ts +8 -6
  1068. package/dist/generated/gtk/tree-list-row.js +26 -4
  1069. package/dist/generated/gtk/tree-model-filter.d.ts +39 -4
  1070. package/dist/generated/gtk/tree-model-filter.js +657 -11
  1071. package/dist/generated/gtk/tree-model-sort.d.ts +46 -5
  1072. package/dist/generated/gtk/tree-model-sort.js +753 -9
  1073. package/dist/generated/gtk/tree-model.d.ts +9 -7
  1074. package/dist/generated/gtk/tree-model.js +57 -79
  1075. package/dist/generated/gtk/tree-path.js +10 -5
  1076. package/dist/generated/gtk/tree-row-reference.d.ts +10 -8
  1077. package/dist/generated/gtk/tree-row-reference.js +32 -15
  1078. package/dist/generated/gtk/tree-selection.d.ts +7 -5
  1079. package/dist/generated/gtk/tree-selection.js +20 -14
  1080. package/dist/generated/gtk/tree-sortable.d.ts +4 -3
  1081. package/dist/generated/gtk/tree-sortable.js +11 -32
  1082. package/dist/generated/gtk/tree-store.d.ts +49 -4
  1083. package/dist/generated/gtk/tree-store.js +821 -30
  1084. package/dist/generated/gtk/tree-view-column.d.ts +27 -19
  1085. package/dist/generated/gtk/tree-view-column.js +80 -18
  1086. package/dist/generated/gtk/tree-view.d.ts +54 -38
  1087. package/dist/generated/gtk/tree-view.js +232 -106
  1088. package/dist/generated/gtk/uri-launcher.d.ts +4 -3
  1089. package/dist/generated/gtk/uri-launcher.js +48 -50
  1090. package/dist/generated/gtk/video.d.ts +12 -10
  1091. package/dist/generated/gtk/video.js +18 -6
  1092. package/dist/generated/gtk/viewport.d.ts +20 -7
  1093. package/dist/generated/gtk/viewport.js +121 -6
  1094. package/dist/generated/gtk/widget-paintable.d.ts +6 -5
  1095. package/dist/generated/gtk/widget-paintable.js +9 -3
  1096. package/dist/generated/gtk/widget.d.ts +94 -56
  1097. package/dist/generated/gtk/widget.js +585 -64
  1098. package/dist/generated/gtk/window-group.d.ts +3 -2
  1099. package/dist/generated/gtk/window-group.js +2 -2
  1100. package/dist/generated/gtk/window-handle.d.ts +4 -4
  1101. package/dist/generated/gtk/window-handle.js +7 -2
  1102. package/dist/generated/gtk/window.d.ts +38 -30
  1103. package/dist/generated/gtk/window.js +96 -15
  1104. package/dist/generated/harfbuzz/functions.d.ts +26 -25
  1105. package/dist/generated/harfbuzz/functions.js +1377 -1012
  1106. package/dist/generated/harfbuzz/index.d.ts +1 -1
  1107. package/dist/generated/harfbuzz/index.js +1 -1
  1108. package/dist/generated/pango/attr-iterator.d.ts +3 -3
  1109. package/dist/generated/pango/attr-iterator.js +14 -3
  1110. package/dist/generated/pango/attr-list.d.ts +2 -2
  1111. package/dist/generated/pango/attr-list.js +31 -10
  1112. package/dist/generated/pango/attribute.js +8 -3
  1113. package/dist/generated/pango/color.js +6 -1
  1114. package/dist/generated/pango/context.d.ts +13 -9
  1115. package/dist/generated/pango/context.js +58 -16
  1116. package/dist/generated/pango/coverage.d.ts +3 -3
  1117. package/dist/generated/pango/coverage.js +13 -3
  1118. package/dist/generated/pango/font-description.js +17 -7
  1119. package/dist/generated/pango/font-face.d.ts +3 -2
  1120. package/dist/generated/pango/font-face.js +14 -2
  1121. package/dist/generated/pango/font-family.d.ts +3 -2
  1122. package/dist/generated/pango/font-family.js +7 -1
  1123. package/dist/generated/pango/font-map.d.ts +12 -8
  1124. package/dist/generated/pango/font-map.js +41 -12
  1125. package/dist/generated/pango/font-metrics.js +6 -1
  1126. package/dist/generated/pango/font.d.ts +16 -10
  1127. package/dist/generated/pango/font.js +86 -18
  1128. package/dist/generated/pango/fontset-simple.d.ts +3 -2
  1129. package/dist/generated/pango/fontset-simple.js +2 -2
  1130. package/dist/generated/pango/fontset.d.ts +3 -2
  1131. package/dist/generated/pango/fontset.js +15 -3
  1132. package/dist/generated/pango/functions.d.ts +18 -16
  1133. package/dist/generated/pango/functions.js +328 -88
  1134. package/dist/generated/pango/glyph-item-iter.d.ts +1 -1
  1135. package/dist/generated/pango/glyph-item-iter.js +8 -3
  1136. package/dist/generated/pango/glyph-item.d.ts +3 -3
  1137. package/dist/generated/pango/glyph-item.js +13 -3
  1138. package/dist/generated/pango/glyph-string.d.ts +3 -2
  1139. package/dist/generated/pango/glyph-string.js +12 -7
  1140. package/dist/generated/pango/index.d.ts +11 -11
  1141. package/dist/generated/pango/index.js +11 -11
  1142. package/dist/generated/pango/item.d.ts +1 -1
  1143. package/dist/generated/pango/item.js +13 -3
  1144. package/dist/generated/pango/layout-iter.d.ts +3 -2
  1145. package/dist/generated/pango/layout-iter.js +26 -4
  1146. package/dist/generated/pango/layout-line.d.ts +2 -1
  1147. package/dist/generated/pango/layout-line.js +6 -1
  1148. package/dist/generated/pango/layout.d.ts +12 -10
  1149. package/dist/generated/pango/layout.js +79 -18
  1150. package/dist/generated/pango/matrix.js +7 -2
  1151. package/dist/generated/pango/renderer.d.ts +11 -9
  1152. package/dist/generated/pango/renderer.js +37 -13
  1153. package/dist/generated/pango/tab-array.js +7 -2
  1154. package/dist/generated/pangocairo/font-map.d.ts +8 -4
  1155. package/dist/generated/pangocairo/font-map.js +15 -2
  1156. package/dist/generated/pangocairo/font.d.ts +6 -3
  1157. package/dist/generated/pangocairo/font.js +20 -2
  1158. package/dist/generated/pangocairo/functions.d.ts +24 -22
  1159. package/dist/generated/pangocairo/functions.js +174 -61
  1160. package/package.json +3 -3
@@ -52,8 +52,20 @@ const RESERVED_WORDS = new Set([
52
52
  "arguments",
53
53
  ]);
54
54
  const METHOD_RENAMES = new Map([
55
- ["IconView", new Map([["setCursor", "setCursorPath"]])],
56
- ["TreeView", new Map([["setCursor", "setCursorPath"]])],
55
+ [
56
+ "IconView",
57
+ new Map([
58
+ ["setCursor", "setCursorPath"],
59
+ ["getCursor", "getCursorPath"],
60
+ ]),
61
+ ],
62
+ [
63
+ "TreeView",
64
+ new Map([
65
+ ["setCursor", "setCursorPath"],
66
+ ["getCursor", "getCursorPath"],
67
+ ]),
68
+ ],
57
69
  ["HSV", new Map([["getColor", "getHsvColor"]])],
58
70
  ["Layout", new Map([["getSize", "getLayoutSize"]])],
59
71
  ["Table", new Map([["getSize", "getTableSize"]])],
@@ -68,10 +80,9 @@ const METHOD_RENAMES = new Map([
68
80
  ["setDirection", "setArrowDirection"],
69
81
  ]),
70
82
  ],
83
+ ["PrintUnixDialog", new Map([["getSettings", "getPrintSettings"]])],
71
84
  ]);
72
- const CLASS_RENAMES = new Map([
73
- ["Error", "GError"],
74
- ]);
85
+ const CLASS_RENAMES = new Map([["Error", "GError"]]);
75
86
  const toKebabCase = (str) => str
76
87
  .replace(/([a-z])([A-Z])/g, "$1-$2")
77
88
  .replace(/_/g, "-")
@@ -151,6 +162,7 @@ export class CodeGenerator {
151
162
  typeMapper;
152
163
  usesRef = false;
153
164
  usesCall = false;
165
+ addGioImport = false;
154
166
  usesType = false;
155
167
  usesRead = false;
156
168
  usesWrite = false;
@@ -158,39 +170,50 @@ export class CodeGenerator {
158
170
  usesNativeError = false;
159
171
  usedEnums = new Set();
160
172
  usedRecords = new Set();
173
+ usedExternalTypes = new Map();
174
+ usedSameNamespaceClasses = new Map();
175
+ usedInterfaces = new Map();
161
176
  signalClasses = new Set();
162
177
  recordNameToFile = new Map();
178
+ interfaceNameToFile = new Map();
163
179
  currentSharedLibrary = "";
180
+ cyclicReturnTypes = new Set();
164
181
  constructor(options) {
165
182
  this.options = options;
166
183
  this.typeMapper = new TypeMapper();
184
+ if (options.typeRegistry) {
185
+ this.typeMapper.setTypeRegistry(options.typeRegistry, options.namespace);
186
+ }
167
187
  }
168
188
  async generateNamespace(namespace) {
169
189
  const files = new Map();
170
190
  this.currentSharedLibrary = namespace.sharedLibrary;
171
191
  this.registerEnumsAndBitfields(namespace);
172
192
  this.registerRecords(namespace);
193
+ this.registerInterfaces(namespace);
173
194
  const classMap = this.buildClassMap(namespace);
195
+ const interfaceMap = this.buildInterfaceMap(namespace);
174
196
  this.attachConstructorFunctions(namespace, classMap);
175
- for (const iface of namespace.interfaces) {
176
- files.set(`${toKebabCase(iface.name)}.ts`, await this.generateInterface(iface, namespace.sharedLibrary, classMap));
177
- }
178
- for (const cls of namespace.classes) {
179
- files.set(`${toKebabCase(cls.name)}.ts`, await this.generateClass(cls, namespace.sharedLibrary, classMap));
197
+ const allEnums = [...namespace.enumerations, ...namespace.bitfields];
198
+ if (allEnums.length > 0) {
199
+ files.set("enums.ts", await this.generateEnums(allEnums));
180
200
  }
181
201
  for (const record of namespace.records) {
182
202
  if (this.shouldGenerateRecord(record)) {
183
203
  files.set(`${toKebabCase(record.name)}.ts`, await this.generateRecord(record, namespace.sharedLibrary));
184
204
  }
185
205
  }
206
+ const sortedClasses = this.topologicalSortClasses(namespace.classes, classMap);
207
+ for (const cls of sortedClasses) {
208
+ files.set(`${toKebabCase(cls.name)}.ts`, await this.generateClass(cls, namespace.sharedLibrary, classMap, interfaceMap));
209
+ }
210
+ for (const iface of namespace.interfaces) {
211
+ files.set(`${toKebabCase(iface.name)}.ts`, await this.generateInterface(iface, namespace.sharedLibrary, classMap));
212
+ }
186
213
  const standaloneFunctions = this.getStandaloneFunctions(namespace, classMap);
187
214
  if (standaloneFunctions.length > 0) {
188
215
  files.set("functions.ts", await this.generateFunctions(standaloneFunctions, namespace.sharedLibrary));
189
216
  }
190
- const allEnums = [...namespace.enumerations, ...namespace.bitfields];
191
- if (allEnums.length > 0) {
192
- files.set("enums.ts", await this.generateEnums(allEnums));
193
- }
194
217
  files.set("index.ts", await this.generateIndex(files.keys()));
195
218
  return files;
196
219
  }
@@ -231,6 +254,19 @@ export class CodeGenerator {
231
254
  }
232
255
  return classMap;
233
256
  }
257
+ registerInterfaces(namespace) {
258
+ for (const iface of namespace.interfaces) {
259
+ const normalizedName = toPascalCase(iface.name);
260
+ this.interfaceNameToFile.set(normalizedName, iface.name);
261
+ }
262
+ }
263
+ buildInterfaceMap(namespace) {
264
+ const interfaceMap = new Map();
265
+ for (const iface of namespace.interfaces) {
266
+ interfaceMap.set(iface.name, iface);
267
+ }
268
+ return interfaceMap;
269
+ }
234
270
  attachConstructorFunctions(namespace, classMap) {
235
271
  for (const func of namespace.functions) {
236
272
  const match = func.cIdentifier?.match(/^[a-z_]+_([a-z_]+)_new(_.*)?$/);
@@ -266,6 +302,7 @@ export class CodeGenerator {
266
302
  resetState() {
267
303
  this.usesRef = false;
268
304
  this.usesCall = false;
305
+ this.addGioImport = false;
269
306
  this.usesType = false;
270
307
  this.usesRead = false;
271
308
  this.usesWrite = false;
@@ -273,21 +310,56 @@ export class CodeGenerator {
273
310
  this.usesNativeError = false;
274
311
  this.usedEnums.clear();
275
312
  this.usedRecords.clear();
313
+ this.usedExternalTypes.clear();
314
+ this.usedSameNamespaceClasses.clear();
315
+ this.usedInterfaces.clear();
276
316
  this.signalClasses.clear();
317
+ this.cyclicReturnTypes.clear();
277
318
  this.typeMapper.setEnumUsageCallback((enumName) => this.usedEnums.add(enumName));
278
319
  this.typeMapper.setRecordUsageCallback((recordName) => this.usedRecords.add(recordName));
320
+ this.typeMapper.setExternalTypeUsageCallback((usage) => {
321
+ const key = `${usage.namespace}.${usage.transformedName}`;
322
+ this.usedExternalTypes.set(key, usage);
323
+ });
324
+ this.typeMapper.setSameNamespaceClassUsageCallback((className, originalName) => {
325
+ this.usedSameNamespaceClasses.set(className, originalName);
326
+ });
279
327
  }
280
- async generateClass(cls, sharedLibrary, classMap) {
328
+ async generateClass(cls, sharedLibrary, classMap, interfaceMap) {
281
329
  this.resetState();
330
+ this.cyclicReturnTypes = this.computeCyclicReturnTypes(cls, classMap);
331
+ const asyncMethods = new Set();
332
+ const finishMethods = new Set();
333
+ for (const method of cls.methods) {
334
+ if (this.hasAsyncCallback(method)) {
335
+ asyncMethods.add(method.name);
336
+ finishMethods.add(`${method.name}_finish`);
337
+ }
338
+ }
339
+ const parentMethodNames = this.collectParentMethodNames(cls, classMap, interfaceMap);
340
+ const filteredClassMethods = cls.methods.filter((m) => !parentMethodNames.has(m.name));
341
+ const classMethodNames = new Set(cls.methods.map((m) => m.name));
342
+ const interfaceMethods = cls.implements
343
+ .flatMap((ifaceName) => interfaceMap.get(ifaceName)?.methods ?? [])
344
+ .filter((m) => !classMethodNames.has(m.name) && !parentMethodNames.has(m.name));
345
+ const syncMethods = filteredClassMethods.filter((m) => !asyncMethods.has(m.name) && !finishMethods.has(m.name));
346
+ const syncInterfaceMethods = interfaceMethods.filter((m) => !asyncMethods.has(m.name) && !finishMethods.has(m.name));
282
347
  this.usesRef =
283
- cls.methods.some((m) => hasOutParameter(m.parameters)) ||
348
+ syncMethods.some((m) => hasOutParameter(m.parameters)) ||
284
349
  cls.constructors.some((c) => hasOutParameter(c.parameters)) ||
285
- cls.functions.some((f) => hasOutParameter(f.parameters));
286
- this.usesCall = cls.methods.length > 0 || cls.constructors.length > 0 || cls.functions.length > 0 || cls.signals.length > 0;
350
+ cls.functions.some((f) => hasOutParameter(f.parameters)) ||
351
+ syncInterfaceMethods.some((m) => hasOutParameter(m.parameters));
352
+ this.usesCall =
353
+ filteredClassMethods.length > 0 ||
354
+ cls.constructors.length > 0 ||
355
+ cls.functions.length > 0 ||
356
+ cls.signals.length > 0 ||
357
+ interfaceMethods.length > 0;
287
358
  const className = normalizeClassName(cls.name);
288
359
  const hasParent = !!(cls.parent && classMap.has(cls.parent));
289
360
  const parentClassName = cls.parent ? normalizeClassName(cls.parent) : "";
290
361
  const extendsClause = hasParent ? ` extends ${parentClassName}` : "";
362
+ const implementsClause = "";
291
363
  const sections = [];
292
364
  if (hasParent && cls.parent) {
293
365
  sections.push(`import { ${parentClassName} } from "./${toKebabCase(cls.parent)}.js";`);
@@ -296,15 +368,18 @@ export class CodeGenerator {
296
368
  if (cls.doc) {
297
369
  sections.push(formatDoc(cls.doc));
298
370
  }
299
- sections.push(`export class ${className}${extendsClause} {`);
371
+ sections.push(`export class ${className}${extendsClause}${implementsClause} {`);
300
372
  if (!extendsClause) {
301
373
  sections.push(` ptr: unknown;\n`);
302
374
  }
303
375
  sections.push(this.generateConstructors(cls, sharedLibrary, hasParent));
304
376
  sections.push(this.generateCreatePtr(cls, sharedLibrary, hasParent));
305
377
  sections.push(this.generateStaticFunctions(cls.functions, sharedLibrary, className));
306
- sections.push(this.generateMethods(cls.methods, sharedLibrary, cls.name));
378
+ sections.push(this.generateMethods(filteredClassMethods, sharedLibrary, cls.name));
307
379
  sections.push(this.generateProperties(cls.properties, cls.methods));
380
+ if (interfaceMethods.length > 0) {
381
+ sections.push(this.generateMethods(interfaceMethods, sharedLibrary, className));
382
+ }
308
383
  if (cls.signals.length > 0) {
309
384
  const hasConnectMethod = cls.methods.some((m) => toCamelCase(m.name) === "connect");
310
385
  sections.push(this.generateSignalConnect(sharedLibrary, cls.signals, hasConnectMethod, classMap));
@@ -313,6 +388,124 @@ export class CodeGenerator {
313
388
  const imports = this.generateImports(className, hasParent ? parentClassName : undefined);
314
389
  return this.formatCode(imports + sections.join("\n"));
315
390
  }
391
+ topologicalSortClasses(classes, classMap) {
392
+ const sorted = [];
393
+ const visited = new Set();
394
+ const visit = (cls) => {
395
+ if (visited.has(cls.name))
396
+ return;
397
+ visited.add(cls.name);
398
+ if (cls.parent && classMap.has(cls.parent)) {
399
+ const parent = classMap.get(cls.parent);
400
+ visit(parent);
401
+ }
402
+ sorted.push(cls);
403
+ };
404
+ for (const cls of classes) {
405
+ visit(cls);
406
+ }
407
+ return sorted;
408
+ }
409
+ isDescendantOf(className, ancestorName, classMap) {
410
+ const cls = classMap.get(className);
411
+ if (!cls)
412
+ return false;
413
+ if (cls.parent === ancestorName)
414
+ return true;
415
+ if (cls.parent && classMap.has(cls.parent)) {
416
+ return this.isDescendantOf(cls.parent, ancestorName, classMap);
417
+ }
418
+ return false;
419
+ }
420
+ computeCyclicReturnTypes(cls, classMap) {
421
+ const cyclic = new Set();
422
+ for (const method of cls.methods) {
423
+ const returnTypeName = method.returnType.name;
424
+ if (returnTypeName && classMap.has(returnTypeName)) {
425
+ if (this.wouldCreateCycle(cls.name, returnTypeName, classMap)) {
426
+ cyclic.add(normalizeClassName(returnTypeName));
427
+ }
428
+ }
429
+ }
430
+ for (const func of cls.functions) {
431
+ const returnTypeName = func.returnType.name;
432
+ if (returnTypeName && classMap.has(returnTypeName)) {
433
+ if (this.wouldCreateCycle(cls.name, returnTypeName, classMap)) {
434
+ cyclic.add(normalizeClassName(returnTypeName));
435
+ }
436
+ }
437
+ }
438
+ return cyclic;
439
+ }
440
+ wouldCreateCycle(currentClass, returnType, classMap) {
441
+ if (this.isDescendantOf(returnType, currentClass, classMap)) {
442
+ return true;
443
+ }
444
+ const returnTypeClass = classMap.get(returnType);
445
+ if (!returnTypeClass)
446
+ return false;
447
+ const ancestors = this.getAncestors(returnType, classMap);
448
+ for (const ancestor of ancestors) {
449
+ const ancestorClass = classMap.get(ancestor);
450
+ if (!ancestorClass)
451
+ continue;
452
+ if (this.classImports(ancestorClass, currentClass, classMap)) {
453
+ return true;
454
+ }
455
+ }
456
+ return false;
457
+ }
458
+ getAncestors(className, classMap) {
459
+ const ancestors = [];
460
+ let current = classMap.get(className);
461
+ while (current?.parent && classMap.has(current.parent)) {
462
+ ancestors.push(current.parent);
463
+ current = classMap.get(current.parent);
464
+ }
465
+ return ancestors;
466
+ }
467
+ classImports(cls, targetClass, _classMap) {
468
+ for (const method of cls.methods) {
469
+ if (method.returnType.name === targetClass)
470
+ return true;
471
+ for (const param of method.parameters) {
472
+ if (param.type.name === targetClass)
473
+ return true;
474
+ }
475
+ }
476
+ for (const func of cls.functions) {
477
+ if (func.returnType.name === targetClass)
478
+ return true;
479
+ for (const param of func.parameters) {
480
+ if (param.type.name === targetClass)
481
+ return true;
482
+ }
483
+ }
484
+ for (const prop of cls.properties) {
485
+ if (prop.type.name === targetClass)
486
+ return true;
487
+ }
488
+ return false;
489
+ }
490
+ collectParentMethodNames(cls, classMap, interfaceMap) {
491
+ const names = new Set();
492
+ let current = cls.parent ? classMap.get(cls.parent) : undefined;
493
+ while (current) {
494
+ for (const method of current.methods) {
495
+ names.add(method.name);
496
+ }
497
+ for (const ifaceName of current.implements) {
498
+ const iface = interfaceMap.get(ifaceName);
499
+ if (iface) {
500
+ for (const method of iface.methods) {
501
+ names.add(method.name);
502
+ }
503
+ }
504
+ }
505
+ current = current.parent ? classMap.get(current.parent) : undefined;
506
+ }
507
+ return names;
508
+ }
316
509
  generateConstructors(cls, _sharedLibrary, hasParent) {
317
510
  const mainConstructor = cls.constructors.find((c) => !c.parameters.some(isVararg));
318
511
  const sections = [];
@@ -376,7 +569,7 @@ export class CodeGenerator {
376
569
  }
377
570
  return ` protected createPtr(_args: unknown[]): unknown {\n return null;\n }\n`;
378
571
  }
379
- const filteredParams = mainConstructor.parameters.filter((p) => !isVararg(p));
572
+ const filteredParams = mainConstructor.parameters.filter((p, i) => !isVararg(p) && !this.typeMapper.isClosureTarget(i, mainConstructor.parameters));
380
573
  const paramTypes = filteredParams.map((p) => this.typeMapper.mapParameter(p).ts);
381
574
  const paramNames = filteredParams.map((p) => toValidIdentifier(toCamelCase(p.name)));
382
575
  const destructuring = paramNames.length > 0
@@ -498,15 +691,258 @@ ${allArgs ? `${allArgs},` : ""}
498
691
  generateMethods(methods, sharedLibrary, className) {
499
692
  const generatedMethods = new Set();
500
693
  const sections = [];
694
+ const asyncMethods = new Set();
695
+ const finishMethods = new Set();
696
+ for (const method of methods) {
697
+ if (this.hasAsyncCallback(method)) {
698
+ asyncMethods.add(method.name);
699
+ finishMethods.add(`${method.name}_finish`);
700
+ }
701
+ }
501
702
  for (const method of methods) {
502
703
  const methodKey = `${toCamelCase(method.name)}:${method.cIdentifier}`;
503
704
  if (generatedMethods.has(methodKey))
504
705
  continue;
505
706
  generatedMethods.add(methodKey);
707
+ if (asyncMethods.has(method.name) || finishMethods.has(method.name)) {
708
+ const asyncWrapper = this.generateAsyncWrapper(method, methods, sharedLibrary, className);
709
+ if (asyncWrapper) {
710
+ sections.push(asyncWrapper);
711
+ }
712
+ continue;
713
+ }
506
714
  sections.push(this.generateMethod(method, sharedLibrary, className));
507
715
  }
508
716
  return sections.join("\n");
509
717
  }
718
+ hasAsyncCallback(method) {
719
+ return method.parameters.some((p) => p.type.name === "Gio.AsyncReadyCallback");
720
+ }
721
+ findFinishMethod(asyncMethod, allMethods) {
722
+ const finishName = `${asyncMethod.name}_finish`;
723
+ return allMethods.find((m) => m.name === finishName);
724
+ }
725
+ generateAsyncWrapper(method, allMethods, sharedLibrary, className) {
726
+ if (!this.hasAsyncCallback(method))
727
+ return null;
728
+ const finishMethod = this.findFinishMethod(method, allMethods);
729
+ if (!finishMethod)
730
+ return null;
731
+ let methodName = toCamelCase(method.name);
732
+ if (className) {
733
+ const renames = METHOD_RENAMES.get(className);
734
+ const renamed = renames?.get(methodName);
735
+ if (renamed)
736
+ methodName = renamed;
737
+ }
738
+ const paramsWithoutCallback = method.parameters.filter((p, i) => !isVararg(p) &&
739
+ p.type.name !== "Gio.AsyncReadyCallback" &&
740
+ !this.typeMapper.isClosureTarget(i, method.parameters));
741
+ let hasRequiredAfterOptional = false;
742
+ let seenOptional = false;
743
+ for (const p of paramsWithoutCallback) {
744
+ const isOptional = this.typeMapper.isNullable(p);
745
+ if (isOptional)
746
+ seenOptional = true;
747
+ else if (seenOptional)
748
+ hasRequiredAfterOptional = true;
749
+ }
750
+ if (hasRequiredAfterOptional) {
751
+ return null;
752
+ }
753
+ const params = paramsWithoutCallback
754
+ .map((p) => {
755
+ const mapped = this.typeMapper.mapParameter(p);
756
+ const paramName = toValidIdentifier(toCamelCase(p.name));
757
+ const isOptional = this.typeMapper.isNullable(p);
758
+ return `${paramName}${isOptional ? "?" : ""}: ${mapped.ts}`;
759
+ })
760
+ .join(", ");
761
+ const finishParams = finishMethod.parameters.filter((p) => !isVararg(p));
762
+ const outputParams = finishParams.filter((p) => p.direction === "out" || (p.type.name !== "Gio.AsyncResult" && p.direction !== "in"));
763
+ const returnTypeMapping = this.typeMapper.mapType(finishMethod.returnType, true);
764
+ const mainReturnType = returnTypeMapping.ts;
765
+ const hasMainReturn = mainReturnType !== "void";
766
+ this.addGioImport = true;
767
+ const promiseType = this.buildAsyncReturnType(hasMainReturn, mainReturnType, outputParams);
768
+ const lines = [];
769
+ lines.push(` /**`);
770
+ lines.push(` * Promise-based version of ${methodName}.`);
771
+ if (method.doc) {
772
+ const docLines = sanitizeDoc(method.doc).split("\n").slice(0, 3);
773
+ for (const line of docLines) {
774
+ lines.push(` * ${line.trim()}`);
775
+ }
776
+ }
777
+ lines.push(` */`);
778
+ lines.push(` ${methodName}(${params}): Promise<${promiseType}> {`);
779
+ lines.push(` return new Promise((resolve, reject) => {`);
780
+ const callArgs = this.buildAsyncCallArgs(method, finishMethod, outputParams, sharedLibrary);
781
+ lines.push(callArgs);
782
+ lines.push(` });`);
783
+ lines.push(` }`);
784
+ return `${lines.join("\n")}\n`;
785
+ }
786
+ buildAsyncReturnType(hasMainReturn, mainReturnType, outputParams) {
787
+ if (outputParams.length === 0) {
788
+ return hasMainReturn ? mainReturnType : "void";
789
+ }
790
+ const outputTypes = [];
791
+ if (hasMainReturn) {
792
+ outputTypes.push(`result: ${mainReturnType}`);
793
+ }
794
+ for (const param of outputParams) {
795
+ const paramName = toValidIdentifier(toCamelCase(param.name));
796
+ const mapped = this.typeMapper.mapParameter(param);
797
+ let paramType = mapped.ts;
798
+ if (paramType.startsWith("Ref<") && paramType.endsWith(">")) {
799
+ paramType = paramType.slice(4, -1);
800
+ }
801
+ outputTypes.push(`${paramName}: ${paramType}`);
802
+ }
803
+ return `{ ${outputTypes.join("; ")} }`;
804
+ }
805
+ buildAsyncCallArgs(method, finishMethod, outputParams, sharedLibrary) {
806
+ const returnTypeMapping = this.typeMapper.mapType(finishMethod.returnType, true);
807
+ const hasMainReturn = returnTypeMapping.ts !== "void";
808
+ const needsObjectWrap = (returnTypeMapping.ffi.type === "gobject" || returnTypeMapping.ffi.type === "boxed") &&
809
+ returnTypeMapping.ts !== "unknown";
810
+ const lines = [];
811
+ for (const param of outputParams) {
812
+ const paramName = toValidIdentifier(toCamelCase(param.name));
813
+ lines.push(` const ${paramName}Ref = { value: null as unknown };`);
814
+ }
815
+ const nonCallbackParams = method.parameters.filter((p, i) => !isVararg(p) &&
816
+ p.type.name !== "Gio.AsyncReadyCallback" &&
817
+ !this.typeMapper.isClosureTarget(i, method.parameters));
818
+ const asyncCallArgs = nonCallbackParams
819
+ .map((param) => {
820
+ const mapped = this.typeMapper.mapParameter(param);
821
+ const jsParamName = toValidIdentifier(toCamelCase(param.name));
822
+ const needsPtr = mapped.ffi.type === "gobject" || mapped.ffi.type === "boxed";
823
+ const valueName = needsPtr ? `(${jsParamName} as any)?.ptr ?? ${jsParamName}` : jsParamName;
824
+ return ` {\n type: ${this.generateTypeDescriptor(mapped.ffi)},\n value: ${valueName},\n }`;
825
+ })
826
+ .join(",\n");
827
+ const finishCallArgs = this.generateFinishCallArguments(finishMethod.parameters, outputParams);
828
+ const finishReturnType = this.typeMapper.mapType(finishMethod.returnType, true);
829
+ lines.push(` const callback = (_source: unknown, asyncResult: unknown) => {`);
830
+ lines.push(` try {`);
831
+ if (finishMethod.throws) {
832
+ lines.push(` const error = { value: null as unknown };`);
833
+ }
834
+ const errorArg = finishMethod.throws
835
+ ? `,\n { type: { type: "ref", innerType: { type: "boxed", innerType: "GError", lib: "libglib-2.0.so.0" } }, value: error }`
836
+ : "";
837
+ if (hasMainReturn) {
838
+ const varName = needsObjectWrap ? "ptr" : "result";
839
+ const castType = needsObjectWrap ? "unknown" : finishReturnType.ts;
840
+ lines.push(` const ${varName} = call(`);
841
+ lines.push(` "${sharedLibrary}",`);
842
+ lines.push(` "${finishMethod.cIdentifier}",`);
843
+ lines.push(` [`);
844
+ lines.push(` { type: { type: "gobject" }, value: this.ptr },`);
845
+ lines.push(`${finishCallArgs}${errorArg}`);
846
+ lines.push(` ],`);
847
+ lines.push(` ${this.generateTypeDescriptor(finishReturnType.ffi)}`);
848
+ lines.push(` ) as ${castType};`);
849
+ }
850
+ else {
851
+ lines.push(` call(`);
852
+ lines.push(` "${sharedLibrary}",`);
853
+ lines.push(` "${finishMethod.cIdentifier}",`);
854
+ lines.push(` [`);
855
+ lines.push(` { type: { type: "gobject" }, value: this.ptr },`);
856
+ lines.push(`${finishCallArgs}${errorArg}`);
857
+ lines.push(` ],`);
858
+ lines.push(` { type: "undefined" }`);
859
+ lines.push(` );`);
860
+ }
861
+ if (finishMethod.throws) {
862
+ lines.push(` if (error.value !== null) {`);
863
+ lines.push(` throw new NativeError(error.value);`);
864
+ lines.push(` }`);
865
+ this.usesNativeError = true;
866
+ }
867
+ if (outputParams.length === 0) {
868
+ if (hasMainReturn) {
869
+ if (needsObjectWrap) {
870
+ lines.push(` if (ptr === null) { resolve(null as unknown as ${finishReturnType.ts}); return; }`);
871
+ lines.push(` const instance = Object.create(${finishReturnType.ts}.prototype) as ${finishReturnType.ts} & { ptr: unknown };`);
872
+ lines.push(` instance.ptr = ptr;`);
873
+ lines.push(` resolve(instance);`);
874
+ }
875
+ else {
876
+ lines.push(` resolve(result);`);
877
+ }
878
+ }
879
+ else {
880
+ lines.push(` resolve();`);
881
+ }
882
+ }
883
+ else {
884
+ const resolveFields = [];
885
+ if (hasMainReturn) {
886
+ if (needsObjectWrap) {
887
+ lines.push(` const result = (ptr === null ? null : (() => {`);
888
+ lines.push(` const instance = Object.create(${finishReturnType.ts}.prototype) as ${finishReturnType.ts} & { ptr: unknown };`);
889
+ lines.push(` instance.ptr = ptr;`);
890
+ lines.push(` return instance;`);
891
+ lines.push(` })()) as ${finishReturnType.ts};`);
892
+ }
893
+ resolveFields.push("result");
894
+ }
895
+ for (const param of outputParams) {
896
+ const paramName = toValidIdentifier(toCamelCase(param.name));
897
+ const mapped = this.typeMapper.mapParameter(param);
898
+ let paramType = mapped.ts;
899
+ if (paramType.startsWith("Ref<") && paramType.endsWith(">")) {
900
+ paramType = paramType.slice(4, -1);
901
+ }
902
+ resolveFields.push(`${paramName}: ${paramName}Ref.value as ${paramType}`);
903
+ }
904
+ lines.push(` resolve({ ${resolveFields.join(", ")} });`);
905
+ }
906
+ lines.push(` } catch (err) {`);
907
+ lines.push(` reject(err);`);
908
+ lines.push(` }`);
909
+ lines.push(` };`);
910
+ lines.push(` call(`);
911
+ lines.push(` "${sharedLibrary}",`);
912
+ lines.push(` "${method.cIdentifier}",`);
913
+ lines.push(` [`);
914
+ lines.push(` { type: { type: "gobject" }, value: this.ptr },`);
915
+ if (asyncCallArgs) {
916
+ lines.push(`${asyncCallArgs},`);
917
+ }
918
+ lines.push(` {`);
919
+ lines.push(` type: { type: "asyncCallback", sourceType: { type: "gobject", borrowed: true }, resultType: { type: "gobject", borrowed: true } },`);
920
+ lines.push(` value: callback,`);
921
+ lines.push(` },`);
922
+ lines.push(` ],`);
923
+ lines.push(` { type: "undefined" }`);
924
+ lines.push(` );`);
925
+ return lines.join("\n");
926
+ }
927
+ generateFinishCallArguments(parameters, outputParams) {
928
+ return parameters
929
+ .filter((p) => !isVararg(p))
930
+ .map((param) => {
931
+ const paramName = toValidIdentifier(toCamelCase(param.name));
932
+ if (param.type.name === "Gio.AsyncResult") {
933
+ return ` { type: { type: "gobject" }, value: asyncResult }`;
934
+ }
935
+ if (outputParams.some((op) => op.name === param.name)) {
936
+ const mapped = this.typeMapper.mapParameter(param);
937
+ return ` { type: ${this.generateTypeDescriptor(mapped.ffi)}, value: ${paramName}Ref }`;
938
+ }
939
+ const mapped = this.typeMapper.mapParameter(param);
940
+ const needsPtr = mapped.ffi.type === "gobject" || mapped.ffi.type === "boxed";
941
+ const valueName = needsPtr ? `(${paramName} as any)?.ptr ?? ${paramName}` : paramName;
942
+ return ` { type: ${this.generateTypeDescriptor(mapped.ffi)}, value: ${valueName} }`;
943
+ })
944
+ .join(",\n");
945
+ }
510
946
  generateMethod(method, sharedLibrary, className) {
511
947
  let methodName = toCamelCase(method.name);
512
948
  if (className) {
@@ -522,7 +958,9 @@ ${allArgs ? `${allArgs},` : ""}
522
958
  const returnTypeAnnotation = tsReturnType !== "void" ? `: ${tsReturnType}` : "";
523
959
  const hasResultParam = method.parameters.some((p) => toValidIdentifier(toCamelCase(p.name)) === "result");
524
960
  const resultVarName = hasResultParam ? "_result" : "result";
525
- const needsCast = returnTypeMapping.ts !== "void" && returnTypeMapping.ts !== "unknown";
961
+ const needsObjectWrap = (returnTypeMapping.ffi.type === "gobject" || returnTypeMapping.ffi.type === "boxed") &&
962
+ tsReturnType !== "unknown" &&
963
+ returnTypeMapping.kind !== "interface";
526
964
  const hasReturnValue = returnTypeMapping.ts !== "void";
527
965
  const lines = [];
528
966
  const methodDoc = formatMethodDoc(method.doc, method.parameters);
@@ -533,17 +971,46 @@ ${allArgs ? `${allArgs},` : ""}
533
971
  if (method.throws) {
534
972
  lines.push(` const error = { value: null as unknown };`);
535
973
  }
536
- const callPrefix = method.throws
537
- ? hasReturnValue
538
- ? `const ${resultVarName} = `
539
- : ""
540
- : hasReturnValue
541
- ? "return "
542
- : "";
543
974
  const args = this.generateCallArguments(method.parameters);
544
975
  const errorArg = method.throws ? this.generateErrorArgument() : "";
545
976
  const allArgs = errorArg ? args + (args ? ",\n" : "") + errorArg : args;
546
- lines.push(` ${callPrefix}call(
977
+ if (needsObjectWrap && hasReturnValue) {
978
+ const isCyclic = this.cyclicReturnTypes.has(tsReturnType);
979
+ lines.push(` const ptr = call(
980
+ "${sharedLibrary}",
981
+ "${method.cIdentifier}",
982
+ [
983
+ {
984
+ type: { type: "gobject" },
985
+ value: this.ptr,
986
+ },
987
+ ${allArgs ? `${allArgs},` : ""}
988
+ ],
989
+ ${this.generateTypeDescriptor(returnTypeMapping.ffi)}
990
+ );`);
991
+ if (method.throws) {
992
+ lines.push(this.generateErrorCheck());
993
+ }
994
+ lines.push(` if (ptr === null) return null as unknown as ${tsReturnType};`);
995
+ if (isCyclic) {
996
+ lines.push(` return { ptr } as unknown as ${tsReturnType};`);
997
+ }
998
+ else {
999
+ lines.push(` const instance = Object.create(${tsReturnType}.prototype) as ${tsReturnType} & { ptr: unknown };`);
1000
+ lines.push(` instance.ptr = ptr;`);
1001
+ lines.push(` return instance;`);
1002
+ }
1003
+ }
1004
+ else {
1005
+ const callPrefix = method.throws
1006
+ ? hasReturnValue
1007
+ ? `const ${resultVarName} = `
1008
+ : ""
1009
+ : hasReturnValue
1010
+ ? "return "
1011
+ : "";
1012
+ const needsCast = returnTypeMapping.ts !== "void" && returnTypeMapping.ts !== "unknown";
1013
+ lines.push(` ${callPrefix}call(
547
1014
  "${sharedLibrary}",
548
1015
  "${method.cIdentifier}",
549
1016
  [
@@ -555,10 +1022,11 @@ ${allArgs ? `${allArgs},` : ""}
555
1022
  ],
556
1023
  ${this.generateTypeDescriptor(returnTypeMapping.ffi)}
557
1024
  )${needsCast ? ` as ${tsReturnType}` : ""};`);
558
- if (method.throws) {
559
- lines.push(this.generateErrorCheck());
560
- if (hasReturnValue) {
561
- lines.push(` return ${resultVarName};`);
1025
+ if (method.throws) {
1026
+ lines.push(this.generateErrorCheck());
1027
+ if (hasReturnValue) {
1028
+ lines.push(` return ${resultVarName};`);
1029
+ }
562
1030
  }
563
1031
  }
564
1032
  lines.push(` }`);
@@ -624,6 +1092,8 @@ ${allArgs ? `${allArgs},` : ""}
624
1092
  const savedRecordCallback = this.typeMapper.getRecordUsageCallback();
625
1093
  this.typeMapper.setEnumUsageCallback(null);
626
1094
  this.typeMapper.setRecordUsageCallback(null);
1095
+ this.typeMapper.setExternalTypeUsageCallback(null);
1096
+ this.typeMapper.setSameNamespaceClassUsageCallback(null);
627
1097
  const signalMetadata = signals.map((signal) => {
628
1098
  const paramEntries = (signal.parameters ?? []).map((param) => {
629
1099
  const ffiType = JSON.stringify(this.typeMapper.mapType(param.type).ffi);
@@ -638,6 +1108,13 @@ ${allArgs ? `${allArgs},` : ""}
638
1108
  });
639
1109
  this.typeMapper.setEnumUsageCallback(savedEnumCallback);
640
1110
  this.typeMapper.setRecordUsageCallback(savedRecordCallback);
1111
+ this.typeMapper.setExternalTypeUsageCallback((usage) => {
1112
+ const key = `${usage.namespace}.${usage.transformedName}`;
1113
+ this.usedExternalTypes.set(key, usage);
1114
+ });
1115
+ this.typeMapper.setSameNamespaceClassUsageCallback((className, originalName) => {
1116
+ this.usedSameNamespaceClasses.set(className, originalName);
1117
+ });
641
1118
  this.usesType = true;
642
1119
  const signalMapCode = signalMetadata.length > 0
643
1120
  ? `const signalMeta: Record<string, { type: Type; cls?: { prototype: object } }[]> = {\n${signalMetadata.join(",\n")}\n };
@@ -679,22 +1156,27 @@ ${allArgs ? `${allArgs},` : ""}
679
1156
  }
680
1157
  `;
681
1158
  }
682
- async generateInterface(iface, sharedLibrary, classMap) {
1159
+ async generateInterface(iface, sharedLibrary, _classMap) {
683
1160
  this.resetState();
684
- this.usesRef = iface.methods.some((m) => hasOutParameter(m.parameters));
685
- this.usesCall = iface.methods.length > 0 || iface.signals.length > 0;
686
1161
  const interfaceName = toPascalCase(iface.name);
687
1162
  const sections = [];
1163
+ this.usesCall = iface.methods.length > 0;
1164
+ this.usesRef = iface.methods.some((m) => hasOutParameter(m.parameters));
688
1165
  if (iface.doc) {
689
1166
  sections.push(formatDoc(iface.doc));
690
1167
  }
691
- sections.push(`export abstract class ${interfaceName} {`);
692
- sections.push(` protected abstract ptr: unknown;\n`);
693
- sections.push(this.generateMethods(iface.methods, sharedLibrary, iface.name));
694
- sections.push(this.generateProperties(iface.properties, iface.methods));
695
- if (iface.signals.length > 0) {
696
- const hasConnectMethod = iface.methods.some((m) => toCamelCase(m.name) === "connect");
697
- sections.push(this.generateSignalConnect(sharedLibrary, iface.signals, hasConnectMethod, classMap));
1168
+ sections.push(`export class ${interfaceName} {`);
1169
+ sections.push(` ptr: unknown;`);
1170
+ sections.push(``);
1171
+ sections.push(` protected constructor(ptr: unknown) {`);
1172
+ sections.push(` this.ptr = ptr;`);
1173
+ sections.push(` }`);
1174
+ sections.push(``);
1175
+ sections.push(` static fromPtr(ptr: unknown): ${interfaceName} {`);
1176
+ sections.push(` return new ${interfaceName}(ptr);`);
1177
+ sections.push(` }`);
1178
+ if (iface.methods.length > 0) {
1179
+ sections.push(this.generateMethods(iface.methods, sharedLibrary, interfaceName));
698
1180
  }
699
1181
  sections.push("}");
700
1182
  const imports = this.generateImports(interfaceName);
@@ -706,8 +1188,7 @@ ${allArgs ? `${allArgs},` : ""}
706
1188
  record.methods.some((m) => hasOutParameter(m.parameters)) ||
707
1189
  record.constructors.some((c) => hasOutParameter(c.parameters)) ||
708
1190
  record.functions.some((f) => hasOutParameter(f.parameters));
709
- this.usesCall =
710
- record.methods.length > 0 || record.constructors.length > 0 || record.functions.length > 0;
1191
+ this.usesCall = record.methods.length > 0 || record.constructors.length > 0 || record.functions.length > 0;
711
1192
  const hasReadableFields = record.fields.some((f) => f.readable !== false && !f.private);
712
1193
  if (hasReadableFields) {
713
1194
  this.usesRead = true;
@@ -955,7 +1436,11 @@ ${args}
955
1436
  }
956
1437
  isWritableType(type) {
957
1438
  const typeName = type.name;
958
- if (typeName === "gboolean" || typeName === "guint8" || typeName === "gint8" || typeName === "guchar" || typeName === "gchar") {
1439
+ if (typeName === "gboolean" ||
1440
+ typeName === "guint8" ||
1441
+ typeName === "gint8" ||
1442
+ typeName === "guchar" ||
1443
+ typeName === "gchar") {
959
1444
  return true;
960
1445
  }
961
1446
  if (typeName === "gint16" || typeName === "guint16" || typeName === "gshort" || typeName === "gushort") {
@@ -964,7 +1449,12 @@ ${args}
964
1449
  if (typeName === "gint" || typeName === "guint" || typeName === "gint32" || typeName === "guint32") {
965
1450
  return true;
966
1451
  }
967
- if (typeName === "gint64" || typeName === "guint64" || typeName === "glong" || typeName === "gulong" || typeName === "gsize" || typeName === "gssize") {
1452
+ if (typeName === "gint64" ||
1453
+ typeName === "guint64" ||
1454
+ typeName === "glong" ||
1455
+ typeName === "gulong" ||
1456
+ typeName === "gsize" ||
1457
+ typeName === "gssize") {
968
1458
  return true;
969
1459
  }
970
1460
  if (typeName === "gfloat" || typeName === "float" || typeName === "gdouble" || typeName === "double") {
@@ -974,16 +1464,35 @@ ${args}
974
1464
  }
975
1465
  getFieldSize(type) {
976
1466
  const typeName = type.name;
977
- if (typeName === "gboolean" || typeName === "guint8" || typeName === "gint8" || typeName === "guchar" || typeName === "gchar") {
1467
+ if (typeName === "gboolean" ||
1468
+ typeName === "guint8" ||
1469
+ typeName === "gint8" ||
1470
+ typeName === "guchar" ||
1471
+ typeName === "gchar") {
978
1472
  return 1;
979
1473
  }
980
1474
  if (typeName === "gint16" || typeName === "guint16" || typeName === "gshort" || typeName === "gushort") {
981
1475
  return 2;
982
1476
  }
983
- if (typeName === "gint" || typeName === "guint" || typeName === "gint32" || typeName === "guint32" || typeName === "gfloat" || typeName === "float" || typeName === "Quark" || typeName === "GQuark") {
1477
+ if (typeName === "gint" ||
1478
+ typeName === "guint" ||
1479
+ typeName === "gint32" ||
1480
+ typeName === "guint32" ||
1481
+ typeName === "gfloat" ||
1482
+ typeName === "float" ||
1483
+ typeName === "Quark" ||
1484
+ typeName === "GQuark") {
984
1485
  return 4;
985
1486
  }
986
- if (typeName === "gint64" || typeName === "guint64" || typeName === "gdouble" || typeName === "double" || typeName === "glong" || typeName === "gulong" || typeName === "gsize" || typeName === "gssize" || typeName === "GType") {
1487
+ if (typeName === "gint64" ||
1488
+ typeName === "guint64" ||
1489
+ typeName === "gdouble" ||
1490
+ typeName === "double" ||
1491
+ typeName === "glong" ||
1492
+ typeName === "gulong" ||
1493
+ typeName === "gsize" ||
1494
+ typeName === "gssize" ||
1495
+ typeName === "GType") {
987
1496
  return 8;
988
1497
  }
989
1498
  return 8;
@@ -1009,7 +1518,9 @@ ${args}
1009
1518
  const tsReturnType = returnTypeMapping.ts === "void" ? "" : `: ${returnTypeMapping.ts}`;
1010
1519
  const hasResultParam = func.parameters.some((p) => toValidIdentifier(toCamelCase(p.name)) === "result");
1011
1520
  const resultVarName = hasResultParam ? "_result" : "result";
1012
- const needsCast = returnTypeMapping.ts !== "void" && returnTypeMapping.ts !== "unknown";
1521
+ const needsObjectWrap = (returnTypeMapping.ffi.type === "gobject" || returnTypeMapping.ffi.type === "boxed") &&
1522
+ returnTypeMapping.ts !== "unknown" &&
1523
+ returnTypeMapping.kind !== "interface";
1013
1524
  const hasReturnValue = returnTypeMapping.ts !== "void";
1014
1525
  const lines = [];
1015
1526
  const funcDoc = formatMethodDoc(func.doc, func.parameters, "");
@@ -1020,23 +1531,38 @@ ${args}
1020
1531
  if (func.throws) {
1021
1532
  lines.push(` const error = { value: null as unknown };`);
1022
1533
  }
1023
- const callPrefix = func.throws
1024
- ? hasReturnValue
1025
- ? `const ${resultVarName} = `
1026
- : ""
1027
- : hasReturnValue
1028
- ? "return "
1029
- : "";
1030
1534
  const args = this.generateCallArguments(func.parameters, " ");
1031
1535
  const errorArg = func.throws ? this.generateErrorArgument(" ") : "";
1032
1536
  const allArgs = errorArg ? args + (args ? ",\n" : "") + errorArg : args;
1033
- lines.push(` ${callPrefix}call("${sharedLibrary}", "${func.cIdentifier}", [
1537
+ if (needsObjectWrap && hasReturnValue) {
1538
+ lines.push(` const ptr = call("${sharedLibrary}", "${func.cIdentifier}", [
1539
+ ${allArgs ? `${allArgs},` : ""}
1540
+ ], ${this.generateTypeDescriptor(returnTypeMapping.ffi)});`);
1541
+ if (func.throws) {
1542
+ lines.push(this.generateErrorCheck(""));
1543
+ }
1544
+ lines.push(` if (ptr === null) return null as unknown as ${returnTypeMapping.ts};`);
1545
+ lines.push(` const instance = Object.create(${returnTypeMapping.ts}.prototype) as ${returnTypeMapping.ts} & { ptr: unknown };`);
1546
+ lines.push(` instance.ptr = ptr;`);
1547
+ lines.push(` return instance;`);
1548
+ }
1549
+ else {
1550
+ const callPrefix = func.throws
1551
+ ? hasReturnValue
1552
+ ? `const ${resultVarName} = `
1553
+ : ""
1554
+ : hasReturnValue
1555
+ ? "return "
1556
+ : "";
1557
+ const needsCast = returnTypeMapping.ts !== "void" && returnTypeMapping.ts !== "unknown";
1558
+ lines.push(` ${callPrefix}call("${sharedLibrary}", "${func.cIdentifier}", [
1034
1559
  ${allArgs ? `${allArgs},` : ""}
1035
1560
  ], ${this.generateTypeDescriptor(returnTypeMapping.ffi)})${needsCast ? ` as ${returnTypeMapping.ts}` : ""};`);
1036
- if (func.throws) {
1037
- lines.push(this.generateErrorCheck(""));
1038
- if (hasReturnValue) {
1039
- lines.push(` return ${resultVarName};`);
1561
+ if (func.throws) {
1562
+ lines.push(this.generateErrorCheck(""));
1563
+ if (hasReturnValue) {
1564
+ lines.push(` return ${resultVarName};`);
1565
+ }
1040
1566
  }
1041
1567
  }
1042
1568
  lines.push(`};`);
@@ -1064,7 +1590,7 @@ ${allArgs ? `${allArgs},` : ""}
1064
1590
  return this.formatCode(`${exports.join("\n")}\n`);
1065
1591
  }
1066
1592
  generateParameterList(parameters, makeAllOptional = false) {
1067
- const filteredParams = parameters.filter((p) => !isVararg(p));
1593
+ const filteredParams = parameters.filter((p, i) => !isVararg(p) && !this.typeMapper.isClosureTarget(i, parameters));
1068
1594
  const required = [];
1069
1595
  const optional = [];
1070
1596
  for (const param of filteredParams) {
@@ -1078,11 +1604,13 @@ ${allArgs ? `${allArgs},` : ""}
1078
1604
  }
1079
1605
  generateCallArguments(parameters, indent = " ") {
1080
1606
  return parameters
1081
- .filter((p) => !isVararg(p))
1607
+ .filter((p, i) => !isVararg(p) && !this.typeMapper.isClosureTarget(i, parameters))
1082
1608
  .map((param) => {
1083
1609
  const mapped = this.typeMapper.mapParameter(param);
1084
1610
  const jsParamName = toValidIdentifier(toCamelCase(param.name));
1085
- return `${indent} {\n${indent} type: ${this.generateTypeDescriptor(mapped.ffi)},\n${indent} value: ${jsParamName},\n${indent} }`;
1611
+ const needsPtr = mapped.ffi.type === "gobject" || mapped.ffi.type === "boxed";
1612
+ const valueName = needsPtr ? `(${jsParamName} as any)?.ptr ?? ${jsParamName}` : jsParamName;
1613
+ return `${indent} {\n${indent} type: ${this.generateTypeDescriptor(mapped.ffi)},\n${indent} value: ${valueName},\n${indent} }`;
1086
1614
  })
1087
1615
  .join(",\n");
1088
1616
  }
@@ -1118,6 +1646,9 @@ ${indent} }`;
1118
1646
  if (type.type === "array" && type.itemType) {
1119
1647
  return `{ type: "array", itemType: ${this.generateTypeDescriptor(type.itemType)} }`;
1120
1648
  }
1649
+ if (type.type === "asyncCallback" && type.sourceType && type.resultType) {
1650
+ return `{ type: "asyncCallback", sourceType: ${this.generateTypeDescriptor(type.sourceType)}, resultType: ${this.generateTypeDescriptor(type.resultType)} }`;
1651
+ }
1121
1652
  return `{ type: "${type.type}" }`;
1122
1653
  }
1123
1654
  generateImports(currentClassName, parentClassName) {
@@ -1150,7 +1681,26 @@ ${indent} }`;
1150
1681
  const normalizedParentClass = parentClassName ? normalizeClassName(parentClassName) : "";
1151
1682
  if (normalizedRecordName !== normalizedCurrentClass && normalizedRecordName !== normalizedParentClass) {
1152
1683
  const originalName = this.recordNameToFile.get(normalizedRecordName) ?? normalizedRecordName;
1153
- lines.push(`import type { ${normalizedRecordName} } from "./${toKebabCase(originalName)}.js";`);
1684
+ lines.push(`import { ${normalizedRecordName} } from "./${toKebabCase(originalName)}.js";`);
1685
+ }
1686
+ }
1687
+ for (const [interfaceName, originalName] of Array.from(this.usedInterfaces.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
1688
+ const originalFileName = this.interfaceNameToFile.get(interfaceName) ?? originalName;
1689
+ lines.push(`import { ${interfaceName} } from "./${toKebabCase(originalFileName)}.js";`);
1690
+ }
1691
+ for (const [className, originalName] of Array.from(this.usedSameNamespaceClasses.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
1692
+ const normalizedCurrentClass = currentClassName ? normalizeClassName(currentClassName) : "";
1693
+ const normalizedParentClass = parentClassName ? normalizeClassName(parentClassName) : "";
1694
+ if (className !== normalizedCurrentClass &&
1695
+ className !== normalizedParentClass &&
1696
+ !this.signalClasses.has(className) &&
1697
+ !this.usedInterfaces.has(className)) {
1698
+ if (this.cyclicReturnTypes.has(className)) {
1699
+ lines.push(`import type { ${className} } from "./${toKebabCase(originalName)}.js";`);
1700
+ }
1701
+ else {
1702
+ lines.push(`import { ${className} } from "./${toKebabCase(originalName)}.js";`);
1703
+ }
1154
1704
  }
1155
1705
  }
1156
1706
  for (const className of Array.from(this.signalClasses).sort()) {
@@ -1158,6 +1708,19 @@ ${indent} }`;
1158
1708
  lines.push(`import { ${className} } from "./${toKebabCase(className)}.js";`);
1159
1709
  }
1160
1710
  }
1711
+ const externalNamespaces = new Set();
1712
+ for (const usage of this.usedExternalTypes.values()) {
1713
+ if (usage.namespace === this.options.namespace)
1714
+ continue;
1715
+ externalNamespaces.add(usage.namespace);
1716
+ }
1717
+ if (this.addGioImport && this.options.namespace !== "Gio") {
1718
+ externalNamespaces.add("Gio");
1719
+ }
1720
+ for (const namespace of Array.from(externalNamespaces).sort()) {
1721
+ const nsLower = namespace.toLowerCase();
1722
+ lines.push(`import * as ${namespace} from "../${nsLower}/index.js";`);
1723
+ }
1161
1724
  return lines.length > 0 ? `${lines.join("\n")}\n` : "";
1162
1725
  }
1163
1726
  async formatCode(code) {