@typespec/http-client-python 0.20.3 → 0.22.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/dist/emitter/http.d.ts.map +1 -1
- package/dist/emitter/http.js +4 -2
- package/dist/emitter/http.js.map +1 -1
- package/dist/emitter/types.d.ts.map +1 -1
- package/dist/emitter/types.js +9 -1
- package/dist/emitter/types.js.map +1 -1
- package/emitter/src/http.ts +4 -2
- package/emitter/src/types.ts +10 -1
- package/emitter/temp/tsconfig.tsbuildinfo +1 -1
- package/eng/scripts/ci/regenerate.ts +1 -1
- package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
- package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
- package/generator/build/lib/pygen/codegen/models/__init__.py +2 -0
- package/generator/build/lib/pygen/codegen/models/code_model.py +15 -0
- package/generator/build/lib/pygen/codegen/models/imports.py +1 -1
- package/generator/build/lib/pygen/codegen/models/paging_operation.py +1 -0
- package/generator/build/lib/pygen/codegen/models/primitive_types.py +33 -0
- package/generator/build/lib/pygen/codegen/models/property.py +1 -0
- package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +2 -3
- package/generator/build/lib/pygen/codegen/serializers/client_serializer.py +1 -1
- package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +29 -11
- package/generator/build/lib/pygen/codegen/serializers/model_serializer.py +4 -3
- package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +64 -1
- package/generator/build/lib/pygen/codegen/templates/operation_tools.jinja2 +1 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +4 -1
- package/generator/build/lib/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +4 -1
- package/generator/build/lib/pygen/codegen/templates/utils.py.jinja2 +5 -4
- package/generator/build/lib/pygen/preprocess/__init__.py +23 -12
- package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
- package/generator/pygen/codegen/models/__init__.py +2 -0
- package/generator/pygen/codegen/models/code_model.py +15 -0
- package/generator/pygen/codegen/models/imports.py +1 -1
- package/generator/pygen/codegen/models/paging_operation.py +1 -0
- package/generator/pygen/codegen/models/primitive_types.py +33 -0
- package/generator/pygen/codegen/models/property.py +1 -0
- package/generator/pygen/codegen/serializers/builder_serializer.py +2 -3
- package/generator/pygen/codegen/serializers/client_serializer.py +1 -1
- package/generator/pygen/codegen/serializers/general_serializer.py +29 -11
- package/generator/pygen/codegen/serializers/model_serializer.py +4 -3
- package/generator/pygen/codegen/templates/model_base.py.jinja2 +64 -1
- package/generator/pygen/codegen/templates/operation_tools.jinja2 +1 -1
- package/generator/pygen/codegen/templates/packaging_templates/pyproject.toml.jinja2 +4 -1
- package/generator/pygen/codegen/templates/packaging_templates/setup.py.jinja2 +4 -1
- package/generator/pygen/codegen/templates/utils.py.jinja2 +5 -4
- package/generator/pygen/preprocess/__init__.py +23 -12
- package/generator/test/azure/mock_api_tests/asynctests/test_azure_client_generator_core_next_link_verb_async.py +28 -0
- package/generator/test/azure/mock_api_tests/test_azure_client_generator_core_next_link_verb.py +27 -0
- package/generator/test/azure/mock_api_tests/test_model_base_flatten_compatibility.py +251 -0
- package/generator/test/azure/requirements.txt +3 -0
- package/generator/test/unbranded/requirements.txt +1 -0
- package/generator/test/unittests/test_name_converter.py +1 -1
- package/package.json +33 -33
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# ------------------------------------
|
|
2
|
+
# Copyright (c) Microsoft Corporation.
|
|
3
|
+
# Licensed under the MIT License.
|
|
4
|
+
# ------------------------------------
|
|
5
|
+
import datetime
|
|
6
|
+
from typing import (
|
|
7
|
+
Any,
|
|
8
|
+
Mapping,
|
|
9
|
+
Optional,
|
|
10
|
+
overload,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from specs.azure.clientgenerator.core.flattenproperty._utils.model_base import (
|
|
14
|
+
Model,
|
|
15
|
+
rest_field,
|
|
16
|
+
)
|
|
17
|
+
from azure.core.serialization import attribute_list
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ModelProperty(Model):
|
|
21
|
+
"""This is a test model."""
|
|
22
|
+
|
|
23
|
+
value: str = rest_field()
|
|
24
|
+
"""Required."""
|
|
25
|
+
|
|
26
|
+
@overload
|
|
27
|
+
def __init__(
|
|
28
|
+
self,
|
|
29
|
+
*,
|
|
30
|
+
value: str,
|
|
31
|
+
) -> None: ...
|
|
32
|
+
|
|
33
|
+
@overload
|
|
34
|
+
def __init__(self, mapping: Mapping[str, Any]) -> None:
|
|
35
|
+
"""
|
|
36
|
+
:param mapping: raw JSON to initialize the model.
|
|
37
|
+
:type mapping: Mapping[str, Any]
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
|
41
|
+
super().__init__(*args, **kwargs)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class ChildModel(Model):
|
|
45
|
+
"""This is the child model to be flattened.
|
|
46
|
+
|
|
47
|
+
:ivar description: Required.
|
|
48
|
+
:vartype description: str
|
|
49
|
+
:ivar age: Required.
|
|
50
|
+
:vartype age: int
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
description: str = rest_field()
|
|
54
|
+
"""Required."""
|
|
55
|
+
age: int = rest_field()
|
|
56
|
+
"""Required."""
|
|
57
|
+
model_property: "ModelProperty" = rest_field(name="modelProperty")
|
|
58
|
+
"""Required."""
|
|
59
|
+
datetime_default: datetime.datetime = rest_field(name="datetimeDefault")
|
|
60
|
+
datetime_rfc3339: datetime.datetime = rest_field(name="datetimeRfc3339", format="rfc3339")
|
|
61
|
+
datetime_rfc7231: datetime.datetime = rest_field(name="datetimeRfc7231", format="rfc7231")
|
|
62
|
+
datetime_unix_timestamp: datetime.datetime = rest_field(name="datetimeUnixTimestamp", format="unix-timestamp")
|
|
63
|
+
|
|
64
|
+
@overload
|
|
65
|
+
def __init__(
|
|
66
|
+
self,
|
|
67
|
+
*,
|
|
68
|
+
description: str,
|
|
69
|
+
age: int,
|
|
70
|
+
model_property: "ModelProperty",
|
|
71
|
+
datetime_default: datetime.datetime,
|
|
72
|
+
datetime_rfc3339: datetime.datetime,
|
|
73
|
+
datetime_rfc7231: datetime.datetime,
|
|
74
|
+
datetime_unix_timestamp: datetime.datetime,
|
|
75
|
+
) -> None: ...
|
|
76
|
+
|
|
77
|
+
@overload
|
|
78
|
+
def __init__(self, mapping: Mapping[str, Any]) -> None:
|
|
79
|
+
"""
|
|
80
|
+
:param mapping: raw JSON to initialize the model.
|
|
81
|
+
:type mapping: Mapping[str, Any]
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
|
85
|
+
super().__init__(*args, **kwargs)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class FlattenModel(Model):
|
|
89
|
+
"""This is the model with one level of flattening."""
|
|
90
|
+
|
|
91
|
+
name: str = rest_field()
|
|
92
|
+
"""Required."""
|
|
93
|
+
properties: "ChildModel" = rest_field()
|
|
94
|
+
"""Required."""
|
|
95
|
+
|
|
96
|
+
__flattened_items = [
|
|
97
|
+
"description",
|
|
98
|
+
"age",
|
|
99
|
+
"model_property",
|
|
100
|
+
"datetime_default",
|
|
101
|
+
"datetime_rfc3339",
|
|
102
|
+
"datetime_rfc7231",
|
|
103
|
+
"datetime_unix_timestamp",
|
|
104
|
+
]
|
|
105
|
+
|
|
106
|
+
@overload
|
|
107
|
+
def __init__(
|
|
108
|
+
self,
|
|
109
|
+
*,
|
|
110
|
+
name: str,
|
|
111
|
+
properties: "ChildModel",
|
|
112
|
+
) -> None: ...
|
|
113
|
+
|
|
114
|
+
@overload
|
|
115
|
+
def __init__(self, mapping: Mapping[str, Any]) -> None:
|
|
116
|
+
"""
|
|
117
|
+
:param mapping: raw JSON to initialize the model.
|
|
118
|
+
:type mapping: Mapping[str, Any]
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
|
122
|
+
_flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
|
|
123
|
+
super().__init__(*args, **kwargs)
|
|
124
|
+
for k, v in _flattened_input.items():
|
|
125
|
+
setattr(self, k, v)
|
|
126
|
+
|
|
127
|
+
def __getattr__(self, name: str) -> Any:
|
|
128
|
+
if name in self.__flattened_items:
|
|
129
|
+
if self.properties is None:
|
|
130
|
+
return None
|
|
131
|
+
return getattr(self.properties, name)
|
|
132
|
+
raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
|
|
133
|
+
|
|
134
|
+
def __setattr__(self, key: str, value: Any) -> None:
|
|
135
|
+
if key in self.__flattened_items:
|
|
136
|
+
if self.properties is None:
|
|
137
|
+
self.properties = self._attr_to_rest_field["properties"]._class_type()
|
|
138
|
+
setattr(self.properties, key, value)
|
|
139
|
+
else:
|
|
140
|
+
super().__setattr__(key, value)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def test_model_initialization():
|
|
144
|
+
model = FlattenModel(
|
|
145
|
+
name="test",
|
|
146
|
+
description="a description",
|
|
147
|
+
age=30,
|
|
148
|
+
model_property=ModelProperty(value="test value"),
|
|
149
|
+
datetime_default=datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc),
|
|
150
|
+
datetime_rfc3339=datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc),
|
|
151
|
+
datetime_rfc7231=datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc),
|
|
152
|
+
datetime_unix_timestamp=datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc),
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
assert model.name == "test"
|
|
156
|
+
|
|
157
|
+
assert model.description == "a description"
|
|
158
|
+
assert model.properties.description == "a description"
|
|
159
|
+
|
|
160
|
+
assert model.age == 30
|
|
161
|
+
assert model.properties.age == 30
|
|
162
|
+
|
|
163
|
+
assert model.model_property.value == "test value"
|
|
164
|
+
assert model.properties.model_property == ModelProperty(value="test value")
|
|
165
|
+
assert model.properties.model_property.value == "test value"
|
|
166
|
+
|
|
167
|
+
assert model.datetime_default == datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc)
|
|
168
|
+
assert model.properties.datetime_default == datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc)
|
|
169
|
+
assert model.properties["datetimeDefault"] == "2023-01-12T00:00:00Z"
|
|
170
|
+
|
|
171
|
+
assert model.datetime_rfc3339 == datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc)
|
|
172
|
+
assert model.properties.datetime_rfc3339 == datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc)
|
|
173
|
+
assert model.properties["datetimeRfc3339"] == "2023-01-12T00:00:00Z"
|
|
174
|
+
|
|
175
|
+
assert model.datetime_rfc7231 == datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc)
|
|
176
|
+
assert model.properties.datetime_rfc7231 == datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc)
|
|
177
|
+
assert model.properties["datetimeRfc7231"] == "Thu, 12 Jan 2023 00:00:00 GMT"
|
|
178
|
+
|
|
179
|
+
assert model.datetime_unix_timestamp == datetime.datetime(2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc)
|
|
180
|
+
assert model.properties.datetime_unix_timestamp == datetime.datetime(
|
|
181
|
+
2023, 1, 12, 0, 0, 0, tzinfo=datetime.timezone.utc
|
|
182
|
+
)
|
|
183
|
+
assert model.properties["datetimeUnixTimestamp"] == 1673481600
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
class FlattenModelWithOptionalProperties(Model):
|
|
187
|
+
"""This is the model with one level of flattening and optional properties."""
|
|
188
|
+
|
|
189
|
+
name: str = rest_field()
|
|
190
|
+
"""Required."""
|
|
191
|
+
properties: Optional["ModelProperty"] = rest_field()
|
|
192
|
+
"""Optional."""
|
|
193
|
+
|
|
194
|
+
__flattened_items = ["value"]
|
|
195
|
+
|
|
196
|
+
@overload
|
|
197
|
+
def __init__(
|
|
198
|
+
self,
|
|
199
|
+
*,
|
|
200
|
+
name: str,
|
|
201
|
+
properties: Optional["ModelProperty"],
|
|
202
|
+
) -> None: ...
|
|
203
|
+
|
|
204
|
+
@overload
|
|
205
|
+
def __init__(self, mapping: Mapping[str, Any]) -> None:
|
|
206
|
+
"""
|
|
207
|
+
:param mapping: raw JSON to initialize the model.
|
|
208
|
+
:type mapping: Mapping[str, Any]
|
|
209
|
+
"""
|
|
210
|
+
|
|
211
|
+
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
|
212
|
+
_flattened_input = {k: kwargs.pop(k) for k in kwargs.keys() & self.__flattened_items}
|
|
213
|
+
super().__init__(*args, **kwargs)
|
|
214
|
+
for k, v in _flattened_input.items():
|
|
215
|
+
setattr(self, k, v)
|
|
216
|
+
|
|
217
|
+
def __getattr__(self, name: str) -> Any:
|
|
218
|
+
if name in self.__flattened_items:
|
|
219
|
+
if self.properties is None:
|
|
220
|
+
return None
|
|
221
|
+
return getattr(self.properties, name)
|
|
222
|
+
raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
|
|
223
|
+
|
|
224
|
+
def __setattr__(self, key: str, value: Any) -> None:
|
|
225
|
+
if key in self.__flattened_items:
|
|
226
|
+
if self.properties is None:
|
|
227
|
+
self.properties = self._attr_to_rest_field["properties"]._class_type()
|
|
228
|
+
setattr(self.properties, key, value)
|
|
229
|
+
else:
|
|
230
|
+
super().__setattr__(key, value)
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
def test_model_with_optional_properties_initialization():
|
|
234
|
+
model = FlattenModelWithOptionalProperties(
|
|
235
|
+
name="test",
|
|
236
|
+
value="test value",
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
assert model.name == "test"
|
|
240
|
+
|
|
241
|
+
assert model.value == "test value"
|
|
242
|
+
assert model.properties.value == "test value"
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
def test_model_with_optional_properties_attribute_list():
|
|
246
|
+
model = FlattenModelWithOptionalProperties(
|
|
247
|
+
name="test",
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
attrs = attribute_list(model)
|
|
251
|
+
assert sorted(attrs) == sorted(["name", "value"])
|
|
@@ -14,6 +14,8 @@ azure-mgmt-core==1.6.0
|
|
|
14
14
|
-e ./generated/azure-client-generator-core-usage
|
|
15
15
|
-e ./generated/azure-client-generator-core-override
|
|
16
16
|
-e ./generated/azure-client-generator-core-client-location
|
|
17
|
+
-e ./generated/azure-client-generator-core-alternate-type
|
|
18
|
+
-e ./generated/azure-client-generator-core-next-link-verb
|
|
17
19
|
-e ./generated/azure-core-basic
|
|
18
20
|
-e ./generated/azure-core-scalar
|
|
19
21
|
-e ./generated/azure-core-lro-rpc
|
|
@@ -52,6 +54,7 @@ azure-mgmt-core==1.6.0
|
|
|
52
54
|
-e ./generated/setuppy-authentication-union
|
|
53
55
|
-e ./generated/encode-duration
|
|
54
56
|
-e ./generated/encode-numeric
|
|
57
|
+
-e ./generated/encode-array
|
|
55
58
|
-e ./generated/parameters-basic
|
|
56
59
|
-e ./generated/parameters-collection-format
|
|
57
60
|
-e ./generated/parameters-path
|
|
@@ -8,7 +8,7 @@ from pygen.preprocess.python_mappings import PadType
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def pad_reserved_words(name: str, pad_type: PadType) -> str:
|
|
11
|
-
return PreProcessPlugin(output_folder="").pad_reserved_words(name, pad_type)
|
|
11
|
+
return PreProcessPlugin(output_folder="").pad_reserved_words(name, pad_type, {})
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def test_escaped_reserved_words():
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/http-client-python",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec emitter for Python SDKs",
|
|
6
6
|
"homepage": "https://typespec.io",
|
|
@@ -54,20 +54,20 @@
|
|
|
54
54
|
"emitter"
|
|
55
55
|
],
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@azure-tools/typespec-autorest": ">=0.
|
|
58
|
-
"@azure-tools/typespec-azure-core": ">=0.
|
|
59
|
-
"@azure-tools/typespec-azure-resource-manager": ">=0.
|
|
60
|
-
"@azure-tools/typespec-azure-rulesets": ">=0.
|
|
61
|
-
"@azure-tools/typespec-client-generator-core": ">=0.
|
|
62
|
-
"@typespec/compiler": "^1.
|
|
63
|
-
"@typespec/http": "^1.
|
|
64
|
-
"@typespec/openapi": "^1.
|
|
65
|
-
"@typespec/rest": ">=0.
|
|
66
|
-
"@typespec/versioning": ">=0.
|
|
67
|
-
"@typespec/events": ">=0.
|
|
68
|
-
"@typespec/sse": ">=0.
|
|
69
|
-
"@typespec/streams": ">=0.
|
|
70
|
-
"@typespec/xml": ">=0.
|
|
57
|
+
"@azure-tools/typespec-autorest": ">=0.63.0 <1.0.0",
|
|
58
|
+
"@azure-tools/typespec-azure-core": ">=0.63.0 <1.0.0",
|
|
59
|
+
"@azure-tools/typespec-azure-resource-manager": ">=0.63.0 <1.0.0",
|
|
60
|
+
"@azure-tools/typespec-azure-rulesets": ">=0.63.0 <1.0.0",
|
|
61
|
+
"@azure-tools/typespec-client-generator-core": ">=0.63.0 <1.0.0",
|
|
62
|
+
"@typespec/compiler": "^1.7.0",
|
|
63
|
+
"@typespec/http": "^1.7.0",
|
|
64
|
+
"@typespec/openapi": "^1.7.0",
|
|
65
|
+
"@typespec/rest": ">=0.77.0 <1.0.0",
|
|
66
|
+
"@typespec/versioning": ">=0.77.0 <1.0.0",
|
|
67
|
+
"@typespec/events": ">=0.77.0 <1.0.0",
|
|
68
|
+
"@typespec/sse": ">=0.77.0 <1.0.0",
|
|
69
|
+
"@typespec/streams": ">=0.77.0 <1.0.0",
|
|
70
|
+
"@typespec/xml": ">=0.77.0 <1.0.0"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"js-yaml": "~4.1.0",
|
|
@@ -77,24 +77,24 @@
|
|
|
77
77
|
"tsx": "~4.19.1"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@azure-tools/typespec-autorest": "~0.
|
|
81
|
-
"@azure-tools/typespec-azure-core": "~0.
|
|
82
|
-
"@azure-tools/typespec-azure-resource-manager": "~0.
|
|
83
|
-
"@azure-tools/typespec-azure-rulesets": "~0.
|
|
84
|
-
"@azure-tools/typespec-client-generator-core": "~0.
|
|
85
|
-
"@azure-tools/azure-http-specs": "0.1.0-alpha.
|
|
86
|
-
"@typespec/compiler": "^1.
|
|
87
|
-
"@typespec/http": "^1.
|
|
88
|
-
"@typespec/openapi": "^1.
|
|
89
|
-
"@typespec/rest": "~0.
|
|
90
|
-
"@typespec/versioning": "~0.
|
|
91
|
-
"@typespec/events": "~0.
|
|
92
|
-
"@typespec/spector": "0.1.0-alpha.
|
|
93
|
-
"@typespec/spec-api": "0.1.0-alpha.
|
|
94
|
-
"@typespec/sse": "~0.
|
|
95
|
-
"@typespec/streams": "~0.
|
|
96
|
-
"@typespec/xml": "~0.
|
|
97
|
-
"@typespec/http-specs": "0.1.0-alpha.
|
|
80
|
+
"@azure-tools/typespec-autorest": "~0.63.0",
|
|
81
|
+
"@azure-tools/typespec-azure-core": "~0.63.0",
|
|
82
|
+
"@azure-tools/typespec-azure-resource-manager": "~0.63.0",
|
|
83
|
+
"@azure-tools/typespec-azure-rulesets": "~0.63.0",
|
|
84
|
+
"@azure-tools/typespec-client-generator-core": "~0.63.0",
|
|
85
|
+
"@azure-tools/azure-http-specs": "0.1.0-alpha.33",
|
|
86
|
+
"@typespec/compiler": "^1.7.0",
|
|
87
|
+
"@typespec/http": "^1.7.0",
|
|
88
|
+
"@typespec/openapi": "^1.7.0",
|
|
89
|
+
"@typespec/rest": "~0.77.0",
|
|
90
|
+
"@typespec/versioning": "~0.77.0",
|
|
91
|
+
"@typespec/events": "~0.77.0",
|
|
92
|
+
"@typespec/spector": "0.1.0-alpha.21",
|
|
93
|
+
"@typespec/spec-api": "0.1.0-alpha.11",
|
|
94
|
+
"@typespec/sse": "~0.77.0",
|
|
95
|
+
"@typespec/streams": "~0.77.0",
|
|
96
|
+
"@typespec/xml": "~0.77.0",
|
|
97
|
+
"@typespec/http-specs": "0.1.0-alpha.29",
|
|
98
98
|
"@types/js-yaml": "~4.0.5",
|
|
99
99
|
"@types/node": "~24.1.0",
|
|
100
100
|
"@types/semver": "7.5.8",
|