@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.
- package/README.md +22 -0
- package/lib/conflict-resolver.d.ts +155 -0
- package/lib/conflict-resolver.js +1103 -0
- package/lib/conflict-resolver.js.map +1 -0
- package/lib/constants.d.ts +18 -0
- package/lib/constants.js +23 -0
- package/lib/constants.js.map +1 -0
- package/lib/dependency-manager.d.ts +34 -0
- package/lib/dependency-manager.js +78 -0
- package/lib/dependency-manager.js.map +1 -0
- package/lib/gir-factory.d.ts +52 -0
- package/lib/gir-factory.js +376 -0
- package/lib/gir-factory.js.map +1 -0
- package/lib/gir-module.d.ts +259 -0
- package/lib/gir-module.js +2181 -0
- package/lib/gir-module.js.map +1 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.js +15 -0
- package/lib/index.js.map +1 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +2 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.js +36 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.js.map +1 -0
- package/lib/injection/callbacks/gjs/index.d.ts +2 -0
- package/lib/injection/callbacks/gjs/index.js +3 -0
- package/lib/injection/callbacks/gjs/index.js.map +1 -0
- package/lib/injection/callbacks/index.d.ts +4 -0
- package/lib/injection/callbacks/index.js +4 -0
- package/lib/injection/callbacks/index.js.map +1 -0
- package/lib/injection/callbacks/node-gtk/index.d.ts +2 -0
- package/lib/injection/callbacks/node-gtk/index.js +2 -0
- package/lib/injection/callbacks/node-gtk/index.js.map +1 -0
- package/lib/injection/classes/GLib-2-0.d.ts +2 -0
- package/lib/injection/classes/GLib-2-0.js +35 -0
- package/lib/injection/classes/GLib-2-0.js.map +1 -0
- package/lib/injection/classes/gjs/GLib-2.0.d.ts +2 -0
- package/lib/injection/classes/gjs/GLib-2.0.js +205 -0
- package/lib/injection/classes/gjs/GLib-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/GObject-2.0.d.ts +2 -0
- package/lib/injection/classes/gjs/GObject-2.0.js +634 -0
- package/lib/injection/classes/gjs/GObject-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/Gio-2.0.d.ts +5 -0
- package/lib/injection/classes/gjs/Gio-2.0.js +218 -0
- package/lib/injection/classes/gjs/Gio-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/index.d.ts +2 -0
- package/lib/injection/classes/gjs/index.js +5 -0
- package/lib/injection/classes/gjs/index.js.map +1 -0
- package/lib/injection/classes/index.d.ts +4 -0
- package/lib/injection/classes/index.js +5 -0
- package/lib/injection/classes/index.js.map +1 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.js +19 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.js +66 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.js +32 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.js +14 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.js +133 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.js +31 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.js +52 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.js +31 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/index.d.ts +2 -0
- package/lib/injection/classes/node-gtk/index.js +19 -0
- package/lib/injection/classes/node-gtk/index.js.map +1 -0
- package/lib/injection/index.d.ts +3 -0
- package/lib/injection/index.js +4 -0
- package/lib/injection/index.js.map +1 -0
- package/lib/injection/injector.d.ts +17 -0
- package/lib/injection/injector.js +139 -0
- package/lib/injection/injector.js.map +1 -0
- package/lib/logger.d.ts +36 -0
- package/lib/logger.js +137 -0
- package/lib/logger.js.map +1 -0
- package/lib/messages.d.ts +31 -0
- package/lib/messages.js +46 -0
- package/lib/messages.js.map +1 -0
- package/lib/symtable.d.ts +24 -0
- package/lib/symtable.js +63 -0
- package/lib/symtable.js.map +1 -0
- package/lib/template-processor.d.ts +74 -0
- package/lib/template-processor.js +165 -0
- package/lib/template-processor.js.map +1 -0
- package/lib/transformation.d.ts +156 -0
- package/lib/transformation.js +524 -0
- package/lib/transformation.js.map +1 -0
- package/lib/types/answer-version.d.ts +4 -0
- package/lib/types/answer-version.js +2 -0
- package/lib/types/answer-version.js.map +1 -0
- package/lib/types/build-type.d.ts +1 -0
- package/lib/types/build-type.js +2 -0
- package/lib/types/build-type.js.map +1 -0
- package/lib/types/class-parent.d.ts +13 -0
- package/lib/types/class-parent.js +2 -0
- package/lib/types/class-parent.js.map +1 -0
- package/lib/types/config-flags.d.ts +4 -0
- package/lib/types/config-flags.js +2 -0
- package/lib/types/config-flags.js.map +1 -0
- package/lib/types/conflict-child-element.d.ts +10 -0
- package/lib/types/conflict-child-element.js +2 -0
- package/lib/types/conflict-child-element.js.map +1 -0
- package/lib/types/conflict-grouped-element.d.ts +6 -0
- package/lib/types/conflict-grouped-element.js +2 -0
- package/lib/types/conflict-grouped-element.js.map +1 -0
- package/lib/types/conflict-grouped-elements.d.ts +4 -0
- package/lib/types/conflict-grouped-elements.js +2 -0
- package/lib/types/conflict-grouped-elements.js.map +1 -0
- package/lib/types/construct-name.d.ts +1 -0
- package/lib/types/construct-name.js +2 -0
- package/lib/types/construct-name.js.map +1 -0
- package/lib/types/dependency-map.d.ts +4 -0
- package/lib/types/dependency-map.js +2 -0
- package/lib/types/dependency-map.js.map +1 -0
- package/lib/types/dependency.d.ts +15 -0
- package/lib/types/dependency.js +2 -0
- package/lib/types/dependency.js.map +1 -0
- package/lib/types/environment.d.ts +1 -0
- package/lib/types/environment.js +2 -0
- package/lib/types/environment.js.map +1 -0
- package/lib/types/file-info.d.ts +14 -0
- package/lib/types/file-info.js +2 -0
- package/lib/types/file-info.js.map +1 -0
- package/lib/types/generate-config.d.ts +34 -0
- package/lib/types/generate-config.js +2 -0
- package/lib/types/generate-config.js.map +1 -0
- package/lib/types/gir-alias-element.d.ts +13 -0
- package/lib/types/gir-alias-element.js +2 -0
- package/lib/types/gir-alias-element.js.map +1 -0
- package/lib/types/gir-annotation.d.ts +9 -0
- package/lib/types/gir-annotation.js +2 -0
- package/lib/types/gir-annotation.js.map +1 -0
- package/lib/types/gir-any-element.d.ts +2 -0
- package/lib/types/gir-any-element.js +2 -0
- package/lib/types/gir-any-element.js.map +1 -0
- package/lib/types/gir-any-type.d.ts +5 -0
- package/lib/types/gir-any-type.js +2 -0
- package/lib/types/gir-any-type.js.map +1 -0
- package/lib/types/gir-array-type.d.ts +20 -0
- package/lib/types/gir-array-type.js +3 -0
- package/lib/types/gir-array-type.js.map +1 -0
- package/lib/types/gir-bitfield-element.d.ts +17 -0
- package/lib/types/gir-bitfield-element.js +2 -0
- package/lib/types/gir-bitfield-element.js.map +1 -0
- package/lib/types/gir-boolean.d.ts +1 -0
- package/lib/types/gir-boolean.js +2 -0
- package/lib/types/gir-boolean.js.map +1 -0
- package/lib/types/gir-boxed-element.d.ts +15 -0
- package/lib/types/gir-boxed-element.js +2 -0
- package/lib/types/gir-boxed-element.js.map +1 -0
- package/lib/types/gir-c-include.d.ts +7 -0
- package/lib/types/gir-c-include.js +2 -0
- package/lib/types/gir-c-include.js.map +1 -0
- package/lib/types/gir-callable-attrs.d.ts +15 -0
- package/lib/types/gir-callable-attrs.js +3 -0
- package/lib/types/gir-callable-attrs.js.map +1 -0
- package/lib/types/gir-callable-param-element.d.ts +30 -0
- package/lib/types/gir-callable-param-element.js +2 -0
- package/lib/types/gir-callable-param-element.js.map +1 -0
- package/lib/types/gir-callable-param.d.ts +7 -0
- package/lib/types/gir-callable-param.js +2 -0
- package/lib/types/gir-callable-param.js.map +1 -0
- package/lib/types/gir-callable-return.d.ts +22 -0
- package/lib/types/gir-callable-return.js +2 -0
- package/lib/types/gir-callable-return.js.map +1 -0
- package/lib/types/gir-callback-element.d.ts +15 -0
- package/lib/types/gir-callback-element.js +2 -0
- package/lib/types/gir-callback-element.js.map +1 -0
- package/lib/types/gir-class-element.d.ts +48 -0
- package/lib/types/gir-class-element.js +2 -0
- package/lib/types/gir-class-element.js.map +1 -0
- package/lib/types/gir-constant-element.d.ts +15 -0
- package/lib/types/gir-constant-element.js +2 -0
- package/lib/types/gir-constant-element.js.map +1 -0
- package/lib/types/gir-constructor-element.d.ts +8 -0
- package/lib/types/gir-constructor-element.js +2 -0
- package/lib/types/gir-constructor-element.js.map +1 -0
- package/lib/types/gir-direction.d.ts +5 -0
- package/lib/types/gir-direction.js +7 -0
- package/lib/types/gir-direction.js.map +1 -0
- package/lib/types/gir-doc-element.d.ts +68 -0
- package/lib/types/gir-doc-element.js +2 -0
- package/lib/types/gir-doc-element.js.map +1 -0
- package/lib/types/gir-enum-element.d.ts +19 -0
- package/lib/types/gir-enum-element.js +2 -0
- package/lib/types/gir-enum-element.js.map +1 -0
- package/lib/types/gir-field-element.d.ts +18 -0
- package/lib/types/gir-field-element.js +2 -0
- package/lib/types/gir-field-element.js.map +1 -0
- package/lib/types/gir-function-element.d.ts +8 -0
- package/lib/types/gir-function-element.js +2 -0
- package/lib/types/gir-function-element.js.map +1 -0
- package/lib/types/gir-implements.d.ts +8 -0
- package/lib/types/gir-implements.js +2 -0
- package/lib/types/gir-implements.js.map +1 -0
- package/lib/types/gir-include.d.ts +9 -0
- package/lib/types/gir-include.js +2 -0
- package/lib/types/gir-include.js.map +1 -0
- package/lib/types/gir-info-attrs.d.ts +13 -0
- package/lib/types/gir-info-attrs.js +2 -0
- package/lib/types/gir-info-attrs.js.map +1 -0
- package/lib/types/gir-info-elements.d.ts +5 -0
- package/lib/types/gir-info-elements.js +2 -0
- package/lib/types/gir-info-elements.js.map +1 -0
- package/lib/types/gir-instance-parameter.d.ts +21 -0
- package/lib/types/gir-instance-parameter.js +2 -0
- package/lib/types/gir-instance-parameter.js.map +1 -0
- package/lib/types/gir-interface-element.d.ts +31 -0
- package/lib/types/gir-interface-element.js +2 -0
- package/lib/types/gir-interface-element.js.map +1 -0
- package/lib/types/gir-member-element.d.ts +17 -0
- package/lib/types/gir-member-element.js +2 -0
- package/lib/types/gir-member-element.js.map +1 -0
- package/lib/types/gir-method-element.d.ts +13 -0
- package/lib/types/gir-method-element.js +2 -0
- package/lib/types/gir-method-element.js.map +1 -0
- package/lib/types/gir-module-resolved-by.d.ts +10 -0
- package/lib/types/gir-module-resolved-by.js +2 -0
- package/lib/types/gir-module-resolved-by.js.map +1 -0
- package/lib/types/gir-modules-grouped-map.d.ts +4 -0
- package/lib/types/gir-modules-grouped-map.js +2 -0
- package/lib/types/gir-modules-grouped-map.js.map +1 -0
- package/lib/types/gir-modules-grouped.d.ts +12 -0
- package/lib/types/gir-modules-grouped.js +2 -0
- package/lib/types/gir-modules-grouped.js.map +1 -0
- package/lib/types/gir-namespace.d.ts +30 -0
- package/lib/types/gir-namespace.js +2 -0
- package/lib/types/gir-namespace.js.map +1 -0
- package/lib/types/gir-package.d.ts +7 -0
- package/lib/types/gir-package.js +2 -0
- package/lib/types/gir-package.js.map +1 -0
- package/lib/types/gir-prerequisite.d.ts +5 -0
- package/lib/types/gir-prerequisite.js +2 -0
- package/lib/types/gir-prerequisite.js.map +1 -0
- package/lib/types/gir-property-element.d.ts +21 -0
- package/lib/types/gir-property-element.js +2 -0
- package/lib/types/gir-property-element.js.map +1 -0
- package/lib/types/gir-record-element.d.ts +30 -0
- package/lib/types/gir-record-element.js +2 -0
- package/lib/types/gir-record-element.js.map +1 -0
- package/lib/types/gir-repository.d.ts +16 -0
- package/lib/types/gir-repository.js +2 -0
- package/lib/types/gir-repository.js.map +1 -0
- package/lib/types/gir-signal.d.ts +25 -0
- package/lib/types/gir-signal.js +2 -0
- package/lib/types/gir-signal.js.map +1 -0
- package/lib/types/gir-transfer-ownership-type.d.ts +5 -0
- package/lib/types/gir-transfer-ownership-type.js +7 -0
- package/lib/types/gir-transfer-ownership-type.js.map +1 -0
- package/lib/types/gir-transfer-ownership.d.ts +5 -0
- package/lib/types/gir-transfer-ownership.js +2 -0
- package/lib/types/gir-transfer-ownership.js.map +1 -0
- package/lib/types/gir-type.d.ts +14 -0
- package/lib/types/gir-type.js +2 -0
- package/lib/types/gir-type.js.map +1 -0
- package/lib/types/gir-union-element.d.ts +22 -0
- package/lib/types/gir-union-element.js +2 -0
- package/lib/types/gir-union-element.js.map +1 -0
- package/lib/types/gir-unparsed-number.d.ts +2 -0
- package/lib/types/gir-unparsed-number.js +2 -0
- package/lib/types/gir-unparsed-number.js.map +1 -0
- package/lib/types/gir-var-args.d.ts +5 -0
- package/lib/types/gir-var-args.js +2 -0
- package/lib/types/gir-var-args.js.map +1 -0
- package/lib/types/gir-virtual-method.d.ts +10 -0
- package/lib/types/gir-virtual-method.js +2 -0
- package/lib/types/gir-virtual-method.js.map +1 -0
- package/lib/types/index.d.ts +119 -0
- package/lib/types/index.js +120 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/inheritance-table.d.ts +3 -0
- package/lib/types/inheritance-table.js +2 -0
- package/lib/types/inheritance-table.js.map +1 -0
- package/lib/types/injection-callback.d.ts +16 -0
- package/lib/types/injection-callback.js +2 -0
- package/lib/types/injection-callback.js.map +1 -0
- package/lib/types/injection-class.d.ts +25 -0
- package/lib/types/injection-class.js +2 -0
- package/lib/types/injection-class.js.map +1 -0
- package/lib/types/injection-function.d.ts +7 -0
- package/lib/types/injection-function.js +2 -0
- package/lib/types/injection-function.js.map +1 -0
- package/lib/types/injection-generic-parameter.d.ts +2 -0
- package/lib/types/injection-generic-parameter.js +2 -0
- package/lib/types/injection-generic-parameter.js.map +1 -0
- package/lib/types/injection-instance-parameter.d.ts +2 -0
- package/lib/types/injection-instance-parameter.js +2 -0
- package/lib/types/injection-instance-parameter.js.map +1 -0
- package/lib/types/injection-parameter.d.ts +8 -0
- package/lib/types/injection-parameter.js +2 -0
- package/lib/types/injection-parameter.js.map +1 -0
- package/lib/types/injection-property.d.ts +4 -0
- package/lib/types/injection-property.js +2 -0
- package/lib/types/injection-property.js.map +1 -0
- package/lib/types/injection-type.d.ts +2 -0
- package/lib/types/injection-type.js +2 -0
- package/lib/types/injection-type.js.map +1 -0
- package/lib/types/injection.d.ts +5 -0
- package/lib/types/injection.js +2 -0
- package/lib/types/injection.js.map +1 -0
- package/lib/types/local-name-check.d.ts +4 -0
- package/lib/types/local-name-check.js +2 -0
- package/lib/types/local-name-check.js.map +1 -0
- package/lib/types/local-name-type.d.ts +1 -0
- package/lib/types/local-name-type.js +2 -0
- package/lib/types/local-name-type.js.map +1 -0
- package/lib/types/local-name.d.ts +7 -0
- package/lib/types/local-name.js +2 -0
- package/lib/types/local-name.js.map +1 -0
- package/lib/types/local-names.d.ts +4 -0
- package/lib/types/local-names.js +2 -0
- package/lib/types/local-names.js.map +1 -0
- package/lib/types/module-type.d.ts +1 -0
- package/lib/types/module-type.js +2 -0
- package/lib/types/module-type.js.map +1 -0
- package/lib/types/parsed-gir.d.ts +4 -0
- package/lib/types/parsed-gir.js +2 -0
- package/lib/types/parsed-gir.js.map +1 -0
- package/lib/types/part-of-class.d.ts +7 -0
- package/lib/types/part-of-class.js +2 -0
- package/lib/types/part-of-class.js.map +1 -0
- package/lib/types/part-of-module.d.ts +6 -0
- package/lib/types/part-of-module.js +2 -0
- package/lib/types/part-of-module.js.map +1 -0
- package/lib/types/promisify-func.d.ts +7 -0
- package/lib/types/promisify-func.js +2 -0
- package/lib/types/promisify-func.js.map +1 -0
- package/lib/types/resolve-type.d.ts +4 -0
- package/lib/types/resolve-type.js +6 -0
- package/lib/types/resolve-type.js.map +1 -0
- package/lib/types/sym-table-items.d.ts +4 -0
- package/lib/types/sym-table-items.js +2 -0
- package/lib/types/sym-table-items.js.map +1 -0
- package/lib/types/transformation-case.d.ts +1 -0
- package/lib/types/transformation-case.js +2 -0
- package/lib/types/transformation-case.js.map +1 -0
- package/lib/types/transformations.d.ts +11 -0
- package/lib/types/transformations.js +2 -0
- package/lib/types/transformations.js.map +1 -0
- package/lib/types/ts-alias.d.ts +10 -0
- package/lib/types/ts-alias.js +2 -0
- package/lib/types/ts-alias.js.map +1 -0
- package/lib/types/ts-callback-interface.d.ts +10 -0
- package/lib/types/ts-callback-interface.js +2 -0
- package/lib/types/ts-callback-interface.js.map +1 -0
- package/lib/types/ts-callback.d.ts +17 -0
- package/lib/types/ts-callback.js +2 -0
- package/lib/types/ts-callback.js.map +1 -0
- package/lib/types/ts-class.d.ts +85 -0
- package/lib/types/ts-class.js +2 -0
- package/lib/types/ts-class.js.map +1 -0
- package/lib/types/ts-doc-tag.d.ts +21 -0
- package/lib/types/ts-doc-tag.js +2 -0
- package/lib/types/ts-doc-tag.js.map +1 -0
- package/lib/types/ts-doc.d.ts +16 -0
- package/lib/types/ts-doc.js +2 -0
- package/lib/types/ts-doc.js.map +1 -0
- package/lib/types/ts-enum.d.ts +12 -0
- package/lib/types/ts-enum.js +2 -0
- package/lib/types/ts-enum.js.map +1 -0
- package/lib/types/ts-function.d.ts +55 -0
- package/lib/types/ts-function.js +2 -0
- package/lib/types/ts-function.js.map +1 -0
- package/lib/types/ts-generic-parameter.d.ts +8 -0
- package/lib/types/ts-generic-parameter.js +2 -0
- package/lib/types/ts-generic-parameter.js.map +1 -0
- package/lib/types/ts-instance-parameter.d.ts +4 -0
- package/lib/types/ts-instance-parameter.js +2 -0
- package/lib/types/ts-instance-parameter.js.map +1 -0
- package/lib/types/ts-member.d.ts +10 -0
- package/lib/types/ts-member.js +2 -0
- package/lib/types/ts-member.js.map +1 -0
- package/lib/types/ts-method.d.ts +5 -0
- package/lib/types/ts-method.js +2 -0
- package/lib/types/ts-method.js.map +1 -0
- package/lib/types/ts-parameter.d.ts +15 -0
- package/lib/types/ts-parameter.js +2 -0
- package/lib/types/ts-parameter.js.map +1 -0
- package/lib/types/ts-property.d.ts +17 -0
- package/lib/types/ts-property.js +2 -0
- package/lib/types/ts-property.js.map +1 -0
- package/lib/types/ts-signal.d.ts +17 -0
- package/lib/types/ts-signal.js +2 -0
- package/lib/types/ts-signal.js.map +1 -0
- package/lib/types/ts-type-name.d.ts +1 -0
- package/lib/types/ts-type-name.js +2 -0
- package/lib/types/ts-type-name.js.map +1 -0
- package/lib/types/ts-type-separator.d.ts +1 -0
- package/lib/types/ts-type-separator.js +2 -0
- package/lib/types/ts-type-separator.js.map +1 -0
- package/lib/types/ts-type.d.ts +26 -0
- package/lib/types/ts-type.js +2 -0
- package/lib/types/ts-type.js.map +1 -0
- package/lib/types/ts-var.d.ts +17 -0
- package/lib/types/ts-var.js +2 -0
- package/lib/types/ts-var.js.map +1 -0
- package/lib/types/type-gir-alias.d.ts +2 -0
- package/lib/types/type-gir-alias.js +2 -0
- package/lib/types/type-gir-alias.js.map +1 -0
- package/lib/types/type-gir-class.d.ts +2 -0
- package/lib/types/type-gir-class.js +2 -0
- package/lib/types/type-gir-class.js.map +1 -0
- package/lib/types/type-gir-element.d.ts +3 -0
- package/lib/types/type-gir-element.js +2 -0
- package/lib/types/type-gir-element.js.map +1 -0
- package/lib/types/type-gir-enumeration-member.d.ts +2 -0
- package/lib/types/type-gir-enumeration-member.js +2 -0
- package/lib/types/type-gir-enumeration-member.js.map +1 -0
- package/lib/types/type-gir-enumeration.d.ts +2 -0
- package/lib/types/type-gir-enumeration.js +2 -0
- package/lib/types/type-gir-enumeration.js.map +1 -0
- package/lib/types/type-gir-function.d.ts +1 -0
- package/lib/types/type-gir-function.js +2 -0
- package/lib/types/type-gir-function.js.map +1 -0
- package/lib/types/type-gir-interface.d.ts +2 -0
- package/lib/types/type-gir-interface.js +2 -0
- package/lib/types/type-gir-interface.js.map +1 -0
- package/lib/types/type-gir-method.d.ts +2 -0
- package/lib/types/type-gir-method.js +2 -0
- package/lib/types/type-gir-method.js.map +1 -0
- package/lib/types/type-gir-parameter.d.ts +1 -0
- package/lib/types/type-gir-parameter.js +2 -0
- package/lib/types/type-gir-parameter.js.map +1 -0
- package/lib/types/type-gir-property.d.ts +2 -0
- package/lib/types/type-gir-property.js +2 -0
- package/lib/types/type-gir-property.js.map +1 -0
- package/lib/types/type-gir-variable.d.ts +1 -0
- package/lib/types/type-gir-variable.js +2 -0
- package/lib/types/type-gir-variable.js.map +1 -0
- package/lib/types/type-ts-element.d.ts +3 -0
- package/lib/types/type-ts-element.js +2 -0
- package/lib/types/type-ts-element.js.map +1 -0
- package/lib/types/type-ts-enumeration-member.d.ts +2 -0
- package/lib/types/type-ts-enumeration-member.js +2 -0
- package/lib/types/type-ts-enumeration-member.js.map +1 -0
- package/lib/types/type-ts-function.d.ts +1 -0
- package/lib/types/type-ts-function.js +2 -0
- package/lib/types/type-ts-function.js.map +1 -0
- package/lib/types/type-ts-property.d.ts +1 -0
- package/lib/types/type-ts-property.js +2 -0
- package/lib/types/type-ts-property.js.map +1 -0
- package/lib/types/user-config-load-result.d.ts +6 -0
- package/lib/types/user-config-load-result.js +2 -0
- package/lib/types/user-config-load-result.js.map +1 -0
- package/lib/types/user-config.d.ts +42 -0
- package/lib/types/user-config.js +2 -0
- package/lib/types/user-config.js.map +1 -0
- package/lib/utils.d.ts +262 -0
- package/lib/utils.js +366 -0
- package/lib/utils.js.map +1 -0
- package/package.json +68 -0
- package/templates/Cogl-2.0.d.ts +0 -0
- package/templates/Gjs/GObject-2.0.d.ts +238 -0
- package/templates/Gjs/Gio-2.0.d.ts +101 -0
- package/templates/Gjs/Gjs.d.ts +204 -0
- package/templates/Gjs/Gjs.js +21 -0
- package/templates/Gjs/GnomeShell.d.ts +154 -0
- package/templates/Gjs/GnomeShell.js +10 -0
- package/templates/Gjs/index.d.ts +594 -0
- package/templates/Gjs/index.js +4 -0
- package/templates/Gjs/misc/dbusUtils.d.ts +15 -0
- package/templates/Gjs/misc/dbusUtils.js +6 -0
- package/templates/Gjs/misc/extensionUtils.d.ts +99 -0
- package/templates/Gjs/misc/extensionUtils.js +6 -0
- package/templates/Gjs/misc/fileUtils.d.ts +51 -0
- package/templates/Gjs/misc/fileUtils.js +6 -0
- package/templates/Gjs/misc/gnomeSession.d.ts +74 -0
- package/templates/Gjs/misc/gnomeSession.js +6 -0
- package/templates/Gjs/misc/parentalControlsManager.d.ts +42 -0
- package/templates/Gjs/misc/parentalControlsManager.js +6 -0
- package/templates/Gjs/misc/signals.d.ts +15 -0
- package/templates/Gjs/misc/signals.js +6 -0
- package/templates/Gjs/module.d.ts +6 -0
- package/templates/Gjs/module.js +16 -0
- package/templates/Gjs/tsconfig.alias.json +10 -0
- package/templates/Gjs/ui/accessDialog.d.ts +19 -0
- package/templates/Gjs/ui/accessDialog.js +6 -0
- package/templates/Gjs/ui/altTab.d.ts +124 -0
- package/templates/Gjs/ui/altTab.js +6 -0
- package/templates/Gjs/ui/animation.d.ts +58 -0
- package/templates/Gjs/ui/animation.js +6 -0
- package/templates/Gjs/ui/appDisplay.d.ts +204 -0
- package/templates/Gjs/ui/appDisplay.js +6 -0
- package/templates/Gjs/ui/appFavorites.d.ts +34 -0
- package/templates/Gjs/ui/appFavorites.js +6 -0
- package/templates/Gjs/ui/appMenu.d.ts +74 -0
- package/templates/Gjs/ui/appMenu.js +6 -0
- package/templates/Gjs/ui/audioDeviceSelection.d.ts +51 -0
- package/templates/Gjs/ui/audioDeviceSelection.js +6 -0
- package/templates/Gjs/ui/background.d.ts +255 -0
- package/templates/Gjs/ui/background.js +5 -0
- package/templates/Gjs/ui/backgroundMenu.d.ts +19 -0
- package/templates/Gjs/ui/backgroundMenu.js +5 -0
- package/templates/Gjs/ui/barLevel.d.ts +42 -0
- package/templates/Gjs/ui/barLevel.js +5 -0
- package/templates/Gjs/ui/boxpointer.d.ts +103 -0
- package/templates/Gjs/ui/boxpointer.js +5 -0
- package/templates/Gjs/ui/calendar.d.ts +261 -0
- package/templates/Gjs/ui/calendar.js +5 -0
- package/templates/Gjs/ui/checkBox.d.ts +22 -0
- package/templates/Gjs/ui/checkBox.js +5 -0
- package/templates/Gjs/ui/closeDialog.d.ts +40 -0
- package/templates/Gjs/ui/closeDialog.js +5 -0
- package/templates/Gjs/ui/components/__init__.d.ts +9 -0
- package/templates/Gjs/ui/components/__init__.js +6 -0
- package/templates/Gjs/ui/components/automountManager.d.ts +8 -0
- package/templates/Gjs/ui/components/automountManager.js +6 -0
- package/templates/Gjs/ui/components/autorunManager.d.ts +8 -0
- package/templates/Gjs/ui/components/autorunManager.js +6 -0
- package/templates/Gjs/ui/components/index.d.ts +6 -0
- package/templates/Gjs/ui/components/index.js +6 -0
- package/templates/Gjs/ui/components/keyring.d.ts +19 -0
- package/templates/Gjs/ui/components/keyring.js +6 -0
- package/templates/Gjs/ui/components/networkAgent.d.ts +10 -0
- package/templates/Gjs/ui/components/networkAgent.js +6 -0
- package/templates/Gjs/ui/components/polkitAgent.d.ts +19 -0
- package/templates/Gjs/ui/components/polkitAgent.js +6 -0
- package/templates/Gjs/ui/components/telepathyClient.d.ts +10 -0
- package/templates/Gjs/ui/components/telepathyClient.js +6 -0
- package/templates/Gjs/ui/dialog.d.ts +78 -0
- package/templates/Gjs/ui/dialog.js +6 -0
- package/templates/Gjs/ui/dnd.d.ts +127 -0
- package/templates/Gjs/ui/dnd.js +6 -0
- package/templates/Gjs/ui/iconGrid.d.ts +172 -0
- package/templates/Gjs/ui/iconGrid.js +6 -0
- package/templates/Gjs/ui/layout.d.ts +311 -0
- package/templates/Gjs/ui/layout.js +6 -0
- package/templates/Gjs/ui/main.d.ts +215 -0
- package/templates/Gjs/ui/main.js +6 -0
- package/templates/Gjs/ui/messageList.d.ts +113 -0
- package/templates/Gjs/ui/messageList.js +6 -0
- package/templates/Gjs/ui/messageTray.d.ts +423 -0
- package/templates/Gjs/ui/messageTray.js +6 -0
- package/templates/Gjs/ui/modalDialog.d.ts +96 -0
- package/templates/Gjs/ui/modalDialog.js +6 -0
- package/templates/Gjs/ui/mpris.d.ts +78 -0
- package/templates/Gjs/ui/mpris.js +6 -0
- package/templates/Gjs/ui/notificationDaemon.d.ts +5 -0
- package/templates/Gjs/ui/notificationDaemon.js +6 -0
- package/templates/Gjs/ui/panel.d.ts +65 -0
- package/templates/Gjs/ui/panel.js +6 -0
- package/templates/Gjs/ui/panelMenu.d.ts +51 -0
- package/templates/Gjs/ui/panelMenu.js +6 -0
- package/templates/Gjs/ui/popupMenu.d.ts +228 -0
- package/templates/Gjs/ui/popupMenu.js +6 -0
- package/templates/Gjs/ui/ripples.d.ts +44 -0
- package/templates/Gjs/ui/ripples.js +6 -0
- package/templates/Gjs/ui/search.d.ts +158 -0
- package/templates/Gjs/ui/search.js +6 -0
- package/templates/Gjs/ui/switcherPopup.d.ts +107 -0
- package/templates/Gjs/ui/switcherPopup.js +6 -0
- package/templates/Gjs/ui/userWidget.d.ts +13 -0
- package/templates/Gjs/ui/userWidget.js +6 -0
- package/templates/Granite-1.0.d.ts +7 -0
- package/templates/Granite-7.0.d.ts +7 -0
- package/templates/GstBase-0.10.d.ts +5 -0
- package/templates/RygelServer-2.6.d.ts +3 -0
- package/templates/node-gtk/GObject-2.0.d.ts +57 -0
- package/templates/node-gtk/index.d.ts +40 -0
- package/templates/node-gtk/index.js +9 -0
- package/templates/node-gtk/module.d.ts +6 -0
- package/templates/node-gtk/module.js +17 -0
package/lib/utils.js
ADDED
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/unbound-method */
|
|
2
|
+
import lodash from 'lodash';
|
|
3
|
+
import { join, dirname } from 'path';
|
|
4
|
+
import { existsSync } from 'fs';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { inspect } from 'util';
|
|
7
|
+
import { Logger } from './logger.js';
|
|
8
|
+
import { COMMENT_REG_EXP, PARAM_REG_EXP, OPT_PARAM_REG_EXP } from './constants.js';
|
|
9
|
+
export { inspect };
|
|
10
|
+
/**
|
|
11
|
+
* Performs a deep comparison between two values to determine if they are
|
|
12
|
+
* equivalent.
|
|
13
|
+
*
|
|
14
|
+
* **Note:** This method supports comparing arrays, array buffers, booleans,
|
|
15
|
+
* date objects, error objects, maps, numbers, `Object` objects, regexes,
|
|
16
|
+
* sets, strings, symbols, and typed arrays. `Object` objects are compared
|
|
17
|
+
* by their own, not inherited, enumerable properties. Functions and DOM
|
|
18
|
+
* nodes are **not** supported.
|
|
19
|
+
*
|
|
20
|
+
* @category Lang
|
|
21
|
+
* @param value The value to compare.
|
|
22
|
+
* @param other The other value to compare.
|
|
23
|
+
* @returns Returns `true` if the values are equivalent, else `false`.
|
|
24
|
+
* @example
|
|
25
|
+
*
|
|
26
|
+
* var object = { 'user': 'fred' };
|
|
27
|
+
* var other = { 'user': 'fred' };
|
|
28
|
+
*
|
|
29
|
+
* _.isEqual(object, other);
|
|
30
|
+
* // => true
|
|
31
|
+
*
|
|
32
|
+
* object === other;
|
|
33
|
+
* // => false
|
|
34
|
+
*/
|
|
35
|
+
export const isEqual = lodash.isEqual;
|
|
36
|
+
/**
|
|
37
|
+
* Creates an array of values by running each element in collection through iteratee. The iteratee is
|
|
38
|
+
* invoked with three arguments: (value, index|key, collection).
|
|
39
|
+
*
|
|
40
|
+
* Many lodash methods are guarded to work as iteratees for methods like _.every, _.filter, _.map, _.mapValues,
|
|
41
|
+
* _.reject, and _.some.
|
|
42
|
+
*
|
|
43
|
+
* The guarded methods are:
|
|
44
|
+
* ary, callback, chunk, clone, create, curry, curryRight, drop, dropRight, every, fill, flatten, invert, max,
|
|
45
|
+
* min, parseInt, slice, sortBy, take, takeRight, template, trim, trimLeft, trimRight, trunc, random, range,
|
|
46
|
+
* sample, some, sum, uniq, and words
|
|
47
|
+
*
|
|
48
|
+
* @param collection The collection to iterate over.
|
|
49
|
+
* @param iteratee The function invoked per iteration.
|
|
50
|
+
* @return Returns the new mapped array.
|
|
51
|
+
*/
|
|
52
|
+
export const map = lodash.map;
|
|
53
|
+
/**
|
|
54
|
+
* Iterates over elements of collection, returning the first element predicate returns truthy for.
|
|
55
|
+
* The predicate is invoked with three arguments: (value, index|key, collection).
|
|
56
|
+
*
|
|
57
|
+
* @param collection The collection to search.
|
|
58
|
+
* @param predicate The function invoked per iteration.
|
|
59
|
+
* @param fromIndex The index to search from.
|
|
60
|
+
* @return Returns the matched element, else undefined.
|
|
61
|
+
*/
|
|
62
|
+
export const find = lodash.find;
|
|
63
|
+
/**
|
|
64
|
+
* Recursively merges own and inherited enumerable properties of source
|
|
65
|
+
* objects into the destination object, skipping source properties that resolve
|
|
66
|
+
* to `undefined`. Array and plain object properties are merged recursively.
|
|
67
|
+
* Other objects and value types are overridden by assignment. Source objects
|
|
68
|
+
* are applied from left to right. Subsequent sources overwrite property
|
|
69
|
+
* assignments of previous sources.
|
|
70
|
+
*
|
|
71
|
+
* **Note:** This method mutates `object`.
|
|
72
|
+
*
|
|
73
|
+
* @category Object
|
|
74
|
+
* @param object The destination object.
|
|
75
|
+
* @param [sources] The source objects.
|
|
76
|
+
* @returns Returns `object`.
|
|
77
|
+
* @example
|
|
78
|
+
*
|
|
79
|
+
* var users = {
|
|
80
|
+
* 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
|
|
81
|
+
* };
|
|
82
|
+
*
|
|
83
|
+
* var ages = {
|
|
84
|
+
* 'data': [{ 'age': 36 }, { 'age': 40 }]
|
|
85
|
+
* };
|
|
86
|
+
*
|
|
87
|
+
* _.merge(users, ages);
|
|
88
|
+
* // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
|
|
89
|
+
*/
|
|
90
|
+
export const merge = lodash.merge;
|
|
91
|
+
/**
|
|
92
|
+
* Creates a shallow clone of value.
|
|
93
|
+
*
|
|
94
|
+
* Note: This method is loosely based on the structured clone algorithm and supports cloning arrays,
|
|
95
|
+
* array buffers, booleans, date objects, maps, numbers, Object objects, regex's, sets, strings, symbols,
|
|
96
|
+
* and typed arrays. The own enumerable properties of arguments objects are cloned as plain objects. An empty
|
|
97
|
+
* object is returned for not cloneable values such as error objects, functions, DOM nodes, and WeakMaps.
|
|
98
|
+
*
|
|
99
|
+
* @param value The value to clone.
|
|
100
|
+
* @return Returns the cloned value.
|
|
101
|
+
*/
|
|
102
|
+
export const clone = lodash.clone;
|
|
103
|
+
/**
|
|
104
|
+
* This method is like clone except that it recursively clones value.
|
|
105
|
+
*
|
|
106
|
+
* @param value The value to recursively clone.
|
|
107
|
+
* @return Returns the deep cloned value.
|
|
108
|
+
*/
|
|
109
|
+
export const cloneDeep = lodash.cloneDeep;
|
|
110
|
+
/**
|
|
111
|
+
* Split a package name into namespace and version
|
|
112
|
+
*/
|
|
113
|
+
export const splitModuleName = (packageName) => {
|
|
114
|
+
// There are modules that use multiple hyphens like 'GUPnP-DLNA-1.0'
|
|
115
|
+
const splits = packageName.split('-');
|
|
116
|
+
const version = splits.splice(-1, 1)[0];
|
|
117
|
+
const namespace = splits.join('');
|
|
118
|
+
return {
|
|
119
|
+
packageName,
|
|
120
|
+
namespace,
|
|
121
|
+
version,
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
/** Remove namespace prefix */
|
|
125
|
+
export const removeNamespace = (type, namespace) => {
|
|
126
|
+
if (type.startsWith(namespace + '.')) {
|
|
127
|
+
type = type.substring(namespace.length + 1);
|
|
128
|
+
}
|
|
129
|
+
return type;
|
|
130
|
+
};
|
|
131
|
+
/** Remove class module name prefix */
|
|
132
|
+
export const removeClassModule = removeNamespace;
|
|
133
|
+
/**
|
|
134
|
+
* Add namespace prefix
|
|
135
|
+
*/
|
|
136
|
+
export const addNamespace = (type, namespace) => {
|
|
137
|
+
if (!type.startsWith(namespace + '.')) {
|
|
138
|
+
type = namespace + '.' + type;
|
|
139
|
+
}
|
|
140
|
+
return type;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Checking whether some variable is iterable
|
|
144
|
+
* @see https://stackoverflow.com/a/32538867
|
|
145
|
+
* @param obj Variable to check for iterable
|
|
146
|
+
* @returns Whether the variable is iterable or not
|
|
147
|
+
*/
|
|
148
|
+
export const isIterable = (obj) => {
|
|
149
|
+
return obj != null && typeof obj[Symbol.iterator] === 'function';
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Checking whether a string is numeric
|
|
153
|
+
* @param str The string to check
|
|
154
|
+
* @returns Whether the string is numeric or not
|
|
155
|
+
*/
|
|
156
|
+
export const isNumeric = (str) => {
|
|
157
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
158
|
+
return !isNaN(str - parseFloat(str));
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Get the first character of a string
|
|
162
|
+
* @param str The string to get the first character from
|
|
163
|
+
* @returns The first character
|
|
164
|
+
*/
|
|
165
|
+
export const getFirstChar = (str) => {
|
|
166
|
+
return str.charAt(0);
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Get the last character of a string
|
|
170
|
+
* @param str The string to get the last character from
|
|
171
|
+
* @returns The last character
|
|
172
|
+
*/
|
|
173
|
+
export const getLastChar = (str) => {
|
|
174
|
+
return str.charAt(str.length - 1);
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Check if the first character of a string is numeric
|
|
178
|
+
* @param str The string to check
|
|
179
|
+
* @returns Whether the first character is numeric or not
|
|
180
|
+
*/
|
|
181
|
+
export const isFirstCharNumeric = (str) => {
|
|
182
|
+
return isNumeric(getFirstChar(str));
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Convert a string to camelCase
|
|
186
|
+
* @param str The string to convert
|
|
187
|
+
* @returns The converted string
|
|
188
|
+
*/
|
|
189
|
+
export const camelCase = (str) => {
|
|
190
|
+
return str
|
|
191
|
+
.replace(/\s(.)|(\s|-|_|\.)(.)/g, (a) => {
|
|
192
|
+
return a.toUpperCase();
|
|
193
|
+
})
|
|
194
|
+
.replace(/(\s|-|_|\.)/g, '');
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* Convert a string to lowerCamelCase
|
|
198
|
+
* @param str The string to convert
|
|
199
|
+
* @returns The converted string
|
|
200
|
+
*/
|
|
201
|
+
export const lowerCamelCase = (str) => {
|
|
202
|
+
str = camelCase(str);
|
|
203
|
+
str = getFirstChar(str).toLowerCase() + str.slice(1);
|
|
204
|
+
return str;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Convert a string to UpperCamelCase
|
|
208
|
+
* @param str The string to convert
|
|
209
|
+
* @returns The converted string
|
|
210
|
+
*/
|
|
211
|
+
export const upperCamelCase = (str) => {
|
|
212
|
+
str = camelCase(str);
|
|
213
|
+
str = getFirstChar(str).toUpperCase() + str.slice(1);
|
|
214
|
+
return str;
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* Find a file in a list of directories
|
|
218
|
+
* @param dirs The directories to search in
|
|
219
|
+
* @param filename The filename to search for
|
|
220
|
+
* @returns The file info
|
|
221
|
+
*/
|
|
222
|
+
export const findFileInDirs = (dirs, filename) => {
|
|
223
|
+
const FileInfo = {
|
|
224
|
+
path: null,
|
|
225
|
+
filename,
|
|
226
|
+
exists: false,
|
|
227
|
+
};
|
|
228
|
+
for (const dir of dirs) {
|
|
229
|
+
const filePath = join(dir, filename);
|
|
230
|
+
FileInfo.exists = existsSync(filePath);
|
|
231
|
+
if (FileInfo.exists) {
|
|
232
|
+
FileInfo.path = filePath;
|
|
233
|
+
return FileInfo;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return FileInfo;
|
|
237
|
+
};
|
|
238
|
+
/**
|
|
239
|
+
* Union (a ∪ b): create a set that contains the elements of both set a and set b.
|
|
240
|
+
* See https://2ality.com/2015/01/es6-set-operations.html#union
|
|
241
|
+
* @param target
|
|
242
|
+
* @param source
|
|
243
|
+
*/
|
|
244
|
+
export const union = (target, source) => {
|
|
245
|
+
return (target = new Set([...target, ...source]));
|
|
246
|
+
};
|
|
247
|
+
export const stripParamNames = (func, ignoreTail = false) => {
|
|
248
|
+
const g = func;
|
|
249
|
+
func = func.replace(COMMENT_REG_EXP, '');
|
|
250
|
+
const lb = func.split('(', 2);
|
|
251
|
+
if (lb.length < 2)
|
|
252
|
+
Logger.error(`Bad function definition ${g}`);
|
|
253
|
+
const rb = lb[1].split(')');
|
|
254
|
+
const tail = ignoreTail ? '' : rb[rb.length - 1];
|
|
255
|
+
let params = rb.slice(0, rb.length - 1).join(')');
|
|
256
|
+
params = params.replace(PARAM_REG_EXP, ':');
|
|
257
|
+
params = params.replace(OPT_PARAM_REG_EXP, '?:');
|
|
258
|
+
return `${lb[0]}(${params})${tail}`;
|
|
259
|
+
};
|
|
260
|
+
/**
|
|
261
|
+
* Check if a line is a comment line
|
|
262
|
+
* @param line The line to check
|
|
263
|
+
* @returns Whether the line is a comment line or not
|
|
264
|
+
*/
|
|
265
|
+
export const isCommentLine = (line) => {
|
|
266
|
+
const lineTrim = line.trim();
|
|
267
|
+
return lineTrim.startsWith('//') || (lineTrim.startsWith('/*') && lineTrim.endsWith('*/'));
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* Add indents to a string
|
|
271
|
+
* @param indents The number of indents
|
|
272
|
+
* @param spaceForIndent The number of spaces for each indent
|
|
273
|
+
* @returns The indented string
|
|
274
|
+
*/
|
|
275
|
+
export const generateIndent = (indents = 1, spaceForIndent = 4) => {
|
|
276
|
+
return ' '.repeat(indents * spaceForIndent);
|
|
277
|
+
};
|
|
278
|
+
// Get __filename on ESM
|
|
279
|
+
export const __filename = fileURLToPath(import.meta.url);
|
|
280
|
+
// Get __dirname on ESM
|
|
281
|
+
export const __dirname = dirname(__filename);
|
|
282
|
+
/**
|
|
283
|
+
* Get the output or input directory of the environment
|
|
284
|
+
* @param environment The environment to get the directory for
|
|
285
|
+
* @param baseDir The base directory
|
|
286
|
+
* @returns The path to the directory
|
|
287
|
+
*/
|
|
288
|
+
export const getEnvironmentDir = (environment, baseDir) => {
|
|
289
|
+
if (!baseDir.endsWith(environment))
|
|
290
|
+
if (environment === 'gjs' && !baseDir.endsWith('/Gjs')) {
|
|
291
|
+
return join(baseDir, 'Gjs');
|
|
292
|
+
}
|
|
293
|
+
if (environment === 'node' && !baseDir.endsWith('/node-gtk')) {
|
|
294
|
+
return join(baseDir, 'node-gtk');
|
|
295
|
+
}
|
|
296
|
+
return baseDir;
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* Get the destination path for the environment
|
|
300
|
+
* @param environment The environment to get the destination path for
|
|
301
|
+
* @param outputDir The output directory
|
|
302
|
+
* @param parts The path parts
|
|
303
|
+
* @returns The destination path
|
|
304
|
+
*/
|
|
305
|
+
export const getDestPath = (environment, outputDir, ...parts) => {
|
|
306
|
+
const outputEnvDir = getEnvironmentDir(environment, outputDir);
|
|
307
|
+
const destPath = join(outputEnvDir, ...parts);
|
|
308
|
+
return destPath;
|
|
309
|
+
};
|
|
310
|
+
/**
|
|
311
|
+
* Convert a GirBoolean to a boolean
|
|
312
|
+
* @param boolStr The GirBoolean string
|
|
313
|
+
* @param defaultVal The default value
|
|
314
|
+
* @returns The boolean value
|
|
315
|
+
*/
|
|
316
|
+
export const girBool = (boolStr, defaultVal = false) => {
|
|
317
|
+
if (boolStr) {
|
|
318
|
+
if (parseInt(boolStr) === 0)
|
|
319
|
+
return false;
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
return defaultVal;
|
|
323
|
+
};
|
|
324
|
+
/**
|
|
325
|
+
* Returns `true` if the definitions in `d1` and `d2` have equivalent signatures
|
|
326
|
+
* @param d1
|
|
327
|
+
* @param d2
|
|
328
|
+
*/
|
|
329
|
+
export const signaturesMatch = (d1, d2) => {
|
|
330
|
+
if (isCommentLine(d1) || isCommentLine(d2))
|
|
331
|
+
return false;
|
|
332
|
+
return stripParamNames(d1) == stripParamNames(d2);
|
|
333
|
+
};
|
|
334
|
+
/**
|
|
335
|
+
* GirElements contains an attribute `introspectable`, which is a GirBoolean.
|
|
336
|
+
* If this is attribute is falsy the element is not introspectable,
|
|
337
|
+
* this means doesn't exist in the bindings, due in general to missing information in the annotations in the original C code
|
|
338
|
+
*/
|
|
339
|
+
export const girElementIsIntrospectable = (girElement, name) => {
|
|
340
|
+
if (!girElement) {
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
name = name || girElement?.$?.name;
|
|
344
|
+
if (!name) {
|
|
345
|
+
return false;
|
|
346
|
+
}
|
|
347
|
+
// Handle introspectable only if the attribute is also present...
|
|
348
|
+
if (girElement.$.hasOwnProperty('introspectable') && girElement.$.introspectable !== undefined) {
|
|
349
|
+
return girBool(girElement.$.introspectable, true);
|
|
350
|
+
}
|
|
351
|
+
// ...otherwise we assume that it is introspectable
|
|
352
|
+
return true;
|
|
353
|
+
};
|
|
354
|
+
/**
|
|
355
|
+
* Check if a type is optional
|
|
356
|
+
* @param types The types to check
|
|
357
|
+
* @returns Whether the type is optional or not
|
|
358
|
+
*/
|
|
359
|
+
export const typeIsOptional = (types) => {
|
|
360
|
+
for (const type of types) {
|
|
361
|
+
if (type.optional)
|
|
362
|
+
return true;
|
|
363
|
+
}
|
|
364
|
+
return false;
|
|
365
|
+
};
|
|
366
|
+
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ts-for-gir/lib",
|
|
3
|
+
"version": "3.0.0-beta.11",
|
|
4
|
+
"description": "Typescript .d.ts generator from GIR for gjs and node-gtk",
|
|
5
|
+
"module": "lib/index.js",
|
|
6
|
+
"main": "lib/index.js",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=18"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "yarn lint && yarn build:ts",
|
|
13
|
+
"build:ts": "tsc",
|
|
14
|
+
"clear": "yarn clear:build",
|
|
15
|
+
"clear:build": "rimraf ./lib",
|
|
16
|
+
"watch": "yarn build:ts -- --watch",
|
|
17
|
+
"lint": "eslint . --ext .ts,.tsx --fix"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/gjsify/ts-for-gjs.git"
|
|
22
|
+
},
|
|
23
|
+
"author": "Pascal Garber <pascal@artandcode.studio>",
|
|
24
|
+
"files": [
|
|
25
|
+
"lib",
|
|
26
|
+
"templates"
|
|
27
|
+
],
|
|
28
|
+
"license": "Apache-2.0",
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/gjsify/ts-for-gjs/issues"
|
|
31
|
+
},
|
|
32
|
+
"homepage": "https://github.com/gjsify/ts-for-gjs#readme",
|
|
33
|
+
"keywords": [
|
|
34
|
+
"gjs",
|
|
35
|
+
"typescript",
|
|
36
|
+
"generate",
|
|
37
|
+
"node-gtk",
|
|
38
|
+
"gir",
|
|
39
|
+
"gobject-introspection",
|
|
40
|
+
"gnome",
|
|
41
|
+
"gtk",
|
|
42
|
+
"glib",
|
|
43
|
+
"gobject",
|
|
44
|
+
"dts",
|
|
45
|
+
"type definitions"
|
|
46
|
+
],
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@types/ejs": "^3.1.2",
|
|
49
|
+
"@types/eslint": "8.21.1",
|
|
50
|
+
"@types/lodash": "^4.14.191",
|
|
51
|
+
"@types/node": "^18.14.0",
|
|
52
|
+
"@types/xml2js": "^0.4.11",
|
|
53
|
+
"@typescript-eslint/eslint-plugin": "^5.53.0",
|
|
54
|
+
"@typescript-eslint/parser": "^5.53.0",
|
|
55
|
+
"eslint": "^8.34.0",
|
|
56
|
+
"eslint-config-prettier": "^8.6.0",
|
|
57
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
58
|
+
"prettier": "^2.8.4",
|
|
59
|
+
"rimraf": "^4.1.2",
|
|
60
|
+
"typescript": "^4.9.5"
|
|
61
|
+
},
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"colorette": "^2.0.19",
|
|
64
|
+
"ejs": "^3.1.8",
|
|
65
|
+
"lodash": "^4.17.21",
|
|
66
|
+
"xml2js": "^0.4.23"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
// A few things here are inspired by gi.ts
|
|
2
|
+
// See https://gitlab.gnome.org/ewlsh/gi.ts/-/blob/master/packages/lib/src/generators/dts/gobject.ts
|
|
3
|
+
// Copyright Evan Welsh
|
|
4
|
+
|
|
5
|
+
export type GType<T = unknown> = {
|
|
6
|
+
__type__(arg: never): T
|
|
7
|
+
name: string
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
// Extra interfaces used to help define GObject classes in js; these
|
|
11
|
+
// aren't part of gi.
|
|
12
|
+
export interface SignalDefinition {
|
|
13
|
+
flags?: SignalFlags
|
|
14
|
+
accumulator: number
|
|
15
|
+
return_type?: GType
|
|
16
|
+
param_types?: GType[]
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface MetaInfo<Props, Interfaces, Sigs> {
|
|
20
|
+
GTypeName?: string
|
|
21
|
+
GTypeFlags?: TypeFlags
|
|
22
|
+
Properties?: Props
|
|
23
|
+
Signals?: Sigs
|
|
24
|
+
Implements?: Interfaces
|
|
25
|
+
CssName?: string
|
|
26
|
+
Template?: Uint8Array | GLib.Bytes
|
|
27
|
+
Children?: string[]
|
|
28
|
+
InternalChildren?: string[]
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Interface of GObject Interface should be implemented by all GObject interfaces */
|
|
32
|
+
export class Interface<T = unknown> {
|
|
33
|
+
static _classInit: (cls: any) => any;
|
|
34
|
+
__name__: string;
|
|
35
|
+
_construct: (params: any, ...otherArgs: any[]) => any;
|
|
36
|
+
_init: (params: any) => void;
|
|
37
|
+
$gtype?: GType<T>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Use this to signify a function that must be overridden in an
|
|
42
|
+
* implementation of the interface.
|
|
43
|
+
*/
|
|
44
|
+
export class NotImplementedError extends Error {
|
|
45
|
+
get name(): 'NotImplementedError'
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Expose GObject static properties for ES6 classes
|
|
49
|
+
|
|
50
|
+
export const GTypeName: unique symbol;
|
|
51
|
+
export const requires: unique symbol;
|
|
52
|
+
export const interfaces: unique symbol;
|
|
53
|
+
export const properties: unique symbol;
|
|
54
|
+
export const signals: unique symbol;
|
|
55
|
+
|
|
56
|
+
export let gtypeNameBasedOnJSPath: boolean;
|
|
57
|
+
|
|
58
|
+
export let TYPE_BOOLEAN: GType<boolean>;
|
|
59
|
+
export let Boolean: BooleanConstructor;
|
|
60
|
+
|
|
61
|
+
export let TYPE_ENUM: GType<number>;
|
|
62
|
+
export let TYPE_FLAGS: GType<number>;
|
|
63
|
+
|
|
64
|
+
export let TYPE_DOUBLE: GType<number>;
|
|
65
|
+
export let Double: NumberConstructor;
|
|
66
|
+
|
|
67
|
+
export let TYPE_STRING: GType<string>;
|
|
68
|
+
export let String: StringConstructor;
|
|
69
|
+
|
|
70
|
+
export let TYPE_NONE: GType<undefined>;
|
|
71
|
+
export let TYPE_POINTER: GType<undefined>;
|
|
72
|
+
export let TYPE_BOXED: GType<unknown>;
|
|
73
|
+
export let TYPE_PARAM: GType<unknown>;
|
|
74
|
+
export let TYPE_INTERFACE: GType<unknown>;
|
|
75
|
+
export let TYPE_OBJECT: GType<object>;
|
|
76
|
+
export let TYPE_VARIANT: GType<GLib.Variant>;
|
|
77
|
+
export let TYPE_INT: GType<number>;
|
|
78
|
+
export let TYPE_UINT: GType<number>;
|
|
79
|
+
export let TYPE_INT64: GType<number>;
|
|
80
|
+
export let TYPE_UINT64: GType<number>;
|
|
81
|
+
|
|
82
|
+
// fake enum for signal accumulators, keep in sync with gi/object.c
|
|
83
|
+
export enum AccumulatorType {
|
|
84
|
+
NONE=0,
|
|
85
|
+
FIRST_WINS=1,
|
|
86
|
+
TRUE_HANDLED=2,
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// A simple workaround if you have a class with .connect, .disconnect or .emit
|
|
90
|
+
// methods (such as Gio.Socket.connect or NMClient.Device.disconnect)
|
|
91
|
+
// The original g_signal_* functions are not introspectable anyway, because
|
|
92
|
+
// we need our own handling of signal argument marshalling
|
|
93
|
+
export function signal_connect(object: Object, name: string, handler: (...args: any[]) => any): number
|
|
94
|
+
export function signal_connect_after(object: Object, name: string, handler: (...args: any[]) => any): number
|
|
95
|
+
export function signal_emit_by_name(object: Object, ...nameAndArgs: any[]): void
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Finds the first signal handler that matches certain selection criteria.
|
|
99
|
+
* The criteria are passed as properties of a match object.
|
|
100
|
+
* The match object has to be non-empty for successful matches.
|
|
101
|
+
* If no handler was found, a falsy value is returned.
|
|
102
|
+
*
|
|
103
|
+
* @param instance the instance owning the signal handler to be found.
|
|
104
|
+
* @param match a properties object indicating whether to match by signal ID, detail, or callback function.
|
|
105
|
+
* @param match.signalId signal the handler has to be connected to.
|
|
106
|
+
* @param match.detail signal detail the handler has to be connected to.
|
|
107
|
+
* @param match.func the callback function the handler will invoke.
|
|
108
|
+
* @returns A valid non-0 signal handler ID for a successful match.
|
|
109
|
+
*/
|
|
110
|
+
export function signal_handler_find(instance: Object, match: {signalId: string, detail: string, func: (...args: any[]) => any}): number | bigint | object | null
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Blocks all handlers on an instance that match certain selection criteria.
|
|
114
|
+
* The criteria are passed as properties of a match object.
|
|
115
|
+
* The match object has to have at least `func` for successful matches.
|
|
116
|
+
* If no handlers were found, 0 is returned, the number of blocked handlers
|
|
117
|
+
* otherwise.
|
|
118
|
+
*
|
|
119
|
+
* @param instance the instance owning the signal handler to be found.
|
|
120
|
+
* @param match a properties object indicating whether to match by signal ID, detail, or callback function.
|
|
121
|
+
* @param match.signalId signal the handler has to be connected to.
|
|
122
|
+
* @param match.detail signal detail the handler has to be connected to.
|
|
123
|
+
* @param match.func the callback function the handler will invoke.
|
|
124
|
+
* @returns The number of handlers that matched.
|
|
125
|
+
*/
|
|
126
|
+
export function signal_handlers_block_matched(instance: Object, match: {signalId: string, detail: string, func: (...args: any[]) => any}): number
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Disconnects all handlers on an instance that match certain selection
|
|
130
|
+
* criteria.
|
|
131
|
+
* The criteria are passed as properties of a match object.
|
|
132
|
+
* The match object has to have at least `func` for successful matches.
|
|
133
|
+
* If no handlers were found, 0 is returned, the number of disconnected
|
|
134
|
+
* handlers otherwise.
|
|
135
|
+
*
|
|
136
|
+
* @param instance the instance owning the signal handler
|
|
137
|
+
* to be found.
|
|
138
|
+
* @param match a properties object indicating whether to match by signal ID, detail, or callback function.
|
|
139
|
+
* @param match.signalId signal the handler has to be connected to.
|
|
140
|
+
* @param match.detail signal detail the handler has to be connected to.
|
|
141
|
+
* @param match.func the callback function the handler will invoke.
|
|
142
|
+
* @returns The number of handlers that matched.
|
|
143
|
+
*/
|
|
144
|
+
export function signal_handlers_unblock_matched(instance: Object, match: {signalId: string, detail: string, func: (...args: any[]) => any}): number
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Disconnects all handlers on an instance that match certain selection
|
|
148
|
+
* criteria.
|
|
149
|
+
* The criteria are passed as properties of a match object.
|
|
150
|
+
* The match object has to have at least `func` for successful matches.
|
|
151
|
+
* If no handlers were found, 0 is returned, the number of disconnected
|
|
152
|
+
* handlers otherwise.
|
|
153
|
+
*
|
|
154
|
+
* @param instance the instance owning the signal handler
|
|
155
|
+
* to be found.
|
|
156
|
+
* @param match a properties object indicating whether to match by signal ID, detail, or callback function.
|
|
157
|
+
* @param match.signalId signal the handler has to be connected to.
|
|
158
|
+
* @param match.detail signal detail the handler has to be connected to.
|
|
159
|
+
* @param match.func the callback function the handler will invoke.
|
|
160
|
+
* @returns The number of handlers that matched.
|
|
161
|
+
*/
|
|
162
|
+
export function signal_handlers_disconnect_matched(instance: Object, match: {signalId: string, detail: string, func: (...args: any[]) => any}): number
|
|
163
|
+
|
|
164
|
+
// Also match the macros used in C APIs, even though they're not introspected
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Blocks all handlers on an instance that match `func`.
|
|
168
|
+
*
|
|
169
|
+
* @param instance the instance to block handlers from.
|
|
170
|
+
* @param func the callback function the handler will invoke.
|
|
171
|
+
* @returns The number of handlers that matched.
|
|
172
|
+
*/
|
|
173
|
+
export function signal_handlers_block_by_func(instance: Object, func: (...args: any[]) => any): number;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Unblocks all handlers on an instance that match `func`.
|
|
177
|
+
*
|
|
178
|
+
* @function
|
|
179
|
+
* @param instance the instance to unblock handlers from.
|
|
180
|
+
* @param func the callback function the handler will invoke.
|
|
181
|
+
* @returns The number of handlers that matched.
|
|
182
|
+
*/
|
|
183
|
+
export function signal_handlers_unblock_by_func(instance: Object, func: (...args: any[]) => any): number;
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Disconnects all handlers on an instance that match `func`.
|
|
187
|
+
*
|
|
188
|
+
* @param instance the instance to remove handlers from.
|
|
189
|
+
* @param func the callback function the handler will invoke.
|
|
190
|
+
* @returns The number of handlers that matched.
|
|
191
|
+
*/
|
|
192
|
+
export function signal_handlers_disconnect_by_func(instance: Object, func: (...args: any[]) => any): number;
|
|
193
|
+
export function signal_handlers_disconnect_by_data(): void;
|
|
194
|
+
|
|
195
|
+
export type Property<K extends ParamSpec> = K extends ParamSpecBoolean
|
|
196
|
+
? boolean
|
|
197
|
+
: K extends ParamSpecDouble | ParamSpecInt | ParamSpecUInt | ParamSpecFloat | ParamSpecLong
|
|
198
|
+
? number
|
|
199
|
+
: K extends ParamSpecInt64 | ParamSpecUInt64 | ParamSpecULong
|
|
200
|
+
? number
|
|
201
|
+
: K extends ParamSpecFlags
|
|
202
|
+
? number
|
|
203
|
+
: K extends ParamSpecString | ParamSpecUnichar
|
|
204
|
+
? string
|
|
205
|
+
: K extends ParamSpecValueArray
|
|
206
|
+
? any[]
|
|
207
|
+
: K extends ParamSpecObject // TODO?: <infer T>
|
|
208
|
+
? ParamSpecObject // T
|
|
209
|
+
: K extends ParamSpecEnum // TODO?: <infer T><infer E>
|
|
210
|
+
? ParamSpecEnum // E
|
|
211
|
+
: K extends ParamSpecBoxed // TODO?: <infer T><infer B>
|
|
212
|
+
? ParamSpecBoxed //B
|
|
213
|
+
: K extends ParamSpecVariant
|
|
214
|
+
? GLib.Variant
|
|
215
|
+
: any;
|
|
216
|
+
|
|
217
|
+
// TODO: What about the generated class Closure
|
|
218
|
+
export type TClosure<R = any, P = any> = (...args: P[]) => R;
|
|
219
|
+
|
|
220
|
+
// This should be replaces by a class of GObject.Object as soon as once we have implemented inheritance
|
|
221
|
+
export class AnyClass {}
|
|
222
|
+
|
|
223
|
+
export function registerClass<
|
|
224
|
+
T extends AnyClass,
|
|
225
|
+
Props extends { [key: string]: ParamSpec },
|
|
226
|
+
Interfaces extends { $gtype: GType }[],
|
|
227
|
+
Sigs extends {
|
|
228
|
+
[key: string]: {
|
|
229
|
+
param_types?: readonly GType[];
|
|
230
|
+
[key: string]: any;
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
>(
|
|
234
|
+
options: MetaInfo<Props, Interfaces, Sigs>,
|
|
235
|
+
cls: T
|
|
236
|
+
): T;
|
|
237
|
+
|
|
238
|
+
export function registerClass<T extends AnyClass>(cls: T): T
|