@typespec/openapi3 0.58.0-dev.8 → 0.58.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/src/cli/actions/convert/generators/generate-main.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-main.js +5 -0
- package/dist/src/cli/actions/convert/generators/generate-main.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-namespace.d.ts +3 -0
- package/dist/src/cli/actions/convert/generators/generate-namespace.d.ts.map +1 -0
- package/dist/src/cli/actions/convert/generators/generate-namespace.js +14 -0
- package/dist/src/cli/actions/convert/generators/generate-namespace.js.map +1 -0
- package/dist/src/cli/actions/convert/generators/generate-operation.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-operation.js +4 -23
- package/dist/src/cli/actions/convert/generators/generate-operation.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-types.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-types.js +2 -2
- package/dist/src/cli/actions/convert/generators/generate-types.js.map +1 -1
- package/dist/src/cli/actions/convert/interfaces.d.ts +15 -6
- package/dist/src/cli/actions/convert/interfaces.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-component-parameters.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js +29 -23
- package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js +18 -13
- package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-namespaces.d.ts +5 -0
- package/dist/src/cli/actions/convert/transforms/transform-namespaces.d.ts.map +1 -0
- package/dist/src/cli/actions/convert/transforms/transform-namespaces.js +51 -0
- package/dist/src/cli/actions/convert/transforms/transform-namespaces.js.map +1 -0
- package/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts +4 -5
- package/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-operation-responses.js +14 -33
- package/dist/src/cli/actions/convert/transforms/transform-operation-responses.js.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-paths.d.ts +3 -2
- package/dist/src/cli/actions/convert/transforms/transform-paths.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-paths.js +11 -4
- package/dist/src/cli/actions/convert/transforms/transform-paths.js.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transforms.js +3 -5
- package/dist/src/cli/actions/convert/transforms/transforms.js.map +1 -1
- package/dist/src/cli/actions/convert/utils/get-scope-and-name.d.ts +9 -0
- package/dist/src/cli/actions/convert/utils/get-scope-and-name.d.ts.map +1 -0
- package/dist/src/cli/actions/convert/utils/get-scope-and-name.js +12 -0
- package/dist/src/cli/actions/convert/utils/get-scope-and-name.js.map +1 -0
- package/dist/version.js +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-main.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-main.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMnD,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAmB7D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { generateModel } from "./generate-model.js";
|
|
2
|
+
import { generateNamespace } from "./generate-namespace.js";
|
|
2
3
|
import { generateOperation } from "./generate-operation.js";
|
|
3
4
|
import { generateServiceInformation } from "./generate-service-info.js";
|
|
4
5
|
export function generateMain(program) {
|
|
@@ -15,6 +16,10 @@ export function generateMain(program) {
|
|
|
15
16
|
${program.models.map(generateModel).join("\n\n")}
|
|
16
17
|
|
|
17
18
|
${program.operations.map(generateOperation).join("\n\n")}
|
|
19
|
+
|
|
20
|
+
${Object.entries(program.namespaces)
|
|
21
|
+
.map(([name, namespace]) => generateNamespace(name, namespace))
|
|
22
|
+
.join("\n\n")}
|
|
18
23
|
`;
|
|
19
24
|
}
|
|
20
25
|
//# sourceMappingURL=generate-main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-main.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,YAAY,CAAC,OAAwB;IACnD,OAAO;;;;;;;;IAQL,0BAA0B,CAAC,OAAO,CAAC,WAAW,CAAC;;IAE/C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAE9C,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-main.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,YAAY,CAAC,OAAwB;IACnD,OAAO;;;;;;;;IAQL,0BAA0B,CAAC,OAAO,CAAC,WAAW,CAAC;;IAE/C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAE9C,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAEtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAC9D,IAAI,CAAC,MAAM,CAAC;GACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-namespace.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAapF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { generateModel } from "./generate-model.js";
|
|
2
|
+
import { generateOperation } from "./generate-operation.js";
|
|
3
|
+
export function generateNamespace(name, namespace) {
|
|
4
|
+
const definitions = [];
|
|
5
|
+
definitions.push(`namespace ${name} {`);
|
|
6
|
+
definitions.push(...namespace.models.map(generateModel));
|
|
7
|
+
definitions.push(...namespace.operations.map(generateOperation));
|
|
8
|
+
for (const [namespaceName, nestedNamespace] of Object.entries(namespace.namespaces)) {
|
|
9
|
+
definitions.push(generateNamespace(namespaceName, nestedNamespace));
|
|
10
|
+
}
|
|
11
|
+
definitions.push("}");
|
|
12
|
+
return definitions.join("\n");
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=generate-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-namespace.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAA4B;IAC1E,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IAExC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACzD,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEjE,KAAK,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-operation.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-operation.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAK1B,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAwBtE"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { generateResponseModelName } from "../transforms/transform-operation-responses.js";
|
|
2
1
|
import { generateDocs } from "../utils/docs.js";
|
|
3
2
|
import { generateDecorators } from "./generate-decorators.js";
|
|
4
3
|
import { generateTypeFromSchema, getRefName } from "./generate-types.js";
|
|
@@ -14,8 +13,10 @@ export function generateOperation(operation) {
|
|
|
14
13
|
...operation.parameters.map(generateOperationParameter),
|
|
15
14
|
...generateRequestBodyParameters(operation.requestBodies),
|
|
16
15
|
];
|
|
17
|
-
const responseTypes =
|
|
18
|
-
|
|
16
|
+
const responseTypes = operation.responseTypes.length
|
|
17
|
+
? operation.responseTypes.join(" | ")
|
|
18
|
+
: "void";
|
|
19
|
+
definitions.push(`op ${operation.name}(${parameters.join(", ")}): ${responseTypes};`);
|
|
19
20
|
return definitions.join(" ");
|
|
20
21
|
}
|
|
21
22
|
function generateOperationParameter(parameter) {
|
|
@@ -55,24 +56,4 @@ function generateRequestBodyParameters(requestBodies) {
|
|
|
55
56
|
function supportsOnlyJson(contentTypes) {
|
|
56
57
|
return contentTypes.length === 1 && contentTypes[0] === "application/json";
|
|
57
58
|
}
|
|
58
|
-
function generateResponses(operationId, responses) {
|
|
59
|
-
if (!responses) {
|
|
60
|
-
return ["void"];
|
|
61
|
-
}
|
|
62
|
-
const definitions = [];
|
|
63
|
-
for (const statusCode of Object.keys(responses)) {
|
|
64
|
-
const response = responses[statusCode];
|
|
65
|
-
definitions.push(...generateResponseForStatus(operationId, statusCode, response));
|
|
66
|
-
}
|
|
67
|
-
return definitions;
|
|
68
|
-
}
|
|
69
|
-
function generateResponseForStatus(operationId, statusCode, response) {
|
|
70
|
-
if ("$ref" in response) {
|
|
71
|
-
return [getRefName(response.$ref)];
|
|
72
|
-
}
|
|
73
|
-
if (!response.content) {
|
|
74
|
-
return [generateResponseModelName(operationId, statusCode)];
|
|
75
|
-
}
|
|
76
|
-
return Object.keys(response.content).map((contentType) => generateResponseModelName(operationId, statusCode, contentType));
|
|
77
|
-
}
|
|
78
59
|
//# sourceMappingURL=generate-operation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-operation.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-operation.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzE,MAAM,UAAU,iBAAiB,CAAC,SAA4B;IAC5D,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;QAClB,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAErE,sBAAsB;IACtB,MAAM,UAAU,GAAa;QAC3B,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,0BAA0B,CAAC;QACvD,GAAG,6BAA6B,CAAC,SAAS,CAAC,aAAa,CAAC;KAC1D,CAAC;IAEF,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM;QAClD,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC;IAEX,WAAW,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;IAEtF,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,0BAA0B,CAAC,SAA8C;IAChF,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,6CAA6C;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACjF,6EAA6E;QAC7E,2BAA2B;QAC3B,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;QAClB,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAE9D,WAAW,CAAC,IAAI,CACd,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACnG,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAoC;IACzE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,2FAA2F;IAC3F,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC,wBAAwB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,kCAAkC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC,CAC/F,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEd,IAAI,IAAI,EAAE,CAAC;QACT,WAAW,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAsB;IAC9C,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC;AAC7E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAI/D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAE9E;AAyCD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AA0DD,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAY3D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiB7D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAc5D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA2B5D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { printIdentifier } from "@typespec/compiler";
|
|
1
2
|
import { getDecoratorsForSchema } from "../utils/decorators.js";
|
|
2
3
|
import { generateDecorators } from "./generate-decorators.js";
|
|
3
4
|
export function generateTypeFromSchema(schema) {
|
|
@@ -46,8 +47,7 @@ function getTypeFromSchema(schema) {
|
|
|
46
47
|
}
|
|
47
48
|
export function getRefName(ref) {
|
|
48
49
|
const name = ref.split("/").pop() ?? "";
|
|
49
|
-
|
|
50
|
-
return name;
|
|
50
|
+
return name.split(".").map(printIdentifier).join(".");
|
|
51
51
|
}
|
|
52
52
|
function getAnyOfType(schema) {
|
|
53
53
|
const definitions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { Contact, License } from "@typespec/openapi";
|
|
2
|
-
import { OpenAPI3Encoding,
|
|
2
|
+
import { OpenAPI3Encoding, OpenAPI3Schema, Refable } from "../../../types.js";
|
|
3
3
|
export interface TypeSpecProgram {
|
|
4
4
|
serviceInfo: TypeSpecServiceInfo;
|
|
5
|
+
namespaces: Record<string, TypeSpecNamespace>;
|
|
5
6
|
models: TypeSpecModel[];
|
|
6
7
|
augmentations: TypeSpecAugmentation[];
|
|
7
8
|
operations: TypeSpecOperation[];
|
|
8
9
|
}
|
|
10
|
+
export interface TypeSpecDeclaration {
|
|
11
|
+
name: string;
|
|
12
|
+
doc?: string;
|
|
13
|
+
scope: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface TypeSpecNamespace {
|
|
16
|
+
namespaces: Record<string, TypeSpecNamespace>;
|
|
17
|
+
models: TypeSpecModel[];
|
|
18
|
+
operations: TypeSpecOperation[];
|
|
19
|
+
}
|
|
9
20
|
export interface TypeSpecServiceInfo {
|
|
10
21
|
name: string;
|
|
11
22
|
doc?: string;
|
|
@@ -22,9 +33,7 @@ export interface TypeSpecDecorator {
|
|
|
22
33
|
export interface TypeSpecAugmentation extends TypeSpecDecorator {
|
|
23
34
|
target: string;
|
|
24
35
|
}
|
|
25
|
-
export interface TypeSpecModel {
|
|
26
|
-
name: string;
|
|
27
|
-
doc?: string;
|
|
36
|
+
export interface TypeSpecModel extends TypeSpecDeclaration {
|
|
28
37
|
decorators: TypeSpecDecorator[];
|
|
29
38
|
properties: TypeSpecModelProperty[];
|
|
30
39
|
additionalProperties?: Refable<OpenAPI3Schema>;
|
|
@@ -53,14 +62,14 @@ export interface TypeSpecModelProperty {
|
|
|
53
62
|
decorators: TypeSpecDecorator[];
|
|
54
63
|
schema: Refable<OpenAPI3Schema>;
|
|
55
64
|
}
|
|
56
|
-
export interface TypeSpecOperation {
|
|
65
|
+
export interface TypeSpecOperation extends TypeSpecDeclaration {
|
|
57
66
|
name: string;
|
|
58
67
|
doc?: string;
|
|
59
68
|
decorators: TypeSpecDecorator[];
|
|
60
69
|
operationId?: string;
|
|
61
70
|
parameters: Refable<TypeSpecOperationParameter>[];
|
|
62
71
|
requestBodies: TypeSpecRequestBody[];
|
|
63
|
-
|
|
72
|
+
responseTypes: string[];
|
|
64
73
|
tags: string[];
|
|
65
74
|
}
|
|
66
75
|
export interface TypeSpecOperationParameter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-component-parameters.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-parameters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-component-parameters.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-parameters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AAIxE;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EAAE,EACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC5C,IAAI,CAON"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { printIdentifier } from "@typespec/compiler";
|
|
1
2
|
import { getParameterDecorators } from "../utils/decorators.js";
|
|
3
|
+
import { getScopeAndName, scopesMatch } from "../utils/get-scope-and-name.js";
|
|
2
4
|
/**
|
|
3
5
|
* Transforms #/components/parameters into TypeSpec models.
|
|
4
6
|
* Overwrites properties of existing models if an existing model already exists.
|
|
@@ -11,34 +13,38 @@ export function transformComponentParameters(models, parameters) {
|
|
|
11
13
|
if (!parameters)
|
|
12
14
|
return;
|
|
13
15
|
for (const name of Object.keys(parameters)) {
|
|
14
|
-
// Determine what the name of the parameter's model is since name may point at
|
|
15
|
-
// a nested property.
|
|
16
|
-
const modelName = name.indexOf(".") < 0 ? name : name.split(".").shift();
|
|
17
|
-
// Check if model already exists; if not, create it
|
|
18
|
-
let model = models.find((m) => m.name === modelName);
|
|
19
|
-
if (!model) {
|
|
20
|
-
model = {
|
|
21
|
-
name: modelName,
|
|
22
|
-
decorators: [],
|
|
23
|
-
properties: [],
|
|
24
|
-
};
|
|
25
|
-
models.push(model);
|
|
26
|
-
}
|
|
27
16
|
const parameter = parameters[name];
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
17
|
+
transformComponentParameter(models, name, parameter);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function transformComponentParameter(models, key, parameter) {
|
|
21
|
+
const { name, scope } = getScopeAndName(key);
|
|
22
|
+
// Get the model name this parameter belongs to
|
|
23
|
+
const modelName = scope.length > 0 ? scope.pop() : name;
|
|
24
|
+
// find a matching model, or create one if it doesn't exist
|
|
25
|
+
let model = models.find((m) => m.name === modelName && scopesMatch(m.scope, scope));
|
|
26
|
+
if (!model) {
|
|
27
|
+
model = {
|
|
28
|
+
scope,
|
|
29
|
+
name: modelName,
|
|
30
|
+
decorators: [],
|
|
31
|
+
properties: [],
|
|
32
|
+
};
|
|
33
|
+
models.push(model);
|
|
34
|
+
}
|
|
35
|
+
const modelProperty = getModelPropertyFromParameter(parameter);
|
|
36
|
+
// Check if the model already has a property of the matching name
|
|
37
|
+
const propIndex = model.properties.findIndex((p) => p.name === modelProperty.name);
|
|
38
|
+
if (propIndex >= 0) {
|
|
39
|
+
model.properties[propIndex] = modelProperty;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
model.properties.push(modelProperty);
|
|
37
43
|
}
|
|
38
44
|
}
|
|
39
45
|
function getModelPropertyFromParameter(parameter) {
|
|
40
46
|
return {
|
|
41
|
-
name: parameter.name,
|
|
47
|
+
name: printIdentifier(parameter.name),
|
|
42
48
|
isOptional: !parameter.required,
|
|
43
49
|
doc: parameter.description ?? parameter.schema.description,
|
|
44
50
|
decorators: getParameterDecorators(parameter),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-component-parameters.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-parameters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-component-parameters.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAuB,EACvB,UAA6C;IAE7C,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAuB,EACvB,GAAW,EACX,SAA4B;IAE5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7C,+CAA+C;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzD,2DAA2D;IAC3D,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG;YACN,KAAK;YACL,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;SACf,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,aAAa,GAAG,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAE/D,iEAAiE;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC;IACnF,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,SAA4B;IACjE,OAAO;QACL,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC;QACrC,UAAU,EAAE,CAAC,SAAS,CAAC,QAAQ;QAC/B,GAAG,EAAE,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW;QAC1D,UAAU,EAAE,sBAAsB,CAAC,SAAS,CAAC;QAC7C,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-component-schemas.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-schemas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-component-schemas.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,sBAAsB,CAAC;AAQ1E,OAAO,EAAE,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AAIxE;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,GACtC,IAAI,CAON"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { printIdentifier } from "@typespec/compiler";
|
|
1
2
|
import { getArrayType, getIntegerType, getNumberType, getRefName, getStringType, } from "../generators/generate-types.js";
|
|
2
3
|
import { getDecoratorsForSchema } from "../utils/decorators.js";
|
|
4
|
+
import { getScopeAndName } from "../utils/get-scope-and-name.js";
|
|
3
5
|
/**
|
|
4
6
|
* Transforms #/components/schemas into TypeSpec models.
|
|
5
7
|
* Populates the provided `models` array in-place.
|
|
@@ -12,20 +14,23 @@ export function transformComponentSchemas(models, schemas) {
|
|
|
12
14
|
return;
|
|
13
15
|
for (const name of Object.keys(schemas)) {
|
|
14
16
|
const schema = schemas[name];
|
|
15
|
-
|
|
16
|
-
const isParent = getModelIs(schema);
|
|
17
|
-
models.push({
|
|
18
|
-
name: name.replace(/-/g, "_"),
|
|
19
|
-
decorators: [...getDecoratorsForSchema(schema)],
|
|
20
|
-
doc: schema.description,
|
|
21
|
-
properties: getModelPropertiesFromObjectSchema(schema),
|
|
22
|
-
additionalProperties: typeof schema.additionalProperties === "object" ? schema.additionalProperties : undefined,
|
|
23
|
-
extends: extendsParent,
|
|
24
|
-
is: isParent,
|
|
25
|
-
type: schema.type,
|
|
26
|
-
});
|
|
17
|
+
transformComponentSchema(models, name, schema);
|
|
27
18
|
}
|
|
28
19
|
}
|
|
20
|
+
function transformComponentSchema(models, name, schema) {
|
|
21
|
+
const extendsParent = getModelExtends(schema);
|
|
22
|
+
const isParent = getModelIs(schema);
|
|
23
|
+
models.push({
|
|
24
|
+
...getScopeAndName(name),
|
|
25
|
+
decorators: [...getDecoratorsForSchema(schema)],
|
|
26
|
+
doc: schema.description,
|
|
27
|
+
properties: getModelPropertiesFromObjectSchema(schema),
|
|
28
|
+
additionalProperties: typeof schema.additionalProperties === "object" ? schema.additionalProperties : undefined,
|
|
29
|
+
extends: extendsParent,
|
|
30
|
+
is: isParent,
|
|
31
|
+
type: schema.type,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
29
34
|
function getModelExtends(schema) {
|
|
30
35
|
switch (schema.type) {
|
|
31
36
|
case "boolean":
|
|
@@ -64,7 +69,7 @@ function getModelPropertiesFromObjectSchema({ properties, required = [], }) {
|
|
|
64
69
|
for (const name of Object.keys(properties)) {
|
|
65
70
|
const property = properties[name];
|
|
66
71
|
modelProperties.push({
|
|
67
|
-
name,
|
|
72
|
+
name: printIdentifier(name),
|
|
68
73
|
doc: property.description,
|
|
69
74
|
schema: property,
|
|
70
75
|
isOptional: !required.includes(name),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-component-schemas.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-schemas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-component-schemas.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-component-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TypeSpecModel, TypeSpecOperation, TypeSpecProgram } from "../interfaces.js";
|
|
2
|
+
type TypeSpecProgramDeclarations = Pick<TypeSpecProgram, "models" | "operations" | "namespaces">;
|
|
3
|
+
export declare function transformNamespaces(models: TypeSpecModel[], operations: TypeSpecOperation[]): TypeSpecProgramDeclarations;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=transform-namespaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-namespaces.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-namespaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAE1B,KAAK,2BAA2B,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC;AACjG,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EAAE,EACvB,UAAU,EAAE,iBAAiB,EAAE,GAC9B,2BAA2B,CAY7B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function transformNamespaces(models, operations) {
|
|
2
|
+
// There can only be 1 file namespace - so if scopes is empty then entity belongs at root level
|
|
3
|
+
const programDecs = {
|
|
4
|
+
models: [],
|
|
5
|
+
operations: [],
|
|
6
|
+
namespaces: {},
|
|
7
|
+
};
|
|
8
|
+
expandModels(programDecs, models);
|
|
9
|
+
expandOperations(programDecs, operations);
|
|
10
|
+
return programDecs;
|
|
11
|
+
}
|
|
12
|
+
function expandModels(programDecs, models) {
|
|
13
|
+
for (const model of models) {
|
|
14
|
+
const { scope } = model;
|
|
15
|
+
const namespace = getNamespace(programDecs, scope) ?? createNamespace(programDecs, scope);
|
|
16
|
+
namespace.models.push(model);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function expandOperations(programDecs, operations) {
|
|
20
|
+
for (const operation of operations) {
|
|
21
|
+
const { scope } = operation;
|
|
22
|
+
const namespace = getNamespace(programDecs, scope) ?? createNamespace(programDecs, scope);
|
|
23
|
+
namespace.operations.push(operation);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function getNamespace(programDecs, scope) {
|
|
27
|
+
if (!scope.length)
|
|
28
|
+
return programDecs;
|
|
29
|
+
let namespace = programDecs;
|
|
30
|
+
for (const fragment of scope) {
|
|
31
|
+
if (!namespace)
|
|
32
|
+
return;
|
|
33
|
+
namespace = namespace.namespaces[fragment];
|
|
34
|
+
}
|
|
35
|
+
return namespace;
|
|
36
|
+
}
|
|
37
|
+
function createNamespace(programDecs, scope) {
|
|
38
|
+
let namespace = programDecs;
|
|
39
|
+
for (const fragment of scope) {
|
|
40
|
+
if (!namespace.namespaces[fragment]) {
|
|
41
|
+
namespace.namespaces[fragment] = {
|
|
42
|
+
namespaces: {},
|
|
43
|
+
models: [],
|
|
44
|
+
operations: [],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
namespace = namespace.namespaces[fragment];
|
|
48
|
+
}
|
|
49
|
+
return namespace;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=transform-namespaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-namespaces.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-namespaces.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,mBAAmB,CACjC,MAAuB,EACvB,UAA+B;IAE/B,+FAA+F;IAC/F,MAAM,WAAW,GAAgC;QAC/C,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAClC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAE1C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,WAAwC,EAAE,MAAuB;IACrF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACxB,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC1F,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,WAAwC,EACxC,UAA+B;IAE/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;QAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC1F,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,WAAwC,EACxC,KAAe;IAEf,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,WAAW,CAAC;IAEtC,IAAI,SAAS,GAAsB,WAAW,CAAC;IAC/C,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CACtB,WAAwC,EACxC,KAAe;IAEf,IAAI,SAAS,GAAsB,WAAW,CAAC;IAC/C,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG;gBAC/B,UAAU,EAAE,EAAE;gBACd,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,EAAE;aACf,CAAC;QACJ,CAAC;QACD,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OpenAPI3Responses } from "../../../../types.js";
|
|
2
2
|
import { TypeSpecModel } from "../interfaces.js";
|
|
3
3
|
/**
|
|
4
4
|
* Transforms #/paths/{route}/{httpMethod}/responses into TypeSpec models.
|
|
5
|
-
*
|
|
6
|
-
* @param
|
|
7
|
-
* @param document
|
|
5
|
+
* @param operationId - Used to generate model names with scopes.
|
|
6
|
+
* @param operationResponses - The responses object for an operation.
|
|
8
7
|
*/
|
|
9
|
-
export declare function
|
|
8
|
+
export declare function collectOperationResponses(operationId: string, operationResponses: OpenAPI3Responses): TypeSpecModel[];
|
|
10
9
|
export declare function generateResponseModelName(operationId: string, statusCode: string, contentType?: string): string;
|
|
11
10
|
//# sourceMappingURL=transform-operation-responses.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-operation-responses.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-operation-responses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-operation-responses.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-operation-responses.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAqB,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AAK3F;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,iBAAiB,GACpC,aAAa,EAAE,CAiFjB;AA2ED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CASR"}
|
|
@@ -1,44 +1,21 @@
|
|
|
1
|
+
import { printIdentifier } from "@typespec/compiler";
|
|
1
2
|
import { convertHeaderName } from "../utils/convert-header-name.js";
|
|
2
3
|
import { getDecoratorsForSchema, getExtensions } from "../utils/decorators.js";
|
|
3
|
-
import {
|
|
4
|
+
import { getScopeAndName } from "../utils/get-scope-and-name.js";
|
|
4
5
|
/**
|
|
5
6
|
* Transforms #/paths/{route}/{httpMethod}/responses into TypeSpec models.
|
|
6
|
-
*
|
|
7
|
-
* @param
|
|
8
|
-
* @param document
|
|
7
|
+
* @param operationId - Used to generate model names with scopes.
|
|
8
|
+
* @param operationResponses - The responses object for an operation.
|
|
9
9
|
*/
|
|
10
|
-
export function
|
|
11
|
-
const
|
|
12
|
-
for (const { operationId, operationResponses } of allOperationResponses) {
|
|
13
|
-
transformOperationResponses(models, operationId, operationResponses);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function collectOpenAPI3OperationResponses(document) {
|
|
17
|
-
const allOperationResponses = [];
|
|
18
|
-
const paths = document.paths ?? {};
|
|
19
|
-
for (const route of Object.keys(paths)) {
|
|
20
|
-
const path = paths[route];
|
|
21
|
-
for (const verb of supportedHttpMethods) {
|
|
22
|
-
const operation = path[verb];
|
|
23
|
-
if (!operation)
|
|
24
|
-
continue;
|
|
25
|
-
const operationResponses = operation.responses ?? {};
|
|
26
|
-
allOperationResponses.push({
|
|
27
|
-
operationId: operation.operationId,
|
|
28
|
-
operationResponses,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return allOperationResponses;
|
|
33
|
-
}
|
|
34
|
-
function transformOperationResponses(models, operationId, operationResponses) {
|
|
10
|
+
export function collectOperationResponses(operationId, operationResponses) {
|
|
11
|
+
const models = [];
|
|
35
12
|
const rootDecorators = getExtensions(operationResponses);
|
|
36
13
|
for (const statusCode of Object.keys(operationResponses)) {
|
|
37
14
|
const response = operationResponses[statusCode];
|
|
38
15
|
const decorators = [...rootDecorators];
|
|
39
16
|
if ("$ref" in response) {
|
|
40
17
|
//TODO: Support for referencing #/components/responseBodies
|
|
41
|
-
|
|
18
|
+
continue;
|
|
42
19
|
}
|
|
43
20
|
// These headers will be applied to all of the models for this operation/statusCode
|
|
44
21
|
const commonProperties = [];
|
|
@@ -58,10 +35,12 @@ function transformOperationResponses(models, operationId, operationResponses) {
|
|
|
58
35
|
if (isErrorStatusCode(statusCode)) {
|
|
59
36
|
decorators.push({ name: "error", args: [] });
|
|
60
37
|
}
|
|
38
|
+
const scopeAndName = getScopeAndName(operationId);
|
|
61
39
|
if (!response.content) {
|
|
62
40
|
// This is common when there is no actual request body, just a statusCode, e.g. for errors
|
|
63
41
|
models.push({
|
|
64
|
-
|
|
42
|
+
scope: scopeAndName.scope,
|
|
43
|
+
name: generateResponseModelName(scopeAndName.rawName, statusCode),
|
|
65
44
|
decorators,
|
|
66
45
|
properties: commonProperties,
|
|
67
46
|
doc: response.description,
|
|
@@ -91,7 +70,8 @@ function transformOperationResponses(models, operationId, operationResponses) {
|
|
|
91
70
|
});
|
|
92
71
|
}
|
|
93
72
|
models.push({
|
|
94
|
-
|
|
73
|
+
scope: scopeAndName.scope,
|
|
74
|
+
name: generateResponseModelName(scopeAndName.rawName, statusCode, contentType),
|
|
95
75
|
decorators,
|
|
96
76
|
properties,
|
|
97
77
|
doc: response.description,
|
|
@@ -99,6 +79,7 @@ function transformOperationResponses(models, operationId, operationResponses) {
|
|
|
99
79
|
}
|
|
100
80
|
}
|
|
101
81
|
}
|
|
82
|
+
return models;
|
|
102
83
|
}
|
|
103
84
|
function convertHeaderToProperty(name, meta) {
|
|
104
85
|
const normalizedName = convertHeaderName(name);
|
|
@@ -178,7 +159,7 @@ export function generateResponseModelName(operationId, statusCode, contentType)
|
|
|
178
159
|
if (contentType) {
|
|
179
160
|
modelName += convertContentType(contentType);
|
|
180
161
|
}
|
|
181
|
-
return modelName + "Response";
|
|
162
|
+
return printIdentifier(modelName + "Response");
|
|
182
163
|
}
|
|
183
164
|
function convertContentType(contentType) {
|
|
184
165
|
return contentType
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-operation-responses.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-operation-responses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-operation-responses.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-operation-responses.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { OpenAPI3PathItem } from "../../../../types.js";
|
|
2
|
-
import { TypeSpecOperation } from "../interfaces.js";
|
|
2
|
+
import { TypeSpecModel, TypeSpecOperation } from "../interfaces.js";
|
|
3
3
|
/**
|
|
4
4
|
* Transforms each operation defined under #/paths/{route}/{httpMethod} into a TypeSpec operation.
|
|
5
|
+
* @params models - The array of models to populate with any new models generated from the operation.
|
|
5
6
|
* @param paths
|
|
6
7
|
* @returns
|
|
7
8
|
*/
|
|
8
|
-
export declare function transformPaths(paths: Record<string, OpenAPI3PathItem>): TypeSpecOperation[];
|
|
9
|
+
export declare function transformPaths(models: TypeSpecModel[], paths: Record<string, OpenAPI3PathItem>): TypeSpecOperation[];
|
|
9
10
|
//# sourceMappingURL=transform-paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-paths.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-paths.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-paths.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,aAAa,EACb,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAM1B;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EAAE,EACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACtC,iBAAiB,EAAE,CAkCrB"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
import { printIdentifier } from "@typespec/compiler";
|
|
1
2
|
import { getExtensions, getParameterDecorators } from "../utils/decorators.js";
|
|
3
|
+
import { getScopeAndName } from "../utils/get-scope-and-name.js";
|
|
2
4
|
import { supportedHttpMethods } from "../utils/supported-http-methods.js";
|
|
5
|
+
import { collectOperationResponses } from "./transform-operation-responses.js";
|
|
3
6
|
/**
|
|
4
7
|
* Transforms each operation defined under #/paths/{route}/{httpMethod} into a TypeSpec operation.
|
|
8
|
+
* @params models - The array of models to populate with any new models generated from the operation.
|
|
5
9
|
* @param paths
|
|
6
10
|
* @returns
|
|
7
11
|
*/
|
|
8
|
-
export function transformPaths(paths) {
|
|
12
|
+
export function transformPaths(models, paths) {
|
|
9
13
|
const operations = [];
|
|
10
14
|
for (const route of Object.keys(paths)) {
|
|
11
15
|
const path = paths[route];
|
|
@@ -15,8 +19,11 @@ export function transformPaths(paths) {
|
|
|
15
19
|
continue;
|
|
16
20
|
const parameters = operation.parameters?.map(transformOperationParameter) ?? [];
|
|
17
21
|
const tags = operation.tags?.map((t) => t) ?? [];
|
|
22
|
+
const operationResponses = operation.responses ?? {};
|
|
23
|
+
const responseModels = collectOperationResponses(operation.operationId, operationResponses);
|
|
24
|
+
models.push(...responseModels);
|
|
18
25
|
operations.push({
|
|
19
|
-
|
|
26
|
+
...getScopeAndName(operation.operationId),
|
|
20
27
|
decorators: [
|
|
21
28
|
...getExtensions(operation),
|
|
22
29
|
{ name: "route", args: [route] },
|
|
@@ -26,7 +33,7 @@ export function transformPaths(paths) {
|
|
|
26
33
|
doc: operation.description,
|
|
27
34
|
operationId: operation.operationId,
|
|
28
35
|
requestBodies: transformRequestBodies(operation.requestBody),
|
|
29
|
-
|
|
36
|
+
responseTypes: responseModels.map((m) => m.name),
|
|
30
37
|
tags: tags,
|
|
31
38
|
});
|
|
32
39
|
}
|
|
@@ -38,7 +45,7 @@ function transformOperationParameter(parameter) {
|
|
|
38
45
|
return { $ref: parameter.$ref };
|
|
39
46
|
}
|
|
40
47
|
return {
|
|
41
|
-
name: parameter.name,
|
|
48
|
+
name: printIdentifier(parameter.name),
|
|
42
49
|
doc: parameter.description,
|
|
43
50
|
decorators: getParameterDecorators(parameter),
|
|
44
51
|
isOptional: !parameter.required,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-paths.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-paths.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { transformComponentParameters } from "./transform-component-parameters.js";
|
|
2
2
|
import { transformComponentSchemas } from "./transform-component-schemas.js";
|
|
3
|
-
import {
|
|
3
|
+
import { transformNamespaces } from "./transform-namespaces.js";
|
|
4
4
|
import { transformPaths } from "./transform-paths.js";
|
|
5
5
|
import { transformServiceInfo } from "./transform-service-info.js";
|
|
6
6
|
export function transform(openapi) {
|
|
7
7
|
const models = collectModels(openapi);
|
|
8
|
+
const operations = transformPaths(models, openapi.paths);
|
|
8
9
|
return {
|
|
9
10
|
serviceInfo: transformServiceInfo(openapi.info),
|
|
10
|
-
models,
|
|
11
|
+
...transformNamespaces(models, operations),
|
|
11
12
|
augmentations: [],
|
|
12
|
-
operations: transformPaths(openapi.paths),
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
function collectModels(document) {
|
|
@@ -19,8 +19,6 @@ function collectModels(document) {
|
|
|
19
19
|
transformComponentSchemas(models, components?.schemas);
|
|
20
20
|
// get models from `#/components/parameters
|
|
21
21
|
transformComponentParameters(models, components?.parameters);
|
|
22
|
-
// get models from #/paths/{route}/{httpMethod}/responses
|
|
23
|
-
transformAllOperationResponses(models, document);
|
|
24
22
|
return models;
|
|
25
23
|
}
|
|
26
24
|
//# sourceMappingURL=transforms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transforms.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transforms.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzD,OAAO;QACL,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;QAC/C,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC;QAC1C,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAA0B;IAC/C,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,uCAAuC;IACvC,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,2CAA2C;IAC3C,4BAA4B,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type ScopeAndName = {
|
|
2
|
+
scope: string[];
|
|
3
|
+
name: string;
|
|
4
|
+
rawName: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function getScopeAndName(originalName: string): ScopeAndName;
|
|
7
|
+
export declare function scopesMatch(a: string[], b: string[]): boolean;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=get-scope-and-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-scope-and-name.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/get-scope-and-name.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AACvE,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAKlE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAG7D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { printIdentifier } from "@typespec/compiler";
|
|
2
|
+
export function getScopeAndName(originalName) {
|
|
3
|
+
const path = originalName.split(".");
|
|
4
|
+
const name = path.pop();
|
|
5
|
+
return { scope: path.map(printIdentifier), name: printIdentifier(name), rawName: name };
|
|
6
|
+
}
|
|
7
|
+
export function scopesMatch(a, b) {
|
|
8
|
+
if (a.length !== b.length)
|
|
9
|
+
return false;
|
|
10
|
+
return a.every((scope, i) => scope === b[i]);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=get-scope-and-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-scope-and-name.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/get-scope-and-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAG,CAAC;IAEzB,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAW,EAAE,CAAW;IAClD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "0.
|
|
1
|
+
export const version = "0.58.0";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/openapi3",
|
|
3
|
-
"version": "0.58.0
|
|
3
|
+
"version": "0.58.0",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec library for emitting OpenAPI 3.0 from the TypeSpec REST protocol binding and converting OpenAPI3 to TypeSpec",
|
|
6
6
|
"homepage": "https://typespec.io",
|
|
@@ -45,20 +45,14 @@
|
|
|
45
45
|
"yaml": "~2.4.5"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@typespec/compiler": "~0.
|
|
49
|
-
"@typespec/http": "~0.
|
|
50
|
-
"@typespec/openapi": "~0.
|
|
51
|
-
"@typespec/versioning": "~0.
|
|
48
|
+
"@typespec/compiler": "~0.58.0",
|
|
49
|
+
"@typespec/http": "~0.58.0",
|
|
50
|
+
"@typespec/openapi": "~0.58.0",
|
|
51
|
+
"@typespec/versioning": "~0.58.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@types/node": "~18.11.19",
|
|
55
55
|
"@types/yargs": "~17.0.32",
|
|
56
|
-
"@typespec/compiler": "~0.57.0 || >=0.58.0-dev <0.58.0",
|
|
57
|
-
"@typespec/http": "~0.57.0 || >=0.58.0-dev <0.58.0",
|
|
58
|
-
"@typespec/library-linter": "~0.57.0 || >=0.58.0-dev <0.58.0",
|
|
59
|
-
"@typespec/openapi": "~0.57.0 || >=0.58.0-dev <0.58.0",
|
|
60
|
-
"@typespec/rest": "~0.57.0 || >=0.58.0-dev <0.58.0",
|
|
61
|
-
"@typespec/versioning": "~0.57.0 || >=0.58.0-dev <0.58.0",
|
|
62
56
|
"@vitest/coverage-v8": "^1.6.0",
|
|
63
57
|
"@vitest/ui": "^1.6.0",
|
|
64
58
|
"c8": "^10.1.2",
|
|
@@ -66,7 +60,13 @@
|
|
|
66
60
|
"rimraf": "~5.0.7",
|
|
67
61
|
"typescript": "~5.5.3",
|
|
68
62
|
"vitest": "^1.6.0",
|
|
69
|
-
"@typespec/
|
|
63
|
+
"@typespec/compiler": "~0.58.0",
|
|
64
|
+
"@typespec/http": "~0.58.0",
|
|
65
|
+
"@typespec/library-linter": "~0.58.0",
|
|
66
|
+
"@typespec/openapi": "~0.58.0",
|
|
67
|
+
"@typespec/tspd": "~0.46.0",
|
|
68
|
+
"@typespec/rest": "~0.58.0",
|
|
69
|
+
"@typespec/versioning": "~0.58.0"
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"clean": "rimraf ./dist ./temp",
|