@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
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* One in-memory source destined for the injected `@gtkx/gi` store, plus whether
|
|
3
|
-
* it is a hand-written overlay (the type-check target) or a generated module
|
|
4
|
-
* declaration (checked against, but not reported on).
|
|
5
|
-
*/
|
|
6
|
-
export type StoreSourceFile = {
|
|
7
|
-
/** Absolute virtual path of the source, under the store root. */
|
|
8
|
-
readonly path: string;
|
|
9
|
-
/** TypeScript source text (overlay `.ts`) or declaration text (generated `.d.ts`). */
|
|
10
|
-
readonly source: string;
|
|
11
|
-
/** Whether this is a hand-written overlay/augment source. */
|
|
12
|
-
readonly overlay: boolean;
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Source entries the overlay type-check resolves the runtime packages to.
|
|
16
|
-
*/
|
|
17
|
-
export type RuntimeEntries = {
|
|
18
|
-
/** Absolute path to `@gtkx/ffi`'s source entry (`src/index.ts`). */
|
|
19
|
-
readonly ffiEntry: string;
|
|
20
|
-
/** Absolute path to `@gtkx/native`'s declaration entry (`dist/index.d.ts`). */
|
|
21
|
-
readonly nativeEntry: string;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Type-checks the hand-written overlay sources against the freshly generated
|
|
25
|
-
* `@gtkx/gi` declarations, entirely in memory.
|
|
26
|
-
*
|
|
27
|
-
* The overlay augments generated classes (e.g. installs `Value.prototype.getBoxed`),
|
|
28
|
-
* so its correctness is only meaningful relative to the exact API codegen just
|
|
29
|
-
* produced. A {@link ts.Program} is assembled over the in-memory generated
|
|
30
|
-
* declarations and overlay sources, resolving `@gtkx/gi/*` to the generated
|
|
31
|
-
* declarations and `@gtkx/ffi` to its package source; every other specifier
|
|
32
|
-
* (`react`, lib files) resolves from the real filesystem. Semantic errors on the
|
|
33
|
-
* overlay sources abort codegen rather than ship broken bindings.
|
|
34
|
-
*
|
|
35
|
-
* @param storeRoot - Absolute root the virtual source paths are rooted at.
|
|
36
|
-
* @param files - The in-memory generated declarations and overlay sources.
|
|
37
|
-
* @param entries - Absolute source entries for `@gtkx/ffi` and `@gtkx/native`.
|
|
38
|
-
* @throws When any overlay source has a semantic type error.
|
|
39
|
-
*/
|
|
40
|
-
export declare const typecheckGiStore: (storeRoot: string, files: readonly StoreSourceFile[], entries: RuntimeEntries) => void;
|
|
41
|
-
//# sourceMappingURL=typecheck-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck-store.d.ts","sourceRoot":"","sources":["../src/typecheck-store.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC7B,CAAC;AAYF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC,CAAC;AAsEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,GACzB,WAAW,MAAM,EACjB,OAAO,SAAS,eAAe,EAAE,EACjC,SAAS,cAAc,KACxB,IAOF,CAAC"}
|
package/dist/typecheck-store.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import ts from "typescript";
|
|
4
|
-
import { baseCompilerOptions } from "./transpile.js";
|
|
5
|
-
const GI_SPECIFIER = "@gtkx/gi/";
|
|
6
|
-
const COMPILER_OPTIONS = {
|
|
7
|
-
...baseCompilerOptions(),
|
|
8
|
-
customConditions: ["source"],
|
|
9
|
-
strict: true,
|
|
10
|
-
noEmit: true,
|
|
11
|
-
types: [],
|
|
12
|
-
};
|
|
13
|
-
const buildCompilerHost = (storeRoot, virtualSources, entries) => {
|
|
14
|
-
const readSource = (fileName) => virtualSources.get(fileName) ?? (existsSync(fileName) ? readFileSync(fileName, "utf8") : undefined);
|
|
15
|
-
const resolveInjected = (specifier) => {
|
|
16
|
-
if (specifier === "@gtkx/ffi")
|
|
17
|
-
return entries.ffiEntry;
|
|
18
|
-
if (specifier === "@gtkx/native")
|
|
19
|
-
return entries.nativeEntry;
|
|
20
|
-
if (!specifier.startsWith(GI_SPECIFIER))
|
|
21
|
-
return undefined;
|
|
22
|
-
const stem = specifier.slice(GI_SPECIFIER.length).replace(/\.js$/, "");
|
|
23
|
-
return [`${stem}.d.ts`, `${stem}.ts`, `${stem}/index.d.ts`, `${stem}/index.ts`]
|
|
24
|
-
.map((candidate) => join(storeRoot, candidate))
|
|
25
|
-
.find((candidate) => virtualSources.has(candidate));
|
|
26
|
-
};
|
|
27
|
-
const moduleResolutionHost = {
|
|
28
|
-
fileExists: (fileName) => virtualSources.has(fileName) || existsSync(fileName),
|
|
29
|
-
readFile: readSource,
|
|
30
|
-
};
|
|
31
|
-
return {
|
|
32
|
-
getSourceFile: (fileName, languageVersion) => {
|
|
33
|
-
const source = readSource(fileName);
|
|
34
|
-
return source === undefined ? undefined : ts.createSourceFile(fileName, source, languageVersion, true);
|
|
35
|
-
},
|
|
36
|
-
getDefaultLibFileName: (options) => ts.getDefaultLibFilePath(options),
|
|
37
|
-
writeFile: () => { },
|
|
38
|
-
getCurrentDirectory: () => storeRoot,
|
|
39
|
-
getCanonicalFileName: (fileName) => fileName,
|
|
40
|
-
useCaseSensitiveFileNames: () => true,
|
|
41
|
-
getNewLine: () => "\n",
|
|
42
|
-
fileExists: (fileName) => virtualSources.has(fileName) || existsSync(fileName),
|
|
43
|
-
readFile: readSource,
|
|
44
|
-
resolveModuleNameLiterals: (literals, containingFile, _redirectedReference, options) => literals.map((literal) => {
|
|
45
|
-
const injected = resolveInjected(literal.text);
|
|
46
|
-
if (injected !== undefined) {
|
|
47
|
-
return { resolvedModule: { resolvedFileName: injected, extension: ts.Extension.Ts } };
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
resolvedModule: ts.resolveModuleName(literal.text, containingFile, options, moduleResolutionHost)
|
|
51
|
-
.resolvedModule,
|
|
52
|
-
};
|
|
53
|
-
}),
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
const reportOverlayErrors = (program, overlayPaths, storeRoot) => {
|
|
57
|
-
const errors = [];
|
|
58
|
-
for (const path of overlayPaths) {
|
|
59
|
-
const sourceFile = program.getSourceFile(path);
|
|
60
|
-
if (!sourceFile)
|
|
61
|
-
continue;
|
|
62
|
-
for (const diagnostic of program.getSemanticDiagnostics(sourceFile)) {
|
|
63
|
-
if (diagnostic.category === ts.DiagnosticCategory.Error)
|
|
64
|
-
errors.push(diagnostic);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (errors.length === 0)
|
|
68
|
-
return;
|
|
69
|
-
const formatted = ts.formatDiagnosticsWithColorAndContext(errors, {
|
|
70
|
-
getCurrentDirectory: () => storeRoot,
|
|
71
|
-
getCanonicalFileName: (fileName) => fileName,
|
|
72
|
-
getNewLine: () => "\n",
|
|
73
|
-
});
|
|
74
|
-
throw new Error(`Overlay type-check failed against the generated @gtkx/gi API:\n${formatted}`);
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Type-checks the hand-written overlay sources against the freshly generated
|
|
78
|
-
* `@gtkx/gi` declarations, entirely in memory.
|
|
79
|
-
*
|
|
80
|
-
* The overlay augments generated classes (e.g. installs `Value.prototype.getBoxed`),
|
|
81
|
-
* so its correctness is only meaningful relative to the exact API codegen just
|
|
82
|
-
* produced. A {@link ts.Program} is assembled over the in-memory generated
|
|
83
|
-
* declarations and overlay sources, resolving `@gtkx/gi/*` to the generated
|
|
84
|
-
* declarations and `@gtkx/ffi` to its package source; every other specifier
|
|
85
|
-
* (`react`, lib files) resolves from the real filesystem. Semantic errors on the
|
|
86
|
-
* overlay sources abort codegen rather than ship broken bindings.
|
|
87
|
-
*
|
|
88
|
-
* @param storeRoot - Absolute root the virtual source paths are rooted at.
|
|
89
|
-
* @param files - The in-memory generated declarations and overlay sources.
|
|
90
|
-
* @param entries - Absolute source entries for `@gtkx/ffi` and `@gtkx/native`.
|
|
91
|
-
* @throws When any overlay source has a semantic type error.
|
|
92
|
-
*/
|
|
93
|
-
export const typecheckGiStore = (storeRoot, files, entries) => {
|
|
94
|
-
const overlayPaths = files.filter((file) => file.overlay).map((file) => file.path);
|
|
95
|
-
if (overlayPaths.length === 0)
|
|
96
|
-
return;
|
|
97
|
-
const virtualSources = new Map(files.map((file) => [file.path, file.source]));
|
|
98
|
-
const host = buildCompilerHost(storeRoot, virtualSources, entries);
|
|
99
|
-
const program = ts.createProgram({ rootNames: files.map((file) => file.path), options: COMPILER_OPTIONS, host });
|
|
100
|
-
reportOverlayErrors(program, overlayPaths, storeRoot);
|
|
101
|
-
};
|
|
102
|
-
//# sourceMappingURL=typecheck-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck-store.js","sourceRoot":"","sources":["../src/typecheck-store.ts"],"names":[],"mappings":"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"}
|
package/dist/writers/alias.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ModuleContext } from "../dsl/context.js";
|
|
2
|
-
import type { GirAlias } from "../gir/namespace.js";
|
|
3
|
-
/**
|
|
4
|
-
* Emits an `export type` declaration for a GIR `<alias>`.
|
|
5
|
-
*
|
|
6
|
-
* The alias is exported under {@link aliasExportName} — its GIR `name`, with
|
|
7
|
-
* GObject's `Type` published as `GType`.
|
|
8
|
-
*
|
|
9
|
-
* @param context - The module context
|
|
10
|
-
* @param alias - The alias to emit
|
|
11
|
-
*/
|
|
12
|
-
export declare const emitAlias: (context: ModuleContext, alias: GirAlias) => void;
|
|
13
|
-
//# sourceMappingURL=alias.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alias.d.ts","sourceRoot":"","sources":["../../src/writers/alias.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,aAAa,EAAE,OAAO,QAAQ,KAAG,IAInE,CAAC"}
|
package/dist/writers/alias.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { aliasExportName } from "../dsl/identifier.js";
|
|
2
|
-
import { renderTsType } from "./ts-type.js";
|
|
3
|
-
/**
|
|
4
|
-
* Emits an `export type` declaration for a GIR `<alias>`.
|
|
5
|
-
*
|
|
6
|
-
* The alias is exported under {@link aliasExportName} — its GIR `name`, with
|
|
7
|
-
* GObject's `Type` published as `GType`.
|
|
8
|
-
*
|
|
9
|
-
* @param context - The module context
|
|
10
|
-
* @param alias - The alias to emit
|
|
11
|
-
*/
|
|
12
|
-
export const emitAlias = (context, alias) => {
|
|
13
|
-
const exportName = aliasExportName(context.namespace.name, alias.name);
|
|
14
|
-
const targetType = renderTsType(context, alias.target);
|
|
15
|
-
context.module.appendDeclaration(`export type ${exportName} = ${targetType};`);
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=alias.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alias.js","sourceRoot":"","sources":["../../src/writers/alias.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAsB,EAAE,KAAe,EAAQ,EAAE;IACvE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,eAAe,UAAU,MAAM,UAAU,GAAG,CAAC,CAAC;AACnF,CAAC,CAAC"}
|
package/dist/writers/async.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { GirFunction } from "../gir/function.js";
|
|
2
|
-
/**
|
|
3
|
-
* Detects the start half of a `Gio.AsyncReady` callable pair.
|
|
4
|
-
*
|
|
5
|
-
* Pairs follow two GIR conventions: an explicit `*_async` / `*_finish`
|
|
6
|
-
* suffix (the older style), or a base name paired with a `<root>_finish`
|
|
7
|
-
* (the modern GTK 4 style, e.g. `gtk_file_dialog_open` /
|
|
8
|
-
* `gtk_file_dialog_open_finish`).
|
|
9
|
-
*
|
|
10
|
-
* The runtime convention is to wrap the pair with `promisify(asyncFn,
|
|
11
|
-
* finishFn, cancellable, { leading })`. This detector returns the
|
|
12
|
-
* matching finish counterpart's GIR name when one exists in the same
|
|
13
|
-
* set of callables, so the class writer can wire the wrapper.
|
|
14
|
-
*
|
|
15
|
-
* @param fn - The candidate async-start callable
|
|
16
|
-
* @param siblings - Other callables on the same type to scan for the
|
|
17
|
-
* matching `*_finish`
|
|
18
|
-
* @returns The matching `*_finish` GIR name, or `undefined` when there is
|
|
19
|
-
* no pair
|
|
20
|
-
*/
|
|
21
|
-
export declare const matchAsyncFinishName: (fn: GirFunction, siblings: readonly GirFunction[]) => string | undefined;
|
|
22
|
-
//# sourceMappingURL=async.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../src/writers/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,oBAAoB,GAAI,IAAI,WAAW,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,MAAM,GAAG,SAajG,CAAC"}
|
package/dist/writers/async.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Detects the start half of a `Gio.AsyncReady` callable pair.
|
|
3
|
-
*
|
|
4
|
-
* Pairs follow two GIR conventions: an explicit `*_async` / `*_finish`
|
|
5
|
-
* suffix (the older style), or a base name paired with a `<root>_finish`
|
|
6
|
-
* (the modern GTK 4 style, e.g. `gtk_file_dialog_open` /
|
|
7
|
-
* `gtk_file_dialog_open_finish`).
|
|
8
|
-
*
|
|
9
|
-
* The runtime convention is to wrap the pair with `promisify(asyncFn,
|
|
10
|
-
* finishFn, cancellable, { leading })`. This detector returns the
|
|
11
|
-
* matching finish counterpart's GIR name when one exists in the same
|
|
12
|
-
* set of callables, so the class writer can wire the wrapper.
|
|
13
|
-
*
|
|
14
|
-
* @param fn - The candidate async-start callable
|
|
15
|
-
* @param siblings - Other callables on the same type to scan for the
|
|
16
|
-
* matching `*_finish`
|
|
17
|
-
* @returns The matching `*_finish` GIR name, or `undefined` when there is
|
|
18
|
-
* no pair
|
|
19
|
-
*/
|
|
20
|
-
export const matchAsyncFinishName = (fn, siblings) => {
|
|
21
|
-
if (fn.name.endsWith("_async")) {
|
|
22
|
-
const root = fn.name.slice(0, -"_async".length);
|
|
23
|
-
const finishName = `${root}_finish`;
|
|
24
|
-
const match = siblings.find((sibling) => sibling.name === finishName);
|
|
25
|
-
return match === undefined ? undefined : finishName;
|
|
26
|
-
}
|
|
27
|
-
if (fn.name.endsWith("_finish"))
|
|
28
|
-
return undefined;
|
|
29
|
-
const finishName = `${fn.name}_finish`;
|
|
30
|
-
const match = siblings.find((sibling) => sibling.name === finishName);
|
|
31
|
-
if (match === undefined)
|
|
32
|
-
return undefined;
|
|
33
|
-
if (!hasAsyncReadyCallbackParameter(fn))
|
|
34
|
-
return undefined;
|
|
35
|
-
return finishName;
|
|
36
|
-
};
|
|
37
|
-
const hasAsyncReadyCallbackParameter = (fn) => {
|
|
38
|
-
for (const parameter of fn.parameters) {
|
|
39
|
-
if (parameter.scope !== undefined)
|
|
40
|
-
return true;
|
|
41
|
-
if (parameter.type?.kind !== "named")
|
|
42
|
-
continue;
|
|
43
|
-
if (parameter.type.typeName === "AsyncReadyCallback")
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
return false;
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=async.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/writers/async.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAe,EAAE,QAAgC,EAAsB,EAAE;IAC1G,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,GAAG,IAAI,SAAS,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACtE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IACxD,CAAC;IACD,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACtE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1D,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,8BAA8B,GAAG,CAAC,EAAe,EAAW,EAAE;IAChE,KAAK,MAAM,SAAS,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO;YAAE,SAAS;QAC/C,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,oBAAoB;YAAE,OAAO,IAAI,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { ModuleContext } from "../dsl/context.js";
|
|
2
|
-
import type { GirBoxed } from "../gir/boxed.js";
|
|
3
|
-
/**
|
|
4
|
-
* Renders the `export interface <Boxed>ConstructorProps` declaration: the
|
|
5
|
-
* camelCase, optional, nullable form of every writable field. Opaque boxed
|
|
6
|
-
* records (disguised, no GType) have no known fields and get an empty bag.
|
|
7
|
-
*
|
|
8
|
-
* @param context - The module context
|
|
9
|
-
* @param boxed - The boxed record
|
|
10
|
-
* @param className - The local PascalCase class name
|
|
11
|
-
*/
|
|
12
|
-
export declare const renderBoxedConstructorPropsInterface: (context: ModuleContext, boxed: GirBoxed, className: string) => string;
|
|
13
|
-
/**
|
|
14
|
-
* Renders a boxed record's constructor.
|
|
15
|
-
*
|
|
16
|
-
* The constructor allocates zero-filled native memory of the struct's size and
|
|
17
|
-
* writes each provided field at its byte offset, threading bitfield members
|
|
18
|
-
* through a read-modify-write into their shared storage word. Opaque records
|
|
19
|
-
* have no known layout, so their constructor throws.
|
|
20
|
-
*
|
|
21
|
-
* @param context - The module context
|
|
22
|
-
* @param boxed - The boxed record
|
|
23
|
-
* @param className - The local PascalCase class name
|
|
24
|
-
*/
|
|
25
|
-
export declare const renderBoxedConstructor: (context: ModuleContext, boxed: GirBoxed, className: string) => string;
|
|
26
|
-
//# sourceMappingURL=boxed-constructor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boxed-constructor.d.ts","sourceRoot":"","sources":["../../src/writers/boxed-constructor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAqBhD;;;;;;;;GAQG;AACH,eAAO,MAAM,oCAAoC,GAC7C,SAAS,aAAa,EACtB,OAAO,QAAQ,EACf,WAAW,MAAM,KAClB,MAWF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,aAAa,EAAE,OAAO,QAAQ,EAAE,WAAW,MAAM,KAAG,MAenG,CAAC"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { quote, toCamelCase, toIdentifier } from "@gtkx/utils";
|
|
2
|
-
import { indent } from "../dsl/emit.js";
|
|
3
|
-
import { computeBoxedFieldSlots } from "./boxed-layout.js";
|
|
4
|
-
import { renderTsType } from "./ts-type.js";
|
|
5
|
-
import { renderFfiType } from "./value.js";
|
|
6
|
-
const isWritableFieldSlot = (entry) => !entry.field.private &&
|
|
7
|
-
entry.field.writable &&
|
|
8
|
-
entry.field.callback === undefined &&
|
|
9
|
-
entry.field.type !== undefined;
|
|
10
|
-
const isOpaque = (boxed) => boxed.glibGetType === undefined && boxed.disguised;
|
|
11
|
-
/**
|
|
12
|
-
* Renders the `export interface <Boxed>ConstructorProps` declaration: the
|
|
13
|
-
* camelCase, optional, nullable form of every writable field. Opaque boxed
|
|
14
|
-
* records (disguised, no GType) have no known fields and get an empty bag.
|
|
15
|
-
*
|
|
16
|
-
* @param context - The module context
|
|
17
|
-
* @param boxed - The boxed record
|
|
18
|
-
* @param className - The local PascalCase class name
|
|
19
|
-
*/
|
|
20
|
-
export const renderBoxedConstructorPropsInterface = (context, boxed, className) => {
|
|
21
|
-
if (isOpaque(boxed))
|
|
22
|
-
return `export interface ${className}ConstructorProps {}`;
|
|
23
|
-
const { slots } = computeBoxedFieldSlots(context, boxed.fields, boxed.isUnion);
|
|
24
|
-
const lines = slots
|
|
25
|
-
.filter(isWritableFieldSlot)
|
|
26
|
-
.map((entry) => `${toIdentifier(toCamelCase(entry.field.name))}?: ${renderTsType(context, entry.field.type, true)};`);
|
|
27
|
-
const body = lines.length === 0 ? "" : `\n${indent(lines.join("\n"), 1)}\n`;
|
|
28
|
-
return `export interface ${className}ConstructorProps {${body}}`;
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Renders a boxed record's constructor.
|
|
32
|
-
*
|
|
33
|
-
* The constructor allocates zero-filled native memory of the struct's size and
|
|
34
|
-
* writes each provided field at its byte offset, threading bitfield members
|
|
35
|
-
* through a read-modify-write into their shared storage word. Opaque records
|
|
36
|
-
* have no known layout, so their constructor throws.
|
|
37
|
-
*
|
|
38
|
-
* @param context - The module context
|
|
39
|
-
* @param boxed - The boxed record
|
|
40
|
-
* @param className - The local PascalCase class name
|
|
41
|
-
*/
|
|
42
|
-
export const renderBoxedConstructor = (context, boxed, className) => {
|
|
43
|
-
if (isOpaque(boxed)) {
|
|
44
|
-
return `constructor() {\n${indent(`throw new Error(${quote(`Cannot construct ${className}: opaque boxed type with no known layout`)});`, 1)}\n}`;
|
|
45
|
-
}
|
|
46
|
-
context.addNativeImport("alloc");
|
|
47
|
-
context.addRuntimeImport("setHandle");
|
|
48
|
-
const { slots, size } = computeBoxedFieldSlots(context, boxed.fields, boxed.isUnion);
|
|
49
|
-
const statements = [`const handle = alloc(${allocArgs(context, boxed, size).join(", ")});`];
|
|
50
|
-
for (const entry of slots) {
|
|
51
|
-
if (!isWritableFieldSlot(entry))
|
|
52
|
-
continue;
|
|
53
|
-
statements.push(renderFieldWrite(context, entry));
|
|
54
|
-
}
|
|
55
|
-
statements.push("setHandle(this, handle);");
|
|
56
|
-
const body = statements.join("\n");
|
|
57
|
-
return `constructor(props: ${className}ConstructorProps = {}) {\n${indent(body, 1)}\n}`;
|
|
58
|
-
};
|
|
59
|
-
const allocArgs = (context, boxed, size) => {
|
|
60
|
-
const glibTypeName = boxed.glibTypeName ?? boxed.cType;
|
|
61
|
-
const lib = context.namespace.sharedLibrary;
|
|
62
|
-
const args = [String(size)];
|
|
63
|
-
if (glibTypeName !== undefined || lib !== undefined) {
|
|
64
|
-
args.push(glibTypeName !== undefined ? quote(glibTypeName) : "undefined");
|
|
65
|
-
}
|
|
66
|
-
if (lib !== undefined)
|
|
67
|
-
args.push(quote(lib));
|
|
68
|
-
return args;
|
|
69
|
-
};
|
|
70
|
-
const renderFieldWrite = (context, entry) => {
|
|
71
|
-
context.addRuntimeImport("t");
|
|
72
|
-
context.addNativeImport("write");
|
|
73
|
-
const ffiType = renderFfiType(context, entry.field.type, "none");
|
|
74
|
-
const name = toIdentifier(toCamelCase(entry.field.name));
|
|
75
|
-
const offset = entry.slot.byteOffset;
|
|
76
|
-
if (entry.slot.bitWidth === undefined) {
|
|
77
|
-
return `if (props.${name} !== undefined) write(handle, ${ffiType}, ${offset}, props.${name});`;
|
|
78
|
-
}
|
|
79
|
-
context.addNativeImport("read");
|
|
80
|
-
const mask = (1 << entry.slot.bitWidth) - 1;
|
|
81
|
-
const bitOffset = entry.slot.bitOffset ?? 0;
|
|
82
|
-
const merged = `(((read(handle, ${ffiType}, ${offset}) as number) & ~(${mask} << ${bitOffset})) | ((Number(props.${name}) & ${mask}) << ${bitOffset})) >>> 0`;
|
|
83
|
-
return `if (props.${name} !== undefined) write(handle, ${ffiType}, ${offset}, ${merged});`;
|
|
84
|
-
};
|
|
85
|
-
//# sourceMappingURL=boxed-constructor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boxed-constructor.js","sourceRoot":"","sources":["../../src/writers/boxed-constructor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { ModuleContext } from "../dsl/context.js";
|
|
2
|
-
import type { GirField } from "../gir/field.js";
|
|
3
|
-
import { type BoxedFieldSlot } from "./boxed-layout.js";
|
|
4
|
-
/**
|
|
5
|
-
* Renders the `get` / `set` accessor pair for a single boxed field.
|
|
6
|
-
*
|
|
7
|
-
* The accessor reads through the runtime's `read(handle, ffiType, offset)`
|
|
8
|
-
* (or `write` for the setter), with bitfield members threading through a
|
|
9
|
-
* read-modify-write sequence into their shared storage word. Fields whose
|
|
10
|
-
* type cannot be marshaled at present (callbacks, varargs, inline arrays
|
|
11
|
-
* of complex types) are skipped silently.
|
|
12
|
-
*
|
|
13
|
-
* @param context - The module context
|
|
14
|
-
* @param slot - The field plus its layout slot
|
|
15
|
-
* @param claimedNames - Names already used by emitted methods
|
|
16
|
-
*/
|
|
17
|
-
export declare const renderBoxedFieldAccessor: (context: ModuleContext, slot: BoxedFieldSlot, claimedNames: ReadonlySet<string>, siblingFields: readonly GirField[]) => string | undefined;
|
|
18
|
-
//# sourceMappingURL=boxed-field-accessor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"boxed-field-accessor.d.ts","sourceRoot":"","sources":["../../src/writers/boxed-field-accessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,mBAAmB,CAAC;AAMhF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,GACjC,SAAS,aAAa,EACtB,MAAM,cAAc,EACpB,cAAc,WAAW,CAAC,MAAM,CAAC,EACjC,eAAe,SAAS,QAAQ,EAAE,KACnC,MAAM,GAAG,SAmCX,CAAC"}
|