@ts-for-gir/lib 4.0.0-beta.2 → 4.0.0-beta.21

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 (319) hide show
  1. package/lib/constants.d.ts +6 -7
  2. package/lib/constants.js +74 -9
  3. package/lib/constants.js.map +1 -1
  4. package/lib/dependency-manager.d.ts +60 -14
  5. package/lib/dependency-manager.js +148 -46
  6. package/lib/dependency-manager.js.map +1 -1
  7. package/lib/generators/dts-inline.d.ts +4 -2
  8. package/lib/generators/dts-inline.js +10 -12
  9. package/lib/generators/dts-inline.js.map +1 -1
  10. package/lib/generators/dts-modules.d.ts +4 -2
  11. package/lib/generators/dts-modules.js +12 -14
  12. package/lib/generators/dts-modules.js.map +1 -1
  13. package/lib/generators/dts.d.ts +2 -2
  14. package/lib/generators/dts.js +10 -9
  15. package/lib/generators/dts.js.map +1 -1
  16. package/lib/generators/generator.d.ts +3 -3
  17. package/lib/generators/generator.js.map +1 -1
  18. package/lib/generators/json.d.ts +6 -5
  19. package/lib/generators/json.js +18 -21
  20. package/lib/generators/json.js.map +1 -1
  21. package/lib/generics/clutter.d.ts +15 -0
  22. package/lib/generics/clutter.js +3 -0
  23. package/lib/generics/clutter.js.map +1 -1
  24. package/lib/generics/generify.js +11 -3
  25. package/lib/generics/generify.js.map +1 -1
  26. package/lib/generics/gtk.d.ts +7 -0
  27. package/lib/generics/gtk.js +56 -0
  28. package/lib/generics/gtk.js.map +1 -0
  29. package/lib/generics/meta.d.ts +15 -0
  30. package/lib/generics/meta.js +3 -0
  31. package/lib/generics/meta.js.map +1 -1
  32. package/lib/generics/st.d.ts +15 -0
  33. package/lib/generics/st.js +16 -10
  34. package/lib/generics/st.js.map +1 -1
  35. package/lib/generics/visitor.js +5 -9
  36. package/lib/generics/visitor.js.map +1 -1
  37. package/lib/gir/alias.d.ts +2 -2
  38. package/lib/gir/alias.js +3 -3
  39. package/lib/gir/alias.js.map +1 -1
  40. package/lib/gir/base.d.ts +3 -3
  41. package/lib/gir/base.js +2 -14
  42. package/lib/gir/base.js.map +1 -1
  43. package/lib/gir/class.d.ts +6 -7
  44. package/lib/gir/class.js +35 -108
  45. package/lib/gir/class.js.map +1 -1
  46. package/lib/gir/const.d.ts +2 -2
  47. package/lib/gir/const.js +1 -1
  48. package/lib/gir/const.js.map +1 -1
  49. package/lib/gir/enum.d.ts +5 -5
  50. package/lib/gir/enum.js +7 -7
  51. package/lib/gir/enum.js.map +1 -1
  52. package/lib/gir/function.d.ts +11 -10
  53. package/lib/gir/function.js +4 -4
  54. package/lib/gir/function.js.map +1 -1
  55. package/lib/gir/index.d.ts +14 -0
  56. package/lib/gir/index.js +15 -0
  57. package/lib/gir/index.js.map +1 -0
  58. package/lib/gir/nodes.d.ts +1 -1
  59. package/lib/gir/nodes.js +1 -1
  60. package/lib/gir/nodes.js.map +1 -1
  61. package/lib/gir/promisify.d.ts +5 -0
  62. package/lib/gir/promisify.js +158 -0
  63. package/lib/gir/promisify.js.map +1 -0
  64. package/lib/gir/property.d.ts +2 -2
  65. package/lib/gir/property.js.map +1 -1
  66. package/lib/gir/registry.d.ts +6 -6
  67. package/lib/gir/registry.js +6 -3
  68. package/lib/gir/registry.js.map +1 -1
  69. package/lib/gir/signal.d.ts +2 -2
  70. package/lib/gir/signal.js.map +1 -1
  71. package/lib/gir/util.d.ts +3 -3
  72. package/lib/gir/util.js +17 -14
  73. package/lib/gir/util.js.map +1 -1
  74. package/lib/gir-module.d.ts +27 -39
  75. package/lib/gir-module.js +161 -149
  76. package/lib/gir-module.js.map +1 -1
  77. package/lib/gir.d.ts +43 -40
  78. package/lib/gir.js +28 -27
  79. package/lib/gir.js.map +1 -1
  80. package/lib/index.d.ts +1 -2
  81. package/lib/index.js +1 -2
  82. package/lib/index.js.map +1 -1
  83. package/lib/injections/gio.js +133 -1
  84. package/lib/injections/gio.js.map +1 -1
  85. package/lib/injections/glib.js +6 -0
  86. package/lib/injections/glib.js.map +1 -1
  87. package/lib/injections/gobject.js +84 -64
  88. package/lib/injections/gobject.js.map +1 -1
  89. package/lib/injections/gtk4.d.ts +7 -0
  90. package/lib/injections/gtk4.js +19 -0
  91. package/lib/injections/gtk4.js.map +1 -0
  92. package/lib/injections/inject.js +5 -0
  93. package/lib/injections/inject.js.map +1 -1
  94. package/lib/injections/shell.d.ts +20 -0
  95. package/lib/injections/shell.js +34 -0
  96. package/lib/injections/shell.js.map +1 -0
  97. package/lib/library-version.d.ts +2 -0
  98. package/lib/library-version.js +13 -0
  99. package/lib/library-version.js.map +1 -1
  100. package/lib/logger.d.ts +18 -16
  101. package/lib/logger.js +28 -26
  102. package/lib/logger.js.map +1 -1
  103. package/lib/messages.d.ts +0 -3
  104. package/lib/messages.js +0 -3
  105. package/lib/messages.js.map +1 -1
  106. package/lib/registry.d.ts +0 -1
  107. package/lib/registry.js +0 -1
  108. package/lib/registry.js.map +1 -1
  109. package/lib/transformation.d.ts +5 -15
  110. package/lib/transformation.js +9 -89
  111. package/lib/transformation.js.map +1 -1
  112. package/lib/types/dependency.d.ts +13 -1
  113. package/lib/types/format.d.ts +1 -0
  114. package/lib/types/format.js +2 -0
  115. package/lib/types/format.js.map +1 -0
  116. package/lib/types/gir-instance-parameter.d.ts +1 -2
  117. package/lib/types/gir-module-resolved-by.d.ts +5 -0
  118. package/lib/types/index.d.ts +7 -2
  119. package/lib/types/index.js +7 -2
  120. package/lib/types/index.js.map +1 -1
  121. package/lib/types/metadata.d.ts +8 -0
  122. package/lib/types/metadata.js +2 -0
  123. package/lib/types/metadata.js.map +1 -0
  124. package/lib/types/options-base.d.ts +4 -0
  125. package/lib/types/options-base.js +2 -0
  126. package/lib/types/options-base.js.map +1 -0
  127. package/lib/types/{generate-config.d.ts → options-generation.d.ts} +21 -11
  128. package/lib/types/options-generation.js +2 -0
  129. package/lib/types/options-generation.js.map +1 -0
  130. package/lib/types/options-load.d.ts +5 -0
  131. package/lib/types/options-load.js +2 -0
  132. package/lib/types/options-load.js.map +1 -0
  133. package/lib/types/options-transform.d.ts +4 -0
  134. package/lib/types/options-transform.js +2 -0
  135. package/lib/types/options-transform.js.map +1 -0
  136. package/lib/types/output-format.d.ts +1 -0
  137. package/lib/types/output-format.js +2 -0
  138. package/lib/types/output-format.js.map +1 -0
  139. package/lib/types/property-case.d.ts +1 -0
  140. package/lib/types/property-case.js +2 -0
  141. package/lib/types/property-case.js.map +1 -0
  142. package/lib/types/template-data.d.ts +2 -2
  143. package/lib/types/user-config.d.ts +21 -6
  144. package/lib/utils/files.d.ts +21 -0
  145. package/lib/utils/files.js +62 -0
  146. package/lib/utils/files.js.map +1 -0
  147. package/lib/utils/girs.d.ts +45 -0
  148. package/lib/utils/girs.js +101 -0
  149. package/lib/utils/girs.js.map +1 -0
  150. package/lib/utils/index.d.ts +6 -0
  151. package/lib/utils/index.js +7 -0
  152. package/lib/utils/index.js.map +1 -0
  153. package/lib/utils/numbers.d.ts +6 -0
  154. package/lib/utils/numbers.js +9 -0
  155. package/lib/utils/numbers.js.map +1 -0
  156. package/lib/utils/objects.d.ts +136 -0
  157. package/lib/utils/objects.js +121 -0
  158. package/lib/utils/objects.js.map +1 -0
  159. package/lib/utils/path.d.ts +1 -0
  160. package/lib/utils/path.js +7 -0
  161. package/lib/utils/path.js.map +1 -0
  162. package/lib/utils/strings.d.ts +74 -0
  163. package/lib/utils/strings.js +121 -0
  164. package/lib/utils/strings.js.map +1 -0
  165. package/lib/utils.d.ts +21 -15
  166. package/lib/utils.js +58 -13
  167. package/lib/utils.js.map +1 -1
  168. package/lib/validators/enum-parameters.d.ts +16 -0
  169. package/lib/validators/enum-parameters.js +42 -0
  170. package/lib/validators/enum-parameters.js.map +1 -0
  171. package/lib/validators/function-parameters.d.ts +14 -0
  172. package/lib/validators/function-parameters.js +31 -0
  173. package/lib/validators/function-parameters.js.map +1 -0
  174. package/lib/validators/interface.js +1 -1
  175. package/lib/validators/interface.js.map +1 -1
  176. package/package.json +15 -14
  177. package/lib/conflict-resolver.d.ts +0 -119
  178. package/lib/conflict-resolver.js +0 -893
  179. package/lib/conflict-resolver.js.map +0 -1
  180. package/lib/generators/dts/gio.d.ts +0 -2
  181. package/lib/generators/dts/gio.js +0 -9
  182. package/lib/generators/dts/gio.js.map +0 -1
  183. package/lib/gir-factory.d.ts +0 -52
  184. package/lib/gir-factory.js +0 -340
  185. package/lib/gir-factory.js.map +0 -1
  186. package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +0 -2
  187. package/lib/injection/callbacks/gjs/Gio-2.0.js +0 -36
  188. package/lib/injection/callbacks/gjs/Gio-2.0.js.map +0 -1
  189. package/lib/injection/callbacks/gjs/index.d.ts +0 -2
  190. package/lib/injection/callbacks/gjs/index.js +0 -3
  191. package/lib/injection/callbacks/gjs/index.js.map +0 -1
  192. package/lib/injection/callbacks/index.d.ts +0 -3
  193. package/lib/injection/callbacks/index.js +0 -3
  194. package/lib/injection/callbacks/index.js.map +0 -1
  195. package/lib/injection/classes/gjs/gio-2.0.d.ts +0 -5
  196. package/lib/injection/classes/gjs/gio-2.0.js +0 -254
  197. package/lib/injection/classes/gjs/gio-2.0.js.map +0 -1
  198. package/lib/injection/classes/gjs/glib-2.0.d.ts +0 -2
  199. package/lib/injection/classes/gjs/glib-2.0.js +0 -225
  200. package/lib/injection/classes/gjs/glib-2.0.js.map +0 -1
  201. package/lib/injection/classes/gjs/gobject-2.0.d.ts +0 -2
  202. package/lib/injection/classes/gjs/gobject-2.0.js +0 -634
  203. package/lib/injection/classes/gjs/gobject-2.0.js.map +0 -1
  204. package/lib/injection/classes/gjs/index.d.ts +0 -2
  205. package/lib/injection/classes/gjs/index.js +0 -5
  206. package/lib/injection/classes/gjs/index.js.map +0 -1
  207. package/lib/injection/classes/glib-2.0.d.ts +0 -2
  208. package/lib/injection/classes/glib-2.0.js +0 -35
  209. package/lib/injection/classes/glib-2.0.js.map +0 -1
  210. package/lib/injection/classes/index.d.ts +0 -3
  211. package/lib/injection/classes/index.js +0 -4
  212. package/lib/injection/classes/index.js.map +0 -1
  213. package/lib/injection/index.d.ts +0 -3
  214. package/lib/injection/index.js +0 -4
  215. package/lib/injection/index.js.map +0 -1
  216. package/lib/injection/injector.d.ts +0 -16
  217. package/lib/injection/injector.js +0 -138
  218. package/lib/injection/injector.js.map +0 -1
  219. package/lib/symtable.d.ts +0 -24
  220. package/lib/symtable.js +0 -63
  221. package/lib/symtable.js.map +0 -1
  222. package/lib/types/conflict-child-element.d.ts +0 -10
  223. package/lib/types/conflict-child-element.js +0 -2
  224. package/lib/types/conflict-child-element.js.map +0 -1
  225. package/lib/types/conflict-grouped-element.d.ts +0 -6
  226. package/lib/types/conflict-grouped-element.js +0 -2
  227. package/lib/types/conflict-grouped-element.js.map +0 -1
  228. package/lib/types/conflict-grouped-elements.d.ts +0 -4
  229. package/lib/types/conflict-grouped-elements.js +0 -2
  230. package/lib/types/conflict-grouped-elements.js.map +0 -1
  231. package/lib/types/generate-config.js +0 -2
  232. package/lib/types/generate-config.js.map +0 -1
  233. package/lib/types/injection-callback.d.ts +0 -16
  234. package/lib/types/injection-callback.js +0 -2
  235. package/lib/types/injection-callback.js.map +0 -1
  236. package/lib/types/injection-class.d.ts +0 -25
  237. package/lib/types/injection-class.js +0 -2
  238. package/lib/types/injection-class.js.map +0 -1
  239. package/lib/types/injection-function.d.ts +0 -7
  240. package/lib/types/injection-function.js +0 -2
  241. package/lib/types/injection-function.js.map +0 -1
  242. package/lib/types/injection-generic-parameter.d.ts +0 -2
  243. package/lib/types/injection-generic-parameter.js +0 -2
  244. package/lib/types/injection-generic-parameter.js.map +0 -1
  245. package/lib/types/injection-instance-parameter.d.ts +0 -2
  246. package/lib/types/injection-instance-parameter.js +0 -2
  247. package/lib/types/injection-instance-parameter.js.map +0 -1
  248. package/lib/types/injection-parameter.d.ts +0 -8
  249. package/lib/types/injection-parameter.js +0 -2
  250. package/lib/types/injection-parameter.js.map +0 -1
  251. package/lib/types/injection-property.d.ts +0 -4
  252. package/lib/types/injection-property.js +0 -2
  253. package/lib/types/injection-property.js.map +0 -1
  254. package/lib/types/injection-type.d.ts +0 -2
  255. package/lib/types/injection-type.js +0 -2
  256. package/lib/types/injection-type.js.map +0 -1
  257. package/lib/types/injection.d.ts +0 -5
  258. package/lib/types/injection.js +0 -2
  259. package/lib/types/injection.js.map +0 -1
  260. package/lib/types/promisify-func.d.ts +0 -7
  261. package/lib/types/promisify-func.js +0 -2
  262. package/lib/types/promisify-func.js.map +0 -1
  263. package/lib/types/sym-table-items.d.ts +0 -4
  264. package/lib/types/sym-table-items.js +0 -2
  265. package/lib/types/sym-table-items.js.map +0 -1
  266. package/lib/types/ts-alias.d.ts +0 -10
  267. package/lib/types/ts-alias.js +0 -2
  268. package/lib/types/ts-alias.js.map +0 -1
  269. package/lib/types/ts-callback-interface.d.ts +0 -10
  270. package/lib/types/ts-callback-interface.js +0 -2
  271. package/lib/types/ts-callback-interface.js.map +0 -1
  272. package/lib/types/ts-callback.d.ts +0 -17
  273. package/lib/types/ts-callback.js +0 -2
  274. package/lib/types/ts-callback.js.map +0 -1
  275. package/lib/types/ts-class.d.ts +0 -85
  276. package/lib/types/ts-class.js +0 -2
  277. package/lib/types/ts-class.js.map +0 -1
  278. package/lib/types/ts-enum.d.ts +0 -12
  279. package/lib/types/ts-enum.js +0 -2
  280. package/lib/types/ts-enum.js.map +0 -1
  281. package/lib/types/ts-function.d.ts +0 -55
  282. package/lib/types/ts-function.js +0 -2
  283. package/lib/types/ts-function.js.map +0 -1
  284. package/lib/types/ts-generic-parameter.d.ts +0 -8
  285. package/lib/types/ts-generic-parameter.js +0 -2
  286. package/lib/types/ts-generic-parameter.js.map +0 -1
  287. package/lib/types/ts-instance-parameter.d.ts +0 -4
  288. package/lib/types/ts-instance-parameter.js +0 -2
  289. package/lib/types/ts-instance-parameter.js.map +0 -1
  290. package/lib/types/ts-member.d.ts +0 -10
  291. package/lib/types/ts-member.js +0 -2
  292. package/lib/types/ts-member.js.map +0 -1
  293. package/lib/types/ts-method.d.ts +0 -5
  294. package/lib/types/ts-method.js +0 -2
  295. package/lib/types/ts-method.js.map +0 -1
  296. package/lib/types/ts-parameter.d.ts +0 -15
  297. package/lib/types/ts-parameter.js +0 -2
  298. package/lib/types/ts-parameter.js.map +0 -1
  299. package/lib/types/ts-property.d.ts +0 -17
  300. package/lib/types/ts-property.js +0 -2
  301. package/lib/types/ts-property.js.map +0 -1
  302. package/lib/types/ts-signal.d.ts +0 -17
  303. package/lib/types/ts-signal.js +0 -2
  304. package/lib/types/ts-signal.js.map +0 -1
  305. package/lib/types/ts-type-name.d.ts +0 -1
  306. package/lib/types/ts-type-name.js +0 -2
  307. package/lib/types/ts-type-name.js.map +0 -1
  308. package/lib/types/ts-type-separator.d.ts +0 -1
  309. package/lib/types/ts-type-separator.js +0 -2
  310. package/lib/types/ts-type-separator.js.map +0 -1
  311. package/lib/types/ts-type.d.ts +0 -26
  312. package/lib/types/ts-type.js +0 -2
  313. package/lib/types/ts-type.js.map +0 -1
  314. package/lib/types/ts-var.d.ts +0 -17
  315. package/lib/types/ts-var.js +0 -2
  316. package/lib/types/ts-var.js.map +0 -1
  317. package/lib/types.d.ts +0 -23
  318. package/lib/types.js +0 -2
  319. package/lib/types.js.map +0 -1
package/lib/gir-module.js CHANGED
@@ -1,11 +1,8 @@
1
1
  // TODO move this class into a web-worker? https://www.npmjs.com/package/web-worker
2
- /* eslint-disable @typescript-eslint/no-unused-vars */
3
- import { IGNORE_GIR_TYPE_TS_DOC_TYPES, Transformation } from './transformation.js';
2
+ import { Transformation } from './transformation.js';
4
3
  import { Logger } from './logger.js';
5
4
  import { DependencyManager } from './dependency-manager.js';
6
- import { find } from './utils.js';
7
- import { SymTable } from './symtable.js';
8
- import { LibraryVersion } from './library-version.js';
5
+ import { find, isIntrospectable } from './utils/index.js';
9
6
  import { ClosureType, TypeIdentifier, PromiseType, VoidType, BooleanType, TupleType, BinaryType, NullableType, ObjectType, } from './gir.js';
10
7
  import { IntrospectedAlias } from './gir/alias.js';
11
8
  import { IntrospectedBase } from './gir/base.js';
@@ -15,45 +12,79 @@ import { IntrospectedEnum, IntrospectedError } from './gir/enum.js';
15
12
  import { IntrospectedFunction, IntrospectedCallback, } from './gir/function.js';
16
13
  import { isPrimitiveType } from './gir/util.js';
17
14
  export class GirModule {
15
+ dependency;
18
16
  /**
19
17
  * E.g. 'Gtk'
20
18
  */
21
- namespace;
19
+ get namespace() {
20
+ return this.dependency.namespace;
21
+ }
22
22
  /**
23
23
  * E.g. '4.0'
24
24
  */
25
- version;
25
+ get version() {
26
+ return this.dependency.version;
27
+ }
26
28
  /**
27
29
  * E.g. 'Gtk-4.0'
28
30
  */
29
- packageName;
31
+ get packageName() {
32
+ return this.dependency.packageName;
33
+ }
30
34
  /**
31
35
  * E.g. 'Gtk40'
32
36
  * Is used in the generated index.d.ts, for example: `import * as Gtk40 from "./Gtk-4.0.js";`
33
37
  */
34
- importNamespace;
35
- importName;
38
+ get importNamespace() {
39
+ return this.dependency.importNamespace;
40
+ }
41
+ /**
42
+ * The NPM package name E.g. 'gtk-4.0'
43
+ */
44
+ get importName() {
45
+ return this.dependency.importName;
46
+ }
47
+ /**
48
+ * Import path for the package E.g. './Gtk-4.0.js' or '@girs/Gtk-4.0'
49
+ */
50
+ get importPath() {
51
+ return this.dependency.importPath;
52
+ }
36
53
  prefixes = [];
37
54
  /**
38
55
  * The version of the library as an object.
39
56
  * E.g. `{ major: 4, minor: 0, patch: 0 }` or as string `4.0.0`'
40
57
  */
41
- libraryVersion;
42
- dependencies = [];
43
- _transitiveDependencies = [];
44
- set transitiveDependencies(deps) {
45
- this._transitiveDependencies = this.checkTransitiveDependencies(deps);
58
+ get libraryVersion() {
59
+ // GObject and Gio are following the version of GLib
60
+ if (this.namespace === 'GObject' || this.namespace === 'Gio') {
61
+ const dep = this.allDependencies.find((girModule) => girModule.namespace === 'GLib');
62
+ if (dep) {
63
+ return dep.libraryVersion;
64
+ }
65
+ }
66
+ return this.dependency.libraryVersion;
67
+ }
68
+ _dependencies = null;
69
+ _transitiveDependencies = null;
70
+ get dependencies() {
71
+ if (!this._dependencies) {
72
+ throw new Error('dependencies is not initialized, run initDependencies() first');
73
+ }
74
+ return this._dependencies;
46
75
  }
47
76
  get transitiveDependencies() {
77
+ if (!this._transitiveDependencies) {
78
+ throw new Error('transitiveDependencies is not initialized, run initTransitiveDependencies() first');
79
+ }
48
80
  return this._transitiveDependencies;
49
81
  }
50
82
  get allDependencies() {
83
+ if (!this.dependencies) {
84
+ throw new Error('dependencies is not initialized, run init() first');
85
+ }
51
86
  return [...new Set([...this.dependencies, ...this.transitiveDependencies])];
52
87
  }
53
- /**
54
- * Used to find namespaces that are used in other modules
55
- */
56
- symTable;
57
88
  transformation;
58
89
  dependencyManager;
59
90
  log;
@@ -63,7 +94,6 @@ export class GirModule {
63
94
  * Please note: Such a case is only known for Zeitgeist-2.0 with the constant "ATTACHMENT"
64
95
  */
65
96
  constNames = {};
66
- name;
67
97
  c_prefixes;
68
98
  _members;
69
99
  _enum_constants;
@@ -72,67 +102,62 @@ export class GirModule {
72
102
  package_version;
73
103
  parent;
74
104
  config;
75
- constructor(repo, name, version, prefixes, config) {
76
- this.name = name;
77
- this.version = version;
105
+ constructor(dependency, prefixes, config) {
106
+ this.dependency = dependency;
78
107
  this.c_prefixes = [...prefixes];
79
108
  this.package_version = ['0', '0'];
80
109
  this.config = config;
110
+ // TODO: Make this a singleton
81
111
  this.dependencyManager = DependencyManager.getInstance(this.config);
82
- this.dependencies = this.dependencyManager.fromGirIncludes(repo.include || []);
112
+ }
113
+ async initDependencies() {
114
+ this._dependencies = await this.dependencyManager.fromGirIncludes(this.dependency.girXML?.repository[0]?.include || []);
115
+ }
116
+ async initTransitiveDependencies(transitiveDependencies) {
117
+ this._transitiveDependencies = await this.checkTransitiveDependencies(transitiveDependencies);
83
118
  }
84
119
  get ns() {
85
120
  return this;
86
121
  }
87
- checkTransitiveDependencies(transitiveDependencies) {
122
+ async checkTransitiveDependencies(transitiveDependencies) {
88
123
  // Always pull in GObject-2.0, as we may need it for e.g. GObject-2.0.type
89
124
  if (this.packageName !== 'GObject-2.0') {
90
125
  if (!find(transitiveDependencies, (x) => x.packageName === 'GObject-2.0')) {
91
- transitiveDependencies.push(this.dependencyManager.get('GObject', '2.0'));
126
+ transitiveDependencies.push(await this.dependencyManager.get('GObject', '2.0'));
92
127
  }
93
128
  }
94
129
  // Add missing dependencies
95
130
  if (this.packageName === 'UnityExtras-7.0') {
96
131
  if (!find(transitiveDependencies, (x) => x.packageName === 'Unity-7.0')) {
97
- transitiveDependencies.push(this.dependencyManager.get('Unity', '7.0'));
132
+ transitiveDependencies.push(await this.dependencyManager.get('Unity', '7.0'));
98
133
  }
99
134
  }
100
135
  if (this.packageName === 'UnityExtras-6.0') {
101
136
  if (!find(transitiveDependencies, (x) => x.packageName === 'Unity-6.0')) {
102
- transitiveDependencies.push(this.dependencyManager.get('Unity', '6.0'));
137
+ transitiveDependencies.push(await this.dependencyManager.get('Unity', '6.0'));
103
138
  }
104
139
  }
105
140
  if (this.packageName === 'GTop-2.0') {
106
141
  if (!find(transitiveDependencies, (x) => x.packageName === 'GLib-2.0')) {
107
- transitiveDependencies.push(this.dependencyManager.get('GLib', '2.0'));
142
+ transitiveDependencies.push(await this.dependencyManager.get('GLib', '2.0'));
108
143
  }
109
144
  }
110
- return transitiveDependencies;
111
- }
112
- getTsDoc(girDoc) {
113
- const tsDoc = {
114
- text: '',
115
- tags: [],
116
- };
117
- if (girDoc.doc?.[0]?._) {
118
- // TODO: Somehow _ is not a string
119
- let text = `${girDoc.doc?.[0]?._ || ''}`;
120
- text = this.transformation.transformGirDocText(text);
121
- tsDoc.text = text;
122
- }
123
- return tsDoc;
124
- }
125
- getTsDocGirElementTags(tsTypeName, girTypeName) {
126
- const tags = [];
127
- if (!girTypeName || IGNORE_GIR_TYPE_TS_DOC_TYPES.includes(girTypeName)) {
128
- return tags;
145
+ // Gio
146
+ if (this.packageName === 'GioUnix-2.0') {
147
+ if (!find(transitiveDependencies, (x) => x.packageName === 'Gio-2.0')) {
148
+ transitiveDependencies.push(await this.dependencyManager.get('Gio', '2.0'));
149
+ }
150
+ if (!find(transitiveDependencies, (x) => x.packageName === 'GLib-2.0')) {
151
+ transitiveDependencies.push(await this.dependencyManager.get('GLib', '2.0'));
152
+ }
129
153
  }
130
- tags.push({
131
- tagName: girTypeName,
132
- paramName: '',
133
- text: '',
154
+ // Filter out the dependency with the same namespace among each other
155
+ transitiveDependencies = transitiveDependencies.filter((dep, index, self) => {
156
+ const samePackage = self.findIndex((t) => t.namespace === dep.namespace);
157
+ this.log.debug(`Filtering out dependency with same namespace: ${dep.namespace} ${index} ${samePackage}`);
158
+ return index === samePackage;
134
159
  });
135
- return tags;
160
+ return transitiveDependencies;
136
161
  }
137
162
  getTsDocReturnTags(girElement) {
138
163
  const girReturnValue = girElement?.returnTypeDoc;
@@ -200,58 +225,58 @@ export class GirModule {
200
225
  hasImport(name) {
201
226
  return this.dependencies.some((dep) => dep.importName === name);
202
227
  }
203
- _getImport(name) {
204
- if (name === this.name) {
228
+ _getImport(namespace) {
229
+ if (namespace === this.namespace) {
205
230
  return this;
206
231
  }
207
- const dep = this.dependencies.find((dep) => dep.namespace === name) ??
208
- this.transitiveDependencies.find((dep) => dep.namespace === name);
232
+ const dep = this.dependencies?.find((dep) => dep.namespace === namespace) ??
233
+ this.transitiveDependencies.find((dep) => dep.namespace === namespace);
209
234
  // Handle finding imports via their other prefixes
210
235
  if (!dep) {
211
- this.log.info(`Failed to find namespace ${name} in dependencies, resolving via c:prefixes`);
236
+ this.log.info(`Failed to find namespace ${namespace} in dependencies, resolving via c:prefixes`);
212
237
  // TODO: It might make more sense to move this conversion _before_
213
238
  // the _getImport call.
214
- const resolvedNamespaces = this.dependencyManager.namespacesForPrefix(name);
239
+ const resolvedNamespaces = this.dependencyManager.namespacesForPrefix(namespace);
215
240
  if (resolvedNamespaces.length > 0) {
216
- this.log.info(`Found namespaces for prefix ${name}: ${resolvedNamespaces.map((r) => `${r.name} (${r.version})`).join(', ')}`);
241
+ this.log.info(`Found namespaces for prefix ${namespace}: ${resolvedNamespaces.map((r) => `${r.namespace} (${r.version})`).join(', ')}`);
217
242
  }
218
243
  for (const resolvedNamespace of resolvedNamespaces) {
219
- if (resolvedNamespace.name === this.name && resolvedNamespace.version === this.version) {
244
+ if (resolvedNamespace.namespace === this.namespace && resolvedNamespace.version === this.version) {
220
245
  return this;
221
246
  }
222
- const dep = this.dependencies.find((dep) => dep.namespace === resolvedNamespace.name && dep.version === resolvedNamespace.version) ??
223
- this.transitiveDependencies.find((dep) => dep.namespace === resolvedNamespace.name && dep.version === resolvedNamespace.version);
247
+ const dep = this.dependencies?.find((dep) => dep.namespace === resolvedNamespace.namespace && dep.version === resolvedNamespace.version) ??
248
+ this.transitiveDependencies.find((dep) => dep.namespace === resolvedNamespace.namespace && dep.version === resolvedNamespace.version);
224
249
  if (dep) {
225
- return this.parent.namespace(resolvedNamespace.name, dep.version);
250
+ return this.parent.namespace(resolvedNamespace.namespace, dep.version);
226
251
  }
227
252
  }
228
253
  }
229
254
  let version = dep?.version;
230
255
  if (!version) {
231
- version = this.parent.assertDefaultVersionOf(name);
256
+ version = this.parent.assertDefaultVersionOf(namespace);
232
257
  }
233
- return this.parent.namespace(name, version);
258
+ return this.parent.namespace(namespace, version);
234
259
  }
235
- getInstalledImport(name) {
236
- if (name === this.name) {
260
+ getInstalledImport(_namespace) {
261
+ if (_namespace === this.namespace) {
237
262
  return this;
238
263
  }
239
- const dep = this.dependencies.find((dep) => dep.namespace === name) ??
240
- this.transitiveDependencies.find((dep) => dep.namespace === name);
264
+ const dep = this.dependencies?.find((dep) => dep.namespace === _namespace) ??
265
+ this.transitiveDependencies.find((dep) => dep.namespace === _namespace);
241
266
  let version = dep?.version;
242
267
  if (!version) {
243
- version = this.parent.defaultVersionOf(name) ?? undefined;
268
+ version = this.parent.defaultVersionOf(_namespace) ?? undefined;
244
269
  }
245
270
  if (!version) {
246
271
  return null;
247
272
  }
248
- const namespace = this.parent.namespace(name, version);
273
+ const namespace = this.parent.namespace(_namespace, version);
249
274
  return namespace;
250
275
  }
251
- assertInstalledImport(name) {
252
- const namespace = this._getImport(name);
276
+ assertInstalledImport(_namespace) {
277
+ const namespace = this._getImport(_namespace);
253
278
  if (!namespace) {
254
- throw new Error(`Failed to import ${name} in ${this.name}, not installed or accessible.`);
279
+ throw new Error(`Failed to import ${_namespace} in ${this.namespace}, not installed or accessible.`);
255
280
  }
256
281
  return namespace;
257
282
  }
@@ -282,7 +307,7 @@ export class GirModule {
282
307
  assertClass(name) {
283
308
  const clazz = this.getClass(name);
284
309
  if (!clazz) {
285
- throw new Error(`Class ${name} does not exist in namespace ${this.name}.`);
310
+ throw new Error(`[${this.packageName}] Class ${name} does not exist in namespace ${this.namespace}.`);
286
311
  }
287
312
  return clazz;
288
313
  }
@@ -342,22 +367,17 @@ export class GirModule {
342
367
  this.__dts__references ??= [];
343
368
  this.__dts__references.push(reference);
344
369
  }
345
- static load(repo, config, registry) {
346
- const ns = repo.repository[0]?.namespace?.[0];
347
- if (!ns)
348
- throw new Error(`Missing namespace in ${repo.repository[0].package[0].$.name}`);
370
+ static async load(dependency, config, registry) {
371
+ const girXML = dependency.girXML;
372
+ const ns = girXML?.repository[0]?.namespace?.[0];
373
+ if (!girXML) {
374
+ throw new Error(`Failed to load gir xml of ${dependency.packageName}`);
375
+ }
376
+ if (!ns) {
377
+ throw new Error(`Missing namespace in ${girXML.repository[0].package[0].$.name}`);
378
+ }
349
379
  const modName = ns.$['name'];
350
380
  const version = ns.$['version'];
351
- // TODO: Hardcoding HarfBuzz here leads to issues when loading...
352
- // Hardcode harfbuzz version for now...
353
- // if (modName === 'HarfBuzz' && version === '0.0') {
354
- // version = '2.0'
355
- // }
356
- const options = {
357
- loadDocs: !config.noComments,
358
- propertyCase: 'both',
359
- verbose: config.verbose,
360
- };
361
381
  if (!modName) {
362
382
  throw new Error('Invalid GIR file: no namespace name specified.');
363
383
  }
@@ -365,112 +385,130 @@ export class GirModule {
365
385
  throw new Error('Invalid GIR file: no version name specified.');
366
386
  }
367
387
  const c_prefix = ns.$?.['c:identifier-prefixes']?.split(',') ?? [];
368
- if (options.verbose) {
369
- console.debug(`Parsing ${modName}...`);
370
- }
371
- const building = new GirModule(repo.repository[0], modName, version, c_prefix, config);
388
+ const building = new GirModule(dependency, c_prefix, config);
389
+ await building.initDependencies();
372
390
  building.parent = registry;
373
391
  // Set the namespace object here to prevent re-parsing the namespace if
374
392
  // another namespace imports it.
375
393
  registry.register(building);
376
- const prefixes = repo.repository[0]?.$?.['c:identifier-prefixes']?.split(',');
394
+ const prefixes = girXML.repository[0]?.$?.['c:identifier-prefixes']?.split(',');
377
395
  const unknownPrefixes = prefixes?.filter((pre) => pre !== modName);
378
396
  if (unknownPrefixes && unknownPrefixes.length > 0) {
379
- console.log(`Found additional prefixes for ${modName}: ${unknownPrefixes.join(', ')}`);
397
+ Logger.log(`Found additional prefixes for ${modName}: ${unknownPrefixes.join(', ')}`);
380
398
  building.prefixes.push(...unknownPrefixes);
381
399
  }
400
+ building.transformation = Transformation.getSingleton(config);
401
+ building.log = new Logger(config.verbose, `GirModule(${building.packageName})`);
402
+ return building;
403
+ }
404
+ /** Start to parse all the data from the XML we need for the typescript generation */
405
+ parse() {
406
+ this.log.debug(`Parsing ${this.dependency.packageName}...`);
407
+ const girXML = this.dependency.girXML;
408
+ const ns = girXML?.repository[0]?.namespace?.[0];
409
+ const options = {
410
+ loadDocs: !this.config.noComments,
411
+ propertyCase: 'both',
412
+ verbose: this.config.verbose,
413
+ };
414
+ if (!girXML) {
415
+ throw new Error(`Failed to load gir xml of ${this.dependency.packageName}`);
416
+ }
417
+ if (!ns) {
418
+ throw new Error(`Missing namespace in ${girXML.repository[0].package[0].$.name}`);
419
+ }
382
420
  const importConflicts = (el) => {
383
- return !building.hasImport(el.name);
421
+ return !this.hasImport(el.name);
384
422
  };
385
423
  if (ns.enumeration) {
386
424
  // Get the requested enums
387
425
  ns.enumeration
388
426
  ?.map((enumeration) => {
389
427
  if (enumeration.$['glib:error-domain']) {
390
- return IntrospectedError.fromXML(enumeration, building, options);
428
+ return IntrospectedError.fromXML(enumeration, this, options);
391
429
  }
392
430
  else {
393
- return IntrospectedEnum.fromXML(enumeration, building, options);
431
+ return IntrospectedEnum.fromXML(enumeration, this, options);
394
432
  }
395
433
  })
396
- .forEach((c) => building.members.set(c.name, c));
434
+ .forEach((c) => this.members.set(c.name, c));
397
435
  }
398
436
  // Constants
399
437
  if (ns.constant) {
400
438
  ns.constant
401
439
  ?.filter(isIntrospectable)
402
- .map((constant) => IntrospectedConstant.fromXML(constant, building, options))
440
+ .map((constant) => IntrospectedConstant.fromXML(constant, this, options))
403
441
  .filter(importConflicts)
404
- .forEach((c) => building.members.set(c.name, c));
442
+ .forEach((c) => this.members.set(c.name, c));
405
443
  }
406
444
  // Get the requested functions
407
445
  if (ns.function) {
408
446
  ns.function
409
447
  ?.filter(isIntrospectable)
410
- .map((func) => IntrospectedFunction.fromXML(func, building, options))
448
+ .map((func) => IntrospectedFunction.fromXML(func, this, options))
411
449
  .filter(importConflicts)
412
- .forEach((c) => building.members.set(c.name, c));
450
+ .forEach((c) => this.members.set(c.name, c));
413
451
  }
414
452
  if (ns.callback) {
415
453
  ns.callback
416
454
  ?.filter(isIntrospectable)
417
- .map((callback) => IntrospectedCallback.fromXML(callback, building, options))
455
+ .map((callback) => IntrospectedCallback.fromXML(callback, this, options))
418
456
  .filter(importConflicts)
419
- .forEach((c) => building.members.set(c.name, c));
457
+ .forEach((c) => this.members.set(c.name, c));
420
458
  }
421
459
  if (ns['glib:boxed']) {
422
460
  ns['glib:boxed']
423
461
  ?.filter(isIntrospectable)
424
462
  .map((boxed) => new IntrospectedAlias({
425
463
  name: boxed.$['glib:name'],
426
- namespace: building,
464
+ namespace: this,
427
465
  type: new NullableType(ObjectType),
428
466
  }))
429
- .forEach((c) => building.members.set(c.name, c));
467
+ .forEach((c) => this.members.set(c.name, c));
430
468
  }
431
469
  // Bitfield is a type of enum
432
470
  if (ns.bitfield) {
433
471
  ns.bitfield
434
472
  ?.filter(isIntrospectable)
435
- .map((field) => IntrospectedEnum.fromXML(field, building, options, true))
436
- .forEach((c) => building.members.set(c.name, c));
473
+ .map((field) => IntrospectedEnum.fromXML(field, this, options, true))
474
+ .forEach((c) => this.members.set(c.name, c));
437
475
  }
438
476
  // The `enum_constants` map maps the C identifiers (GTK_BUTTON_TYPE_Y)
439
477
  // to the name of the enum (Button) to resolve references (Gtk.Button.Y)
440
- Array.from(building.members.values())
478
+ Array.from(this.members.values())
441
479
  .filter((m) => m instanceof IntrospectedEnum)
442
480
  .forEach((m) => {
443
481
  m.members.forEach((member) => {
444
- building.enum_constants.set(member.c_identifier, [m.name, member.name]);
482
+ this.enum_constants.set(member.c_identifier, [m.name, member.name]);
445
483
  });
446
484
  });
447
485
  // Get the requested classes
448
486
  if (ns.class) {
449
487
  ns.class
450
488
  ?.filter(isIntrospectable)
451
- .map((klass) => IntrospectedClass.fromXML(klass, building, options))
489
+ .map((klass) => IntrospectedClass.fromXML(klass, this, options))
452
490
  .filter(importConflicts)
453
- .forEach((c) => building.members.set(c.name, c));
491
+ .forEach((c) => this.members.set(c.name, c));
454
492
  }
455
493
  if (ns.record) {
456
494
  ns.record
457
495
  ?.filter(isIntrospectable)
458
- .map((record) => IntrospectedRecord.fromXML(record, building, options))
496
+ .map((record) => IntrospectedRecord.fromXML(record, this, options))
459
497
  .filter(importConflicts)
460
- .forEach((c) => building.members.set(c.name, c));
498
+ .forEach((c) => this.members.set(c.name, c));
461
499
  }
462
500
  if (ns.union) {
463
501
  ns.union
464
502
  ?.filter(isIntrospectable)
465
- .map((union) => IntrospectedRecord.fromXML(union, building, options))
503
+ .map((union) => IntrospectedRecord.fromXML(union, this, options))
466
504
  .filter(importConflicts)
467
- .forEach((c) => building.members.set(c.name, c));
505
+ .forEach((c) => this.members.set(c.name, c));
468
506
  }
469
507
  if (ns.interface) {
470
508
  ns.interface
471
- ?.map((inter) => IntrospectedInterface.fromXML(inter, building, options))
509
+ ?.map((inter) => IntrospectedInterface.fromXML(inter, this, options))
472
510
  .filter(importConflicts)
473
- .forEach((c) => building.members.set(c.name, c));
511
+ .forEach((c) => this.members.set(c.name, c));
474
512
  }
475
513
  if (ns.alias) {
476
514
  ns.alias
@@ -481,7 +519,7 @@ export class GirModule {
481
519
  ?.filter((t) => !!(t && t.$.name))
482
520
  .map((t) => {
483
521
  if (t.$.name &&
484
- !building.hasSymbol(t.$.name) &&
522
+ !this.hasSymbol(t.$.name) &&
485
523
  !isPrimitiveType(t.$.name) &&
486
524
  !t.$.name.includes('.')) {
487
525
  return { $: { name: 'unknown', 'c:type': 'unknown' } };
@@ -490,38 +528,12 @@ export class GirModule {
490
528
  });
491
529
  return b;
492
530
  })
493
- .map((alias) => IntrospectedAlias.fromXML(alias, building, options))
531
+ .map((alias) => IntrospectedAlias.fromXML(alias, this, options))
494
532
  .filter((alias) => alias != null)
495
- .forEach((c) => building.members.set(c.name, c));
496
- }
497
- building.namespace = building.ns.name;
498
- building.version = building.ns.version;
499
- building.packageName = `${building.namespace}-${building.version}`;
500
- building.libraryVersion = new LibraryVersion(ns.constant, building.version);
501
- building.transformation = new Transformation(config);
502
- building.log = new Logger(config.verbose, building.packageName || 'GirModule');
503
- building.importNamespace = building.transformation.transformModuleNamespaceName(building.packageName);
504
- building.importName = building.transformation.transformImportName(building.packageName);
505
- building.symTable = new SymTable(building.config, building.packageName, building.namespace);
506
- return building;
507
- }
508
- /**
509
- * Start processing the typescript data
510
- */
511
- start(girModules) {
512
- // GObject and Gio are following the version of GLib
513
- if (this.namespace === 'GObject' || this.namespace === 'Gio') {
514
- const glibModule = girModules.find((girModule) => girModule.namespace === 'GLib');
515
- if (glibModule) {
516
- this.libraryVersion = glibModule.libraryVersion;
517
- }
533
+ .forEach((c) => this.members.set(c.name, c));
518
534
  }
519
535
  }
520
536
  }
521
- export const isIntrospectable = (e) => !e || !e.$ || !e.$.introspectable || e.$.introspectable === '1';
522
- export const isDeprecated = (e) => e && e.$ && e.$.deprecated === '1';
523
- export const deprecatedVersion = (e) => e?.$?.['deprecated-version'];
524
- export const introducedVersion = (e) => e?.$?.version;
525
537
  export function promisifyNamespaceFunctions(namespace) {
526
538
  return namespace.members.forEach((node) => {
527
539
  if (!(node instanceof IntrospectedFunction))
@@ -1 +1 @@
1
- {"version":3,"file":"gir-module.js","sourceRoot":"","sources":["../src/gir-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gir-module.js","sourceRoot":"","sources":["../src/gir-module.ts"],"names":[],"mappings":"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"}