@gtkx/runtime 1.0.0-rc.1 → 1.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/arg.d.ts +6 -5
  2. package/dist/arg.d.ts.map +1 -1
  3. package/dist/arg.js +5 -4
  4. package/dist/arg.js.map +1 -1
  5. package/dist/bind.d.ts +3 -2
  6. package/dist/bind.d.ts.map +1 -1
  7. package/dist/bind.js +5 -3
  8. package/dist/bind.js.map +1 -1
  9. package/dist/callback.d.ts +3 -3
  10. package/dist/callback.d.ts.map +1 -1
  11. package/dist/callback.js +51 -33
  12. package/dist/callback.js.map +1 -1
  13. package/dist/descriptors.d.ts +67 -64
  14. package/dist/descriptors.d.ts.map +1 -1
  15. package/dist/descriptors.js +92 -60
  16. package/dist/descriptors.js.map +1 -1
  17. package/dist/error.d.ts +5 -6
  18. package/dist/error.d.ts.map +1 -1
  19. package/dist/error.js +10 -6
  20. package/dist/error.js.map +1 -1
  21. package/dist/exit-hook.d.ts +2 -0
  22. package/dist/exit-hook.d.ts.map +1 -0
  23. package/dist/exit-hook.js +3 -0
  24. package/dist/exit-hook.js.map +1 -0
  25. package/dist/fn.d.ts +2 -2
  26. package/dist/fn.d.ts.map +1 -1
  27. package/dist/fn.js +26 -15
  28. package/dist/fn.js.map +1 -1
  29. package/dist/index.d.ts +4 -3
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +3 -2
  32. package/dist/index.js.map +1 -1
  33. package/dist/library.d.ts +6 -5
  34. package/dist/library.d.ts.map +1 -1
  35. package/dist/library.js +6 -5
  36. package/dist/library.js.map +1 -1
  37. package/dist/lifecycle.d.ts +10 -9
  38. package/dist/lifecycle.d.ts.map +1 -1
  39. package/dist/lifecycle.js +38 -23
  40. package/dist/lifecycle.js.map +1 -1
  41. package/dist/listeners.d.ts +8 -8
  42. package/dist/listeners.d.ts.map +1 -1
  43. package/dist/listeners.js +28 -15
  44. package/dist/listeners.js.map +1 -1
  45. package/dist/mixin.d.ts +5 -11
  46. package/dist/mixin.d.ts.map +1 -1
  47. package/dist/mixin.js +24 -14
  48. package/dist/mixin.js.map +1 -1
  49. package/dist/native-value.d.ts +3 -2
  50. package/dist/native-value.d.ts.map +1 -1
  51. package/dist/native-value.js +75 -42
  52. package/dist/native-value.js.map +1 -1
  53. package/dist/object.d.ts +4 -3
  54. package/dist/object.d.ts.map +1 -1
  55. package/dist/object.js +8 -5
  56. package/dist/object.js.map +1 -1
  57. package/dist/promisify.d.ts +9 -1
  58. package/dist/promisify.d.ts.map +1 -1
  59. package/dist/promisify.js +18 -15
  60. package/dist/promisify.js.map +1 -1
  61. package/dist/properties.d.ts +14 -0
  62. package/dist/properties.d.ts.map +1 -0
  63. package/dist/properties.js +79 -0
  64. package/dist/properties.js.map +1 -0
  65. package/dist/register-class.d.ts +10 -2
  66. package/dist/register-class.d.ts.map +1 -1
  67. package/dist/register-class.js +83 -29
  68. package/dist/register-class.js.map +1 -1
  69. package/dist/registry.d.ts +23 -21
  70. package/dist/registry.d.ts.map +1 -1
  71. package/dist/registry.js +54 -35
  72. package/dist/registry.js.map +1 -1
  73. package/dist/signal.d.ts +7 -6
  74. package/dist/signal.d.ts.map +1 -1
  75. package/dist/signal.js +19 -12
  76. package/dist/signal.js.map +1 -1
  77. package/dist/t.d.ts +2 -2
  78. package/dist/t.d.ts.map +1 -1
  79. package/dist/t.js +2 -1
  80. package/dist/t.js.map +1 -1
  81. package/dist/tuple.d.ts +3 -2
  82. package/dist/tuple.d.ts.map +1 -1
  83. package/dist/tuple.js +7 -4
  84. package/dist/tuple.js.map +1 -1
  85. package/dist/type.d.ts +48 -41
  86. package/dist/type.d.ts.map +1 -1
  87. package/dist/type.js +107 -87
  88. package/dist/type.js.map +1 -1
  89. package/dist/value.d.ts +19 -10
  90. package/dist/value.d.ts.map +1 -1
  91. package/dist/value.js +164 -99
  92. package/dist/value.js.map +1 -1
  93. package/package.json +4 -6
  94. package/src/arg.ts +7 -5
  95. package/src/bind.ts +13 -4
  96. package/src/callback.ts +97 -35
  97. package/src/descriptors.ts +227 -85
  98. package/src/error.ts +18 -9
  99. package/src/exit-hook.ts +3 -0
  100. package/src/fn.ts +53 -22
  101. package/src/index.ts +5 -3
  102. package/src/library.ts +7 -5
  103. package/src/lifecycle.ts +54 -26
  104. package/src/listeners.ts +46 -18
  105. package/src/mixin.ts +39 -14
  106. package/src/native-value.ts +103 -46
  107. package/src/object.ts +19 -7
  108. package/src/promisify.ts +42 -15
  109. package/src/properties.ts +115 -0
  110. package/src/register-class.ts +157 -30
  111. package/src/registry.ts +144 -54
  112. package/src/signal.ts +53 -13
  113. package/src/t.ts +3 -1
  114. package/src/tuple.ts +16 -4
  115. package/src/type.ts +183 -93
  116. package/src/value.ts +231 -108
package/dist/type.js CHANGED
@@ -9,108 +9,133 @@ const gTypeParent = bind(LIB, "g_type_parent", [biguint64T], biguint64T);
9
9
  const gTypeFundamental = bind(LIB, "g_type_fundamental", [biguint64T], biguint64T);
10
10
  const gTypeName = bind(LIB, "g_type_name", [biguint64T], stringT("borrowed"));
11
11
  const gTypeInterfaces = bind(LIB, "g_type_interfaces", [biguint64T, refT(uint32T)], sizedArrayT(biguint64T, 1, "full"));
12
- const lazyType = (name) => {
13
- let cached;
14
- return () => {
15
- cached ??= typeFromName(name);
16
- return cached;
17
- };
18
- };
19
- export const isTypedClass = (value) => typeof value === "object" && value !== null && "__type__" in value && typeof value.__type__ === "bigint";
20
12
  /** GType tag for an invalid or uninitialized type. */
21
- export const TYPE_INVALID = 0n;
13
+ const TYPE_INVALID = 0n;
22
14
  /** GType tag for the absence of a value (`void`). */
23
- export const TYPE_NONE = typeFromName("void");
15
+ const TYPE_NONE = typeFromName("void");
24
16
  /** GType tag for the base GInterface type. */
25
- export const TYPE_INTERFACE = typeFromName("GInterface");
17
+ const TYPE_INTERFACE = typeFromName("GInterface");
26
18
  /** GType tag for `gchar` (signed 8-bit integer). */
27
- export const TYPE_CHAR = typeFromName("gchar");
19
+ const TYPE_CHAR = typeFromName("gchar");
28
20
  /** GType tag for `guchar` (unsigned 8-bit integer). */
29
- export const TYPE_UCHAR = typeFromName("guchar");
21
+ const TYPE_UCHAR = typeFromName("guchar");
30
22
  /** GType tag for `gboolean`. */
31
- export const TYPE_BOOLEAN = typeFromName("gboolean");
23
+ const TYPE_BOOLEAN = typeFromName("gboolean");
32
24
  /** GType tag for `gint`. */
33
- export const TYPE_INT = typeFromName("gint");
25
+ const TYPE_INT = typeFromName("gint");
34
26
  /** GType tag for `guint`. */
35
- export const TYPE_UINT = typeFromName("guint");
27
+ const TYPE_UINT = typeFromName("guint");
36
28
  /** GType tag for `glong`. */
37
- export const TYPE_LONG = typeFromName("glong");
29
+ const TYPE_LONG = typeFromName("glong");
38
30
  /** GType tag for `gulong`. */
39
- export const TYPE_ULONG = typeFromName("gulong");
31
+ const TYPE_ULONG = typeFromName("gulong");
40
32
  /** GType tag for `gint64`. */
41
- export const TYPE_INT64 = typeFromName("gint64");
33
+ const TYPE_INT64 = typeFromName("gint64");
42
34
  /** GType tag for `guint64`. */
43
- export const TYPE_UINT64 = typeFromName("guint64");
35
+ const TYPE_UINT64 = typeFromName("guint64");
44
36
  /** GType tag for the base GEnum type. */
45
- export const TYPE_ENUM = typeFromName("GEnum");
37
+ const TYPE_ENUM = typeFromName("GEnum");
46
38
  /** GType tag for the base GFlags type. */
47
- export const TYPE_FLAGS = typeFromName("GFlags");
39
+ const TYPE_FLAGS = typeFromName("GFlags");
48
40
  /** GType tag for `gfloat`. */
49
- export const TYPE_FLOAT = typeFromName("gfloat");
41
+ const TYPE_FLOAT = typeFromName("gfloat");
50
42
  /** GType tag for `gdouble`. */
51
- export const TYPE_DOUBLE = typeFromName("gdouble");
43
+ const TYPE_DOUBLE = typeFromName("gdouble");
52
44
  /** GType tag for `gchararray` (a nul-terminated C string). */
53
- export const TYPE_STRING = typeFromName("gchararray");
45
+ const TYPE_STRING = typeFromName("gchararray");
54
46
  /** GType tag for `gpointer` (an opaque pointer). */
55
- export const TYPE_POINTER = typeFromName("gpointer");
47
+ const TYPE_POINTER = typeFromName("gpointer");
56
48
  /** GType tag for the base GBoxed type. */
57
- export const TYPE_BOXED = typeFromName("GBoxed");
49
+ const TYPE_BOXED = typeFromName("GBoxed");
58
50
  /** GType tag for the base GParam type. */
59
- export const TYPE_PARAM = typeFromName("GParam");
51
+ const TYPE_PARAM = typeFromName("GParam");
60
52
  /** GType tag for the base GObject type. */
61
- export const TYPE_OBJECT = typeFromName("GObject");
53
+ const TYPE_OBJECT = typeFromName("GObject");
62
54
  /** GType tag for a GType value itself. */
63
- export const TYPE_GTYPE = typeFromName("GType");
55
+ const TYPE_GTYPE = typeFromName("GType");
64
56
  /** GType tag for GVariant. */
65
- export const TYPE_VARIANT = typeFromName("GVariant");
57
+ const TYPE_VARIANT = typeFromName("GVariant");
66
58
  /** GType tag for a Unicode character stored as `guint`. */
67
- export const TYPE_UNICHAR = typeFromName("guint");
68
- export const getErrorType = lazyType("GError");
69
- export const getStrvType = lazyType("GStrv");
70
- /** Returns whether `type` is `isAType` or descends from it. */
71
- export function typeIsA(type, isAType) {
72
- return gTypeIsA(type, isAType);
59
+ const TYPE_UNICHAR = typeFromName("guint");
60
+ const getErrorType = lazyType("GError");
61
+ const getStrvType = lazyType("GStrv");
62
+ const PLAIN_DESCRIPTOR_TYPES = {
63
+ boolean: TYPE_BOOLEAN,
64
+ string: TYPE_STRING,
65
+ int8: TYPE_INT,
66
+ int16: TYPE_INT,
67
+ int32: TYPE_INT,
68
+ uint8: TYPE_UINT,
69
+ uint16: TYPE_UINT,
70
+ uint32: TYPE_UINT,
71
+ int64: TYPE_INT64,
72
+ bigint64: TYPE_INT64,
73
+ uint64: TYPE_UINT64,
74
+ biguint64: TYPE_UINT64,
75
+ float32: TYPE_FLOAT,
76
+ float64: TYPE_DOUBLE,
77
+ object: TYPE_OBJECT,
78
+ };
79
+ const RESOLVABLE_DESCRIPTOR_KINDS = new Set([
80
+ "enum",
81
+ "flags",
82
+ "boxed",
83
+ "fundamental",
84
+ "array",
85
+ ]);
86
+ function lazyType(name) {
87
+ let cached;
88
+ return () => {
89
+ cached ??= typeFromName(name);
90
+ return cached;
91
+ };
92
+ }
93
+ const isTypedClass = (value) => typeof value === "object" && value !== null && "__type__" in value && typeof value.__type__ === "bigint";
94
+ /** Returns whether `type` is `ancestorType` or descends from it. */
95
+ function typeIsA(type, ancestorType) {
96
+ return gTypeIsA(type, ancestorType);
73
97
  }
74
98
  /** Returns the immediate parent GType of the given type. */
75
- export function typeParent(type) {
99
+ function typeParent(type) {
76
100
  return gTypeParent(type);
77
101
  }
78
102
  /** Returns the GTypes of the interfaces implemented by the given type. */
79
- export function typeInterfaces(type) {
103
+ function typeInterfaces(type) {
80
104
  const nInterfacesRef = { value: 0 };
81
105
  return gTypeInterfaces(type, nInterfacesRef);
82
106
  }
83
107
  /** Returns the GType registered under the given name, or `TYPE_INVALID` if none exists. */
84
- export function typeFromName(name) {
108
+ function typeFromName(name) {
85
109
  return gTypeFromName(name);
86
110
  }
87
- export function typeFundamental(type) {
111
+ function typeFundamental(type) {
88
112
  return gTypeFundamental(type);
89
113
  }
90
114
  /** Returns the registered name of a GType, or null if it has none. */
91
- export function typeName(type) {
115
+ function typeName(type) {
92
116
  return (gTypeName(type) ?? null);
93
117
  }
94
118
  /** Returns whether `value` is a typed wrapper whose GType is or descends from `gtype`. */
95
- export function valueIsA(value, gtype) {
119
+ function valueIsA(value, gtype) {
96
120
  return isTypedClass(value) && typeIsA(value.__type__, gtype);
97
121
  }
98
122
  /**
99
123
  * Resolves the GType produced by a `get_type` function in a shared library, caching
100
124
  * the result per library and function name.
101
125
  * @param sharedLibrary Path or name of the shared library exporting the function.
102
- * @param getTypeFnName Name of the `*_get_type` function to call.
126
+ * @param typeFnName Name of the `*_get_type` function to call.
103
127
  */
104
- export const resolveType = (sharedLibrary, getTypeFnName) => {
105
- const key = `${sharedLibrary}:${getTypeFnName}`;
128
+ const resolveType = (sharedLibrary, typeFnName) => {
129
+ const key = `${sharedLibrary}:${typeFnName}`;
106
130
  const cached = resolvedTypeCache.get(key);
107
- if (cached !== undefined)
131
+ if (cached !== undefined) {
108
132
  return cached;
109
- const gtype = nativeResolveType(sharedLibrary, getTypeFnName);
133
+ }
134
+ const gtype = nativeResolveType(sharedLibrary, typeFnName);
110
135
  resolvedTypeCache.set(key, gtype);
111
136
  return gtype;
112
137
  };
113
- export const resolveBoxedType = (descriptor) => {
138
+ const resolveBoxedType = (descriptor) => {
114
139
  if (descriptor.getTypeFnName && descriptor.sharedLibrary) {
115
140
  return resolveType(descriptor.sharedLibrary, descriptor.getTypeFnName);
116
141
  }
@@ -120,55 +145,50 @@ export const resolveBoxedType = (descriptor) => {
120
145
  }
121
146
  return gtype;
122
147
  };
123
- export const resolveFundamentalType = (descriptor) => {
148
+ const resolveFundamentalType = (descriptor) => {
124
149
  if (descriptor.typeName) {
125
150
  const gtype = typeFromName(descriptor.typeName);
126
- if (gtype !== TYPE_INVALID)
151
+ if (gtype !== TYPE_INVALID) {
127
152
  return gtype;
153
+ }
128
154
  }
129
- throw new Error(`Cannot resolve gtype for fundamental type without a typeName`);
155
+ throw new Error("Cannot resolve gtype for fundamental type without a typeName");
130
156
  };
131
- export function resolveDescriptorType(descriptor) {
132
- if (descriptor.kind === "biguint64" && "type" in descriptor)
157
+ function resolveArrayType(descriptor) {
158
+ if (descriptor.itemDescriptor.kind === "string" && descriptor.arrayKind === "array") {
159
+ return getStrvType();
160
+ }
161
+ throw new Error(`Unsupported array type ${descriptor.arrayKind} of ${descriptor.itemDescriptor.kind}`);
162
+ }
163
+ function isResolvableDescriptor(descriptor) {
164
+ return RESOLVABLE_DESCRIPTOR_KINDS.has(descriptor.kind);
165
+ }
166
+ function resolveDescriptorType(descriptor) {
167
+ if (descriptor.kind === "biguint64" && "type" in descriptor) {
133
168
  return TYPE_GTYPE;
169
+ }
170
+ const plain = PLAIN_DESCRIPTOR_TYPES[descriptor.kind];
171
+ if (plain !== undefined) {
172
+ return plain;
173
+ }
174
+ if (!isResolvableDescriptor(descriptor)) {
175
+ throw new Error(`Unsupported type descriptor '${descriptor.kind}'`);
176
+ }
134
177
  switch (descriptor.kind) {
135
- case "boolean":
136
- return TYPE_BOOLEAN;
137
- case "string":
138
- return TYPE_STRING;
139
- case "int8":
140
- case "int16":
141
- case "int32":
142
- return TYPE_INT;
143
- case "uint8":
144
- case "uint16":
145
- case "uint32":
146
- return TYPE_UINT;
147
- case "int64":
148
- case "bigint64":
149
- return TYPE_INT64;
150
- case "uint64":
151
- case "biguint64":
152
- return TYPE_UINT64;
153
- case "float32":
154
- return TYPE_FLOAT;
155
- case "float64":
156
- return TYPE_DOUBLE;
157
- case "object":
158
- return TYPE_OBJECT;
159
178
  case "enum":
160
- case "flags":
179
+ case "flags": {
161
180
  return resolveType(descriptor.sharedLibrary, descriptor.getTypeFnName);
162
- case "boxed":
181
+ }
182
+ case "boxed": {
163
183
  return resolveBoxedType(descriptor);
164
- case "fundamental":
184
+ }
185
+ case "fundamental": {
165
186
  return resolveFundamentalType(descriptor);
166
- case "array":
167
- if (descriptor.itemDescriptor.kind === "string" && descriptor.arrayKind === "array")
168
- return getStrvType();
169
- throw new Error(`Unsupported array type ${descriptor.arrayKind} of ${descriptor.itemDescriptor.kind}`);
170
- default:
171
- throw new Error(`Unsupported type descriptor '${descriptor.kind}'`);
187
+ }
188
+ case "array": {
189
+ return resolveArrayType(descriptor);
190
+ }
172
191
  }
173
192
  }
193
+ export { TYPE_INVALID, TYPE_NONE, TYPE_INTERFACE, TYPE_CHAR, TYPE_UCHAR, TYPE_BOOLEAN, TYPE_INT, TYPE_UINT, TYPE_LONG, TYPE_ULONG, TYPE_INT64, TYPE_UINT64, TYPE_ENUM, TYPE_FLAGS, TYPE_FLOAT, TYPE_DOUBLE, TYPE_STRING, TYPE_POINTER, TYPE_BOXED, TYPE_PARAM, TYPE_OBJECT, TYPE_GTYPE, TYPE_VARIANT, TYPE_UNICHAR, getErrorType, getStrvType, isResolvableDescriptor, isTypedClass, typeIsA, typeParent, typeInterfaces, typeFromName, typeFundamental, typeName, valueIsA, resolveType, resolveBoxedType, resolveFundamentalType, resolveDescriptorType, };
174
194
  //# sourceMappingURL=type.js.map
package/dist/type.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Descriptor, resolveType as nativeResolveType } from \"@gtkx/native\";\nimport { bind } from \"./bind.js\";\nimport {\n type BoxedDescriptor,\n biguint64T,\n booleanT,\n type FundamentalDescriptor,\n refT,\n sizedArrayT,\n stringT,\n uint32T,\n} from \"./descriptors.js\";\nimport { LIB } from \"./library.js\";\n\n/** Object tagged with its GLib type through a `__type__` GType field. */\nexport type TypedClass = {\n __type__: bigint;\n};\n\nconst resolvedTypeCache = new Map<string, bigint>();\n\nconst gTypeFromName = bind(LIB, \"g_type_from_name\", [stringT(\"borrowed\")], biguint64T);\nconst gTypeIsA = bind(LIB, \"g_type_is_a\", [biguint64T, biguint64T], booleanT);\nconst gTypeParent = bind(LIB, \"g_type_parent\", [biguint64T], biguint64T);\nconst gTypeFundamental = bind(LIB, \"g_type_fundamental\", [biguint64T], biguint64T);\nconst gTypeName = bind(LIB, \"g_type_name\", [biguint64T], stringT(\"borrowed\"));\nconst gTypeInterfaces = bind(LIB, \"g_type_interfaces\", [biguint64T, refT(uint32T)], sizedArrayT(biguint64T, 1, \"full\"));\n\nconst lazyType = (name: string): (() => bigint) => {\n let cached: bigint | undefined;\n return () => {\n cached ??= typeFromName(name);\n return cached;\n };\n};\n\nexport const isTypedClass = (value: unknown): value is TypedClass =>\n typeof value === \"object\" && value !== null && \"__type__\" in value && typeof value.__type__ === \"bigint\";\n\n/** GType tag for an invalid or uninitialized type. */\nexport const TYPE_INVALID: bigint = 0n;\n/** GType tag for the absence of a value (`void`). */\nexport const TYPE_NONE: bigint = typeFromName(\"void\");\n/** GType tag for the base GInterface type. */\nexport const TYPE_INTERFACE: bigint = typeFromName(\"GInterface\");\n/** GType tag for `gchar` (signed 8-bit integer). */\nexport const TYPE_CHAR: bigint = typeFromName(\"gchar\");\n/** GType tag for `guchar` (unsigned 8-bit integer). */\nexport const TYPE_UCHAR: bigint = typeFromName(\"guchar\");\n/** GType tag for `gboolean`. */\nexport const TYPE_BOOLEAN: bigint = typeFromName(\"gboolean\");\n/** GType tag for `gint`. */\nexport const TYPE_INT: bigint = typeFromName(\"gint\");\n/** GType tag for `guint`. */\nexport const TYPE_UINT: bigint = typeFromName(\"guint\");\n/** GType tag for `glong`. */\nexport const TYPE_LONG: bigint = typeFromName(\"glong\");\n/** GType tag for `gulong`. */\nexport const TYPE_ULONG: bigint = typeFromName(\"gulong\");\n/** GType tag for `gint64`. */\nexport const TYPE_INT64: bigint = typeFromName(\"gint64\");\n/** GType tag for `guint64`. */\nexport const TYPE_UINT64: bigint = typeFromName(\"guint64\");\n/** GType tag for the base GEnum type. */\nexport const TYPE_ENUM: bigint = typeFromName(\"GEnum\");\n/** GType tag for the base GFlags type. */\nexport const TYPE_FLAGS: bigint = typeFromName(\"GFlags\");\n/** GType tag for `gfloat`. */\nexport const TYPE_FLOAT: bigint = typeFromName(\"gfloat\");\n/** GType tag for `gdouble`. */\nexport const TYPE_DOUBLE: bigint = typeFromName(\"gdouble\");\n/** GType tag for `gchararray` (a nul-terminated C string). */\nexport const TYPE_STRING: bigint = typeFromName(\"gchararray\");\n/** GType tag for `gpointer` (an opaque pointer). */\nexport const TYPE_POINTER: bigint = typeFromName(\"gpointer\");\n/** GType tag for the base GBoxed type. */\nexport const TYPE_BOXED: bigint = typeFromName(\"GBoxed\");\n/** GType tag for the base GParam type. */\nexport const TYPE_PARAM: bigint = typeFromName(\"GParam\");\n/** GType tag for the base GObject type. */\nexport const TYPE_OBJECT: bigint = typeFromName(\"GObject\");\n/** GType tag for a GType value itself. */\nexport const TYPE_GTYPE: bigint = typeFromName(\"GType\");\n/** GType tag for GVariant. */\nexport const TYPE_VARIANT: bigint = typeFromName(\"GVariant\");\n/** GType tag for a Unicode character stored as `guint`. */\nexport const TYPE_UNICHAR: bigint = typeFromName(\"guint\");\nexport const getErrorType: () => bigint = lazyType(\"GError\");\nexport const getStrvType: () => bigint = lazyType(\"GStrv\");\n\n/** Returns whether `type` is `isAType` or descends from it. */\nexport function typeIsA(type: bigint, isAType: bigint): boolean {\n return gTypeIsA(type, isAType) as boolean;\n}\n\n/** Returns the immediate parent GType of the given type. */\nexport function typeParent(type: bigint): bigint {\n return gTypeParent(type) as bigint;\n}\n\n/** Returns the GTypes of the interfaces implemented by the given type. */\nexport function typeInterfaces(type: bigint): bigint[] {\n const nInterfacesRef = { value: 0 };\n return gTypeInterfaces(type, nInterfacesRef) as bigint[];\n}\n\n/** Returns the GType registered under the given name, or `TYPE_INVALID` if none exists. */\nexport function typeFromName(name: string): bigint {\n return gTypeFromName(name) as bigint;\n}\n\nexport function typeFundamental(type: bigint): bigint {\n return gTypeFundamental(type) as bigint;\n}\n\n/** Returns the registered name of a GType, or null if it has none. */\nexport function typeName(type: bigint): string | null {\n return (gTypeName(type) ?? null) as string | null;\n}\n\n/** Returns whether `value` is a typed wrapper whose GType is or descends from `gtype`. */\nexport function valueIsA(value: unknown, gtype: bigint): boolean {\n return isTypedClass(value) && typeIsA(value.__type__, gtype);\n}\n\n/**\n * Resolves the GType produced by a `get_type` function in a shared library, caching\n * the result per library and function name.\n * @param sharedLibrary Path or name of the shared library exporting the function.\n * @param getTypeFnName Name of the `*_get_type` function to call.\n */\nexport const resolveType = (sharedLibrary: string, getTypeFnName: string): bigint => {\n const key = `${sharedLibrary}:${getTypeFnName}`;\n const cached = resolvedTypeCache.get(key);\n if (cached !== undefined) return cached;\n const gtype = nativeResolveType(sharedLibrary, getTypeFnName);\n resolvedTypeCache.set(key, gtype);\n return gtype;\n};\n\nexport const resolveBoxedType = (descriptor: BoxedDescriptor): bigint => {\n if (descriptor.getTypeFnName && descriptor.sharedLibrary) {\n return resolveType(descriptor.sharedLibrary, descriptor.getTypeFnName);\n }\n const gtype = typeFromName(descriptor.typeName);\n if (gtype === TYPE_INVALID) {\n throw new Error(`Cannot resolve gtype for boxed type '${descriptor.typeName}'`);\n }\n return gtype;\n};\n\nexport const resolveFundamentalType = (descriptor: FundamentalDescriptor): bigint => {\n if (descriptor.typeName) {\n const gtype = typeFromName(descriptor.typeName);\n if (gtype !== TYPE_INVALID) return gtype;\n }\n throw new Error(`Cannot resolve gtype for fundamental type without a typeName`);\n};\n\nexport function resolveDescriptorType(descriptor: Descriptor): bigint {\n if (descriptor.kind === \"biguint64\" && \"type\" in descriptor) return TYPE_GTYPE;\n switch (descriptor.kind) {\n case \"boolean\":\n return TYPE_BOOLEAN;\n case \"string\":\n return TYPE_STRING;\n case \"int8\":\n case \"int16\":\n case \"int32\":\n return TYPE_INT;\n case \"uint8\":\n case \"uint16\":\n case \"uint32\":\n return TYPE_UINT;\n case \"int64\":\n case \"bigint64\":\n return TYPE_INT64;\n case \"uint64\":\n case \"biguint64\":\n return TYPE_UINT64;\n case \"float32\":\n return TYPE_FLOAT;\n case \"float64\":\n return TYPE_DOUBLE;\n case \"object\":\n return TYPE_OBJECT;\n case \"enum\":\n case \"flags\":\n return resolveType(descriptor.sharedLibrary, descriptor.getTypeFnName);\n case \"boxed\":\n return resolveBoxedType(descriptor);\n case \"fundamental\":\n return resolveFundamentalType(descriptor);\n case \"array\":\n if (descriptor.itemDescriptor.kind === \"string\" && descriptor.arrayKind === \"array\") return getStrvType();\n throw new Error(`Unsupported array type ${descriptor.arrayKind} of ${descriptor.itemDescriptor.kind}`);\n default:\n throw new Error(`Unsupported type descriptor '${descriptor.kind}'`);\n }\n}\n"]}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Descriptor, resolveType as nativeResolveType } from \"@gtkx/native\";\nimport { bind } from \"./bind.js\";\nimport {\n type ArrayDescriptor,\n biguint64T,\n booleanT,\n type BoxedDescriptor,\n type FundamentalDescriptor,\n refT,\n sizedArrayT,\n stringT,\n uint32T,\n} from \"./descriptors.js\";\nimport { LIB } from \"./library.js\";\n\n/** Object tagged with its GLib type through a `__type__` GType field. */\ntype TypedClass = {\n __type__: bigint;\n};\n\ntype ResolvableKind = \"enum\" | \"flags\" | \"boxed\" | \"fundamental\" | \"array\";\n/** Descriptor kinds whose GType is resolved from library metadata rather than a fixed fundamental type. */\ntype ResolvableDescriptor = Extract<Descriptor, { kind: ResolvableKind }>;\n\nconst resolvedTypeCache: Map<string, bigint> = new Map();\nconst gTypeFromName = bind(LIB, \"g_type_from_name\", [stringT(\"borrowed\")], biguint64T);\nconst gTypeIsA = bind(LIB, \"g_type_is_a\", [biguint64T, biguint64T], booleanT);\nconst gTypeParent = bind(LIB, \"g_type_parent\", [biguint64T], biguint64T);\nconst gTypeFundamental = bind(LIB, \"g_type_fundamental\", [biguint64T], biguint64T);\nconst gTypeName = bind(LIB, \"g_type_name\", [biguint64T], stringT(\"borrowed\"));\nconst gTypeInterfaces = bind(LIB, \"g_type_interfaces\", [biguint64T, refT(uint32T)], sizedArrayT(biguint64T, 1, \"full\"));\n/** GType tag for an invalid or uninitialized type. */\nconst TYPE_INVALID = 0n;\n/** GType tag for the absence of a value (`void`). */\nconst TYPE_NONE: bigint = typeFromName(\"void\");\n/** GType tag for the base GInterface type. */\nconst TYPE_INTERFACE: bigint = typeFromName(\"GInterface\");\n/** GType tag for `gchar` (signed 8-bit integer). */\nconst TYPE_CHAR: bigint = typeFromName(\"gchar\");\n/** GType tag for `guchar` (unsigned 8-bit integer). */\nconst TYPE_UCHAR: bigint = typeFromName(\"guchar\");\n/** GType tag for `gboolean`. */\nconst TYPE_BOOLEAN: bigint = typeFromName(\"gboolean\");\n/** GType tag for `gint`. */\nconst TYPE_INT: bigint = typeFromName(\"gint\");\n/** GType tag for `guint`. */\nconst TYPE_UINT: bigint = typeFromName(\"guint\");\n/** GType tag for `glong`. */\nconst TYPE_LONG: bigint = typeFromName(\"glong\");\n/** GType tag for `gulong`. */\nconst TYPE_ULONG: bigint = typeFromName(\"gulong\");\n/** GType tag for `gint64`. */\nconst TYPE_INT64: bigint = typeFromName(\"gint64\");\n/** GType tag for `guint64`. */\nconst TYPE_UINT64: bigint = typeFromName(\"guint64\");\n/** GType tag for the base GEnum type. */\nconst TYPE_ENUM: bigint = typeFromName(\"GEnum\");\n/** GType tag for the base GFlags type. */\nconst TYPE_FLAGS: bigint = typeFromName(\"GFlags\");\n/** GType tag for `gfloat`. */\nconst TYPE_FLOAT: bigint = typeFromName(\"gfloat\");\n/** GType tag for `gdouble`. */\nconst TYPE_DOUBLE: bigint = typeFromName(\"gdouble\");\n/** GType tag for `gchararray` (a nul-terminated C string). */\nconst TYPE_STRING: bigint = typeFromName(\"gchararray\");\n/** GType tag for `gpointer` (an opaque pointer). */\nconst TYPE_POINTER: bigint = typeFromName(\"gpointer\");\n/** GType tag for the base GBoxed type. */\nconst TYPE_BOXED: bigint = typeFromName(\"GBoxed\");\n/** GType tag for the base GParam type. */\nconst TYPE_PARAM: bigint = typeFromName(\"GParam\");\n/** GType tag for the base GObject type. */\nconst TYPE_OBJECT: bigint = typeFromName(\"GObject\");\n/** GType tag for a GType value itself. */\nconst TYPE_GTYPE: bigint = typeFromName(\"GType\");\n/** GType tag for GVariant. */\nconst TYPE_VARIANT: bigint = typeFromName(\"GVariant\");\n/** GType tag for a Unicode character stored as `guint`. */\nconst TYPE_UNICHAR: bigint = typeFromName(\"guint\");\nconst getErrorType: () => bigint = lazyType(\"GError\");\nconst getStrvType: () => bigint = lazyType(\"GStrv\");\n\nconst PLAIN_DESCRIPTOR_TYPES: Partial<Record<Descriptor[\"kind\"], bigint>> = {\n boolean: TYPE_BOOLEAN,\n string: TYPE_STRING,\n int8: TYPE_INT,\n int16: TYPE_INT,\n int32: TYPE_INT,\n uint8: TYPE_UINT,\n uint16: TYPE_UINT,\n uint32: TYPE_UINT,\n int64: TYPE_INT64,\n bigint64: TYPE_INT64,\n uint64: TYPE_UINT64,\n biguint64: TYPE_UINT64,\n float32: TYPE_FLOAT,\n float64: TYPE_DOUBLE,\n object: TYPE_OBJECT,\n};\n\nconst RESOLVABLE_DESCRIPTOR_KINDS: Set<Descriptor[\"kind\"]> = new Set<ResolvableKind>([\n \"enum\",\n \"flags\",\n \"boxed\",\n \"fundamental\",\n \"array\",\n]);\n\nfunction lazyType(name: string): () => bigint {\n let cached: bigint | undefined;\n\n return () => {\n cached ??= typeFromName(name);\n\n return cached;\n };\n}\n\nconst isTypedClass = (value: unknown): value is TypedClass =>\n typeof value === \"object\" && value !== null && \"__type__\" in value && typeof value.__type__ === \"bigint\";\n\n/** Returns whether `type` is `ancestorType` or descends from it. */\nfunction typeIsA(type: bigint, ancestorType: bigint): boolean {\n return gTypeIsA(type, ancestorType) as boolean;\n}\n\n/** Returns the immediate parent GType of the given type. */\nfunction typeParent(type: bigint): bigint {\n return gTypeParent(type) as bigint;\n}\n\n/** Returns the GTypes of the interfaces implemented by the given type. */\nfunction typeInterfaces(type: bigint): bigint[] {\n const nInterfacesRef = { value: 0 };\n\n return gTypeInterfaces(type, nInterfacesRef) as bigint[];\n}\n\n/** Returns the GType registered under the given name, or `TYPE_INVALID` if none exists. */\nfunction typeFromName(name: string): bigint {\n return gTypeFromName(name) as bigint;\n}\n\nfunction typeFundamental(type: bigint): bigint {\n return gTypeFundamental(type) as bigint;\n}\n\n/** Returns the registered name of a GType, or null if it has none. */\nfunction typeName(type: bigint): string | null {\n return (gTypeName(type) ?? null) as string | null;\n}\n\n/** Returns whether `value` is a typed wrapper whose GType is or descends from `gtype`. */\nfunction valueIsA(value: unknown, gtype: bigint): boolean {\n return isTypedClass(value) && typeIsA(value.__type__, gtype);\n}\n\n/**\n * Resolves the GType produced by a `get_type` function in a shared library, caching\n * the result per library and function name.\n * @param sharedLibrary Path or name of the shared library exporting the function.\n * @param typeFnName Name of the `*_get_type` function to call.\n */\nconst resolveType = (sharedLibrary: string, typeFnName: string): bigint => {\n const key = `${sharedLibrary}:${typeFnName}`;\n const cached = resolvedTypeCache.get(key);\n\n if (cached !== undefined) {\n return cached;\n }\n\n const gtype = nativeResolveType(sharedLibrary, typeFnName);\n resolvedTypeCache.set(key, gtype);\n\n return gtype;\n};\n\nconst resolveBoxedType = (descriptor: BoxedDescriptor): bigint => {\n if (descriptor.getTypeFnName && descriptor.sharedLibrary) {\n return resolveType(descriptor.sharedLibrary, descriptor.getTypeFnName);\n }\n\n const gtype = typeFromName(descriptor.typeName);\n\n if (gtype === TYPE_INVALID) {\n throw new Error(`Cannot resolve gtype for boxed type '${descriptor.typeName}'`);\n }\n\n return gtype;\n};\n\nconst resolveFundamentalType = (descriptor: FundamentalDescriptor): bigint => {\n if (descriptor.typeName) {\n const gtype = typeFromName(descriptor.typeName);\n\n if (gtype !== TYPE_INVALID) {\n return gtype;\n }\n }\n\n throw new Error(\"Cannot resolve gtype for fundamental type without a typeName\");\n};\n\nfunction resolveArrayType(descriptor: ArrayDescriptor): bigint {\n if (descriptor.itemDescriptor.kind === \"string\" && descriptor.arrayKind === \"array\") {\n return getStrvType();\n }\n\n throw new Error(`Unsupported array type ${descriptor.arrayKind} of ${descriptor.itemDescriptor.kind}`);\n}\n\nfunction isResolvableDescriptor(descriptor: Descriptor): descriptor is ResolvableDescriptor {\n return RESOLVABLE_DESCRIPTOR_KINDS.has(descriptor.kind);\n}\n\nfunction resolveDescriptorType(descriptor: Descriptor): bigint {\n if (descriptor.kind === \"biguint64\" && \"type\" in descriptor) {\n return TYPE_GTYPE;\n }\n\n const plain = PLAIN_DESCRIPTOR_TYPES[descriptor.kind];\n\n if (plain !== undefined) {\n return plain;\n }\n\n if (!isResolvableDescriptor(descriptor)) {\n throw new Error(`Unsupported type descriptor '${descriptor.kind}'`);\n }\n\n switch (descriptor.kind) {\n case \"enum\":\n case \"flags\": {\n return resolveType(descriptor.sharedLibrary, descriptor.getTypeFnName);\n }\n case \"boxed\": {\n return resolveBoxedType(descriptor);\n }\n case \"fundamental\": {\n return resolveFundamentalType(descriptor);\n }\n case \"array\": {\n return resolveArrayType(descriptor);\n }\n }\n}\n\nexport {\n TYPE_INVALID,\n TYPE_NONE,\n TYPE_INTERFACE,\n TYPE_CHAR,\n TYPE_UCHAR,\n TYPE_BOOLEAN,\n TYPE_INT,\n TYPE_UINT,\n TYPE_LONG,\n TYPE_ULONG,\n TYPE_INT64,\n TYPE_UINT64,\n TYPE_ENUM,\n TYPE_FLAGS,\n TYPE_FLOAT,\n TYPE_DOUBLE,\n TYPE_STRING,\n TYPE_POINTER,\n TYPE_BOXED,\n TYPE_PARAM,\n TYPE_OBJECT,\n TYPE_GTYPE,\n TYPE_VARIANT,\n TYPE_UNICHAR,\n getErrorType,\n getStrvType,\n isResolvableDescriptor,\n isTypedClass,\n typeIsA,\n typeParent,\n typeInterfaces,\n typeFromName,\n typeFundamental,\n typeName,\n valueIsA,\n resolveType,\n resolveBoxedType,\n resolveFundamentalType,\n resolveDescriptorType,\n type ResolvableDescriptor,\n type TypedClass,\n};\n"]}
package/dist/value.d.ts CHANGED
@@ -1,20 +1,29 @@
1
1
  import { type Descriptor, type ExternalObject, type Handle } from "@gtkx/native";
2
- export declare function getValueType(value: ExternalObject<Handle>): bigint;
3
- export declare function copyValue(dest: ExternalObject<Handle>, src: ExternalObject<Handle>): void;
2
+ declare function getValueType(value: ExternalObject<Handle>): bigint;
3
+ declare function copyValue(dest: ExternalObject<Handle>, src: ExternalObject<Handle>): void;
4
4
  /**
5
5
  * Reads the boxed pointer out of a GValue and returns it wrapped in its registered
6
6
  * class, or null when the value does not hold a boxed type.
7
7
  */
8
- export declare function getBoxedValue(value: ExternalObject<Handle>): object | null;
8
+ declare function getBoxedValue(value: ExternalObject<Handle>): object | null;
9
9
  /** Stores a boxed object, or null, into a GValue that holds a boxed type. */
10
- export declare function setBoxedValue(value: ExternalObject<Handle>, boxed: object | null): void;
11
- export declare function toValue(descriptor: Descriptor, value: unknown): ExternalObject<Handle>;
12
- export declare function fromValue(value: ExternalObject<Handle>): unknown;
13
- export declare function newValueForDescriptor(descriptor: Descriptor): ExternalObject<Handle>;
14
- export declare function outValueForDescriptor(descriptor: Descriptor, initial?: unknown): {
10
+ declare function setBoxedValue(value: ExternalObject<Handle>, boxed: object | null): void;
11
+ /**
12
+ * Stores a JavaScript value into an already-initialized GValue, converting it to
13
+ * whatever type the GValue holds.
14
+ *
15
+ * @param value The initialized GValue to write into.
16
+ * @param jsValue The JavaScript value to store.
17
+ */
18
+ declare function intoValue(value: ExternalObject<Handle>, jsValue: unknown): void;
19
+ declare function toValue(descriptor: Descriptor, value: unknown): ExternalObject<Handle>;
20
+ declare function fromValue(value: ExternalObject<Handle>): unknown;
21
+ declare function newValueForDescriptor(descriptor: Descriptor): ExternalObject<Handle>;
22
+ declare function outValueForDescriptor(descriptor: Descriptor, initial?: unknown): {
15
23
  value: ExternalObject<Handle>;
16
24
  read: () => unknown;
17
25
  };
18
- export declare function outValueForBoxedDescriptor(descriptor: Descriptor, boxed: object): ExternalObject<Handle>;
19
- export declare function inoutValueForBoxedDescriptor(descriptor: Descriptor, boxed: object): ExternalObject<Handle>;
26
+ declare function outValueForBoxedDescriptor(descriptor: Descriptor, boxed: object): ExternalObject<Handle>;
27
+ declare function inoutValueForBoxedDescriptor(descriptor: Descriptor, boxed: object): ExternalObject<Handle>;
28
+ export { getValueType, intoValue, copyValue, getBoxedValue, setBoxedValue, toValue, fromValue, newValueForDescriptor, outValueForDescriptor, outValueForBoxedDescriptor, inoutValueForBoxedDescriptor, };
20
29
  //# sourceMappingURL=value.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../src/value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,UAAU,EAAE,KAAK,cAAc,EAAW,KAAK,MAAM,EAAe,MAAM,cAAc,CAAC;AAsH9G,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,CAElE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAKzF;AAmBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAM1E;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAGvF;AA8FD,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAgBtF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAQhE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAEpF;AAED,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,OAAO,GAClB;IAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,CAAA;CAAE,CAOxD;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAExG;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAE1G"}
1
+ {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../src/value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,UAAU,EAAE,KAAK,cAAc,EAAW,KAAK,MAAM,EAAe,MAAM,cAAc,CAAC;AAmL9G,iBAAS,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,CAE3D;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAMlF;AAqBD;;;GAGG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAWnE;AAED,6EAA6E;AAC7E,iBAAS,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAGhF;AAgGD;;;;;;GAMG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CASxE;AAoBD,iBAAS,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAO/E;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAczD;AAED,iBAAS,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAE7E;AAED,iBAAS,qBAAqB,CAC1B,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,OAAO,GAClB;IAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,CAAA;CAAE,CAYxD;AAED,iBAAS,0BAA0B,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAEjG;AAED,iBAAS,4BAA4B,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAEnG;AAED,OAAO,EACH,YAAY,EACZ,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC/B,CAAC"}