@gtkx/codegen 0.21.0 → 1.0.0-rc.1

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 (732) hide show
  1. package/README.md +173 -0
  2. package/dist/analysis/descriptor-render.d.ts +18 -0
  3. package/dist/analysis/descriptor-render.d.ts.map +1 -0
  4. package/dist/analysis/descriptor-render.js +297 -0
  5. package/dist/analysis/descriptor-render.js.map +1 -0
  6. package/dist/analysis/descriptor.d.ts +59 -0
  7. package/dist/analysis/descriptor.d.ts.map +1 -0
  8. package/dist/analysis/descriptor.js +123 -0
  9. package/dist/analysis/descriptor.js.map +1 -0
  10. package/dist/analysis/inheritance.d.ts +38 -0
  11. package/dist/analysis/inheritance.d.ts.map +1 -0
  12. package/dist/analysis/inheritance.js +193 -0
  13. package/dist/analysis/inheritance.js.map +1 -0
  14. package/dist/analysis/param-structure.d.ts +26 -0
  15. package/dist/analysis/param-structure.d.ts.map +1 -0
  16. package/dist/analysis/param-structure.js +107 -0
  17. package/dist/analysis/param-structure.js.map +1 -0
  18. package/dist/analysis/ts-type.d.ts +19 -0
  19. package/dist/analysis/ts-type.d.ts.map +1 -0
  20. package/dist/analysis/ts-type.js +65 -0
  21. package/dist/analysis/ts-type.js.map +1 -0
  22. package/dist/compile.d.ts +18 -0
  23. package/dist/compile.d.ts.map +1 -0
  24. package/dist/compile.js +123 -0
  25. package/dist/compile.js.map +1 -0
  26. package/dist/docs/api-reference.d.ts +66 -0
  27. package/dist/docs/api-reference.d.ts.map +1 -0
  28. package/dist/docs/api-reference.js +299 -0
  29. package/dist/docs/api-reference.js.map +1 -0
  30. package/dist/docs/element-page.d.ts +15 -0
  31. package/dist/docs/element-page.d.ts.map +1 -0
  32. package/dist/docs/element-page.js +221 -0
  33. package/dist/docs/element-page.js.map +1 -0
  34. package/dist/docs/pipeline.d.ts +25 -0
  35. package/dist/docs/pipeline.d.ts.map +1 -0
  36. package/dist/docs/pipeline.js +130 -0
  37. package/dist/docs/pipeline.js.map +1 -0
  38. package/dist/docs/render.d.ts +32 -0
  39. package/dist/docs/render.d.ts.map +1 -0
  40. package/dist/docs/render.js +134 -0
  41. package/dist/docs/render.js.map +1 -0
  42. package/dist/docs/symbol-page.d.ts +41 -0
  43. package/dist/docs/symbol-page.d.ts.map +1 -0
  44. package/dist/docs/symbol-page.js +338 -0
  45. package/dist/docs/symbol-page.js.map +1 -0
  46. package/dist/fingerprint.d.ts +6 -26
  47. package/dist/fingerprint.d.ts.map +1 -1
  48. package/dist/fingerprint.js +30 -18
  49. package/dist/fingerprint.js.map +1 -1
  50. package/dist/gir/ancestry.d.ts +9 -0
  51. package/dist/gir/ancestry.d.ts.map +1 -0
  52. package/dist/gir/ancestry.js +29 -0
  53. package/dist/gir/ancestry.js.map +1 -0
  54. package/dist/gir/callback.d.ts +9 -10
  55. package/dist/gir/callback.d.ts.map +1 -1
  56. package/dist/gir/callback.js +17 -16
  57. package/dist/gir/callback.js.map +1 -1
  58. package/dist/gir/class.d.ts +22 -43
  59. package/dist/gir/class.d.ts.map +1 -1
  60. package/dist/gir/class.js +11 -23
  61. package/dist/gir/class.js.map +1 -1
  62. package/dist/gir/enum.d.ts +13 -31
  63. package/dist/gir/enum.d.ts.map +1 -1
  64. package/dist/gir/enum.js +7 -14
  65. package/dist/gir/enum.js.map +1 -1
  66. package/dist/gir/field.d.ts +10 -23
  67. package/dist/gir/field.d.ts.map +1 -1
  68. package/dist/gir/field.js +12 -18
  69. package/dist/gir/field.js.map +1 -1
  70. package/dist/gir/function.d.ts +11 -42
  71. package/dist/gir/function.d.ts.map +1 -1
  72. package/dist/gir/function.js +7 -20
  73. package/dist/gir/function.js.map +1 -1
  74. package/dist/gir/gir-path.d.ts +2 -0
  75. package/dist/gir/gir-path.d.ts.map +1 -0
  76. package/dist/gir/gir-path.js +41 -0
  77. package/dist/gir/gir-path.js.map +1 -0
  78. package/dist/gir/libraries.d.ts +4 -0
  79. package/dist/gir/libraries.d.ts.map +1 -0
  80. package/dist/gir/libraries.js +62 -0
  81. package/dist/gir/libraries.js.map +1 -0
  82. package/dist/gir/library.d.ts +37 -0
  83. package/dist/gir/library.d.ts.map +1 -0
  84. package/dist/gir/library.js +218 -0
  85. package/dist/gir/library.js.map +1 -0
  86. package/dist/gir/namespace.d.ts +36 -50
  87. package/dist/gir/namespace.d.ts.map +1 -1
  88. package/dist/gir/namespace.js +46 -36
  89. package/dist/gir/namespace.js.map +1 -1
  90. package/dist/gir/parameter.d.ts +25 -69
  91. package/dist/gir/parameter.d.ts.map +1 -1
  92. package/dist/gir/parameter.js +36 -57
  93. package/dist/gir/parameter.js.map +1 -1
  94. package/dist/gir/parse.d.ts +6 -70
  95. package/dist/gir/parse.d.ts.map +1 -1
  96. package/dist/gir/parse.js +32 -80
  97. package/dist/gir/parse.js.map +1 -1
  98. package/dist/gir/primitives.d.ts +3 -34
  99. package/dist/gir/primitives.d.ts.map +1 -1
  100. package/dist/gir/primitives.js +19 -35
  101. package/dist/gir/primitives.js.map +1 -1
  102. package/dist/gir/property.d.ts +16 -25
  103. package/dist/gir/property.d.ts.map +1 -1
  104. package/dist/gir/property.js +12 -9
  105. package/dist/gir/property.js.map +1 -1
  106. package/dist/gir/record.d.ts +27 -0
  107. package/dist/gir/record.d.ts.map +1 -0
  108. package/dist/gir/record.js +25 -0
  109. package/dist/gir/record.js.map +1 -0
  110. package/dist/gir/size.d.ts +10 -57
  111. package/dist/gir/size.d.ts.map +1 -1
  112. package/dist/gir/size.js +0 -25
  113. package/dist/gir/size.js.map +1 -1
  114. package/dist/gir/type-id.d.ts +49 -0
  115. package/dist/gir/type-id.d.ts.map +1 -0
  116. package/dist/gir/type-id.js +8 -0
  117. package/dist/gir/type-id.js.map +1 -0
  118. package/dist/gir/type-ref.d.ts +3 -77
  119. package/dist/gir/type-ref.d.ts.map +1 -1
  120. package/dist/gir/type-ref.js +35 -65
  121. package/dist/gir/type-ref.js.map +1 -1
  122. package/dist/gir/type.d.ts +33 -0
  123. package/dist/gir/type.d.ts.map +1 -0
  124. package/dist/gir/type.js +2 -0
  125. package/dist/gir/type.js.map +1 -0
  126. package/dist/index.d.ts +5 -11
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +5 -11
  129. package/dist/index.js.map +1 -1
  130. package/dist/khronos/args.d.ts +30 -0
  131. package/dist/khronos/args.d.ts.map +1 -0
  132. package/dist/khronos/args.js +150 -0
  133. package/dist/khronos/args.js.map +1 -0
  134. package/dist/khronos/jsdoc.d.ts +21 -0
  135. package/dist/khronos/jsdoc.d.ts.map +1 -0
  136. package/dist/khronos/jsdoc.js +59 -0
  137. package/dist/khronos/jsdoc.js.map +1 -0
  138. package/dist/khronos/model.d.ts +37 -0
  139. package/dist/khronos/model.d.ts.map +1 -0
  140. package/dist/khronos/model.js +132 -0
  141. package/dist/khronos/model.js.map +1 -0
  142. package/dist/khronos/modules.d.ts +11 -0
  143. package/dist/khronos/modules.d.ts.map +1 -0
  144. package/dist/khronos/modules.js +58 -0
  145. package/dist/khronos/modules.js.map +1 -0
  146. package/dist/khronos/parse.d.ts +9 -0
  147. package/dist/khronos/parse.d.ts.map +1 -0
  148. package/dist/khronos/parse.js +61 -0
  149. package/dist/khronos/parse.js.map +1 -0
  150. package/dist/khronos/pipeline.d.ts +24 -0
  151. package/dist/khronos/pipeline.d.ts.map +1 -0
  152. package/dist/khronos/pipeline.js +182 -0
  153. package/dist/khronos/pipeline.js.map +1 -0
  154. package/dist/khronos/plan.d.ts +80 -0
  155. package/dist/khronos/plan.d.ts.map +1 -0
  156. package/dist/khronos/plan.js +136 -0
  157. package/dist/khronos/plan.js.map +1 -0
  158. package/dist/khronos/render.d.ts +16 -0
  159. package/dist/khronos/render.d.ts.map +1 -0
  160. package/dist/khronos/render.js +158 -0
  161. package/dist/khronos/render.js.map +1 -0
  162. package/dist/khronos/select.d.ts +15 -0
  163. package/dist/khronos/select.d.ts.map +1 -0
  164. package/dist/khronos/select.js +45 -0
  165. package/dist/khronos/select.js.map +1 -0
  166. package/dist/runner.d.ts +29 -47
  167. package/dist/runner.d.ts.map +1 -1
  168. package/dist/runner.js +78 -53
  169. package/dist/runner.js.map +1 -1
  170. package/dist/store/compile-store.d.ts +9 -0
  171. package/dist/store/compile-store.d.ts.map +1 -0
  172. package/dist/store/compile-store.js +38 -0
  173. package/dist/store/compile-store.js.map +1 -0
  174. package/dist/store/gi/async.d.ts +4 -0
  175. package/dist/store/gi/async.d.ts.map +1 -0
  176. package/dist/store/gi/async.js +41 -0
  177. package/dist/store/gi/async.js.map +1 -0
  178. package/dist/store/gi/callables.d.ts +36 -0
  179. package/dist/store/gi/callables.d.ts.map +1 -0
  180. package/dist/store/gi/callables.js +202 -0
  181. package/dist/store/gi/callables.js.map +1 -0
  182. package/dist/store/gi/callback.d.ts +4 -0
  183. package/dist/store/gi/callback.d.ts.map +1 -0
  184. package/dist/store/gi/callback.js +14 -0
  185. package/dist/store/gi/callback.js.map +1 -0
  186. package/dist/store/gi/class-struct-record.d.ts +9 -0
  187. package/dist/store/gi/class-struct-record.d.ts.map +1 -0
  188. package/dist/store/gi/class-struct-record.js +34 -0
  189. package/dist/store/gi/class-struct-record.js.map +1 -0
  190. package/dist/store/gi/class.d.ts +4 -0
  191. package/dist/store/gi/class.d.ts.map +1 -0
  192. package/dist/store/gi/class.js +169 -0
  193. package/dist/store/gi/class.js.map +1 -0
  194. package/dist/store/gi/companion.d.ts +4 -0
  195. package/dist/store/gi/companion.d.ts.map +1 -0
  196. package/dist/store/gi/companion.js +13 -0
  197. package/dist/store/gi/companion.js.map +1 -0
  198. package/dist/store/gi/constant.d.ts +5 -0
  199. package/dist/store/gi/constant.d.ts.map +1 -0
  200. package/dist/store/gi/constant.js +18 -0
  201. package/dist/store/gi/constant.js.map +1 -0
  202. package/dist/store/gi/constructor-props.d.ts +5 -0
  203. package/dist/store/gi/constructor-props.d.ts.map +1 -0
  204. package/dist/store/gi/constructor-props.js +64 -0
  205. package/dist/store/gi/constructor-props.js.map +1 -0
  206. package/dist/store/gi/enum.d.ts +5 -0
  207. package/dist/store/gi/enum.d.ts.map +1 -0
  208. package/dist/store/gi/enum.js +38 -0
  209. package/dist/store/gi/enum.js.map +1 -0
  210. package/dist/store/gi/function.d.ts +8 -0
  211. package/dist/store/gi/function.d.ts.map +1 -0
  212. package/dist/store/gi/function.js +87 -0
  213. package/dist/store/gi/function.js.map +1 -0
  214. package/dist/store/gi/gtype-binding.d.ts +10 -0
  215. package/dist/store/gi/gtype-binding.d.ts.map +1 -0
  216. package/dist/store/gi/gtype-binding.js +20 -0
  217. package/dist/store/gi/gtype-binding.js.map +1 -0
  218. package/dist/store/gi/interface.d.ts +4 -0
  219. package/dist/store/gi/interface.d.ts.map +1 -0
  220. package/dist/store/gi/interface.js +99 -0
  221. package/dist/store/gi/interface.js.map +1 -0
  222. package/dist/store/gi/item-comparators.d.ts +6 -0
  223. package/dist/store/gi/item-comparators.d.ts.map +1 -0
  224. package/dist/store/gi/item-comparators.js +76 -0
  225. package/dist/store/gi/item-comparators.js.map +1 -0
  226. package/dist/store/gi/method.d.ts +24 -0
  227. package/dist/store/gi/method.d.ts.map +1 -0
  228. package/dist/store/gi/method.js +279 -0
  229. package/dist/store/gi/method.js.map +1 -0
  230. package/dist/store/gi/param-marshal.d.ts +9 -0
  231. package/dist/store/gi/param-marshal.d.ts.map +1 -0
  232. package/dist/store/gi/param-marshal.js +37 -0
  233. package/dist/store/gi/param-marshal.js.map +1 -0
  234. package/dist/store/gi/pipeline.d.ts +4 -0
  235. package/dist/store/gi/pipeline.d.ts.map +1 -0
  236. package/dist/store/gi/pipeline.js +80 -0
  237. package/dist/store/gi/pipeline.js.map +1 -0
  238. package/dist/store/gi/properties.d.ts +5 -0
  239. package/dist/store/gi/properties.d.ts.map +1 -0
  240. package/dist/store/gi/properties.js +30 -0
  241. package/dist/store/gi/properties.js.map +1 -0
  242. package/dist/store/gi/property-accessor.d.ts +26 -0
  243. package/dist/store/gi/property-accessor.d.ts.map +1 -0
  244. package/dist/store/gi/property-accessor.js +132 -0
  245. package/dist/store/gi/property-accessor.js.map +1 -0
  246. package/dist/store/gi/record-constructor.d.ts +5 -0
  247. package/dist/store/gi/record-constructor.d.ts.map +1 -0
  248. package/dist/store/gi/record-constructor.js +65 -0
  249. package/dist/store/gi/record-constructor.js.map +1 -0
  250. package/dist/store/gi/record-field-accessor.d.ts +25 -0
  251. package/dist/store/gi/record-field-accessor.d.ts.map +1 -0
  252. package/dist/store/gi/record-field-accessor.js +288 -0
  253. package/dist/store/gi/record-field-accessor.js.map +1 -0
  254. package/dist/store/gi/record-layout.d.ts +14 -0
  255. package/dist/store/gi/record-layout.d.ts.map +1 -0
  256. package/dist/store/gi/record-layout.js +96 -0
  257. package/dist/store/gi/record-layout.js.map +1 -0
  258. package/dist/store/gi/record.d.ts +4 -0
  259. package/dist/store/gi/record.d.ts.map +1 -0
  260. package/dist/store/gi/record.js +59 -0
  261. package/dist/store/gi/record.js.map +1 -0
  262. package/dist/store/gi/registration.d.ts +16 -0
  263. package/dist/store/gi/registration.d.ts.map +1 -0
  264. package/dist/store/gi/registration.js +20 -0
  265. package/dist/store/gi/registration.js.map +1 -0
  266. package/dist/store/gi/return-wrap.d.ts +10 -0
  267. package/dist/store/gi/return-wrap.d.ts.map +1 -0
  268. package/dist/store/gi/return-wrap.js +46 -0
  269. package/dist/store/gi/return-wrap.js.map +1 -0
  270. package/dist/store/gi/runtime-override.d.ts +3 -0
  271. package/dist/store/gi/runtime-override.d.ts.map +1 -0
  272. package/dist/{writers → store/gi}/runtime-override.js +0 -15
  273. package/dist/store/gi/runtime-override.js.map +1 -0
  274. package/dist/store/gi/signal.d.ts +5 -0
  275. package/dist/store/gi/signal.d.ts.map +1 -0
  276. package/dist/store/gi/signal.js +233 -0
  277. package/dist/store/gi/signal.js.map +1 -0
  278. package/dist/store/gi/vtable.d.ts +4 -0
  279. package/dist/store/gi/vtable.d.ts.map +1 -0
  280. package/dist/store/gi/vtable.js +78 -0
  281. package/dist/store/gi/vtable.js.map +1 -0
  282. package/dist/store/gi-store.d.ts +9 -0
  283. package/dist/store/gi-store.d.ts.map +1 -0
  284. package/dist/store/gi-store.js +57 -0
  285. package/dist/store/gi-store.js.map +1 -0
  286. package/dist/store/jsx-store.d.ts +5 -0
  287. package/dist/store/jsx-store.d.ts.map +1 -0
  288. package/dist/store/jsx-store.js +23 -0
  289. package/dist/store/jsx-store.js.map +1 -0
  290. package/dist/store/react/built-ins.d.ts +9 -0
  291. package/dist/store/react/built-ins.d.ts.map +1 -0
  292. package/dist/store/react/built-ins.js +226 -0
  293. package/dist/store/react/built-ins.js.map +1 -0
  294. package/dist/store/react/element-components.d.ts +15 -0
  295. package/dist/store/react/element-components.d.ts.map +1 -0
  296. package/dist/store/react/element-components.js +92 -0
  297. package/dist/store/react/element-components.js.map +1 -0
  298. package/dist/store/react/element-prop-types.d.ts +19 -0
  299. package/dist/store/react/element-prop-types.d.ts.map +1 -0
  300. package/dist/store/react/element-prop-types.js +244 -0
  301. package/dist/store/react/element-prop-types.js.map +1 -0
  302. package/dist/store/react/element-props.d.ts +4 -0
  303. package/dist/store/react/element-props.d.ts.map +1 -0
  304. package/dist/store/react/element-props.js +178 -0
  305. package/dist/store/react/element-props.js.map +1 -0
  306. package/dist/store/react/gir-index.d.ts +25 -0
  307. package/dist/store/react/gir-index.d.ts.map +1 -0
  308. package/dist/store/react/gir-index.js +55 -0
  309. package/dist/store/react/gir-index.js.map +1 -0
  310. package/dist/store/react/intrinsic-elements.d.ts +26 -0
  311. package/dist/store/react/intrinsic-elements.d.ts.map +1 -0
  312. package/dist/store/react/intrinsic-elements.js +107 -0
  313. package/dist/store/react/intrinsic-elements.js.map +1 -0
  314. package/dist/store/react/jsx.d.ts +18 -0
  315. package/dist/store/react/jsx.d.ts.map +1 -0
  316. package/dist/store/react/jsx.js +203 -0
  317. package/dist/store/react/jsx.js.map +1 -0
  318. package/dist/store/react/metadata.d.ts +4 -0
  319. package/dist/store/react/metadata.d.ts.map +1 -0
  320. package/dist/store/react/metadata.js +174 -0
  321. package/dist/store/react/metadata.js.map +1 -0
  322. package/dist/store/react/pipeline.d.ts +14 -0
  323. package/dist/store/react/pipeline.d.ts.map +1 -0
  324. package/dist/store/react/pipeline.js +60 -0
  325. package/dist/store/react/pipeline.js.map +1 -0
  326. package/dist/store/react/props.d.ts +36 -0
  327. package/dist/store/react/props.d.ts.map +1 -0
  328. package/dist/store/react/props.js +133 -0
  329. package/dist/store/react/props.js.map +1 -0
  330. package/dist/store/store-fs.d.ts +41 -0
  331. package/dist/store/store-fs.d.ts.map +1 -0
  332. package/dist/store/store-fs.js +71 -0
  333. package/dist/store/store-fs.js.map +1 -0
  334. package/dist/writer/context.d.ts +16 -0
  335. package/dist/writer/context.d.ts.map +1 -0
  336. package/dist/writer/context.js +44 -0
  337. package/dist/writer/context.js.map +1 -0
  338. package/dist/writer/doc.d.ts +2 -0
  339. package/dist/writer/doc.d.ts.map +1 -0
  340. package/dist/writer/doc.js +12 -0
  341. package/dist/writer/doc.js.map +1 -0
  342. package/dist/writer/emit.d.ts +8 -0
  343. package/dist/writer/emit.d.ts.map +1 -0
  344. package/dist/writer/emit.js +21 -0
  345. package/dist/writer/emit.js.map +1 -0
  346. package/dist/writer/gtk-doc.d.ts +2 -0
  347. package/dist/writer/gtk-doc.d.ts.map +1 -0
  348. package/dist/writer/gtk-doc.js +67 -0
  349. package/dist/writer/gtk-doc.js.map +1 -0
  350. package/dist/writer/imports.d.ts +10 -0
  351. package/dist/writer/imports.d.ts.map +1 -0
  352. package/dist/writer/imports.js +50 -0
  353. package/dist/writer/imports.js.map +1 -0
  354. package/dist/writer/module.d.ts +15 -0
  355. package/dist/writer/module.d.ts.map +1 -0
  356. package/dist/writer/module.js +46 -0
  357. package/dist/writer/module.js.map +1 -0
  358. package/overrides/cairo/context.ts.ejs +1269 -0
  359. package/overrides/cairo/font-face.ts.ejs +151 -0
  360. package/overrides/cairo/font-options.ts.ejs +199 -0
  361. package/overrides/cairo/image-surface.ts.ejs +132 -0
  362. package/overrides/cairo/index.ts.ejs +22 -0
  363. package/overrides/cairo/matrix.ts.ejs +171 -0
  364. package/overrides/cairo/pattern.ts.ejs +476 -0
  365. package/overrides/cairo/recording-surface.ts.ejs +102 -0
  366. package/overrides/cairo/region.ts.ejs +237 -0
  367. package/overrides/cairo/scaled-font.ts.ejs +330 -0
  368. package/overrides/cairo/surface.ts.ejs +296 -0
  369. package/overrides/gdk/index.ts.ejs +2 -0
  370. package/overrides/gdk/rgba.ts.ejs +11 -0
  371. package/overrides/gobject/index.ts.ejs +29 -0
  372. package/overrides/gobject/object.ts.ejs +51 -0
  373. package/overrides/gobject/value.ts.ejs +17 -0
  374. package/overrides/graphene/index.ts.ejs +2 -0
  375. package/overrides/graphene/structs.ts.ejs +37 -0
  376. package/overrides/gtk/constants.ts.ejs +3 -0
  377. package/overrides/gtk/index.ts.ejs +2 -0
  378. package/package.json +15 -15
  379. package/src/analysis/descriptor-render.ts +407 -0
  380. package/src/analysis/descriptor.ts +263 -0
  381. package/src/analysis/inheritance.ts +242 -0
  382. package/src/analysis/param-structure.ts +127 -0
  383. package/src/analysis/ts-type.ts +88 -0
  384. package/src/compile.ts +152 -0
  385. package/src/docs/api-reference.ts +361 -0
  386. package/src/docs/element-page.ts +290 -0
  387. package/src/docs/pipeline.ts +182 -0
  388. package/src/docs/render.ts +191 -0
  389. package/src/docs/symbol-page.ts +444 -0
  390. package/src/fingerprint.ts +40 -29
  391. package/src/gir/ancestry.ts +41 -0
  392. package/src/gir/callback.ts +25 -22
  393. package/src/gir/class.ts +31 -57
  394. package/src/gir/enum.ts +20 -38
  395. package/src/gir/field.ts +21 -36
  396. package/src/gir/function.ts +17 -56
  397. package/src/gir/gir-path.ts +49 -0
  398. package/src/gir/libraries.ts +77 -0
  399. package/src/gir/library.ts +248 -0
  400. package/src/gir/namespace.ts +85 -80
  401. package/src/gir/parameter.ts +64 -93
  402. package/src/gir/parse.ts +43 -95
  403. package/src/gir/primitives.ts +23 -45
  404. package/src/gir/property.ts +27 -29
  405. package/src/gir/record.ts +53 -0
  406. package/src/gir/size.ts +9 -56
  407. package/src/gir/type-id.ts +49 -0
  408. package/src/gir/type-ref.ts +35 -140
  409. package/src/gir/type.ts +16 -0
  410. package/src/index.ts +20 -15
  411. package/src/khronos/args.ts +202 -0
  412. package/src/khronos/jsdoc.ts +76 -0
  413. package/src/khronos/model.ts +166 -0
  414. package/src/khronos/modules.ts +75 -0
  415. package/src/khronos/parse.ts +66 -0
  416. package/src/khronos/pipeline.ts +234 -0
  417. package/src/khronos/plan.ts +191 -0
  418. package/src/khronos/registry/LICENSE +202 -0
  419. package/src/khronos/registry/gl.xml +47748 -0
  420. package/src/khronos/render.ts +193 -0
  421. package/src/khronos/select.ts +67 -0
  422. package/src/runner.ts +112 -75
  423. package/src/store/compile-store.ts +49 -0
  424. package/src/store/gi/async.ts +42 -0
  425. package/src/store/gi/callables.ts +309 -0
  426. package/src/store/gi/callback.ts +15 -0
  427. package/src/store/gi/class-struct-record.ts +40 -0
  428. package/src/store/gi/class.ts +212 -0
  429. package/src/store/gi/companion.ts +13 -0
  430. package/src/store/gi/constant.ts +24 -0
  431. package/src/store/gi/constructor-props.ts +82 -0
  432. package/src/store/gi/enum.ts +49 -0
  433. package/src/store/gi/function.ts +107 -0
  434. package/src/store/gi/gtype-binding.ts +33 -0
  435. package/src/store/gi/interface.ts +157 -0
  436. package/src/store/gi/item-comparators.ts +90 -0
  437. package/src/store/gi/method.ts +417 -0
  438. package/src/store/gi/param-marshal.ts +48 -0
  439. package/src/store/gi/pipeline.ts +85 -0
  440. package/src/store/gi/properties.ts +39 -0
  441. package/src/store/gi/property-accessor.ts +194 -0
  442. package/src/store/gi/record-constructor.ts +87 -0
  443. package/src/store/gi/record-field-accessor.ts +394 -0
  444. package/src/store/gi/record-layout.ts +134 -0
  445. package/src/store/gi/record.ts +66 -0
  446. package/src/store/gi/registration.ts +38 -0
  447. package/src/store/gi/return-wrap.ts +52 -0
  448. package/src/store/gi/runtime-override.ts +36 -0
  449. package/src/store/gi/signal.ts +310 -0
  450. package/src/store/gi/vtable.ts +99 -0
  451. package/src/store/gi-store.ts +79 -0
  452. package/src/store/jsx-store.ts +27 -0
  453. package/src/store/react/built-ins.ts +260 -0
  454. package/src/store/react/element-components.ts +138 -0
  455. package/src/store/react/element-prop-types.ts +280 -0
  456. package/src/store/react/element-props.ts +204 -0
  457. package/src/store/react/gir-index.ts +85 -0
  458. package/src/store/react/intrinsic-elements.ts +161 -0
  459. package/src/store/react/jsx.ts +294 -0
  460. package/src/store/react/metadata.ts +197 -0
  461. package/src/store/react/pipeline.ts +90 -0
  462. package/src/store/react/props.ts +197 -0
  463. package/src/store/store-fs.ts +112 -0
  464. package/src/writer/context.ts +48 -0
  465. package/src/writer/doc.ts +11 -0
  466. package/src/writer/emit.ts +26 -0
  467. package/src/writer/gtk-doc.ts +74 -0
  468. package/src/writer/imports.ts +59 -0
  469. package/src/writer/module.ts +45 -0
  470. package/LICENSE +0 -373
  471. package/dist/dsl/context.d.ts +0 -104
  472. package/dist/dsl/context.d.ts.map +0 -1
  473. package/dist/dsl/context.js +0 -140
  474. package/dist/dsl/context.js.map +0 -1
  475. package/dist/dsl/emit.d.ts +0 -28
  476. package/dist/dsl/emit.d.ts.map +0 -1
  477. package/dist/dsl/emit.js +0 -41
  478. package/dist/dsl/emit.js.map +0 -1
  479. package/dist/dsl/identifier.d.ts +0 -28
  480. package/dist/dsl/identifier.d.ts.map +0 -1
  481. package/dist/dsl/identifier.js +0 -45
  482. package/dist/dsl/identifier.js.map +0 -1
  483. package/dist/dsl/imports.d.ts +0 -58
  484. package/dist/dsl/imports.d.ts.map +0 -1
  485. package/dist/dsl/imports.js +0 -107
  486. package/dist/dsl/imports.js.map +0 -1
  487. package/dist/dsl/module.d.ts +0 -53
  488. package/dist/dsl/module.d.ts.map +0 -1
  489. package/dist/dsl/module.js +0 -76
  490. package/dist/dsl/module.js.map +0 -1
  491. package/dist/ffi/pipeline.d.ts +0 -19
  492. package/dist/ffi/pipeline.d.ts.map +0 -1
  493. package/dist/ffi/pipeline.js +0 -107
  494. package/dist/ffi/pipeline.js.map +0 -1
  495. package/dist/gi-store.d.ts +0 -34
  496. package/dist/gi-store.d.ts.map +0 -1
  497. package/dist/gi-store.js +0 -154
  498. package/dist/gi-store.js.map +0 -1
  499. package/dist/gir/boxed.d.ts +0 -66
  500. package/dist/gir/boxed.d.ts.map +0 -1
  501. package/dist/gir/boxed.js +0 -49
  502. package/dist/gir/boxed.js.map +0 -1
  503. package/dist/gir/qualified-name.d.ts +0 -37
  504. package/dist/gir/qualified-name.d.ts.map +0 -1
  505. package/dist/gir/qualified-name.js +0 -39
  506. package/dist/gir/qualified-name.js.map +0 -1
  507. package/dist/gir/qualify.d.ts +0 -32
  508. package/dist/gir/qualify.d.ts.map +0 -1
  509. package/dist/gir/qualify.js +0 -60
  510. package/dist/gir/qualify.js.map +0 -1
  511. package/dist/gir/repository.d.ts +0 -82
  512. package/dist/gir/repository.d.ts.map +0 -1
  513. package/dist/gir/repository.js +0 -122
  514. package/dist/gir/repository.js.map +0 -1
  515. package/dist/gir/signal.d.ts +0 -22
  516. package/dist/gir/signal.d.ts.map +0 -1
  517. package/dist/gir/signal.js +0 -20
  518. package/dist/gir/signal.js.map +0 -1
  519. package/dist/jsx-store.d.ts +0 -22
  520. package/dist/jsx-store.d.ts.map +0 -1
  521. package/dist/jsx-store.js +0 -40
  522. package/dist/jsx-store.js.map +0 -1
  523. package/dist/react/compounds-meta.d.ts +0 -18
  524. package/dist/react/compounds-meta.d.ts.map +0 -1
  525. package/dist/react/compounds-meta.js +0 -93
  526. package/dist/react/compounds-meta.js.map +0 -1
  527. package/dist/react/compounds.d.ts +0 -27
  528. package/dist/react/compounds.d.ts.map +0 -1
  529. package/dist/react/compounds.js +0 -164
  530. package/dist/react/compounds.js.map +0 -1
  531. package/dist/react/internal.d.ts +0 -14
  532. package/dist/react/internal.d.ts.map +0 -1
  533. package/dist/react/internal.js +0 -79
  534. package/dist/react/internal.js.map +0 -1
  535. package/dist/react/jsx.d.ts +0 -22
  536. package/dist/react/jsx.d.ts.map +0 -1
  537. package/dist/react/jsx.js +0 -134
  538. package/dist/react/jsx.js.map +0 -1
  539. package/dist/react/pipeline.d.ts +0 -13
  540. package/dist/react/pipeline.d.ts.map +0 -1
  541. package/dist/react/pipeline.js +0 -25
  542. package/dist/react/pipeline.js.map +0 -1
  543. package/dist/react/props.d.ts +0 -38
  544. package/dist/react/props.d.ts.map +0 -1
  545. package/dist/react/props.js +0 -231
  546. package/dist/react/props.js.map +0 -1
  547. package/dist/react/slot-props.d.ts +0 -10
  548. package/dist/react/slot-props.d.ts.map +0 -1
  549. package/dist/react/slot-props.js +0 -56
  550. package/dist/react/slot-props.js.map +0 -1
  551. package/dist/react/widgets.d.ts +0 -83
  552. package/dist/react/widgets.d.ts.map +0 -1
  553. package/dist/react/widgets.js +0 -152
  554. package/dist/react/widgets.js.map +0 -1
  555. package/dist/store-fs.d.ts +0 -109
  556. package/dist/store-fs.d.ts.map +0 -1
  557. package/dist/store-fs.js +0 -98
  558. package/dist/store-fs.js.map +0 -1
  559. package/dist/transpile.d.ts +0 -32
  560. package/dist/transpile.d.ts.map +0 -1
  561. package/dist/transpile.js +0 -63
  562. package/dist/transpile.js.map +0 -1
  563. package/dist/typecheck-store.d.ts +0 -41
  564. package/dist/typecheck-store.d.ts.map +0 -1
  565. package/dist/typecheck-store.js +0 -102
  566. package/dist/typecheck-store.js.map +0 -1
  567. package/dist/writers/alias.d.ts +0 -13
  568. package/dist/writers/alias.d.ts.map +0 -1
  569. package/dist/writers/alias.js +0 -17
  570. package/dist/writers/alias.js.map +0 -1
  571. package/dist/writers/async.d.ts +0 -22
  572. package/dist/writers/async.d.ts.map +0 -1
  573. package/dist/writers/async.js +0 -48
  574. package/dist/writers/async.js.map +0 -1
  575. package/dist/writers/boxed-constructor.d.ts +0 -26
  576. package/dist/writers/boxed-constructor.d.ts.map +0 -1
  577. package/dist/writers/boxed-constructor.js +0 -85
  578. package/dist/writers/boxed-constructor.js.map +0 -1
  579. package/dist/writers/boxed-field-accessor.d.ts +0 -18
  580. package/dist/writers/boxed-field-accessor.d.ts.map +0 -1
  581. package/dist/writers/boxed-field-accessor.js +0 -260
  582. package/dist/writers/boxed-field-accessor.js.map +0 -1
  583. package/dist/writers/boxed-layout.d.ts +0 -27
  584. package/dist/writers/boxed-layout.d.ts.map +0 -1
  585. package/dist/writers/boxed-layout.js +0 -128
  586. package/dist/writers/boxed-layout.js.map +0 -1
  587. package/dist/writers/boxed.d.ts +0 -20
  588. package/dist/writers/boxed.d.ts.map +0 -1
  589. package/dist/writers/boxed.js +0 -71
  590. package/dist/writers/boxed.js.map +0 -1
  591. package/dist/writers/callables.d.ts +0 -124
  592. package/dist/writers/callables.d.ts.map +0 -1
  593. package/dist/writers/callables.js +0 -283
  594. package/dist/writers/callables.js.map +0 -1
  595. package/dist/writers/callback.d.ts +0 -16
  596. package/dist/writers/callback.d.ts.map +0 -1
  597. package/dist/writers/callback.js +0 -38
  598. package/dist/writers/callback.js.map +0 -1
  599. package/dist/writers/class-struct-record.d.ts +0 -31
  600. package/dist/writers/class-struct-record.d.ts.map +0 -1
  601. package/dist/writers/class-struct-record.js +0 -67
  602. package/dist/writers/class-struct-record.js.map +0 -1
  603. package/dist/writers/class-struct.d.ts +0 -22
  604. package/dist/writers/class-struct.d.ts.map +0 -1
  605. package/dist/writers/class-struct.js +0 -85
  606. package/dist/writers/class-struct.js.map +0 -1
  607. package/dist/writers/class.d.ts +0 -16
  608. package/dist/writers/class.d.ts.map +0 -1
  609. package/dist/writers/class.js +0 -307
  610. package/dist/writers/class.js.map +0 -1
  611. package/dist/writers/constant.d.ts +0 -15
  612. package/dist/writers/constant.d.ts.map +0 -1
  613. package/dist/writers/constant.js +0 -23
  614. package/dist/writers/constant.js.map +0 -1
  615. package/dist/writers/constants.d.ts +0 -15
  616. package/dist/writers/constants.d.ts.map +0 -1
  617. package/dist/writers/constants.js +0 -23
  618. package/dist/writers/constants.js.map +0 -1
  619. package/dist/writers/constructor-props.d.ts +0 -32
  620. package/dist/writers/constructor-props.d.ts.map +0 -1
  621. package/dist/writers/constructor-props.js +0 -110
  622. package/dist/writers/constructor-props.js.map +0 -1
  623. package/dist/writers/enum.d.ts +0 -21
  624. package/dist/writers/enum.d.ts.map +0 -1
  625. package/dist/writers/enum.js +0 -48
  626. package/dist/writers/enum.js.map +0 -1
  627. package/dist/writers/function.d.ts +0 -40
  628. package/dist/writers/function.d.ts.map +0 -1
  629. package/dist/writers/function.js +0 -127
  630. package/dist/writers/function.js.map +0 -1
  631. package/dist/writers/gtype-binding.d.ts +0 -19
  632. package/dist/writers/gtype-binding.d.ts.map +0 -1
  633. package/dist/writers/gtype-binding.js +0 -40
  634. package/dist/writers/gtype-binding.js.map +0 -1
  635. package/dist/writers/inheritance.d.ts +0 -48
  636. package/dist/writers/inheritance.d.ts.map +0 -1
  637. package/dist/writers/inheritance.js +0 -90
  638. package/dist/writers/inheritance.js.map +0 -1
  639. package/dist/writers/interface.d.ts +0 -16
  640. package/dist/writers/interface.d.ts.map +0 -1
  641. package/dist/writers/interface.js +0 -155
  642. package/dist/writers/interface.js.map +0 -1
  643. package/dist/writers/method.d.ts +0 -150
  644. package/dist/writers/method.d.ts.map +0 -1
  645. package/dist/writers/method.js +0 -510
  646. package/dist/writers/method.js.map +0 -1
  647. package/dist/writers/param-classify.d.ts +0 -93
  648. package/dist/writers/param-classify.d.ts.map +0 -1
  649. package/dist/writers/param-classify.js +0 -163
  650. package/dist/writers/param-classify.js.map +0 -1
  651. package/dist/writers/property-accessor.d.ts +0 -19
  652. package/dist/writers/property-accessor.d.ts.map +0 -1
  653. package/dist/writers/property-accessor.js +0 -117
  654. package/dist/writers/property-accessor.js.map +0 -1
  655. package/dist/writers/registration.d.ts +0 -27
  656. package/dist/writers/registration.d.ts.map +0 -1
  657. package/dist/writers/registration.js +0 -30
  658. package/dist/writers/registration.js.map +0 -1
  659. package/dist/writers/return-wrap.d.ts +0 -39
  660. package/dist/writers/return-wrap.d.ts.map +0 -1
  661. package/dist/writers/return-wrap.js +0 -152
  662. package/dist/writers/return-wrap.js.map +0 -1
  663. package/dist/writers/runtime-override.d.ts +0 -18
  664. package/dist/writers/runtime-override.d.ts.map +0 -1
  665. package/dist/writers/runtime-override.js.map +0 -1
  666. package/dist/writers/signal.d.ts +0 -21
  667. package/dist/writers/signal.d.ts.map +0 -1
  668. package/dist/writers/signal.js +0 -260
  669. package/dist/writers/signal.js.map +0 -1
  670. package/dist/writers/ts-type.d.ts +0 -50
  671. package/dist/writers/ts-type.d.ts.map +0 -1
  672. package/dist/writers/ts-type.js +0 -75
  673. package/dist/writers/ts-type.js.map +0 -1
  674. package/dist/writers/types-ts.d.ts +0 -27
  675. package/dist/writers/types-ts.d.ts.map +0 -1
  676. package/dist/writers/types-ts.js +0 -97
  677. package/dist/writers/types-ts.js.map +0 -1
  678. package/dist/writers/value.d.ts +0 -89
  679. package/dist/writers/value.d.ts.map +0 -1
  680. package/dist/writers/value.js +0 -402
  681. package/dist/writers/value.js.map +0 -1
  682. package/src/dsl/context.ts +0 -146
  683. package/src/dsl/emit.ts +0 -42
  684. package/src/dsl/identifier.ts +0 -52
  685. package/src/dsl/imports.ts +0 -109
  686. package/src/dsl/module.ts +0 -75
  687. package/src/ffi/pipeline.ts +0 -113
  688. package/src/gi-store.ts +0 -199
  689. package/src/gir/boxed.ts +0 -94
  690. package/src/gir/qualified-name.ts +0 -55
  691. package/src/gir/qualify.ts +0 -64
  692. package/src/gir/repository.ts +0 -149
  693. package/src/gir/signal.ts +0 -36
  694. package/src/jsx-store.ts +0 -53
  695. package/src/react/compounds-meta.ts +0 -99
  696. package/src/react/compounds.ts +0 -204
  697. package/src/react/internal.ts +0 -91
  698. package/src/react/jsx.ts +0 -155
  699. package/src/react/pipeline.ts +0 -29
  700. package/src/react/props.ts +0 -307
  701. package/src/react/slot-props.ts +0 -57
  702. package/src/react/widgets.ts +0 -185
  703. package/src/store-fs.ts +0 -157
  704. package/src/transpile.ts +0 -80
  705. package/src/typecheck-store.ts +0 -136
  706. package/src/writers/alias.ts +0 -19
  707. package/src/writers/async.ts +0 -44
  708. package/src/writers/boxed-constructor.ts +0 -105
  709. package/src/writers/boxed-field-accessor.ts +0 -306
  710. package/src/writers/boxed-layout.ts +0 -166
  711. package/src/writers/boxed.ts +0 -77
  712. package/src/writers/callables.ts +0 -339
  713. package/src/writers/callback.ts +0 -40
  714. package/src/writers/class-struct-record.ts +0 -75
  715. package/src/writers/class-struct.ts +0 -96
  716. package/src/writers/class.ts +0 -384
  717. package/src/writers/constant.ts +0 -29
  718. package/src/writers/constructor-props.ts +0 -130
  719. package/src/writers/enum.ts +0 -53
  720. package/src/writers/function.ts +0 -136
  721. package/src/writers/gtype-binding.ts +0 -48
  722. package/src/writers/inheritance.ts +0 -104
  723. package/src/writers/interface.ts +0 -168
  724. package/src/writers/method.ts +0 -678
  725. package/src/writers/param-classify.ts +0 -178
  726. package/src/writers/property-accessor.ts +0 -139
  727. package/src/writers/registration.ts +0 -42
  728. package/src/writers/return-wrap.ts +0 -180
  729. package/src/writers/runtime-override.ts +0 -59
  730. package/src/writers/signal.ts +0 -318
  731. package/src/writers/ts-type.ts +0 -115
  732. package/src/writers/value.ts +0 -485
@@ -1,124 +0,0 @@
1
- import type { ModuleContext } from "../dsl/context.js";
2
- import type { GirFunction } from "../gir/function.js";
3
- /**
4
- * Constructors, static functions, and instance methods of a class, interface,
5
- * or boxed record.
6
- */
7
- export type Callables = {
8
- readonly constructors: readonly GirFunction[];
9
- readonly functions: readonly GirFunction[];
10
- readonly methods: readonly GirFunction[];
11
- };
12
- /**
13
- * Drops callables that lack a `c:identifier` or repeat one already retained.
14
- *
15
- * GIR sometimes lists the same callable twice (e.g. as both a class function
16
- * and a constructor); the C identifier is the canonical key.
17
- *
18
- * @param callables - The raw GIR callables
19
- */
20
- export declare const dedupeCallables: (callables: readonly GirFunction[]) => readonly GirFunction[];
21
- /**
22
- * Appends the top-level `const fn = t.fn(...)` binding for every introspectable
23
- * callable that has a C identifier and is not shadowed.
24
- *
25
- * @param context - The module context
26
- * @param callables - The callables to bind
27
- */
28
- /**
29
- * Appends the top-level `const fn = t.fn(...)` binding for a single callable,
30
- * deduplicated by its C identifier. Used when flattening interface and
31
- * prerequisite methods onto a type one at a time.
32
- *
33
- * @param context - The module context
34
- * @param method - The callable to bind
35
- */
36
- export declare const appendMethodBinding: (context: ModuleContext, method: GirFunction) => void;
37
- export declare const emitBindings: (context: ModuleContext, callables: Callables) => void;
38
- /**
39
- * How a type's static `<constructor>` factories wrap their result:
40
- *
41
- * - `"gobject"` — resolve the wrapper from the runtime GLib type (a class).
42
- * - `"interface"` — resolve the runtime type, falling back to the closest
43
- * registered ancestor that implements the interface, then the interface itself.
44
- * - `"boxed"` — wrap as the exact value-type class (boxed records).
45
- */
46
- export type ConstructorWrap = "gobject" | "interface" | "boxed";
47
- /**
48
- * Renders an instance method body for a GIR `<method>`.
49
- *
50
- * Hand-written runtime overrides (e.g. `g_value_get_boxed`) short-circuit the
51
- * usual FFI call body with a throwing stub that the runtime replaces on the
52
- * prototype at module load.
53
- *
54
- * Returns `undefined` for non-emittable callables.
55
- *
56
- * @param context - The module context
57
- * @param callable - The GIR method callable
58
- */
59
- export declare const renderInstanceMethod: (context: ModuleContext, callable: GirFunction, nameOverride?: string) => string | undefined;
60
- /**
61
- * Inputs for {@link appendShadowedAliases}.
62
- */
63
- export type ShadowedAliasOptions = {
64
- readonly context: ModuleContext;
65
- /** The full list of method callables. */
66
- readonly methods: readonly GirFunction[];
67
- /** Lookup table for shadower resolution. */
68
- readonly methodByName: ReadonlyMap<string, GirFunction>;
69
- /** The accumulating members list to append to. */
70
- readonly members: string[];
71
- /** Set of names already emitted on the class body. */
72
- readonly claimedNames: Set<string>;
73
- };
74
- /**
75
- * Appends shadowed-method aliases for every callable in `methods` whose
76
- * shadower is introspectable.
77
- *
78
- * Records each emitted alias name in `claimedNames` so subsequent renderers
79
- * can detect collisions.
80
- *
81
- * @param options - {@link ShadowedAliasOptions}
82
- */
83
- export declare const appendShadowedAliases: (options: ShadowedAliasOptions) => void;
84
- /**
85
- * Indexes a list of method callables by their GIR name for shadower lookup.
86
- */
87
- export declare const indexMethodsByName: (methods: readonly GirFunction[]) => ReadonlyMap<string, GirFunction>;
88
- /**
89
- * Renders the shared head of a class/interface/boxed body: every `static`
90
- * constructor factory and every `static` namespace function on the same type.
91
- *
92
- * @param context - The module context
93
- * @param callables - The class's emittable callables
94
- * @param ownerClassName - The local PascalCase class name
95
- * @param wrap - How static constructors lift their result to a wrapper
96
- */
97
- export declare const renderStaticHead: (context: ModuleContext, callables: Callables, ownerClassName: string, wrap: ConstructorWrap) => readonly string[];
98
- /**
99
- * Inputs for {@link renderPlainTypeMembers}.
100
- */
101
- export type PlainTypeMembersOptions = {
102
- readonly context: ModuleContext;
103
- readonly className: string;
104
- readonly callables: Callables;
105
- /** Whether to prepend `declare __gtype__: number;`. */
106
- readonly hasGType: boolean;
107
- /** How static constructors lift their result to a wrapper. */
108
- readonly wrap: ConstructorWrap;
109
- };
110
- /**
111
- * Renders the shared head of an interface or boxed class body — `__gtype__`
112
- * declaration (optional), statics, plain instance methods, and
113
- * shadowed-method aliases — plus the `claimedNames` set populated by those
114
- * renderers.
115
- *
116
- * Callers append the constructor, property accessors, field accessors, and
117
- * signal members on top of the returned members list. The class writer takes
118
- * a different path because it has to consult inherited signatures.
119
- */
120
- export declare const renderPlainTypeMembers: (options: PlainTypeMembersOptions) => {
121
- readonly members: string[];
122
- readonly claimedNames: Set<string>;
123
- };
124
- //# sourceMappingURL=callables.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callables.d.ts","sourceRoot":"","sources":["../../src/writers/callables.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;CAC5C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,SAAS,WAAW,EAAE,KAAG,SAAS,WAAW,EAUvF,CAAC;AAEF;;;;;;GAMG;AACH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,aAAa,EAAE,QAAQ,WAAW,KAAG,IAMjF,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,SAAS,aAAa,EAAE,WAAW,SAAS,KAAG,IAW3E,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAqDhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,GAC7B,SAAS,aAAa,EACtB,UAAU,WAAW,EACrB,eAAe,MAAM,KACtB,MAAM,GAAG,SAYX,CAAC;AA2BF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,oBAAoB,KAAG,IAerE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,SAAS,WAAW,EAAE,KAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAInG,CAAC;AAcF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GACzB,SAAS,aAAa,EACtB,WAAW,SAAS,EACpB,gBAAgB,MAAM,EACtB,MAAM,eAAe,KACtB,SAAS,MAAM,EAWjB,CAAC;AAyBF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAClC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,GAC/B,SAAS,uBAAuB,KACjC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAUlE,CAAC"}
@@ -1,283 +0,0 @@
1
- import { toCamelCase } from "@gtkx/utils";
2
- import { indent } from "../dsl/emit.js";
3
- import { callableReferencesClassStruct } from "./class-struct-record.js";
4
- import { renderFnExpression } from "./function.js";
5
- import { methodExportName, renderMethodBody, renderMethodReturnType, renderMethodSignature } from "./method.js";
6
- import { renderRuntimeOverride } from "./runtime-override.js";
7
- /**
8
- * Drops callables that lack a `c:identifier` or repeat one already retained.
9
- *
10
- * GIR sometimes lists the same callable twice (e.g. as both a class function
11
- * and a constructor); the C identifier is the canonical key.
12
- *
13
- * @param callables - The raw GIR callables
14
- */
15
- export const dedupeCallables = (callables) => {
16
- const seen = new Set();
17
- const result = [];
18
- for (const callable of callables) {
19
- if (callable.cIdentifier === undefined)
20
- continue;
21
- if (seen.has(callable.cIdentifier))
22
- continue;
23
- seen.add(callable.cIdentifier);
24
- result.push(callable);
25
- }
26
- return result;
27
- };
28
- /**
29
- * Appends the top-level `const fn = t.fn(...)` binding for every introspectable
30
- * callable that has a C identifier and is not shadowed.
31
- *
32
- * @param context - The module context
33
- * @param callables - The callables to bind
34
- */
35
- /**
36
- * Appends the top-level `const fn = t.fn(...)` binding for a single callable,
37
- * deduplicated by its C identifier. Used when flattening interface and
38
- * prerequisite methods onto a type one at a time.
39
- *
40
- * @param context - The module context
41
- * @param method - The callable to bind
42
- */
43
- export const appendMethodBinding = (context, method) => {
44
- if (method.cIdentifier === undefined)
45
- return;
46
- if (callableReferencesClassStruct(context, method))
47
- return;
48
- const expression = renderFnExpression(context, method);
49
- if (expression === undefined)
50
- return;
51
- context.module.appendBinding(`const ${method.cIdentifier} = ${expression};`, method.cIdentifier);
52
- };
53
- export const emitBindings = (context, callables) => {
54
- const all = [...callables.constructors, ...callables.functions, ...callables.methods];
55
- for (const callable of all) {
56
- if (!callable.introspectable)
57
- continue;
58
- if (callable.shadowedBy !== undefined)
59
- continue;
60
- if (callable.cIdentifier === undefined)
61
- continue;
62
- if (callableReferencesClassStruct(context, callable))
63
- continue;
64
- const expression = renderFnExpression(context, callable);
65
- if (expression === undefined)
66
- continue;
67
- context.module.appendBinding(`const ${callable.cIdentifier} = ${expression};`, callable.cIdentifier);
68
- }
69
- };
70
- /**
71
- * Renders a `static <name>(...): Owner` factory method for a GIR `<constructor>`.
72
- *
73
- * Returns `undefined` for non-introspectable, shadowed, identifier-less, or
74
- * `constructor`-named entries.
75
- *
76
- * @param context - The module context
77
- * @param callable - The GIR constructor callable
78
- * @param ownerClassName - The local class name that wraps the result
79
- * @param wrap - How the result is lifted to its JavaScript wrapper
80
- */
81
- const renderConstructorStatic = (context, callable, ownerClassName, wrap) => {
82
- if (!isEmittableCallable(context, callable))
83
- return undefined;
84
- const name = constructorMemberName(callable.name);
85
- if (name === undefined)
86
- return undefined;
87
- const cIdentifier = callable.cIdentifier;
88
- if (cIdentifier === undefined)
89
- return undefined;
90
- const signature = renderMethodSignature(context, callable);
91
- const body = renderMethodBody(context, callable, {
92
- bindingExpression: cIdentifier,
93
- isStatic: true,
94
- returnAs: wrap === "gobject" ? { via: "gobject" } : { via: wrap, className: ownerClassName },
95
- });
96
- return `static ${name}(${signature}): ${ownerClassName} {\n${indent(body, 1)}\n}`;
97
- };
98
- /**
99
- * Renders a `static <name>(...): Return` member for a GIR `<function>`.
100
- *
101
- * Returns `undefined` when the callable cannot be emitted on a class body.
102
- *
103
- * @param context - The module context
104
- * @param callable - The GIR function callable
105
- */
106
- const renderStaticMember = (context, callable) => {
107
- if (!isEmittableCallable(context, callable))
108
- return undefined;
109
- const cIdentifier = callable.cIdentifier;
110
- if (cIdentifier === undefined)
111
- return undefined;
112
- const name = toCamelCase(callable.name);
113
- if (name === "constructor")
114
- return undefined;
115
- const signature = renderMethodSignature(context, callable);
116
- const returnType = renderMethodReturnType(context, callable);
117
- const body = renderMethodBody(context, callable, { bindingExpression: cIdentifier, isStatic: true });
118
- return `static ${name}(${signature}): ${returnType} {\n${indent(body, 1)}\n}`;
119
- };
120
- /**
121
- * Renders an instance method body for a GIR `<method>`.
122
- *
123
- * Hand-written runtime overrides (e.g. `g_value_get_boxed`) short-circuit the
124
- * usual FFI call body with a throwing stub that the runtime replaces on the
125
- * prototype at module load.
126
- *
127
- * Returns `undefined` for non-emittable callables.
128
- *
129
- * @param context - The module context
130
- * @param callable - The GIR method callable
131
- */
132
- export const renderInstanceMethod = (context, callable, nameOverride) => {
133
- if (!isEmittableCallable(context, callable))
134
- return undefined;
135
- const cIdentifier = callable.cIdentifier;
136
- if (cIdentifier === undefined)
137
- return undefined;
138
- const name = nameOverride ?? methodExportName(callable);
139
- if (name === "constructor")
140
- return undefined;
141
- const override = renderRuntimeOverride(callable, name);
142
- if (override !== undefined)
143
- return override;
144
- const signature = renderMethodSignature(context, callable);
145
- const returnType = renderMethodReturnType(context, callable);
146
- const body = renderMethodBody(context, callable, { bindingExpression: cIdentifier, isStatic: false });
147
- return `${name}(${signature}): ${returnType} {\n${indent(body, 1)}\n}`;
148
- };
149
- /**
150
- * Renders the legacy-name alias of a method that has been shadowed by a
151
- * variadic or kebab-cased successor.
152
- *
153
- * Returns `undefined` when the alias collides with `constructor` or the
154
- * shadower lacks a C identifier.
155
- *
156
- * @param context - The module context
157
- * @param original - The shadowed callable whose name should remain reachable
158
- * @param shadower - The callable the alias dispatches into
159
- */
160
- const renderInstanceAlias = (context, original, shadower) => {
161
- if (shadower.cIdentifier === undefined)
162
- return undefined;
163
- const aliasName = toCamelCase(original.name);
164
- if (aliasName === "constructor")
165
- return undefined;
166
- const signature = renderMethodSignature(context, shadower);
167
- const returnType = renderMethodReturnType(context, shadower);
168
- const body = renderMethodBody(context, shadower, { bindingExpression: shadower.cIdentifier, isStatic: false });
169
- return `${aliasName}(${signature}): ${returnType} {\n${indent(body, 1)}\n}`;
170
- };
171
- /**
172
- * Appends shadowed-method aliases for every callable in `methods` whose
173
- * shadower is introspectable.
174
- *
175
- * Records each emitted alias name in `claimedNames` so subsequent renderers
176
- * can detect collisions.
177
- *
178
- * @param options - {@link ShadowedAliasOptions}
179
- */
180
- export const appendShadowedAliases = (options) => {
181
- const { context, methods, methodByName, members, claimedNames } = options;
182
- for (const callable of methods) {
183
- if (callable.shadowedBy === undefined)
184
- continue;
185
- if (callable.introspectable)
186
- continue;
187
- const shadower = methodByName.get(callable.shadowedBy);
188
- if (shadower === undefined || !shadower.introspectable)
189
- continue;
190
- const aliasName = toCamelCase(callable.name);
191
- if (claimedNames.has(aliasName))
192
- continue;
193
- const block = renderInstanceAlias(context, callable, shadower);
194
- if (block !== undefined) {
195
- members.push(block);
196
- claimedNames.add(aliasName);
197
- }
198
- }
199
- };
200
- /**
201
- * Indexes a list of method callables by their GIR name for shadower lookup.
202
- */
203
- export const indexMethodsByName = (methods) => {
204
- const map = new Map();
205
- for (const callable of methods)
206
- map.set(callable.name, callable);
207
- return map;
208
- };
209
- const isEmittableCallable = (context, callable) => callable.introspectable &&
210
- callable.shadowedBy === undefined &&
211
- callable.cIdentifier !== undefined &&
212
- !callableReferencesClassStruct(context, callable);
213
- const constructorMemberName = (girName) => {
214
- const camel = toCamelCase(girName);
215
- if (camel === "constructor")
216
- return undefined;
217
- return camel;
218
- };
219
- /**
220
- * Renders the shared head of a class/interface/boxed body: every `static`
221
- * constructor factory and every `static` namespace function on the same type.
222
- *
223
- * @param context - The module context
224
- * @param callables - The class's emittable callables
225
- * @param ownerClassName - The local PascalCase class name
226
- * @param wrap - How static constructors lift their result to a wrapper
227
- */
228
- export const renderStaticHead = (context, callables, ownerClassName, wrap) => {
229
- const blocks = [];
230
- for (const callable of callables.constructors) {
231
- const block = renderConstructorStatic(context, callable, ownerClassName, wrap);
232
- if (block !== undefined)
233
- blocks.push(block);
234
- }
235
- for (const callable of callables.functions) {
236
- const block = renderStaticMember(context, callable);
237
- if (block !== undefined)
238
- blocks.push(block);
239
- }
240
- return blocks;
241
- };
242
- /**
243
- * Renders the plain instance methods of a class/interface/boxed body, the
244
- * variant that does NOT consult inherited-signature conflicts. Used for
245
- * interfaces and boxed records that do not extend other widget shapes.
246
- *
247
- * Records each emitted method name in `claimedNames` so subsequent property
248
- * and signal-method renderers can detect collisions.
249
- */
250
- const renderPlainInstanceMethods = (context, methods, claimedNames) => {
251
- const blocks = [];
252
- for (const callable of methods) {
253
- const block = renderInstanceMethod(context, callable);
254
- if (block === undefined)
255
- continue;
256
- blocks.push(block);
257
- claimedNames.add(methodExportName(callable));
258
- }
259
- return blocks;
260
- };
261
- /**
262
- * Renders the shared head of an interface or boxed class body — `__gtype__`
263
- * declaration (optional), statics, plain instance methods, and
264
- * shadowed-method aliases — plus the `claimedNames` set populated by those
265
- * renderers.
266
- *
267
- * Callers append the constructor, property accessors, field accessors, and
268
- * signal members on top of the returned members list. The class writer takes
269
- * a different path because it has to consult inherited signatures.
270
- */
271
- export const renderPlainTypeMembers = (options) => {
272
- const { context, className, callables, hasGType, wrap } = options;
273
- const members = [];
274
- if (hasGType)
275
- members.push("declare __gtype__: number;");
276
- const claimedNames = new Set();
277
- members.push(...renderStaticHead(context, callables, className, wrap));
278
- members.push(...renderPlainInstanceMethods(context, callables.methods, claimedNames));
279
- const methodByName = indexMethodsByName(callables.methods);
280
- appendShadowedAliases({ context, methods: callables.methods, methodByName, members, claimedNames });
281
- return { members, claimedNames };
282
- };
283
- //# sourceMappingURL=callables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callables.js","sourceRoot":"","sources":["../../src/writers/callables.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { ModuleContext } from "../dsl/context.js";
2
- import type { GirCallback } from "../gir/callback.js";
3
- /**
4
- * Emits an `export type` alias for a top-level GIR `<callback>`.
5
- *
6
- * The callback is surfaced under its GIR `name` verbatim with a fully typed
7
- * call signature: input parameters follow {@link renderMethodSignature} (the
8
- * folded `user_data`/`GDestroyNotify` slots are dropped) and the return follows
9
- * {@link renderMethodReturnType}, so out-parameters tuple into the return the
10
- * same way a method's would.
11
- *
12
- * @param context - The module context
13
- * @param callback - The callback to emit
14
- */
15
- export declare const emitCallback: (context: ModuleContext, callback: GirCallback) => void;
16
- //# sourceMappingURL=callback.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../src/writers/callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmBtD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,aAAa,EAAE,UAAU,WAAW,KAAG,IAO5E,CAAC"}
@@ -1,38 +0,0 @@
1
- import { renderMethodReturnType, renderMethodSignature } from "./method.js";
2
- const callbackAsFunction = (callback) => ({
3
- kind: "function",
4
- name: callback.name,
5
- cIdentifier: undefined,
6
- throws: false,
7
- introspectable: callback.introspectable,
8
- shadows: undefined,
9
- shadowedBy: undefined,
10
- movedTo: undefined,
11
- instance: undefined,
12
- parameters: callback.parameters,
13
- returnValue: callback.returnValue,
14
- invoker: undefined,
15
- });
16
- /**
17
- * Emits an `export type` alias for a top-level GIR `<callback>`.
18
- *
19
- * The callback is surfaced under its GIR `name` verbatim with a fully typed
20
- * call signature: input parameters follow {@link renderMethodSignature} (the
21
- * folded `user_data`/`GDestroyNotify` slots are dropped) and the return follows
22
- * {@link renderMethodReturnType}, so out-parameters tuple into the return the
23
- * same way a method's would.
24
- *
25
- * @param context - The module context
26
- * @param callback - The callback to emit
27
- */
28
- export const emitCallback = (context, callback) => {
29
- if (!callback.introspectable)
30
- return;
31
- if (callback.name.length === 0)
32
- return;
33
- const fn = callbackAsFunction(callback);
34
- const signature = renderMethodSignature(context, fn);
35
- const returnType = renderMethodReturnType(context, fn);
36
- context.module.appendDeclaration(`export type ${callback.name} = (${signature}) => ${returnType};`);
37
- };
38
- //# sourceMappingURL=callback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callback.js","sourceRoot":"","sources":["../../src/writers/callback.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,kBAAkB,GAAG,CAAC,QAAqB,EAAe,EAAE,CAAC,CAAC;IAChE,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ,CAAC,IAAI;IACnB,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,QAAQ,CAAC,cAAc;IACvC,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;IAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;IACjC,OAAO,EAAE,SAAS;CACrB,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAsB,EAAE,QAAqB,EAAQ,EAAE;IAChF,IAAI,CAAC,QAAQ,CAAC,cAAc;QAAE,OAAO;IACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACvC,MAAM,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,eAAe,QAAQ,CAAC,IAAI,OAAO,SAAS,QAAQ,UAAU,GAAG,CAAC,CAAC;AACxG,CAAC,CAAC"}
@@ -1,31 +0,0 @@
1
- import type { ModuleContext } from "../dsl/context.js";
2
- import type { GirBoxed } from "../gir/boxed.js";
3
- import type { GirFunction } from "../gir/function.js";
4
- import type { GirTypeRef } from "../gir/type-ref.js";
5
- /**
6
- * Reports whether a `<record>` is a GObject class- or interface-struct — the
7
- * runtime vtable of a type rather than a marshallable value. These are never
8
- * constructed or passed by value from JavaScript, so codegen emits neither the
9
- * record nor any binding that references it.
10
- *
11
- * @param namespaceName - The namespace the record lives in
12
- * @param boxed - The record under consideration
13
- */
14
- export declare const isClassStructRecord: (namespaceName: string, boxed: GirBoxed) => boolean;
15
- /**
16
- * Reports whether a type reference resolves to a class/interface-struct record,
17
- * following array and list element types.
18
- *
19
- * @param context - The module context
20
- * @param ref - The type reference, or `undefined`
21
- */
22
- export declare const typeRefIsClassStruct: (context: ModuleContext, ref: GirTypeRef | undefined) => boolean;
23
- /**
24
- * Reports whether a callable's return type or any parameter resolves to a
25
- * class/interface-struct record, so its binding and wrapper can be dropped.
26
- *
27
- * @param context - The module context
28
- * @param fn - The callable
29
- */
30
- export declare const callableReferencesClassStruct: (context: ModuleContext, fn: GirFunction) => boolean;
31
- //# sourceMappingURL=class-struct-record.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"class-struct-record.d.ts","sourceRoot":"","sources":["../../src/writers/class-struct-record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiBrD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,EAAE,OAAO,QAAQ,KAAG,OAO5E,CAAC;AAmBF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,aAAa,EAAE,KAAK,UAAU,GAAG,SAAS,KAAG,OACzD,CAAC;AAEnC;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GAAI,SAAS,aAAa,EAAE,IAAI,WAAW,KAAG,OAER,CAAC"}
@@ -1,67 +0,0 @@
1
- /**
2
- * GObject's class- and interface-struct roots. Every concrete class struct
3
- * (`GEnumClass`, `GFlagsClass`, …) embeds one of these as its first field; the
4
- * roots themselves open with a bare `GType` and are matched by name.
5
- */
6
- const GTYPE_STRUCT_ROOTS = new Set(["GObject.TypeClass", "GObject.TypeInterface"]);
7
- /**
8
- * Class/interface-struct records that carry no embedded `GTypeClass`/
9
- * `GTypeInterface` marker and therefore have to be named outright.
10
- */
11
- const EXPLICIT_CLASS_STRUCTS = new Set(["Pango.AttrClass"]);
12
- const qualify = (namespaceName, name) => `${namespaceName}.${name}`;
13
- /**
14
- * Reports whether a `<record>` is a GObject class- or interface-struct — the
15
- * runtime vtable of a type rather than a marshallable value. These are never
16
- * constructed or passed by value from JavaScript, so codegen emits neither the
17
- * record nor any binding that references it.
18
- *
19
- * @param namespaceName - The namespace the record lives in
20
- * @param boxed - The record under consideration
21
- */
22
- export const isClassStructRecord = (namespaceName, boxed) => {
23
- const qualified = qualify(namespaceName, boxed.name);
24
- if (GTYPE_STRUCT_ROOTS.has(qualified) || EXPLICIT_CLASS_STRUCTS.has(qualified))
25
- return true;
26
- const first = boxed.fields[0];
27
- if (first === undefined || first.type === undefined || first.type.kind !== "named")
28
- return false;
29
- const fieldNamespace = first.type.namespaceName ?? namespaceName;
30
- return GTYPE_STRUCT_ROOTS.has(qualify(fieldNamespace, first.type.typeName));
31
- };
32
- const refIsClassStruct = (context, ref) => {
33
- if (ref === undefined)
34
- return false;
35
- switch (ref.kind) {
36
- case "named": {
37
- const namespaceName = ref.namespaceName ?? context.namespace.name;
38
- const resolved = context.repository.resolveNamed(namespaceName, ref.typeName);
39
- if (resolved === undefined || resolved.kind !== "boxed")
40
- return false;
41
- return isClassStructRecord(resolved.namespace.name, resolved.value);
42
- }
43
- case "array":
44
- case "list":
45
- return refIsClassStruct(context, ref.element);
46
- default:
47
- return false;
48
- }
49
- };
50
- /**
51
- * Reports whether a type reference resolves to a class/interface-struct record,
52
- * following array and list element types.
53
- *
54
- * @param context - The module context
55
- * @param ref - The type reference, or `undefined`
56
- */
57
- export const typeRefIsClassStruct = (context, ref) => refIsClassStruct(context, ref);
58
- /**
59
- * Reports whether a callable's return type or any parameter resolves to a
60
- * class/interface-struct record, so its binding and wrapper can be dropped.
61
- *
62
- * @param context - The module context
63
- * @param fn - The callable
64
- */
65
- export const callableReferencesClassStruct = (context, fn) => refIsClassStruct(context, fn.returnValue.type) ||
66
- fn.parameters.some((parameter) => refIsClassStruct(context, parameter.type));
67
- //# sourceMappingURL=class-struct-record.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"class-struct-record.js","sourceRoot":"","sources":["../../src/writers/class-struct-record.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAEnF;;;GAGG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAE5D,MAAM,OAAO,GAAG,CAAC,aAAqB,EAAE,IAAY,EAAU,EAAE,CAAC,GAAG,aAAa,IAAI,IAAI,EAAE,CAAC;AAE5F;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,aAAqB,EAAE,KAAe,EAAW,EAAE;IACnF,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACjG,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IACjE,OAAO,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,GAA2B,EAAW,EAAE;IACtF,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YACtE,OAAO,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACP,OAAO,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAsB,EAAE,GAA2B,EAAW,EAAE,CACjG,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,OAAsB,EAAE,EAAe,EAAW,EAAE,CAC9F,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;IAC9C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { ModuleContext } from "../dsl/context.js";
2
- import type { GirClass } from "../gir/class.js";
3
- /**
4
- * Renders the `{ … }` vtable descriptor literal for a class or interface
5
- * descriptor's `vfuncs` field, or `undefined` when the type exposes no
6
- * marshallable slots.
7
- *
8
- * Each entry describes one overridable vtable slot — keyed by the slot's
9
- * camelCase name and carrying `{ kind, className, vfuncName, byteOffset,
10
- * argTypes, returnType }` — so the runtime `registerClass` can auto-discover
11
- * a subclass method, locate the matching slot by byte offset, and register a
12
- * trampoline with the correct marshalling. Slots whose signature cannot be
13
- * marshalled (non-introspectable, variadic, out-parameters without
14
- * caller-allocates, or nested callbacks) are omitted. The `kind` discriminator
15
- * lets the runtime register an interface vfunc mapping in addition to the class
16
- * one when the descriptor's role is `"interface"`.
17
- *
18
- * @param context - The module context
19
- * @param klass - The class or interface
20
- */
21
- export declare const renderVfuncMetadata: (context: ModuleContext, klass: GirClass) => string | undefined;
22
- //# sourceMappingURL=class-struct.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"class-struct.d.ts","sourceRoot":"","sources":["../../src/writers/class-struct.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,aAAa,EAAE,OAAO,QAAQ,KAAG,MAAM,GAAG,SAOtF,CAAC"}