@gtkx/codegen 1.0.0-rc.4 → 1.0.0

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 (410) hide show
  1. package/README.md +5 -5
  2. package/dist/analysis/descriptor-render.d.ts +8 -1
  3. package/dist/analysis/descriptor-render.d.ts.map +1 -1
  4. package/dist/analysis/descriptor-render.js +37 -24
  5. package/dist/analysis/descriptor-render.js.map +1 -1
  6. package/dist/analysis/descriptor.d.ts +1 -1
  7. package/dist/analysis/descriptor.d.ts.map +1 -1
  8. package/dist/analysis/descriptor.js.map +1 -1
  9. package/dist/analysis/inheritance.d.ts +1 -2
  10. package/dist/analysis/inheritance.d.ts.map +1 -1
  11. package/dist/analysis/inheritance.js +25 -22
  12. package/dist/analysis/inheritance.js.map +1 -1
  13. package/dist/analysis/nul-terminated-bytes.d.ts +5 -0
  14. package/dist/analysis/nul-terminated-bytes.d.ts.map +1 -0
  15. package/dist/analysis/nul-terminated-bytes.js +18 -0
  16. package/dist/analysis/nul-terminated-bytes.js.map +1 -0
  17. package/dist/analysis/param-capability.d.ts +5 -0
  18. package/dist/analysis/param-capability.d.ts.map +1 -0
  19. package/dist/analysis/param-capability.js +130 -0
  20. package/dist/analysis/param-capability.js.map +1 -0
  21. package/dist/analysis/param-structure.d.ts +11 -4
  22. package/dist/analysis/param-structure.d.ts.map +1 -1
  23. package/dist/analysis/param-structure.js +40 -14
  24. package/dist/analysis/param-structure.js.map +1 -1
  25. package/dist/analysis/type-shape.d.ts +8 -0
  26. package/dist/analysis/type-shape.d.ts.map +1 -0
  27. package/dist/analysis/type-shape.js +12 -0
  28. package/dist/analysis/type-shape.js.map +1 -0
  29. package/dist/compile.d.ts +1 -1
  30. package/dist/compile.d.ts.map +1 -1
  31. package/dist/compile.js.map +1 -1
  32. package/dist/docs/api-reference.d.ts +2 -2
  33. package/dist/docs/api-reference.d.ts.map +1 -1
  34. package/dist/docs/api-reference.js +7 -14
  35. package/dist/docs/api-reference.js.map +1 -1
  36. package/dist/docs/element-page.d.ts +4 -4
  37. package/dist/docs/element-page.d.ts.map +1 -1
  38. package/dist/docs/element-page.js +32 -20
  39. package/dist/docs/element-page.js.map +1 -1
  40. package/dist/docs/handwritten-props.d.ts +9 -0
  41. package/dist/docs/handwritten-props.d.ts.map +1 -0
  42. package/dist/docs/handwritten-props.js +149 -0
  43. package/dist/docs/handwritten-props.js.map +1 -0
  44. package/dist/docs/pipeline.js +2 -2
  45. package/dist/docs/pipeline.js.map +1 -1
  46. package/dist/docs/render.d.ts +25 -5
  47. package/dist/docs/render.d.ts.map +1 -1
  48. package/dist/docs/render.js +84 -22
  49. package/dist/docs/render.js.map +1 -1
  50. package/dist/docs/symbol-page.d.ts +17 -0
  51. package/dist/docs/symbol-page.d.ts.map +1 -1
  52. package/dist/docs/symbol-page.js +128 -43
  53. package/dist/docs/symbol-page.js.map +1 -1
  54. package/dist/fingerprint.d.ts +1 -1
  55. package/dist/fingerprint.d.ts.map +1 -1
  56. package/dist/fingerprint.js.map +1 -1
  57. package/dist/gir/ancestry.d.ts +2 -2
  58. package/dist/gir/ancestry.d.ts.map +1 -1
  59. package/dist/gir/ancestry.js +11 -1
  60. package/dist/gir/ancestry.js.map +1 -1
  61. package/dist/gir/annotations.d.ts +22 -0
  62. package/dist/gir/annotations.d.ts.map +1 -0
  63. package/dist/gir/annotations.js +15 -0
  64. package/dist/gir/annotations.js.map +1 -0
  65. package/dist/gir/callback.d.ts +1 -0
  66. package/dist/gir/callback.d.ts.map +1 -1
  67. package/dist/gir/callback.js +1 -0
  68. package/dist/gir/callback.js.map +1 -1
  69. package/dist/gir/class.d.ts +32 -1
  70. package/dist/gir/class.d.ts.map +1 -1
  71. package/dist/gir/class.js +8 -3
  72. package/dist/gir/class.js.map +1 -1
  73. package/dist/gir/enum.d.ts +21 -1
  74. package/dist/gir/enum.d.ts.map +1 -1
  75. package/dist/gir/enum.js +9 -9
  76. package/dist/gir/enum.js.map +1 -1
  77. package/dist/gir/field.d.ts +19 -3
  78. package/dist/gir/field.d.ts.map +1 -1
  79. package/dist/gir/field.js +7 -8
  80. package/dist/gir/field.js.map +1 -1
  81. package/dist/gir/function.d.ts +15 -0
  82. package/dist/gir/function.d.ts.map +1 -1
  83. package/dist/gir/function.js.map +1 -1
  84. package/dist/gir/libraries.d.ts +1 -3
  85. package/dist/gir/libraries.d.ts.map +1 -1
  86. package/dist/gir/libraries.js +0 -1
  87. package/dist/gir/libraries.js.map +1 -1
  88. package/dist/gir/library.d.ts +36 -0
  89. package/dist/gir/library.d.ts.map +1 -1
  90. package/dist/gir/library.js +34 -0
  91. package/dist/gir/library.js.map +1 -1
  92. package/dist/gir/namespace.d.ts +38 -0
  93. package/dist/gir/namespace.d.ts.map +1 -1
  94. package/dist/gir/namespace.js +4 -5
  95. package/dist/gir/namespace.js.map +1 -1
  96. package/dist/gir/parameter.d.ts +39 -0
  97. package/dist/gir/parameter.d.ts.map +1 -1
  98. package/dist/gir/parameter.js +7 -3
  99. package/dist/gir/parameter.js.map +1 -1
  100. package/dist/gir/parse.d.ts +3 -1
  101. package/dist/gir/parse.d.ts.map +1 -1
  102. package/dist/gir/parse.js +6 -3
  103. package/dist/gir/parse.js.map +1 -1
  104. package/dist/gir/primitives.d.ts +1 -0
  105. package/dist/gir/primitives.d.ts.map +1 -1
  106. package/dist/gir/primitives.js.map +1 -1
  107. package/dist/gir/property.d.ts +16 -0
  108. package/dist/gir/property.d.ts.map +1 -1
  109. package/dist/gir/property.js +3 -3
  110. package/dist/gir/property.js.map +1 -1
  111. package/dist/gir/record.d.ts +22 -0
  112. package/dist/gir/record.d.ts.map +1 -1
  113. package/dist/gir/record.js +3 -2
  114. package/dist/gir/record.js.map +1 -1
  115. package/dist/gir/size.d.ts +5 -4
  116. package/dist/gir/size.d.ts.map +1 -1
  117. package/dist/gir/size.js.map +1 -1
  118. package/dist/gir/type-id.d.ts +35 -0
  119. package/dist/gir/type-id.d.ts.map +1 -1
  120. package/dist/gir/type-id.js +1 -0
  121. package/dist/gir/type-id.js.map +1 -1
  122. package/dist/gir/type-ref.d.ts.map +1 -1
  123. package/dist/gir/type-ref.js +1 -0
  124. package/dist/gir/type-ref.js.map +1 -1
  125. package/dist/gir/type.d.ts +20 -0
  126. package/dist/gir/type.d.ts.map +1 -1
  127. package/dist/gir/type.js.map +1 -1
  128. package/dist/khronos/args.d.ts +7 -6
  129. package/dist/khronos/args.d.ts.map +1 -1
  130. package/dist/khronos/args.js +28 -6
  131. package/dist/khronos/args.js.map +1 -1
  132. package/dist/khronos/doc-context.d.ts +29 -0
  133. package/dist/khronos/doc-context.d.ts.map +1 -0
  134. package/dist/khronos/doc-context.js +29 -0
  135. package/dist/khronos/doc-context.js.map +1 -0
  136. package/dist/khronos/extensions.d.ts +13 -0
  137. package/dist/khronos/extensions.d.ts.map +1 -0
  138. package/dist/khronos/extensions.js +49 -0
  139. package/dist/khronos/extensions.js.map +1 -0
  140. package/dist/khronos/jsdoc.d.ts +17 -11
  141. package/dist/khronos/jsdoc.d.ts.map +1 -1
  142. package/dist/khronos/jsdoc.js +104 -46
  143. package/dist/khronos/jsdoc.js.map +1 -1
  144. package/dist/khronos/model.d.ts +42 -3
  145. package/dist/khronos/model.d.ts.map +1 -1
  146. package/dist/khronos/model.js +218 -63
  147. package/dist/khronos/model.js.map +1 -1
  148. package/dist/khronos/modules.d.ts +9 -6
  149. package/dist/khronos/modules.d.ts.map +1 -1
  150. package/dist/khronos/modules.js +96 -26
  151. package/dist/khronos/modules.js.map +1 -1
  152. package/dist/khronos/notes.d.ts +19 -0
  153. package/dist/khronos/notes.d.ts.map +1 -0
  154. package/dist/khronos/notes.js +35 -0
  155. package/dist/khronos/notes.js.map +1 -0
  156. package/dist/khronos/param-pair.d.ts +1 -1
  157. package/dist/khronos/param-pair.d.ts.map +1 -1
  158. package/dist/khronos/param-pair.js.map +1 -1
  159. package/dist/khronos/pipeline.d.ts +3 -1
  160. package/dist/khronos/pipeline.d.ts.map +1 -1
  161. package/dist/khronos/pipeline.js +58 -27
  162. package/dist/khronos/pipeline.js.map +1 -1
  163. package/dist/khronos/plan.d.ts +3 -3
  164. package/dist/khronos/plan.d.ts.map +1 -1
  165. package/dist/khronos/plan.js +2 -2
  166. package/dist/khronos/plan.js.map +1 -1
  167. package/dist/khronos/render.d.ts +8 -6
  168. package/dist/khronos/render.d.ts.map +1 -1
  169. package/dist/khronos/render.js +35 -26
  170. package/dist/khronos/render.js.map +1 -1
  171. package/dist/khronos/select.d.ts +21 -4
  172. package/dist/khronos/select.d.ts.map +1 -1
  173. package/dist/khronos/select.js +47 -34
  174. package/dist/khronos/select.js.map +1 -1
  175. package/dist/react/element-config.d.ts +2 -2
  176. package/dist/react/element-config.d.ts.map +1 -1
  177. package/dist/react/element-config.js.map +1 -1
  178. package/dist/runner.d.ts +1 -7
  179. package/dist/runner.d.ts.map +1 -1
  180. package/dist/runner.js.map +1 -1
  181. package/dist/store/compile-store.d.ts +1 -1
  182. package/dist/store/compile-store.d.ts.map +1 -1
  183. package/dist/store/compile-store.js.map +1 -1
  184. package/dist/store/gi/callable-doc.d.ts +11 -0
  185. package/dist/store/gi/callable-doc.d.ts.map +1 -0
  186. package/dist/store/gi/callable-doc.js +62 -0
  187. package/dist/store/gi/callable-doc.js.map +1 -0
  188. package/dist/store/gi/callables.d.ts +3 -1
  189. package/dist/store/gi/callables.d.ts.map +1 -1
  190. package/dist/store/gi/callables.js +12 -12
  191. package/dist/store/gi/callables.js.map +1 -1
  192. package/dist/store/gi/callback.d.ts.map +1 -1
  193. package/dist/store/gi/callback.js +2 -2
  194. package/dist/store/gi/callback.js.map +1 -1
  195. package/dist/store/gi/class.d.ts.map +1 -1
  196. package/dist/store/gi/class.js +5 -3
  197. package/dist/store/gi/class.js.map +1 -1
  198. package/dist/store/gi/closure-invocation.d.ts +4 -0
  199. package/dist/store/gi/closure-invocation.d.ts.map +1 -0
  200. package/dist/store/gi/closure-invocation.js +22 -0
  201. package/dist/store/gi/closure-invocation.js.map +1 -0
  202. package/dist/store/gi/constant.d.ts.map +1 -1
  203. package/dist/store/gi/constant.js +3 -2
  204. package/dist/store/gi/constant.js.map +1 -1
  205. package/dist/store/gi/constructor-props.d.ts.map +1 -1
  206. package/dist/store/gi/constructor-props.js +18 -20
  207. package/dist/store/gi/constructor-props.js.map +1 -1
  208. package/dist/store/gi/doc-spec.d.ts +14 -0
  209. package/dist/store/gi/doc-spec.d.ts.map +1 -0
  210. package/dist/store/gi/doc-spec.js +23 -0
  211. package/dist/store/gi/doc-spec.js.map +1 -0
  212. package/dist/store/gi/enum.d.ts.map +1 -1
  213. package/dist/store/gi/enum.js +29 -16
  214. package/dist/store/gi/enum.js.map +1 -1
  215. package/dist/store/gi/function.d.ts.map +1 -1
  216. package/dist/store/gi/function.js +27 -12
  217. package/dist/store/gi/function.js.map +1 -1
  218. package/dist/store/gi/interface.d.ts.map +1 -1
  219. package/dist/store/gi/interface.js +130 -16
  220. package/dist/store/gi/interface.js.map +1 -1
  221. package/dist/store/gi/item-comparators.d.ts.map +1 -1
  222. package/dist/store/gi/item-comparators.js +3 -5
  223. package/dist/store/gi/item-comparators.js.map +1 -1
  224. package/dist/store/gi/method.d.ts +9 -1
  225. package/dist/store/gi/method.d.ts.map +1 -1
  226. package/dist/store/gi/method.js +69 -26
  227. package/dist/store/gi/method.js.map +1 -1
  228. package/dist/store/gi/param-marshal.d.ts +4 -1
  229. package/dist/store/gi/param-marshal.d.ts.map +1 -1
  230. package/dist/store/gi/param-marshal.js +5 -1
  231. package/dist/store/gi/param-marshal.js.map +1 -1
  232. package/dist/store/gi/pipeline.d.ts.map +1 -1
  233. package/dist/store/gi/pipeline.js +3 -2
  234. package/dist/store/gi/pipeline.js.map +1 -1
  235. package/dist/store/gi/properties.d.ts.map +1 -1
  236. package/dist/store/gi/properties.js +2 -2
  237. package/dist/store/gi/properties.js.map +1 -1
  238. package/dist/store/gi/property-accessor.d.ts +3 -1
  239. package/dist/store/gi/property-accessor.d.ts.map +1 -1
  240. package/dist/store/gi/property-accessor.js +6 -5
  241. package/dist/store/gi/property-accessor.js.map +1 -1
  242. package/dist/store/gi/record-constructor.d.ts.map +1 -1
  243. package/dist/store/gi/record-constructor.js +3 -1
  244. package/dist/store/gi/record-constructor.js.map +1 -1
  245. package/dist/store/gi/record-field-accessor.d.ts +3 -1
  246. package/dist/store/gi/record-field-accessor.d.ts.map +1 -1
  247. package/dist/store/gi/record-field-accessor.js +3 -2
  248. package/dist/store/gi/record-field-accessor.js.map +1 -1
  249. package/dist/store/gi/record-layout.js +1 -1
  250. package/dist/store/gi/record-layout.js.map +1 -1
  251. package/dist/store/gi/record.d.ts.map +1 -1
  252. package/dist/store/gi/record.js +3 -2
  253. package/dist/store/gi/record.js.map +1 -1
  254. package/dist/store/gi/registration.d.ts +1 -1
  255. package/dist/store/gi/registration.js +2 -2
  256. package/dist/store/gi/registration.js.map +1 -1
  257. package/dist/store/gi/runtime-override.d.ts +2 -1
  258. package/dist/store/gi/runtime-override.d.ts.map +1 -1
  259. package/dist/store/gi/runtime-override.js +8 -5
  260. package/dist/store/gi/runtime-override.js.map +1 -1
  261. package/dist/store/gi/signal.d.ts.map +1 -1
  262. package/dist/store/gi/signal.js +14 -15
  263. package/dist/store/gi/signal.js.map +1 -1
  264. package/dist/store/gi/value-marshalable.d.ts +1 -2
  265. package/dist/store/gi/value-marshalable.d.ts.map +1 -1
  266. package/dist/store/gi/value-marshalable.js +1 -1
  267. package/dist/store/gi/value-marshalable.js.map +1 -1
  268. package/dist/store/gi/vtable.d.ts +16 -1
  269. package/dist/store/gi/vtable.d.ts.map +1 -1
  270. package/dist/store/gi/vtable.js +214 -51
  271. package/dist/store/gi/vtable.js.map +1 -1
  272. package/dist/store/jsx/element-components.d.ts +1 -1
  273. package/dist/store/jsx/element-components.d.ts.map +1 -1
  274. package/dist/store/jsx/element-components.js +6 -4
  275. package/dist/store/jsx/element-components.js.map +1 -1
  276. package/dist/store/jsx/element-prop-imports.d.ts +1 -3
  277. package/dist/store/jsx/element-prop-imports.d.ts.map +1 -1
  278. package/dist/store/jsx/element-prop-imports.js.map +1 -1
  279. package/dist/store/jsx/element-prop-types.d.ts +3 -0
  280. package/dist/store/jsx/element-prop-types.d.ts.map +1 -1
  281. package/dist/store/jsx/element-prop-types.js +7 -1
  282. package/dist/store/jsx/element-prop-types.js.map +1 -1
  283. package/dist/store/jsx/intrinsic-elements.d.ts +4 -0
  284. package/dist/store/jsx/intrinsic-elements.d.ts.map +1 -1
  285. package/dist/store/jsx/intrinsic-elements.js.map +1 -1
  286. package/dist/store/jsx/jsx.d.ts.map +1 -1
  287. package/dist/store/jsx/jsx.js +7 -6
  288. package/dist/store/jsx/jsx.js.map +1 -1
  289. package/dist/store/jsx/metadata.js +2 -2
  290. package/dist/store/jsx/metadata.js.map +1 -1
  291. package/dist/store/jsx/pipeline.d.ts +1 -1
  292. package/dist/store/jsx/pipeline.d.ts.map +1 -1
  293. package/dist/store/jsx/pipeline.js.map +1 -1
  294. package/dist/store/jsx/props.d.ts +1 -7
  295. package/dist/store/jsx/props.d.ts.map +1 -1
  296. package/dist/store/jsx/props.js +14 -6
  297. package/dist/store/jsx/props.js.map +1 -1
  298. package/dist/writer/context.d.ts +2 -1
  299. package/dist/writer/context.d.ts.map +1 -1
  300. package/dist/writer/context.js +3 -0
  301. package/dist/writer/context.js.map +1 -1
  302. package/dist/writer/doc-tags.d.ts +21 -0
  303. package/dist/writer/doc-tags.d.ts.map +1 -0
  304. package/dist/writer/doc-tags.js +38 -0
  305. package/dist/writer/doc-tags.js.map +1 -0
  306. package/dist/writer/doc.d.ts +3 -1
  307. package/dist/writer/doc.d.ts.map +1 -1
  308. package/dist/writer/doc.js +19 -6
  309. package/dist/writer/doc.js.map +1 -1
  310. package/dist/writer/gtk-doc.d.ts +1 -1
  311. package/dist/writer/gtk-doc.d.ts.map +1 -1
  312. package/dist/writer/gtk-doc.js +64 -15
  313. package/dist/writer/gtk-doc.js.map +1 -1
  314. package/dist/writer/module.d.ts +8 -2
  315. package/dist/writer/module.d.ts.map +1 -1
  316. package/dist/writer/module.js +13 -1
  317. package/dist/writer/module.js.map +1 -1
  318. package/overrides/gdk/rgba.ts.ejs +26 -0
  319. package/overrides/gobject/object.ts.ejs +48 -3
  320. package/overrides/gobject/value.ts.ejs +7 -0
  321. package/overrides/graphene/structs.ts.ejs +55 -0
  322. package/package.json +4 -4
  323. package/src/analysis/descriptor-render.ts +47 -28
  324. package/src/analysis/descriptor.ts +0 -3
  325. package/src/analysis/inheritance.ts +35 -34
  326. package/src/analysis/nul-terminated-bytes.ts +31 -0
  327. package/src/analysis/param-capability.ts +172 -0
  328. package/src/analysis/param-structure.ts +83 -23
  329. package/src/analysis/type-shape.ts +24 -0
  330. package/src/compile.ts +1 -1
  331. package/src/docs/api-reference.ts +36 -25
  332. package/src/docs/element-page.ts +53 -47
  333. package/src/docs/handwritten-props.ts +230 -0
  334. package/src/docs/pipeline.ts +2 -2
  335. package/src/docs/render.ts +146 -32
  336. package/src/docs/symbol-page.ts +224 -79
  337. package/src/fingerprint.ts +0 -1
  338. package/src/gir/ancestry.ts +15 -1
  339. package/src/gir/annotations.ts +37 -0
  340. package/src/gir/callback.ts +2 -0
  341. package/src/gir/class.ts +42 -4
  342. package/src/gir/enum.ts +30 -10
  343. package/src/gir/field.ts +24 -9
  344. package/src/gir/function.ts +15 -0
  345. package/src/gir/libraries.ts +11 -3
  346. package/src/gir/library.ts +51 -2
  347. package/src/gir/namespace.ts +41 -5
  348. package/src/gir/parameter.ts +47 -3
  349. package/src/gir/parse.ts +8 -2
  350. package/src/gir/primitives.ts +1 -0
  351. package/src/gir/property.ts +18 -3
  352. package/src/gir/record.ts +24 -2
  353. package/src/gir/size.ts +8 -3
  354. package/src/gir/type-id.ts +49 -3
  355. package/src/gir/type-ref.ts +1 -0
  356. package/src/gir/type.ts +50 -6
  357. package/src/khronos/args.ts +36 -13
  358. package/src/khronos/doc-context.ts +62 -0
  359. package/src/khronos/extensions.ts +85 -0
  360. package/src/khronos/jsdoc.ts +152 -56
  361. package/src/khronos/model.ts +314 -69
  362. package/src/khronos/modules.ts +134 -40
  363. package/src/khronos/notes.ts +74 -0
  364. package/src/khronos/param-pair.ts +1 -1
  365. package/src/khronos/pipeline.ts +94 -41
  366. package/src/khronos/plan.ts +4 -5
  367. package/src/khronos/render.ts +62 -50
  368. package/src/khronos/select.ts +91 -50
  369. package/src/react/element-config.ts +2 -2
  370. package/src/runner.ts +1 -8
  371. package/src/store/compile-store.ts +1 -1
  372. package/src/store/gi/callable-doc.ts +102 -0
  373. package/src/store/gi/callables.ts +18 -12
  374. package/src/store/gi/callback.ts +3 -2
  375. package/src/store/gi/class.ts +6 -3
  376. package/src/store/gi/closure-invocation.ts +26 -0
  377. package/src/store/gi/constant.ts +3 -4
  378. package/src/store/gi/constructor-props.ts +19 -23
  379. package/src/store/gi/doc-spec.ts +38 -0
  380. package/src/store/gi/enum.ts +55 -20
  381. package/src/store/gi/function.ts +43 -21
  382. package/src/store/gi/interface.ts +214 -26
  383. package/src/store/gi/item-comparators.ts +3 -5
  384. package/src/store/gi/method.ts +98 -42
  385. package/src/store/gi/param-marshal.ts +15 -1
  386. package/src/store/gi/pipeline.ts +7 -2
  387. package/src/store/gi/properties.ts +3 -2
  388. package/src/store/gi/property-accessor.ts +9 -4
  389. package/src/store/gi/record-constructor.ts +6 -1
  390. package/src/store/gi/record-field-accessor.ts +5 -3
  391. package/src/store/gi/record-layout.ts +1 -1
  392. package/src/store/gi/record.ts +8 -2
  393. package/src/store/gi/registration.ts +3 -3
  394. package/src/store/gi/runtime-override.ts +13 -6
  395. package/src/store/gi/signal.ts +19 -20
  396. package/src/store/gi/value-marshalable.ts +1 -1
  397. package/src/store/gi/vtable.ts +361 -60
  398. package/src/store/jsx/element-components.ts +8 -5
  399. package/src/store/jsx/element-prop-imports.ts +1 -3
  400. package/src/store/jsx/element-prop-types.ts +10 -1
  401. package/src/store/jsx/intrinsic-elements.ts +4 -0
  402. package/src/store/jsx/jsx.ts +8 -6
  403. package/src/store/jsx/metadata.ts +2 -2
  404. package/src/store/jsx/pipeline.ts +1 -1
  405. package/src/store/jsx/props.ts +20 -7
  406. package/src/writer/context.ts +5 -1
  407. package/src/writer/doc-tags.ts +70 -0
  408. package/src/writer/doc.ts +29 -6
  409. package/src/writer/gtk-doc.ts +82 -15
  410. package/src/writer/module.ts +25 -2
@@ -1 +1 @@
1
- {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/store/gi/registration.ts"],"names":[],"mappings":"AAeA,MAAM,8BAA8B,GAAG,CACnC,OAAsB,EACtB,YAAsC,EAClC,EAAE;IACN,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IAEtD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACX,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,MAAM,EAAE,CAAC;IAC1E,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,wBAAwB,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC;AACtF,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,OAAsB,EAAE,YAAmC,EAAQ,EAAE;IACtG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IAEjE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACX,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,GAAG,SAAS,KAAK,SAAS,KAAK,SAAS,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,CAAC","sourcesContent":["import type { ModuleContext } from \"../../writer/context.js\";\n\ntype WrapperClassRegistration = {\n className: string;\n gtypeExpr?: string | undefined;\n vfuncs?: string | undefined;\n};\n\ntype InterfaceRegistration = {\n className: string;\n makerName: string;\n gtypeExpr?: string | undefined;\n vfuncs?: string | undefined;\n};\n\nconst appendWrapperClassRegistration = (\n context: ModuleContext,\n registration: WrapperClassRegistration,\n): void => {\n const { className, gtypeExpr, vfuncs } = registration;\n\n if (gtypeExpr === undefined) {\n return;\n }\n\n context.addRuntimeImport(\"registerWrapperClass\");\n const args = vfuncs === undefined ? gtypeExpr : `${gtypeExpr}, ${vfuncs}`;\n context.module.appendRegistration(`registerWrapperClass(${className}, ${args});`);\n};\n\nconst appendInterfaceRegistration = (context: ModuleContext, registration: InterfaceRegistration): void => {\n const { className, makerName, gtypeExpr, vfuncs } = registration;\n\n if (gtypeExpr === undefined) {\n return;\n }\n\n context.addRuntimeImport(\"registerInterface\");\n const base = `${className}, ${gtypeExpr}, ${makerName}`;\n const args = vfuncs === undefined ? base : `${base}, ${vfuncs}`;\n context.module.appendRegistration(`registerInterface(${args});`);\n};\n\nexport { appendWrapperClassRegistration, appendInterfaceRegistration };\n"]}
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/store/gi/registration.ts"],"names":[],"mappings":"AAeA,MAAM,8BAA8B,GAAG,CACnC,OAAsB,EACtB,YAAsC,EAClC,EAAE;IACN,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IAEtD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACX,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,MAAM,EAAE,CAAC;IAC1E,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,wBAAwB,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC;AACtF,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,OAAsB,EAAE,YAAmC,EAAQ,EAAE;IACtG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IAEjE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;IACX,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,GAAG,SAAS,KAAK,SAAS,KAAK,SAAS,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,CAAC","sourcesContent":["import type { ModuleContext } from \"../../writer/context.js\";\n\ntype WrapperClassRegistration = {\n className: string;\n gtypeExpr?: string | undefined;\n vfuncs?: string | undefined;\n};\n\ntype InterfaceRegistration = {\n className: string;\n makerName: string;\n gtypeExpr?: string | undefined;\n layout?: string | undefined;\n};\n\nconst appendWrapperClassRegistration = (\n context: ModuleContext,\n registration: WrapperClassRegistration,\n): void => {\n const { className, gtypeExpr, vfuncs } = registration;\n\n if (gtypeExpr === undefined) {\n return;\n }\n\n context.addRuntimeImport(\"registerWrapperClass\");\n const args = vfuncs === undefined ? gtypeExpr : `${gtypeExpr}, ${vfuncs}`;\n context.module.appendRegistration(`registerWrapperClass(${className}, ${args});`);\n};\n\nconst appendInterfaceRegistration = (context: ModuleContext, registration: InterfaceRegistration): void => {\n const { className, makerName, gtypeExpr, layout } = registration;\n\n if (gtypeExpr === undefined) {\n return;\n }\n\n context.addRuntimeImport(\"registerInterface\");\n const base = `${className}, ${gtypeExpr}, ${makerName}`;\n const args = layout === undefined ? base : `${base}, ${layout}`;\n context.module.appendRegistration(`registerInterface(${args});`);\n};\n\nexport { appendWrapperClassRegistration, appendInterfaceRegistration };\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { GirFunction } from "../../gir/function.js";
2
+ declare const runtimeOverrideRenames: (callable: GirFunction) => Map<string, string> | undefined;
2
3
  declare const renderRuntimeOverride: (callable: GirFunction, memberName: string) => string | undefined;
3
- export { renderRuntimeOverride };
4
+ export { renderRuntimeOverride, runtimeOverrideRenames };
4
5
  //# sourceMappingURL=runtime-override.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-override.d.ts","sourceRoot":"","sources":["../../../src/store/gi/runtime-override.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AA6BzD,QAAA,MAAM,qBAAqB,GAAI,UAAU,WAAW,EAAE,YAAY,MAAM,KAAG,MAAM,GAAG,SAcnF,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"runtime-override.d.ts","sourceRoot":"","sources":["../../../src/store/gi/runtime-override.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAkCzD,QAAA,MAAM,sBAAsB,GAAI,UAAU,WAAW,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAI7E,CAAC;AAEF,QAAA,MAAM,qBAAqB,GAAI,UAAU,WAAW,EAAE,YAAY,MAAM,KAAG,MAAM,GAAG,SAUnF,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,CAAC"}
@@ -14,19 +14,22 @@ const RUNTIME_OVERRIDES = new Map([
14
14
  signature: "boxed: object | null",
15
15
  returnType: "void",
16
16
  body: 'throw new Error("g_value_set_boxed: runtime override not installed");',
17
+ renames: [["v_boxed", "boxed"]],
17
18
  },
18
19
  ],
19
20
  ]);
21
+ const runtimeOverrideFor = (callable) => callable.cIdentifier === undefined ? undefined : RUNTIME_OVERRIDES.get(callable.cIdentifier);
22
+ const runtimeOverrideRenames = (callable) => {
23
+ const renames = runtimeOverrideFor(callable)?.renames;
24
+ return renames === undefined ? undefined : new Map(renames);
25
+ };
20
26
  const renderRuntimeOverride = (callable, memberName) => {
21
- if (callable.cIdentifier === undefined) {
22
- return undefined;
23
- }
24
- const override = RUNTIME_OVERRIDES.get(callable.cIdentifier);
27
+ const override = runtimeOverrideFor(callable);
25
28
  if (override === undefined) {
26
29
  return undefined;
27
30
  }
28
31
  const generics = override.generics ?? "";
29
32
  return `${memberName}${generics}(${override.signature}): ${override.returnType} {\n ${override.body}\n}`;
30
33
  };
31
- export { renderRuntimeOverride };
34
+ export { renderRuntimeOverride, runtimeOverrideRenames };
32
35
  //# sourceMappingURL=runtime-override.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-override.js","sourceRoot":"","sources":["../../../src/store/gi/runtime-override.ts"],"names":[],"mappings":"AASA,MAAM,iBAAiB,GAAiC,IAAI,GAAG,CAAC;IAC5D;QACI,mBAAmB;QACnB;YACI,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,uEAAuE;SAChF;KACJ;IACD;QACI,mBAAmB;QACnB;YACI,SAAS,EAAE,sBAAsB;YACjC,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,uEAAuE;SAChF;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,QAAqB,EAAE,UAAkB,EAAsB,EAAE;IAC5F,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE7D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IAEzC,OAAO,GAAG,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,SAAS,MAAM,QAAQ,CAAC,UAAU,WAAW,QAAQ,CAAC,IAAI,KAAK,CAAC;AAChH,CAAC,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import type { GirFunction } from \"../../gir/function.js\";\n\ntype RuntimeOverride = {\n generics?: string;\n signature: string;\n returnType: string;\n body: string;\n};\n\nconst RUNTIME_OVERRIDES: Map<string, RuntimeOverride> = new Map([\n [\n \"g_value_get_boxed\",\n {\n generics: \"<T = unknown>\",\n signature: \"\",\n returnType: \"T\",\n body: 'throw new Error(\"g_value_get_boxed: runtime override not installed\");',\n },\n ],\n [\n \"g_value_set_boxed\",\n {\n signature: \"boxed: object | null\",\n returnType: \"void\",\n body: 'throw new Error(\"g_value_set_boxed: runtime override not installed\");',\n },\n ],\n]);\n\nconst renderRuntimeOverride = (callable: GirFunction, memberName: string): string | undefined => {\n if (callable.cIdentifier === undefined) {\n return undefined;\n }\n\n const override = RUNTIME_OVERRIDES.get(callable.cIdentifier);\n\n if (override === undefined) {\n return undefined;\n }\n\n const generics = override.generics ?? \"\";\n\n return `${memberName}${generics}(${override.signature}): ${override.returnType} {\\n ${override.body}\\n}`;\n};\n\nexport { renderRuntimeOverride };\n"]}
1
+ {"version":3,"file":"runtime-override.js","sourceRoot":"","sources":["../../../src/store/gi/runtime-override.ts"],"names":[],"mappings":"AAUA,MAAM,iBAAiB,GAAiC,IAAI,GAAG,CAAC;IAC5D;QACI,mBAAmB;QACnB;YACI,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,uEAAuE;SAChF;KACJ;IACD;QACI,mBAAmB;QACnB;YACI,SAAS,EAAE,sBAAsB;YACjC,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,uEAAuE;YAC7E,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;SAClC;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,QAAqB,EAA+B,EAAE,CAC9E,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEjG,MAAM,sBAAsB,GAAG,CAAC,QAAqB,EAAmC,EAAE;IACtF,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEtD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,QAAqB,EAAE,UAAkB,EAAsB,EAAE;IAC5F,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IAEzC,OAAO,GAAG,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,SAAS,MAAM,QAAQ,CAAC,UAAU,WAAW,QAAQ,CAAC,IAAI,KAAK,CAAC;AAChH,CAAC,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,CAAC","sourcesContent":["import type { GirFunction } from \"../../gir/function.js\";\n\ntype RuntimeOverride = {\n generics?: string;\n signature: string;\n returnType: string;\n body: string;\n renames?: [string, string][];\n};\n\nconst RUNTIME_OVERRIDES: Map<string, RuntimeOverride> = new Map([\n [\n \"g_value_get_boxed\",\n {\n generics: \"<T = unknown>\",\n signature: \"\",\n returnType: \"T\",\n body: 'throw new Error(\"g_value_get_boxed: runtime override not installed\");',\n },\n ],\n [\n \"g_value_set_boxed\",\n {\n signature: \"boxed: object | null\",\n returnType: \"void\",\n body: 'throw new Error(\"g_value_set_boxed: runtime override not installed\");',\n renames: [[\"v_boxed\", \"boxed\"]],\n },\n ],\n]);\n\nconst runtimeOverrideFor = (callable: GirFunction): RuntimeOverride | undefined =>\n callable.cIdentifier === undefined ? undefined : RUNTIME_OVERRIDES.get(callable.cIdentifier);\n\nconst runtimeOverrideRenames = (callable: GirFunction): Map<string, string> | undefined => {\n const renames = runtimeOverrideFor(callable)?.renames;\n\n return renames === undefined ? undefined : new Map(renames);\n};\n\nconst renderRuntimeOverride = (callable: GirFunction, memberName: string): string | undefined => {\n const override = runtimeOverrideFor(callable);\n\n if (override === undefined) {\n return undefined;\n }\n\n const generics = override.generics ?? \"\";\n\n return `${memberName}${generics}(${override.signature}): ${override.returnType} {\\n ${override.body}\\n}`;\n};\n\nexport { renderRuntimeOverride, runtimeOverrideRenames };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../../src/store/gi/signal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA4C7D,QAAA,MAAM,mBAAmB,GAAI,SAAS,aAAa,EAAE,OAAO,QAAQ,KAAG,MAAM,EAsC5E,CAAC;AAEF,QAAA,MAAM,wBAAwB,GAC1B,SAAS,aAAa,EACtB,OAAO,QAAQ,EACf,WAAW,MAAM,EACjB,4BAA4B,OAAO,KACpC,MAAM,EAmBR,CAAC;AAiVF,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../../src/store/gi/signal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA6C7D,QAAA,MAAM,mBAAmB,GAAI,SAAS,aAAa,EAAE,OAAO,QAAQ,KAAG,MAAM,EAsC5E,CAAC;AAEF,QAAA,MAAM,wBAAwB,GAC1B,SAAS,aAAa,EACtB,OAAO,QAAQ,EACf,WAAW,MAAM,EACjB,4BAA4B,OAAO,KACpC,MAAM,EAmBR,CAAC;AA+UF,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,13 +1,15 @@
1
1
  import { camelCase, sourceStringLiteral } from "@gtkx/utils";
2
2
  import { isCellInout, renderDescriptor, renderParamDescriptor, shouldOmitPrimaryReturn, } from "../../analysis/descriptor-render.js";
3
3
  import { tCallback, tObject, tVoid } from "../../analysis/descriptor.js";
4
- import { collectInterfaceProperties, forEachAncestor, resolveImplementedInterface, resolvePrerequisiteReference, } from "../../analysis/inheritance.js";
4
+ import { collectInterfaceProperties, forEachAncestor, resolvePrerequisiteReference, } from "../../analysis/inheritance.js";
5
5
  import { renderHandlerParameters, renderHandlerResultType } from "../../analysis/param-structure.js";
6
6
  import { renderTsType } from "../../analysis/ts-type.js";
7
+ import { resolveInterfaces } from "../../gir/ancestry.js";
7
8
  import { isCallerAllocatedOut, isOutParameter } from "../../gir/parameter.js";
8
9
  import { renderJsDoc } from "../../writer/doc.js";
9
10
  import { indent, renderBlock, renderBracedOrEmpty } from "../../writer/emit.js";
10
11
  import { parentCompanionRef } from "./companion.js";
12
+ import { getDoc, handlerSpec } from "./doc-spec.js";
11
13
  import { isRecordCallerOut, isRecordInout } from "./param-marshal.js";
12
14
  const SIGNAL_HANDLER_TYPE = "(...args: any[]) => any";
13
15
  const SIGNALS_SUFFIX = "Signals";
@@ -60,18 +62,17 @@ const renderSignalMap = (spec) => {
60
62
  const { context, klass, className, isParentlessObjectSubclass, suffix, renderEntry } = spec;
61
63
  const extendsRefs = signalMapParentRefs(context, klass, isParentlessObjectSubclass, suffix);
62
64
  const extendsClause = extendsRefs.length === 0 ? "" : ` extends ${extendsRefs.join(", ")}`;
63
- const signalEntries = collectClassSignals(context, klass).map((signal) => {
64
- const entry = `${sourceStringLiteral(signal.name)}: ${renderEntry(context, signal)};`;
65
- return suffix === SIGNALS_SUFFIX ? `${renderJsDoc(signal.doc)}${entry}` : entry;
66
- });
65
+ const signalEntries = collectClassSignals(context, klass).map((signal) => `${signalDoc(signal)}${sourceStringLiteral(signal.name)}: ${renderEntry(context, signal)};`);
67
66
  const entries = [...signalEntries, ...renderNotifyDetailEntries(context, klass, suffix)];
68
67
  return renderBracedOrEmpty(`export interface ${className}${suffix}${extendsClause}`, entries.join("\n"));
69
68
  };
69
+ const signalDoc = (signal) => renderJsDoc(signal.doc, undefined, handlerSpec(signal, signal.parameters));
70
70
  const renderNotifyDetailEntries = (context, klass, suffix) => {
71
71
  const notifyValue = `${gobjectObjectMapRef(context, suffix)}["notify"]`;
72
- return collectNotifyDetails(context, klass).map((name) => {
73
- const detailedSignal = `notify::${name}`;
74
- return `${sourceStringLiteral(detailedSignal)}: ${notifyValue};`;
72
+ return collectNotifyDetails(context, klass).map((property) => {
73
+ const detailedSignal = `notify::${property.name}`;
74
+ const doc = getDoc(property);
75
+ return `${doc}${sourceStringLiteral(detailedSignal)}: ${notifyValue};`;
75
76
  });
76
77
  };
77
78
  const signalMapParentRefs = (context, klass, isParentlessObjectSubclass, suffix) => {
@@ -206,14 +207,12 @@ const renderCallback = (context, signal) => {
206
207
  ? tVoid
207
208
  : renderDescriptor(context, signal.returnValue.type, signal.returnValue.transferOwnership);
208
209
  const callbackArgs = [tObject("borrowed"), ...callbackParamDescriptors, tVoid];
209
- return tCallback(callbackArgs, returnDescriptor, `{ hasDestroy: true, userDataIndex: ${String(params.length + 1)} }`);
210
+ const userDataIndex = String(params.length + 1);
211
+ const destroy = "hasDestroy: true, destroyKind: \"closureNotify\"";
212
+ return tCallback(callbackArgs, returnDescriptor, `{ ${destroy}, hasUserData: true, userDataIndex: ${userDataIndex} }`);
210
213
  };
211
214
  const forEachInterfaceSignal = (context, klass, consider) => {
212
- for (const implementName of klass.implements) {
213
- const iface = resolveImplementedInterface(context, implementName);
214
- if (iface === undefined) {
215
- continue;
216
- }
215
+ for (const iface of resolveInterfaces(context.library, context.namespace.name, klass.implements)) {
217
216
  for (const signal of iface.klass.signals) {
218
217
  consider(signal);
219
218
  }
@@ -263,7 +262,7 @@ const collectNotifyDetails = (context, klass) => {
263
262
  return;
264
263
  }
265
264
  seen.add(name);
266
- result.push(property.name);
265
+ result.push(property);
267
266
  };
268
267
  for (const property of klass.properties) {
269
268
  consider(property);
@@ -1 +1 @@
1
- {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../../src/store/gi/signal.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase, sourceStringLiteral } from \"@gtkx/utils\";\nimport type { GirClass } from \"../../gir/class.js\";\nimport type { GirCallable, GirParameter } from \"../../gir/parameter.js\";\nimport type { GirProperty } from \"../../gir/property.js\";\nimport type { ModuleContext } from \"../../writer/context.js\";\nimport {\n isCellInout,\n renderDescriptor,\n renderParamDescriptor,\n shouldOmitPrimaryReturn,\n} from \"../../analysis/descriptor-render.js\";\nimport { tCallback, tObject, tVoid } from \"../../analysis/descriptor.js\";\nimport {\n collectInterfaceProperties,\n forEachAncestor,\n resolveImplementedInterface,\n resolvePrerequisiteReference,\n} from \"../../analysis/inheritance.js\";\nimport { renderHandlerParameters, renderHandlerResultType } from \"../../analysis/param-structure.js\";\nimport { renderTsType } from \"../../analysis/ts-type.js\";\nimport { isCallerAllocatedOut, isOutParameter } from \"../../gir/parameter.js\";\nimport { renderJsDoc } from \"../../writer/doc.js\";\nimport { indent, renderBlock, renderBracedOrEmpty } from \"../../writer/emit.js\";\nimport { parentCompanionRef } from \"./companion.js\";\nimport { isRecordCallerOut, isRecordInout } from \"./param-marshal.js\";\n\ntype SignalMapSpec = {\n context: ModuleContext;\n klass: GirClass;\n className: string;\n isParentlessObjectSubclass: boolean;\n suffix: string;\n renderEntry: (context: ModuleContext, signal: GirCallable) => string;\n};\n\ntype EmitArgOptions = {\n context: ModuleContext;\n parameter: GirParameter;\n descriptor: string;\n argIndex: number;\n};\n\ntype NamedMember = { name: string };\n\nconst SIGNAL_HANDLER_TYPE = \"(...args: any[]) => any\";\nconst SIGNALS_SUFFIX = \"Signals\";\nconst SIGNAL_EMIT_SUFFIX = \"SignalEmit\";\n\nconst renderSignalMembers = (context: ModuleContext, klass: GirClass): string[] => {\n if (klass.glibGetType === undefined) {\n return [];\n }\n\n const signals = collectClassSignals(context, klass);\n\n if (signals.length === 0) {\n return [];\n }\n\n const isRootObject = context.namespace.name === \"GObject\" && klass.name === \"Object\";\n context.addRuntimeImport(\"connectSignal\");\n context.addRuntimeImport(\"getSignalBaseName\");\n context.addRuntimeImport(\"t\");\n const connectCases = signals.map((signal) => renderConnectCase(context, signal));\n const emitCases = signals.map((signal) => renderEmitCase(context, signal));\n\n const connectDefault = isRootObject\n ? \"default:\\n throw new globalThis.Error(\\\"Unknown signal '\\\" + signal + \\\"'\\\");\"\n : \"default:\\n return super.connect(signal, handler, isAfter);\";\n\n const emitDefault = isRootObject\n ? \"default:\\n throw new globalThis.Error(\\\"Unknown signal '\\\" + sigName + \\\"'\\\");\"\n : \"default:\\n return super.emit(sigName, ...args);\";\n\n const connectBody = indent([...connectCases, connectDefault].join(\"\\n\"), 1);\n const connectSwitch = `switch (getSignalBaseName(signal)) {\\n${connectBody}\\n}`;\n const emitBody = indent([...emitCases, emitDefault].join(\"\\n\"), 1);\n const emitSwitch = `switch (getSignalBaseName(sigName)) {\\n${emitBody}\\n}`;\n\n return [\n renderBlock(\n `connect(signal: string, handler: ${SIGNAL_HANDLER_TYPE}, isAfter?: boolean): number`,\n connectSwitch,\n ),\n renderBlock(\"emit(sigName: string, ...args: unknown[]): unknown\", emitSwitch),\n ];\n};\n\nconst renderSignalDeclarations = (\n context: ModuleContext,\n klass: GirClass,\n className: string,\n isParentlessObjectSubclass: boolean,\n): string[] => {\n const base = { context, klass, className, isParentlessObjectSubclass };\n\n const declarations = [\n renderSignalMap({ ...base, suffix: SIGNALS_SUFFIX, renderEntry: renderSignalHandlerType }),\n renderSignalMap({ ...base, suffix: SIGNAL_EMIT_SUFFIX, renderEntry: renderSignalEmitEntry }),\n ];\n\n if (\n klass.glibGetType !== undefined &&\n (collectClassSignals(context, klass).length > 0 ||\n collectNotifyDetails(context, klass).length > 0 ||\n klass.implements.length > 0)\n ) {\n const isRootObject = context.namespace.name === \"GObject\" && klass.name === \"Object\";\n declarations.push(renderSignalConnectInterface(className, isRootObject));\n }\n\n return declarations;\n};\n\nconst renderSignalMap = (spec: SignalMapSpec): string => {\n const { context, klass, className, isParentlessObjectSubclass, suffix, renderEntry } = spec;\n const extendsRefs = signalMapParentRefs(context, klass, isParentlessObjectSubclass, suffix);\n const extendsClause = extendsRefs.length === 0 ? \"\" : ` extends ${extendsRefs.join(\", \")}`;\n\n const signalEntries = collectClassSignals(context, klass).map((signal) => {\n const entry = `${sourceStringLiteral(signal.name)}: ${renderEntry(context, signal)};`;\n\n return suffix === SIGNALS_SUFFIX ? `${renderJsDoc(signal.doc)}${entry}` : entry;\n });\n\n const entries = [...signalEntries, ...renderNotifyDetailEntries(context, klass, suffix)];\n\n return renderBracedOrEmpty(`export interface ${className}${suffix}${extendsClause}`, entries.join(\"\\n\"));\n};\n\nconst renderNotifyDetailEntries = (context: ModuleContext, klass: GirClass, suffix: string): string[] => {\n const notifyValue = `${gobjectObjectMapRef(context, suffix)}[\"notify\"]`;\n\n return collectNotifyDetails(context, klass).map((name) => {\n const detailedSignal = `notify::${name}`;\n\n return `${sourceStringLiteral(detailedSignal)}: ${notifyValue};`;\n });\n};\n\nconst signalMapParentRefs = (\n context: ModuleContext,\n klass: GirClass,\n isParentlessObjectSubclass: boolean,\n suffix: string,\n): string[] => {\n const parentRef = parentCompanionRef(context, klass, suffix);\n\n if (parentRef !== undefined) {\n return [parentRef];\n }\n\n if (!isParentlessObjectSubclass) {\n return [];\n }\n\n const prerequisiteRefs = klass.prerequisites\n .map((name) => resolvePrerequisiteReference(context, name))\n .filter((entry): entry is string => entry !== undefined)\n .map((entry) => `${entry}${suffix}`);\n\n if (prerequisiteRefs.length > 0) {\n return prerequisiteRefs;\n }\n\n return [gobjectObjectMapRef(context, suffix)];\n};\n\nconst gobjectObjectMapRef = (context: ModuleContext, suffix: string): string => {\n if (context.namespace.name === \"GObject\") {\n return `Object${suffix}`;\n }\n\n return `${context.addCrossNamespaceImport(\"GObject\")}.Object${suffix}`;\n};\n\nconst renderSignalConnectInterface = (className: string, isRootObject: boolean): string => {\n const map = `${className}${SIGNALS_SUFFIX}`;\n const emitMap = `${className}${SIGNAL_EMIT_SUFFIX}`;\n\n const lines = [\n `__signals__?: ${map};`,\n `connect<K extends keyof ${map}>(signal: K, handler: ${map}[K], isAfter?: boolean): number;`,\n `connect(signal: string, handler: ${SIGNAL_HANDLER_TYPE}, isAfter?: boolean): number;`,\n `emit<K extends keyof ${emitMap}>(sigName: K, ...args: ${emitMap}[K][\"args\"]): ${emitMap}[K][\"result\"];`,\n \"emit(sigName: string, ...args: unknown[]): unknown;\",\n ];\n\n if (!isRootObject) {\n const chainable = (methods: string[], trailing: string): void => {\n for (const method of methods) {\n lines.push(\n `${method}<K extends keyof ${map}>(signal: K, handler: ${map}[K]${trailing}): this;`,\n `${method}(signal: string, handler: ${SIGNAL_HANDLER_TYPE}${trailing}): this;`,\n );\n }\n };\n\n chainable([\"on\", \"once\", \"addEventListener\"], \", isAfter?: boolean\");\n chainable([\"off\", \"removeEventListener\"], \"\");\n }\n\n return renderBracedOrEmpty(`export interface ${className}`, lines.join(\"\\n\"));\n};\n\nconst renderSignalHandlerType = (context: ModuleContext, signal: GirCallable): string => {\n const params = renderHandlerParameters(signal.parameters, (ref, nullable) => renderTsType(context, ref, nullable));\n\n return `(${params.join(\", \")}) => ${renderResultType(context, signal, false, true)}`;\n};\n\nconst renderResultType = (\n context: ModuleContext,\n signal: GirCallable,\n shouldIncludeCallerAllocated: boolean,\n isOptOut: boolean,\n): string =>\n renderHandlerResultType({\n library: context.library,\n signal,\n renderType: (ref, nullable) => renderTsType(context, ref, nullable),\n shouldIncludeCallerAllocated,\n isOptOut,\n });\n\nconst renderSignalEmitEntry = (context: ModuleContext, signal: GirCallable): string => {\n const args = renderHandlerParameters(\n signal.parameters,\n (ref, nullable) => renderTsType(context, ref, nullable),\n isCallerAllocatedOut,\n );\n\n const result = renderResultType(context, signal, true, false);\n\n return `{ args: [${args.join(\", \")}]; result: ${result} }`;\n};\n\nconst nonVarargParameters = (signal: GirCallable): GirParameter[] =>\n signal.parameters.filter((parameter) => !parameter.isVarargs);\n\nconst renderConnectCase = (context: ModuleContext, signal: GirCallable): string => {\n const callback = renderCallback(context, signal);\n const body = `return connectSignal(this, signal, { callback: ${callback}, handler, isAfter: isAfter ?? false });`;\n\n return renderBlock(`case ${sourceStringLiteral(signal.name)}:`, body);\n};\n\nconst renderEmitArgLiteral = (options: EmitArgOptions): { literal: string; nextArgIndex: number } => {\n const { context, parameter, descriptor, argIndex } = options;\n\n if (isOutParameter(parameter)) {\n return { literal: `{ type: ${descriptor}, direction: \"out\" }`, nextArgIndex: argIndex };\n }\n\n if (isCellInout(context.library, parameter)) {\n return {\n literal: `{ type: ${descriptor}, direction: \"inout\", value: args[${String(argIndex)}] }`,\n nextArgIndex: argIndex + 1,\n };\n }\n\n if (isCallerAllocatedOut(parameter)) {\n const value = renderCallerOutAllocation(context, parameter);\n\n return {\n literal: `{ type: ${descriptor}, direction: \"out\", isCallerAllocated: true, value: ${value} }`,\n nextArgIndex: argIndex,\n };\n }\n\n if (isRecordInout(context, parameter)) {\n return {\n literal:\n `{ type: ${descriptor}, direction: \"inout\", isCallerAllocated: true, ` +\n `value: args[${String(argIndex)}] }`,\n nextArgIndex: argIndex + 1,\n };\n }\n\n return { literal: `{ type: ${descriptor}, value: args[${String(argIndex)}] }`, nextArgIndex: argIndex + 1 };\n};\n\nconst renderEmitCase = (context: ModuleContext, signal: GirCallable): string => {\n const params = nonVarargParameters(signal);\n\n if (params.some((parameter) => isCallerAllocatedOut(parameter) && !isRecordCallerOut(context, parameter))) {\n return renderUnsupportedEmitCase(signal);\n }\n\n context.addRuntimeImport(\"emitSignal\");\n let argIndex = 0;\n\n const argLiterals = params.map((parameter) => {\n const descriptor = renderDescriptor(context, parameter.type, parameter.transferOwnership);\n const rendered = renderEmitArgLiteral({ context, parameter, descriptor, argIndex });\n argIndex = rendered.nextArgIndex;\n\n return rendered.literal;\n });\n\n const isVoid = shouldOmitPrimaryReturn(context.library, signal.returnValue);\n\n const returnArg = isVoid\n ? \"\"\n : `, ${renderDescriptor(context, signal.returnValue.type, signal.returnValue.transferOwnership)}`;\n\n const body = `return emitSignal(this, sigName, [${argLiterals.join(\", \")}]${returnArg});`;\n\n return renderBlock(`case ${sourceStringLiteral(signal.name)}:`, body);\n};\n\nconst renderUnsupportedEmitCase = (signal: GirCallable): string => {\n const message = `emit() cannot allocate the caller-allocated out-parameter of '${signal.name}'`;\n\n return renderBlock(\n `case ${sourceStringLiteral(signal.name)}:`,\n `throw new globalThis.Error(${sourceStringLiteral(message)});`,\n );\n};\n\nconst renderCallerOutAllocation = (context: ModuleContext, parameter: GirParameter): string => {\n const name = parameter.type === undefined ? undefined : context.library.nameFor(parameter.type);\n\n if (name === undefined) {\n throw new Error(\"renderCallerOutAllocation: expected a named caller-allocated out-parameter\");\n }\n\n return `new ${context.qualify(name.namespaceName, name.typeName)}()`;\n};\n\nconst renderCallback = (context: ModuleContext, signal: GirCallable): string => {\n const params = nonVarargParameters(signal);\n\n const callbackParamDescriptors = params.map((parameter) =>\n renderParamDescriptor(context, parameter, parameter.type, { argIndexOffset: 1 }),\n );\n\n const isVoid = shouldOmitPrimaryReturn(context.library, signal.returnValue);\n\n const returnDescriptor = isVoid\n ? tVoid\n : renderDescriptor(context, signal.returnValue.type, signal.returnValue.transferOwnership);\n\n const callbackArgs = [tObject(\"borrowed\"), ...callbackParamDescriptors, tVoid];\n\n return tCallback(\n callbackArgs,\n returnDescriptor,\n `{ hasDestroy: true, userDataIndex: ${String(params.length + 1)} }`,\n );\n};\n\nconst forEachInterfaceSignal = (\n context: ModuleContext,\n klass: GirClass,\n consider: (signal: GirCallable) => void,\n): void => {\n for (const implementName of klass.implements) {\n const iface = resolveImplementedInterface(context, implementName);\n\n if (iface === undefined) {\n continue;\n }\n\n for (const signal of iface.klass.signals) {\n consider(signal);\n }\n }\n};\n\nconst collectClassSignals = (context: ModuleContext, klass: GirClass): GirCallable[] => {\n const inheritedNames = collectInheritedSignalNames(context, klass);\n const seen: Set<string> = new Set();\n const result: GirCallable[] = [];\n\n const consider = (signal: GirCallable): void => {\n const name = camelCase(signal.name);\n\n if (!signal.introspectable || inheritedNames.has(name) || seen.has(name)) {\n return;\n }\n\n seen.add(name);\n result.push(signal);\n };\n\n for (const signal of klass.signals) {\n consider(signal);\n }\n\n forEachInterfaceSignal(context, klass, consider);\n\n return result;\n};\n\nconst addMemberNames = (target: Set<string>, source: GirClass, select: (source: GirClass) => NamedMember[]): void => {\n for (const member of select(source)) {\n target.add(camelCase(member.name));\n }\n};\n\nconst collectInheritedMemberNames = (\n context: ModuleContext,\n klass: GirClass,\n select: (source: GirClass) => NamedMember[],\n): Set<string> => {\n const names: Set<string> = new Set();\n\n forEachAncestor(context, klass, (ancestor, interfaces) => {\n addMemberNames(names, ancestor.klass, select);\n\n for (const iface of interfaces) {\n addMemberNames(names, iface.klass, select);\n }\n });\n\n return names;\n};\n\nconst collectInheritedSignalNames = (context: ModuleContext, klass: GirClass): Set<string> =>\n collectInheritedMemberNames(context, klass, (source) => source.signals);\n\nconst collectNotifyDetails = (context: ModuleContext, klass: GirClass): string[] => {\n const inherited = collectInheritedMemberNames(context, klass, (source) => source.properties);\n const seen: Set<string> = new Set();\n const result: string[] = [];\n\n const consider = (property: GirProperty): void => {\n const name = camelCase(property.name);\n\n if (inherited.has(name) || seen.has(name)) {\n return;\n }\n\n seen.add(name);\n result.push(property.name);\n };\n\n for (const property of klass.properties) {\n consider(property);\n }\n\n for (const { property } of collectInterfaceProperties(context, klass)) {\n consider(property);\n }\n\n return result;\n};\n\nexport { renderSignalMembers, renderSignalDeclarations };\n"]}
1
+ {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../../src/store/gi/signal.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase, sourceStringLiteral } from \"@gtkx/utils\";\nimport type { GirClass } from \"../../gir/class.js\";\nimport type { GirCallable, GirParameter } from \"../../gir/parameter.js\";\nimport type { GirProperty } from \"../../gir/property.js\";\nimport type { ModuleContext } from \"../../writer/context.js\";\nimport {\n isCellInout,\n renderDescriptor,\n renderParamDescriptor,\n shouldOmitPrimaryReturn,\n} from \"../../analysis/descriptor-render.js\";\nimport { tCallback, tObject, tVoid } from \"../../analysis/descriptor.js\";\nimport {\n collectInterfaceProperties,\n forEachAncestor,\n resolvePrerequisiteReference,\n} from \"../../analysis/inheritance.js\";\nimport { renderHandlerParameters, renderHandlerResultType } from \"../../analysis/param-structure.js\";\nimport { renderTsType } from \"../../analysis/ts-type.js\";\nimport { resolveInterfaces } from \"../../gir/ancestry.js\";\nimport { isCallerAllocatedOut, isOutParameter } from \"../../gir/parameter.js\";\nimport { renderJsDoc } from \"../../writer/doc.js\";\nimport { indent, renderBlock, renderBracedOrEmpty } from \"../../writer/emit.js\";\nimport { parentCompanionRef } from \"./companion.js\";\nimport { getDoc, handlerSpec } from \"./doc-spec.js\";\nimport { isRecordCallerOut, isRecordInout } from \"./param-marshal.js\";\n\ntype SignalMapSpec = {\n context: ModuleContext;\n klass: GirClass;\n className: string;\n isParentlessObjectSubclass: boolean;\n suffix: string;\n renderEntry: (context: ModuleContext, signal: GirCallable) => string;\n};\n\ntype EmitArgOptions = {\n context: ModuleContext;\n parameter: GirParameter;\n descriptor: string;\n argIndex: number;\n};\n\ntype NamedMember = { name: string };\n\nconst SIGNAL_HANDLER_TYPE = \"(...args: any[]) => any\";\nconst SIGNALS_SUFFIX = \"Signals\";\nconst SIGNAL_EMIT_SUFFIX = \"SignalEmit\";\n\nconst renderSignalMembers = (context: ModuleContext, klass: GirClass): string[] => {\n if (klass.glibGetType === undefined) {\n return [];\n }\n\n const signals = collectClassSignals(context, klass);\n\n if (signals.length === 0) {\n return [];\n }\n\n const isRootObject = context.namespace.name === \"GObject\" && klass.name === \"Object\";\n context.addRuntimeImport(\"connectSignal\");\n context.addRuntimeImport(\"getSignalBaseName\");\n context.addRuntimeImport(\"t\");\n const connectCases = signals.map((signal) => renderConnectCase(context, signal));\n const emitCases = signals.map((signal) => renderEmitCase(context, signal));\n\n const connectDefault = isRootObject\n ? \"default:\\n throw new globalThis.Error(\\\"Unknown signal '\\\" + signal + \\\"'\\\");\"\n : \"default:\\n return super.connect(signal, handler, isAfter);\";\n\n const emitDefault = isRootObject\n ? \"default:\\n throw new globalThis.Error(\\\"Unknown signal '\\\" + sigName + \\\"'\\\");\"\n : \"default:\\n return super.emit(sigName, ...args);\";\n\n const connectBody = indent([...connectCases, connectDefault].join(\"\\n\"), 1);\n const connectSwitch = `switch (getSignalBaseName(signal)) {\\n${connectBody}\\n}`;\n const emitBody = indent([...emitCases, emitDefault].join(\"\\n\"), 1);\n const emitSwitch = `switch (getSignalBaseName(sigName)) {\\n${emitBody}\\n}`;\n\n return [\n renderBlock(\n `connect(signal: string, handler: ${SIGNAL_HANDLER_TYPE}, isAfter?: boolean): number`,\n connectSwitch,\n ),\n renderBlock(\"emit(sigName: string, ...args: unknown[]): unknown\", emitSwitch),\n ];\n};\n\nconst renderSignalDeclarations = (\n context: ModuleContext,\n klass: GirClass,\n className: string,\n isParentlessObjectSubclass: boolean,\n): string[] => {\n const base = { context, klass, className, isParentlessObjectSubclass };\n\n const declarations = [\n renderSignalMap({ ...base, suffix: SIGNALS_SUFFIX, renderEntry: renderSignalHandlerType }),\n renderSignalMap({ ...base, suffix: SIGNAL_EMIT_SUFFIX, renderEntry: renderSignalEmitEntry }),\n ];\n\n if (\n klass.glibGetType !== undefined &&\n (collectClassSignals(context, klass).length > 0 ||\n collectNotifyDetails(context, klass).length > 0 ||\n klass.implements.length > 0)\n ) {\n const isRootObject = context.namespace.name === \"GObject\" && klass.name === \"Object\";\n declarations.push(renderSignalConnectInterface(className, isRootObject));\n }\n\n return declarations;\n};\n\nconst renderSignalMap = (spec: SignalMapSpec): string => {\n const { context, klass, className, isParentlessObjectSubclass, suffix, renderEntry } = spec;\n const extendsRefs = signalMapParentRefs(context, klass, isParentlessObjectSubclass, suffix);\n const extendsClause = extendsRefs.length === 0 ? \"\" : ` extends ${extendsRefs.join(\", \")}`;\n\n const signalEntries = collectClassSignals(context, klass).map(\n (signal) => `${signalDoc(signal)}${sourceStringLiteral(signal.name)}: ${renderEntry(context, signal)};`,\n );\n\n const entries = [...signalEntries, ...renderNotifyDetailEntries(context, klass, suffix)];\n\n return renderBracedOrEmpty(`export interface ${className}${suffix}${extendsClause}`, entries.join(\"\\n\"));\n};\n\nconst signalDoc = (signal: GirCallable): string =>\n renderJsDoc(signal.doc, undefined, handlerSpec(signal, signal.parameters));\n\nconst renderNotifyDetailEntries = (context: ModuleContext, klass: GirClass, suffix: string): string[] => {\n const notifyValue = `${gobjectObjectMapRef(context, suffix)}[\"notify\"]`;\n\n return collectNotifyDetails(context, klass).map((property) => {\n const detailedSignal = `notify::${property.name}`;\n const doc = getDoc(property);\n\n return `${doc}${sourceStringLiteral(detailedSignal)}: ${notifyValue};`;\n });\n};\n\nconst signalMapParentRefs = (\n context: ModuleContext,\n klass: GirClass,\n isParentlessObjectSubclass: boolean,\n suffix: string,\n): string[] => {\n const parentRef = parentCompanionRef(context, klass, suffix);\n\n if (parentRef !== undefined) {\n return [parentRef];\n }\n\n if (!isParentlessObjectSubclass) {\n return [];\n }\n\n const prerequisiteRefs = klass.prerequisites\n .map((name) => resolvePrerequisiteReference(context, name))\n .filter((entry): entry is string => entry !== undefined)\n .map((entry) => `${entry}${suffix}`);\n\n if (prerequisiteRefs.length > 0) {\n return prerequisiteRefs;\n }\n\n return [gobjectObjectMapRef(context, suffix)];\n};\n\nconst gobjectObjectMapRef = (context: ModuleContext, suffix: string): string => {\n if (context.namespace.name === \"GObject\") {\n return `Object${suffix}`;\n }\n\n return `${context.addCrossNamespaceImport(\"GObject\")}.Object${suffix}`;\n};\n\nconst renderSignalConnectInterface = (className: string, isRootObject: boolean): string => {\n const map = `${className}${SIGNALS_SUFFIX}`;\n const emitMap = `${className}${SIGNAL_EMIT_SUFFIX}`;\n\n const lines = [\n `__signals__?: ${map};`,\n `connect<K extends keyof ${map}>(signal: K, handler: ${map}[K], isAfter?: boolean): number;`,\n `connect(signal: string, handler: ${SIGNAL_HANDLER_TYPE}, isAfter?: boolean): number;`,\n `emit<K extends keyof ${emitMap}>(sigName: K, ...args: ${emitMap}[K][\"args\"]): ${emitMap}[K][\"result\"];`,\n \"emit(sigName: string, ...args: unknown[]): unknown;\",\n ];\n\n if (!isRootObject) {\n const chainable = (methods: string[], trailing: string): void => {\n for (const method of methods) {\n lines.push(\n `${method}<K extends keyof ${map}>(signal: K, handler: ${map}[K]${trailing}): this;`,\n `${method}(signal: string, handler: ${SIGNAL_HANDLER_TYPE}${trailing}): this;`,\n );\n }\n };\n\n chainable([\"on\", \"once\", \"addEventListener\"], \", isAfter?: boolean\");\n chainable([\"off\", \"removeEventListener\"], \"\");\n }\n\n return renderBracedOrEmpty(`export interface ${className}`, lines.join(\"\\n\"));\n};\n\nconst renderSignalHandlerType = (context: ModuleContext, signal: GirCallable): string => {\n const params = renderHandlerParameters(signal.parameters, (ref, nullable) => renderTsType(context, ref, nullable));\n\n return `(${params.join(\", \")}) => ${renderResultType(context, signal, false, true)}`;\n};\n\nconst renderResultType = (\n context: ModuleContext,\n signal: GirCallable,\n shouldIncludeCallerAllocated: boolean,\n isOptOut: boolean,\n): string =>\n renderHandlerResultType({\n library: context.library,\n signal,\n renderType: (ref, nullable) => renderTsType(context, ref, nullable),\n shouldIncludeCallerAllocated,\n isOptOut,\n });\n\nconst renderSignalEmitEntry = (context: ModuleContext, signal: GirCallable): string => {\n const args = renderHandlerParameters(\n signal.parameters,\n (ref, nullable) => renderTsType(context, ref, nullable),\n isCallerAllocatedOut,\n );\n\n const result = renderResultType(context, signal, true, false);\n\n return `{ args: [${args.join(\", \")}]; result: ${result} }`;\n};\n\nconst nonVarargParameters = (signal: GirCallable): GirParameter[] =>\n signal.parameters.filter((parameter) => !parameter.isVarargs);\n\nconst renderConnectCase = (context: ModuleContext, signal: GirCallable): string => {\n const callback = renderCallback(context, signal);\n const body = `return connectSignal(this, signal, { callback: ${callback}, handler, isAfter: isAfter ?? false });`;\n\n return renderBlock(`case ${sourceStringLiteral(signal.name)}:`, body);\n};\n\nconst renderEmitArgLiteral = (options: EmitArgOptions): { literal: string; nextArgIndex: number } => {\n const { context, parameter, descriptor, argIndex } = options;\n\n if (isOutParameter(parameter)) {\n return { literal: `{ type: ${descriptor}, direction: \"out\" }`, nextArgIndex: argIndex };\n }\n\n if (isCellInout(context.library, parameter)) {\n return {\n literal: `{ type: ${descriptor}, direction: \"inout\", value: args[${String(argIndex)}] }`,\n nextArgIndex: argIndex + 1,\n };\n }\n\n if (isCallerAllocatedOut(parameter)) {\n const value = renderCallerOutAllocation(context, parameter);\n\n return {\n literal: `{ type: ${descriptor}, direction: \"out\", isCallerAllocated: true, value: ${value} }`,\n nextArgIndex: argIndex,\n };\n }\n\n if (isRecordInout(context, parameter)) {\n return {\n literal:\n `{ type: ${descriptor}, direction: \"inout\", isCallerAllocated: true, ` +\n `value: args[${String(argIndex)}] }`,\n nextArgIndex: argIndex + 1,\n };\n }\n\n return { literal: `{ type: ${descriptor}, value: args[${String(argIndex)}] }`, nextArgIndex: argIndex + 1 };\n};\n\nconst renderEmitCase = (context: ModuleContext, signal: GirCallable): string => {\n const params = nonVarargParameters(signal);\n\n if (params.some((parameter) => isCallerAllocatedOut(parameter) && !isRecordCallerOut(context, parameter))) {\n return renderUnsupportedEmitCase(signal);\n }\n\n context.addRuntimeImport(\"emitSignal\");\n let argIndex = 0;\n\n const argLiterals = params.map((parameter) => {\n const descriptor = renderDescriptor(context, parameter.type, parameter.transferOwnership);\n const rendered = renderEmitArgLiteral({ context, parameter, descriptor, argIndex });\n argIndex = rendered.nextArgIndex;\n\n return rendered.literal;\n });\n\n const isVoid = shouldOmitPrimaryReturn(context.library, signal.returnValue);\n\n const returnArg = isVoid\n ? \"\"\n : `, ${renderDescriptor(context, signal.returnValue.type, signal.returnValue.transferOwnership)}`;\n\n const body = `return emitSignal(this, sigName, [${argLiterals.join(\", \")}]${returnArg});`;\n\n return renderBlock(`case ${sourceStringLiteral(signal.name)}:`, body);\n};\n\nconst renderUnsupportedEmitCase = (signal: GirCallable): string => {\n const message = `emit() cannot allocate the caller-allocated out-parameter of '${signal.name}'`;\n\n return renderBlock(\n `case ${sourceStringLiteral(signal.name)}:`,\n `throw new globalThis.Error(${sourceStringLiteral(message)});`,\n );\n};\n\nconst renderCallerOutAllocation = (context: ModuleContext, parameter: GirParameter): string => {\n const name = parameter.type === undefined ? undefined : context.library.nameFor(parameter.type);\n\n if (name === undefined) {\n throw new Error(\"renderCallerOutAllocation: expected a named caller-allocated out-parameter\");\n }\n\n return `new ${context.qualify(name.namespaceName, name.typeName)}()`;\n};\n\nconst renderCallback = (context: ModuleContext, signal: GirCallable): string => {\n const params = nonVarargParameters(signal);\n\n const callbackParamDescriptors = params.map((parameter) =>\n renderParamDescriptor(context, parameter, parameter.type, { argIndexOffset: 1 }),\n );\n\n const isVoid = shouldOmitPrimaryReturn(context.library, signal.returnValue);\n\n const returnDescriptor = isVoid\n ? tVoid\n : renderDescriptor(context, signal.returnValue.type, signal.returnValue.transferOwnership);\n\n const callbackArgs = [tObject(\"borrowed\"), ...callbackParamDescriptors, tVoid];\n const userDataIndex = String(params.length + 1);\n const destroy = \"hasDestroy: true, destroyKind: \\\"closureNotify\\\"\";\n\n return tCallback(\n callbackArgs,\n returnDescriptor,\n `{ ${destroy}, hasUserData: true, userDataIndex: ${userDataIndex} }`,\n );\n};\n\nconst forEachInterfaceSignal = (\n context: ModuleContext,\n klass: GirClass,\n consider: (signal: GirCallable) => void,\n): void => {\n for (const iface of resolveInterfaces(context.library, context.namespace.name, klass.implements)) {\n for (const signal of iface.klass.signals) {\n consider(signal);\n }\n }\n};\n\nconst collectClassSignals = (context: ModuleContext, klass: GirClass): GirCallable[] => {\n const inheritedNames = collectInheritedSignalNames(context, klass);\n const seen: Set<string> = new Set();\n const result: GirCallable[] = [];\n\n const consider = (signal: GirCallable): void => {\n const name = camelCase(signal.name);\n\n if (!signal.introspectable || inheritedNames.has(name) || seen.has(name)) {\n return;\n }\n\n seen.add(name);\n result.push(signal);\n };\n\n for (const signal of klass.signals) {\n consider(signal);\n }\n\n forEachInterfaceSignal(context, klass, consider);\n\n return result;\n};\n\nconst addMemberNames = (target: Set<string>, source: GirClass, select: (source: GirClass) => NamedMember[]): void => {\n for (const member of select(source)) {\n target.add(camelCase(member.name));\n }\n};\n\nconst collectInheritedMemberNames = (\n context: ModuleContext,\n klass: GirClass,\n select: (source: GirClass) => NamedMember[],\n): Set<string> => {\n const names: Set<string> = new Set();\n\n forEachAncestor(context, klass, (ancestor, interfaces) => {\n addMemberNames(names, ancestor.klass, select);\n\n for (const iface of interfaces) {\n addMemberNames(names, iface.klass, select);\n }\n });\n\n return names;\n};\n\nconst collectInheritedSignalNames = (context: ModuleContext, klass: GirClass): Set<string> =>\n collectInheritedMemberNames(context, klass, (source) => source.signals);\n\nconst collectNotifyDetails = (context: ModuleContext, klass: GirClass): GirProperty[] => {\n const inherited = collectInheritedMemberNames(context, klass, (source) => source.properties);\n const seen: Set<string> = new Set();\n const result: GirProperty[] = [];\n\n const consider = (property: GirProperty): void => {\n const name = camelCase(property.name);\n\n if (inherited.has(name) || seen.has(name)) {\n return;\n }\n\n seen.add(name);\n result.push(property);\n };\n\n for (const property of klass.properties) {\n consider(property);\n }\n\n for (const { property } of collectInterfaceProperties(context, klass)) {\n consider(property);\n }\n\n return result;\n};\n\nexport { renderSignalMembers, renderSignalDeclarations };\n"]}
@@ -1,7 +1,6 @@
1
1
  import type { GirRecord } from "../../gir/record.js";
2
2
  import type { ModuleContext } from "../../writer/context.js";
3
- declare const hasOwnCopySemantics: (record: GirRecord) => boolean;
4
3
  declare const isValueMarshalable: (context: ModuleContext, namespaceName: string, record: GirRecord) => boolean;
5
4
  declare const isConstructibleRecord: (context: ModuleContext, namespaceName: string, record: GirRecord) => boolean;
6
- export { hasOwnCopySemantics, isConstructibleRecord, isValueMarshalable };
5
+ export { isConstructibleRecord, isValueMarshalable };
7
6
  //# sourceMappingURL=value-marshalable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-marshalable.d.ts","sourceRoot":"","sources":["../../../src/store/gi/value-marshalable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQ7D,QAAA,MAAM,mBAAmB,GAAI,QAAQ,SAAS,KAAG,OAEqE,CAAC;AAiEvH,QAAA,MAAM,kBAAkB,GAAI,SAAS,aAAa,EAAE,eAAe,MAAM,EAAE,QAAQ,SAAS,KAAG,OACb,CAAC;AAEnF,QAAA,MAAM,qBAAqB,GAAI,SAAS,aAAa,EAAE,eAAe,MAAM,EAAE,QAAQ,SAAS,KAAG,OACb,CAAC;AAEtF,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"value-marshalable.d.ts","sourceRoot":"","sources":["../../../src/store/gi/value-marshalable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA2E7D,QAAA,MAAM,kBAAkB,GAAI,SAAS,aAAa,EAAE,eAAe,MAAM,EAAE,QAAQ,SAAS,KAAG,OACb,CAAC;AAEnF,QAAA,MAAM,qBAAqB,GAAI,SAAS,aAAa,EAAE,eAAe,MAAM,EAAE,QAAQ,SAAS,KAAG,OACb,CAAC;AAEtF,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -53,5 +53,5 @@ function isValueSafeRecord(scope, namespaceName, record) {
53
53
  }
54
54
  const isValueMarshalable = (context, namespaceName, record) => isValueSafeRecord({ context, seen: new Set() }, namespaceName, record);
55
55
  const isConstructibleRecord = (context, namespaceName, record) => hasOwnCopySemantics(record) || isValueMarshalable(context, namespaceName, record);
56
- export { hasOwnCopySemantics, isConstructibleRecord, isValueMarshalable };
56
+ export { isConstructibleRecord, isValueMarshalable };
57
57
  //# sourceMappingURL=value-marshalable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-marshalable.js","sourceRoot":"","sources":["../../../src/store/gi/value-marshalable.ts"],"names":[],"mappings":"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","sourcesContent":["import type { GirField } from \"../../gir/field.js\";\nimport type { PrimitiveCategory } from \"../../gir/primitives.js\";\nimport type { GirRecord } from \"../../gir/record.js\";\nimport type { TypeId } from \"../../gir/type-id.js\";\nimport type { GirType } from \"../../gir/type.js\";\nimport type { ModuleContext } from \"../../writer/context.js\";\n\ntype Scope = { context: ModuleContext; seen: Set<string> };\n\nconst POINTER_CATEGORIES: Set<PrimitiveCategory> = new Set<PrimitiveCategory>([\"string\", \"pointer\"]);\n\nconst recordKey = (namespaceName: string, record: GirRecord): string => `${namespaceName}.${record.name}`;\n\nconst hasOwnCopySemantics = (record: GirRecord): boolean =>\n record.glibGetType !== undefined ||\n ((record.glibRefFunc ?? record.copyFunc) !== undefined && (record.glibUnrefFunc ?? record.freeFunc) !== undefined);\n\nconst isValueSafeArray = (scope: Scope, type: Extract<GirType, { kind: \"carray\" }>): boolean =>\n type.fixedSize !== undefined && isValueSafeRef(scope, type.element, type.elementCType);\n\nconst isValueSafeAlias = (scope: Scope, type: Extract<GirType, { kind: \"alias\" }>): boolean =>\n isValueSafeRef(scope, type.value.target, type.value.targetCType);\n\nfunction isValueSafeType(scope: Scope, type: GirType): boolean {\n switch (type.kind) {\n case \"primitive\": {\n return !POINTER_CATEGORIES.has(type.category);\n }\n case \"enum\": {\n return true;\n }\n case \"record\": {\n return isValueSafeRecord(scope, type.namespace.name, type.value);\n }\n case \"carray\": {\n return isValueSafeArray(scope, type);\n }\n case \"alias\": {\n return isValueSafeAlias(scope, type);\n }\n case \"callback\":\n case \"class\":\n case \"hashtable\":\n case \"interface\":\n case \"list\":\n case \"varargs\": {\n return false;\n }\n }\n}\n\nfunction isValueSafeRef(scope: Scope, ref: TypeId | undefined, cType: string | undefined): boolean {\n if (ref === undefined || cType?.endsWith(\"*\") === true) {\n return false;\n }\n\n const type = scope.context.library.typeFor(ref);\n\n return type === undefined ? false : isValueSafeType(scope, type);\n}\n\nconst isValueSafeField = (scope: Scope, field: GirField): boolean =>\n field.inlineMembers === undefined\n ? isValueSafeRef(scope, field.type, field.cType)\n : field.inlineMembers.every((member) => isValueSafeField(scope, member));\n\nfunction isValueSafeRecord(scope: Scope, namespaceName: string, record: GirRecord): boolean {\n const key = recordKey(namespaceName, record);\n\n if (scope.seen.has(key) || record.fields.length === 0) {\n return false;\n }\n\n scope.seen.add(key);\n const isSafe = record.fields.every((field) => isValueSafeField(scope, field));\n scope.seen.delete(key);\n\n return isSafe;\n}\n\nconst isValueMarshalable = (context: ModuleContext, namespaceName: string, record: GirRecord): boolean =>\n isValueSafeRecord({ context, seen: new Set<string>() }, namespaceName, record);\n\nconst isConstructibleRecord = (context: ModuleContext, namespaceName: string, record: GirRecord): boolean =>\n hasOwnCopySemantics(record) || isValueMarshalable(context, namespaceName, record);\n\nexport { hasOwnCopySemantics, isConstructibleRecord, isValueMarshalable };\n"]}
1
+ {"version":3,"file":"value-marshalable.js","sourceRoot":"","sources":["../../../src/store/gi/value-marshalable.ts"],"names":[],"mappings":"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","sourcesContent":["import type { GirField } from \"../../gir/field.js\";\nimport type { PrimitiveCategory } from \"../../gir/primitives.js\";\nimport type { GirRecord } from \"../../gir/record.js\";\nimport type { TypeId } from \"../../gir/type-id.js\";\nimport type { GirType } from \"../../gir/type.js\";\nimport type { ModuleContext } from \"../../writer/context.js\";\n\ntype Scope = { context: ModuleContext; seen: Set<string> };\n\nconst POINTER_CATEGORIES: Set<PrimitiveCategory> = new Set<PrimitiveCategory>([\"string\", \"pointer\"]);\n\nconst recordKey = (namespaceName: string, record: GirRecord): string => `${namespaceName}.${record.name}`;\n\nconst hasOwnCopySemantics = (record: GirRecord): boolean =>\n record.glibGetType !== undefined ||\n ((record.glibRefFunc ?? record.copyFunc) !== undefined && (record.glibUnrefFunc ?? record.freeFunc) !== undefined);\n\nconst isValueSafeArray = (scope: Scope, type: Extract<GirType, { kind: \"carray\" }>): boolean =>\n type.fixedSize !== undefined && isValueSafeRef(scope, type.element, type.elementCType);\n\nconst isValueSafeAlias = (scope: Scope, type: Extract<GirType, { kind: \"alias\" }>): boolean =>\n isValueSafeRef(scope, type.value.target, type.value.targetCType);\n\nfunction isValueSafeType(scope: Scope, type: GirType): boolean {\n switch (type.kind) {\n case \"primitive\": {\n return !POINTER_CATEGORIES.has(type.category);\n }\n case \"enum\": {\n return true;\n }\n case \"record\": {\n return isValueSafeRecord(scope, type.namespace.name, type.value);\n }\n case \"carray\": {\n return isValueSafeArray(scope, type);\n }\n case \"alias\": {\n return isValueSafeAlias(scope, type);\n }\n case \"callback\":\n case \"class\":\n case \"hashtable\":\n case \"interface\":\n case \"list\":\n case \"varargs\": {\n return false;\n }\n }\n}\n\nfunction isValueSafeRef(scope: Scope, ref: TypeId | undefined, cType: string | undefined): boolean {\n if (ref === undefined || cType?.endsWith(\"*\") === true) {\n return false;\n }\n\n const type = scope.context.library.typeFor(ref);\n\n return type === undefined ? false : isValueSafeType(scope, type);\n}\n\nconst isValueSafeField = (scope: Scope, field: GirField): boolean =>\n field.inlineMembers === undefined\n ? isValueSafeRef(scope, field.type, field.cType)\n : field.inlineMembers.every((member) => isValueSafeField(scope, member));\n\nfunction isValueSafeRecord(scope: Scope, namespaceName: string, record: GirRecord): boolean {\n const key = recordKey(namespaceName, record);\n\n if (scope.seen.has(key) || record.fields.length === 0) {\n return false;\n }\n\n scope.seen.add(key);\n const isSafe = record.fields.every((field) => isValueSafeField(scope, field));\n scope.seen.delete(key);\n\n return isSafe;\n}\n\nconst isValueMarshalable = (context: ModuleContext, namespaceName: string, record: GirRecord): boolean =>\n isValueSafeRecord({ context, seen: new Set<string>() }, namespaceName, record);\n\nconst isConstructibleRecord = (context: ModuleContext, namespaceName: string, record: GirRecord): boolean =>\n hasOwnCopySemantics(record) || isValueMarshalable(context, namespaceName, record);\n\nexport { isConstructibleRecord, isValueMarshalable };\n"]}
@@ -1,5 +1,20 @@
1
1
  import type { GirClass } from "../../gir/class.js";
2
2
  import type { ModuleContext } from "../../writer/context.js";
3
+ type VfuncMemberMode = "implementation" | "requirement" | "signature";
4
+ type VfuncMembersOptions = {
5
+ context: ModuleContext;
6
+ klass: GirClass;
7
+ mode: VfuncMemberMode;
8
+ };
9
+ type VfuncEntry = {
10
+ name: string;
11
+ signature: string;
12
+ doc: string | undefined;
13
+ };
14
+ declare const vfuncMemberNames: (context: ModuleContext, namespaceName: string, klass: GirClass) => string[];
3
15
  declare const renderVfuncMetadata: (context: ModuleContext, klass: GirClass) => string | undefined;
4
- export { renderVfuncMetadata };
16
+ declare const hasCallableVfuncSlots: (context: ModuleContext, namespaceName: string, klass: GirClass) => boolean;
17
+ declare const vfuncEntries: (context: ModuleContext, namespaceName: string, klass: GirClass) => VfuncEntry[];
18
+ declare const renderVfuncMembers: (options: VfuncMembersOptions) => string[];
19
+ export { hasCallableVfuncSlots, renderVfuncMembers, renderVfuncMetadata, vfuncEntries, vfuncMemberNames, type VfuncMemberMode, };
5
20
  //# sourceMappingURL=vtable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vtable.d.ts","sourceRoot":"","sources":["../../../src/store/gi/vtable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAsB7D,QAAA,MAAM,mBAAmB,GAAI,SAAS,aAAa,EAAE,OAAO,QAAQ,KAAG,MAAM,GAAG,SAc/E,CAAC;AAqIF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"vtable.d.ts","sourceRoot":"","sources":["../../../src/store/gi/vtable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,oBAAoB,CAAC;AAKrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAwB7D,KAAK,eAAe,GAAG,gBAAgB,GAAG,aAAa,GAAG,WAAW,CAAC;AAkBtE,KAAK,mBAAmB,GAAG;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC;CACzB,CAAC;AAOF,KAAK,UAAU,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAwJF,QAAA,MAAM,gBAAgB,GAAI,SAAS,aAAa,EAAE,eAAe,MAAM,EAAE,OAAO,QAAQ,KAAG,MAAM,EACZ,CAAC;AAEtF,QAAA,MAAM,mBAAmB,GAAI,SAAS,aAAa,EAAE,OAAO,QAAQ,KAAG,MAAM,GAAG,SAU/E,CAAC;AAgFF,QAAA,MAAM,qBAAqB,GAAI,SAAS,aAAa,EAAE,eAAe,MAAM,EAAE,OAAO,QAAQ,KAAG,OAChC,CAAC;AAsBjE,QAAA,MAAM,YAAY,GAAI,SAAS,aAAa,EAAE,eAAe,MAAM,EAAE,OAAO,QAAQ,KAAG,UAAU,EAK1F,CAAC;AAER,QAAA,MAAM,kBAAkB,GAAI,SAAS,mBAAmB,KAAG,MAAM,EAiBhE,CAAC;AAgHF,OAAO,EACH,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,KAAK,eAAe,GACvB,CAAC"}