@gtkx/codegen 0.21.0 → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -0
- package/dist/analysis/descriptor-render.d.ts +18 -0
- package/dist/analysis/descriptor-render.d.ts.map +1 -0
- package/dist/analysis/descriptor-render.js +297 -0
- package/dist/analysis/descriptor-render.js.map +1 -0
- package/dist/analysis/descriptor.d.ts +59 -0
- package/dist/analysis/descriptor.d.ts.map +1 -0
- package/dist/analysis/descriptor.js +123 -0
- package/dist/analysis/descriptor.js.map +1 -0
- package/dist/analysis/inheritance.d.ts +38 -0
- package/dist/analysis/inheritance.d.ts.map +1 -0
- package/dist/analysis/inheritance.js +193 -0
- package/dist/analysis/inheritance.js.map +1 -0
- package/dist/analysis/param-structure.d.ts +26 -0
- package/dist/analysis/param-structure.d.ts.map +1 -0
- package/dist/analysis/param-structure.js +107 -0
- package/dist/analysis/param-structure.js.map +1 -0
- package/dist/analysis/ts-type.d.ts +19 -0
- package/dist/analysis/ts-type.d.ts.map +1 -0
- package/dist/analysis/ts-type.js +65 -0
- package/dist/analysis/ts-type.js.map +1 -0
- package/dist/compile.d.ts +18 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +123 -0
- package/dist/compile.js.map +1 -0
- package/dist/docs/api-reference.d.ts +66 -0
- package/dist/docs/api-reference.d.ts.map +1 -0
- package/dist/docs/api-reference.js +299 -0
- package/dist/docs/api-reference.js.map +1 -0
- package/dist/docs/element-page.d.ts +15 -0
- package/dist/docs/element-page.d.ts.map +1 -0
- package/dist/docs/element-page.js +221 -0
- package/dist/docs/element-page.js.map +1 -0
- package/dist/docs/pipeline.d.ts +25 -0
- package/dist/docs/pipeline.d.ts.map +1 -0
- package/dist/docs/pipeline.js +130 -0
- package/dist/docs/pipeline.js.map +1 -0
- package/dist/docs/render.d.ts +32 -0
- package/dist/docs/render.d.ts.map +1 -0
- package/dist/docs/render.js +134 -0
- package/dist/docs/render.js.map +1 -0
- package/dist/docs/symbol-page.d.ts +41 -0
- package/dist/docs/symbol-page.d.ts.map +1 -0
- package/dist/docs/symbol-page.js +338 -0
- package/dist/docs/symbol-page.js.map +1 -0
- package/dist/fingerprint.d.ts +6 -26
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +30 -18
- package/dist/fingerprint.js.map +1 -1
- package/dist/gir/ancestry.d.ts +9 -0
- package/dist/gir/ancestry.d.ts.map +1 -0
- package/dist/gir/ancestry.js +29 -0
- package/dist/gir/ancestry.js.map +1 -0
- package/dist/gir/callback.d.ts +9 -10
- package/dist/gir/callback.d.ts.map +1 -1
- package/dist/gir/callback.js +17 -16
- package/dist/gir/callback.js.map +1 -1
- package/dist/gir/class.d.ts +22 -43
- package/dist/gir/class.d.ts.map +1 -1
- package/dist/gir/class.js +11 -23
- package/dist/gir/class.js.map +1 -1
- package/dist/gir/enum.d.ts +13 -31
- package/dist/gir/enum.d.ts.map +1 -1
- package/dist/gir/enum.js +7 -14
- package/dist/gir/enum.js.map +1 -1
- package/dist/gir/field.d.ts +10 -23
- package/dist/gir/field.d.ts.map +1 -1
- package/dist/gir/field.js +12 -18
- package/dist/gir/field.js.map +1 -1
- package/dist/gir/function.d.ts +11 -42
- package/dist/gir/function.d.ts.map +1 -1
- package/dist/gir/function.js +7 -20
- package/dist/gir/function.js.map +1 -1
- package/dist/gir/gir-path.d.ts +2 -0
- package/dist/gir/gir-path.d.ts.map +1 -0
- package/dist/gir/gir-path.js +41 -0
- package/dist/gir/gir-path.js.map +1 -0
- package/dist/gir/libraries.d.ts +4 -0
- package/dist/gir/libraries.d.ts.map +1 -0
- package/dist/gir/libraries.js +62 -0
- package/dist/gir/libraries.js.map +1 -0
- package/dist/gir/library.d.ts +37 -0
- package/dist/gir/library.d.ts.map +1 -0
- package/dist/gir/library.js +218 -0
- package/dist/gir/library.js.map +1 -0
- package/dist/gir/namespace.d.ts +36 -50
- package/dist/gir/namespace.d.ts.map +1 -1
- package/dist/gir/namespace.js +46 -36
- package/dist/gir/namespace.js.map +1 -1
- package/dist/gir/parameter.d.ts +25 -69
- package/dist/gir/parameter.d.ts.map +1 -1
- package/dist/gir/parameter.js +36 -57
- package/dist/gir/parameter.js.map +1 -1
- package/dist/gir/parse.d.ts +6 -70
- package/dist/gir/parse.d.ts.map +1 -1
- package/dist/gir/parse.js +32 -80
- package/dist/gir/parse.js.map +1 -1
- package/dist/gir/primitives.d.ts +3 -34
- package/dist/gir/primitives.d.ts.map +1 -1
- package/dist/gir/primitives.js +19 -35
- package/dist/gir/primitives.js.map +1 -1
- package/dist/gir/property.d.ts +16 -25
- package/dist/gir/property.d.ts.map +1 -1
- package/dist/gir/property.js +12 -9
- package/dist/gir/property.js.map +1 -1
- package/dist/gir/record.d.ts +27 -0
- package/dist/gir/record.d.ts.map +1 -0
- package/dist/gir/record.js +25 -0
- package/dist/gir/record.js.map +1 -0
- package/dist/gir/size.d.ts +10 -57
- package/dist/gir/size.d.ts.map +1 -1
- package/dist/gir/size.js +0 -25
- package/dist/gir/size.js.map +1 -1
- package/dist/gir/type-id.d.ts +49 -0
- package/dist/gir/type-id.d.ts.map +1 -0
- package/dist/gir/type-id.js +8 -0
- package/dist/gir/type-id.js.map +1 -0
- package/dist/gir/type-ref.d.ts +3 -77
- package/dist/gir/type-ref.d.ts.map +1 -1
- package/dist/gir/type-ref.js +35 -65
- package/dist/gir/type-ref.js.map +1 -1
- package/dist/gir/type.d.ts +33 -0
- package/dist/gir/type.d.ts.map +1 -0
- package/dist/gir/type.js +2 -0
- package/dist/gir/type.js.map +1 -0
- package/dist/index.d.ts +5 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -11
- package/dist/index.js.map +1 -1
- package/dist/khronos/args.d.ts +30 -0
- package/dist/khronos/args.d.ts.map +1 -0
- package/dist/khronos/args.js +150 -0
- package/dist/khronos/args.js.map +1 -0
- package/dist/khronos/jsdoc.d.ts +21 -0
- package/dist/khronos/jsdoc.d.ts.map +1 -0
- package/dist/khronos/jsdoc.js +59 -0
- package/dist/khronos/jsdoc.js.map +1 -0
- package/dist/khronos/model.d.ts +37 -0
- package/dist/khronos/model.d.ts.map +1 -0
- package/dist/khronos/model.js +132 -0
- package/dist/khronos/model.js.map +1 -0
- package/dist/khronos/modules.d.ts +11 -0
- package/dist/khronos/modules.d.ts.map +1 -0
- package/dist/khronos/modules.js +58 -0
- package/dist/khronos/modules.js.map +1 -0
- package/dist/khronos/parse.d.ts +9 -0
- package/dist/khronos/parse.d.ts.map +1 -0
- package/dist/khronos/parse.js +61 -0
- package/dist/khronos/parse.js.map +1 -0
- package/dist/khronos/pipeline.d.ts +24 -0
- package/dist/khronos/pipeline.d.ts.map +1 -0
- package/dist/khronos/pipeline.js +182 -0
- package/dist/khronos/pipeline.js.map +1 -0
- package/dist/khronos/plan.d.ts +80 -0
- package/dist/khronos/plan.d.ts.map +1 -0
- package/dist/khronos/plan.js +136 -0
- package/dist/khronos/plan.js.map +1 -0
- package/dist/khronos/render.d.ts +16 -0
- package/dist/khronos/render.d.ts.map +1 -0
- package/dist/khronos/render.js +158 -0
- package/dist/khronos/render.js.map +1 -0
- package/dist/khronos/select.d.ts +15 -0
- package/dist/khronos/select.d.ts.map +1 -0
- package/dist/khronos/select.js +45 -0
- package/dist/khronos/select.js.map +1 -0
- package/dist/runner.d.ts +29 -47
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +78 -53
- package/dist/runner.js.map +1 -1
- package/dist/store/compile-store.d.ts +9 -0
- package/dist/store/compile-store.d.ts.map +1 -0
- package/dist/store/compile-store.js +38 -0
- package/dist/store/compile-store.js.map +1 -0
- package/dist/store/gi/async.d.ts +4 -0
- package/dist/store/gi/async.d.ts.map +1 -0
- package/dist/store/gi/async.js +41 -0
- package/dist/store/gi/async.js.map +1 -0
- package/dist/store/gi/callables.d.ts +36 -0
- package/dist/store/gi/callables.d.ts.map +1 -0
- package/dist/store/gi/callables.js +202 -0
- package/dist/store/gi/callables.js.map +1 -0
- package/dist/store/gi/callback.d.ts +4 -0
- package/dist/store/gi/callback.d.ts.map +1 -0
- package/dist/store/gi/callback.js +14 -0
- package/dist/store/gi/callback.js.map +1 -0
- package/dist/store/gi/class-struct-record.d.ts +9 -0
- package/dist/store/gi/class-struct-record.d.ts.map +1 -0
- package/dist/store/gi/class-struct-record.js +34 -0
- package/dist/store/gi/class-struct-record.js.map +1 -0
- package/dist/store/gi/class.d.ts +4 -0
- package/dist/store/gi/class.d.ts.map +1 -0
- package/dist/store/gi/class.js +169 -0
- package/dist/store/gi/class.js.map +1 -0
- package/dist/store/gi/companion.d.ts +4 -0
- package/dist/store/gi/companion.d.ts.map +1 -0
- package/dist/store/gi/companion.js +13 -0
- package/dist/store/gi/companion.js.map +1 -0
- package/dist/store/gi/constant.d.ts +5 -0
- package/dist/store/gi/constant.d.ts.map +1 -0
- package/dist/store/gi/constant.js +18 -0
- package/dist/store/gi/constant.js.map +1 -0
- package/dist/store/gi/constructor-props.d.ts +5 -0
- package/dist/store/gi/constructor-props.d.ts.map +1 -0
- package/dist/store/gi/constructor-props.js +64 -0
- package/dist/store/gi/constructor-props.js.map +1 -0
- package/dist/store/gi/enum.d.ts +5 -0
- package/dist/store/gi/enum.d.ts.map +1 -0
- package/dist/store/gi/enum.js +38 -0
- package/dist/store/gi/enum.js.map +1 -0
- package/dist/store/gi/function.d.ts +8 -0
- package/dist/store/gi/function.d.ts.map +1 -0
- package/dist/store/gi/function.js +87 -0
- package/dist/store/gi/function.js.map +1 -0
- package/dist/store/gi/gtype-binding.d.ts +10 -0
- package/dist/store/gi/gtype-binding.d.ts.map +1 -0
- package/dist/store/gi/gtype-binding.js +20 -0
- package/dist/store/gi/gtype-binding.js.map +1 -0
- package/dist/store/gi/interface.d.ts +4 -0
- package/dist/store/gi/interface.d.ts.map +1 -0
- package/dist/store/gi/interface.js +99 -0
- package/dist/store/gi/interface.js.map +1 -0
- package/dist/store/gi/item-comparators.d.ts +6 -0
- package/dist/store/gi/item-comparators.d.ts.map +1 -0
- package/dist/store/gi/item-comparators.js +76 -0
- package/dist/store/gi/item-comparators.js.map +1 -0
- package/dist/store/gi/method.d.ts +24 -0
- package/dist/store/gi/method.d.ts.map +1 -0
- package/dist/store/gi/method.js +279 -0
- package/dist/store/gi/method.js.map +1 -0
- package/dist/store/gi/param-marshal.d.ts +9 -0
- package/dist/store/gi/param-marshal.d.ts.map +1 -0
- package/dist/store/gi/param-marshal.js +37 -0
- package/dist/store/gi/param-marshal.js.map +1 -0
- package/dist/store/gi/pipeline.d.ts +4 -0
- package/dist/store/gi/pipeline.d.ts.map +1 -0
- package/dist/store/gi/pipeline.js +80 -0
- package/dist/store/gi/pipeline.js.map +1 -0
- package/dist/store/gi/properties.d.ts +5 -0
- package/dist/store/gi/properties.d.ts.map +1 -0
- package/dist/store/gi/properties.js +30 -0
- package/dist/store/gi/properties.js.map +1 -0
- package/dist/store/gi/property-accessor.d.ts +26 -0
- package/dist/store/gi/property-accessor.d.ts.map +1 -0
- package/dist/store/gi/property-accessor.js +132 -0
- package/dist/store/gi/property-accessor.js.map +1 -0
- package/dist/store/gi/record-constructor.d.ts +5 -0
- package/dist/store/gi/record-constructor.d.ts.map +1 -0
- package/dist/store/gi/record-constructor.js +65 -0
- package/dist/store/gi/record-constructor.js.map +1 -0
- package/dist/store/gi/record-field-accessor.d.ts +25 -0
- package/dist/store/gi/record-field-accessor.d.ts.map +1 -0
- package/dist/store/gi/record-field-accessor.js +288 -0
- package/dist/store/gi/record-field-accessor.js.map +1 -0
- package/dist/store/gi/record-layout.d.ts +14 -0
- package/dist/store/gi/record-layout.d.ts.map +1 -0
- package/dist/store/gi/record-layout.js +96 -0
- package/dist/store/gi/record-layout.js.map +1 -0
- package/dist/store/gi/record.d.ts +4 -0
- package/dist/store/gi/record.d.ts.map +1 -0
- package/dist/store/gi/record.js +59 -0
- package/dist/store/gi/record.js.map +1 -0
- package/dist/store/gi/registration.d.ts +16 -0
- package/dist/store/gi/registration.d.ts.map +1 -0
- package/dist/store/gi/registration.js +20 -0
- package/dist/store/gi/registration.js.map +1 -0
- package/dist/store/gi/return-wrap.d.ts +10 -0
- package/dist/store/gi/return-wrap.d.ts.map +1 -0
- package/dist/store/gi/return-wrap.js +46 -0
- package/dist/store/gi/return-wrap.js.map +1 -0
- package/dist/store/gi/runtime-override.d.ts +3 -0
- package/dist/store/gi/runtime-override.d.ts.map +1 -0
- package/dist/{writers → store/gi}/runtime-override.js +0 -15
- package/dist/store/gi/runtime-override.js.map +1 -0
- package/dist/store/gi/signal.d.ts +5 -0
- package/dist/store/gi/signal.d.ts.map +1 -0
- package/dist/store/gi/signal.js +233 -0
- package/dist/store/gi/signal.js.map +1 -0
- package/dist/store/gi/vtable.d.ts +4 -0
- package/dist/store/gi/vtable.d.ts.map +1 -0
- package/dist/store/gi/vtable.js +78 -0
- package/dist/store/gi/vtable.js.map +1 -0
- package/dist/store/gi-store.d.ts +9 -0
- package/dist/store/gi-store.d.ts.map +1 -0
- package/dist/store/gi-store.js +57 -0
- package/dist/store/gi-store.js.map +1 -0
- package/dist/store/jsx-store.d.ts +5 -0
- package/dist/store/jsx-store.d.ts.map +1 -0
- package/dist/store/jsx-store.js +23 -0
- package/dist/store/jsx-store.js.map +1 -0
- package/dist/store/react/built-ins.d.ts +9 -0
- package/dist/store/react/built-ins.d.ts.map +1 -0
- package/dist/store/react/built-ins.js +226 -0
- package/dist/store/react/built-ins.js.map +1 -0
- package/dist/store/react/element-components.d.ts +15 -0
- package/dist/store/react/element-components.d.ts.map +1 -0
- package/dist/store/react/element-components.js +92 -0
- package/dist/store/react/element-components.js.map +1 -0
- package/dist/store/react/element-prop-types.d.ts +19 -0
- package/dist/store/react/element-prop-types.d.ts.map +1 -0
- package/dist/store/react/element-prop-types.js +244 -0
- package/dist/store/react/element-prop-types.js.map +1 -0
- package/dist/store/react/element-props.d.ts +4 -0
- package/dist/store/react/element-props.d.ts.map +1 -0
- package/dist/store/react/element-props.js +178 -0
- package/dist/store/react/element-props.js.map +1 -0
- package/dist/store/react/gir-index.d.ts +25 -0
- package/dist/store/react/gir-index.d.ts.map +1 -0
- package/dist/store/react/gir-index.js +55 -0
- package/dist/store/react/gir-index.js.map +1 -0
- package/dist/store/react/intrinsic-elements.d.ts +26 -0
- package/dist/store/react/intrinsic-elements.d.ts.map +1 -0
- package/dist/store/react/intrinsic-elements.js +107 -0
- package/dist/store/react/intrinsic-elements.js.map +1 -0
- package/dist/store/react/jsx.d.ts +18 -0
- package/dist/store/react/jsx.d.ts.map +1 -0
- package/dist/store/react/jsx.js +203 -0
- package/dist/store/react/jsx.js.map +1 -0
- package/dist/store/react/metadata.d.ts +4 -0
- package/dist/store/react/metadata.d.ts.map +1 -0
- package/dist/store/react/metadata.js +174 -0
- package/dist/store/react/metadata.js.map +1 -0
- package/dist/store/react/pipeline.d.ts +14 -0
- package/dist/store/react/pipeline.d.ts.map +1 -0
- package/dist/store/react/pipeline.js +60 -0
- package/dist/store/react/pipeline.js.map +1 -0
- package/dist/store/react/props.d.ts +36 -0
- package/dist/store/react/props.d.ts.map +1 -0
- package/dist/store/react/props.js +133 -0
- package/dist/store/react/props.js.map +1 -0
- package/dist/store/store-fs.d.ts +41 -0
- package/dist/store/store-fs.d.ts.map +1 -0
- package/dist/store/store-fs.js +71 -0
- package/dist/store/store-fs.js.map +1 -0
- package/dist/writer/context.d.ts +16 -0
- package/dist/writer/context.d.ts.map +1 -0
- package/dist/writer/context.js +44 -0
- package/dist/writer/context.js.map +1 -0
- package/dist/writer/doc.d.ts +2 -0
- package/dist/writer/doc.d.ts.map +1 -0
- package/dist/writer/doc.js +12 -0
- package/dist/writer/doc.js.map +1 -0
- package/dist/writer/emit.d.ts +8 -0
- package/dist/writer/emit.d.ts.map +1 -0
- package/dist/writer/emit.js +21 -0
- package/dist/writer/emit.js.map +1 -0
- package/dist/writer/gtk-doc.d.ts +2 -0
- package/dist/writer/gtk-doc.d.ts.map +1 -0
- package/dist/writer/gtk-doc.js +67 -0
- package/dist/writer/gtk-doc.js.map +1 -0
- package/dist/writer/imports.d.ts +10 -0
- package/dist/writer/imports.d.ts.map +1 -0
- package/dist/writer/imports.js +50 -0
- package/dist/writer/imports.js.map +1 -0
- package/dist/writer/module.d.ts +15 -0
- package/dist/writer/module.d.ts.map +1 -0
- package/dist/writer/module.js +46 -0
- package/dist/writer/module.js.map +1 -0
- package/overrides/cairo/context.ts.ejs +1269 -0
- package/overrides/cairo/font-face.ts.ejs +151 -0
- package/overrides/cairo/font-options.ts.ejs +199 -0
- package/overrides/cairo/image-surface.ts.ejs +132 -0
- package/overrides/cairo/index.ts.ejs +22 -0
- package/overrides/cairo/matrix.ts.ejs +171 -0
- package/overrides/cairo/pattern.ts.ejs +476 -0
- package/overrides/cairo/recording-surface.ts.ejs +102 -0
- package/overrides/cairo/region.ts.ejs +237 -0
- package/overrides/cairo/scaled-font.ts.ejs +330 -0
- package/overrides/cairo/surface.ts.ejs +296 -0
- package/overrides/gdk/index.ts.ejs +2 -0
- package/overrides/gdk/rgba.ts.ejs +11 -0
- package/overrides/gobject/index.ts.ejs +29 -0
- package/overrides/gobject/object.ts.ejs +51 -0
- package/overrides/gobject/value.ts.ejs +17 -0
- package/overrides/graphene/index.ts.ejs +2 -0
- package/overrides/graphene/structs.ts.ejs +37 -0
- package/overrides/gtk/constants.ts.ejs +3 -0
- package/overrides/gtk/index.ts.ejs +2 -0
- package/package.json +15 -15
- package/src/analysis/descriptor-render.ts +407 -0
- package/src/analysis/descriptor.ts +263 -0
- package/src/analysis/inheritance.ts +242 -0
- package/src/analysis/param-structure.ts +127 -0
- package/src/analysis/ts-type.ts +88 -0
- package/src/compile.ts +152 -0
- package/src/docs/api-reference.ts +361 -0
- package/src/docs/element-page.ts +290 -0
- package/src/docs/pipeline.ts +182 -0
- package/src/docs/render.ts +191 -0
- package/src/docs/symbol-page.ts +444 -0
- package/src/fingerprint.ts +40 -29
- package/src/gir/ancestry.ts +41 -0
- package/src/gir/callback.ts +25 -22
- package/src/gir/class.ts +31 -57
- package/src/gir/enum.ts +20 -38
- package/src/gir/field.ts +21 -36
- package/src/gir/function.ts +17 -56
- package/src/gir/gir-path.ts +49 -0
- package/src/gir/libraries.ts +77 -0
- package/src/gir/library.ts +248 -0
- package/src/gir/namespace.ts +85 -80
- package/src/gir/parameter.ts +64 -93
- package/src/gir/parse.ts +43 -95
- package/src/gir/primitives.ts +23 -45
- package/src/gir/property.ts +27 -29
- package/src/gir/record.ts +53 -0
- package/src/gir/size.ts +9 -56
- package/src/gir/type-id.ts +49 -0
- package/src/gir/type-ref.ts +35 -140
- package/src/gir/type.ts +16 -0
- package/src/index.ts +20 -15
- package/src/khronos/args.ts +202 -0
- package/src/khronos/jsdoc.ts +76 -0
- package/src/khronos/model.ts +166 -0
- package/src/khronos/modules.ts +75 -0
- package/src/khronos/parse.ts +66 -0
- package/src/khronos/pipeline.ts +234 -0
- package/src/khronos/plan.ts +191 -0
- package/src/khronos/registry/LICENSE +202 -0
- package/src/khronos/registry/gl.xml +47748 -0
- package/src/khronos/render.ts +193 -0
- package/src/khronos/select.ts +67 -0
- package/src/runner.ts +112 -75
- package/src/store/compile-store.ts +49 -0
- package/src/store/gi/async.ts +42 -0
- package/src/store/gi/callables.ts +309 -0
- package/src/store/gi/callback.ts +15 -0
- package/src/store/gi/class-struct-record.ts +40 -0
- package/src/store/gi/class.ts +212 -0
- package/src/store/gi/companion.ts +13 -0
- package/src/store/gi/constant.ts +24 -0
- package/src/store/gi/constructor-props.ts +82 -0
- package/src/store/gi/enum.ts +49 -0
- package/src/store/gi/function.ts +107 -0
- package/src/store/gi/gtype-binding.ts +33 -0
- package/src/store/gi/interface.ts +157 -0
- package/src/store/gi/item-comparators.ts +90 -0
- package/src/store/gi/method.ts +417 -0
- package/src/store/gi/param-marshal.ts +48 -0
- package/src/store/gi/pipeline.ts +85 -0
- package/src/store/gi/properties.ts +39 -0
- package/src/store/gi/property-accessor.ts +194 -0
- package/src/store/gi/record-constructor.ts +87 -0
- package/src/store/gi/record-field-accessor.ts +394 -0
- package/src/store/gi/record-layout.ts +134 -0
- package/src/store/gi/record.ts +66 -0
- package/src/store/gi/registration.ts +38 -0
- package/src/store/gi/return-wrap.ts +52 -0
- package/src/store/gi/runtime-override.ts +36 -0
- package/src/store/gi/signal.ts +310 -0
- package/src/store/gi/vtable.ts +99 -0
- package/src/store/gi-store.ts +79 -0
- package/src/store/jsx-store.ts +27 -0
- package/src/store/react/built-ins.ts +260 -0
- package/src/store/react/element-components.ts +138 -0
- package/src/store/react/element-prop-types.ts +280 -0
- package/src/store/react/element-props.ts +204 -0
- package/src/store/react/gir-index.ts +85 -0
- package/src/store/react/intrinsic-elements.ts +161 -0
- package/src/store/react/jsx.ts +294 -0
- package/src/store/react/metadata.ts +197 -0
- package/src/store/react/pipeline.ts +90 -0
- package/src/store/react/props.ts +197 -0
- package/src/store/store-fs.ts +112 -0
- package/src/writer/context.ts +48 -0
- package/src/writer/doc.ts +11 -0
- package/src/writer/emit.ts +26 -0
- package/src/writer/gtk-doc.ts +74 -0
- package/src/writer/imports.ts +59 -0
- package/src/writer/module.ts +45 -0
- package/LICENSE +0 -373
- package/dist/dsl/context.d.ts +0 -104
- package/dist/dsl/context.d.ts.map +0 -1
- package/dist/dsl/context.js +0 -140
- package/dist/dsl/context.js.map +0 -1
- package/dist/dsl/emit.d.ts +0 -28
- package/dist/dsl/emit.d.ts.map +0 -1
- package/dist/dsl/emit.js +0 -41
- package/dist/dsl/emit.js.map +0 -1
- package/dist/dsl/identifier.d.ts +0 -28
- package/dist/dsl/identifier.d.ts.map +0 -1
- package/dist/dsl/identifier.js +0 -45
- package/dist/dsl/identifier.js.map +0 -1
- package/dist/dsl/imports.d.ts +0 -58
- package/dist/dsl/imports.d.ts.map +0 -1
- package/dist/dsl/imports.js +0 -107
- package/dist/dsl/imports.js.map +0 -1
- package/dist/dsl/module.d.ts +0 -53
- package/dist/dsl/module.d.ts.map +0 -1
- package/dist/dsl/module.js +0 -76
- package/dist/dsl/module.js.map +0 -1
- package/dist/ffi/pipeline.d.ts +0 -19
- package/dist/ffi/pipeline.d.ts.map +0 -1
- package/dist/ffi/pipeline.js +0 -107
- package/dist/ffi/pipeline.js.map +0 -1
- package/dist/gi-store.d.ts +0 -34
- package/dist/gi-store.d.ts.map +0 -1
- package/dist/gi-store.js +0 -154
- package/dist/gi-store.js.map +0 -1
- package/dist/gir/boxed.d.ts +0 -66
- package/dist/gir/boxed.d.ts.map +0 -1
- package/dist/gir/boxed.js +0 -49
- package/dist/gir/boxed.js.map +0 -1
- package/dist/gir/qualified-name.d.ts +0 -37
- package/dist/gir/qualified-name.d.ts.map +0 -1
- package/dist/gir/qualified-name.js +0 -39
- package/dist/gir/qualified-name.js.map +0 -1
- package/dist/gir/qualify.d.ts +0 -32
- package/dist/gir/qualify.d.ts.map +0 -1
- package/dist/gir/qualify.js +0 -60
- package/dist/gir/qualify.js.map +0 -1
- package/dist/gir/repository.d.ts +0 -82
- package/dist/gir/repository.d.ts.map +0 -1
- package/dist/gir/repository.js +0 -122
- package/dist/gir/repository.js.map +0 -1
- package/dist/gir/signal.d.ts +0 -22
- package/dist/gir/signal.d.ts.map +0 -1
- package/dist/gir/signal.js +0 -20
- package/dist/gir/signal.js.map +0 -1
- package/dist/jsx-store.d.ts +0 -22
- package/dist/jsx-store.d.ts.map +0 -1
- package/dist/jsx-store.js +0 -40
- package/dist/jsx-store.js.map +0 -1
- package/dist/react/compounds-meta.d.ts +0 -18
- package/dist/react/compounds-meta.d.ts.map +0 -1
- package/dist/react/compounds-meta.js +0 -93
- package/dist/react/compounds-meta.js.map +0 -1
- package/dist/react/compounds.d.ts +0 -27
- package/dist/react/compounds.d.ts.map +0 -1
- package/dist/react/compounds.js +0 -164
- package/dist/react/compounds.js.map +0 -1
- package/dist/react/internal.d.ts +0 -14
- package/dist/react/internal.d.ts.map +0 -1
- package/dist/react/internal.js +0 -79
- package/dist/react/internal.js.map +0 -1
- package/dist/react/jsx.d.ts +0 -22
- package/dist/react/jsx.d.ts.map +0 -1
- package/dist/react/jsx.js +0 -134
- package/dist/react/jsx.js.map +0 -1
- package/dist/react/pipeline.d.ts +0 -13
- package/dist/react/pipeline.d.ts.map +0 -1
- package/dist/react/pipeline.js +0 -25
- package/dist/react/pipeline.js.map +0 -1
- package/dist/react/props.d.ts +0 -38
- package/dist/react/props.d.ts.map +0 -1
- package/dist/react/props.js +0 -231
- package/dist/react/props.js.map +0 -1
- package/dist/react/slot-props.d.ts +0 -10
- package/dist/react/slot-props.d.ts.map +0 -1
- package/dist/react/slot-props.js +0 -56
- package/dist/react/slot-props.js.map +0 -1
- package/dist/react/widgets.d.ts +0 -83
- package/dist/react/widgets.d.ts.map +0 -1
- package/dist/react/widgets.js +0 -152
- package/dist/react/widgets.js.map +0 -1
- package/dist/store-fs.d.ts +0 -109
- package/dist/store-fs.d.ts.map +0 -1
- package/dist/store-fs.js +0 -98
- package/dist/store-fs.js.map +0 -1
- package/dist/transpile.d.ts +0 -32
- package/dist/transpile.d.ts.map +0 -1
- package/dist/transpile.js +0 -63
- package/dist/transpile.js.map +0 -1
- package/dist/typecheck-store.d.ts +0 -41
- package/dist/typecheck-store.d.ts.map +0 -1
- package/dist/typecheck-store.js +0 -102
- package/dist/typecheck-store.js.map +0 -1
- package/dist/writers/alias.d.ts +0 -13
- package/dist/writers/alias.d.ts.map +0 -1
- package/dist/writers/alias.js +0 -17
- package/dist/writers/alias.js.map +0 -1
- package/dist/writers/async.d.ts +0 -22
- package/dist/writers/async.d.ts.map +0 -1
- package/dist/writers/async.js +0 -48
- package/dist/writers/async.js.map +0 -1
- package/dist/writers/boxed-constructor.d.ts +0 -26
- package/dist/writers/boxed-constructor.d.ts.map +0 -1
- package/dist/writers/boxed-constructor.js +0 -85
- package/dist/writers/boxed-constructor.js.map +0 -1
- package/dist/writers/boxed-field-accessor.d.ts +0 -18
- package/dist/writers/boxed-field-accessor.d.ts.map +0 -1
- package/dist/writers/boxed-field-accessor.js +0 -260
- package/dist/writers/boxed-field-accessor.js.map +0 -1
- package/dist/writers/boxed-layout.d.ts +0 -27
- package/dist/writers/boxed-layout.d.ts.map +0 -1
- package/dist/writers/boxed-layout.js +0 -128
- package/dist/writers/boxed-layout.js.map +0 -1
- package/dist/writers/boxed.d.ts +0 -20
- package/dist/writers/boxed.d.ts.map +0 -1
- package/dist/writers/boxed.js +0 -71
- package/dist/writers/boxed.js.map +0 -1
- package/dist/writers/callables.d.ts +0 -124
- package/dist/writers/callables.d.ts.map +0 -1
- package/dist/writers/callables.js +0 -283
- package/dist/writers/callables.js.map +0 -1
- package/dist/writers/callback.d.ts +0 -16
- package/dist/writers/callback.d.ts.map +0 -1
- package/dist/writers/callback.js +0 -38
- package/dist/writers/callback.js.map +0 -1
- package/dist/writers/class-struct-record.d.ts +0 -31
- package/dist/writers/class-struct-record.d.ts.map +0 -1
- package/dist/writers/class-struct-record.js +0 -67
- package/dist/writers/class-struct-record.js.map +0 -1
- package/dist/writers/class-struct.d.ts +0 -22
- package/dist/writers/class-struct.d.ts.map +0 -1
- package/dist/writers/class-struct.js +0 -85
- package/dist/writers/class-struct.js.map +0 -1
- package/dist/writers/class.d.ts +0 -16
- package/dist/writers/class.d.ts.map +0 -1
- package/dist/writers/class.js +0 -307
- package/dist/writers/class.js.map +0 -1
- package/dist/writers/constant.d.ts +0 -15
- package/dist/writers/constant.d.ts.map +0 -1
- package/dist/writers/constant.js +0 -23
- package/dist/writers/constant.js.map +0 -1
- package/dist/writers/constants.d.ts +0 -15
- package/dist/writers/constants.d.ts.map +0 -1
- package/dist/writers/constants.js +0 -23
- package/dist/writers/constants.js.map +0 -1
- package/dist/writers/constructor-props.d.ts +0 -32
- package/dist/writers/constructor-props.d.ts.map +0 -1
- package/dist/writers/constructor-props.js +0 -110
- package/dist/writers/constructor-props.js.map +0 -1
- package/dist/writers/enum.d.ts +0 -21
- package/dist/writers/enum.d.ts.map +0 -1
- package/dist/writers/enum.js +0 -48
- package/dist/writers/enum.js.map +0 -1
- package/dist/writers/function.d.ts +0 -40
- package/dist/writers/function.d.ts.map +0 -1
- package/dist/writers/function.js +0 -127
- package/dist/writers/function.js.map +0 -1
- package/dist/writers/gtype-binding.d.ts +0 -19
- package/dist/writers/gtype-binding.d.ts.map +0 -1
- package/dist/writers/gtype-binding.js +0 -40
- package/dist/writers/gtype-binding.js.map +0 -1
- package/dist/writers/inheritance.d.ts +0 -48
- package/dist/writers/inheritance.d.ts.map +0 -1
- package/dist/writers/inheritance.js +0 -90
- package/dist/writers/inheritance.js.map +0 -1
- package/dist/writers/interface.d.ts +0 -16
- package/dist/writers/interface.d.ts.map +0 -1
- package/dist/writers/interface.js +0 -155
- package/dist/writers/interface.js.map +0 -1
- package/dist/writers/method.d.ts +0 -150
- package/dist/writers/method.d.ts.map +0 -1
- package/dist/writers/method.js +0 -510
- package/dist/writers/method.js.map +0 -1
- package/dist/writers/param-classify.d.ts +0 -93
- package/dist/writers/param-classify.d.ts.map +0 -1
- package/dist/writers/param-classify.js +0 -163
- package/dist/writers/param-classify.js.map +0 -1
- package/dist/writers/property-accessor.d.ts +0 -19
- package/dist/writers/property-accessor.d.ts.map +0 -1
- package/dist/writers/property-accessor.js +0 -117
- package/dist/writers/property-accessor.js.map +0 -1
- package/dist/writers/registration.d.ts +0 -27
- package/dist/writers/registration.d.ts.map +0 -1
- package/dist/writers/registration.js +0 -30
- package/dist/writers/registration.js.map +0 -1
- package/dist/writers/return-wrap.d.ts +0 -39
- package/dist/writers/return-wrap.d.ts.map +0 -1
- package/dist/writers/return-wrap.js +0 -152
- package/dist/writers/return-wrap.js.map +0 -1
- package/dist/writers/runtime-override.d.ts +0 -18
- package/dist/writers/runtime-override.d.ts.map +0 -1
- package/dist/writers/runtime-override.js.map +0 -1
- package/dist/writers/signal.d.ts +0 -21
- package/dist/writers/signal.d.ts.map +0 -1
- package/dist/writers/signal.js +0 -260
- package/dist/writers/signal.js.map +0 -1
- package/dist/writers/ts-type.d.ts +0 -50
- package/dist/writers/ts-type.d.ts.map +0 -1
- package/dist/writers/ts-type.js +0 -75
- package/dist/writers/ts-type.js.map +0 -1
- package/dist/writers/types-ts.d.ts +0 -27
- package/dist/writers/types-ts.d.ts.map +0 -1
- package/dist/writers/types-ts.js +0 -97
- package/dist/writers/types-ts.js.map +0 -1
- package/dist/writers/value.d.ts +0 -89
- package/dist/writers/value.d.ts.map +0 -1
- package/dist/writers/value.js +0 -402
- package/dist/writers/value.js.map +0 -1
- package/src/dsl/context.ts +0 -146
- package/src/dsl/emit.ts +0 -42
- package/src/dsl/identifier.ts +0 -52
- package/src/dsl/imports.ts +0 -109
- package/src/dsl/module.ts +0 -75
- package/src/ffi/pipeline.ts +0 -113
- package/src/gi-store.ts +0 -199
- package/src/gir/boxed.ts +0 -94
- package/src/gir/qualified-name.ts +0 -55
- package/src/gir/qualify.ts +0 -64
- package/src/gir/repository.ts +0 -149
- package/src/gir/signal.ts +0 -36
- package/src/jsx-store.ts +0 -53
- package/src/react/compounds-meta.ts +0 -99
- package/src/react/compounds.ts +0 -204
- package/src/react/internal.ts +0 -91
- package/src/react/jsx.ts +0 -155
- package/src/react/pipeline.ts +0 -29
- package/src/react/props.ts +0 -307
- package/src/react/slot-props.ts +0 -57
- package/src/react/widgets.ts +0 -185
- package/src/store-fs.ts +0 -157
- package/src/transpile.ts +0 -80
- package/src/typecheck-store.ts +0 -136
- package/src/writers/alias.ts +0 -19
- package/src/writers/async.ts +0 -44
- package/src/writers/boxed-constructor.ts +0 -105
- package/src/writers/boxed-field-accessor.ts +0 -306
- package/src/writers/boxed-layout.ts +0 -166
- package/src/writers/boxed.ts +0 -77
- package/src/writers/callables.ts +0 -339
- package/src/writers/callback.ts +0 -40
- package/src/writers/class-struct-record.ts +0 -75
- package/src/writers/class-struct.ts +0 -96
- package/src/writers/class.ts +0 -384
- package/src/writers/constant.ts +0 -29
- package/src/writers/constructor-props.ts +0 -130
- package/src/writers/enum.ts +0 -53
- package/src/writers/function.ts +0 -136
- package/src/writers/gtype-binding.ts +0 -48
- package/src/writers/inheritance.ts +0 -104
- package/src/writers/interface.ts +0 -168
- package/src/writers/method.ts +0 -678
- package/src/writers/param-classify.ts +0 -178
- package/src/writers/property-accessor.ts +0 -139
- package/src/writers/registration.ts +0 -42
- package/src/writers/return-wrap.ts +0 -180
- package/src/writers/runtime-override.ts +0 -59
- package/src/writers/signal.ts +0 -318
- package/src/writers/ts-type.ts +0 -115
- package/src/writers/value.ts +0 -485
package/dist/gir/parse.js
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
2
|
import { XMLParser } from "fast-xml-parser";
|
|
3
|
-
/**
|
|
4
|
-
* Tag names that the GIR schema permits at multi-occurrence positions.
|
|
5
|
-
*
|
|
6
|
-
* `fast-xml-parser` is configured to always materialize these as arrays so
|
|
7
|
-
* downstream traversal never needs to branch on "is this an object or an
|
|
8
|
-
* array of objects". Tags missing from this set may appear as a single
|
|
9
|
-
* object (e.g. `<return-value>`, `<parameters>`, `<type>`, `<doc>`).
|
|
10
|
-
*/
|
|
11
3
|
const MULTI_TAGS = new Set([
|
|
12
4
|
"include",
|
|
13
|
-
"c:include",
|
|
14
|
-
"package",
|
|
15
5
|
"class",
|
|
16
6
|
"interface",
|
|
17
7
|
"record",
|
|
@@ -19,14 +9,11 @@ const MULTI_TAGS = new Set([
|
|
|
19
9
|
"bitfield",
|
|
20
10
|
"callback",
|
|
21
11
|
"function",
|
|
22
|
-
"function-macro",
|
|
23
12
|
"constant",
|
|
24
13
|
"alias",
|
|
25
14
|
"union",
|
|
26
|
-
"glib:boxed",
|
|
27
15
|
"method",
|
|
28
16
|
"constructor",
|
|
29
|
-
"virtual-method",
|
|
30
17
|
"property",
|
|
31
18
|
"field",
|
|
32
19
|
"glib:signal",
|
|
@@ -34,27 +21,9 @@ const MULTI_TAGS = new Set([
|
|
|
34
21
|
"prerequisite",
|
|
35
22
|
"member",
|
|
36
23
|
"parameter",
|
|
37
|
-
"attribute",
|
|
38
24
|
]);
|
|
39
|
-
/**
|
|
40
|
-
* The tag name codegen reads GIR constructors under.
|
|
41
|
-
*
|
|
42
|
-
* GIR spells constructors `<constructor>`, but `fast-xml-parser` rejects the
|
|
43
|
-
* literal names `constructor`, `prototype`, and `__proto__` to guard against
|
|
44
|
-
* prototype pollution, with no opt-out. {@link parseGirFile} rewrites the tag
|
|
45
|
-
* to this token via `transformTagName` before that guard runs, so every
|
|
46
|
-
* downstream lookup of a constructor child must use this constant rather than
|
|
47
|
-
* the raw GIR name.
|
|
48
|
-
*/
|
|
49
25
|
export const GIR_CONSTRUCTOR_TAG = "gir-constructor";
|
|
50
26
|
const RESERVED_TAG_RENAMES = new Map([["constructor", GIR_CONSTRUCTOR_TAG]]);
|
|
51
|
-
/**
|
|
52
|
-
* Maps a GIR tag name to the token the parser exposes it under, rewriting the
|
|
53
|
-
* names {@link RESERVED_TAG_RENAMES} covers and passing every other tag
|
|
54
|
-
* through unchanged.
|
|
55
|
-
*
|
|
56
|
-
* @param tag - The raw GIR tag name
|
|
57
|
-
*/
|
|
58
27
|
const renameReservedTag = (tag) => RESERVED_TAG_RENAMES.get(tag) ?? tag;
|
|
59
28
|
const RENAMED_MULTI_TAGS = new Set([...MULTI_TAGS].map(renameReservedTag));
|
|
60
29
|
const PARSER = new XMLParser({
|
|
@@ -66,64 +35,36 @@ const PARSER = new XMLParser({
|
|
|
66
35
|
transformTagName: renameReservedTag,
|
|
67
36
|
isArray: (name) => RENAMED_MULTI_TAGS.has(name),
|
|
68
37
|
});
|
|
69
|
-
/**
|
|
70
|
-
* Parses a GIR XML file from disk and returns its raw tree.
|
|
71
|
-
*
|
|
72
|
-
* The returned object always has a single `repository` property containing
|
|
73
|
-
* the root `<repository>` element. Callers should not interpret the tree
|
|
74
|
-
* directly — pass it to {@link GirRepository.load} (in `./repository.ts`),
|
|
75
|
-
* which builds the typed domain model on top of it.
|
|
76
|
-
*
|
|
77
|
-
* @param path - Absolute path to a `.gir` file
|
|
78
|
-
* @returns The raw repository node
|
|
79
|
-
*/
|
|
80
38
|
export const parseGirFile = (path) => {
|
|
81
39
|
const xml = readFileSync(path, "utf-8");
|
|
82
40
|
return PARSER.parse(xml);
|
|
83
41
|
};
|
|
84
|
-
/**
|
|
85
|
-
* Reads an attribute from a raw GIR node as a string, returning `undefined`
|
|
86
|
-
* when the attribute is absent.
|
|
87
|
-
*
|
|
88
|
-
* The `@_` prefix is added by `fast-xml-parser`; this helper hides that
|
|
89
|
-
* convention from the call sites.
|
|
90
|
-
*
|
|
91
|
-
* @param node - The raw element
|
|
92
|
-
* @param name - The attribute name (without the `@_` prefix)
|
|
93
|
-
*/
|
|
94
42
|
export const attr = (node, name) => {
|
|
95
43
|
if (node === undefined)
|
|
96
44
|
return undefined;
|
|
97
45
|
const value = node[`@_${name}`];
|
|
98
46
|
return typeof value === "string" ? value : undefined;
|
|
99
47
|
};
|
|
100
|
-
/**
|
|
101
|
-
* Reads an attribute as a boolean using GIR's `"1"` / `"0"` convention.
|
|
102
|
-
*
|
|
103
|
-
* Attributes that are missing return the supplied default (defaulting to
|
|
104
|
-
* `false`). Any non-`"1"` value is treated as `false`.
|
|
105
|
-
*
|
|
106
|
-
* @param node - The raw element
|
|
107
|
-
* @param name - The attribute name (without the `@_` prefix)
|
|
108
|
-
* @param fallback - Value returned when the attribute is missing
|
|
109
|
-
*/
|
|
110
48
|
export const attrBool = (node, name, fallback = false) => {
|
|
111
49
|
const value = attr(node, name);
|
|
112
50
|
if (value === undefined)
|
|
113
51
|
return fallback;
|
|
114
52
|
return value === "1";
|
|
115
53
|
};
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
54
|
+
export const nameAttr = (node) => attr(node, "name") ?? "";
|
|
55
|
+
export const intAttr = (node, name) => {
|
|
56
|
+
const raw = attr(node, name);
|
|
57
|
+
return raw === undefined ? undefined : Number.parseInt(raw, 10);
|
|
58
|
+
};
|
|
59
|
+
export const parseEnumAttr = (raw, members, fallback, label) => {
|
|
60
|
+
if (raw === undefined)
|
|
61
|
+
return fallback;
|
|
62
|
+
for (const member of members) {
|
|
63
|
+
if (member === raw)
|
|
64
|
+
return member;
|
|
65
|
+
}
|
|
66
|
+
throw new Error(`Unknown ${label} value "${raw}"`);
|
|
67
|
+
};
|
|
127
68
|
export const childrenOf = (node, tag) => {
|
|
128
69
|
if (node === undefined)
|
|
129
70
|
return [];
|
|
@@ -134,13 +75,6 @@ export const childrenOf = (node, tag) => {
|
|
|
134
75
|
return value;
|
|
135
76
|
return [value];
|
|
136
77
|
};
|
|
137
|
-
/**
|
|
138
|
-
* Returns the single child of a raw node under a given tag, or `undefined`
|
|
139
|
-
* if absent. If multiple are present the first is returned.
|
|
140
|
-
*
|
|
141
|
-
* @param node - The parent element
|
|
142
|
-
* @param tag - The child tag name (with namespace prefix if any)
|
|
143
|
-
*/
|
|
144
78
|
export const childOf = (node, tag) => {
|
|
145
79
|
if (node === undefined)
|
|
146
80
|
return undefined;
|
|
@@ -152,4 +86,22 @@ export const childOf = (node, tag) => {
|
|
|
152
86
|
}
|
|
153
87
|
return value;
|
|
154
88
|
};
|
|
89
|
+
const normalizeDoc = (text) => {
|
|
90
|
+
const trimmed = text.trim();
|
|
91
|
+
return trimmed.length === 0 ? undefined : trimmed;
|
|
92
|
+
};
|
|
93
|
+
export const docOf = (node) => {
|
|
94
|
+
if (node === undefined)
|
|
95
|
+
return undefined;
|
|
96
|
+
const raw = node.doc;
|
|
97
|
+
const value = Array.isArray(raw) ? raw[0] : raw;
|
|
98
|
+
if (typeof value === "string")
|
|
99
|
+
return normalizeDoc(value);
|
|
100
|
+
if (value !== null && typeof value === "object") {
|
|
101
|
+
const text = value["#text"];
|
|
102
|
+
if (typeof text === "string")
|
|
103
|
+
return normalizeDoc(text);
|
|
104
|
+
}
|
|
105
|
+
return undefined;
|
|
106
|
+
};
|
|
155
107
|
//# sourceMappingURL=parse.js.map
|
package/dist/gir/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/gir/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/gir/parse.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { XMLParser } from \"fast-xml-parser\";\n\nexport type RawNode = {\n [attributeOrChild: string]: unknown;\n};\n\nconst MULTI_TAGS: Set<string> = new Set([\n \"include\",\n \"class\",\n \"interface\",\n \"record\",\n \"enumeration\",\n \"bitfield\",\n \"callback\",\n \"function\",\n \"constant\",\n \"alias\",\n \"union\",\n \"method\",\n \"constructor\",\n \"property\",\n \"field\",\n \"glib:signal\",\n \"implements\",\n \"prerequisite\",\n \"member\",\n \"parameter\",\n]);\n\nexport const GIR_CONSTRUCTOR_TAG = \"gir-constructor\";\n\nconst RESERVED_TAG_RENAMES: Map<string, string> = new Map([[\"constructor\", GIR_CONSTRUCTOR_TAG]]);\n\nconst renameReservedTag = (tag: string): string => RESERVED_TAG_RENAMES.get(tag) ?? tag;\n\nconst RENAMED_MULTI_TAGS: Set<string> = new Set([...MULTI_TAGS].map(renameReservedTag));\n\nconst PARSER = new XMLParser({\n ignoreAttributes: false,\n attributeNamePrefix: \"@_\",\n parseAttributeValue: false,\n parseTagValue: false,\n trimValues: true,\n transformTagName: renameReservedTag,\n isArray: (name) => RENAMED_MULTI_TAGS.has(name),\n});\n\nexport const parseGirFile = (path: string): RawNode => {\n const xml = readFileSync(path, \"utf-8\");\n return PARSER.parse(xml) as RawNode;\n};\n\nexport const attr = (node: RawNode | undefined, name: string): string | undefined => {\n if (node === undefined) return undefined;\n const value = node[`@_${name}`];\n return typeof value === \"string\" ? value : undefined;\n};\n\nexport const attrBool = (node: RawNode | undefined, name: string, fallback = false): boolean => {\n const value = attr(node, name);\n if (value === undefined) return fallback;\n return value === \"1\";\n};\n\nexport const nameAttr = (node: RawNode): string => attr(node, \"name\") ?? \"\";\n\nexport const intAttr = (node: RawNode, name: string): number | undefined => {\n const raw = attr(node, name);\n return raw === undefined ? undefined : Number.parseInt(raw, 10);\n};\n\nexport const parseEnumAttr = <T extends string, F extends T | undefined>(\n raw: string | undefined,\n members: Set<T>,\n fallback: F,\n label: string,\n): T | F => {\n if (raw === undefined) return fallback;\n for (const member of members) {\n if (member === raw) return member;\n }\n throw new Error(`Unknown ${label} value \"${raw}\"`);\n};\n\nexport const childrenOf = (node: RawNode | undefined, tag: string): RawNode[] => {\n if (node === undefined) return [];\n const value = node[tag];\n if (value === undefined) return [];\n if (Array.isArray(value)) return value as RawNode[];\n return [value as RawNode];\n};\n\nexport const childOf = (node: RawNode | undefined, tag: string): RawNode | undefined => {\n if (node === undefined) return undefined;\n const value = node[tag];\n if (value === undefined) return undefined;\n if (Array.isArray(value)) {\n return value.length === 0 ? undefined : (value[0] as RawNode);\n }\n return value as RawNode;\n};\n\nconst normalizeDoc = (text: string): string | undefined => {\n const trimmed = text.trim();\n return trimmed.length === 0 ? undefined : trimmed;\n};\n\nexport const docOf = (node: RawNode | undefined): string | undefined => {\n if (node === undefined) return undefined;\n const raw = node.doc;\n const value = Array.isArray(raw) ? raw[0] : raw;\n if (typeof value === \"string\") return normalizeDoc(value);\n if (value !== null && typeof value === \"object\") {\n const text = (value as RawNode)[\"#text\"];\n if (typeof text === \"string\") return normalizeDoc(text);\n }\n return undefined;\n};\n"]}
|
package/dist/gir/primitives.d.ts
CHANGED
|
@@ -1,36 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* the writers emit.
|
|
4
|
-
*
|
|
5
|
-
* The categories mirror the `t.*` helpers exposed by `@gtkx/ffi`'s runtime
|
|
6
|
-
* (see `packages/ffi/src/helpers.ts`). Categories that are not directly
|
|
7
|
-
* marshaled (e.g. `void`, `string`, `unichar`) are still listed so callers
|
|
8
|
-
* can branch on them without falling through to a default.
|
|
9
|
-
*/
|
|
10
|
-
export type PrimitiveCategory = "void" | "boolean" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "float32" | "float64" | "string" | "unichar" | "pointer";
|
|
11
|
-
/**
|
|
12
|
-
* Width in bytes of each primitive category on the x86-64 ABI (Linux LP64).
|
|
13
|
-
*
|
|
14
|
-
* The widths are also used as the natural alignment requirement of each
|
|
15
|
-
* category — every native integer/float aligns to its own size.
|
|
16
|
-
*/
|
|
17
|
-
export declare const PRIMITIVE_SIZE: Readonly<Record<PrimitiveCategory, number>>;
|
|
18
|
-
/**
|
|
19
|
-
* Returns the FFI category for a GIR primitive name (`"gint"`, `"utf8"`,
|
|
20
|
-
* `"gsize"`, …) or `undefined` when the name is not a primitive.
|
|
21
|
-
*
|
|
22
|
-
* Aliases that GIR uses inconsistently (`gint` / `int` / `gint32`, …) all
|
|
23
|
-
* map to the same canonical category.
|
|
24
|
-
*
|
|
25
|
-
* @param name - The GIR type name as it appears in `<type name="…">`
|
|
26
|
-
*/
|
|
1
|
+
export type PrimitiveCategory = "void" | "boolean" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "bigint64" | "biguint64" | "gtype" | "float32" | "float64" | "string" | "unichar" | "pointer";
|
|
2
|
+
export declare const PRIMITIVE_SIZE: Record<PrimitiveCategory, number>;
|
|
27
3
|
export declare const primitiveCategory: (name: string) => PrimitiveCategory | undefined;
|
|
28
|
-
|
|
29
|
-
* TypeScript surface type for each primitive category.
|
|
30
|
-
*
|
|
31
|
-
* Codegen surfaces both raw C primitives and string-marshalled categories
|
|
32
|
-
* (`string`, `unichar`) through this map so writers in the FFI and React
|
|
33
|
-
* pipelines agree on the same annotation per category.
|
|
34
|
-
*/
|
|
35
|
-
export declare const PRIMITIVE_TS_TYPE: Readonly<Record<PrimitiveCategory, string>>;
|
|
4
|
+
export declare const PRIMITIVE_TS_TYPE: Record<PrimitiveCategory, string>;
|
|
36
5
|
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/gir/primitives.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/gir/primitives.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACvB,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,GACP,SAAS,GACT,SAAS,GACT,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEhB,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAmB5D,CAAC;AAsDF,eAAO,MAAM,iBAAiB,SAAU,MAAM,KAAG,iBAAiB,GAAG,SAAwC,CAAC;AAE9G,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAmB/D,CAAC"}
|
package/dist/gir/primitives.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Width in bytes of each primitive category on the x86-64 ABI (Linux LP64).
|
|
3
|
-
*
|
|
4
|
-
* The widths are also used as the natural alignment requirement of each
|
|
5
|
-
* category — every native integer/float aligns to its own size.
|
|
6
|
-
*/
|
|
7
|
-
export const PRIMITIVE_SIZE = Object.freeze({
|
|
1
|
+
export const PRIMITIVE_SIZE = {
|
|
8
2
|
void: 0,
|
|
9
3
|
boolean: 4,
|
|
10
4
|
int8: 1,
|
|
@@ -15,12 +9,15 @@ export const PRIMITIVE_SIZE = Object.freeze({
|
|
|
15
9
|
uint32: 4,
|
|
16
10
|
int64: 8,
|
|
17
11
|
uint64: 8,
|
|
12
|
+
bigint64: 8,
|
|
13
|
+
biguint64: 8,
|
|
14
|
+
gtype: 8,
|
|
18
15
|
float32: 4,
|
|
19
16
|
float64: 8,
|
|
20
17
|
string: 8,
|
|
21
18
|
unichar: 4,
|
|
22
19
|
pointer: 8,
|
|
23
|
-
}
|
|
20
|
+
};
|
|
24
21
|
const PRIMITIVE_BY_NAME = new Map([
|
|
25
22
|
["none", "void"],
|
|
26
23
|
["void", "void"],
|
|
@@ -42,21 +39,21 @@ const PRIMITIVE_BY_NAME = new Map([
|
|
|
42
39
|
["uint16", "uint16"],
|
|
43
40
|
["int32", "int32"],
|
|
44
41
|
["uint32", "uint32"],
|
|
45
|
-
["int64", "
|
|
46
|
-
["uint64", "
|
|
42
|
+
["int64", "bigint64"],
|
|
43
|
+
["uint64", "biguint64"],
|
|
47
44
|
["guint", "uint32"],
|
|
48
45
|
["guint32", "uint32"],
|
|
49
|
-
["glong", "
|
|
50
|
-
["gint64", "
|
|
51
|
-
["long", "
|
|
46
|
+
["glong", "bigint64"],
|
|
47
|
+
["gint64", "bigint64"],
|
|
48
|
+
["long", "bigint64"],
|
|
52
49
|
["gssize", "int64"],
|
|
53
50
|
["gintptr", "int64"],
|
|
54
|
-
["gulong", "
|
|
55
|
-
["guint64", "
|
|
51
|
+
["gulong", "biguint64"],
|
|
52
|
+
["guint64", "biguint64"],
|
|
56
53
|
["gsize", "uint64"],
|
|
57
54
|
["guintptr", "uint64"],
|
|
58
|
-
["GType", "
|
|
59
|
-
["time_t", "
|
|
55
|
+
["GType", "gtype"],
|
|
56
|
+
["time_t", "bigint64"],
|
|
60
57
|
["pid_t", "int32"],
|
|
61
58
|
["uid_t", "uint32"],
|
|
62
59
|
["gid_t", "uint32"],
|
|
@@ -72,24 +69,8 @@ const PRIMITIVE_BY_NAME = new Map([
|
|
|
72
69
|
["gpointer", "pointer"],
|
|
73
70
|
["gconstpointer", "pointer"],
|
|
74
71
|
]);
|
|
75
|
-
/**
|
|
76
|
-
* Returns the FFI category for a GIR primitive name (`"gint"`, `"utf8"`,
|
|
77
|
-
* `"gsize"`, …) or `undefined` when the name is not a primitive.
|
|
78
|
-
*
|
|
79
|
-
* Aliases that GIR uses inconsistently (`gint` / `int` / `gint32`, …) all
|
|
80
|
-
* map to the same canonical category.
|
|
81
|
-
*
|
|
82
|
-
* @param name - The GIR type name as it appears in `<type name="…">`
|
|
83
|
-
*/
|
|
84
72
|
export const primitiveCategory = (name) => PRIMITIVE_BY_NAME.get(name);
|
|
85
|
-
|
|
86
|
-
* TypeScript surface type for each primitive category.
|
|
87
|
-
*
|
|
88
|
-
* Codegen surfaces both raw C primitives and string-marshalled categories
|
|
89
|
-
* (`string`, `unichar`) through this map so writers in the FFI and React
|
|
90
|
-
* pipelines agree on the same annotation per category.
|
|
91
|
-
*/
|
|
92
|
-
export const PRIMITIVE_TS_TYPE = Object.freeze({
|
|
73
|
+
export const PRIMITIVE_TS_TYPE = {
|
|
93
74
|
void: "void",
|
|
94
75
|
boolean: "boolean",
|
|
95
76
|
int8: "number",
|
|
@@ -100,10 +81,13 @@ export const PRIMITIVE_TS_TYPE = Object.freeze({
|
|
|
100
81
|
uint32: "number",
|
|
101
82
|
int64: "number",
|
|
102
83
|
uint64: "number",
|
|
84
|
+
bigint64: "bigint",
|
|
85
|
+
biguint64: "bigint",
|
|
86
|
+
gtype: "bigint",
|
|
103
87
|
float32: "number",
|
|
104
88
|
float64: "number",
|
|
105
89
|
string: "string",
|
|
106
90
|
unichar: "string",
|
|
107
91
|
pointer: "number",
|
|
108
|
-
}
|
|
92
|
+
};
|
|
109
93
|
//# sourceMappingURL=primitives.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/gir/primitives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/gir/primitives.ts"],"names":[],"mappings":"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","sourcesContent":["export type PrimitiveCategory =\n | \"void\"\n | \"boolean\"\n | \"int8\"\n | \"uint8\"\n | \"int16\"\n | \"uint16\"\n | \"int32\"\n | \"uint32\"\n | \"int64\"\n | \"uint64\"\n | \"bigint64\"\n | \"biguint64\"\n | \"gtype\"\n | \"float32\"\n | \"float64\"\n | \"string\"\n | \"unichar\"\n | \"pointer\";\n\nexport const PRIMITIVE_SIZE: Record<PrimitiveCategory, number> = {\n void: 0,\n boolean: 4,\n int8: 1,\n uint8: 1,\n int16: 2,\n uint16: 2,\n int32: 4,\n uint32: 4,\n int64: 8,\n uint64: 8,\n bigint64: 8,\n biguint64: 8,\n gtype: 8,\n float32: 4,\n float64: 8,\n string: 8,\n unichar: 4,\n pointer: 8,\n};\n\nconst PRIMITIVE_BY_NAME: Map<string, PrimitiveCategory> = new Map([\n [\"none\", \"void\"],\n [\"void\", \"void\"],\n [\"gboolean\", \"boolean\"],\n [\"gchar\", \"int8\"],\n [\"gint8\", \"int8\"],\n [\"guchar\", \"uint8\"],\n [\"guint8\", \"uint8\"],\n [\"gshort\", \"int16\"],\n [\"gint16\", \"int16\"],\n [\"gushort\", \"uint16\"],\n [\"guint16\", \"uint16\"],\n [\"gint\", \"int32\"],\n [\"gint32\", \"int32\"],\n [\"int\", \"int32\"],\n [\"int8\", \"int8\"],\n [\"uint8\", \"uint8\"],\n [\"int16\", \"int16\"],\n [\"uint16\", \"uint16\"],\n [\"int32\", \"int32\"],\n [\"uint32\", \"uint32\"],\n [\"int64\", \"bigint64\"],\n [\"uint64\", \"biguint64\"],\n [\"guint\", \"uint32\"],\n [\"guint32\", \"uint32\"],\n [\"glong\", \"bigint64\"],\n [\"gint64\", \"bigint64\"],\n [\"long\", \"bigint64\"],\n [\"gssize\", \"int64\"],\n [\"gintptr\", \"int64\"],\n [\"gulong\", \"biguint64\"],\n [\"guint64\", \"biguint64\"],\n [\"gsize\", \"uint64\"],\n [\"guintptr\", \"uint64\"],\n [\"GType\", \"gtype\"],\n [\"time_t\", \"bigint64\"],\n [\"pid_t\", \"int32\"],\n [\"uid_t\", \"uint32\"],\n [\"gid_t\", \"uint32\"],\n [\"gfloat\", \"float32\"],\n [\"float\", \"float32\"],\n [\"gdouble\", \"float64\"],\n [\"double\", \"float64\"],\n [\"long double\", \"float64\"],\n [\"utf8\", \"string\"],\n [\"filename\", \"string\"],\n [\"gchararray\", \"string\"],\n [\"gunichar\", \"unichar\"],\n [\"gpointer\", \"pointer\"],\n [\"gconstpointer\", \"pointer\"],\n] as const);\n\nexport const primitiveCategory = (name: string): PrimitiveCategory | undefined => PRIMITIVE_BY_NAME.get(name);\n\nexport const PRIMITIVE_TS_TYPE: Record<PrimitiveCategory, string> = {\n void: \"void\",\n boolean: \"boolean\",\n int8: \"number\",\n uint8: \"number\",\n int16: \"number\",\n uint16: \"number\",\n int32: \"number\",\n uint32: \"number\",\n int64: \"number\",\n uint64: \"number\",\n bigint64: \"bigint\",\n biguint64: \"bigint\",\n gtype: \"bigint\",\n float32: \"number\",\n float64: \"number\",\n string: \"string\",\n unichar: \"string\",\n pointer: \"number\",\n};\n"]}
|
package/dist/gir/property.d.ts
CHANGED
|
@@ -1,29 +1,20 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ParameterTransfer } from "./parameter.js";
|
|
2
2
|
import { type RawNode } from "./parse.js";
|
|
3
|
-
import {
|
|
4
|
-
/**
|
|
5
|
-
* A `<property>` of a class or interface.
|
|
6
|
-
*
|
|
7
|
-
* GIR property names are kebab-case; the writers convert them to camelCase
|
|
8
|
-
* for the JS surface and pass the original GIR name through to
|
|
9
|
-
* `registerConstructionMeta` for `g_object_newv` parameter building.
|
|
10
|
-
*/
|
|
3
|
+
import type { ParseContext, TypeId } from "./type-id.js";
|
|
11
4
|
export type GirProperty = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
5
|
+
name: string;
|
|
6
|
+
doc: string | undefined;
|
|
7
|
+
type: TypeId | undefined;
|
|
8
|
+
readable: boolean;
|
|
9
|
+
writable: boolean;
|
|
10
|
+
construct: boolean;
|
|
11
|
+
constructOnly: boolean;
|
|
12
|
+
introspectable: boolean;
|
|
13
|
+
transferOwnership: ParameterTransfer;
|
|
14
|
+
getter: string | undefined;
|
|
15
|
+
setter: string | undefined;
|
|
16
|
+
defaultValue: string | undefined;
|
|
24
17
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
*/
|
|
28
|
-
export declare const propertyFromNode: (node: RawNode) => GirProperty;
|
|
18
|
+
export declare const isConstructableProperty: (property: GirProperty) => boolean;
|
|
19
|
+
export declare const propertyFromNode: (node: RawNode, context: ParseContext) => GirProperty;
|
|
29
20
|
//# sourceMappingURL=property.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../src/gir/property.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../src/gir/property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAqB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAmC,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGzD,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,aAAc,WAAW,KAAG,OACK,CAAC;AAEtE,eAAO,MAAM,gBAAgB,SAAU,OAAO,WAAW,YAAY,KAAG,WAatE,CAAC"}
|
package/dist/gir/property.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
type:
|
|
1
|
+
import { transferOwnership } from "./parameter.js";
|
|
2
|
+
import { attr, attrBool, docOf, nameAttr } from "./parse.js";
|
|
3
|
+
import { typeRefFromNode } from "./type-ref.js";
|
|
4
|
+
export const isConstructableProperty = (property) => property.writable || property.construct || property.constructOnly;
|
|
5
|
+
export const propertyFromNode = (node, context) => ({
|
|
6
|
+
name: nameAttr(node),
|
|
7
|
+
doc: docOf(node),
|
|
8
|
+
type: typeRefFromNode(node, context),
|
|
9
|
+
readable: attrBool(node, "readable", true),
|
|
9
10
|
writable: attrBool(node, "writable"),
|
|
10
11
|
construct: attrBool(node, "construct"),
|
|
11
12
|
constructOnly: attrBool(node, "construct-only"),
|
|
12
|
-
|
|
13
|
+
introspectable: attrBool(node, "introspectable", true),
|
|
14
|
+
transferOwnership: transferOwnership(node),
|
|
13
15
|
getter: attr(node, "getter"),
|
|
14
16
|
setter: attr(node, "setter"),
|
|
17
|
+
defaultValue: attr(node, "default-value"),
|
|
15
18
|
});
|
|
16
19
|
//# sourceMappingURL=property.js.map
|
package/dist/gir/property.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.js","sourceRoot":"","sources":["../../src/gir/property.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"property.js","sourceRoot":"","sources":["../../src/gir/property.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAiBhD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,QAAqB,EAAW,EAAE,CACtE,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC;AAEtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAAE,OAAqB,EAAe,EAAE,CAAC,CAAC;IACpF,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC;IAC1C,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IACpC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IACtC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAC/C,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC;IACtD,iBAAiB,EAAE,iBAAiB,CAAC,IAAI,CAAC;IAC1C,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC5B,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC5B,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;CAC5C,CAAC,CAAC","sourcesContent":["import { type ParameterTransfer, transferOwnership } from \"./parameter.js\";\nimport { attr, attrBool, docOf, nameAttr, type RawNode } from \"./parse.js\";\nimport type { ParseContext, TypeId } from \"./type-id.js\";\nimport { typeRefFromNode } from \"./type-ref.js\";\n\nexport type GirProperty = {\n name: string;\n doc: string | undefined;\n type: TypeId | undefined;\n readable: boolean;\n writable: boolean;\n construct: boolean;\n constructOnly: boolean;\n introspectable: boolean;\n transferOwnership: ParameterTransfer;\n getter: string | undefined;\n setter: string | undefined;\n defaultValue: string | undefined;\n};\n\nexport const isConstructableProperty = (property: GirProperty): boolean =>\n property.writable || property.construct || property.constructOnly;\n\nexport const propertyFromNode = (node: RawNode, context: ParseContext): GirProperty => ({\n name: nameAttr(node),\n doc: docOf(node),\n type: typeRefFromNode(node, context),\n readable: attrBool(node, \"readable\", true),\n writable: attrBool(node, \"writable\"),\n construct: attrBool(node, \"construct\"),\n constructOnly: attrBool(node, \"construct-only\"),\n introspectable: attrBool(node, \"introspectable\", true),\n transferOwnership: transferOwnership(node),\n getter: attr(node, \"getter\"),\n setter: attr(node, \"setter\"),\n defaultValue: attr(node, \"default-value\"),\n});\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type GirField } from "./field.js";
|
|
2
|
+
import { type GirFunction } from "./function.js";
|
|
3
|
+
import { type RawNode } from "./parse.js";
|
|
4
|
+
import type { ParseContext } from "./type-id.js";
|
|
5
|
+
export type GirRecord = {
|
|
6
|
+
isVtable: boolean;
|
|
7
|
+
name: string;
|
|
8
|
+
doc: string | undefined;
|
|
9
|
+
cType: string | undefined;
|
|
10
|
+
glibTypeName: string | undefined;
|
|
11
|
+
glibGetType: string | undefined;
|
|
12
|
+
glibRefFunc: string | undefined;
|
|
13
|
+
glibUnrefFunc: string | undefined;
|
|
14
|
+
copyFunc: string | undefined;
|
|
15
|
+
freeFunc: string | undefined;
|
|
16
|
+
disguised: boolean;
|
|
17
|
+
opaque: boolean;
|
|
18
|
+
introspectable: boolean;
|
|
19
|
+
fields: GirField[];
|
|
20
|
+
methods: GirFunction[];
|
|
21
|
+
constructors: GirFunction[];
|
|
22
|
+
functions: GirFunction[];
|
|
23
|
+
isUnion: boolean;
|
|
24
|
+
};
|
|
25
|
+
export declare const recordFromNode: (node: RawNode, isVtable: boolean, isUnion: boolean, context: ParseContext) => GirRecord;
|
|
26
|
+
export declare const isVtableRecord: (node: RawNode) => boolean;
|
|
27
|
+
//# sourceMappingURL=record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/gir/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAA0D,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,cAAc,SACjB,OAAO,YACH,OAAO,WACR,OAAO,WACP,YAAY,KACtB,SAmBD,CAAC;AAEH,eAAO,MAAM,cAAc,SAAU,OAAO,KAAG,OAA+D,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { fieldFromNode } from "./field.js";
|
|
2
|
+
import { functionFromNode } from "./function.js";
|
|
3
|
+
import { attr, attrBool, childrenOf, docOf, GIR_CONSTRUCTOR_TAG } from "./parse.js";
|
|
4
|
+
export const recordFromNode = (node, isVtable, isUnion, context) => ({
|
|
5
|
+
isVtable,
|
|
6
|
+
name: attr(node, "name") ?? attr(node, "glib:name") ?? "",
|
|
7
|
+
doc: docOf(node),
|
|
8
|
+
cType: attr(node, "c:type"),
|
|
9
|
+
glibTypeName: attr(node, "glib:type-name"),
|
|
10
|
+
glibGetType: attr(node, "glib:get-type"),
|
|
11
|
+
glibRefFunc: attr(node, "glib:ref-func"),
|
|
12
|
+
glibUnrefFunc: attr(node, "glib:unref-func"),
|
|
13
|
+
copyFunc: attr(node, "copy-function"),
|
|
14
|
+
freeFunc: attr(node, "free-function"),
|
|
15
|
+
disguised: attrBool(node, "disguised"),
|
|
16
|
+
opaque: attrBool(node, "opaque"),
|
|
17
|
+
introspectable: attrBool(node, "introspectable", true),
|
|
18
|
+
fields: childrenOf(node, "field").map((field) => fieldFromNode(field, context)),
|
|
19
|
+
methods: childrenOf(node, "method").map((method) => functionFromNode(method, context)),
|
|
20
|
+
constructors: childrenOf(node, GIR_CONSTRUCTOR_TAG).map((ctor) => functionFromNode(ctor, context)),
|
|
21
|
+
functions: childrenOf(node, "function").map((function_) => functionFromNode(function_, context)),
|
|
22
|
+
isUnion,
|
|
23
|
+
});
|
|
24
|
+
export const isVtableRecord = (node) => attr(node, "glib:is-gtype-struct-for") !== undefined;
|
|
25
|
+
//# sourceMappingURL=record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/gir/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB,EAAgB,MAAM,YAAY,CAAC;AAwBlG,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,IAAa,EACb,QAAiB,EACjB,OAAgB,EAChB,OAAqB,EACZ,EAAE,CAAC,CAAC;IACb,QAAQ;IACR,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;IACzD,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;IAChB,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC3B,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAC1C,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;IACxC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;IACxC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAC5C,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;IACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;IACrC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IACtC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAChC,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC;IACtD,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/E,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtF,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClG,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChG,OAAO;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAa,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,KAAK,SAAS,CAAC","sourcesContent":["import { fieldFromNode, type GirField } from \"./field.js\";\nimport { functionFromNode, type GirFunction } from \"./function.js\";\nimport { attr, attrBool, childrenOf, docOf, GIR_CONSTRUCTOR_TAG, type RawNode } from \"./parse.js\";\nimport type { ParseContext } from \"./type-id.js\";\n\nexport type GirRecord = {\n isVtable: boolean;\n name: string;\n doc: string | undefined;\n cType: string | undefined;\n glibTypeName: string | undefined;\n glibGetType: string | undefined;\n glibRefFunc: string | undefined;\n glibUnrefFunc: string | undefined;\n copyFunc: string | undefined;\n freeFunc: string | undefined;\n disguised: boolean;\n opaque: boolean;\n introspectable: boolean;\n fields: GirField[];\n methods: GirFunction[];\n constructors: GirFunction[];\n functions: GirFunction[];\n isUnion: boolean;\n};\n\nexport const recordFromNode = (\n node: RawNode,\n isVtable: boolean,\n isUnion: boolean,\n context: ParseContext,\n): GirRecord => ({\n isVtable,\n name: attr(node, \"name\") ?? attr(node, \"glib:name\") ?? \"\",\n doc: docOf(node),\n cType: attr(node, \"c:type\"),\n glibTypeName: attr(node, \"glib:type-name\"),\n glibGetType: attr(node, \"glib:get-type\"),\n glibRefFunc: attr(node, \"glib:ref-func\"),\n glibUnrefFunc: attr(node, \"glib:unref-func\"),\n copyFunc: attr(node, \"copy-function\"),\n freeFunc: attr(node, \"free-function\"),\n disguised: attrBool(node, \"disguised\"),\n opaque: attrBool(node, \"opaque\"),\n introspectable: attrBool(node, \"introspectable\", true),\n fields: childrenOf(node, \"field\").map((field) => fieldFromNode(field, context)),\n methods: childrenOf(node, \"method\").map((method) => functionFromNode(method, context)),\n constructors: childrenOf(node, GIR_CONSTRUCTOR_TAG).map((ctor) => functionFromNode(ctor, context)),\n functions: childrenOf(node, \"function\").map((function_) => functionFromNode(function_, context)),\n isUnion,\n});\n\nexport const isVtableRecord = (node: RawNode): boolean => attr(node, \"glib:is-gtype-struct-for\") !== undefined;\n"]}
|
package/dist/gir/size.d.ts
CHANGED
|
@@ -1,67 +1,20 @@
|
|
|
1
1
|
import { type PrimitiveCategory } from "./primitives.js";
|
|
2
|
-
/**
|
|
3
|
-
* Size and alignment of a single field as it appears in a C struct laid out
|
|
4
|
-
* according to the x86-64 ABI.
|
|
5
|
-
*/
|
|
6
2
|
export type FieldLayout = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
/** Required alignment in bytes; storage offset rounds up to a multiple of this. */
|
|
10
|
-
readonly align: number;
|
|
3
|
+
size: number;
|
|
4
|
+
align: number;
|
|
11
5
|
};
|
|
12
|
-
/**
|
|
13
|
-
* Returns the `{ size, align }` pair for a primitive category.
|
|
14
|
-
*
|
|
15
|
-
* Pointers and pointer-sized integers (the `pointer` and 64-bit categories)
|
|
16
|
-
* report 8/8. Smaller integers and floats report their natural width.
|
|
17
|
-
*
|
|
18
|
-
* @param category - The primitive category
|
|
19
|
-
*/
|
|
20
6
|
export declare const layoutOfPrimitive: (category: PrimitiveCategory) => FieldLayout;
|
|
21
|
-
/**
|
|
22
|
-
* Layout slot for a single field that may participate in bitfield packing.
|
|
23
|
-
*
|
|
24
|
-
* `byteOffset` is always the offset of the underlying storage word; for
|
|
25
|
-
* non-bitfield fields it is the field's offset directly, and for bitfield
|
|
26
|
-
* members it is the start of the shared storage unit. `bitOffset` and
|
|
27
|
-
* `bitWidth` are populated only for bitfield members.
|
|
28
|
-
*/
|
|
29
7
|
export type FieldSlot = {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
readonly bitOffset: number | undefined;
|
|
34
|
-
/** Width in bits, for bitfield members. */
|
|
35
|
-
readonly bitWidth: number | undefined;
|
|
8
|
+
byteOffset: number;
|
|
9
|
+
bitOffset: number | undefined;
|
|
10
|
+
bitWidth: number | undefined;
|
|
36
11
|
};
|
|
37
|
-
/**
|
|
38
|
-
* Describes a field for the purposes of layout computation.
|
|
39
|
-
*/
|
|
40
12
|
export type FieldLayoutInput = {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/** When set, the field is a bitfield member with this many bits. */
|
|
44
|
-
readonly bits: number | undefined;
|
|
13
|
+
layout: FieldLayout;
|
|
14
|
+
bits: number | undefined;
|
|
45
15
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* word.
|
|
50
|
-
*
|
|
51
|
-
* Mirrors the GCC/Itanium ABI rules for C bitfield packing in a
|
|
52
|
-
* single-storage-word model: a new storage word is opened when the
|
|
53
|
-
* underlying type's size changes, when the new field is not a bitfield,
|
|
54
|
-
* or when adding the bits would exceed the word's bit count.
|
|
55
|
-
*
|
|
56
|
-
* A union (`isUnion`) overlays every member at byte offset 0; its size is the
|
|
57
|
-
* largest member rounded up to the strongest member alignment.
|
|
58
|
-
*
|
|
59
|
-
* @param fields - Ordered field layouts and bit widths
|
|
60
|
-
* @param isUnion - Whether the fields are union members (overlaid at offset 0)
|
|
61
|
-
* @returns Parallel slot array and the total record size in bytes
|
|
62
|
-
*/
|
|
63
|
-
export declare const computeFieldSlots: (fields: readonly FieldLayoutInput[], isUnion?: boolean) => {
|
|
64
|
-
readonly slots: readonly FieldSlot[];
|
|
65
|
-
readonly size: number;
|
|
16
|
+
export declare const computeFieldSlots: (fields: FieldLayoutInput[], isUnion?: boolean) => {
|
|
17
|
+
slots: FieldSlot[];
|
|
18
|
+
size: number;
|
|
66
19
|
};
|
|
67
20
|
//# sourceMappingURL=size.d.ts.map
|
package/dist/gir/size.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../src/gir/size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzE
|
|
1
|
+
{"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../src/gir/size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,aAAc,iBAAiB,KAAG,WAG/D,CAAC;AAQF,MAAM,MAAM,SAAS,GAAG;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAClB,gBAAgB,EAAE,wBAE3B;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAiDpC,CAAC"}
|