gnim 1.6.3 → 1.6.5
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/dist/dbus.ts +1 -1
- package/dist/gnim.gresource +0 -0
- package/dist/gtk4/jsx-runtime.ts +11 -0
- package/dist/jsx/jsx.ts +5 -10
- package/dist/jsx/state.ts +2 -4
- package/dist/variant.ts +348 -0
- package/package.json +78 -74
package/dist/dbus.ts
CHANGED
|
@@ -8,6 +8,7 @@ import Gio from "gi://Gio"
|
|
|
8
8
|
import GLib from "gi://GLib"
|
|
9
9
|
import GObject from "gi://GObject"
|
|
10
10
|
import { definePropertyGetter, kebabify, xml } from "./util.js"
|
|
11
|
+
import type { DeepInfer } from "./variant.js"
|
|
11
12
|
import {
|
|
12
13
|
register,
|
|
13
14
|
property as gproperty,
|
|
@@ -27,7 +28,6 @@ const remoteMethod = Symbol("proxy remoteMethod")
|
|
|
27
28
|
const remoteMethodAsync = Symbol("proxy remoteMethodAsync")
|
|
28
29
|
const remotePropertySet = Symbol("proxy remotePropertySet")
|
|
29
30
|
|
|
30
|
-
type DeepInfer<S extends string> = ReturnType<GLib.Variant<S>["deepUnpack"]>
|
|
31
31
|
type Ctx = { private: false; static: false; name: string }
|
|
32
32
|
|
|
33
33
|
/**
|
package/dist/gnim.gresource
CHANGED
|
Binary file
|
package/dist/gtk4/jsx-runtime.ts
CHANGED
|
@@ -3,6 +3,9 @@ import Gio from "gi://Gio?version=2.0"
|
|
|
3
3
|
import { configue } from "../jsx/env.js"
|
|
4
4
|
import { getType, onCleanup, Accessor, Fragment } from "../index.js"
|
|
5
5
|
|
|
6
|
+
import type Adw from "gi://Adw"
|
|
7
|
+
const adw = await import("gi://Adw").then((m) => m.default).catch(() => null)
|
|
8
|
+
|
|
6
9
|
const dummyBuilder = new Gtk.Builder()
|
|
7
10
|
|
|
8
11
|
const { intrinsicElements } = configue({
|
|
@@ -14,6 +17,14 @@ const { intrinsicElements } = configue({
|
|
|
14
17
|
]
|
|
15
18
|
return keys
|
|
16
19
|
}
|
|
20
|
+
if (adw && ctor === adw.ToggleGroup) {
|
|
21
|
+
const keys: Array<Extract<keyof Adw.ToggleGroup, string>> = [
|
|
22
|
+
"active",
|
|
23
|
+
"activeName",
|
|
24
|
+
"active_name",
|
|
25
|
+
]
|
|
26
|
+
return keys
|
|
27
|
+
}
|
|
17
28
|
},
|
|
18
29
|
setCss(object, css) {
|
|
19
30
|
if (!(object instanceof Gtk.Widget)) {
|
package/dist/jsx/jsx.ts
CHANGED
|
@@ -167,11 +167,6 @@ export function append(parent: GObject.Object, child: GObject.Object) {
|
|
|
167
167
|
return
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
if (appendChild in parent && typeof parent[appendChild] === "function") {
|
|
171
|
-
parent[appendChild](child, getType(child))
|
|
172
|
-
return
|
|
173
|
-
}
|
|
174
|
-
|
|
175
170
|
if (child instanceof Fragment) {
|
|
176
171
|
for (const ch of child) {
|
|
177
172
|
append(parent, ch)
|
|
@@ -199,12 +194,12 @@ export function append(parent: GObject.Object, child: GObject.Object) {
|
|
|
199
194
|
return
|
|
200
195
|
}
|
|
201
196
|
|
|
202
|
-
if (
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
env.appendChild(parent, child)
|
|
197
|
+
if (appendChild in parent && typeof parent[appendChild] === "function") {
|
|
198
|
+
parent[appendChild](child, getType(child))
|
|
199
|
+
return
|
|
207
200
|
}
|
|
201
|
+
|
|
202
|
+
env.appendChild(parent, child)
|
|
208
203
|
}
|
|
209
204
|
|
|
210
205
|
/** @internal */
|
package/dist/jsx/state.ts
CHANGED
|
@@ -2,14 +2,12 @@ import GObject from "gi://GObject"
|
|
|
2
2
|
import Gio from "gi://Gio"
|
|
3
3
|
import GLib from "gi://GLib"
|
|
4
4
|
import { type Pascalify, camelify, kebabify } from "../util.js"
|
|
5
|
+
import type { DeepInfer, RecursiveInfer } from "../variant.js"
|
|
5
6
|
|
|
6
7
|
type SubscribeCallback = () => void
|
|
7
8
|
type DisposeFunction = () => void
|
|
8
9
|
type SubscribeFunction = (callback: SubscribeCallback) => DisposeFunction
|
|
9
10
|
|
|
10
|
-
type DeepInfer<S extends string> = ReturnType<GLib.Variant<S>["deepUnpack"]>
|
|
11
|
-
type RecursiveInfer<S extends string> = ReturnType<GLib.Variant<S>["recursiveUnpack"]>
|
|
12
|
-
|
|
13
11
|
export type Accessed<T> = T extends Accessor<infer V> ? V : never
|
|
14
12
|
|
|
15
13
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
|
@@ -110,7 +108,7 @@ const empty = Symbol("empty computed value")
|
|
|
110
108
|
|
|
111
109
|
function createComputedProducer<T>(fn: (track: <V>(signal: Accessor<V>) => V) => T): Accessor<T> {
|
|
112
110
|
const subscribers = new Set<SubscribeCallback>()
|
|
113
|
-
let value: typeof empty | T
|
|
111
|
+
let value: typeof empty | T = empty
|
|
114
112
|
let prevDeps = new Map<Accessor, DisposeFunction>()
|
|
115
113
|
|
|
116
114
|
const effect = () => {
|
package/dist/variant.ts
ADDED
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
// See: https://github.com/gjsify/ts-for-gir/issues/286
|
|
2
|
+
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
5
|
+
import type GLib from "gi://GLib"
|
|
6
|
+
|
|
7
|
+
type Variant<S extends string = any> = GLib.Variant<S>
|
|
8
|
+
|
|
9
|
+
// prettier-ignore
|
|
10
|
+
type CreateIndexType<Key extends string, Value> =
|
|
11
|
+
Key extends `s` | `o` | `g` ? { [key: string]: Value } :
|
|
12
|
+
Key extends `n` | `q` | `t` | `d` | `u` | `i` | `x` | `y` ? { [key: number]: Value } : never;
|
|
13
|
+
|
|
14
|
+
type VariantTypeError<T extends string> = { error: true } & T
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Handles the {kv} of a{kv} where k is a basic type and v is any possible variant type string.
|
|
18
|
+
*/
|
|
19
|
+
// prettier-ignore
|
|
20
|
+
type $ParseDeepVariantDict<State extends string, Memo extends Record<string, any> = {}> =
|
|
21
|
+
string extends State
|
|
22
|
+
? VariantTypeError<"$ParseDeepVariantDict: 'string' is not a supported type.">
|
|
23
|
+
// Hitting the first '}' indicates the dictionary type is complete
|
|
24
|
+
: State extends `}${infer State}`
|
|
25
|
+
? [Memo, State]
|
|
26
|
+
// This separates the key (basic type) from the rest of the remaining expression.
|
|
27
|
+
: State extends `${infer Key}${''}${infer State}`
|
|
28
|
+
? $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
|
|
29
|
+
? State extends `}${infer State}`
|
|
30
|
+
? [CreateIndexType<Key, Value>, State]
|
|
31
|
+
: VariantTypeError<`$ParseDeepVariantDict encountered an invalid variant string: ${State} (1)`>
|
|
32
|
+
: VariantTypeError<`$ParseDeepVariantValue returned unexpected value for: ${State}`>
|
|
33
|
+
: VariantTypeError<`$ParseDeepVariantDict encountered an invalid variant string: ${State} (2)`>;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Handles parsing values within a tuple (e.g. (vvv)) where v is any possible variant type string.
|
|
37
|
+
*/
|
|
38
|
+
// prettier-ignore
|
|
39
|
+
type $ParseDeepVariantArray<State extends string, Memo extends any[] = []> =
|
|
40
|
+
string extends State
|
|
41
|
+
? VariantTypeError<"$ParseDeepVariantArray: 'string' is not a supported type.">
|
|
42
|
+
: State extends `)${infer State}`
|
|
43
|
+
? [Memo, State]
|
|
44
|
+
: $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
|
|
45
|
+
? State extends `${infer _NextValue})${infer _NextState}`
|
|
46
|
+
? $ParseDeepVariantArray<State, [...Memo, Value]>
|
|
47
|
+
: State extends `)${infer State}`
|
|
48
|
+
? [[...Memo, Value], State]
|
|
49
|
+
: VariantTypeError<`1: $ParseDeepVariantArray encountered an invalid variant string: ${State}`>
|
|
50
|
+
: VariantTypeError<`2: $ParseDeepVariantValue returned unexpected value for: ${State}`>;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Handles parsing {kv} without an 'a' prefix (key-value pair) where k is a basic type
|
|
54
|
+
* and v is any possible variant type string.
|
|
55
|
+
*/
|
|
56
|
+
// prettier-ignore
|
|
57
|
+
type $ParseDeepVariantKeyValue<State extends string, Memo extends any[] = []> =
|
|
58
|
+
string extends State
|
|
59
|
+
? VariantTypeError<"$ParseDeepVariantKeyValue: 'string' is not a supported type.">
|
|
60
|
+
: State extends `}${infer State}`
|
|
61
|
+
? [Memo, State]
|
|
62
|
+
: State extends `${infer Key}${''}${infer State}`
|
|
63
|
+
? $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
|
|
64
|
+
? State extends `}${infer State}`
|
|
65
|
+
? [[...Memo, $ParseVariant<Key>, Value], State]
|
|
66
|
+
: VariantTypeError<`$ParseDeepVariantKeyValue encountered an invalid variant string: ${State} (1)`>
|
|
67
|
+
: VariantTypeError<`$ParseDeepVariantKeyValue returned unexpected value for: ${State}`>
|
|
68
|
+
: VariantTypeError<`$ParseDeepVariantKeyValue encountered an invalid variant string: ${State} (2)`>;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Handles parsing any variant 'value' or base unit.
|
|
72
|
+
*
|
|
73
|
+
* - ay - Array of bytes (Uint8Array)
|
|
74
|
+
* - a* - Array of type *
|
|
75
|
+
* - a{k*} - Dictionary
|
|
76
|
+
* - {k*} - KeyValue
|
|
77
|
+
* - (**) - tuple
|
|
78
|
+
* - s | o | g - string types
|
|
79
|
+
* - n | q | t | d | u | i | x | y - number types
|
|
80
|
+
* - b - boolean type
|
|
81
|
+
* - v - unknown Variant type
|
|
82
|
+
* - h | ? - unknown types
|
|
83
|
+
*/
|
|
84
|
+
// prettier-ignore
|
|
85
|
+
type $ParseDeepVariantValue<State extends string> =
|
|
86
|
+
string extends State
|
|
87
|
+
? unknown
|
|
88
|
+
: State extends `${`s` | `o` | `g`}${infer State}`
|
|
89
|
+
? [string, State]
|
|
90
|
+
: State extends `${`n` | `q` | `t` | `d` | `u` | `i` | `x` | `y`}${infer State}`
|
|
91
|
+
? [number, State]
|
|
92
|
+
: State extends `b${infer State}`
|
|
93
|
+
? [boolean, State]
|
|
94
|
+
: State extends `v${infer State}`
|
|
95
|
+
? [Variant, State]
|
|
96
|
+
: State extends `${'h' | '?'}${infer State}`
|
|
97
|
+
? [unknown, State]
|
|
98
|
+
: State extends `(${infer State}`
|
|
99
|
+
? $ParseDeepVariantArray<State>
|
|
100
|
+
: State extends `a{${infer State}`
|
|
101
|
+
? $ParseDeepVariantDict<State>
|
|
102
|
+
: State extends `{${infer State}`
|
|
103
|
+
? $ParseDeepVariantKeyValue<State>
|
|
104
|
+
: State extends `ay${infer State}` ?
|
|
105
|
+
[Uint8Array, State]
|
|
106
|
+
: State extends `m${infer State}`
|
|
107
|
+
? $ParseDeepVariantValue<State> extends [infer Value, `${infer State}`]
|
|
108
|
+
? [Value | null, State]
|
|
109
|
+
: VariantTypeError<`$ParseDeepVariantValue encountered an invalid variant string: ${State} (3)`>
|
|
110
|
+
: State extends `a${infer State}` ?
|
|
111
|
+
$ParseDeepVariantValue<State> extends [infer Value, `${infer State}`] ?
|
|
112
|
+
[Value[], State]
|
|
113
|
+
: VariantTypeError<`$ParseDeepVariantValue encountered an invalid variant string: ${State} (1)`>
|
|
114
|
+
: VariantTypeError<`$ParseDeepVariantValue encountered an invalid variant string: ${State} (2)`>;
|
|
115
|
+
|
|
116
|
+
// prettier-ignore
|
|
117
|
+
type $ParseDeepVariant<T extends string> =
|
|
118
|
+
$ParseDeepVariantValue<T> extends infer Result
|
|
119
|
+
? Result extends [infer Value, string]
|
|
120
|
+
? Value
|
|
121
|
+
: Result extends VariantTypeError<any>
|
|
122
|
+
? Result
|
|
123
|
+
: VariantTypeError<"$ParseDeepVariantValue returned unexpected Result">
|
|
124
|
+
: VariantTypeError<"$ParseDeepVariantValue returned uninferrable Result">;
|
|
125
|
+
|
|
126
|
+
// prettier-ignore
|
|
127
|
+
type $ParseRecursiveVariantDict<State extends string, Memo extends Record<string, any> = {}> =
|
|
128
|
+
string extends State
|
|
129
|
+
? VariantTypeError<"$ParseRecursiveVariantDict: 'string' is not a supported type.">
|
|
130
|
+
: State extends `}${infer State}`
|
|
131
|
+
? [Memo, State]
|
|
132
|
+
: State extends `${infer Key}${''}${infer State}`
|
|
133
|
+
? $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
|
|
134
|
+
? State extends `}${infer State}`
|
|
135
|
+
? [CreateIndexType<Key, Value>, State]
|
|
136
|
+
: VariantTypeError<`$ParseRecursiveVariantDict encountered an invalid variant string: ${State} (1)`>
|
|
137
|
+
: VariantTypeError<`$ParseRecursiveVariantValue returned unexpected value for: ${State}`>
|
|
138
|
+
: VariantTypeError<`$ParseRecursiveVariantDict encountered an invalid variant string: ${State} (2)`>;
|
|
139
|
+
|
|
140
|
+
// prettier-ignore
|
|
141
|
+
type $ParseRecursiveVariantArray<State extends string, Memo extends any[] = []> =
|
|
142
|
+
string extends State
|
|
143
|
+
? VariantTypeError<"$ParseRecursiveVariantArray: 'string' is not a supported type.">
|
|
144
|
+
: State extends `)${infer State}`
|
|
145
|
+
? [Memo, State]
|
|
146
|
+
: $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
|
|
147
|
+
? State extends `${infer _NextValue})${infer _NextState}`
|
|
148
|
+
? $ParseRecursiveVariantArray<State, [...Memo, Value]>
|
|
149
|
+
: State extends `)${infer State}`
|
|
150
|
+
? [[...Memo, Value], State]
|
|
151
|
+
: VariantTypeError<`$ParseRecursiveVariantArray encountered an invalid variant string: ${State} (1)`>
|
|
152
|
+
: VariantTypeError<`$ParseRecursiveVariantValue returned unexpected value for: ${State} (2)`>;
|
|
153
|
+
|
|
154
|
+
// prettier-ignore
|
|
155
|
+
type $ParseRecursiveVariantKeyValue<State extends string, Memo extends any[] = []> =
|
|
156
|
+
string extends State
|
|
157
|
+
? VariantTypeError<"$ParseRecursiveVariantKeyValue: 'string' is not a supported type.">
|
|
158
|
+
: State extends `}${infer State}`
|
|
159
|
+
? [Memo, State]
|
|
160
|
+
: State extends `${infer Key}${''}${infer State}`
|
|
161
|
+
? $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
|
|
162
|
+
? State extends `}${infer State}`
|
|
163
|
+
? [[...Memo, Key, Value], State]
|
|
164
|
+
: VariantTypeError<`$ParseRecursiveVariantKeyValue encountered an invalid variant string: ${State} (1)`>
|
|
165
|
+
: VariantTypeError<`$ParseRecursiveVariantKeyValue returned unexpected value for: ${State}`>
|
|
166
|
+
: VariantTypeError<`$ParseRecursiveVariantKeyValue encountered an invalid variant string: ${State} (2)`>;
|
|
167
|
+
|
|
168
|
+
// prettier-ignore
|
|
169
|
+
type $ParseRecursiveVariantValue<State extends string> =
|
|
170
|
+
string extends State
|
|
171
|
+
? unknown
|
|
172
|
+
: State extends `${`s` | `o` | `g`}${infer State}`
|
|
173
|
+
? [string, State]
|
|
174
|
+
: State extends `${`n` | `q` | `t` | `d` | `u` | `i` | `x` | `y`}${infer State}`
|
|
175
|
+
? [number, State]
|
|
176
|
+
: State extends `b${infer State}`
|
|
177
|
+
? [boolean, State]
|
|
178
|
+
: State extends `v${infer State}`
|
|
179
|
+
? [unknown, State]
|
|
180
|
+
: State extends `${'h' | '?'}${infer State}`
|
|
181
|
+
? [unknown, State]
|
|
182
|
+
: State extends `(${infer State}`
|
|
183
|
+
? $ParseRecursiveVariantArray<State>
|
|
184
|
+
: State extends `a{${infer State}`
|
|
185
|
+
? $ParseRecursiveVariantDict<State>
|
|
186
|
+
: State extends `{${infer State}`
|
|
187
|
+
? $ParseRecursiveVariantKeyValue<State>
|
|
188
|
+
: State extends `ay${infer State}` ?
|
|
189
|
+
[Uint8Array, State]
|
|
190
|
+
: State extends `m${infer State}`
|
|
191
|
+
? $ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`]
|
|
192
|
+
? [Value | null, State]
|
|
193
|
+
: VariantTypeError<`$ParseRecursiveVariantValue encountered an invalid variant string: ${State} (3)`>
|
|
194
|
+
: State extends `a${infer State}` ?
|
|
195
|
+
$ParseRecursiveVariantValue<State> extends [infer Value, `${infer State}`] ?
|
|
196
|
+
[Value[], State]
|
|
197
|
+
: VariantTypeError<`$ParseRecursiveVariantValue encountered an invalid variant string: ${State} (1)`>
|
|
198
|
+
: VariantTypeError<`$ParseRecursiveVariantValue encountered an invalid variant string: ${State} (2)`>;
|
|
199
|
+
|
|
200
|
+
// prettier-ignore
|
|
201
|
+
type $ParseRecursiveVariant<T extends string> =
|
|
202
|
+
$ParseRecursiveVariantValue<T> extends infer Result
|
|
203
|
+
? Result extends [infer Value, string]
|
|
204
|
+
? Value
|
|
205
|
+
: Result extends VariantTypeError<any>
|
|
206
|
+
? Result
|
|
207
|
+
: never
|
|
208
|
+
: never;
|
|
209
|
+
|
|
210
|
+
// prettier-ignore
|
|
211
|
+
type $ParseVariantDict<State extends string, Memo extends Record<string, any> = {}> =
|
|
212
|
+
string extends State
|
|
213
|
+
? VariantTypeError<"$ParseVariantDict: 'string' is not a supported type.">
|
|
214
|
+
: State extends `}${infer State}`
|
|
215
|
+
? [Memo, State]
|
|
216
|
+
: State extends `${infer Key}${''}${infer State}`
|
|
217
|
+
? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
|
|
218
|
+
? State extends `}${infer State}`
|
|
219
|
+
? [CreateIndexType<Key, Variant<Value extends string ? Value : any>>, State]
|
|
220
|
+
: VariantTypeError<`$ParseVariantDict encountered an invalid variant string: ${State} (1)`>
|
|
221
|
+
: VariantTypeError<`$ParseVariantValue returned unexpected value for: ${State}`>
|
|
222
|
+
: VariantTypeError<`$ParseVariantDict encountered an invalid variant string: ${State} (2)`>;
|
|
223
|
+
|
|
224
|
+
// prettier-ignore
|
|
225
|
+
type $ParseVariantArray<State extends string, Memo extends any[] = []> =
|
|
226
|
+
string extends State
|
|
227
|
+
? VariantTypeError<"$ParseVariantArray: 'string' is not a supported type.">
|
|
228
|
+
: State extends `)${infer State}`
|
|
229
|
+
? [Memo, State]
|
|
230
|
+
: $ParseVariantValue<State> extends [infer Value, `${infer State}`]
|
|
231
|
+
? State extends `${infer _NextValue})${infer _NextState}`
|
|
232
|
+
? $ParseVariantArray<State, [...Memo, Variant<Value extends string ? Value : any>]>
|
|
233
|
+
: State extends `)${infer State}`
|
|
234
|
+
? [[...Memo, Variant<Value extends string ? Value : any>], State]
|
|
235
|
+
: VariantTypeError<`$ParseVariantArray encountered an invalid variant string: ${State} (1)`>
|
|
236
|
+
: VariantTypeError<`$ParseVariantValue returned unexpected value for: ${State} (2)`>;
|
|
237
|
+
|
|
238
|
+
// prettier-ignore
|
|
239
|
+
type $ParseVariantKeyValue<State extends string, Memo extends any[] = []> =
|
|
240
|
+
string extends State
|
|
241
|
+
? VariantTypeError<"$ParseVariantKeyValue: 'string' is not a supported type.">
|
|
242
|
+
: State extends `}${infer State}`
|
|
243
|
+
? [Memo, State]
|
|
244
|
+
: State extends `${infer Key}${''}${infer State}`
|
|
245
|
+
? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
|
|
246
|
+
? State extends `}${infer State}`
|
|
247
|
+
? [[...Memo, Variant<Key>, Variant<Value extends string ? Value: any>], State]
|
|
248
|
+
: VariantTypeError<`$ParseVariantKeyValue encountered an invalid variant string: ${State} (1)`>
|
|
249
|
+
: VariantTypeError<`$ParseVariantKeyValue returned unexpected value for: ${State}`>
|
|
250
|
+
: VariantTypeError<`$ParseVariantKeyValue encountered an invalid variant string: ${State} (2)`>;
|
|
251
|
+
|
|
252
|
+
// prettier-ignore
|
|
253
|
+
type $ParseShallowRootVariantValue<State extends string> =
|
|
254
|
+
string extends State
|
|
255
|
+
? unknown
|
|
256
|
+
: State extends `${`s` | `o` | `g`}${infer State}`
|
|
257
|
+
? [string, State]
|
|
258
|
+
: State extends `${`n` | `q` | `t` | `d` | `u` | `i` | `x` | `y`}${infer State}`
|
|
259
|
+
? [number, State]
|
|
260
|
+
: State extends `b${infer State}`
|
|
261
|
+
? [boolean, State]
|
|
262
|
+
: State extends `v${infer State}`
|
|
263
|
+
? [Variant, State]
|
|
264
|
+
: State extends `h${infer State}`
|
|
265
|
+
? [unknown, State]
|
|
266
|
+
: State extends `?${infer State}`
|
|
267
|
+
? [unknown, State]
|
|
268
|
+
: State extends `(${infer State}`
|
|
269
|
+
? $ParseVariantArray<State>
|
|
270
|
+
: State extends `a{${infer State}`
|
|
271
|
+
? $ParseVariantDict<State>
|
|
272
|
+
: State extends `{${infer State}`
|
|
273
|
+
? $ParseVariantKeyValue<State>
|
|
274
|
+
: State extends `ay${infer State}` ?
|
|
275
|
+
[Uint8Array, State]
|
|
276
|
+
: State extends `m${infer State}`
|
|
277
|
+
? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
|
|
278
|
+
? [Value | null, State]
|
|
279
|
+
: VariantTypeError<`$ParseShallowRootVariantValue encountered an invalid variant string: ${State} (2)`>
|
|
280
|
+
: State extends `a${infer State}` ?
|
|
281
|
+
[Variant<State>[], State]
|
|
282
|
+
: VariantTypeError<`$ParseShallowRootVariantValue encountered an invalid variant string: ${State} (1)`>;
|
|
283
|
+
|
|
284
|
+
// prettier-ignore
|
|
285
|
+
type $ParseVariantValue<State extends string> =
|
|
286
|
+
string extends State
|
|
287
|
+
? unknown
|
|
288
|
+
: State extends `s${infer State}`
|
|
289
|
+
? ['s', State]
|
|
290
|
+
: State extends `o${infer State}`
|
|
291
|
+
? ['o', State]
|
|
292
|
+
: State extends `g${infer State}`
|
|
293
|
+
? ['g', State]
|
|
294
|
+
: State extends `n${infer State}`
|
|
295
|
+
? ["n", State]
|
|
296
|
+
: State extends `q${infer State}`
|
|
297
|
+
? ["q", State]
|
|
298
|
+
: State extends `t${infer State}`
|
|
299
|
+
? ["t", State]
|
|
300
|
+
: State extends `d${infer State}`
|
|
301
|
+
? ["d", State]
|
|
302
|
+
: State extends `u${infer State}`
|
|
303
|
+
? ["u", State]
|
|
304
|
+
: State extends `i${infer State}`
|
|
305
|
+
? ["i", State]
|
|
306
|
+
: State extends `x${infer State}`
|
|
307
|
+
? ["x", State]
|
|
308
|
+
: State extends `y${infer State}`
|
|
309
|
+
? ["y", State]
|
|
310
|
+
: State extends `b${infer State}`
|
|
311
|
+
? ['b', State]
|
|
312
|
+
: State extends `v${infer State}`
|
|
313
|
+
? ['v', State]
|
|
314
|
+
: State extends `h${infer State}`
|
|
315
|
+
? ['h', State]
|
|
316
|
+
: State extends `?${infer State}`
|
|
317
|
+
? ['?', State]
|
|
318
|
+
: State extends `(${infer State}`
|
|
319
|
+
? $ParseVariantArray<State>
|
|
320
|
+
: State extends `a{${infer State}`
|
|
321
|
+
? $ParseVariantDict<State>
|
|
322
|
+
: State extends `{${infer State}`
|
|
323
|
+
? $ParseVariantKeyValue<State>
|
|
324
|
+
: State extends `ay${infer State}` ?
|
|
325
|
+
[Uint8Array, State]
|
|
326
|
+
: State extends `m${infer State}`
|
|
327
|
+
? $ParseVariantValue<State> extends [infer Value, `${infer State}`]
|
|
328
|
+
? [Value | null, State]
|
|
329
|
+
: VariantTypeError<`$ParseVariantValue encountered an invalid variant string: ${State} (3)`>
|
|
330
|
+
: State extends `a${infer State}` ?
|
|
331
|
+
$ParseVariantValue<State> extends [infer Value, `${infer State}`] ?
|
|
332
|
+
[Value[], State]
|
|
333
|
+
: VariantTypeError<`$ParseVariantValue encountered an invalid variant string: ${State} (1)`>
|
|
334
|
+
: VariantTypeError<`$ParseVariantValue encountered an invalid variant string: ${State} (2)`>;
|
|
335
|
+
|
|
336
|
+
// prettier-ignore
|
|
337
|
+
type $ParseVariant<T extends string> =
|
|
338
|
+
$ParseShallowRootVariantValue<T> extends infer Result
|
|
339
|
+
? Result extends [infer Value, string]
|
|
340
|
+
? Value
|
|
341
|
+
: Result extends VariantTypeError<any>
|
|
342
|
+
? Result
|
|
343
|
+
: never
|
|
344
|
+
: never;
|
|
345
|
+
|
|
346
|
+
export type Infer<S extends string> = $ParseVariant<S>
|
|
347
|
+
export type DeepInfer<S extends string> = $ParseDeepVariant<S>
|
|
348
|
+
export type RecursiveInfer<S extends string> = $ParseRecursiveVariant<S>
|
package/package.json
CHANGED
|
@@ -1,75 +1,79 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
2
|
+
"name": "gnim",
|
|
3
|
+
"version": "1.6.5",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"author": "Aylur",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/Aylur/gnim.git"
|
|
10
|
+
},
|
|
11
|
+
"funding": {
|
|
12
|
+
"type": "kofi",
|
|
13
|
+
"url": "https://ko-fi.com/aylur"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@eslint/js": "latest",
|
|
17
|
+
"@girs/adw-1": "latest",
|
|
18
|
+
"@girs/clutter-16": "latest",
|
|
19
|
+
"@girs/gtk-3.0": "latest",
|
|
20
|
+
"@girs/gtk-4.0": "latest",
|
|
21
|
+
"@girs/soup-3.0": "latest",
|
|
22
|
+
"@girs/shell-16": "latest",
|
|
23
|
+
"@girs/st-16": "latest",
|
|
24
|
+
"@girs/gnome-shell": "latest",
|
|
25
|
+
"@girs/gjs": "latest",
|
|
26
|
+
"esbuild": "latest",
|
|
27
|
+
"eslint": "latest",
|
|
28
|
+
"typescript": "latest",
|
|
29
|
+
"typescript-eslint": "latest",
|
|
30
|
+
"vitepress": "latest"
|
|
31
|
+
},
|
|
32
|
+
"exports": {
|
|
33
|
+
".": "./dist/index.ts",
|
|
34
|
+
"./dbus": "./dist/dbus.ts",
|
|
35
|
+
"./fetch": "./dist/fetch.ts",
|
|
36
|
+
"./gobject": "./dist/gobject.ts",
|
|
37
|
+
"./resource": "./dist/resource/resource.ts",
|
|
38
|
+
"./gnome/jsx-runtime": "./dist/gnome/jsx-runtime.ts",
|
|
39
|
+
"./gtk3/jsx-runtime": "./dist/gtk3/jsx-runtime.ts",
|
|
40
|
+
"./gtk4/jsx-runtime": "./dist/gtk4/jsx-runtime.ts"
|
|
41
|
+
},
|
|
42
|
+
"files": [
|
|
43
|
+
"dist"
|
|
44
|
+
],
|
|
45
|
+
"engines": {
|
|
46
|
+
"gjs": ">=1.79.0"
|
|
47
|
+
},
|
|
48
|
+
"keywords": [
|
|
49
|
+
"GJS",
|
|
50
|
+
"Gnome",
|
|
51
|
+
"GTK",
|
|
52
|
+
"JSX"
|
|
53
|
+
],
|
|
54
|
+
"prettier": {
|
|
55
|
+
"semi": false,
|
|
56
|
+
"tabWidth": 4,
|
|
57
|
+
"quoteProps": "consistent",
|
|
58
|
+
"trailingComma": "all",
|
|
59
|
+
"printWidth": 100,
|
|
60
|
+
"experimentalTernaries": false,
|
|
61
|
+
"overrides": [
|
|
62
|
+
{
|
|
63
|
+
"files": "**/*.md",
|
|
64
|
+
"options": {
|
|
65
|
+
"tabWidth": 2,
|
|
66
|
+
"printWidth": 80,
|
|
67
|
+
"proseWrap": "always"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"scripts": {
|
|
73
|
+
"build": "./scripts/build.sh",
|
|
74
|
+
"lint": "eslint . --fix",
|
|
75
|
+
"docs:dev": "vitepress dev docs",
|
|
76
|
+
"docs:build": "vitepress build docs",
|
|
77
|
+
"docs:preview": "vitepress preview docs"
|
|
78
|
+
}
|
|
79
|
+
}
|