@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
package/dist/gi-store.js DELETED
@@ -1,154 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync } from "node:fs";
2
- import { dirname, join, resolve } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { FINGERPRINT_FILENAME } from "./fingerprint.js";
5
- import { writeStore } from "./store-fs.js";
6
- import { transpileSource } from "./transpile.js";
7
- import { typecheckGiStore } from "./typecheck-store.js";
8
- /**
9
- * Absolute path to the hand-written augment overlay shipped with `@gtkx/codegen`.
10
- *
11
- * Resolves the same way whether codegen runs from `src/` (tsx) or `dist/`,
12
- * since `overlay/` sits at the package root next to both.
13
- */
14
- const OVERLAY_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..", "overlay");
15
- /** Returns the augment `.ts` files for a namespace, or `[]` when it is pure pass-through. */
16
- const overlayFiles = (directory) => {
17
- const dir = join(OVERLAY_ROOT, directory);
18
- if (!existsSync(dir))
19
- return [];
20
- return readdirSync(dir).filter((name) => name.endsWith(".ts") && name !== "index.ts");
21
- };
22
- const isAugmented = (directory) => existsSync(join(OVERLAY_ROOT, directory, "index.ts"));
23
- /**
24
- * Whether an augmented namespace's barrel re-exports a generated module (and so
25
- * may only be emitted when that namespace is generated), as opposed to a
26
- * standalone overlay like `gl` that has no GIR backing.
27
- */
28
- const barrelNeedsGenerated = (directory) => readFileSync(join(OVERLAY_ROOT, directory, "index.ts"), "utf8").includes("../generated/");
29
- /**
30
- * Retargets a barrel-template specifier from its source layout (under
31
- * `overlay/<ns>/`) to its emitted layout (under `gi/<ns>/`): the namespace's
32
- * own generated module becomes a sibling, augment files move under `augment/`,
33
- * and relative runtime modules collapse to the `@gtkx/ffi` barrel. The
34
- * `@gtkx/native` specifier passes through so low-level primitives resolve
35
- * straight to the native package.
36
- */
37
- const retargetBarrelSpecifier = (spec, directory) => {
38
- const generated = spec.match(/^\.\.\/generated\/[a-z0-9]+\/([a-z0-9]+)\.js$/);
39
- if (generated)
40
- return `./${generated[1]}.js`;
41
- if (spec.startsWith("../"))
42
- return "@gtkx/ffi";
43
- const sibling = spec.match(/^\.\/([a-z0-9-]+)\.js$/);
44
- if (sibling) {
45
- return existsSync(join(OVERLAY_ROOT, directory, `${sibling[1]}.ts`))
46
- ? `./augment/${sibling[1]}.js`
47
- : "@gtkx/ffi";
48
- }
49
- return spec;
50
- };
51
- const barrelSource = (directory) => {
52
- if (!isAugmented(directory)) {
53
- return `export * from "./${directory}.js";\n`;
54
- }
55
- const template = readFileSync(join(OVERLAY_ROOT, directory, "index.ts"), "utf8");
56
- return template.replace(/"([^"]+)"/g, (_match, spec) => `"${retargetBarrelSpecifier(spec, directory)}"`);
57
- };
58
- /**
59
- * Gathers the per-namespace generated module, augment overlay, and barrel
60
- * sources into a flat file list, building the package `exports` map alongside.
61
- */
62
- const collectStoreSources = (directories, standaloneSet, rawByDirectory) => {
63
- const exportsMap = { "./package.json": "./package.json" };
64
- const collected = [];
65
- for (const directory of directories) {
66
- const rawSource = standaloneSet.has(directory) ? null : (rawByDirectory.get(directory) ?? null);
67
- if (rawSource !== null) {
68
- collected.push({
69
- stem: `${directory}/${directory}`,
70
- fileName: `${directory}/${directory}.ts`,
71
- source: rawSource,
72
- overlay: false,
73
- });
74
- exportsMap[`./${directory}/${directory}.js`] = {
75
- types: `./${directory}/${directory}.d.ts`,
76
- default: `./${directory}/${directory}.js`,
77
- };
78
- }
79
- for (const file of overlayFiles(directory)) {
80
- collected.push({
81
- stem: `${directory}/augment/${file.slice(0, -".ts".length)}`,
82
- fileName: `${directory}/augment/${file}`,
83
- source: readFileSync(join(OVERLAY_ROOT, directory, file), "utf8"),
84
- overlay: true,
85
- });
86
- }
87
- collected.push({
88
- stem: `${directory}/index`,
89
- fileName: `${directory}/index.ts`,
90
- source: barrelSource(directory),
91
- overlay: false,
92
- });
93
- exportsMap[`./${directory}`] = {
94
- types: `./${directory}/index.d.ts`,
95
- default: `./${directory}/index.js`,
96
- };
97
- }
98
- return { collected, exportsMap };
99
- };
100
- /**
101
- * Assembles the self-contained injected `@gtkx/gi` package.
102
- *
103
- * Writes every namespace's raw generated module, its augment overlay, and its
104
- * barrel into a temporary store, emits the `package.json` and gi's own
105
- * `node_modules/@gtkx/{ffi,gi}` symlinks — the self-referential `@gtkx/gi` link
106
- * lets augment modules resolve sibling namespaces without relying on the
107
- * project's top-level alias — swaps it into place, and points the visible
108
- * `node_modules/@gtkx/gi` alias at it.
109
- *
110
- * @param options - Resolved store/link/dependency paths
111
- * @param namespaces - Per-namespace raw module inputs
112
- * @param fingerprint - Staleness sentinel written into the store, when provided
113
- */
114
- export const writeGiStore = (options, namespaces, fingerprint) => {
115
- const standaloneOverlays = readdirSync(OVERLAY_ROOT).filter((name) => isAugmented(name) && !barrelNeedsGenerated(name));
116
- const standaloneSet = new Set(standaloneOverlays);
117
- const directories = new Set([...namespaces.map((n) => n.directory), ...standaloneOverlays]);
118
- const rawByDirectory = new Map(namespaces.map((n) => [n.directory, n.rawSource]));
119
- const { collected, exportsMap } = collectStoreSources(directories, standaloneSet, rawByDirectory);
120
- writeStore({
121
- storeDir: options.storeDir,
122
- linkDir: options.linkDir,
123
- files: collected.map((file) => ({ stem: file.stem, fileName: file.fileName, source: file.source })),
124
- manifest: {
125
- name: "@gtkx/gi",
126
- type: "module",
127
- version: options.version,
128
- sideEffects: true,
129
- exports: exportsMap,
130
- },
131
- rawFiles: fingerprint === undefined
132
- ? []
133
- : [{ relativePath: FINGERPRINT_FILENAME, content: `${JSON.stringify(fingerprint, null, 2)}\n` }],
134
- symlinks: [
135
- { segments: ["node_modules", "@gtkx", "ffi"], target: options.realFfiDir },
136
- { segments: ["node_modules", "@gtkx", "native"], target: options.realNativeDir },
137
- { segments: ["node_modules", "@gtkx", "gi"], target: "self" },
138
- ],
139
- validate: (tmp) => {
140
- const sources = collected.map((file) => file.overlay
141
- ? { path: join(tmp, file.fileName), source: file.source, overlay: true }
142
- : {
143
- path: join(tmp, `${file.stem}.d.ts`),
144
- source: transpileSource(file.fileName, file.source).dts,
145
- overlay: false,
146
- });
147
- typecheckGiStore(tmp, sources, {
148
- ffiEntry: join(options.realFfiDir, "src", "index.ts"),
149
- nativeEntry: join(options.realNativeDir, "dist", "index.d.ts"),
150
- });
151
- },
152
- });
153
- };
154
- //# sourceMappingURL=gi-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gi-store.js","sourceRoot":"","sources":["../src/gi-store.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- import { type GirField } from "./field.js";
2
- import { type GirFunction } from "./function.js";
3
- import { type RawNode } from "./parse.js";
4
- /**
5
- * Discriminator for the different shapes a `<record>` (or `<glib:boxed>`)
6
- * can take in GIR.
7
- *
8
- * - `boxed` — a record with a `glib:get-type`; registers as a GObject boxed.
9
- * - `plain-struct` — a record without GType; passed by pointer using
10
- * `t.struct(ownership)`.
11
- * - `vtable` — a record carrying `glib:is-gtype-struct-for`; its fields are
12
- * function pointers consumed by the class struct registration.
13
- * - `glib-boxed` — a top-level `<glib:boxed>` element with no struct body.
14
- */
15
- export type BoxedKind = "boxed" | "plain-struct" | "vtable" | "glib-boxed";
16
- /** A `<record>`, `<glib:boxed>`, or `<union>` declaration. */
17
- export type GirBoxed = {
18
- readonly kind: BoxedKind;
19
- /** Local name inside the namespace (no prefix). */
20
- readonly name: string;
21
- readonly cType: string | undefined;
22
- /** GLib type name (e.g. `"GtkBorder"`); absent on plain structs. */
23
- readonly glibTypeName: string | undefined;
24
- /** GLib get-type C symbol; absent on plain structs. */
25
- readonly glibGetType: string | undefined;
26
- /** Class name this record is the vtable for (`glib:is-gtype-struct-for`). */
27
- readonly glibIsGTypeStructFor: string | undefined;
28
- /** GLib ref/unref/etc. function names on fundamentals. */
29
- readonly glibRefFunc: string | undefined;
30
- readonly glibUnrefFunc: string | undefined;
31
- readonly glibSetValueFunc: string | undefined;
32
- readonly glibGetValueFunc: string | undefined;
33
- /** `copy-function`/`free-function` — the ref/unref pair for records that are reference-counted rather than g_boxed-copyable. */
34
- readonly copyFunc: string | undefined;
35
- readonly freeFunc: string | undefined;
36
- /** `disguised="1"` — record has no introspectable fields. */
37
- readonly disguised: boolean;
38
- /** `opaque="1"` — record is opaque to callers. */
39
- readonly opaque: boolean;
40
- readonly introspectable: boolean;
41
- readonly fields: readonly GirField[];
42
- readonly methods: readonly GirFunction[];
43
- readonly constructors: readonly GirFunction[];
44
- readonly functions: readonly GirFunction[];
45
- /** `true` when the source element was `<union>` rather than `<record>`. */
46
- readonly isUnion: boolean;
47
- };
48
- /**
49
- * Builds a {@link GirBoxed} from a `<record>`, `<union>`, or `<glib:boxed>` element.
50
- *
51
- * @param node - The XML element
52
- * @param kind - The kind inferred from element name and attribute set
53
- * @param isUnion - `true` when the source element was `<union>`
54
- */
55
- export declare const boxedFromNode: (node: RawNode, kind: BoxedKind, isUnion: boolean) => GirBoxed;
56
- /**
57
- * Decides which {@link BoxedKind} applies to a `<record>` or `<union>` element.
58
- *
59
- * Vtable records (`glib:is-gtype-struct-for`) take precedence; otherwise a
60
- * `glib:get-type` flips the record to a registered boxed; otherwise it's a
61
- * plain struct.
62
- *
63
- * @param node - The `<record>` or `<union>` element
64
- */
65
- export declare const boxedKind: (node: RawNode) => BoxedKind;
66
- //# sourceMappingURL=boxed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boxed.d.ts","sourceRoot":"","sources":["../../src/gir/boxed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAmD,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3F;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,cAAc,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE3E,8DAA8D;AAC9D,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,6EAA6E;IAC7E,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,gIAAgI;IAChI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,OAAO,EAAE,MAAM,SAAS,EAAE,SAAS,OAAO,KAAG,QAqB/E,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,OAAO,KAAG,SAIzC,CAAC"}
package/dist/gir/boxed.js DELETED
@@ -1,49 +0,0 @@
1
- import { fieldFromNode } from "./field.js";
2
- import { functionFromNode } from "./function.js";
3
- import { attr, attrBool, childrenOf, GIR_CONSTRUCTOR_TAG } from "./parse.js";
4
- /**
5
- * Builds a {@link GirBoxed} from a `<record>`, `<union>`, or `<glib:boxed>` element.
6
- *
7
- * @param node - The XML element
8
- * @param kind - The kind inferred from element name and attribute set
9
- * @param isUnion - `true` when the source element was `<union>`
10
- */
11
- export const boxedFromNode = (node, kind, isUnion) => ({
12
- kind,
13
- name: attr(node, "name") ?? attr(node, "glib:name") ?? "",
14
- cType: attr(node, "c:type"),
15
- glibTypeName: attr(node, "glib:type-name"),
16
- glibGetType: attr(node, "glib:get-type"),
17
- glibIsGTypeStructFor: attr(node, "glib:is-gtype-struct-for"),
18
- glibRefFunc: attr(node, "glib:ref-func"),
19
- glibUnrefFunc: attr(node, "glib:unref-func"),
20
- glibSetValueFunc: attr(node, "glib:set-value-func"),
21
- glibGetValueFunc: attr(node, "glib:get-value-func"),
22
- copyFunc: attr(node, "copy-function"),
23
- freeFunc: attr(node, "free-function"),
24
- disguised: attrBool(node, "disguised"),
25
- opaque: attrBool(node, "opaque"),
26
- introspectable: attr(node, "introspectable") !== "0",
27
- fields: childrenOf(node, "field").map(fieldFromNode),
28
- methods: childrenOf(node, "method").map((method) => functionFromNode(method, "method")),
29
- constructors: childrenOf(node, GIR_CONSTRUCTOR_TAG).map((ctor) => functionFromNode(ctor, "constructor")),
30
- functions: childrenOf(node, "function").map((function_) => functionFromNode(function_, "function")),
31
- isUnion,
32
- });
33
- /**
34
- * Decides which {@link BoxedKind} applies to a `<record>` or `<union>` element.
35
- *
36
- * Vtable records (`glib:is-gtype-struct-for`) take precedence; otherwise a
37
- * `glib:get-type` flips the record to a registered boxed; otherwise it's a
38
- * plain struct.
39
- *
40
- * @param node - The `<record>` or `<union>` element
41
- */
42
- export const boxedKind = (node) => {
43
- if (attr(node, "glib:is-gtype-struct-for") !== undefined)
44
- return "vtable";
45
- if (attr(node, "glib:get-type") !== undefined)
46
- return "boxed";
47
- return "plain-struct";
48
- };
49
- //# sourceMappingURL=boxed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boxed.js","sourceRoot":"","sources":["../../src/gir/boxed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAgB,MAAM,YAAY,CAAC;AAgD3F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAa,EAAE,IAAe,EAAE,OAAgB,EAAY,EAAE,CAAC,CAAC;IAC1F,IAAI;IACJ,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;IACzD,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC3B,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAC1C,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;IACxC,oBAAoB,EAAE,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC5D,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;IACxC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAC5C,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACnD,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACnD,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;IACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;IACrC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IACtC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAChC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,GAAG;IACpD,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;IACpD,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvF,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxG,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACnG,OAAO;CACV,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAa,EAAE;IAClD,IAAI,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC1E,IAAI,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC9D,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import type { GirClass } from "./class.js";
2
- import type { GirRepository } from "./repository.js";
3
- /**
4
- * Splits a possibly cross-namespace GIR identifier (e.g. `"Gtk.Widget"`) into
5
- * its namespace and local name.
6
- *
7
- * Identifiers without a dot are resolved against `defaultNamespace`. This
8
- * mirrors the GIR convention where same-namespace references omit the
9
- * namespace prefix.
10
- *
11
- * @param qualified - The GIR identifier as it appears in `<type>` / `parent`
12
- * @param defaultNamespace - The namespace to assume when no prefix is present
13
- */
14
- export declare const splitQualifiedName: (qualified: string, defaultNamespace: string) => {
15
- readonly namespaceName: string;
16
- readonly typeName: string;
17
- };
18
- /**
19
- * A class or interface together with the namespace it was resolved through.
20
- */
21
- export type ResolvedQualifiedClass = {
22
- readonly klass: GirClass;
23
- readonly namespaceName: string;
24
- };
25
- /**
26
- * Resolves a possibly cross-namespace identifier to its `class` or `interface`
27
- * entry plus the namespace that declares it.
28
- *
29
- * Returns `undefined` when the identifier resolves to a different kind of GIR
30
- * entity (boxed, enum, …) or cannot be resolved at all.
31
- *
32
- * @param repository - The repository to query
33
- * @param qualified - The GIR identifier (e.g. `"Gtk.Widget"`)
34
- * @param defaultNamespace - Namespace to assume for unqualified identifiers
35
- */
36
- export declare const resolveQualifiedClass: (repository: GirRepository, qualified: string, defaultNamespace: string) => ResolvedQualifiedClass | undefined;
37
- //# sourceMappingURL=qualified-name.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qualified-name.d.ts","sourceRoot":"","sources":["../../src/gir/qualified-name.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAC3B,WAAW,MAAM,EACjB,kBAAkB,MAAM,KACzB;IAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAM7D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAC9B,YAAY,aAAa,EACzB,WAAW,MAAM,EACjB,kBAAkB,MAAM,KACzB,sBAAsB,GAAG,SAM3B,CAAC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Splits a possibly cross-namespace GIR identifier (e.g. `"Gtk.Widget"`) into
3
- * its namespace and local name.
4
- *
5
- * Identifiers without a dot are resolved against `defaultNamespace`. This
6
- * mirrors the GIR convention where same-namespace references omit the
7
- * namespace prefix.
8
- *
9
- * @param qualified - The GIR identifier as it appears in `<type>` / `parent`
10
- * @param defaultNamespace - The namespace to assume when no prefix is present
11
- */
12
- export const splitQualifiedName = (qualified, defaultNamespace) => {
13
- const dot = qualified.indexOf(".");
14
- if (dot === -1) {
15
- return { namespaceName: defaultNamespace, typeName: qualified };
16
- }
17
- return { namespaceName: qualified.slice(0, dot), typeName: qualified.slice(dot + 1) };
18
- };
19
- /**
20
- * Resolves a possibly cross-namespace identifier to its `class` or `interface`
21
- * entry plus the namespace that declares it.
22
- *
23
- * Returns `undefined` when the identifier resolves to a different kind of GIR
24
- * entity (boxed, enum, …) or cannot be resolved at all.
25
- *
26
- * @param repository - The repository to query
27
- * @param qualified - The GIR identifier (e.g. `"Gtk.Widget"`)
28
- * @param defaultNamespace - Namespace to assume for unqualified identifiers
29
- */
30
- export const resolveQualifiedClass = (repository, qualified, defaultNamespace) => {
31
- const { namespaceName, typeName } = splitQualifiedName(qualified, defaultNamespace);
32
- const resolved = repository.resolveNamed(namespaceName, typeName);
33
- if (resolved === undefined)
34
- return undefined;
35
- if (resolved.kind !== "class" && resolved.kind !== "interface")
36
- return undefined;
37
- return { klass: resolved.value, namespaceName: resolved.namespace.name };
38
- };
39
- //# sourceMappingURL=qualified-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qualified-name.js","sourceRoot":"","sources":["../../src/gir/qualified-name.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAC9B,SAAiB,EACjB,gBAAwB,EACqC,EAAE;IAC/D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AAC1F,CAAC,CAAC;AAUF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,UAAyB,EACzB,SAAiB,EACjB,gBAAwB,EACU,EAAE;IACpC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACjF,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAC7E,CAAC,CAAC"}
@@ -1,32 +0,0 @@
1
- import type { GirFunction } from "./function.js";
2
- import type { GirTypeRef } from "./type-ref.js";
3
- /**
4
- * Stamps a default namespace onto an unqualified `named` reference and
5
- * recurses into composite (`array`, `list`, `hashtable`) references.
6
- *
7
- * GIR omits the namespace when a reference points to a sibling in the same
8
- * file. When writers walk a class hierarchy across namespaces, the parent's
9
- * references must be qualified with the parent's namespace before they can be
10
- * resolved against the repository.
11
- *
12
- * Returns `undefined` for an `undefined` input so callers can pass through
13
- * void return types unchanged.
14
- *
15
- * @param ref - The reference to qualify, or `undefined`
16
- * @param defaultNamespace - The namespace to stamp on unqualified refs
17
- */
18
- export declare const qualifyTypeRef: (ref: GirTypeRef | undefined, defaultNamespace: string) => GirTypeRef | undefined;
19
- /**
20
- * Re-roots every type reference of a callable to `defaultNamespace`.
21
- *
22
- * Interface methods are flattened onto each implementing class, but their
23
- * GIR type references are unqualified relative to the interface's own
24
- * namespace. Stamping the interface namespace onto the instance parameter,
25
- * each regular parameter, and the return value lets the class writer resolve
26
- * and import those references as if the method had been authored on the class.
27
- *
28
- * @param fn - The callable whose references to qualify
29
- * @param defaultNamespace - The namespace the callable's references belong to
30
- */
31
- export declare const qualifyFunction: (fn: GirFunction, defaultNamespace: string) => GirFunction;
32
- //# sourceMappingURL=qualify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qualify.d.ts","sourceRoot":"","sources":["../../src/gir/qualify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,UAAU,GAAG,SAAS,EAAE,kBAAkB,MAAM,KAAG,UAAU,GAAG,SAoBnG,CAAC;AAOF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAAI,IAAI,WAAW,EAAE,kBAAkB,MAAM,KAAG,WAK1E,CAAC"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Stamps a default namespace onto an unqualified `named` reference and
3
- * recurses into composite (`array`, `list`, `hashtable`) references.
4
- *
5
- * GIR omits the namespace when a reference points to a sibling in the same
6
- * file. When writers walk a class hierarchy across namespaces, the parent's
7
- * references must be qualified with the parent's namespace before they can be
8
- * resolved against the repository.
9
- *
10
- * Returns `undefined` for an `undefined` input so callers can pass through
11
- * void return types unchanged.
12
- *
13
- * @param ref - The reference to qualify, or `undefined`
14
- * @param defaultNamespace - The namespace to stamp on unqualified refs
15
- */
16
- export const qualifyTypeRef = (ref, defaultNamespace) => {
17
- if (ref === undefined)
18
- return undefined;
19
- switch (ref.kind) {
20
- case "named":
21
- return { ...ref, namespaceName: ref.namespaceName ?? defaultNamespace };
22
- case "array":
23
- return { ...ref, element: qualifyTypeRef(ref.element, defaultNamespace) ?? ref.element };
24
- case "list":
25
- return { ...ref, element: qualifyTypeRef(ref.element, defaultNamespace) ?? ref.element };
26
- case "hashtable":
27
- return {
28
- ...ref,
29
- key: qualifyTypeRef(ref.key, defaultNamespace) ?? ref.key,
30
- value: qualifyTypeRef(ref.value, defaultNamespace) ?? ref.value,
31
- };
32
- case "primitive":
33
- case "callback":
34
- case "varargs":
35
- return ref;
36
- }
37
- };
38
- const qualifyParameter = (parameter, defaultNamespace) => ({
39
- ...parameter,
40
- type: qualifyTypeRef(parameter.type, defaultNamespace),
41
- });
42
- /**
43
- * Re-roots every type reference of a callable to `defaultNamespace`.
44
- *
45
- * Interface methods are flattened onto each implementing class, but their
46
- * GIR type references are unqualified relative to the interface's own
47
- * namespace. Stamping the interface namespace onto the instance parameter,
48
- * each regular parameter, and the return value lets the class writer resolve
49
- * and import those references as if the method had been authored on the class.
50
- *
51
- * @param fn - The callable whose references to qualify
52
- * @param defaultNamespace - The namespace the callable's references belong to
53
- */
54
- export const qualifyFunction = (fn, defaultNamespace) => ({
55
- ...fn,
56
- instance: fn.instance === undefined ? undefined : qualifyParameter(fn.instance, defaultNamespace),
57
- parameters: fn.parameters.map((parameter) => qualifyParameter(parameter, defaultNamespace)),
58
- returnValue: { ...fn.returnValue, type: qualifyTypeRef(fn.returnValue.type, defaultNamespace) },
59
- });
60
- //# sourceMappingURL=qualify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qualify.js","sourceRoot":"","sources":["../../src/gir/qualify.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAA2B,EAAE,gBAAwB,EAA0B,EAAE;IAC5G,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,OAAO;YACR,OAAO,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,gBAAgB,EAAE,CAAC;QAC5E,KAAK,OAAO;YACR,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7F,KAAK,MAAM;YACP,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7F,KAAK,WAAW;YACZ,OAAO;gBACH,GAAG,GAAG;gBACN,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,GAAG,CAAC,GAAG;gBACzD,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,GAAG,CAAC,KAAK;aAClE,CAAC;QACN,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACV,OAAO,GAAG,CAAC;IACnB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,SAAuB,EAAE,gBAAwB,EAAgB,EAAE,CAAC,CAAC;IAC3F,GAAG,SAAS;IACZ,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,CAAC;CACzD,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAe,EAAE,gBAAwB,EAAe,EAAE,CAAC,CAAC;IACxF,GAAG,EAAE;IACL,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACjG,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC3F,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;CAClG,CAAC,CAAC"}
@@ -1,82 +0,0 @@
1
- import type { GirBoxed } from "./boxed.js";
2
- import type { GirCallback } from "./callback.js";
3
- import type { GirClass } from "./class.js";
4
- import type { GirEnum } from "./enum.js";
5
- import { type GirNamespace } from "./namespace.js";
6
- import type { GirTypeRef } from "./type-ref.js";
7
- /**
8
- * Resolved entity that a {@link GirRepository.resolveNamed} call returns.
9
- *
10
- * Wraps the matching entity along with the namespace it lives in, so
11
- * writers can pull the namespace identifier or shared library name without
12
- * a second lookup.
13
- */
14
- export type ResolvedNamed = {
15
- readonly kind: "class";
16
- readonly namespace: GirNamespace;
17
- readonly value: GirClass;
18
- } | {
19
- readonly kind: "interface";
20
- readonly namespace: GirNamespace;
21
- readonly value: GirClass;
22
- } | {
23
- readonly kind: "boxed";
24
- readonly namespace: GirNamespace;
25
- readonly value: GirBoxed;
26
- } | {
27
- readonly kind: "enum";
28
- readonly namespace: GirNamespace;
29
- readonly value: GirEnum;
30
- } | {
31
- readonly kind: "callback";
32
- readonly namespace: GirNamespace;
33
- readonly value: GirCallback;
34
- } | {
35
- readonly kind: "alias";
36
- readonly namespace: GirNamespace;
37
- readonly target: string | undefined;
38
- readonly targetRef: GirTypeRef | undefined;
39
- };
40
- /**
41
- * In-memory database of every loaded GIR namespace, indexed by name.
42
- *
43
- * Construct via {@link loadGirRepository}; the public API after that is the
44
- * `namespaces` map and {@link resolveNamed} for cross-namespace lookups.
45
- */
46
- export declare class GirRepository {
47
- /** Namespaces keyed by their unqualified name (e.g. `"Gtk"`, `"GLib"`). */
48
- readonly namespaces: ReadonlyMap<string, GirNamespace>;
49
- /** Absolute paths of every `.gir` file loaded, for staleness fingerprinting. */
50
- readonly girFiles: readonly string[];
51
- private readonly entityIndex;
52
- /**
53
- * Constructs a repository from the supplied namespace map.
54
- *
55
- * Callers should prefer {@link loadGirRepository} which discovers and
56
- * parses files for you.
57
- *
58
- * @param namespaces - Namespaces keyed by unqualified name
59
- * @param girFiles - Absolute paths of the `.gir` files the namespaces came from
60
- */
61
- constructor(namespaces: ReadonlyMap<string, GirNamespace>, girFiles?: readonly string[]);
62
- /**
63
- * Looks up a type by `(namespace, name)`. Aliases are followed one step
64
- * to their target. Returns `undefined` when neither the namespace nor a
65
- * matching entity exists.
66
- *
67
- * @param namespaceName - Namespace to look in (e.g. `"GLib"`)
68
- * @param typeName - Local type name within the namespace (e.g. `"Variant"`)
69
- */
70
- resolveNamed(namespaceName: string, typeName: string): ResolvedNamed | undefined;
71
- }
72
- /**
73
- * Discovers and parses every GIR file needed to satisfy `libraries` and
74
- * their transitive `<include>` dependencies.
75
- *
76
- * @param libraries - Resolved `Name-Version` namespace identifiers
77
- * @param girPath - Ordered list of directories to search for `.gir` files
78
- * @returns A populated {@link GirRepository}
79
- * @throws If any required GIR file cannot be located on `girPath`
80
- */
81
- export declare const loadGirRepository: (libraries: readonly string[], girPath: readonly string[]) => GirRepository;
82
- //# sourceMappingURL=repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/gir/repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GAC1F;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpF;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAC5F;IACI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC;CAC9C,CAAC;AAER;;;;;GAKG;AACH,qBAAa,aAAa;IACtB,2EAA2E;IAC3E,SAAgB,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9D,gFAAgF;IAChF,SAAgB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD;;;;;;;;OAQG;gBACS,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,QAAQ,GAAE,SAAS,MAAM,EAAO;IAS3F;;;;;;;OAOG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;CAMnF;AA+BD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,SAAS,MAAM,EAAE,EAAE,SAAS,SAAS,MAAM,EAAE,KAAG,aAuB5F,CAAC"}