@typespec/http-client-python 0.35.1 → 0.37.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 +6 -0
- package/dist/emitter/code-model.d.ts +1 -1
- package/dist/emitter/code-model.d.ts.map +1 -1
- package/dist/emitter/code-model.js.map +1 -1
- package/dist/emitter/emitter.d.ts +2 -2
- package/dist/emitter/emitter.d.ts.map +1 -1
- package/dist/emitter/emitter.js +24 -3
- package/dist/emitter/emitter.js.map +1 -1
- package/dist/emitter/external-process.d.ts +1 -15
- package/dist/emitter/external-process.d.ts.map +1 -1
- package/dist/emitter/external-process.js +1 -17
- package/dist/emitter/external-process.js.map +1 -1
- package/dist/emitter/http.d.ts +45 -2
- package/dist/emitter/http.d.ts.map +1 -1
- package/dist/emitter/http.js +97 -1
- package/dist/emitter/http.js.map +1 -1
- package/dist/emitter/index.d.ts +2 -1
- package/dist/emitter/index.d.ts.map +1 -1
- package/dist/emitter/index.js.map +1 -1
- package/dist/emitter/lib.d.ts +3 -2
- package/dist/emitter/lib.d.ts.map +1 -1
- package/dist/emitter/lib.js +6 -1
- package/dist/emitter/lib.js.map +1 -1
- package/dist/emitter/node-runner.browser.d.ts +1 -1
- package/dist/emitter/node-runner.browser.d.ts.map +1 -1
- package/dist/emitter/node-runner.browser.js.map +1 -1
- package/dist/emitter/node-runner.d.ts +3 -3
- package/dist/emitter/node-runner.d.ts.map +1 -1
- package/dist/emitter/node-runner.js.map +1 -1
- package/dist/emitter/system-requirements.d.ts.map +1 -1
- package/dist/emitter/system-requirements.js.map +1 -1
- package/dist/emitter/types.d.ts +4 -4
- package/dist/emitter/types.d.ts.map +1 -1
- package/dist/emitter/types.js +15 -3
- package/dist/emitter/types.js.map +1 -1
- package/dist/emitter/utils.d.ts +2 -2
- package/dist/emitter/utils.d.ts.map +1 -1
- package/dist/emitter/utils.js +1 -1
- package/dist/emitter/utils.js.map +1 -1
- package/dist/emitter/yaml-utils.d.ts +19 -0
- package/dist/emitter/yaml-utils.d.ts.map +1 -0
- package/dist/emitter/yaml-utils.js +22 -0
- package/dist/emitter/yaml-utils.js.map +1 -0
- package/emitter/src/code-model.ts +4 -2
- package/emitter/src/emitter.ts +31 -7
- package/emitter/src/external-process.ts +3 -19
- package/emitter/src/http.ts +159 -5
- package/emitter/src/index.ts +2 -1
- package/emitter/src/lib.ts +11 -6
- package/emitter/src/node-runner.browser.ts +2 -1
- package/emitter/src/node-runner.ts +6 -3
- package/emitter/src/system-requirements.ts +2 -1
- package/emitter/src/types.ts +23 -8
- package/emitter/src/utils.ts +5 -4
- package/emitter/src/yaml-utils.ts +22 -0
- package/emitter/temp/tsconfig.tsbuildinfo +1 -1
- package/emitter/test/browser-pyodide.test.ts +25 -0
- package/emitter/test/streaming.test.ts +155 -0
- package/emitter/test/types.test.ts +72 -0
- package/emitter/test/{external-process.test.ts → yaml-utils.test.ts} +2 -2
- package/eng/scripts/ci/dev_requirements.txt +1 -1
- package/eng/scripts/ci/regenerate-common.ts +1 -1
- package/eng/scripts/ci/regenerate.ts +1 -2
- package/eng/scripts/ci/run-tests.ts +2 -1
- package/eng/scripts/ci/run_pylint.py +1 -0
- package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
- package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
- package/eng/scripts/setup/system-requirements.ts +2 -1
- package/generator/build/lib/pygen/__init__.py +24 -5
- package/generator/build/lib/pygen/codegen/models/__init__.py +3 -1
- package/generator/build/lib/pygen/codegen/models/code_model.py +29 -9
- package/generator/build/lib/pygen/codegen/models/enum_type.py +21 -9
- package/generator/build/lib/pygen/codegen/models/list_type.py +1 -0
- package/generator/build/lib/pygen/codegen/models/model_type.py +1 -3
- package/generator/build/lib/pygen/codegen/models/operation.py +13 -3
- package/generator/build/lib/pygen/codegen/models/parameter.py +3 -1
- package/generator/build/lib/pygen/codegen/models/response.py +152 -8
- package/generator/build/lib/pygen/codegen/models/utils.py +14 -0
- package/generator/build/lib/pygen/codegen/serializers/__init__.py +13 -6
- package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +219 -69
- package/generator/build/lib/pygen/codegen/serializers/client_serializer.py +13 -6
- package/generator/build/lib/pygen/codegen/serializers/general_serializer.py +4 -0
- package/generator/build/lib/pygen/codegen/serializers/import_serializer.py +27 -0
- package/generator/build/lib/pygen/codegen/serializers/model_serializer.py +4 -1
- package/generator/build/lib/pygen/codegen/serializers/types_serializer.py +44 -12
- package/generator/build/lib/pygen/codegen/templates/streaming_base.py.jinja2 +767 -0
- package/generator/build/lib/pygen/preprocess/__init__.py +70 -17
- package/generator/build/lib/pygen/utils.py +15 -0
- package/generator/component-detection-pip-report.json +9 -9
- package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
- package/generator/pygen/__init__.py +24 -5
- package/generator/pygen/codegen/models/__init__.py +3 -1
- package/generator/pygen/codegen/models/code_model.py +29 -9
- package/generator/pygen/codegen/models/enum_type.py +21 -9
- package/generator/pygen/codegen/models/list_type.py +1 -0
- package/generator/pygen/codegen/models/model_type.py +1 -3
- package/generator/pygen/codegen/models/operation.py +13 -3
- package/generator/pygen/codegen/models/parameter.py +3 -1
- package/generator/pygen/codegen/models/response.py +152 -8
- package/generator/pygen/codegen/models/utils.py +14 -0
- package/generator/pygen/codegen/serializers/__init__.py +13 -6
- package/generator/pygen/codegen/serializers/builder_serializer.py +219 -69
- package/generator/pygen/codegen/serializers/client_serializer.py +13 -6
- package/generator/pygen/codegen/serializers/general_serializer.py +4 -0
- package/generator/pygen/codegen/serializers/import_serializer.py +27 -0
- package/generator/pygen/codegen/serializers/model_serializer.py +4 -1
- package/generator/pygen/codegen/serializers/types_serializer.py +44 -12
- package/generator/pygen/codegen/templates/streaming_base.py.jinja2 +767 -0
- package/generator/pygen/preprocess/__init__.py +70 -17
- package/generator/pygen/utils.py +15 -0
- package/generator/pygen.egg-info/PKG-INFO +1 -1
- package/generator/pygen.egg-info/SOURCES.txt +1 -0
- package/generator/pygen.egg-info/requires.txt +1 -1
- package/generator/setup.py +1 -1
- package/package.json +33 -33
|
@@ -35,6 +35,8 @@ def update_overload_section(
|
|
|
35
35
|
for overload_s, original_s in zip(overload[section], yaml_data[section]):
|
|
36
36
|
if overload_s.get("type"):
|
|
37
37
|
overload_s["type"] = original_s["type"]
|
|
38
|
+
if overload_s.get("streaming"):
|
|
39
|
+
overload_s["streaming"] = original_s["streaming"]
|
|
38
40
|
if overload_s.get("headers"):
|
|
39
41
|
for overload_h, original_h in zip(overload_s["headers"], original_s["headers"]):
|
|
40
42
|
if overload_h.get("type"):
|
|
@@ -81,8 +83,17 @@ def add_overload(yaml_data: dict[str, Any], body_type: dict[str, Any], for_flatt
|
|
|
81
83
|
return overload
|
|
82
84
|
|
|
83
85
|
|
|
84
|
-
def add_overloads_for_body_param(yaml_data: dict[str, Any]) -> None:
|
|
85
|
-
"""If we added a body parameter type, add overloads for that type
|
|
86
|
+
def add_overloads_for_body_param(yaml_data: dict[str, Any], skip_single_body_json: bool = False) -> None:
|
|
87
|
+
"""If we added a body parameter type, add overloads for that type.
|
|
88
|
+
|
|
89
|
+
``skip_single_body_json`` is the authoritative signal, computed by
|
|
90
|
+
``add_body_param_type``, for whether a TypedDict-style overload was inserted
|
|
91
|
+
to replace the single-body raw-JSON overload on the spread (``base: json``)
|
|
92
|
+
path. It is True for both models-mode: dpg (generate-typeddict on) and
|
|
93
|
+
the TypedDict-only mode (models-mode: none with generate-typeddict on), and
|
|
94
|
+
False when TypedDict generation is disabled (in which case the single-body
|
|
95
|
+
raw-JSON overload is kept, matching pre-TypedDict behavior).
|
|
96
|
+
"""
|
|
86
97
|
body_parameter = yaml_data["bodyParameter"]
|
|
87
98
|
if not (
|
|
88
99
|
body_parameter["type"]["type"] == "combined"
|
|
@@ -94,8 +105,8 @@ def add_overloads_for_body_param(yaml_data: dict[str, Any]) -> None:
|
|
|
94
105
|
continue
|
|
95
106
|
if body_type.get("type") == "model" and body_type.get("base") == "json":
|
|
96
107
|
yaml_data["overloads"].append(add_overload(yaml_data, body_type, for_flatten_params=True))
|
|
97
|
-
|
|
98
|
-
|
|
108
|
+
if skip_single_body_json:
|
|
109
|
+
continue
|
|
99
110
|
yaml_data["overloads"].append(add_overload(yaml_data, body_type))
|
|
100
111
|
content_type_param = next(p for p in yaml_data["parameters"] if p["wireName"].lower() == "content-type")
|
|
101
112
|
content_type_param["inOverload"] = False
|
|
@@ -306,6 +317,10 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
306
317
|
def is_tsp(self) -> bool:
|
|
307
318
|
return self.options.get("tsp_file", False)
|
|
308
319
|
|
|
320
|
+
@property
|
|
321
|
+
def generate_typeddict(self) -> bool:
|
|
322
|
+
return self.options.get("generate-typeddict", True)
|
|
323
|
+
|
|
309
324
|
@staticmethod
|
|
310
325
|
def _find_existing_typeddict(
|
|
311
326
|
code_model: dict[str, Any],
|
|
@@ -394,11 +409,39 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
394
409
|
if not existing_td:
|
|
395
410
|
code_model["types"].append(td_elem)
|
|
396
411
|
|
|
412
|
+
@staticmethod
|
|
413
|
+
def _insert_json_overload(
|
|
414
|
+
body_parameter: dict[str, Any],
|
|
415
|
+
origin_type: str,
|
|
416
|
+
) -> None:
|
|
417
|
+
"""Insert a raw-JSON (any-object) type into the body parameter's combined types.
|
|
418
|
+
|
|
419
|
+
This restores the pre-TypedDict dict-body overload used when TypedDict
|
|
420
|
+
generation is disabled.
|
|
421
|
+
"""
|
|
422
|
+
if origin_type == "model":
|
|
423
|
+
body_parameter["type"]["types"].insert(1, KNOWN_TYPES["any-object"])
|
|
424
|
+
else:
|
|
425
|
+
# dict or list: copy the original container type and swap its element
|
|
426
|
+
# type for the raw-JSON any-object.
|
|
427
|
+
any_obj_list_or_dict = copy.deepcopy(body_parameter["type"]["types"][0])
|
|
428
|
+
any_obj_list_or_dict["elementType"] = KNOWN_TYPES["any-object"]
|
|
429
|
+
body_parameter["type"]["types"].insert(1, any_obj_list_or_dict)
|
|
430
|
+
|
|
397
431
|
def add_body_param_type(
|
|
398
432
|
self,
|
|
399
433
|
code_model: dict[str, Any],
|
|
400
434
|
body_parameter: dict[str, Any],
|
|
401
|
-
):
|
|
435
|
+
) -> bool:
|
|
436
|
+
"""Build the combined body-parameter type and its overload variants.
|
|
437
|
+
|
|
438
|
+
Returns whether a TypedDict-style overload was inserted in place of the
|
|
439
|
+
single-body raw-JSON overload on the spread (``base: json``) path. The
|
|
440
|
+
caller passes this to ``add_overloads_for_body_param`` as
|
|
441
|
+
``skip_single_body_json``. It is False when TypedDict generation is
|
|
442
|
+
disabled, so the pre-TypedDict single-body raw-JSON overload is kept.
|
|
443
|
+
"""
|
|
444
|
+
skip_single_body_json = False
|
|
402
445
|
# For a binary `bytes` body (e.g. content type application/octet-stream or a custom
|
|
403
446
|
# binary media type), add an IO overload alongside the `bytes` one. This keeps backward
|
|
404
447
|
# compatibility for services migrating from swagger, whose binary bodies were typed as IO.
|
|
@@ -408,7 +451,7 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
408
451
|
body_parameter
|
|
409
452
|
and body_parameter["type"]["type"] == "bytes"
|
|
410
453
|
and is_binary_body
|
|
411
|
-
and self.options
|
|
454
|
+
and not self.options.generate_typeddict_only
|
|
412
455
|
and not any(t for t in ["flattened", "groupedBy"] if body_parameter.get(t))
|
|
413
456
|
):
|
|
414
457
|
body_parameter["type"] = {
|
|
@@ -416,7 +459,7 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
416
459
|
"types": [body_parameter["type"], KNOWN_TYPES["binary"]],
|
|
417
460
|
}
|
|
418
461
|
code_model["types"].append(body_parameter["type"])
|
|
419
|
-
return
|
|
462
|
+
return skip_single_body_json
|
|
420
463
|
|
|
421
464
|
# only add overload for special content type
|
|
422
465
|
if ( # pylint: disable=too-many-boolean-expressions
|
|
@@ -432,7 +475,7 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
432
475
|
)
|
|
433
476
|
is_dpg_model = model_type.get("base") == "dpg"
|
|
434
477
|
is_json_model = model_type.get("base") == "json"
|
|
435
|
-
is_typeddict_only = self.options
|
|
478
|
+
is_typeddict_only = self.options.generate_typeddict_only
|
|
436
479
|
|
|
437
480
|
body_parameter["type"] = {
|
|
438
481
|
"type": "combined",
|
|
@@ -442,11 +485,16 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
442
485
|
if not (self.is_tsp and has_multi_part_content_type(body_parameter)) and not is_typeddict_only:
|
|
443
486
|
body_parameter["type"]["types"].append(KNOWN_TYPES["binary"])
|
|
444
487
|
|
|
445
|
-
# Add
|
|
488
|
+
# Add the dict-body overload for non-spread dpg models: a TypedDict when
|
|
489
|
+
# enabled, otherwise the raw-JSON overload (pre-TypedDict behavior).
|
|
446
490
|
if self.options["models-mode"] == "dpg" and is_dpg_model:
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
491
|
+
if self.generate_typeddict:
|
|
492
|
+
cross_lang_id = model_type.get("crossLanguageDefinitionId")
|
|
493
|
+
existing_td = self._find_existing_typeddict(code_model, cross_lang_id, model_type.get("name"))
|
|
494
|
+
self._insert_typeddict_overload(code_model, body_parameter, model_type, origin_type, existing_td)
|
|
495
|
+
skip_single_body_json = True
|
|
496
|
+
else:
|
|
497
|
+
self._insert_json_overload(body_parameter, origin_type)
|
|
450
498
|
|
|
451
499
|
# For spread bodies (json base), add a typeddict overload that references
|
|
452
500
|
# the original model. This replaces the JSON single-body overload.
|
|
@@ -456,17 +504,20 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
456
504
|
|
|
457
505
|
if is_typeddict_only and original:
|
|
458
506
|
# In typeddict-only mode, the original dpg model already renders
|
|
459
|
-
# as a TypedDict — reference it directly, no copy needed.
|
|
507
|
+
# as a TypedDict — reference it directly, no copy needed. It also
|
|
508
|
+
# replaces the single-body JSON overload.
|
|
509
|
+
skip_single_body_json = True
|
|
460
510
|
if origin_type == "model":
|
|
461
511
|
body_parameter["type"]["types"].insert(1, original)
|
|
462
512
|
else:
|
|
463
513
|
td_list_or_dict = copy.deepcopy(body_parameter["type"]["types"][0])
|
|
464
514
|
td_list_or_dict["elementType"] = original
|
|
465
515
|
body_parameter["type"]["types"].insert(1, td_list_or_dict)
|
|
466
|
-
|
|
516
|
+
elif self.generate_typeddict:
|
|
467
517
|
source = original or model_type
|
|
468
518
|
existing_td = self._find_existing_typeddict(code_model, cross_lang_id, source.get("name"))
|
|
469
519
|
self._insert_typeddict_overload(code_model, body_parameter, source, origin_type, existing_td)
|
|
520
|
+
skip_single_body_json = True
|
|
470
521
|
|
|
471
522
|
if len(body_parameter["type"]["types"]) == 1:
|
|
472
523
|
# Only one body variant remains (e.g. typeddict-only mode where the
|
|
@@ -474,10 +525,12 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
474
525
|
# wrapper back to the single type so we don't emit a lone
|
|
475
526
|
# ``@overload`` (mypy rejects a single overload definition).
|
|
476
527
|
body_parameter["type"] = body_parameter["type"]["types"][0]
|
|
477
|
-
return
|
|
528
|
+
return skip_single_body_json
|
|
478
529
|
|
|
479
530
|
code_model["types"].append(body_parameter["type"])
|
|
480
531
|
|
|
532
|
+
return skip_single_body_json
|
|
533
|
+
|
|
481
534
|
def pad_reserved_words(self, name: str, pad_type: PadType, yaml_type: dict[str, Any]) -> str:
|
|
482
535
|
# we want to pad hidden variables as well
|
|
483
536
|
if not name:
|
|
@@ -649,8 +702,8 @@ class PreProcessPlugin(YamlUpdatePlugin):
|
|
|
649
702
|
response["discriminator"] = "operation"
|
|
650
703
|
if body_parameter and not is_overload:
|
|
651
704
|
# if we have a JSON body, we add a binary overload
|
|
652
|
-
self.add_body_param_type(code_model, body_parameter)
|
|
653
|
-
add_overloads_for_body_param(yaml_data)
|
|
705
|
+
skip_single_body_json = self.add_body_param_type(code_model, body_parameter)
|
|
706
|
+
add_overloads_for_body_param(yaml_data, skip_single_body_json=skip_single_body_json)
|
|
654
707
|
|
|
655
708
|
def _update_lro_operation_helper(self, yaml_data: dict[str, Any]) -> None:
|
|
656
709
|
for response in yaml_data.get("responses", []):
|
package/generator/pygen/utils.py
CHANGED
|
@@ -28,6 +28,21 @@ def description_ends_with_code_block(description: str) -> bool:
|
|
|
28
28
|
return all(not line.strip() or line.startswith((" ", "\t")) for line in lines[directives[-1] + 1 :])
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
def is_typeddict_only(options: Any) -> bool:
|
|
32
|
+
"""Whether generation is TypedDict-only.
|
|
33
|
+
|
|
34
|
+
True for TypeSpec input where no concrete models mode is selected (``models-mode: none``,
|
|
35
|
+
normalized to a falsy value by :class:`OptionsDict`) and ``generate-typeddict`` is enabled.
|
|
36
|
+
Swagger ``models-mode: none`` is left as a plain no-models mode because it never sets
|
|
37
|
+
``tsp_file``.
|
|
38
|
+
"""
|
|
39
|
+
return (
|
|
40
|
+
bool(options.get("tsp_file"))
|
|
41
|
+
and not options.get("models-mode")
|
|
42
|
+
and bool(options.get("generate-typeddict", True))
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
31
46
|
def update_enum_value(name: str, value: Any, description: str, enum_type: dict[str, Any]) -> dict[str, Any]:
|
|
32
47
|
return {
|
|
33
48
|
"name": name,
|
|
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
16
16
|
Classifier: License :: OSI Approved :: MIT License
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
18
|
License-File: LICENSE
|
|
19
|
-
Requires-Dist: black==
|
|
19
|
+
Requires-Dist: black==26.3.1
|
|
20
20
|
Requires-Dist: docutils>=0.20.1
|
|
21
21
|
Requires-Dist: Jinja2==3.1.6
|
|
22
22
|
Requires-Dist: PyYAML==6.0.1
|
|
@@ -88,6 +88,7 @@ pygen/codegen/templates/request_builders.py.jinja2
|
|
|
88
88
|
pygen/codegen/templates/rest_init.py.jinja2
|
|
89
89
|
pygen/codegen/templates/sample.py.jinja2
|
|
90
90
|
pygen/codegen/templates/serialization.py.jinja2
|
|
91
|
+
pygen/codegen/templates/streaming_base.py.jinja2
|
|
91
92
|
pygen/codegen/templates/test.py.jinja2
|
|
92
93
|
pygen/codegen/templates/testpreparer.py.jinja2
|
|
93
94
|
pygen/codegen/templates/types.py.jinja2
|
package/generator/setup.py
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/http-client-python",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.0",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec emitter for Python SDKs",
|
|
6
6
|
"homepage": "https://typespec.io",
|
|
@@ -66,20 +66,20 @@
|
|
|
66
66
|
"emitter"
|
|
67
67
|
],
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@azure-tools/typespec-autorest": ">=0.
|
|
70
|
-
"@azure-tools/typespec-azure-core": ">=0.
|
|
71
|
-
"@azure-tools/typespec-azure-resource-manager": ">=0.
|
|
72
|
-
"@azure-tools/typespec-azure-rulesets": ">=0.
|
|
73
|
-
"@azure-tools/typespec-client-generator-core": ">=0.
|
|
74
|
-
"@typespec/compiler": "^1.
|
|
75
|
-
"@typespec/http": "^1.
|
|
76
|
-
"@typespec/openapi": "^1.
|
|
77
|
-
"@typespec/rest": ">=0.
|
|
78
|
-
"@typespec/versioning": ">=0.
|
|
79
|
-
"@typespec/events": ">=0.
|
|
80
|
-
"@typespec/sse": ">=0.
|
|
81
|
-
"@typespec/streams": ">=0.
|
|
82
|
-
"@typespec/xml": ">=0.
|
|
69
|
+
"@azure-tools/typespec-autorest": ">=0.71.0 <1.0.0",
|
|
70
|
+
"@azure-tools/typespec-azure-core": ">=0.71.0 <1.0.0",
|
|
71
|
+
"@azure-tools/typespec-azure-resource-manager": ">=0.71.0 <1.0.0",
|
|
72
|
+
"@azure-tools/typespec-azure-rulesets": ">=0.71.0 <1.0.0",
|
|
73
|
+
"@azure-tools/typespec-client-generator-core": ">=0.71.0 <1.0.0",
|
|
74
|
+
"@typespec/compiler": "^1.15.0",
|
|
75
|
+
"@typespec/http": "^1.15.0",
|
|
76
|
+
"@typespec/openapi": "^1.15.0",
|
|
77
|
+
"@typespec/rest": ">=0.85.0 <1.0.0",
|
|
78
|
+
"@typespec/versioning": ">=0.85.0 <1.0.0",
|
|
79
|
+
"@typespec/events": ">=0.85.0 <1.0.0",
|
|
80
|
+
"@typespec/sse": ">=0.85.0 <1.0.0",
|
|
81
|
+
"@typespec/streams": ">=0.85.0 <1.0.0",
|
|
82
|
+
"@typespec/xml": ">=0.85.0 <1.0.0"
|
|
83
83
|
},
|
|
84
84
|
"playgroundConfig": {
|
|
85
85
|
"assets": [
|
|
@@ -104,24 +104,24 @@
|
|
|
104
104
|
"tsx": "^4.21.0"
|
|
105
105
|
},
|
|
106
106
|
"devDependencies": {
|
|
107
|
-
"@azure-tools/typespec-autorest": "~0.
|
|
108
|
-
"@azure-tools/typespec-azure-core": "~0.
|
|
109
|
-
"@azure-tools/typespec-azure-resource-manager": "~0.
|
|
110
|
-
"@azure-tools/typespec-azure-rulesets": "~0.
|
|
111
|
-
"@azure-tools/typespec-client-generator-core": "~0.
|
|
112
|
-
"@azure-tools/azure-http-specs": "0.1.0-alpha.
|
|
113
|
-
"@typespec/compiler": "^1.
|
|
114
|
-
"@typespec/http": "^1.
|
|
115
|
-
"@typespec/openapi": "^1.
|
|
116
|
-
"@typespec/rest": "~0.
|
|
117
|
-
"@typespec/versioning": "~0.
|
|
118
|
-
"@typespec/events": "~0.
|
|
119
|
-
"@typespec/spector": "0.1.0-alpha.
|
|
120
|
-
"@typespec/spec-api": "0.1.0-alpha.
|
|
121
|
-
"@typespec/sse": "~0.
|
|
122
|
-
"@typespec/streams": "~0.
|
|
123
|
-
"@typespec/xml": "~0.
|
|
124
|
-
"@typespec/http-specs": "0.1.0-alpha.
|
|
107
|
+
"@azure-tools/typespec-autorest": "~0.71.0",
|
|
108
|
+
"@azure-tools/typespec-azure-core": "~0.71.0",
|
|
109
|
+
"@azure-tools/typespec-azure-resource-manager": "~0.71.0",
|
|
110
|
+
"@azure-tools/typespec-azure-rulesets": "~0.71.0",
|
|
111
|
+
"@azure-tools/typespec-client-generator-core": "~0.71.0",
|
|
112
|
+
"@azure-tools/azure-http-specs": "0.1.0-alpha.44",
|
|
113
|
+
"@typespec/compiler": "^1.15.0",
|
|
114
|
+
"@typespec/http": "^1.15.0",
|
|
115
|
+
"@typespec/openapi": "^1.15.0",
|
|
116
|
+
"@typespec/rest": "~0.85.0",
|
|
117
|
+
"@typespec/versioning": "~0.85.0",
|
|
118
|
+
"@typespec/events": "~0.85.0",
|
|
119
|
+
"@typespec/spector": "0.1.0-alpha.29-dev.0",
|
|
120
|
+
"@typespec/spec-api": "0.1.0-alpha.16",
|
|
121
|
+
"@typespec/sse": "~0.85.0",
|
|
122
|
+
"@typespec/streams": "~0.85.0",
|
|
123
|
+
"@typespec/xml": "~0.85.0",
|
|
124
|
+
"@typespec/http-specs": "0.1.0-alpha.42-dev.2",
|
|
125
125
|
"@types/js-yaml": "~4.0.5",
|
|
126
126
|
"@types/node": "~25.0.2",
|
|
127
127
|
"@types/semver": "7.5.8",
|