skir 1.0.1 → 1.0.4
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 +29 -409
- package/dist/command_line_parser.d.ts +3 -0
- package/dist/command_line_parser.d.ts.map +1 -1
- package/dist/command_line_parser.js +3 -0
- package/dist/command_line_parser.js.map +1 -1
- package/dist/compatibility_checker.d.ts.map +1 -1
- package/dist/compatibility_checker.js +17 -31
- package/dist/compatibility_checker.js.map +1 -1
- package/dist/compatibility_checker.test.js +67 -7
- package/dist/compatibility_checker.test.js.map +1 -1
- package/dist/compiler.js +6 -0
- package/dist/compiler.js.map +1 -1
- package/dist/config_parser.d.ts +1 -1
- package/dist/config_parser.js +1 -0
- package/dist/config_parser.js.map +1 -1
- package/dist/definition_finder.test.js +8 -8
- package/dist/definition_finder.test.js.map +1 -1
- package/dist/formatter.test.js +4 -4
- package/dist/formatter.test.js.map +1 -1
- package/dist/literals.js +2 -2
- package/dist/literals.test.js +9 -9
- package/dist/module_set.js +2 -2
- package/dist/module_set.test.js +9 -10
- package/dist/module_set.test.js.map +1 -1
- package/dist/parser.js +8 -15
- package/dist/parser.js.map +1 -1
- package/dist/parser.test.js +9 -13
- package/dist/parser.test.js.map +1 -1
- package/package.json +2 -2
- package/src/command_line_parser.ts +8 -0
- package/src/compatibility_checker.ts +16 -36
- package/src/compiler.ts +9 -0
- package/src/config_parser.ts +9 -7
- package/src/literals.ts +2 -2
- package/src/module_set.ts +2 -2
- package/src/parser.ts +9 -15
package/README.md
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
*Like Protocol Buffer, but better.*
|
|
7
7
|
|
|
8
|
-
Skir is a language for representing data types, constants and RPC interfaces.
|
|
8
|
+
Skir is a universal language for representing data types, constants and RPC interfaces.
|
|
9
9
|
|
|
10
|
-
```
|
|
10
|
+
```d
|
|
11
11
|
// shapes.skir
|
|
12
12
|
|
|
13
13
|
struct Point {
|
|
@@ -16,8 +16,9 @@ struct Point {
|
|
|
16
16
|
label: string;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
struct
|
|
19
|
+
struct Shape {
|
|
20
20
|
points: [Point];
|
|
21
|
+
/// A short string describing this shape.
|
|
21
22
|
label: string;
|
|
22
23
|
}
|
|
23
24
|
|
|
@@ -27,421 +28,40 @@ const TOP_RIGHT_CORNER: Point = {
|
|
|
27
28
|
label = "top-right corner",
|
|
28
29
|
};
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
method
|
|
31
|
+
/// Returns true if no part of the shape's boundary curves inward.
|
|
32
|
+
method IsConvex(Shape): bool = 12345;
|
|
32
33
|
```
|
|
33
34
|
|
|
34
|
-
The Skir compiler
|
|
35
|
+
The Skir compiler translates definitions from `.skir` files into idiomatic source code in supported languages such as TypeScript, Python, Java, Kotlin, C++, Dart. This generated code provides typesafe definitions and built-in logic for serializing and deserializing data into either JSON or a more compact binary format.
|
|
35
36
|
|
|
36
37
|
```python
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
point = shapes.Point(x=3, y=4, label="P")
|
|
40
|
-
json = shapes.Point.SERIALIZER.to_json(point)
|
|
41
|
-
point = shapes.Point.SERIALIZER.from_json(json)
|
|
42
|
-
assert(point == shapes.Point(x=3, y=4, label="P"))
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
As of November 2025, Skir has official plugins for:
|
|
46
|
-
|
|
47
|
-
* JavaScript/TypeScript: [plugin](https://github.com/gepheum/skir-typescript-gen), [example](https://github.com/gepheum/skir-typescript-example)
|
|
48
|
-
* Python: [plugin](https://github.com/gepheum/skir-python-gen), [example](https://github.com/gepheum/skir-python-example)
|
|
49
|
-
* C++: [plugin](https://github.com/gepheum/skir-cc-gen), [example](https://github.com/gepheum/skir-cc-example)
|
|
50
|
-
* Java: [plugin](https://github.com/gepheum/skir-java-gen), [example](https://github.com/gepheum/skir-java-example)
|
|
51
|
-
* Kotlin: [plugin](https://github.com/gepheum/skir-kotlin-gen), [example](https://github.com/gepheum/skir-kotlin-example)
|
|
52
|
-
* Dart: [plugin](https://github.com/gepheum/skir-dart-gen), [example](https://github.com/gepheum/skir-dart-example)
|
|
53
|
-
|
|
54
|
-
Other official and unofficial plugins will come.
|
|
55
|
-
|
|
56
|
-
## Why Skir
|
|
57
|
-
|
|
58
|
-
* Generates code in different languages. This makes Skir ideal for systems where different services are written in different languages but need to exchange structured data.
|
|
59
|
-
* Supports serialization to JSON or binary format.
|
|
60
|
-
* Serialize now, deserialize in 100 years. Skir is designed with backward and forward compatibility in mind. You can evolve your data schemas by adding new fields or renaming fields. You will still be able to deserialize old values, and you won't break existing applications that use older versions of the schema.
|
|
61
|
-
* Generates code that makes no compromise with type safety.
|
|
62
|
-
* Allows you to define typesafe interfaces between your services or your backend and your frontend.
|
|
63
|
-
* No boilerplate code when you adding a new method to a service.
|
|
64
|
-
|
|
65
|
-
## Language reference
|
|
66
|
-
|
|
67
|
-
### Records
|
|
68
|
-
|
|
69
|
-
There are two types of records: structs and enums.
|
|
70
|
-
|
|
71
|
-
#### Structs
|
|
72
|
-
|
|
73
|
-
Use the keyword `struct` to define a struct, which is a collection of fields of different types.
|
|
74
|
-
|
|
75
|
-
The fields of a struct have a name, but during serialization they are actually identified by a number, which can either be set explicitly:
|
|
76
|
-
|
|
77
|
-
```d
|
|
78
|
-
struct Point {
|
|
79
|
-
x: int = 0;
|
|
80
|
-
y: int = 1;
|
|
81
|
-
label: string = 2;
|
|
82
|
-
}
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
or implicitly:
|
|
86
|
-
|
|
87
|
-
```d
|
|
88
|
-
struct Point {
|
|
89
|
-
x: int; // implicitly set to 0
|
|
90
|
-
y: int; // implicitly set to 1
|
|
91
|
-
label: string; // implicitly set to 2
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
If you're not explicitly specifying the field numbers, you must be careful not to change the order of the fields or else you won't be able to deserialize old values.
|
|
38
|
+
# my_project.py
|
|
96
39
|
|
|
97
|
-
|
|
98
|
-
// BAD: you can't reorder the fields and keep implicit numbering
|
|
99
|
-
struct Point {
|
|
100
|
-
label: string;
|
|
101
|
-
x: int;
|
|
102
|
-
y: int;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// GOOD
|
|
106
|
-
struct Point {
|
|
107
|
-
label: string = 2;
|
|
40
|
+
from skirout.shapes_skir import Point # source file generated by the Skir compiler
|
|
108
41
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
// Fine to add new fields
|
|
114
|
-
color: Color = 3;
|
|
115
|
-
}
|
|
42
|
+
point = Point(x=3, y=4, label="P")
|
|
43
|
+
json = Point.SERIALIZER.to_json(point)
|
|
44
|
+
point = Point.SERIALIZER.from_json(json)
|
|
45
|
+
assert(point == shapes_skir.Point(x=3, y=4, label="P"))
|
|
116
46
|
```
|
|
117
47
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
Enums in Skir are similar to enums in Rust. An enum value is one of several possible variants, and each variant can optionally have data associated with it.
|
|
121
|
-
|
|
122
|
-
```d
|
|
123
|
-
// Indicates whether an operation succeeded or failed.
|
|
124
|
-
enum OperationStatus {
|
|
125
|
-
SUCCESS; // a constant field
|
|
126
|
-
error: string; // a wrapper field
|
|
127
|
-
}
|
|
128
|
-
```
|
|
48
|
+
## Documentation
|
|
129
49
|
|
|
130
|
-
|
|
50
|
+
1. [Why Skir?](docs/introduction.md)
|
|
51
|
+
2. [Getting started: setup & workflow](docs/setup.md)
|
|
52
|
+
3. [Language reference](docs/language-reference.md)
|
|
53
|
+
4. [Serialization formats](docs/serialization.md)
|
|
54
|
+
5. [Schema evolution & compatibility](docs/compatibility.md)
|
|
55
|
+
6. [Typesafe RPC services](docs/skir-services.md)
|
|
56
|
+
7. [Comparisons](docs/comparisons.md)
|
|
131
57
|
|
|
132
|
-
|
|
133
|
-
* an `error` with a string value
|
|
134
|
-
* `UNKNOWN`: a special implicit variant common to all enums
|
|
58
|
+
## Supported languages
|
|
135
59
|
|
|
136
|
-
|
|
60
|
+
* JavaScript/TypeScript: [documentation](https://github.com/gepheum/skir-typescript-gen), [example](https://github.com/gepheum/skir-typescript-example)
|
|
61
|
+
* Python: [documentation](https://github.com/gepheum/skir-python-gen), [example](https://github.com/gepheum/skir-python-example)
|
|
62
|
+
* C++: [documentation](https://github.com/gepheum/skir-cc-gen), [example](https://github.com/gepheum/skir-cc-example)
|
|
63
|
+
* Java: [documentation](https://github.com/gepheum/skir-java-gen), [example](https://github.com/gepheum/skir-java-example)
|
|
64
|
+
* Kotlin: [documentation](https://github.com/gepheum/skir-kotlin-gen), [example](https://github.com/gepheum/skir-kotlin-example)
|
|
65
|
+
* Dart: [documentation](https://github.com/gepheum/skir-dart-gen), [example](https://github.com/gepheum/skir-dart-example)
|
|
137
66
|
|
|
138
|
-
|
|
139
|
-
struct MoveAction {
|
|
140
|
-
x: int32;
|
|
141
|
-
y: int32;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
enum BoardGameTurn {
|
|
145
|
-
PASS;
|
|
146
|
-
move: MoveAction;
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
Like structs, the fields of an enum have a number, and the numbering can be explicit or implicit.
|
|
151
|
-
|
|
152
|
-
```d
|
|
153
|
-
enum ExplicitNumbering {
|
|
154
|
-
// The numbers don't need to be consecutive.
|
|
155
|
-
FOO = 10;
|
|
156
|
-
bar: string = 2;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
enum ImplicitNumbering {
|
|
160
|
-
// Implicit numbering is 1-based.
|
|
161
|
-
// 0 is reserved for the special UNKNOWN variant.
|
|
162
|
-
|
|
163
|
-
FOO; // = 1
|
|
164
|
-
bar: string; // = 2
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
The fields numbers are used for identifying the variants in the serialization format (not the field names). You must be careful not to change the number of a field, or you won't be able to deserialize old values. For example, if you're using implicit numbering, you must not reorder the fields.
|
|
169
|
-
|
|
170
|
-
It is always fine to rename an enum, rename the fields of an enum, or add new fields to an enum.
|
|
171
|
-
|
|
172
|
-
#### Nesting records
|
|
173
|
-
|
|
174
|
-
You can define a record (struct or enum) within the definition of another record. This is simply for namespacing, and it can help make your `.skir` files more organized.
|
|
175
|
-
|
|
176
|
-
```d
|
|
177
|
-
enum Status {
|
|
178
|
-
OK;
|
|
179
|
-
|
|
180
|
-
struct Error {
|
|
181
|
-
message: string;
|
|
182
|
-
}
|
|
183
|
-
error: Error;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
struct Foo {
|
|
187
|
-
// Note the dot notation to refer to the nested record.
|
|
188
|
-
error: Status.Error;
|
|
189
|
-
}
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
#### Removed fields
|
|
193
|
-
|
|
194
|
-
When removing a field from a struct or an enum, you must mark the removed number in the record definition using the `removed` keyword. The syntax is different whether you're using explicit or implicit numbering:
|
|
195
|
-
|
|
196
|
-
```d
|
|
197
|
-
struct ExplicitNumbering {
|
|
198
|
-
a: string = 0;
|
|
199
|
-
b: string = 1:
|
|
200
|
-
d: string = 3;
|
|
201
|
-
removed 2, 4;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
struct ImplicitNumbering {
|
|
205
|
-
a: string;
|
|
206
|
-
b: string:
|
|
207
|
-
removed;
|
|
208
|
-
d: string;
|
|
209
|
-
removed;
|
|
210
|
-
}
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### Data types
|
|
214
|
-
|
|
215
|
-
#### Primitive types
|
|
216
|
-
|
|
217
|
-
* `bool`: true or false
|
|
218
|
-
* `int32`: a signed 32-bits integer
|
|
219
|
-
* `int64`: a signed 64-bits integer
|
|
220
|
-
* `uint64`: an unsigned 64-bits integer
|
|
221
|
-
* `float32`: a 32-bits floating point number
|
|
222
|
-
* `float64`: a 64-bits floating point number
|
|
223
|
-
* `string`: a Unicode string
|
|
224
|
-
* `bytes`: a sequence of bytes
|
|
225
|
-
* `timestamp`: a specific instant in time represented as an integral number of milliseconds since the Unix epoch, from 100M days before the Unix epoch to 100M days after the Unix epoch
|
|
226
|
-
|
|
227
|
-
#### Array type
|
|
228
|
-
|
|
229
|
-
Wrap the item type inside square brackets to represent an array of items, e.g. `[string]` or `[User]`.
|
|
230
|
-
|
|
231
|
-
##### Keyed arrays
|
|
232
|
-
|
|
233
|
-
If the items are structs and one of the struct fields can be used to identify every item in the array, you can add the field name next to a pipe character: `[Item|key_field]`.
|
|
234
|
-
|
|
235
|
-
Example:
|
|
236
|
-
```d
|
|
237
|
-
struct User {
|
|
238
|
-
id: uint64;
|
|
239
|
-
name: string;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
struct UserRegistry {
|
|
243
|
-
users: [User|id];
|
|
244
|
-
}
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
Language plugins will generate methods allowing you to perform key lookups in the array using a hash table. For example, in Python:
|
|
248
|
-
|
|
249
|
-
```python
|
|
250
|
-
user = user_registry.users.find(user_id)
|
|
251
|
-
if user:
|
|
252
|
-
do_something(user)
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
If the item key is nested within another struct, you can chain the field names like so: `[Item|a.b.c]`.
|
|
256
|
-
|
|
257
|
-
The key type must be a primitive type of an enum type. If it's an enum type, add `.kind` at the end of the key chain:
|
|
258
|
-
|
|
259
|
-
```d
|
|
260
|
-
enum Weekday {
|
|
261
|
-
MONDAY;
|
|
262
|
-
TUESDAY;
|
|
263
|
-
WEDNESDAY;
|
|
264
|
-
THURSDAY;
|
|
265
|
-
FRIDAY;
|
|
266
|
-
SATURDAY;
|
|
267
|
-
SUNDAY;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
struct WeekdayWorkStatus {
|
|
271
|
-
weekday: Weekday;
|
|
272
|
-
working: bool;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
struct Employee {
|
|
276
|
-
weekly_schedule: [WeekdayWorkStatus|weekday.kind];
|
|
277
|
-
}
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
#### Optional type
|
|
281
|
-
|
|
282
|
-
Add a question mark at the end of a non-optional type to make it optional. An `other_type?` value is either an `other_type` or null.
|
|
283
|
-
|
|
284
|
-
### Constants
|
|
285
|
-
|
|
286
|
-
You can define constants of any type with the `const` keyword. The syntax for representing the value is similar to JSON, with the following differences:
|
|
287
|
-
|
|
288
|
-
* object keys must not be quoted
|
|
289
|
-
* trailing commas are allowed and even encouraged
|
|
290
|
-
* strings can be single-quoted or double-quoted
|
|
291
|
-
* strings can span multiple lines by escaping new line characters
|
|
292
|
-
|
|
293
|
-
```d
|
|
294
|
-
const PI: float64 = 3.14159;
|
|
295
|
-
|
|
296
|
-
const LARGE_CIRCLE: Circle = {
|
|
297
|
-
center: {
|
|
298
|
-
x: 100,
|
|
299
|
-
y: 100,
|
|
300
|
-
},
|
|
301
|
-
radius: 100,
|
|
302
|
-
color: {
|
|
303
|
-
r: 255,
|
|
304
|
-
g: 0,
|
|
305
|
-
b: 255,
|
|
306
|
-
label: "fuschia",
|
|
307
|
-
},
|
|
308
|
-
};
|
|
309
|
-
|
|
310
|
-
const MULTILINE_STRING: string = 'Hello\
|
|
311
|
-
world\
|
|
312
|
-
!';
|
|
313
|
-
|
|
314
|
-
const SUPPORTED_LOCALES: [string] = [
|
|
315
|
-
"en-GB",
|
|
316
|
-
"en-US",
|
|
317
|
-
"es-MX",
|
|
318
|
-
];
|
|
319
|
-
|
|
320
|
-
// Use strings for enum constants.
|
|
321
|
-
const REST_DAY: Weekday = "SUNDAY";
|
|
322
|
-
|
|
323
|
-
// Use { kind: ..., value: ... } for enum variants holding a value.
|
|
324
|
-
const NOT_IMPLEMENTED_ERROR: OperationStatus = {
|
|
325
|
-
kind: "error",
|
|
326
|
-
value: "Not implemented",
|
|
327
|
-
};
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
### Methods
|
|
331
|
-
|
|
332
|
-
The `method` keyword allows you to define the signature of a remote method.
|
|
333
|
-
|
|
334
|
-
```d
|
|
335
|
-
struct GetUserProfileRequest {
|
|
336
|
-
// ...
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
struct GetUserProfileResponse {
|
|
340
|
-
// ...
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
method GetUserProfile(GetUserProfileRequest): GetUserProfileResponse;
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
The request and response can have any type.
|
|
347
|
-
|
|
348
|
-
### Imports
|
|
349
|
-
|
|
350
|
-
The `import` statement allows you to import types from another module. You can either specify the names to import, or import the whole module with an alias using the `as` keyword.
|
|
351
|
-
|
|
352
|
-
```d
|
|
353
|
-
import Point, Circle from "geometry/geometry.skir";
|
|
354
|
-
import * as color from "color.skir";
|
|
355
|
-
|
|
356
|
-
struct Rectangle {
|
|
357
|
-
top_left: Point;
|
|
358
|
-
bottom_right: Point;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
struct Disk {
|
|
362
|
-
circle: Circle;
|
|
363
|
-
fill_color: color.Color; // the type is defined in the "color.skir" module
|
|
364
|
-
}
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
The path is always relative to the root of the Skir source directory.
|
|
368
|
-
|
|
369
|
-
## Serialization formats
|
|
370
|
-
|
|
371
|
-
When serializing a data structure, you can chose one of 3 formats.
|
|
372
|
-
|
|
373
|
-
### JSON, dense flavor
|
|
374
|
-
|
|
375
|
-
This is the serialization format you should chose in most cases.
|
|
376
|
-
|
|
377
|
-
Structs are serialized as JSON arrays, where the field numbers in the index definition match the indexes in the array. Enum constants are serialized as numbers.
|
|
378
|
-
|
|
379
|
-
```rust
|
|
380
|
-
struct User {
|
|
381
|
-
user_id: int;
|
|
382
|
-
removed;
|
|
383
|
-
name: string;
|
|
384
|
-
rest_day: Weekday;
|
|
385
|
-
pets: [Pet];
|
|
386
|
-
nickname: string;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
const JOHN_DOE = {
|
|
390
|
-
user_id: 400,
|
|
391
|
-
name: "John Doe",
|
|
392
|
-
rest_day: "SUNDAY",
|
|
393
|
-
pets: [
|
|
394
|
-
{ name: "Fluffy" },
|
|
395
|
-
{ name: "Fido" },
|
|
396
|
-
],
|
|
397
|
-
nickname: "",
|
|
398
|
-
}
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
The dense JSON representation of `JOHN_DOE` is:
|
|
402
|
-
|
|
403
|
-
```json
|
|
404
|
-
[400,0,"John Doe",7,[["Fluffy"],["Fido"]]]
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
A couple observations:
|
|
408
|
-
|
|
409
|
-
* Removed fields are replaced with zeros
|
|
410
|
-
* Trailing fields with default values (`nickname` in this example) are omitted
|
|
411
|
-
|
|
412
|
-
This format is not very readable, but it's compact and it allows you to rename fields in your struct definition without breaking backward compatibility.
|
|
413
|
-
|
|
414
|
-
### JSON, readable flavor
|
|
415
|
-
|
|
416
|
-
Structs are serialized as JSON objects, and enum constants are serialized as strings.
|
|
417
|
-
|
|
418
|
-
The readable JSON representation of `JOHN_DOE` is:
|
|
419
|
-
|
|
420
|
-
```json
|
|
421
|
-
{
|
|
422
|
-
"user_id": 400,
|
|
423
|
-
"name": "Johm Doe",
|
|
424
|
-
"rest_day": "SUNDAY",
|
|
425
|
-
"pets": [
|
|
426
|
-
{ "name": "Fluffy" },
|
|
427
|
-
{ "name": "Fido" }
|
|
428
|
-
]
|
|
429
|
-
}
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
This format is more verbose and readable, but it should **not** be used if you need persistence, because Skir allows fields to be renamed in record definitions. In other words, never store a readable JSON on disk or in a database.
|
|
433
|
-
|
|
434
|
-
### Binary format
|
|
435
|
-
|
|
436
|
-
This format is a bit more compact than JSON, and serialization/deserialization can be faster in languages like C++. Only prefer this format over JSON when the small performance gain is likely to matter, which should be rare.
|
|
437
|
-
|
|
438
|
-
## Skir services
|
|
439
|
-
|
|
440
|
-
### Calling a method with cURL
|
|
441
|
-
|
|
442
|
-
```
|
|
443
|
-
curl -X POST \
|
|
444
|
-
-H "Content-Type: application/json" \
|
|
445
|
-
-d '{"method": "MethodName", "request": {"foo": 3, "bar": []}}' \
|
|
446
|
-
http://localhost:8787/myapi
|
|
447
|
-
```
|
|
67
|
+
Other official and unofficial code generators will come.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command_line_parser.d.ts","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEN;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"command_line_parser.d.ts","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEN;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA8C3D;AAqCD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -14,6 +14,9 @@ export function parseCommandLine(args) {
|
|
|
14
14
|
printHelp();
|
|
15
15
|
return { kind: "help" };
|
|
16
16
|
}
|
|
17
|
+
if (command === "version" || command === "--version" || command === "-v") {
|
|
18
|
+
return { kind: "version" };
|
|
19
|
+
}
|
|
17
20
|
const validCommands = ["gen", "format", "snapshot", "init"];
|
|
18
21
|
if (!command || !validCommands.includes(command)) {
|
|
19
22
|
printError(`Unknown command: ${command}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command_line_parser.js","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command_line_parser.js","sourceRoot":"","sources":["../src/command_line_parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility_checker.d.ts","sourceRoot":"","sources":["../src/compatibility_checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EAGN,cAAc,EACd,YAAY,EACZ,KAAK,EACN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;CACjC,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACpC,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACpC,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,UAAU,EAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;CAC5C,GACD;IACE,IAAI,EAAE,6BAA6B,CAAC;IACpC,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACpC,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,WAAW,EAAE,KAAK,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,KAAK,CAAC;CACnB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC;CACnB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,KAAK,CAAC;CACnB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,UAAU,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,kBAAkB,EAAE,UAAU,CAAC;CAChC,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,SAAS,EAAE,KAAK,CAAC;CAClB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,EAAE,UAAU,CAAC;IAC3B,WAAW,EAAE,KAAK,CAAC;CACpB,CAAC;AAEN,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,GAChC,SAAS,cAAc,EAAE,CAE3B;
|
|
1
|
+
{"version":3,"file":"compatibility_checker.d.ts","sourceRoot":"","sources":["../src/compatibility_checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,21 +14,19 @@ class BackwardCompatibilityChecker {
|
|
|
14
14
|
check() {
|
|
15
15
|
for (const moduleBefore of this.moduleSet.before.resolvedModules) {
|
|
16
16
|
for (const methodBefore of moduleBefore.methods) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
});
|
|
31
|
-
}
|
|
17
|
+
const { number } = methodBefore;
|
|
18
|
+
const methodAfter = this.moduleSet.after.findMethodByNumber(number);
|
|
19
|
+
if (methodAfter === undefined) {
|
|
20
|
+
this.breakingChanges.push({
|
|
21
|
+
kind: "missing-method",
|
|
22
|
+
method: methodBefore,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.checkMethod({
|
|
27
|
+
before: methodBefore,
|
|
28
|
+
after: methodAfter,
|
|
29
|
+
});
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
32
|
for (const recordBefore of moduleBefore.records) {
|
|
@@ -299,29 +297,17 @@ function primitiveTypesAreCompatible(type) {
|
|
|
299
297
|
return (type.after === "bool" ||
|
|
300
298
|
type.after === "int32" ||
|
|
301
299
|
type.after === "int64" ||
|
|
302
|
-
type.after === "
|
|
303
|
-
type.after === "float32" ||
|
|
304
|
-
type.after === "float64");
|
|
300
|
+
type.after === "hash64");
|
|
305
301
|
case "int32":
|
|
306
|
-
return
|
|
307
|
-
type.after === "int64" ||
|
|
308
|
-
type.after === "uint64" ||
|
|
309
|
-
type.after === "float32" ||
|
|
310
|
-
type.after === "float64");
|
|
311
|
-
case "int64":
|
|
312
|
-
return (type.after === "int64" ||
|
|
313
|
-
type.after === "float32" ||
|
|
314
|
-
type.after === "float64");
|
|
315
|
-
case "uint64":
|
|
316
|
-
return (type.after === "uint64" ||
|
|
317
|
-
type.after === "float32" ||
|
|
318
|
-
type.after === "float64");
|
|
302
|
+
return type.after === "int32" || type.after === "int64";
|
|
319
303
|
case "float32":
|
|
320
304
|
case "float64":
|
|
321
305
|
return type.after === "float32" || type.after === "float64";
|
|
322
306
|
case "timestamp":
|
|
323
307
|
case "string":
|
|
324
308
|
case "bytes":
|
|
309
|
+
case "int64":
|
|
310
|
+
case "hash64":
|
|
325
311
|
return type.after === type.before;
|
|
326
312
|
}
|
|
327
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility_checker.js","sourceRoot":"","sources":["../src/compatibility_checker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compatibility_checker.js","sourceRoot":"","sources":["../src/compatibility_checker.ts"],"names":[],"mappings":"AAkGA,MAAM,UAAU,0BAA0B,CACxC,SAAiC;IAEjC,OAAO,IAAI,4BAA4B,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,4BAA4B;IAChC,YAA6B,SAAiC;QAAjC,cAAS,GAAT,SAAS,CAAwB;QAyQ7C,oBAAe,GAAqB,EAAE,CAAC;QACxD,wEAAwE;QACxE,2CAA2C;QAC1B,+BAA0B,GAAG,IAAI,GAAG,EAGlD,CAAC;QACJ,kEAAkE;QACjD,mBAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAjRa,CAAC;IAElE,KAAK;QACH,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjE,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAChD,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;gBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACpE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;wBACxB,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE,YAAY;qBACrB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,WAAW,CAAC;wBACf,MAAM,EAAE,YAAY;wBACpB,KAAK,EAAE,WAAW;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAChD,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC;gBAC7C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC1B,MAAM,WAAW,GACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBACxD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;4BACxB,IAAI,EAAE,gBAAgB;4BACtB,MAAM,EAAE,YAAY;4BACpB,YAAY,EAAE,YAAY;yBAC3B,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,MAAM,MAAM,GAAgC;4BAC1C,MAAM,EAAE,YAAY;4BACpB,KAAK,EAAE,WAAW;yBACnB,CAAC;wBACF,IAAI,CAAC,WAAW,CACd,MAAM,EACN,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BAClB,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;yBAC1B,CAAC,CAAC,CACJ,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEO,WAAW,CAAC,MAA2B;QAC7C,IAAI,CAAC,SAAS,CACZ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAY,CAAC,EAClC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CACnE,CAAC;QACF,IAAI,CAAC,SAAS,CACZ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAa,CAAC,EACnC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;IAEO,WAAW,CACjB,MAAmC,EACnC,gBAAyC;QAEzC,CAAC;YACC,4DAA4D;YAC5D,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;YAC3D,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,CAAC;gBACtB,IAAI,EAAE,oBAAoB;gBAC1B,MAAM;gBACN,gBAAgB;gBAChB,UAAU;aACX,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC;QAChD,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5D,IACE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B;YAC9C,0BAA0B,EAC1B,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC;gBACtB,IAAI,EAAE,eAAe;gBACrB,MAAM;gBACN,gBAAgB;gBAChB,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B;gBACjE,eAAe,EAAE,0BAA0B;aAC5C,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,iDAAiD;QACjD,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChE,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACzD,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,kBAAkB,CAAC;oBACtB,IAAI,EAAE,6BAA6B;oBACnC,MAAM;oBACN,gBAAgB;oBAChB,aAAa,EAAE,aAAa;oBAC5B,cAAc,EAAE,UAAU,CAAC,IAAI;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CACnC,CAAC;QACF,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,kBAAkB,CAAC;wBACtB,IAAI,EAAE,iBAAiB;wBACvB,MAAM;wBACN,aAAa,EAAE,gBAAgB;wBAC/B,WAAW,EAAE,WAAW,CAAC,IAAI;wBAC7B,MAAM,EAAE,WAAW,CAAC,MAAM;qBAC3B,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,CAAC,SAAS,CACZ;oBACE,MAAM,EAAE,WAAW,CAAC,IAAI;oBACxB,KAAK,EAAE,UAAU,CAAC,IAAI;iBACvB,EACD,QAAQ;oBACN,CAAC,CAAC;wBACE,MAAM,EAAE;4BACN,IAAI,EAAE,UAAU;4BAChB,gBAAgB,EAAE,gBAAgB,CAAC,MAAM;4BACzC,SAAS,EAAE,WAAW,CAAC,IAAI;yBAC5B;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,UAAU;4BAChB,gBAAgB,EAAE,gBAAgB,CAAC,KAAK;4BACxC,SAAS,EAAE,UAAU,CAAC,IAAI;yBAC3B;qBACF;oBACH,CAAC,CAAC;wBACE,MAAM,EAAE;4BACN,IAAI,EAAE,YAAY;4BAClB,cAAc,EAAE,gBAAgB,CAAC,MAAM;4BACvC,WAAW,EAAE,WAAW,CAAC,IAAI;yBAC9B;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,YAAY;4BAClB,cAAc,EAAE,gBAAgB,CAAC,KAAK;4BACtC,WAAW,EAAE,UAAU,CAAC,IAAI;yBAC7B;qBACF,CACN,CAAC;YACJ,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,CAAC;oBACtB,IAAI,EAAE,qBAAqB;oBAC3B,MAAM;oBACN,aAAa,EAAE,gBAAgB;oBAC/B,WAAW,EAAE;wBACX,MAAM,EAAE,WAAW,CAAC,IAAI;wBACxB,KAAK,EAAE,UAAU,CAAC,IAAI;qBACvB;oBACD,MAAM,EAAE,WAAW,CAAC,MAAM;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CACf,IAA+B,EAC/B,UAAmC;QAEnC,MAAM,iBAAiB,GAAmB;YACxC,IAAI,EAAE,qBAAqB;YAC3B,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,IAAI;SACX,CAAC;QACF,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC,SAAS,CACnB;wBACE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;wBACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;qBACvB,EACD,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACtB,IAAI,EAAE,MAAM;wBACZ,eAAe,EAAE,CAAC;qBACnB,CAAC,CAAC,CACJ,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC,SAAS,CACnB;wBACE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;wBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;qBACxB,EACD,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACtB,IAAI,EAAE,gBAAgB;wBACtB,kBAAkB,EAAE,CAAC;qBACtB,CAAC,CAAC,CACJ,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,MAAM,GAAgC;wBAC1C,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE;wBAC7D,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE;qBAC3D,CAAC;oBACF,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;oBACrC,OAAO,IAAI,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW;oBAC/B,CAAC,2BAA2B,CAAC;wBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;wBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;qBAC5B,CAAC,EACF,CAAC;oBACD,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC7C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,cAA8B;QACvD,MAAM,KAAK,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,wBAAwB,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAC3C,wBAAwB,GAAG,IAAI,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QACD,wBAAwB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC;CAWF;AAED,MAAM,UAAU,yBAAyB,CACvC,cAA8B;IAE9B,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;QAC5B,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,OAAO,qBAAqB,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,eAAe,CAAC;QACrB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QACjD,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QACjD,CAAC;QACD,KAAK,6BAA6B,CAAC,CAAC,CAAC;YACnC,OAAO,cAAc,CAAC,cAAc,CAAC;QACvC,CAAC;QACD,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAsB;IACnD,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,qBAAqB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,OAAO,qBAAqB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO,UAAU,CAAC,SAAS,CAAC;QAC9B,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,OAAO,UAAU,CAAC,WAAW,CAAC;QAChC,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,UAAU,CAAC,UAAU,CAAC;QAC/B,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,OAAO,UAAU,CAAC,UAAU,CAAC;QAC/B,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,OAAO,UAAU,CAAC,UAAU,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,IAA4B;IAC/D,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,MAAM;gBACrB,IAAI,CAAC,KAAK,KAAK,OAAO;gBACtB,IAAI,CAAC,KAAK,KAAK,OAAO;gBACtB,IAAI,CAAC,KAAK,KAAK,QAAQ,CACxB,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC;QAC1D,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;QAC9D,KAAK,WAAW,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,GAAG,CACV,WAA2B,EAC3B,EAAmB;IAEnB,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;QAC9B,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;KAC7B,CAAC;AACJ,CAAC"}
|