@ancplua/qyl-api-schema 10.0.0 → 11.0.0
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 +3 -33
- package/common/types.tsp +19 -18
- package/generated/json-schema/qyl-api-schema.json +33 -119
- package/generated/openapi/qyl.openapi.json +33 -119
- package/generated/runtime/index.d.ts +23 -0
- package/generated/runtime/index.js +70 -0
- package/generated/ts-runtime/api.d.ts +3 -15
- package/generated/ts-runtime/api.js +1 -1
- package/generated/ts-runtime/runtime.d.ts +16 -0
- package/generated/ts-runtime/runtime.js +26 -0
- package/otel/logs.tsp +2 -46
- package/package.json +38 -20
package/README.md
CHANGED
|
@@ -82,45 +82,15 @@ against the schema, so pair it with the matching type from `./types`.
|
|
|
82
82
|
|
|
83
83
|
`scripts/emit-contract-revision.mjs` stamps a deterministic revision — `sha256:` plus
|
|
84
84
|
the first 16 hex characters of the contract's canonical semantic digest — into both
|
|
85
|
-
generated faces during `
|
|
85
|
+
generated faces during `bun run compile`. A collector reports the revision it was built
|
|
86
86
|
against on its health response, so a client can detect a peer built from a different
|
|
87
87
|
contract instead of discovering the mismatch one malformed field at a time. Read the
|
|
88
88
|
current value from a running collector or the generated artifacts; it is derived, never
|
|
89
89
|
hand-maintained.
|
|
90
90
|
|
|
91
|
-
##
|
|
91
|
+
## Contributing
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
Node.js releases from 22 onward.
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
npm ci
|
|
98
|
-
npm run lint
|
|
99
|
-
npm run lint:public
|
|
100
|
-
npm run compile
|
|
101
|
-
./build.sh Check
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
Important generated outputs include:
|
|
105
|
-
|
|
106
|
-
- `generated/openapi/qyl.openapi.json`
|
|
107
|
-
- `generated/json-schema/qyl-api-schema.json`
|
|
108
|
-
- `generated/contracts/**/*.cs`
|
|
109
|
-
- `generated/ts-types/**`
|
|
110
|
-
|
|
111
|
-
Generated files are not editing surfaces. OpenAPI comes from the official TypeSpec
|
|
112
|
-
emitter; the bundled JSON Schema is a deterministic projection of its component
|
|
113
|
-
schemas and exposes inline route bodies as stable
|
|
114
|
-
`Operations.<operationId>.Request` and
|
|
115
|
-
`Operations.<operationId>.Response.<status>` definitions. Both artifacts preserve
|
|
116
|
-
the same wire names. Change TypeSpec or the owning generator and regenerate.
|
|
117
|
-
|
|
118
|
-
## Publish
|
|
119
|
-
|
|
120
|
-
GitHub Actions publishes both registries through OIDC trusted publishing. A release
|
|
121
|
-
tag supplies one version for npm and NuGet. The workflow validates and packs first,
|
|
122
|
-
publishes in an ordered restartable sequence, waits for indexed artifacts, and then
|
|
123
|
-
smokes clean consumers. No long-lived npm or NuGet token is stored.
|
|
93
|
+
How to build, lint, regenerate and publish is in [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
124
94
|
|
|
125
95
|
## License
|
|
126
96
|
|
package/common/types.tsp
CHANGED
|
@@ -20,8 +20,6 @@ namespace Qyl.Api.Contracts.Common;
|
|
|
20
20
|
@minLength(32)
|
|
21
21
|
@maxLength(32)
|
|
22
22
|
@example("0af7651916cd43dd8448eb211c80319c")
|
|
23
|
-
@TypeSpec.OpenAPI.extension("x-csharp-struct", true)
|
|
24
|
-
@TypeSpec.OpenAPI.extension("x-csharp-type", "TraceId")
|
|
25
23
|
scalar TraceId extends string;
|
|
26
24
|
|
|
27
25
|
@doc("Unique span identifier (16 lowercase hex characters)")
|
|
@@ -29,8 +27,6 @@ scalar TraceId extends string;
|
|
|
29
27
|
@minLength(16)
|
|
30
28
|
@maxLength(16)
|
|
31
29
|
@example("b7ad6b7169203331")
|
|
32
|
-
@TypeSpec.OpenAPI.extension("x-csharp-struct", true)
|
|
33
|
-
@TypeSpec.OpenAPI.extension("x-csharp-type", "SpanId")
|
|
34
30
|
scalar SpanId extends string;
|
|
35
31
|
|
|
36
32
|
@doc("W3C Trace Context traceparent header format")
|
|
@@ -45,8 +41,6 @@ scalar TraceState extends string;
|
|
|
45
41
|
@doc("Unique session identifier")
|
|
46
42
|
@minLength(1)
|
|
47
43
|
@maxLength(128)
|
|
48
|
-
@TypeSpec.OpenAPI.extension("x-csharp-struct", true)
|
|
49
|
-
@TypeSpec.OpenAPI.extension("x-csharp-type", "SessionId")
|
|
50
44
|
scalar SessionId extends string;
|
|
51
45
|
|
|
52
46
|
@doc("User identifier (pseudonymized for privacy)")
|
|
@@ -261,7 +255,23 @@ model AttributeKeyValueListValue {
|
|
|
261
255
|
values: Record<AttributeValue>;
|
|
262
256
|
}
|
|
263
257
|
|
|
264
|
-
@doc("
|
|
258
|
+
@doc("Object-shaped AttributeValue variants. The variant name is the wire `type` tag.")
|
|
259
|
+
@discriminated(#{ envelope: "none", discriminatorPropertyName: "type" })
|
|
260
|
+
union AttributeObjectValue {
|
|
261
|
+
@doc("Lossless 64-bit integer value")
|
|
262
|
+
int: AttributeIntValue,
|
|
263
|
+
|
|
264
|
+
@doc("Lossless finite or non-finite 64-bit floating point value")
|
|
265
|
+
double: AttributeDoubleValue,
|
|
266
|
+
|
|
267
|
+
@doc("Bytes value projected as an explicit tagged object")
|
|
268
|
+
bytes: AttributeBytesValue,
|
|
269
|
+
|
|
270
|
+
@doc("Recursive key-value-list value")
|
|
271
|
+
kvlist: AttributeKeyValueListValue,
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
@doc("Lossless JSON projection of an OpenTelemetry AnyValue attribute. Primitive variants are bare JSON values; object variants carry a `type` tag.")
|
|
265
275
|
union AttributeValue {
|
|
266
276
|
@doc("Empty AnyValue")
|
|
267
277
|
emptyValue: null,
|
|
@@ -272,20 +282,11 @@ union AttributeValue {
|
|
|
272
282
|
@doc("Boolean value")
|
|
273
283
|
boolValue: boolean,
|
|
274
284
|
|
|
275
|
-
@doc("Lossless 64-bit integer value")
|
|
276
|
-
intValue: AttributeIntValue,
|
|
277
|
-
|
|
278
|
-
@doc("Lossless finite or non-finite 64-bit floating point value")
|
|
279
|
-
doubleValue: AttributeDoubleValue,
|
|
280
|
-
|
|
281
|
-
@doc("Bytes value projected as an explicit tagged object")
|
|
282
|
-
bytesValue: AttributeBytesValue,
|
|
283
|
-
|
|
284
285
|
@doc("Nested and heterogeneous array value")
|
|
285
286
|
arrayValue: AttributeValue[],
|
|
286
287
|
|
|
287
|
-
@doc("
|
|
288
|
-
|
|
288
|
+
@doc("Tagged object value")
|
|
289
|
+
objectValue: AttributeObjectValue,
|
|
289
290
|
}
|
|
290
291
|
|
|
291
292
|
@doc("Key-value attribute pair following OTel conventions")
|
|
@@ -142,25 +142,43 @@
|
|
|
142
142
|
},
|
|
143
143
|
"description": "Tagged recursive OTLP key-value-list, distinct from other object-shaped attribute variants."
|
|
144
144
|
},
|
|
145
|
-
"Common.
|
|
146
|
-
"
|
|
145
|
+
"Common.AttributeObjectValue": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"oneOf": [
|
|
147
148
|
{
|
|
148
|
-
"
|
|
149
|
+
"$ref": "#/$defs/Common.AttributeIntValue"
|
|
149
150
|
},
|
|
150
151
|
{
|
|
151
|
-
"
|
|
152
|
+
"$ref": "#/$defs/Common.AttributeDoubleValue"
|
|
152
153
|
},
|
|
153
154
|
{
|
|
154
|
-
"
|
|
155
|
+
"$ref": "#/$defs/Common.AttributeBytesValue"
|
|
155
156
|
},
|
|
156
157
|
{
|
|
157
|
-
"$ref": "#/$defs/Common.
|
|
158
|
+
"$ref": "#/$defs/Common.AttributeKeyValueListValue"
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
"discriminator": {
|
|
162
|
+
"propertyName": "type",
|
|
163
|
+
"mapping": {
|
|
164
|
+
"int": "#/components/schemas/Common.AttributeIntValue",
|
|
165
|
+
"double": "#/components/schemas/Common.AttributeDoubleValue",
|
|
166
|
+
"bytes": "#/components/schemas/Common.AttributeBytesValue",
|
|
167
|
+
"kvlist": "#/components/schemas/Common.AttributeKeyValueListValue"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"description": "Object-shaped AttributeValue variants. The variant name is the wire `type` tag."
|
|
171
|
+
},
|
|
172
|
+
"Common.AttributeValue": {
|
|
173
|
+
"anyOf": [
|
|
174
|
+
{
|
|
175
|
+
"type": "null"
|
|
158
176
|
},
|
|
159
177
|
{
|
|
160
|
-
"
|
|
178
|
+
"type": "string"
|
|
161
179
|
},
|
|
162
180
|
{
|
|
163
|
-
"
|
|
181
|
+
"type": "boolean"
|
|
164
182
|
},
|
|
165
183
|
{
|
|
166
184
|
"type": "array",
|
|
@@ -169,10 +187,10 @@
|
|
|
169
187
|
}
|
|
170
188
|
},
|
|
171
189
|
{
|
|
172
|
-
"$ref": "#/$defs/Common.
|
|
190
|
+
"$ref": "#/$defs/Common.AttributeObjectValue"
|
|
173
191
|
}
|
|
174
192
|
],
|
|
175
|
-
"description": "Lossless JSON projection of an OpenTelemetry AnyValue attribute."
|
|
193
|
+
"description": "Lossless JSON projection of an OpenTelemetry AnyValue attribute. Primitive variants are bare JSON values; object variants carry a `type` tag."
|
|
176
194
|
},
|
|
177
195
|
"Common.Attributes": {
|
|
178
196
|
"type": "object",
|
|
@@ -911,9 +929,7 @@
|
|
|
911
929
|
"type": "string",
|
|
912
930
|
"minLength": 1,
|
|
913
931
|
"maxLength": 128,
|
|
914
|
-
"description": "Unique session identifier"
|
|
915
|
-
"x-csharp-type": "SessionId",
|
|
916
|
-
"x-csharp-struct": true
|
|
932
|
+
"description": "Unique session identifier"
|
|
917
933
|
},
|
|
918
934
|
"Common.Sha256Hash": {
|
|
919
935
|
"type": "string",
|
|
@@ -930,9 +946,7 @@
|
|
|
930
946
|
"description": "Unique span identifier (16 lowercase hex characters)",
|
|
931
947
|
"examples": [
|
|
932
948
|
"b7ad6b7169203331"
|
|
933
|
-
]
|
|
934
|
-
"x-csharp-type": "SpanId",
|
|
935
|
-
"x-csharp-struct": true
|
|
949
|
+
]
|
|
936
950
|
},
|
|
937
951
|
"Common.Temperature": {
|
|
938
952
|
"type": "number",
|
|
@@ -962,9 +976,7 @@
|
|
|
962
976
|
"description": "Unique trace identifier (32 lowercase hex characters)",
|
|
963
977
|
"examples": [
|
|
964
978
|
"0af7651916cd43dd8448eb211c80319c"
|
|
965
|
-
]
|
|
966
|
-
"x-csharp-type": "TraceId",
|
|
967
|
-
"x-csharp-struct": true
|
|
979
|
+
]
|
|
968
980
|
},
|
|
969
981
|
"Common.TraceParent": {
|
|
970
982
|
"type": "string",
|
|
@@ -2216,104 +2228,6 @@
|
|
|
2216
2228
|
],
|
|
2217
2229
|
"description": "Telemetry SDK language"
|
|
2218
2230
|
},
|
|
2219
|
-
"OTel.Logs.LogBody": {
|
|
2220
|
-
"type": "object",
|
|
2221
|
-
"oneOf": [
|
|
2222
|
-
{
|
|
2223
|
-
"$ref": "#/$defs/OTel.Logs.LogBodyString"
|
|
2224
|
-
},
|
|
2225
|
-
{
|
|
2226
|
-
"$ref": "#/$defs/OTel.Logs.LogBodyKvList"
|
|
2227
|
-
},
|
|
2228
|
-
{
|
|
2229
|
-
"$ref": "#/$defs/OTel.Logs.LogBodyArray"
|
|
2230
|
-
},
|
|
2231
|
-
{
|
|
2232
|
-
"$ref": "#/$defs/OTel.Logs.LogBodyBytes"
|
|
2233
|
-
}
|
|
2234
|
-
],
|
|
2235
|
-
"discriminator": {
|
|
2236
|
-
"propertyName": "kind",
|
|
2237
|
-
"mapping": {
|
|
2238
|
-
"stringBody": "#/components/schemas/OTel.Logs.LogBodyString",
|
|
2239
|
-
"kvListBody": "#/components/schemas/OTel.Logs.LogBodyKvList",
|
|
2240
|
-
"arrayBody": "#/components/schemas/OTel.Logs.LogBodyArray",
|
|
2241
|
-
"bytesBody": "#/components/schemas/OTel.Logs.LogBodyBytes"
|
|
2242
|
-
}
|
|
2243
|
-
},
|
|
2244
|
-
"description": "Log body content - can be string, structured, or bytes"
|
|
2245
|
-
},
|
|
2246
|
-
"OTel.Logs.LogBodyArray": {
|
|
2247
|
-
"type": "object",
|
|
2248
|
-
"required": [
|
|
2249
|
-
"array_value"
|
|
2250
|
-
],
|
|
2251
|
-
"properties": {
|
|
2252
|
-
"array_value": {
|
|
2253
|
-
"type": "array",
|
|
2254
|
-
"items": {
|
|
2255
|
-
"$ref": "#/$defs/Common.AttributeValue"
|
|
2256
|
-
},
|
|
2257
|
-
"description": "Array of values"
|
|
2258
|
-
}
|
|
2259
|
-
},
|
|
2260
|
-
"unevaluatedProperties": {
|
|
2261
|
-
"not": {}
|
|
2262
|
-
},
|
|
2263
|
-
"description": "Array log body"
|
|
2264
|
-
},
|
|
2265
|
-
"OTel.Logs.LogBodyBytes": {
|
|
2266
|
-
"type": "object",
|
|
2267
|
-
"required": [
|
|
2268
|
-
"bytes_value"
|
|
2269
|
-
],
|
|
2270
|
-
"properties": {
|
|
2271
|
-
"bytes_value": {
|
|
2272
|
-
"type": "string",
|
|
2273
|
-
"contentEncoding": "base64",
|
|
2274
|
-
"description": "Binary value (base64 encoded)"
|
|
2275
|
-
}
|
|
2276
|
-
},
|
|
2277
|
-
"unevaluatedProperties": {
|
|
2278
|
-
"not": {}
|
|
2279
|
-
},
|
|
2280
|
-
"description": "Binary log body"
|
|
2281
|
-
},
|
|
2282
|
-
"OTel.Logs.LogBodyKvList": {
|
|
2283
|
-
"type": "object",
|
|
2284
|
-
"required": [
|
|
2285
|
-
"kv_list_value"
|
|
2286
|
-
],
|
|
2287
|
-
"properties": {
|
|
2288
|
-
"kv_list_value": {
|
|
2289
|
-
"type": "array",
|
|
2290
|
-
"items": {
|
|
2291
|
-
"$ref": "#/$defs/Common.Attribute"
|
|
2292
|
-
},
|
|
2293
|
-
"description": "Key-value pairs"
|
|
2294
|
-
}
|
|
2295
|
-
},
|
|
2296
|
-
"unevaluatedProperties": {
|
|
2297
|
-
"not": {}
|
|
2298
|
-
},
|
|
2299
|
-
"description": "Structured key-value log body"
|
|
2300
|
-
},
|
|
2301
|
-
"OTel.Logs.LogBodyString": {
|
|
2302
|
-
"type": "object",
|
|
2303
|
-
"required": [
|
|
2304
|
-
"string_value"
|
|
2305
|
-
],
|
|
2306
|
-
"properties": {
|
|
2307
|
-
"string_value": {
|
|
2308
|
-
"type": "string",
|
|
2309
|
-
"description": "String value"
|
|
2310
|
-
}
|
|
2311
|
-
},
|
|
2312
|
-
"unevaluatedProperties": {
|
|
2313
|
-
"not": {}
|
|
2314
|
-
},
|
|
2315
|
-
"description": "String log body"
|
|
2316
|
-
},
|
|
2317
2231
|
"OTel.Logs.LogRecord": {
|
|
2318
2232
|
"type": "object",
|
|
2319
2233
|
"required": [
|
|
@@ -2341,8 +2255,8 @@
|
|
|
2341
2255
|
"description": "Severity text (DEBUG, INFO, WARN, ERROR, etc.)"
|
|
2342
2256
|
},
|
|
2343
2257
|
"body": {
|
|
2344
|
-
"$ref": "#/$defs/
|
|
2345
|
-
"description": "Log body
|
|
2258
|
+
"$ref": "#/$defs/Common.AttributeValue",
|
|
2259
|
+
"description": "Log body: the OTLP AnyValue, projected exactly like an attribute value"
|
|
2346
2260
|
},
|
|
2347
2261
|
"attributes": {
|
|
2348
2262
|
"type": "array",
|
|
@@ -13124,25 +13124,43 @@
|
|
|
13124
13124
|
},
|
|
13125
13125
|
"description": "Tagged recursive OTLP key-value-list, distinct from other object-shaped attribute variants."
|
|
13126
13126
|
},
|
|
13127
|
-
"Common.
|
|
13128
|
-
"
|
|
13127
|
+
"Common.AttributeObjectValue": {
|
|
13128
|
+
"type": "object",
|
|
13129
|
+
"oneOf": [
|
|
13129
13130
|
{
|
|
13130
|
-
"
|
|
13131
|
+
"$ref": "#/components/schemas/Common.AttributeIntValue"
|
|
13131
13132
|
},
|
|
13132
13133
|
{
|
|
13133
|
-
"
|
|
13134
|
+
"$ref": "#/components/schemas/Common.AttributeDoubleValue"
|
|
13134
13135
|
},
|
|
13135
13136
|
{
|
|
13136
|
-
"
|
|
13137
|
+
"$ref": "#/components/schemas/Common.AttributeBytesValue"
|
|
13137
13138
|
},
|
|
13138
13139
|
{
|
|
13139
|
-
"$ref": "#/components/schemas/Common.
|
|
13140
|
+
"$ref": "#/components/schemas/Common.AttributeKeyValueListValue"
|
|
13141
|
+
}
|
|
13142
|
+
],
|
|
13143
|
+
"discriminator": {
|
|
13144
|
+
"propertyName": "type",
|
|
13145
|
+
"mapping": {
|
|
13146
|
+
"int": "#/components/schemas/Common.AttributeIntValue",
|
|
13147
|
+
"double": "#/components/schemas/Common.AttributeDoubleValue",
|
|
13148
|
+
"bytes": "#/components/schemas/Common.AttributeBytesValue",
|
|
13149
|
+
"kvlist": "#/components/schemas/Common.AttributeKeyValueListValue"
|
|
13150
|
+
}
|
|
13151
|
+
},
|
|
13152
|
+
"description": "Object-shaped AttributeValue variants. The variant name is the wire `type` tag."
|
|
13153
|
+
},
|
|
13154
|
+
"Common.AttributeValue": {
|
|
13155
|
+
"anyOf": [
|
|
13156
|
+
{
|
|
13157
|
+
"type": "null"
|
|
13140
13158
|
},
|
|
13141
13159
|
{
|
|
13142
|
-
"
|
|
13160
|
+
"type": "string"
|
|
13143
13161
|
},
|
|
13144
13162
|
{
|
|
13145
|
-
"
|
|
13163
|
+
"type": "boolean"
|
|
13146
13164
|
},
|
|
13147
13165
|
{
|
|
13148
13166
|
"type": "array",
|
|
@@ -13151,10 +13169,10 @@
|
|
|
13151
13169
|
}
|
|
13152
13170
|
},
|
|
13153
13171
|
{
|
|
13154
|
-
"$ref": "#/components/schemas/Common.
|
|
13172
|
+
"$ref": "#/components/schemas/Common.AttributeObjectValue"
|
|
13155
13173
|
}
|
|
13156
13174
|
],
|
|
13157
|
-
"description": "Lossless JSON projection of an OpenTelemetry AnyValue attribute."
|
|
13175
|
+
"description": "Lossless JSON projection of an OpenTelemetry AnyValue attribute. Primitive variants are bare JSON values; object variants carry a `type` tag."
|
|
13158
13176
|
},
|
|
13159
13177
|
"Common.Attributes": {
|
|
13160
13178
|
"type": "object",
|
|
@@ -13892,9 +13910,7 @@
|
|
|
13892
13910
|
"type": "string",
|
|
13893
13911
|
"minLength": 1,
|
|
13894
13912
|
"maxLength": 128,
|
|
13895
|
-
"description": "Unique session identifier"
|
|
13896
|
-
"x-csharp-type": "SessionId",
|
|
13897
|
-
"x-csharp-struct": true
|
|
13913
|
+
"description": "Unique session identifier"
|
|
13898
13914
|
},
|
|
13899
13915
|
"Common.Sha256Hash": {
|
|
13900
13916
|
"type": "string",
|
|
@@ -13911,9 +13927,7 @@
|
|
|
13911
13927
|
"description": "Unique span identifier (16 lowercase hex characters)",
|
|
13912
13928
|
"examples": [
|
|
13913
13929
|
"b7ad6b7169203331"
|
|
13914
|
-
]
|
|
13915
|
-
"x-csharp-type": "SpanId",
|
|
13916
|
-
"x-csharp-struct": true
|
|
13930
|
+
]
|
|
13917
13931
|
},
|
|
13918
13932
|
"Common.Temperature": {
|
|
13919
13933
|
"type": "number",
|
|
@@ -13943,9 +13957,7 @@
|
|
|
13943
13957
|
"description": "Unique trace identifier (32 lowercase hex characters)",
|
|
13944
13958
|
"examples": [
|
|
13945
13959
|
"0af7651916cd43dd8448eb211c80319c"
|
|
13946
|
-
]
|
|
13947
|
-
"x-csharp-type": "TraceId",
|
|
13948
|
-
"x-csharp-struct": true
|
|
13960
|
+
]
|
|
13949
13961
|
},
|
|
13950
13962
|
"Common.TraceParent": {
|
|
13951
13963
|
"type": "string",
|
|
@@ -15196,104 +15208,6 @@
|
|
|
15196
15208
|
],
|
|
15197
15209
|
"description": "Telemetry SDK language"
|
|
15198
15210
|
},
|
|
15199
|
-
"OTel.Logs.LogBody": {
|
|
15200
|
-
"type": "object",
|
|
15201
|
-
"oneOf": [
|
|
15202
|
-
{
|
|
15203
|
-
"$ref": "#/components/schemas/OTel.Logs.LogBodyString"
|
|
15204
|
-
},
|
|
15205
|
-
{
|
|
15206
|
-
"$ref": "#/components/schemas/OTel.Logs.LogBodyKvList"
|
|
15207
|
-
},
|
|
15208
|
-
{
|
|
15209
|
-
"$ref": "#/components/schemas/OTel.Logs.LogBodyArray"
|
|
15210
|
-
},
|
|
15211
|
-
{
|
|
15212
|
-
"$ref": "#/components/schemas/OTel.Logs.LogBodyBytes"
|
|
15213
|
-
}
|
|
15214
|
-
],
|
|
15215
|
-
"discriminator": {
|
|
15216
|
-
"propertyName": "kind",
|
|
15217
|
-
"mapping": {
|
|
15218
|
-
"stringBody": "#/components/schemas/OTel.Logs.LogBodyString",
|
|
15219
|
-
"kvListBody": "#/components/schemas/OTel.Logs.LogBodyKvList",
|
|
15220
|
-
"arrayBody": "#/components/schemas/OTel.Logs.LogBodyArray",
|
|
15221
|
-
"bytesBody": "#/components/schemas/OTel.Logs.LogBodyBytes"
|
|
15222
|
-
}
|
|
15223
|
-
},
|
|
15224
|
-
"description": "Log body content - can be string, structured, or bytes"
|
|
15225
|
-
},
|
|
15226
|
-
"OTel.Logs.LogBodyArray": {
|
|
15227
|
-
"type": "object",
|
|
15228
|
-
"required": [
|
|
15229
|
-
"array_value"
|
|
15230
|
-
],
|
|
15231
|
-
"properties": {
|
|
15232
|
-
"array_value": {
|
|
15233
|
-
"type": "array",
|
|
15234
|
-
"items": {
|
|
15235
|
-
"$ref": "#/components/schemas/Common.AttributeValue"
|
|
15236
|
-
},
|
|
15237
|
-
"description": "Array of values"
|
|
15238
|
-
}
|
|
15239
|
-
},
|
|
15240
|
-
"unevaluatedProperties": {
|
|
15241
|
-
"not": {}
|
|
15242
|
-
},
|
|
15243
|
-
"description": "Array log body"
|
|
15244
|
-
},
|
|
15245
|
-
"OTel.Logs.LogBodyBytes": {
|
|
15246
|
-
"type": "object",
|
|
15247
|
-
"required": [
|
|
15248
|
-
"bytes_value"
|
|
15249
|
-
],
|
|
15250
|
-
"properties": {
|
|
15251
|
-
"bytes_value": {
|
|
15252
|
-
"type": "string",
|
|
15253
|
-
"contentEncoding": "base64",
|
|
15254
|
-
"description": "Binary value (base64 encoded)"
|
|
15255
|
-
}
|
|
15256
|
-
},
|
|
15257
|
-
"unevaluatedProperties": {
|
|
15258
|
-
"not": {}
|
|
15259
|
-
},
|
|
15260
|
-
"description": "Binary log body"
|
|
15261
|
-
},
|
|
15262
|
-
"OTel.Logs.LogBodyKvList": {
|
|
15263
|
-
"type": "object",
|
|
15264
|
-
"required": [
|
|
15265
|
-
"kv_list_value"
|
|
15266
|
-
],
|
|
15267
|
-
"properties": {
|
|
15268
|
-
"kv_list_value": {
|
|
15269
|
-
"type": "array",
|
|
15270
|
-
"items": {
|
|
15271
|
-
"$ref": "#/components/schemas/Common.Attribute"
|
|
15272
|
-
},
|
|
15273
|
-
"description": "Key-value pairs"
|
|
15274
|
-
}
|
|
15275
|
-
},
|
|
15276
|
-
"unevaluatedProperties": {
|
|
15277
|
-
"not": {}
|
|
15278
|
-
},
|
|
15279
|
-
"description": "Structured key-value log body"
|
|
15280
|
-
},
|
|
15281
|
-
"OTel.Logs.LogBodyString": {
|
|
15282
|
-
"type": "object",
|
|
15283
|
-
"required": [
|
|
15284
|
-
"string_value"
|
|
15285
|
-
],
|
|
15286
|
-
"properties": {
|
|
15287
|
-
"string_value": {
|
|
15288
|
-
"type": "string",
|
|
15289
|
-
"description": "String value"
|
|
15290
|
-
}
|
|
15291
|
-
},
|
|
15292
|
-
"unevaluatedProperties": {
|
|
15293
|
-
"not": {}
|
|
15294
|
-
},
|
|
15295
|
-
"description": "String log body"
|
|
15296
|
-
},
|
|
15297
15211
|
"OTel.Logs.LogRecord": {
|
|
15298
15212
|
"type": "object",
|
|
15299
15213
|
"required": [
|
|
@@ -15321,8 +15235,8 @@
|
|
|
15321
15235
|
"description": "Severity text (DEBUG, INFO, WARN, ERROR, etc.)"
|
|
15322
15236
|
},
|
|
15323
15237
|
"body": {
|
|
15324
|
-
"$ref": "#/components/schemas/
|
|
15325
|
-
"description": "Log body
|
|
15238
|
+
"$ref": "#/components/schemas/Common.AttributeValue",
|
|
15239
|
+
"description": "Log body: the OTLP AnyValue, projected exactly like an attribute value"
|
|
15326
15240
|
},
|
|
15327
15241
|
"attributes": {
|
|
15328
15242
|
"type": "array",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AttributeValue } from "@ancplua/qyl-api-schema/types";
|
|
2
|
+
export { AttributeObjectValueTags, isAttributeObjectValue, matchAttributeValue, } from "../../generated/ts-runtime/runtime.js";
|
|
3
|
+
export type { AttributeObjectValueTag, AttributeValueHandlers } from "../../generated/ts-runtime/runtime.js";
|
|
4
|
+
/** An AttributeValue with the wire tags removed: what a reader sees, not how it travelled. */
|
|
5
|
+
export type DecodedAttributeValue = null | string | boolean | number | DecodedAttributeValue[] | {
|
|
6
|
+
readonly type: "bytes";
|
|
7
|
+
readonly base64: string;
|
|
8
|
+
} | {
|
|
9
|
+
readonly [key: string]: DecodedAttributeValue;
|
|
10
|
+
};
|
|
11
|
+
/** Strip the tags. int64 stays text so no digit is lost; bytes stay marked so they never read as a string. */
|
|
12
|
+
export declare function decodeAttributeValue(value: AttributeValue): DecodedAttributeValue;
|
|
13
|
+
/** One line of text for any value; never `[object Object]`. */
|
|
14
|
+
export declare function formatAttributeValue(value: AttributeValue): string;
|
|
15
|
+
/** The value when it is a plain string, otherwise undefined. */
|
|
16
|
+
export declare function attributeString(value: AttributeValue | undefined): string | undefined;
|
|
17
|
+
/** A JavaScript number when one can represent the value exactly, otherwise undefined. */
|
|
18
|
+
export declare function attributeNumber(value: AttributeValue | undefined): number | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* A stable text identity for grouping and hashing: the canonical wire JSON with object keys
|
|
21
|
+
* sorted. Two values with the same identity are the same attribute value.
|
|
22
|
+
*/
|
|
23
|
+
export declare function attributeIdentity(value: AttributeValue): string;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { matchAttributeValue } from "../../generated/ts-runtime/runtime.js";
|
|
2
|
+
export { AttributeObjectValueTags, isAttributeObjectValue, matchAttributeValue, } from "../../generated/ts-runtime/runtime.js";
|
|
3
|
+
/** Strip the tags. int64 stays text so no digit is lost; bytes stay marked so they never read as a string. */
|
|
4
|
+
export function decodeAttributeValue(value) {
|
|
5
|
+
return matchAttributeValue(value, {
|
|
6
|
+
emptyValue: () => null,
|
|
7
|
+
stringValue: (text) => text,
|
|
8
|
+
boolValue: (flag) => flag,
|
|
9
|
+
arrayValue: (items) => items.map(decodeAttributeValue),
|
|
10
|
+
int: (tagged) => tagged.value,
|
|
11
|
+
double: (tagged) => tagged.value,
|
|
12
|
+
bytes: (tagged) => ({ type: "bytes", base64: tagged.base64 }),
|
|
13
|
+
kvlist: (tagged) => Object.fromEntries(Object.entries(tagged.values).map(([key, nested]) => [key, decodeAttributeValue(nested)])),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/** One line of text for any value; never `[object Object]`. */
|
|
17
|
+
export function formatAttributeValue(value) {
|
|
18
|
+
const decoded = decodeAttributeValue(value);
|
|
19
|
+
if (decoded === null)
|
|
20
|
+
return "null";
|
|
21
|
+
if (typeof decoded === "string")
|
|
22
|
+
return decoded;
|
|
23
|
+
if (typeof decoded === "boolean" || typeof decoded === "number")
|
|
24
|
+
return String(decoded);
|
|
25
|
+
return JSON.stringify(decoded);
|
|
26
|
+
}
|
|
27
|
+
/** The value when it is a plain string, otherwise undefined. */
|
|
28
|
+
export function attributeString(value) {
|
|
29
|
+
return typeof value === "string" ? value : undefined;
|
|
30
|
+
}
|
|
31
|
+
/** A JavaScript number when one can represent the value exactly, otherwise undefined. */
|
|
32
|
+
export function attributeNumber(value) {
|
|
33
|
+
if (value === undefined)
|
|
34
|
+
return undefined;
|
|
35
|
+
return matchAttributeValue(value, {
|
|
36
|
+
emptyValue: () => undefined,
|
|
37
|
+
stringValue: () => undefined,
|
|
38
|
+
boolValue: () => undefined,
|
|
39
|
+
arrayValue: () => undefined,
|
|
40
|
+
int: (tagged) => {
|
|
41
|
+
const parsed = Number(tagged.value);
|
|
42
|
+
return Number.isSafeInteger(parsed) ? parsed : undefined;
|
|
43
|
+
},
|
|
44
|
+
double: (tagged) => Number(tagged.value),
|
|
45
|
+
bytes: () => undefined,
|
|
46
|
+
kvlist: () => undefined,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A stable text identity for grouping and hashing: the canonical wire JSON with object keys
|
|
51
|
+
* sorted. Two values with the same identity are the same attribute value.
|
|
52
|
+
*/
|
|
53
|
+
export function attributeIdentity(value) {
|
|
54
|
+
return JSON.stringify(sortKeys(value));
|
|
55
|
+
}
|
|
56
|
+
function sortKeys(value) {
|
|
57
|
+
return matchAttributeValue(value, {
|
|
58
|
+
emptyValue: () => null,
|
|
59
|
+
stringValue: (text) => text,
|
|
60
|
+
boolValue: (flag) => flag,
|
|
61
|
+
arrayValue: (items) => items.map(sortKeys),
|
|
62
|
+
int: (tagged) => ({ type: "int", value: tagged.value }),
|
|
63
|
+
double: (tagged) => ({ type: "double", value: tagged.value }),
|
|
64
|
+
bytes: (tagged) => ({ base64: tagged.base64, type: "bytes" }),
|
|
65
|
+
kvlist: (tagged) => ({
|
|
66
|
+
type: "kvlist",
|
|
67
|
+
values: Object.fromEntries(Object.entries(tagged.values).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0)).map(([key, nested]) => [key, sortKeys(nested)])),
|
|
68
|
+
}),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
@@ -396,9 +396,9 @@ export declare const FetchTelemetryViewValues: {
|
|
|
396
396
|
};
|
|
397
397
|
export type FetchTelemetryView = typeof FetchTelemetryViewValues[keyof typeof FetchTelemetryViewValues];
|
|
398
398
|
export type AttributeDouble = number | "NaN" | "Infinity" | "-Infinity";
|
|
399
|
-
export type AttributeValue = null | string | boolean |
|
|
399
|
+
export type AttributeValue = null | string | boolean | AttributeValue[] | AttributeObjectValue;
|
|
400
|
+
export type AttributeObjectValue = AttributeIntValue | AttributeDoubleValue | AttributeBytesValue | AttributeKeyValueListValue;
|
|
400
401
|
export type ApiError = NotFoundError | ValidationError | UnauthorizedError | ForbiddenError | ConflictError | RateLimitError | InternalServerError | BadGatewayError | ServiceUnavailableError;
|
|
401
|
-
export type LogBody = LogBodyString | LogBodyKvList | LogBodyArray | LogBodyBytes;
|
|
402
402
|
export type RunnerResourceEvents = RunnerResourceState;
|
|
403
403
|
export type RunnerLogEvents = RunnerLogLine;
|
|
404
404
|
export type WorkbenchServerConfiguration = WorkbenchStdioServerConfiguration | WorkbenchStreamableHttpServerConfiguration | WorkbenchBuiltinServerConfiguration;
|
|
@@ -643,7 +643,7 @@ export interface LogRecord {
|
|
|
643
643
|
"observed_time_unix_nano": string;
|
|
644
644
|
"severity_number": SeverityNumber;
|
|
645
645
|
"severity_text"?: SeverityText;
|
|
646
|
-
"body":
|
|
646
|
+
"body": AttributeValue;
|
|
647
647
|
"attributes"?: Attribute[];
|
|
648
648
|
"dropped_attributes_count"?: number;
|
|
649
649
|
"flags"?: number;
|
|
@@ -653,18 +653,6 @@ export interface LogRecord {
|
|
|
653
653
|
"resource": Resource;
|
|
654
654
|
"instrumentation_scope"?: InstrumentationScope;
|
|
655
655
|
}
|
|
656
|
-
export interface LogBodyString {
|
|
657
|
-
"string_value": string;
|
|
658
|
-
}
|
|
659
|
-
export interface LogBodyKvList {
|
|
660
|
-
"kv_list_value": Attribute[];
|
|
661
|
-
}
|
|
662
|
-
export interface LogBodyArray {
|
|
663
|
-
"array_value": AttributeValue[];
|
|
664
|
-
}
|
|
665
|
-
export interface LogBodyBytes {
|
|
666
|
-
"bytes_value": string;
|
|
667
|
-
}
|
|
668
656
|
export interface LogTemplate {
|
|
669
657
|
"template": string;
|
|
670
658
|
"parameters": Attribute[];
|
|
@@ -320,4 +320,4 @@ export const FetchTelemetryViewValues = {
|
|
|
320
320
|
};
|
|
321
321
|
// --- contract revision (scripts/emit-contract-revision.mjs) ---
|
|
322
322
|
/** Revision of the API contract these types were emitted from; compare against HealthReport.contract_revision. */
|
|
323
|
-
export const CONTRACT_REVISION = "sha256:
|
|
323
|
+
export const CONTRACT_REVISION = "sha256:5c1aa27ccdf48067";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AttributeBytesValue, AttributeDoubleValue, AttributeIntValue, AttributeKeyValueListValue, AttributeObjectValue, AttributeValue } from "./api.js";
|
|
2
|
+
export declare const AttributeObjectValueTags: readonly ["int", "double", "bytes", "kvlist"];
|
|
3
|
+
export type AttributeObjectValueTag = typeof AttributeObjectValueTags[number];
|
|
4
|
+
export declare function isAttributeObjectValue(value: unknown): value is AttributeObjectValue;
|
|
5
|
+
export interface AttributeValueHandlers<R> {
|
|
6
|
+
emptyValue: () => R;
|
|
7
|
+
stringValue: (value: string) => R;
|
|
8
|
+
boolValue: (value: boolean) => R;
|
|
9
|
+
arrayValue: (value: AttributeValue[]) => R;
|
|
10
|
+
int: (value: AttributeIntValue) => R;
|
|
11
|
+
double: (value: AttributeDoubleValue) => R;
|
|
12
|
+
bytes: (value: AttributeBytesValue) => R;
|
|
13
|
+
kvlist: (value: AttributeKeyValueListValue) => R;
|
|
14
|
+
}
|
|
15
|
+
/** Exhaustive over every AttributeValue variant; a handler per variant, no default. */
|
|
16
|
+
export declare function matchAttributeValue<R>(value: AttributeValue, handlers: AttributeValueHandlers<R>): R;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// <auto-generated/>
|
|
2
|
+
// Copyright (c) 2025-2026 ancplua
|
|
3
|
+
export const AttributeObjectValueTags = ["int", "double", "bytes", "kvlist"];
|
|
4
|
+
export function isAttributeObjectValue(value) {
|
|
5
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
6
|
+
&& AttributeObjectValueTags.includes(String(value.type));
|
|
7
|
+
}
|
|
8
|
+
/** Exhaustive over every AttributeValue variant; a handler per variant, no default. */
|
|
9
|
+
export function matchAttributeValue(value, handlers) {
|
|
10
|
+
if (value === null)
|
|
11
|
+
return handlers.emptyValue();
|
|
12
|
+
if (typeof value === "string")
|
|
13
|
+
return handlers.stringValue(value);
|
|
14
|
+
if (typeof value === "boolean")
|
|
15
|
+
return handlers.boolValue(value);
|
|
16
|
+
if (Array.isArray(value))
|
|
17
|
+
return handlers.arrayValue(value);
|
|
18
|
+
switch (value.type) {
|
|
19
|
+
case "int": return handlers.int(value);
|
|
20
|
+
case "double": return handlers.double(value);
|
|
21
|
+
case "bytes": return handlers.bytes(value);
|
|
22
|
+
case "kvlist": return handlers.kvlist(value);
|
|
23
|
+
default:
|
|
24
|
+
throw new TypeError(`AttributeObjectValue has unknown type tag '${String(value.type)}'.`);
|
|
25
|
+
}
|
|
26
|
+
}
|
package/otel/logs.tsp
CHANGED
|
@@ -40,8 +40,8 @@ model LogRecord {
|
|
|
40
40
|
@encodedName("application/json", "severity_text")
|
|
41
41
|
severityText?: SeverityText;
|
|
42
42
|
|
|
43
|
-
@doc("Log body
|
|
44
|
-
body:
|
|
43
|
+
@doc("Log body: the OTLP AnyValue, projected exactly like an attribute value")
|
|
44
|
+
body: AttributeValue;
|
|
45
45
|
|
|
46
46
|
@doc("Log attributes")
|
|
47
47
|
attributes?: Attribute[];
|
|
@@ -77,50 +77,6 @@ model LogRecord {
|
|
|
77
77
|
// Log Body Types (Discriminated Union)
|
|
78
78
|
// =============================================================================
|
|
79
79
|
|
|
80
|
-
@doc("Log body content - can be string, structured, or bytes")
|
|
81
|
-
@discriminated(#{ envelope: "none" })
|
|
82
|
-
union LogBody {
|
|
83
|
-
@doc("Plain string body")
|
|
84
|
-
stringBody: LogBodyString,
|
|
85
|
-
|
|
86
|
-
@doc("Structured key-value body")
|
|
87
|
-
kvListBody: LogBodyKvList,
|
|
88
|
-
|
|
89
|
-
@doc("Array body")
|
|
90
|
-
arrayBody: LogBodyArray,
|
|
91
|
-
|
|
92
|
-
@doc("Binary body")
|
|
93
|
-
bytesBody: LogBodyBytes,
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
@doc("String log body")
|
|
97
|
-
model LogBodyString {
|
|
98
|
-
@doc("String value")
|
|
99
|
-
@encodedName("application/json", "string_value")
|
|
100
|
-
stringValue: string;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
@doc("Structured key-value log body")
|
|
104
|
-
model LogBodyKvList {
|
|
105
|
-
@doc("Key-value pairs")
|
|
106
|
-
@encodedName("application/json", "kv_list_value")
|
|
107
|
-
kvListValue: Attribute[];
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
@doc("Array log body")
|
|
111
|
-
model LogBodyArray {
|
|
112
|
-
@doc("Array of values")
|
|
113
|
-
@encodedName("application/json", "array_value")
|
|
114
|
-
arrayValue: AttributeValue[];
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
@doc("Binary log body")
|
|
118
|
-
model LogBodyBytes {
|
|
119
|
-
@doc("Binary value (base64 encoded)")
|
|
120
|
-
@encodedName("application/json", "bytes_value")
|
|
121
|
-
bytesValue: bytes;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
80
|
// =============================================================================
|
|
125
81
|
// Structured Log Templates
|
|
126
82
|
// =============================================================================
|
package/package.json
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ancplua/qyl-api-schema",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.0",
|
|
4
4
|
"description": "TypeSpec source of truth for qyl API contracts. Emits OpenAPI, JSON Schema, Qyl.Api.Contracts DTOs, and TypeScript contract types; not an OpenTelemetry package, storage schema, or server implementation.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
+
"packageManager": "bun@1.4.2",
|
|
7
|
+
"workspaces": [
|
|
8
|
+
"emitters/csharp",
|
|
9
|
+
"emitters/ts-types",
|
|
10
|
+
"emitters/qyl-lint"
|
|
11
|
+
],
|
|
6
12
|
"repository": {
|
|
7
13
|
"type": "git",
|
|
8
14
|
"url": "git+https://github.com/ANcpLua/qyl-api-schema.git"
|
|
@@ -47,6 +53,11 @@
|
|
|
47
53
|
"types": "./generated/zod-runtime/index.d.ts",
|
|
48
54
|
"import": "./generated/zod-runtime/index.js",
|
|
49
55
|
"default": "./generated/zod-runtime/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./runtime": {
|
|
58
|
+
"types": "./generated/runtime/index.d.ts",
|
|
59
|
+
"import": "./generated/runtime/index.js",
|
|
60
|
+
"default": "./generated/runtime/index.js"
|
|
50
61
|
}
|
|
51
62
|
},
|
|
52
63
|
"files": [
|
|
@@ -70,12 +81,15 @@
|
|
|
70
81
|
"otel/span.tsp",
|
|
71
82
|
"generated/ts-runtime/api.d.ts",
|
|
72
83
|
"generated/ts-runtime/api.js",
|
|
84
|
+
"generated/ts-runtime/runtime.d.ts",
|
|
85
|
+
"generated/ts-runtime/runtime.js",
|
|
73
86
|
"generated/openapi/qyl.openapi.json",
|
|
74
87
|
"generated/json-schema/qyl-api-schema.json",
|
|
75
88
|
"generated/zod-runtime/index.d.ts",
|
|
76
89
|
"generated/zod-runtime/index.js",
|
|
77
90
|
"README.md",
|
|
78
|
-
"LICENSE"
|
|
91
|
+
"LICENSE",
|
|
92
|
+
"generated/runtime"
|
|
79
93
|
],
|
|
80
94
|
"publishConfig": {
|
|
81
95
|
"access": "public",
|
|
@@ -89,24 +103,26 @@
|
|
|
89
103
|
"build:zod-runtime": "tsc -p tsconfig.zod.json",
|
|
90
104
|
"build:json-schema": "node scripts/openapi-to-json-schema.mjs",
|
|
91
105
|
"emit:contract-revision": "node scripts/emit-contract-revision.mjs",
|
|
92
|
-
"prepare": "
|
|
93
|
-
"prepack": "
|
|
94
|
-
"compile": "
|
|
106
|
+
"prepare": "bun run build:emitters",
|
|
107
|
+
"prepack": "bun run compile",
|
|
108
|
+
"compile": "bun run clean:generated && bun run build:emitters && tsp compile main.tsp && bun run emit:contract-revision && bun run build:json-schema && bun run build:ts-runtime && bun run build:runtime && bun run build:zod-runtime",
|
|
95
109
|
"format": "tsp format **/*.tsp",
|
|
96
|
-
"lint": "
|
|
97
|
-
"lint:public": "
|
|
110
|
+
"lint": "bun run build:emitters && tsp compile main.tsp --no-emit --warn-as-error",
|
|
111
|
+
"lint:public": "bun run build:emitters && tsp compile index.tsp --no-emit --warn-as-error",
|
|
98
112
|
"verify:routes": "node scripts/verify-route-contracts.mjs",
|
|
99
113
|
"verify:contracts": "node scripts/verify-contract-fixtures.mjs",
|
|
100
|
-
"verify:zod-contracts": "
|
|
101
|
-
"verify:lint-rules": "
|
|
114
|
+
"verify:zod-contracts": "bun run build:zod-runtime && node scripts/verify-zod-contracts.mjs",
|
|
115
|
+
"verify:lint-rules": "bun run build:emitters && node scripts/verify-lint-rules.mjs",
|
|
116
|
+
"lint:js": "oxlint .",
|
|
117
|
+
"build:runtime": "tsc -p tsconfig.runtime.json"
|
|
102
118
|
},
|
|
103
119
|
"peerDependencies": {
|
|
104
120
|
"@typespec/compiler": "^1.13.0 || >=1.13.0-dev.0",
|
|
105
|
-
"@typespec/events": "^0.83.0 || ^0.84.0 || ^0.85.0",
|
|
121
|
+
"@typespec/events": "^0.83.0 || ^0.84.0 || ^0.85.0 || ^0.86.0",
|
|
106
122
|
"@typespec/http": "^1.13.0",
|
|
107
123
|
"@typespec/openapi": "^1.13.0",
|
|
108
124
|
"@typespec/openapi3": "^1.13.0",
|
|
109
|
-
"@typespec/sse": ">=0.83.0 <0.
|
|
125
|
+
"@typespec/sse": ">=0.83.0 <0.87.0",
|
|
110
126
|
"zod": ">=4.5.0 <5"
|
|
111
127
|
},
|
|
112
128
|
"peerDependenciesMeta": {
|
|
@@ -133,17 +149,19 @@
|
|
|
133
149
|
}
|
|
134
150
|
},
|
|
135
151
|
"devDependencies": {
|
|
136
|
-
"@ancplua/typespec-emit-csharp": "
|
|
137
|
-
"@ancplua/typespec-emit-ts-types": "
|
|
138
|
-
"@ancplua/typespec-qyl-lint": "
|
|
152
|
+
"@ancplua/typespec-emit-csharp": "*",
|
|
153
|
+
"@ancplua/typespec-emit-ts-types": "*",
|
|
154
|
+
"@ancplua/typespec-qyl-lint": "*",
|
|
139
155
|
"@types/node": "26.4.1",
|
|
140
|
-
"@typespec/compiler": "1.
|
|
141
|
-
"@typespec/events": "0.
|
|
142
|
-
"@typespec/http": "1.
|
|
143
|
-
"@typespec/openapi": "1.
|
|
144
|
-
"@typespec/openapi3": "1.
|
|
145
|
-
"@typespec/sse": "0.
|
|
156
|
+
"@typespec/compiler": "1.16.0",
|
|
157
|
+
"@typespec/events": "0.86.0",
|
|
158
|
+
"@typespec/http": "1.16.0",
|
|
159
|
+
"@typespec/openapi": "1.16.0",
|
|
160
|
+
"@typespec/openapi3": "1.16.0",
|
|
161
|
+
"@typespec/sse": "0.86.0",
|
|
146
162
|
"ajv": "8.20.0",
|
|
163
|
+
"oxlint": "^1.83.0",
|
|
164
|
+
"oxlint-tsgolint": "^7.0.2001",
|
|
147
165
|
"typescript": "7.0.2",
|
|
148
166
|
"zod": "4.5.4"
|
|
149
167
|
}
|