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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. package/README.md +22 -0
  2. package/lib/conflict-resolver.d.ts +155 -0
  3. package/lib/conflict-resolver.js +1103 -0
  4. package/lib/conflict-resolver.js.map +1 -0
  5. package/lib/constants.d.ts +18 -0
  6. package/lib/constants.js +23 -0
  7. package/lib/constants.js.map +1 -0
  8. package/lib/dependency-manager.d.ts +34 -0
  9. package/lib/dependency-manager.js +78 -0
  10. package/lib/dependency-manager.js.map +1 -0
  11. package/lib/gir-factory.d.ts +52 -0
  12. package/lib/gir-factory.js +376 -0
  13. package/lib/gir-factory.js.map +1 -0
  14. package/lib/gir-module.d.ts +259 -0
  15. package/lib/gir-module.js +2181 -0
  16. package/lib/gir-module.js.map +1 -0
  17. package/lib/index.d.ts +14 -0
  18. package/lib/index.js +15 -0
  19. package/lib/index.js.map +1 -0
  20. package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +2 -0
  21. package/lib/injection/callbacks/gjs/Gio-2.0.js +36 -0
  22. package/lib/injection/callbacks/gjs/Gio-2.0.js.map +1 -0
  23. package/lib/injection/callbacks/gjs/index.d.ts +2 -0
  24. package/lib/injection/callbacks/gjs/index.js +3 -0
  25. package/lib/injection/callbacks/gjs/index.js.map +1 -0
  26. package/lib/injection/callbacks/index.d.ts +4 -0
  27. package/lib/injection/callbacks/index.js +4 -0
  28. package/lib/injection/callbacks/index.js.map +1 -0
  29. package/lib/injection/callbacks/node-gtk/index.d.ts +2 -0
  30. package/lib/injection/callbacks/node-gtk/index.js +2 -0
  31. package/lib/injection/callbacks/node-gtk/index.js.map +1 -0
  32. package/lib/injection/classes/GLib-2-0.d.ts +2 -0
  33. package/lib/injection/classes/GLib-2-0.js +35 -0
  34. package/lib/injection/classes/GLib-2-0.js.map +1 -0
  35. package/lib/injection/classes/gjs/GLib-2.0.d.ts +2 -0
  36. package/lib/injection/classes/gjs/GLib-2.0.js +205 -0
  37. package/lib/injection/classes/gjs/GLib-2.0.js.map +1 -0
  38. package/lib/injection/classes/gjs/GObject-2.0.d.ts +2 -0
  39. package/lib/injection/classes/gjs/GObject-2.0.js +634 -0
  40. package/lib/injection/classes/gjs/GObject-2.0.js.map +1 -0
  41. package/lib/injection/classes/gjs/Gio-2.0.d.ts +5 -0
  42. package/lib/injection/classes/gjs/Gio-2.0.js +218 -0
  43. package/lib/injection/classes/gjs/Gio-2.0.js.map +1 -0
  44. package/lib/injection/classes/gjs/index.d.ts +2 -0
  45. package/lib/injection/classes/gjs/index.js +5 -0
  46. package/lib/injection/classes/gjs/index.js.map +1 -0
  47. package/lib/injection/classes/index.d.ts +4 -0
  48. package/lib/injection/classes/index.js +5 -0
  49. package/lib/injection/classes/index.js.map +1 -0
  50. package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +2 -0
  51. package/lib/injection/classes/node-gtk/GLib-2.0.js +19 -0
  52. package/lib/injection/classes/node-gtk/GLib-2.0.js.map +1 -0
  53. package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +2 -0
  54. package/lib/injection/classes/node-gtk/GObject-2.0.js +66 -0
  55. package/lib/injection/classes/node-gtk/GObject-2.0.js.map +1 -0
  56. package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +2 -0
  57. package/lib/injection/classes/node-gtk/Gdk-4.0.js +32 -0
  58. package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +1 -0
  59. package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +2 -0
  60. package/lib/injection/classes/node-gtk/Gio-2.0.js +14 -0
  61. package/lib/injection/classes/node-gtk/Gio-2.0.js.map +1 -0
  62. package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +2 -0
  63. package/lib/injection/classes/node-gtk/Graphene-1.0.js +133 -0
  64. package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +1 -0
  65. package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +2 -0
  66. package/lib/injection/classes/node-gtk/Gtk-3.0.js +31 -0
  67. package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +1 -0
  68. package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +2 -0
  69. package/lib/injection/classes/node-gtk/Gtk-4.0.js +52 -0
  70. package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +1 -0
  71. package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +2 -0
  72. package/lib/injection/classes/node-gtk/Pango-1.0.js +31 -0
  73. package/lib/injection/classes/node-gtk/Pango-1.0.js.map +1 -0
  74. package/lib/injection/classes/node-gtk/index.d.ts +2 -0
  75. package/lib/injection/classes/node-gtk/index.js +19 -0
  76. package/lib/injection/classes/node-gtk/index.js.map +1 -0
  77. package/lib/injection/index.d.ts +3 -0
  78. package/lib/injection/index.js +4 -0
  79. package/lib/injection/index.js.map +1 -0
  80. package/lib/injection/injector.d.ts +17 -0
  81. package/lib/injection/injector.js +139 -0
  82. package/lib/injection/injector.js.map +1 -0
  83. package/lib/logger.d.ts +36 -0
  84. package/lib/logger.js +137 -0
  85. package/lib/logger.js.map +1 -0
  86. package/lib/messages.d.ts +31 -0
  87. package/lib/messages.js +46 -0
  88. package/lib/messages.js.map +1 -0
  89. package/lib/symtable.d.ts +24 -0
  90. package/lib/symtable.js +63 -0
  91. package/lib/symtable.js.map +1 -0
  92. package/lib/template-processor.d.ts +74 -0
  93. package/lib/template-processor.js +165 -0
  94. package/lib/template-processor.js.map +1 -0
  95. package/lib/transformation.d.ts +156 -0
  96. package/lib/transformation.js +524 -0
  97. package/lib/transformation.js.map +1 -0
  98. package/lib/types/answer-version.d.ts +4 -0
  99. package/lib/types/answer-version.js +2 -0
  100. package/lib/types/answer-version.js.map +1 -0
  101. package/lib/types/build-type.d.ts +1 -0
  102. package/lib/types/build-type.js +2 -0
  103. package/lib/types/build-type.js.map +1 -0
  104. package/lib/types/class-parent.d.ts +13 -0
  105. package/lib/types/class-parent.js +2 -0
  106. package/lib/types/class-parent.js.map +1 -0
  107. package/lib/types/config-flags.d.ts +4 -0
  108. package/lib/types/config-flags.js +2 -0
  109. package/lib/types/config-flags.js.map +1 -0
  110. package/lib/types/conflict-child-element.d.ts +10 -0
  111. package/lib/types/conflict-child-element.js +2 -0
  112. package/lib/types/conflict-child-element.js.map +1 -0
  113. package/lib/types/conflict-grouped-element.d.ts +6 -0
  114. package/lib/types/conflict-grouped-element.js +2 -0
  115. package/lib/types/conflict-grouped-element.js.map +1 -0
  116. package/lib/types/conflict-grouped-elements.d.ts +4 -0
  117. package/lib/types/conflict-grouped-elements.js +2 -0
  118. package/lib/types/conflict-grouped-elements.js.map +1 -0
  119. package/lib/types/construct-name.d.ts +1 -0
  120. package/lib/types/construct-name.js +2 -0
  121. package/lib/types/construct-name.js.map +1 -0
  122. package/lib/types/dependency-map.d.ts +4 -0
  123. package/lib/types/dependency-map.js +2 -0
  124. package/lib/types/dependency-map.js.map +1 -0
  125. package/lib/types/dependency.d.ts +15 -0
  126. package/lib/types/dependency.js +2 -0
  127. package/lib/types/dependency.js.map +1 -0
  128. package/lib/types/environment.d.ts +1 -0
  129. package/lib/types/environment.js +2 -0
  130. package/lib/types/environment.js.map +1 -0
  131. package/lib/types/file-info.d.ts +14 -0
  132. package/lib/types/file-info.js +2 -0
  133. package/lib/types/file-info.js.map +1 -0
  134. package/lib/types/generate-config.d.ts +34 -0
  135. package/lib/types/generate-config.js +2 -0
  136. package/lib/types/generate-config.js.map +1 -0
  137. package/lib/types/gir-alias-element.d.ts +13 -0
  138. package/lib/types/gir-alias-element.js +2 -0
  139. package/lib/types/gir-alias-element.js.map +1 -0
  140. package/lib/types/gir-annotation.d.ts +9 -0
  141. package/lib/types/gir-annotation.js +2 -0
  142. package/lib/types/gir-annotation.js.map +1 -0
  143. package/lib/types/gir-any-element.d.ts +2 -0
  144. package/lib/types/gir-any-element.js +2 -0
  145. package/lib/types/gir-any-element.js.map +1 -0
  146. package/lib/types/gir-any-type.d.ts +5 -0
  147. package/lib/types/gir-any-type.js +2 -0
  148. package/lib/types/gir-any-type.js.map +1 -0
  149. package/lib/types/gir-array-type.d.ts +20 -0
  150. package/lib/types/gir-array-type.js +3 -0
  151. package/lib/types/gir-array-type.js.map +1 -0
  152. package/lib/types/gir-bitfield-element.d.ts +17 -0
  153. package/lib/types/gir-bitfield-element.js +2 -0
  154. package/lib/types/gir-bitfield-element.js.map +1 -0
  155. package/lib/types/gir-boolean.d.ts +1 -0
  156. package/lib/types/gir-boolean.js +2 -0
  157. package/lib/types/gir-boolean.js.map +1 -0
  158. package/lib/types/gir-boxed-element.d.ts +15 -0
  159. package/lib/types/gir-boxed-element.js +2 -0
  160. package/lib/types/gir-boxed-element.js.map +1 -0
  161. package/lib/types/gir-c-include.d.ts +7 -0
  162. package/lib/types/gir-c-include.js +2 -0
  163. package/lib/types/gir-c-include.js.map +1 -0
  164. package/lib/types/gir-callable-attrs.d.ts +15 -0
  165. package/lib/types/gir-callable-attrs.js +3 -0
  166. package/lib/types/gir-callable-attrs.js.map +1 -0
  167. package/lib/types/gir-callable-param-element.d.ts +30 -0
  168. package/lib/types/gir-callable-param-element.js +2 -0
  169. package/lib/types/gir-callable-param-element.js.map +1 -0
  170. package/lib/types/gir-callable-param.d.ts +7 -0
  171. package/lib/types/gir-callable-param.js +2 -0
  172. package/lib/types/gir-callable-param.js.map +1 -0
  173. package/lib/types/gir-callable-return.d.ts +22 -0
  174. package/lib/types/gir-callable-return.js +2 -0
  175. package/lib/types/gir-callable-return.js.map +1 -0
  176. package/lib/types/gir-callback-element.d.ts +15 -0
  177. package/lib/types/gir-callback-element.js +2 -0
  178. package/lib/types/gir-callback-element.js.map +1 -0
  179. package/lib/types/gir-class-element.d.ts +48 -0
  180. package/lib/types/gir-class-element.js +2 -0
  181. package/lib/types/gir-class-element.js.map +1 -0
  182. package/lib/types/gir-constant-element.d.ts +15 -0
  183. package/lib/types/gir-constant-element.js +2 -0
  184. package/lib/types/gir-constant-element.js.map +1 -0
  185. package/lib/types/gir-constructor-element.d.ts +8 -0
  186. package/lib/types/gir-constructor-element.js +2 -0
  187. package/lib/types/gir-constructor-element.js.map +1 -0
  188. package/lib/types/gir-direction.d.ts +5 -0
  189. package/lib/types/gir-direction.js +7 -0
  190. package/lib/types/gir-direction.js.map +1 -0
  191. package/lib/types/gir-doc-element.d.ts +68 -0
  192. package/lib/types/gir-doc-element.js +2 -0
  193. package/lib/types/gir-doc-element.js.map +1 -0
  194. package/lib/types/gir-enum-element.d.ts +19 -0
  195. package/lib/types/gir-enum-element.js +2 -0
  196. package/lib/types/gir-enum-element.js.map +1 -0
  197. package/lib/types/gir-field-element.d.ts +18 -0
  198. package/lib/types/gir-field-element.js +2 -0
  199. package/lib/types/gir-field-element.js.map +1 -0
  200. package/lib/types/gir-function-element.d.ts +8 -0
  201. package/lib/types/gir-function-element.js +2 -0
  202. package/lib/types/gir-function-element.js.map +1 -0
  203. package/lib/types/gir-implements.d.ts +8 -0
  204. package/lib/types/gir-implements.js +2 -0
  205. package/lib/types/gir-implements.js.map +1 -0
  206. package/lib/types/gir-include.d.ts +9 -0
  207. package/lib/types/gir-include.js +2 -0
  208. package/lib/types/gir-include.js.map +1 -0
  209. package/lib/types/gir-info-attrs.d.ts +13 -0
  210. package/lib/types/gir-info-attrs.js +2 -0
  211. package/lib/types/gir-info-attrs.js.map +1 -0
  212. package/lib/types/gir-info-elements.d.ts +5 -0
  213. package/lib/types/gir-info-elements.js +2 -0
  214. package/lib/types/gir-info-elements.js.map +1 -0
  215. package/lib/types/gir-instance-parameter.d.ts +21 -0
  216. package/lib/types/gir-instance-parameter.js +2 -0
  217. package/lib/types/gir-instance-parameter.js.map +1 -0
  218. package/lib/types/gir-interface-element.d.ts +31 -0
  219. package/lib/types/gir-interface-element.js +2 -0
  220. package/lib/types/gir-interface-element.js.map +1 -0
  221. package/lib/types/gir-member-element.d.ts +17 -0
  222. package/lib/types/gir-member-element.js +2 -0
  223. package/lib/types/gir-member-element.js.map +1 -0
  224. package/lib/types/gir-method-element.d.ts +13 -0
  225. package/lib/types/gir-method-element.js +2 -0
  226. package/lib/types/gir-method-element.js.map +1 -0
  227. package/lib/types/gir-module-resolved-by.d.ts +10 -0
  228. package/lib/types/gir-module-resolved-by.js +2 -0
  229. package/lib/types/gir-module-resolved-by.js.map +1 -0
  230. package/lib/types/gir-modules-grouped-map.d.ts +4 -0
  231. package/lib/types/gir-modules-grouped-map.js +2 -0
  232. package/lib/types/gir-modules-grouped-map.js.map +1 -0
  233. package/lib/types/gir-modules-grouped.d.ts +12 -0
  234. package/lib/types/gir-modules-grouped.js +2 -0
  235. package/lib/types/gir-modules-grouped.js.map +1 -0
  236. package/lib/types/gir-namespace.d.ts +30 -0
  237. package/lib/types/gir-namespace.js +2 -0
  238. package/lib/types/gir-namespace.js.map +1 -0
  239. package/lib/types/gir-package.d.ts +7 -0
  240. package/lib/types/gir-package.js +2 -0
  241. package/lib/types/gir-package.js.map +1 -0
  242. package/lib/types/gir-prerequisite.d.ts +5 -0
  243. package/lib/types/gir-prerequisite.js +2 -0
  244. package/lib/types/gir-prerequisite.js.map +1 -0
  245. package/lib/types/gir-property-element.d.ts +21 -0
  246. package/lib/types/gir-property-element.js +2 -0
  247. package/lib/types/gir-property-element.js.map +1 -0
  248. package/lib/types/gir-record-element.d.ts +30 -0
  249. package/lib/types/gir-record-element.js +2 -0
  250. package/lib/types/gir-record-element.js.map +1 -0
  251. package/lib/types/gir-repository.d.ts +16 -0
  252. package/lib/types/gir-repository.js +2 -0
  253. package/lib/types/gir-repository.js.map +1 -0
  254. package/lib/types/gir-signal.d.ts +25 -0
  255. package/lib/types/gir-signal.js +2 -0
  256. package/lib/types/gir-signal.js.map +1 -0
  257. package/lib/types/gir-transfer-ownership-type.d.ts +5 -0
  258. package/lib/types/gir-transfer-ownership-type.js +7 -0
  259. package/lib/types/gir-transfer-ownership-type.js.map +1 -0
  260. package/lib/types/gir-transfer-ownership.d.ts +5 -0
  261. package/lib/types/gir-transfer-ownership.js +2 -0
  262. package/lib/types/gir-transfer-ownership.js.map +1 -0
  263. package/lib/types/gir-type.d.ts +14 -0
  264. package/lib/types/gir-type.js +2 -0
  265. package/lib/types/gir-type.js.map +1 -0
  266. package/lib/types/gir-union-element.d.ts +22 -0
  267. package/lib/types/gir-union-element.js +2 -0
  268. package/lib/types/gir-union-element.js.map +1 -0
  269. package/lib/types/gir-unparsed-number.d.ts +2 -0
  270. package/lib/types/gir-unparsed-number.js +2 -0
  271. package/lib/types/gir-unparsed-number.js.map +1 -0
  272. package/lib/types/gir-var-args.d.ts +5 -0
  273. package/lib/types/gir-var-args.js +2 -0
  274. package/lib/types/gir-var-args.js.map +1 -0
  275. package/lib/types/gir-virtual-method.d.ts +10 -0
  276. package/lib/types/gir-virtual-method.js +2 -0
  277. package/lib/types/gir-virtual-method.js.map +1 -0
  278. package/lib/types/index.d.ts +119 -0
  279. package/lib/types/index.js +120 -0
  280. package/lib/types/index.js.map +1 -0
  281. package/lib/types/inheritance-table.d.ts +3 -0
  282. package/lib/types/inheritance-table.js +2 -0
  283. package/lib/types/inheritance-table.js.map +1 -0
  284. package/lib/types/injection-callback.d.ts +16 -0
  285. package/lib/types/injection-callback.js +2 -0
  286. package/lib/types/injection-callback.js.map +1 -0
  287. package/lib/types/injection-class.d.ts +25 -0
  288. package/lib/types/injection-class.js +2 -0
  289. package/lib/types/injection-class.js.map +1 -0
  290. package/lib/types/injection-function.d.ts +7 -0
  291. package/lib/types/injection-function.js +2 -0
  292. package/lib/types/injection-function.js.map +1 -0
  293. package/lib/types/injection-generic-parameter.d.ts +2 -0
  294. package/lib/types/injection-generic-parameter.js +2 -0
  295. package/lib/types/injection-generic-parameter.js.map +1 -0
  296. package/lib/types/injection-instance-parameter.d.ts +2 -0
  297. package/lib/types/injection-instance-parameter.js +2 -0
  298. package/lib/types/injection-instance-parameter.js.map +1 -0
  299. package/lib/types/injection-parameter.d.ts +8 -0
  300. package/lib/types/injection-parameter.js +2 -0
  301. package/lib/types/injection-parameter.js.map +1 -0
  302. package/lib/types/injection-property.d.ts +4 -0
  303. package/lib/types/injection-property.js +2 -0
  304. package/lib/types/injection-property.js.map +1 -0
  305. package/lib/types/injection-type.d.ts +2 -0
  306. package/lib/types/injection-type.js +2 -0
  307. package/lib/types/injection-type.js.map +1 -0
  308. package/lib/types/injection.d.ts +5 -0
  309. package/lib/types/injection.js +2 -0
  310. package/lib/types/injection.js.map +1 -0
  311. package/lib/types/local-name-check.d.ts +4 -0
  312. package/lib/types/local-name-check.js +2 -0
  313. package/lib/types/local-name-check.js.map +1 -0
  314. package/lib/types/local-name-type.d.ts +1 -0
  315. package/lib/types/local-name-type.js +2 -0
  316. package/lib/types/local-name-type.js.map +1 -0
  317. package/lib/types/local-name.d.ts +7 -0
  318. package/lib/types/local-name.js +2 -0
  319. package/lib/types/local-name.js.map +1 -0
  320. package/lib/types/local-names.d.ts +4 -0
  321. package/lib/types/local-names.js +2 -0
  322. package/lib/types/local-names.js.map +1 -0
  323. package/lib/types/module-type.d.ts +1 -0
  324. package/lib/types/module-type.js +2 -0
  325. package/lib/types/module-type.js.map +1 -0
  326. package/lib/types/parsed-gir.d.ts +4 -0
  327. package/lib/types/parsed-gir.js +2 -0
  328. package/lib/types/parsed-gir.js.map +1 -0
  329. package/lib/types/part-of-class.d.ts +7 -0
  330. package/lib/types/part-of-class.js +2 -0
  331. package/lib/types/part-of-class.js.map +1 -0
  332. package/lib/types/part-of-module.d.ts +6 -0
  333. package/lib/types/part-of-module.js +2 -0
  334. package/lib/types/part-of-module.js.map +1 -0
  335. package/lib/types/promisify-func.d.ts +7 -0
  336. package/lib/types/promisify-func.js +2 -0
  337. package/lib/types/promisify-func.js.map +1 -0
  338. package/lib/types/resolve-type.d.ts +4 -0
  339. package/lib/types/resolve-type.js +6 -0
  340. package/lib/types/resolve-type.js.map +1 -0
  341. package/lib/types/sym-table-items.d.ts +4 -0
  342. package/lib/types/sym-table-items.js +2 -0
  343. package/lib/types/sym-table-items.js.map +1 -0
  344. package/lib/types/transformation-case.d.ts +1 -0
  345. package/lib/types/transformation-case.js +2 -0
  346. package/lib/types/transformation-case.js.map +1 -0
  347. package/lib/types/transformations.d.ts +11 -0
  348. package/lib/types/transformations.js +2 -0
  349. package/lib/types/transformations.js.map +1 -0
  350. package/lib/types/ts-alias.d.ts +10 -0
  351. package/lib/types/ts-alias.js +2 -0
  352. package/lib/types/ts-alias.js.map +1 -0
  353. package/lib/types/ts-callback-interface.d.ts +10 -0
  354. package/lib/types/ts-callback-interface.js +2 -0
  355. package/lib/types/ts-callback-interface.js.map +1 -0
  356. package/lib/types/ts-callback.d.ts +17 -0
  357. package/lib/types/ts-callback.js +2 -0
  358. package/lib/types/ts-callback.js.map +1 -0
  359. package/lib/types/ts-class.d.ts +85 -0
  360. package/lib/types/ts-class.js +2 -0
  361. package/lib/types/ts-class.js.map +1 -0
  362. package/lib/types/ts-doc-tag.d.ts +21 -0
  363. package/lib/types/ts-doc-tag.js +2 -0
  364. package/lib/types/ts-doc-tag.js.map +1 -0
  365. package/lib/types/ts-doc.d.ts +16 -0
  366. package/lib/types/ts-doc.js +2 -0
  367. package/lib/types/ts-doc.js.map +1 -0
  368. package/lib/types/ts-enum.d.ts +12 -0
  369. package/lib/types/ts-enum.js +2 -0
  370. package/lib/types/ts-enum.js.map +1 -0
  371. package/lib/types/ts-function.d.ts +55 -0
  372. package/lib/types/ts-function.js +2 -0
  373. package/lib/types/ts-function.js.map +1 -0
  374. package/lib/types/ts-generic-parameter.d.ts +8 -0
  375. package/lib/types/ts-generic-parameter.js +2 -0
  376. package/lib/types/ts-generic-parameter.js.map +1 -0
  377. package/lib/types/ts-instance-parameter.d.ts +4 -0
  378. package/lib/types/ts-instance-parameter.js +2 -0
  379. package/lib/types/ts-instance-parameter.js.map +1 -0
  380. package/lib/types/ts-member.d.ts +10 -0
  381. package/lib/types/ts-member.js +2 -0
  382. package/lib/types/ts-member.js.map +1 -0
  383. package/lib/types/ts-method.d.ts +5 -0
  384. package/lib/types/ts-method.js +2 -0
  385. package/lib/types/ts-method.js.map +1 -0
  386. package/lib/types/ts-parameter.d.ts +15 -0
  387. package/lib/types/ts-parameter.js +2 -0
  388. package/lib/types/ts-parameter.js.map +1 -0
  389. package/lib/types/ts-property.d.ts +17 -0
  390. package/lib/types/ts-property.js +2 -0
  391. package/lib/types/ts-property.js.map +1 -0
  392. package/lib/types/ts-signal.d.ts +17 -0
  393. package/lib/types/ts-signal.js +2 -0
  394. package/lib/types/ts-signal.js.map +1 -0
  395. package/lib/types/ts-type-name.d.ts +1 -0
  396. package/lib/types/ts-type-name.js +2 -0
  397. package/lib/types/ts-type-name.js.map +1 -0
  398. package/lib/types/ts-type-separator.d.ts +1 -0
  399. package/lib/types/ts-type-separator.js +2 -0
  400. package/lib/types/ts-type-separator.js.map +1 -0
  401. package/lib/types/ts-type.d.ts +26 -0
  402. package/lib/types/ts-type.js +2 -0
  403. package/lib/types/ts-type.js.map +1 -0
  404. package/lib/types/ts-var.d.ts +17 -0
  405. package/lib/types/ts-var.js +2 -0
  406. package/lib/types/ts-var.js.map +1 -0
  407. package/lib/types/type-gir-alias.d.ts +2 -0
  408. package/lib/types/type-gir-alias.js +2 -0
  409. package/lib/types/type-gir-alias.js.map +1 -0
  410. package/lib/types/type-gir-class.d.ts +2 -0
  411. package/lib/types/type-gir-class.js +2 -0
  412. package/lib/types/type-gir-class.js.map +1 -0
  413. package/lib/types/type-gir-element.d.ts +3 -0
  414. package/lib/types/type-gir-element.js +2 -0
  415. package/lib/types/type-gir-element.js.map +1 -0
  416. package/lib/types/type-gir-enumeration-member.d.ts +2 -0
  417. package/lib/types/type-gir-enumeration-member.js +2 -0
  418. package/lib/types/type-gir-enumeration-member.js.map +1 -0
  419. package/lib/types/type-gir-enumeration.d.ts +2 -0
  420. package/lib/types/type-gir-enumeration.js +2 -0
  421. package/lib/types/type-gir-enumeration.js.map +1 -0
  422. package/lib/types/type-gir-function.d.ts +1 -0
  423. package/lib/types/type-gir-function.js +2 -0
  424. package/lib/types/type-gir-function.js.map +1 -0
  425. package/lib/types/type-gir-interface.d.ts +2 -0
  426. package/lib/types/type-gir-interface.js +2 -0
  427. package/lib/types/type-gir-interface.js.map +1 -0
  428. package/lib/types/type-gir-method.d.ts +2 -0
  429. package/lib/types/type-gir-method.js +2 -0
  430. package/lib/types/type-gir-method.js.map +1 -0
  431. package/lib/types/type-gir-parameter.d.ts +1 -0
  432. package/lib/types/type-gir-parameter.js +2 -0
  433. package/lib/types/type-gir-parameter.js.map +1 -0
  434. package/lib/types/type-gir-property.d.ts +2 -0
  435. package/lib/types/type-gir-property.js +2 -0
  436. package/lib/types/type-gir-property.js.map +1 -0
  437. package/lib/types/type-gir-variable.d.ts +1 -0
  438. package/lib/types/type-gir-variable.js +2 -0
  439. package/lib/types/type-gir-variable.js.map +1 -0
  440. package/lib/types/type-ts-element.d.ts +3 -0
  441. package/lib/types/type-ts-element.js +2 -0
  442. package/lib/types/type-ts-element.js.map +1 -0
  443. package/lib/types/type-ts-enumeration-member.d.ts +2 -0
  444. package/lib/types/type-ts-enumeration-member.js +2 -0
  445. package/lib/types/type-ts-enumeration-member.js.map +1 -0
  446. package/lib/types/type-ts-function.d.ts +1 -0
  447. package/lib/types/type-ts-function.js +2 -0
  448. package/lib/types/type-ts-function.js.map +1 -0
  449. package/lib/types/type-ts-property.d.ts +1 -0
  450. package/lib/types/type-ts-property.js +2 -0
  451. package/lib/types/type-ts-property.js.map +1 -0
  452. package/lib/types/user-config-load-result.d.ts +6 -0
  453. package/lib/types/user-config-load-result.js +2 -0
  454. package/lib/types/user-config-load-result.js.map +1 -0
  455. package/lib/types/user-config.d.ts +42 -0
  456. package/lib/types/user-config.js +2 -0
  457. package/lib/types/user-config.js.map +1 -0
  458. package/lib/utils.d.ts +262 -0
  459. package/lib/utils.js +366 -0
  460. package/lib/utils.js.map +1 -0
  461. package/package.json +68 -0
  462. package/templates/Cogl-2.0.d.ts +0 -0
  463. package/templates/Gjs/GObject-2.0.d.ts +238 -0
  464. package/templates/Gjs/Gio-2.0.d.ts +101 -0
  465. package/templates/Gjs/Gjs.d.ts +204 -0
  466. package/templates/Gjs/Gjs.js +21 -0
  467. package/templates/Gjs/GnomeShell.d.ts +154 -0
  468. package/templates/Gjs/GnomeShell.js +10 -0
  469. package/templates/Gjs/index.d.ts +594 -0
  470. package/templates/Gjs/index.js +4 -0
  471. package/templates/Gjs/misc/dbusUtils.d.ts +15 -0
  472. package/templates/Gjs/misc/dbusUtils.js +6 -0
  473. package/templates/Gjs/misc/extensionUtils.d.ts +99 -0
  474. package/templates/Gjs/misc/extensionUtils.js +6 -0
  475. package/templates/Gjs/misc/fileUtils.d.ts +51 -0
  476. package/templates/Gjs/misc/fileUtils.js +6 -0
  477. package/templates/Gjs/misc/gnomeSession.d.ts +74 -0
  478. package/templates/Gjs/misc/gnomeSession.js +6 -0
  479. package/templates/Gjs/misc/parentalControlsManager.d.ts +42 -0
  480. package/templates/Gjs/misc/parentalControlsManager.js +6 -0
  481. package/templates/Gjs/misc/signals.d.ts +15 -0
  482. package/templates/Gjs/misc/signals.js +6 -0
  483. package/templates/Gjs/module.d.ts +6 -0
  484. package/templates/Gjs/module.js +16 -0
  485. package/templates/Gjs/tsconfig.alias.json +10 -0
  486. package/templates/Gjs/ui/accessDialog.d.ts +19 -0
  487. package/templates/Gjs/ui/accessDialog.js +6 -0
  488. package/templates/Gjs/ui/altTab.d.ts +124 -0
  489. package/templates/Gjs/ui/altTab.js +6 -0
  490. package/templates/Gjs/ui/animation.d.ts +58 -0
  491. package/templates/Gjs/ui/animation.js +6 -0
  492. package/templates/Gjs/ui/appDisplay.d.ts +204 -0
  493. package/templates/Gjs/ui/appDisplay.js +6 -0
  494. package/templates/Gjs/ui/appFavorites.d.ts +34 -0
  495. package/templates/Gjs/ui/appFavorites.js +6 -0
  496. package/templates/Gjs/ui/appMenu.d.ts +74 -0
  497. package/templates/Gjs/ui/appMenu.js +6 -0
  498. package/templates/Gjs/ui/audioDeviceSelection.d.ts +51 -0
  499. package/templates/Gjs/ui/audioDeviceSelection.js +6 -0
  500. package/templates/Gjs/ui/background.d.ts +255 -0
  501. package/templates/Gjs/ui/background.js +5 -0
  502. package/templates/Gjs/ui/backgroundMenu.d.ts +19 -0
  503. package/templates/Gjs/ui/backgroundMenu.js +5 -0
  504. package/templates/Gjs/ui/barLevel.d.ts +42 -0
  505. package/templates/Gjs/ui/barLevel.js +5 -0
  506. package/templates/Gjs/ui/boxpointer.d.ts +103 -0
  507. package/templates/Gjs/ui/boxpointer.js +5 -0
  508. package/templates/Gjs/ui/calendar.d.ts +261 -0
  509. package/templates/Gjs/ui/calendar.js +5 -0
  510. package/templates/Gjs/ui/checkBox.d.ts +22 -0
  511. package/templates/Gjs/ui/checkBox.js +5 -0
  512. package/templates/Gjs/ui/closeDialog.d.ts +40 -0
  513. package/templates/Gjs/ui/closeDialog.js +5 -0
  514. package/templates/Gjs/ui/components/__init__.d.ts +9 -0
  515. package/templates/Gjs/ui/components/__init__.js +6 -0
  516. package/templates/Gjs/ui/components/automountManager.d.ts +8 -0
  517. package/templates/Gjs/ui/components/automountManager.js +6 -0
  518. package/templates/Gjs/ui/components/autorunManager.d.ts +8 -0
  519. package/templates/Gjs/ui/components/autorunManager.js +6 -0
  520. package/templates/Gjs/ui/components/index.d.ts +6 -0
  521. package/templates/Gjs/ui/components/index.js +6 -0
  522. package/templates/Gjs/ui/components/keyring.d.ts +19 -0
  523. package/templates/Gjs/ui/components/keyring.js +6 -0
  524. package/templates/Gjs/ui/components/networkAgent.d.ts +10 -0
  525. package/templates/Gjs/ui/components/networkAgent.js +6 -0
  526. package/templates/Gjs/ui/components/polkitAgent.d.ts +19 -0
  527. package/templates/Gjs/ui/components/polkitAgent.js +6 -0
  528. package/templates/Gjs/ui/components/telepathyClient.d.ts +10 -0
  529. package/templates/Gjs/ui/components/telepathyClient.js +6 -0
  530. package/templates/Gjs/ui/dialog.d.ts +78 -0
  531. package/templates/Gjs/ui/dialog.js +6 -0
  532. package/templates/Gjs/ui/dnd.d.ts +127 -0
  533. package/templates/Gjs/ui/dnd.js +6 -0
  534. package/templates/Gjs/ui/iconGrid.d.ts +172 -0
  535. package/templates/Gjs/ui/iconGrid.js +6 -0
  536. package/templates/Gjs/ui/layout.d.ts +311 -0
  537. package/templates/Gjs/ui/layout.js +6 -0
  538. package/templates/Gjs/ui/main.d.ts +215 -0
  539. package/templates/Gjs/ui/main.js +6 -0
  540. package/templates/Gjs/ui/messageList.d.ts +113 -0
  541. package/templates/Gjs/ui/messageList.js +6 -0
  542. package/templates/Gjs/ui/messageTray.d.ts +423 -0
  543. package/templates/Gjs/ui/messageTray.js +6 -0
  544. package/templates/Gjs/ui/modalDialog.d.ts +96 -0
  545. package/templates/Gjs/ui/modalDialog.js +6 -0
  546. package/templates/Gjs/ui/mpris.d.ts +78 -0
  547. package/templates/Gjs/ui/mpris.js +6 -0
  548. package/templates/Gjs/ui/notificationDaemon.d.ts +5 -0
  549. package/templates/Gjs/ui/notificationDaemon.js +6 -0
  550. package/templates/Gjs/ui/panel.d.ts +65 -0
  551. package/templates/Gjs/ui/panel.js +6 -0
  552. package/templates/Gjs/ui/panelMenu.d.ts +51 -0
  553. package/templates/Gjs/ui/panelMenu.js +6 -0
  554. package/templates/Gjs/ui/popupMenu.d.ts +228 -0
  555. package/templates/Gjs/ui/popupMenu.js +6 -0
  556. package/templates/Gjs/ui/ripples.d.ts +44 -0
  557. package/templates/Gjs/ui/ripples.js +6 -0
  558. package/templates/Gjs/ui/search.d.ts +158 -0
  559. package/templates/Gjs/ui/search.js +6 -0
  560. package/templates/Gjs/ui/switcherPopup.d.ts +107 -0
  561. package/templates/Gjs/ui/switcherPopup.js +6 -0
  562. package/templates/Gjs/ui/userWidget.d.ts +13 -0
  563. package/templates/Gjs/ui/userWidget.js +6 -0
  564. package/templates/Granite-1.0.d.ts +7 -0
  565. package/templates/Granite-7.0.d.ts +7 -0
  566. package/templates/GstBase-0.10.d.ts +5 -0
  567. package/templates/RygelServer-2.6.d.ts +3 -0
  568. package/templates/node-gtk/GObject-2.0.d.ts +57 -0
  569. package/templates/node-gtk/index.d.ts +40 -0
  570. package/templates/node-gtk/index.js +9 -0
  571. package/templates/node-gtk/module.d.ts +6 -0
  572. package/templates/node-gtk/module.js +17 -0
@@ -0,0 +1,63 @@
1
+ import { Logger } from './logger.js';
2
+ import { WARN_NOT_FOUND_PACKAGE_NAME } from './messages.js';
3
+ /**
4
+ * The SymTable is used to get any Type from any dependency to compare or to get information from
5
+ */
6
+ export class SymTable {
7
+ config;
8
+ modPackageName;
9
+ modNamespace;
10
+ /**
11
+ * The items are static because any GirModule has the same items to be able to access the types of dependencies as well
12
+ */
13
+ static items = {};
14
+ log;
15
+ constructor(config, modPackageName, modNamespace) {
16
+ this.config = config;
17
+ this.modPackageName = modPackageName;
18
+ this.modNamespace = modNamespace;
19
+ this.log = new Logger(this.config.environment, this.config.verbose, 'SymTable');
20
+ }
21
+ /**
22
+ * Get symTable key, we use this method to prepend the package version to each key to prevent version conflicts e.g. in 'Gtk-3.0' and 'Gtk-4.0'
23
+ * @param implementation E.g. Gtk.Window
24
+ * @returns E.g. 'Gtk-3.0.Gtk.Window'
25
+ */
26
+ getKey(dependencies, implementation) {
27
+ if (implementation.startsWith(this.modPackageName + '.')) {
28
+ return implementation;
29
+ }
30
+ if (implementation.startsWith(this.modNamespace + '.')) {
31
+ return this.modPackageName + '.' + implementation;
32
+ }
33
+ if (!implementation.includes('.')) {
34
+ return this.modPackageName + '.' + this.modNamespace + '.' + implementation;
35
+ }
36
+ const split = implementation.split('.');
37
+ const namespace = split[0];
38
+ const packageName = dependencies.find((dependency) => dependency.packageName.startsWith(namespace + '-'))?.packageName;
39
+ if (!packageName) {
40
+ this.log.warn(WARN_NOT_FOUND_PACKAGE_NAME(namespace, implementation));
41
+ return null;
42
+ }
43
+ return packageName + '.' + implementation;
44
+ }
45
+ get(dependencies, fullTypeName) {
46
+ const key = this.getKey(dependencies, fullTypeName);
47
+ if (!key || !SymTable.items[key]) {
48
+ return null;
49
+ }
50
+ const result = SymTable.items[key] || null;
51
+ return result;
52
+ }
53
+ getByHand(key) {
54
+ return (SymTable.items[key] || null);
55
+ }
56
+ set(dependencies, fullTypeName, GirElement) {
57
+ const key = this.getKey(dependencies, fullTypeName);
58
+ if (key) {
59
+ SymTable.items[key] = GirElement;
60
+ }
61
+ }
62
+ }
63
+ //# sourceMappingURL=symtable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symtable.js","sourceRoot":"","sources":["../src/symtable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAE3D;;GAEG;AACH,MAAM,OAAO,QAAQ;IAQI;IACA;IACA;IATrB;;OAEG;IACK,MAAM,CAAC,KAAK,GAAkB,EAAE,CAAA;IAChC,GAAG,CAAQ;IAEnB,YACqB,MAAsB,EACtB,cAAsB,EACtB,YAAoB;QAFpB,WAAM,GAAN,MAAM,CAAgB;QACtB,mBAAc,GAAd,cAAc,CAAQ;QACtB,iBAAY,GAAZ,YAAY,CAAQ;QAErC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACnF,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAA0B,EAAE,cAAsB;QAC5D,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,EAAE;YACtD,OAAO,cAAc,CAAA;SACxB;QAED,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,cAAc,CAAA;SACpD;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,cAAc,CAAA;SAC9E;QAED,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACjD,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,CACrD,EAAE,WAAW,CAAA;QACd,IAAI,CAAC,WAAW,EAAE;YACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;YACrE,OAAO,IAAI,CAAA;SACd;QACD,OAAO,WAAW,GAAG,GAAG,GAAG,cAAc,CAAA;IAC7C,CAAC;IAEM,GAAG,CAAa,YAA0B,EAAE,YAAoB;QACnE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;QACnD,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAA;SACd;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;QAC1C,OAAO,MAAkB,CAAA;IAC7B,CAAC;IAEM,SAAS,CAAoB,GAAW;QAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAwB,CAAA;IAC/D,CAAC;IAEM,GAAG,CAAC,YAA0B,EAAE,YAAoB,EAAE,UAAyB;QAClF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;QACnD,IAAI,GAAG,EAAE;YACL,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAA;SACnC;IACL,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * The TemplateProcessor is used generate strings from templates files or template strings
3
+ * For example, the signal methods are generated here
4
+ */
5
+ import ejs from 'ejs';
6
+ import { Logger } from './logger.js';
7
+ import type { GenerateConfig } from './types/index.js';
8
+ export declare class TemplateProcessor {
9
+ protected readonly data: ejs.Data | undefined;
10
+ protected readonly packageName: string;
11
+ protected readonly config: GenerateConfig;
12
+ protected environmentTemplateDir: string;
13
+ protected log: Logger;
14
+ constructor(data: ejs.Data | undefined, packageName: string, config: GenerateConfig);
15
+ /**
16
+ * Loads and renders a template and gets the rendered templates back
17
+ * @param templateFilename
18
+ */
19
+ load(templateFilename: string): Promise<string>;
20
+ /**
21
+ * Loads and renders all templates in a directory and gets the rendered templates back
22
+ * @param templateDirname
23
+ */
24
+ loadAll(templateDirname: string, fileExtension: string): Promise<{
25
+ [path: string]: string;
26
+ }>;
27
+ /**
28
+ * Loads an template, render the template and write the template to the filesystem
29
+ * @param templateFilename
30
+ * @param outputDir
31
+ * @param outputFilename
32
+ * @param append
33
+ * @param prependEnv
34
+ * @return The rendered (and if possible prettified) template string
35
+ */
36
+ create(templateFilename: string, outputDir: string, outputFilename: string, append?: string, prependEnv?: boolean): Promise<string>;
37
+ /**
38
+ * Loads all templates with file extension in dir, render the templates and write the template to the filesystem
39
+ * @param fileExtension
40
+ * @param templateDirname
41
+ * @param outputDir
42
+ * @param outputDirname
43
+ * @return The rendered (and if possible prettified) templates
44
+ */
45
+ createAll(fileExtension: string, templateDirname: string, outputDir: string, outputDirname: string, append?: string): Promise<{
46
+ [path: string]: string;
47
+ }>;
48
+ protected write(content: string, outputDir: string, outputFilename: string, prependEnv?: boolean): Promise<string>;
49
+ protected render(templateString: string, options?: Partial<ejs.Options>): Promise<string>;
50
+ /**
51
+ * Checks if the template file or directory exists and returns the path if found
52
+ * Tries first to load the file / directory from the environment-specific template folder and otherwise looks for it in the general template folder
53
+ * @param templateFilename
54
+ */
55
+ exists(templateFilename: string): string | null;
56
+ /**
57
+ * Reads a template file from filesystem and gets the raw string back
58
+ * @param templateFilename
59
+ * @return The raw template content
60
+ */
61
+ protected read(templateFilename: string): Promise<string>;
62
+ /**
63
+ * Reads all template files from a directory and gets the raw strings back
64
+ * @param templateDirname
65
+ * @param fileExtension
66
+ * @return The raw template contents
67
+ * @throws Error if the template directory does not exist
68
+ * @throws Error if the template directory is empty
69
+ */
70
+ protected readAll(templateDirname: string, fileExtension: string): Promise<{
71
+ [path: string]: string;
72
+ }>;
73
+ }
74
+ export default TemplateProcessor;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * The TemplateProcessor is used generate strings from templates files or template strings
3
+ * For example, the signal methods are generated here
4
+ */
5
+ import { existsSync } from 'fs';
6
+ import { readFile, writeFile, mkdir, readdir } from 'fs/promises';
7
+ import Path from 'path';
8
+ import ejs from 'ejs';
9
+ import { Logger } from './logger.js';
10
+ import { APP_NAME, APP_USAGE, APP_SOURCE } from './constants.js';
11
+ import { __dirname, getEnvironmentDir, getDestPath } from './utils.js';
12
+ import { DependencyManager } from './dependency-manager.js';
13
+ const TEMPLATE_DIR = Path.join(__dirname, '../templates');
14
+ export class TemplateProcessor {
15
+ data;
16
+ packageName;
17
+ config;
18
+ environmentTemplateDir;
19
+ log;
20
+ constructor(data, packageName, config) {
21
+ this.data = data;
22
+ this.packageName = packageName;
23
+ this.config = config;
24
+ const dep = DependencyManager.getInstance(config);
25
+ this.data = {
26
+ ...this.data,
27
+ APP_NAME,
28
+ APP_USAGE,
29
+ APP_SOURCE,
30
+ dep,
31
+ };
32
+ this.environmentTemplateDir = getEnvironmentDir(config.environment, TEMPLATE_DIR);
33
+ this.log = new Logger(config.environment, config.verbose, this.packageName);
34
+ }
35
+ /**
36
+ * Loads and renders a template and gets the rendered templates back
37
+ * @param templateFilename
38
+ */
39
+ async load(templateFilename) {
40
+ const fileContent = await this.read(templateFilename);
41
+ return await this.render(fileContent);
42
+ }
43
+ /**
44
+ * Loads and renders all templates in a directory and gets the rendered templates back
45
+ * @param templateDirname
46
+ */
47
+ async loadAll(templateDirname, fileExtension) {
48
+ const fileContents = await this.readAll(templateDirname, fileExtension);
49
+ for (const file of Object.keys(fileContents)) {
50
+ fileContents[file] = await this.render(fileContents[file]);
51
+ }
52
+ return fileContents;
53
+ }
54
+ /**
55
+ * Loads an template, render the template and write the template to the filesystem
56
+ * @param templateFilename
57
+ * @param outputDir
58
+ * @param outputFilename
59
+ * @param append
60
+ * @param prependEnv
61
+ * @return The rendered (and if possible prettified) template string
62
+ */
63
+ async create(templateFilename, outputDir, outputFilename, append = '', prependEnv = true) {
64
+ const renderedTpl = await this.load(templateFilename);
65
+ const code = renderedTpl + append;
66
+ await this.write(code, outputDir, outputFilename, prependEnv);
67
+ return code;
68
+ }
69
+ /**
70
+ * Loads all templates with file extension in dir, render the templates and write the template to the filesystem
71
+ * @param fileExtension
72
+ * @param templateDirname
73
+ * @param outputDir
74
+ * @param outputDirname
75
+ * @return The rendered (and if possible prettified) templates
76
+ */
77
+ async createAll(fileExtension, templateDirname, outputDir, outputDirname, append = '') {
78
+ const renderedTpls = await this.loadAll(templateDirname, fileExtension);
79
+ const result = {};
80
+ for (const filename of Object.keys(renderedTpls)) {
81
+ const destPath = getDestPath(this.config.environment, outputDir, outputDirname, filename);
82
+ result[destPath] = renderedTpls[filename] + append;
83
+ await this.write(result[destPath], outputDir, Path.join(outputDirname, filename));
84
+ }
85
+ return result;
86
+ }
87
+ async write(content, outputDir, outputFilename, prependEnv = true) {
88
+ const destPath = prependEnv
89
+ ? getDestPath(this.config.environment, outputDir, outputFilename)
90
+ : Path.join(outputDir, outputFilename);
91
+ // write template result file
92
+ await mkdir(Path.dirname(destPath), { recursive: true });
93
+ await writeFile(destPath, content, { encoding: 'utf8', flag: 'w' });
94
+ return Promise.resolve(destPath);
95
+ }
96
+ async render(templateString, options = {}) {
97
+ try {
98
+ const renderedTpl = await ejs.render(templateString, {
99
+ ...this.config,
100
+ ...this.data,
101
+ }, {
102
+ async: true,
103
+ ...options,
104
+ });
105
+ return renderedTpl;
106
+ }
107
+ catch (error) {
108
+ this.log.error('Error on render', error);
109
+ return '';
110
+ }
111
+ }
112
+ /**
113
+ * Checks if the template file or directory exists and returns the path if found
114
+ * Tries first to load the file / directory from the environment-specific template folder and otherwise looks for it in the general template folder
115
+ * @param templateFilename
116
+ */
117
+ exists(templateFilename) {
118
+ const fullEnvironmentTemplatePath = Path.join(this.environmentTemplateDir, templateFilename);
119
+ const fullGeneralTemplatePath = Path.join(TEMPLATE_DIR, templateFilename);
120
+ if (existsSync(fullEnvironmentTemplatePath)) {
121
+ return fullEnvironmentTemplatePath;
122
+ }
123
+ if (existsSync(fullGeneralTemplatePath)) {
124
+ return fullGeneralTemplatePath;
125
+ }
126
+ return null;
127
+ }
128
+ /**
129
+ * Reads a template file from filesystem and gets the raw string back
130
+ * @param templateFilename
131
+ * @return The raw template content
132
+ */
133
+ async read(templateFilename) {
134
+ const path = this.exists(templateFilename);
135
+ if (path) {
136
+ return await readFile(path, 'utf8');
137
+ }
138
+ throw new Error(`Template '${templateFilename}' not found'`);
139
+ }
140
+ /**
141
+ * Reads all template files from a directory and gets the raw strings back
142
+ * @param templateDirname
143
+ * @param fileExtension
144
+ * @return The raw template contents
145
+ * @throws Error if the template directory does not exist
146
+ * @throws Error if the template directory is empty
147
+ */
148
+ async readAll(templateDirname, fileExtension) {
149
+ const path = this.exists(templateDirname);
150
+ if (path) {
151
+ const files = (await readdir(path)).filter((file) => file.endsWith(fileExtension));
152
+ if (files.length === 0) {
153
+ throw new Error(`Template directory '${templateDirname}' is empty'`);
154
+ }
155
+ const results = {};
156
+ for (const file of files) {
157
+ results[file] = await readFile(Path.join(path, file), 'utf8');
158
+ }
159
+ return results;
160
+ }
161
+ throw new Error(`Template directory '${templateDirname}' not found'`);
162
+ }
163
+ }
164
+ export default TemplateProcessor;
165
+ //# sourceMappingURL=template-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-processor.js","sourceRoot":"","sources":["../src/template-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * This is where transformations take place for gjs and node-gtk.
3
+ * For example a function names should be transformed to lowerCamelCase for node-gtk but should keep their original name for gjs
4
+ */
5
+ import { Environment, ConstructName, GenerateConfig, GirCallableParamElement, GirEnumElement, GirBitfieldElement } from './types/index.js';
6
+ export declare const POD_TYPE_MAP_ARRAY: {
7
+ guint8: string;
8
+ gint8: string;
9
+ gunichar: string;
10
+ };
11
+ /**
12
+ * @see https://developer.gnome.org/glib/stable/glib-Basic-Types.html
13
+ */
14
+ export declare const POD_TYPE_MAP: {
15
+ utf8: string;
16
+ none: string;
17
+ double: string;
18
+ 'double*': string;
19
+ guint: string;
20
+ 'guint*': string;
21
+ guint8: string;
22
+ 'guint8*': string;
23
+ 'guint8**': string;
24
+ guint16: string;
25
+ 'guint16*': string;
26
+ gint16: string;
27
+ 'gint16*': string;
28
+ guint32: string;
29
+ 'guint32*': string;
30
+ guint64: string;
31
+ 'guint64*': string;
32
+ gunichar: string;
33
+ 'gunichar*': string;
34
+ gint: string;
35
+ 'gint*': string;
36
+ gint8: string;
37
+ 'gint8*': string;
38
+ gint32: string;
39
+ 'gint32*': string;
40
+ gint64: string;
41
+ 'gint64*': string;
42
+ gushort: string;
43
+ 'gushort*': string;
44
+ gfloat: string;
45
+ 'gfloat*': string;
46
+ gboolean: string;
47
+ 'gboolean*': string;
48
+ gpointer: string;
49
+ 'gpointer*': string;
50
+ gconstpointer: string;
51
+ gchar: string;
52
+ guchar: string;
53
+ glong: string;
54
+ gulong: string;
55
+ gdouble: string;
56
+ gssize: string;
57
+ gsize: string;
58
+ long: string;
59
+ object: string;
60
+ gshort: string;
61
+ filename: string;
62
+ va_list: string;
63
+ guintptr: string;
64
+ };
65
+ export declare const C_TYPE_MAP: (value: string) => string | undefined;
66
+ export declare const FULL_TYPE_MAP: (environment: Environment, value: string, out?: boolean) => string | undefined;
67
+ /** The reserved variable names listed here cannot be resolved simply by quotation marks */
68
+ export declare const RESERVED_QUOTE_VARIABLE_NAMES: string[];
69
+ export declare const RESERVED_VARIABLE_NAMES: string[];
70
+ export declare const RESERVED_CLASS_NAMES: string[];
71
+ export declare const RESERVED_FUNCTION_NAMES: string[];
72
+ /**
73
+ * Some classes already have their own `.connect`, `.disconnect` or `.emit` methods,
74
+ * so these cannot be overwritten with the Gjs signal methods which have the same name.
75
+ */
76
+ export declare const GOBJECT_SIGNAL_METHOD_NAMES: string[];
77
+ export declare const IGNORE_GIR_TYPE_TS_DOC_TYPES: string[];
78
+ export declare const RESERVED_NAMESPACE_NAMES: {};
79
+ export declare class Transformation {
80
+ private readonly config;
81
+ /**
82
+ * Rules for the name conventions
83
+ * For node-gtk naming conventions see https://github.com/romgrk/node-gtk#naming-conventions
84
+ * For gjs see https://gjs-docs.gnome.org/ and https://wiki.gnome.org/Attic/Gjs
85
+ */
86
+ private transformations;
87
+ private log;
88
+ constructor(moduleName: string | undefined, config: GenerateConfig);
89
+ transformSignalInterfaceName(name: string): string;
90
+ transformModuleNamespaceName(name: string): string;
91
+ transformClassName(name: string): string;
92
+ /**
93
+ * // E.g. the NetworkManager-1.0 has enum names starting with 80211
94
+ * @param girEnum The enum
95
+ * @returns The transformed name
96
+ */
97
+ transformEnumName(girEnum: GirEnumElement | GirBitfieldElement): string;
98
+ transformEnumMember(memberName: string): string;
99
+ transformFunctionName(name: string, isVirtual: boolean): string;
100
+ transformReservedVariableNames(name: string, allowQuotes: boolean): string;
101
+ /**
102
+ * E.g. GstVideo-1.0 has a class `VideoScaler` with a method called `2d`
103
+ * or NetworkManager-1.0 has methods starting with `80211`
104
+ */
105
+ transformPropertyName(name: string, allowQuotes: boolean): string;
106
+ transformConstantName(name: string, allowQuotes: boolean): string;
107
+ transformFieldName(name: string, allowQuotes: boolean): string;
108
+ transformParameterName(param: GirCallableParamElement, allowQuotes: boolean): string;
109
+ /**
110
+ * Fixes type names, e.g. Return types or enum definitions can not start with numbers
111
+ * @param typeName
112
+ */
113
+ transformTypeName(name: string): string;
114
+ transform(construct: ConstructName, transformMe: string): string;
115
+ /**
116
+ * In JavaScript there can be no variables, methods, class names or enum names that start with a number.
117
+ * This method converts such names.
118
+ * TODO: Prepends an `@` to numeric starting names, how does gjs and node-gtk do that?
119
+ * @param name
120
+ * @param allowQuotes
121
+ */
122
+ private transformNumericName;
123
+ /**
124
+ * Replaces "@any_property" with "`any_property`"
125
+ * @param description E.g. "Creates a binding between @source_property on @source and @target_property on @target."
126
+ * @returns E.g. "Creates a binding between `source_property` on `source` and `target_property` on `target`."
127
+ */
128
+ private transformGirDocHighlights;
129
+ /**
130
+ * Replaces:
131
+ * |[<!-- language="C" -->
132
+ * g_object_notify_by_pspec (self, properties[PROP_FOO]);
133
+ * ]|
134
+ *
135
+ * with
136
+ * ```c
137
+ * g_object_notify_by_pspec (self, properties[PROP_FOO]);
138
+ * ```
139
+ *
140
+ * @param description
141
+ */
142
+ private transformGirDocCodeBlocks;
143
+ /**
144
+ * Transforms the documentation text to markdown
145
+ * TODO: Transform references to link tags: https://tsdoc.org/pages/tags/link/
146
+ * @param text
147
+ * @returns
148
+ */
149
+ transformGirDocText(text: string): string;
150
+ /**
151
+ * Transforms the tsDoc tag <text> like `@param name <text>`
152
+ * @param text
153
+ * @returns
154
+ */
155
+ transformGirDocTagText(text: string): string;
156
+ }