@azure-tools/typespec-ts 0.12.0-alpha.20230502.1 → 0.13.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/.rush/temp/operation/build/all.log +1 -0
- package/.rush/temp/operation/build/state.json +3 -0
- package/.rush/temp/package-deps_build.json +104 -78
- package/.rush/temp/shrinkwrap-deps.json +488 -471
- package/CHANGELOG.md +7 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/modelUtils.d.ts +1 -1
- package/dist/src/modelUtils.d.ts.map +1 -1
- package/dist/src/modelUtils.js +79 -56
- package/dist/src/modelUtils.js.map +1 -1
- package/dist/src/operationUtil.d.ts.map +1 -1
- package/dist/src/operationUtil.js +7 -6
- package/dist/src/operationUtil.js.map +1 -1
- package/dist/src/transform/transform.d.ts.map +1 -1
- package/dist/src/transform/transform.js +3 -3
- package/dist/src/transform/transform.js.map +1 -1
- package/dist/src/transform/transformApiVersionInfo.d.ts.map +1 -1
- package/dist/src/transform/transformApiVersionInfo.js +3 -3
- package/dist/src/transform/transformApiVersionInfo.js.map +1 -1
- package/dist/src/transform/transformParameters.d.ts.map +1 -1
- package/dist/src/transform/transformParameters.js +23 -29
- package/dist/src/transform/transformParameters.js.map +1 -1
- package/dist/src/transform/transformPaths.d.ts.map +1 -1
- package/dist/src/transform/transformPaths.js +5 -5
- package/dist/src/transform/transformPaths.js.map +1 -1
- package/dist/src/transform/transformResponses.js +6 -6
- package/dist/src/transform/transformResponses.js.map +1 -1
- package/dist/src/transform/transformSchemas.js +1 -1
- package/dist/src/transform/transformSchemas.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +41 -39
- package/src/index.ts +2 -0
- package/src/modelUtils.ts +143 -47
- package/src/operationUtil.ts +4 -3
- package/src/transform/transform.ts +10 -2
- package/src/transform/transformApiVersionInfo.ts +18 -3
- package/src/transform/transformParameters.ts +51 -16
- package/src/transform/transformPaths.ts +10 -5
- package/src/transform/transformResponses.ts +6 -4
- package/src/transform/transformSchemas.ts +1 -1
- package/test/integration/azurecore.spec.ts +51 -11
- package/test/integration/generated/arrays/itemTypes/src/arrayItemTypesClient.ts +5 -1
- package/test/integration/generated/arrays/itemTypes/src/logger.ts +5 -0
- package/test/integration/generated/authentication/apiKey/package.json +1 -1
- package/test/integration/generated/authentication/apiKey/src/authApiKeyClient.ts +6 -2
- package/test/integration/generated/authentication/apiKey/src/logger.ts +5 -0
- package/test/integration/generated/authentication/oauth2/src/authOauth2Client.ts +6 -2
- package/test/integration/generated/authentication/oauth2/src/logger.ts +5 -0
- package/test/integration/generated/authentication/union/src/authUnionClient.ts +6 -2
- package/test/integration/generated/authentication/union/src/logger.ts +5 -0
- package/test/integration/generated/azure/core/package.json +1 -1
- package/test/integration/generated/azure/core/src/azureCoreClient.ts +5 -1
- package/test/integration/generated/azure/core/src/logger.ts +5 -0
- package/test/integration/generated/azure/core/src/outputModels.ts +7 -1
- package/test/integration/generated/azure/core-traits/package.json +1 -1
- package/test/integration/generated/azure/core-traits/src/azureCoreTraitsClient.ts +5 -1
- package/test/integration/generated/azure/core-traits/src/logger.ts +5 -0
- package/test/integration/generated/azure/core-traits/src/outputModels.ts +15 -0
- package/test/integration/generated/dictionary/package.json +1 -1
- package/test/integration/generated/dictionary/src/dictClient.ts +5 -1
- package/test/integration/generated/dictionary/src/logger.ts +5 -0
- package/test/integration/generated/enums/extensible/package.json +1 -1
- package/test/integration/generated/enums/extensible/src/logger.ts +5 -0
- package/test/integration/generated/enums/extensible/src/typeEnumExtensible.ts +5 -1
- package/test/integration/generated/enums/fixed/package.json +1 -1
- package/test/integration/generated/enums/fixed/src/logger.ts +5 -0
- package/test/integration/generated/enums/fixed/src/typeEnumFixed.ts +5 -1
- package/test/integration/generated/internal/src/clientDefinitions.ts +38 -12
- package/test/integration/generated/internal/src/index.ts +0 -1
- package/test/integration/generated/internal/src/internalClient.ts +5 -1
- package/test/integration/generated/internal/src/logger.ts +5 -0
- package/test/integration/generated/internal/src/outputModels.ts +9 -5
- package/test/integration/generated/internal/src/parameters.ts +32 -8
- package/test/integration/generated/internal/src/responses.ts +18 -5
- package/test/integration/generated/lro/lroCore/package.json +2 -2
- package/test/integration/generated/lro/lroCore/src/logger.ts +5 -0
- package/test/integration/generated/lro/lroCore/src/specsAzureCoreLroStandard.ts +5 -1
- package/test/integration/generated/lro/lroRPC/package.json +2 -2
- package/test/integration/generated/lro/lroRPC/src/logger.ts +5 -0
- package/test/integration/generated/lro/lroRPC/src/specsAzureCoreLroRpc.ts +5 -1
- package/test/integration/generated/models/inheritance/package.json +1 -1
- package/test/integration/generated/models/inheritance/src/logger.ts +5 -0
- package/test/integration/generated/models/inheritance/src/typeModelInheritance.ts +5 -1
- package/test/integration/generated/models/propertyNullable/package.json +1 -1
- package/test/integration/generated/models/propertyNullable/src/logger.ts +5 -0
- package/test/integration/generated/models/propertyNullable/src/typePropertyNullable.ts +5 -1
- package/test/integration/generated/models/propertyOptional/package.json +1 -1
- package/test/integration/generated/models/propertyOptional/src/logger.ts +5 -0
- package/test/integration/generated/models/propertyOptional/src/typePropertyOptional.ts +5 -1
- package/test/integration/generated/models/propertyTypes/package.json +1 -1
- package/test/integration/generated/models/propertyTypes/src/clientDefinitions.ts +68 -0
- package/test/integration/generated/models/propertyTypes/src/logger.ts +5 -0
- package/test/integration/generated/models/propertyTypes/src/models.ts +24 -0
- package/test/integration/generated/models/propertyTypes/src/outputModels.ts +24 -0
- package/test/integration/generated/models/propertyTypes/src/parameters.ts +40 -0
- package/test/integration/generated/models/propertyTypes/src/responses.ts +48 -0
- package/test/integration/generated/models/propertyTypes/src/typePropertyValueTypes.ts +5 -1
- package/test/integration/generated/models/usage/package.json +1 -1
- package/test/integration/generated/models/usage/src/logger.ts +5 -0
- package/test/integration/generated/models/usage/src/typeModelUsage.ts +5 -1
- package/test/integration/generated/models/visibility/package.json +1 -1
- package/test/integration/generated/models/visibility/src/logger.ts +5 -0
- package/test/integration/generated/models/visibility/src/typeModelVisibility.ts +5 -1
- package/test/integration/generated/parameters/collection-format/src/collectionFormatClient.ts +5 -1
- package/test/integration/generated/parameters/collection-format/src/logger.ts +5 -0
- package/test/integration/generated/parameters/spread/src/logger.ts +5 -0
- package/test/integration/generated/parameters/spread/src/parametersSpread.ts +5 -1
- package/test/integration/generated/projection/src/logger.ts +5 -0
- package/test/integration/generated/projection/src/projectionClient.ts +5 -1
- package/test/integration/generated/resiliency/srvDriven1/package.json +1 -1
- package/test/integration/generated/resiliency/srvDriven1/src/logger.ts +5 -0
- package/test/integration/generated/resiliency/srvDriven1/src/serviceDrivenOldClient.ts +6 -2
- package/test/integration/generated/resiliency/srvDriven2/package.json +1 -1
- package/test/integration/generated/resiliency/srvDriven2/src/logger.ts +5 -0
- package/test/integration/generated/resiliency/srvDriven2/src/serviceDrivenNewClient.ts +6 -2
- package/test/integration/generated/server/path/multiple/src/logger.ts +5 -0
- package/test/integration/generated/server/path/multiple/src/multipleParamInServerPathClient.ts +6 -2
- package/test/integration/generated/server/path/single/src/logger.ts +5 -0
- package/test/integration/generated/server/path/single/src/singleParamInServerPathClient.ts +6 -2
- package/test/integration/generated/specialWords/src/logger.ts +5 -0
- package/test/integration/generated/specialWords/src/specialWordsClient.ts +5 -1
- package/test/integration/generated/unions/src/logger.ts +5 -0
- package/test/integration/generated/unions/src/unionsClient.ts +5 -1
- package/test/integration/internal.spec.ts +45 -12
- package/test/integration/modelPropertyType.spec.ts +16 -0
- package/test/integration/resiliencyDpgCustomization.spec.ts +85 -24
- package/test/unit/apiVersion.spec.ts +19 -7
- package/test/unit/clientFactoryGenerator.spec.ts +44 -16
- package/test/unit/modelsGenerator.spec.ts +212 -2
- package/test/unit/util/emitUtil.ts +13 -4
- package/test/unit/util/testUtil.ts +7 -2
- package/typespec-ts.build.log +0 -1
- package/test/integration/generated/internal/src/models.ts +0 -8
|
@@ -718,8 +718,142 @@ describe("Input/output model type", () => {
|
|
|
718
718
|
});
|
|
719
719
|
});
|
|
720
720
|
describe("duration generation", () => {
|
|
721
|
-
|
|
722
|
-
|
|
721
|
+
const buildParameterDef = (type: string) => {
|
|
722
|
+
return `
|
|
723
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
724
|
+
|
|
725
|
+
export interface GetModelQueryParamProperties {
|
|
726
|
+
"input": ${type};
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
export interface GetModelQueryParam {
|
|
730
|
+
queryParameters: GetModelQueryParamProperties;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
export type GetModelParameters = GetModelQueryParam & RequestParameters;
|
|
734
|
+
`;
|
|
735
|
+
};
|
|
736
|
+
|
|
737
|
+
describe("as input and output model property", () => {
|
|
738
|
+
it("should handle duration without encode", async () => {
|
|
739
|
+
await verifyPropertyType("duration", "string");
|
|
740
|
+
});
|
|
741
|
+
|
|
742
|
+
it("should handle duration with encode `seconds`", async () => {
|
|
743
|
+
const schemaOutput = await emitModelsFromCadl(
|
|
744
|
+
`
|
|
745
|
+
model SimpleModel {
|
|
746
|
+
@encode("seconds", float64)
|
|
747
|
+
prop: duration;
|
|
748
|
+
}
|
|
749
|
+
@route("/duration/prop/seconds")
|
|
750
|
+
@get
|
|
751
|
+
op getModel(...SimpleModel): SimpleModel;
|
|
752
|
+
`,
|
|
753
|
+
false,
|
|
754
|
+
true
|
|
755
|
+
);
|
|
756
|
+
assert.ok(schemaOutput);
|
|
757
|
+
const { inputModelFile, outputModelFile } = schemaOutput!;
|
|
758
|
+
assertEqualContent(
|
|
759
|
+
inputModelFile?.content!,
|
|
760
|
+
`
|
|
761
|
+
export interface SimpleModel {
|
|
762
|
+
"prop": number;
|
|
763
|
+
}
|
|
764
|
+
`
|
|
765
|
+
);
|
|
766
|
+
assertEqualContent(
|
|
767
|
+
outputModelFile?.content!,
|
|
768
|
+
`
|
|
769
|
+
export interface SimpleModelOutput {
|
|
770
|
+
"prop": number;
|
|
771
|
+
}
|
|
772
|
+
`
|
|
773
|
+
);
|
|
774
|
+
});
|
|
775
|
+
|
|
776
|
+
it("should handle duration with encode `iso8601`", async () => {
|
|
777
|
+
const schemaOutput = await emitModelsFromCadl(
|
|
778
|
+
`
|
|
779
|
+
model SimpleModel {
|
|
780
|
+
@encode("ISO8601")
|
|
781
|
+
prop: duration;
|
|
782
|
+
}
|
|
783
|
+
@route("/duration/prop/iso8601")
|
|
784
|
+
@get
|
|
785
|
+
op getModel(...SimpleModel): SimpleModel;
|
|
786
|
+
`,
|
|
787
|
+
false,
|
|
788
|
+
true
|
|
789
|
+
);
|
|
790
|
+
assert.ok(schemaOutput);
|
|
791
|
+
const { inputModelFile, outputModelFile } = schemaOutput!;
|
|
792
|
+
assertEqualContent(
|
|
793
|
+
inputModelFile?.content!,
|
|
794
|
+
`
|
|
795
|
+
export interface SimpleModel {
|
|
796
|
+
"prop": string;
|
|
797
|
+
}
|
|
798
|
+
`
|
|
799
|
+
);
|
|
800
|
+
assertEqualContent(
|
|
801
|
+
outputModelFile?.content!,
|
|
802
|
+
`
|
|
803
|
+
export interface SimpleModelOutput {
|
|
804
|
+
"prop": string;
|
|
805
|
+
}
|
|
806
|
+
`
|
|
807
|
+
);
|
|
808
|
+
});
|
|
809
|
+
});
|
|
810
|
+
|
|
811
|
+
describe("as query parameter", () => {
|
|
812
|
+
it("should handle duration without encode", async () => {
|
|
813
|
+
const schemaOutput = await emitParameterFromCadl(`
|
|
814
|
+
@route("/duration/query/default")
|
|
815
|
+
@get
|
|
816
|
+
op getModel(@query input: duration): NoContentResponse;
|
|
817
|
+
`);
|
|
818
|
+
assert.ok(schemaOutput);
|
|
819
|
+
assertEqualContent(schemaOutput?.content!, buildParameterDef("string"));
|
|
820
|
+
});
|
|
821
|
+
|
|
822
|
+
it("should handle duration with encode `seconds`", async () => {
|
|
823
|
+
const schemaOutput = await emitParameterFromCadl(
|
|
824
|
+
`
|
|
825
|
+
@route("/duration/query/seconds")
|
|
826
|
+
@get
|
|
827
|
+
op getModel(
|
|
828
|
+
@query
|
|
829
|
+
@encode("seconds", float64)
|
|
830
|
+
input: duration): NoContentResponse;
|
|
831
|
+
`,
|
|
832
|
+
false,
|
|
833
|
+
false,
|
|
834
|
+
true
|
|
835
|
+
);
|
|
836
|
+
assert.ok(schemaOutput);
|
|
837
|
+
assertEqualContent(schemaOutput?.content!, buildParameterDef("number"));
|
|
838
|
+
});
|
|
839
|
+
|
|
840
|
+
it("should handle duration with encode `iso8601`", async () => {
|
|
841
|
+
const schemaOutput = await emitParameterFromCadl(
|
|
842
|
+
`
|
|
843
|
+
@route("/duration/query/iso8601")
|
|
844
|
+
@get
|
|
845
|
+
op getModel(
|
|
846
|
+
@query
|
|
847
|
+
@encode("iso8601")
|
|
848
|
+
input: duration): NoContentResponse;
|
|
849
|
+
`,
|
|
850
|
+
false,
|
|
851
|
+
false,
|
|
852
|
+
true
|
|
853
|
+
);
|
|
854
|
+
assert.ok(schemaOutput);
|
|
855
|
+
assertEqualContent(schemaOutput?.content!, buildParameterDef("string"));
|
|
856
|
+
});
|
|
723
857
|
});
|
|
724
858
|
});
|
|
725
859
|
describe("datetime generation", () => {
|
|
@@ -744,6 +878,82 @@ describe("Input/output model type", () => {
|
|
|
744
878
|
outputType
|
|
745
879
|
});
|
|
746
880
|
});
|
|
881
|
+
|
|
882
|
+
it("should handle offsetDateTime -> string in output model & `Date | string` in input model", async () => {
|
|
883
|
+
const inputType = "Date | string";
|
|
884
|
+
const outputType = "string";
|
|
885
|
+
await verifyPropertyType("offsetDateTime ", inputType, {
|
|
886
|
+
outputType
|
|
887
|
+
});
|
|
888
|
+
});
|
|
889
|
+
|
|
890
|
+
it("should handle datetime with encode `unixTimestamp`", async () => {
|
|
891
|
+
const schemaOutput = await emitModelsFromCadl(
|
|
892
|
+
`
|
|
893
|
+
model SimpleModel {
|
|
894
|
+
@encode("unixTimestamp", int32)
|
|
895
|
+
createdAt: utcDateTime;
|
|
896
|
+
}
|
|
897
|
+
@route("/datetime/prop/unixTimestamp")
|
|
898
|
+
@get
|
|
899
|
+
op getModel(...SimpleModel): SimpleModel;
|
|
900
|
+
`,
|
|
901
|
+
false,
|
|
902
|
+
true
|
|
903
|
+
);
|
|
904
|
+
assert.ok(schemaOutput);
|
|
905
|
+
const { inputModelFile, outputModelFile } = schemaOutput!;
|
|
906
|
+
assertEqualContent(
|
|
907
|
+
inputModelFile?.content!,
|
|
908
|
+
`
|
|
909
|
+
export interface SimpleModel {
|
|
910
|
+
"createdAt": number;
|
|
911
|
+
}
|
|
912
|
+
`
|
|
913
|
+
);
|
|
914
|
+
assertEqualContent(
|
|
915
|
+
outputModelFile?.content!,
|
|
916
|
+
`
|
|
917
|
+
export interface SimpleModelOutput {
|
|
918
|
+
"createdAt": number;
|
|
919
|
+
}
|
|
920
|
+
`
|
|
921
|
+
);
|
|
922
|
+
});
|
|
923
|
+
|
|
924
|
+
it("should handle datetime with encode `rfc3339`", async () => {
|
|
925
|
+
const schemaOutput = await emitModelsFromCadl(
|
|
926
|
+
`
|
|
927
|
+
model SimpleModel {
|
|
928
|
+
@encode("rfc3339")
|
|
929
|
+
createdAt: offsetDateTime;
|
|
930
|
+
}
|
|
931
|
+
@route("/datetime/prop/rfc3339")
|
|
932
|
+
@get
|
|
933
|
+
op getModel(...SimpleModel): SimpleModel;
|
|
934
|
+
`,
|
|
935
|
+
false,
|
|
936
|
+
true
|
|
937
|
+
);
|
|
938
|
+
assert.ok(schemaOutput);
|
|
939
|
+
const { inputModelFile, outputModelFile } = schemaOutput!;
|
|
940
|
+
assertEqualContent(
|
|
941
|
+
inputModelFile?.content!,
|
|
942
|
+
`
|
|
943
|
+
export interface SimpleModel {
|
|
944
|
+
"createdAt": Date | string;
|
|
945
|
+
}
|
|
946
|
+
`
|
|
947
|
+
);
|
|
948
|
+
assertEqualContent(
|
|
949
|
+
outputModelFile?.content!,
|
|
950
|
+
`
|
|
951
|
+
export interface SimpleModelOutput {
|
|
952
|
+
"createdAt": string;
|
|
953
|
+
}
|
|
954
|
+
`
|
|
955
|
+
);
|
|
956
|
+
});
|
|
747
957
|
});
|
|
748
958
|
describe("record generation", () => {
|
|
749
959
|
it("should handle Record<int32> -> Record<string, number>", async () => {
|
|
@@ -19,9 +19,16 @@ import { getCredentialInfo } from "../../../src/transform/transfromRLCOptions.js
|
|
|
19
19
|
|
|
20
20
|
export async function emitModelsFromCadl(
|
|
21
21
|
cadlContent: string,
|
|
22
|
-
needAzureCore: boolean = false
|
|
22
|
+
needAzureCore: boolean = false,
|
|
23
|
+
needTCGC: boolean = false
|
|
23
24
|
) {
|
|
24
|
-
const context = await rlcEmitterFor(
|
|
25
|
+
const context = await rlcEmitterFor(
|
|
26
|
+
cadlContent,
|
|
27
|
+
true,
|
|
28
|
+
needAzureCore,
|
|
29
|
+
false,
|
|
30
|
+
needTCGC
|
|
31
|
+
);
|
|
25
32
|
const program = context.program;
|
|
26
33
|
const dpgContext = createDpgContextTestHelper(context.program);
|
|
27
34
|
const clients = listClients(dpgContext);
|
|
@@ -40,13 +47,15 @@ export async function emitModelsFromCadl(
|
|
|
40
47
|
export async function emitParameterFromCadl(
|
|
41
48
|
cadlContent: string,
|
|
42
49
|
needAzureCore: boolean = false,
|
|
43
|
-
ignoreClientApiVersion: boolean = false
|
|
50
|
+
ignoreClientApiVersion: boolean = false,
|
|
51
|
+
needTCGC: boolean = false
|
|
44
52
|
) {
|
|
45
53
|
const context = await rlcEmitterFor(
|
|
46
54
|
cadlContent,
|
|
47
55
|
true,
|
|
48
56
|
needAzureCore,
|
|
49
|
-
ignoreClientApiVersion
|
|
57
|
+
ignoreClientApiVersion,
|
|
58
|
+
needTCGC
|
|
50
59
|
);
|
|
51
60
|
const program = context.program;
|
|
52
61
|
const dpgContext = createDpgContextTestHelper(context.program);
|
|
@@ -5,6 +5,7 @@ import { RestTestLibrary } from "@typespec/rest/testing";
|
|
|
5
5
|
import { HttpTestLibrary } from "@typespec/http/testing";
|
|
6
6
|
import { VersioningTestLibrary } from "@typespec/versioning/testing";
|
|
7
7
|
import { AzureCoreTestLibrary } from "@azure-tools/typespec-azure-core/testing";
|
|
8
|
+
import { SdkTestLibrary } from "@azure-tools/typespec-client-generator-core/testing";
|
|
8
9
|
import { SdkContext } from "@azure-tools/typespec-client-generator-core";
|
|
9
10
|
import { assert } from "chai";
|
|
10
11
|
import { format } from "prettier";
|
|
@@ -16,7 +17,8 @@ export async function createRLCEmitterTestHost() {
|
|
|
16
17
|
HttpTestLibrary,
|
|
17
18
|
RestTestLibrary,
|
|
18
19
|
VersioningTestLibrary,
|
|
19
|
-
AzureCoreTestLibrary
|
|
20
|
+
AzureCoreTestLibrary,
|
|
21
|
+
SdkTestLibrary
|
|
20
22
|
]
|
|
21
23
|
});
|
|
22
24
|
}
|
|
@@ -25,7 +27,8 @@ export async function rlcEmitterFor(
|
|
|
25
27
|
code: string,
|
|
26
28
|
needNamespaces: boolean = true,
|
|
27
29
|
needAzureCore: boolean = false,
|
|
28
|
-
ignoreClientApiVersion: boolean = false
|
|
30
|
+
ignoreClientApiVersion: boolean = false,
|
|
31
|
+
needTCGC: boolean = false
|
|
29
32
|
): Promise<TestHost> {
|
|
30
33
|
const host: TestHost = await createRLCEmitterTestHost();
|
|
31
34
|
const namespace = `
|
|
@@ -34,6 +37,7 @@ export async function rlcEmitterFor(
|
|
|
34
37
|
${ignoreClientApiVersion ? "" : 'version: "2022-12-16-preview",'}
|
|
35
38
|
})
|
|
36
39
|
|
|
40
|
+
${needAzureCore ? "@useDependency(Azure.Core.Versions.v1_0_Preview_2)" : ""}
|
|
37
41
|
namespace Azure.TypeScript.Testing;
|
|
38
42
|
`;
|
|
39
43
|
host.addTypeSpecFile(
|
|
@@ -42,6 +46,7 @@ export async function rlcEmitterFor(
|
|
|
42
46
|
import "@typespec/http";
|
|
43
47
|
import "@typespec/rest";
|
|
44
48
|
import "@typespec/versioning";
|
|
49
|
+
${needTCGC ? 'import "@azure-tools/typespec-client-generator-core";' : ""}
|
|
45
50
|
${needAzureCore ? 'import "@azure-tools/typespec-azure-core";' : ""}
|
|
46
51
|
|
|
47
52
|
using TypeSpec.Rest;
|
package/typespec-ts.build.log
CHANGED