@azure-tools/typespec-python 0.10.0 → 0.12.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.
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAgBH,WAAW,EAGX,IAAI,EAGP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAOH,QAAQ,EAQX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EASH,UAAU,EAab,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAQhD,UAAU,cAAc;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;CACpB;AAED,UAAU,mBAAmB;IACzB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,KAAK,WAAW,GAAG,IAAI,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAc/D,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAuBvE;AAoFD,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,GAAG,CAqDnE"}
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAiBH,WAAW,EAGX,IAAI,EAGP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAOH,QAAQ,EAQX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EASH,UAAU,EAab,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAQhD,UAAU,cAAc;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;CACpB;AAED,UAAU,mBAAmB;IACzB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,KAAK,WAAW,GAAG,IAAI,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAc/D,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAuBvE;AAoFD,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,GAAG,GAAG,CA0DnE"}
@@ -1,6 +1,6 @@
1
1
  import { getPagedResult, getLroMetadata } from "@azure-tools/typespec-azure-core";
2
- import { getDoc, getEncode, getFriendlyName, getSummary, ignoreDiagnostics, isErrorModel, isNeverType, getEffectiveModelType, getDiscriminator, listServices, getNamespaceFullName, } from "@typespec/compiler";
3
- import { getAuthentication, getHeaderFieldName, getHttpOperation, getPathParamName, getQueryParamName, getServers, isStatusCode, isHeader, } from "@typespec/http";
2
+ import { getDoc, getEncode, getFriendlyName, getSummary, getVisibility, ignoreDiagnostics, isErrorModel, isNeverType, getEffectiveModelType, getDiscriminator, listServices, getNamespaceFullName, } from "@typespec/compiler";
3
+ import { getAuthentication, getHeaderFieldName, getHttpOperation, getPathParamName, getQueryParamName, getServers, isStatusCode, isHeader, isQueryParam, } from "@typespec/http";
4
4
  import { getAddedOnVersions } from "@typespec/versioning";
5
5
  import { listClients, listOperationGroups, listOperationsInOperationGroup, isApiVersion, getDefaultApiVersion, getClientNamespaceString, createSdkContext, getLibraryName, getAllModels, isInternal, getSdkSimpleType, getSdkListOrDict, getSdkUnion, getSdkEnum, getSdkConstant, getSdkModelPropertyType, getClientFormat, } from "@azure-tools/typespec-client-generator-core";
6
6
  import { getResourceOperation } from "@typespec/rest";
@@ -148,7 +148,10 @@ export function getType(context, type) {
148
148
  if (type.kind === "Model") {
149
149
  // need to do properties after insertion to avoid infinite recursion
150
150
  for (const property of type.properties.values()) {
151
- if (isStatusCode(program, property) || isNeverType(property.type) || isHeader(program, property)) {
151
+ if (isStatusCode(program, property) ||
152
+ isNeverType(property.type) ||
153
+ isHeader(program, property) ||
154
+ isQueryParam(program, property)) {
152
155
  continue;
153
156
  }
154
157
  newValue.properties.push(emitProperty(context, property));
@@ -184,7 +187,7 @@ function emitParamBase(context, parameter) {
184
187
  let addedOn;
185
188
  if (parameter.kind === "ModelProperty") {
186
189
  optional = parameter.optional;
187
- name = parameter.name;
190
+ name = getSdkModelPropertyType(context, parameter).name;
188
191
  description = getDocStr(context, parameter);
189
192
  addedOn = getAddedOnVersion(context, parameter);
190
193
  }
@@ -373,18 +376,19 @@ function emitAcceptParameter(inOverload, inOverriden) {
373
376
  type: getConstantType("application/json"),
374
377
  };
375
378
  }
376
- function emitResponseHeaders(context, headers) {
377
- const retval = [];
378
- if (!headers) {
379
- return retval;
380
- }
381
- for (const [key, value] of Object.entries(headers)) {
382
- retval.push({
383
- type: getType(context, value),
384
- wireName: key,
385
- });
379
+ function emitResponseHeaders(context, response) {
380
+ const headers = [];
381
+ for (const innerResponse of response.responses) {
382
+ if (innerResponse.headers && Object.keys(innerResponse.headers).length > 0) {
383
+ for (const [key, value] of Object.entries(innerResponse.headers)) {
384
+ headers.push({
385
+ type: getType(context, value),
386
+ wireName: key,
387
+ });
388
+ }
389
+ }
386
390
  }
387
- return retval;
391
+ return headers;
388
392
  }
389
393
  function isAzureCoreModel(t) {
390
394
  return (t.kind === "Model" &&
@@ -394,32 +398,32 @@ function isAzureCoreModel(t) {
394
398
  function hasDefaultStatusCode(response) {
395
399
  return response.statusCode === "*";
396
400
  }
397
- function emitResponse(context, response, innerResponse, operation) {
398
- var _a, _b;
401
+ function getBodyFromResponse(context, response) {
402
+ let body = undefined;
403
+ for (const innerResponse of response.responses) {
404
+ if (!body && innerResponse.body) {
405
+ body = innerResponse.body.type;
406
+ }
407
+ }
408
+ if (body && body.kind === "Model") {
409
+ body = getEffectiveSchemaType(context, body);
410
+ }
411
+ return body;
412
+ }
413
+ function emitResponse(context, response) {
399
414
  let type = undefined;
400
- let resultProperty = undefined;
401
- if ((_a = innerResponse.body) === null || _a === void 0 ? void 0 : _a.type) {
402
- let modelType = undefined;
403
- if (innerResponse.body.type.kind === "Model") {
404
- const lroMeta = getLroMetadata(context.program, operation);
405
- if (!hasDefaultStatusCode(response) && lroMeta) {
406
- modelType = lroMeta.logicalResult;
407
- if (((_b = lroMeta.finalStep) === null || _b === void 0 ? void 0 : _b.target.kind) === "ModelProperty") {
408
- resultProperty = lroMeta.finalStep.target.name;
409
- }
415
+ const body = getBodyFromResponse(context, response);
416
+ if (body) {
417
+ if (body.kind === "Model") {
418
+ if (body && body.decorators.find((d) => d.decorator.name === "$pagedResult")) {
419
+ type = getType(context, Array.from(body.properties.values())[0].type);
410
420
  }
411
- else {
412
- modelType = getEffectiveSchemaType(context, innerResponse.body.type);
421
+ else if (body && !isAzureCoreModel(body)) {
422
+ type = getType(context, body);
413
423
  }
414
424
  }
415
- if (modelType && modelType.decorators.find((d) => d.decorator.name === "$pagedResult")) {
416
- type = getType(context, Array.from(modelType.properties.values())[0].type);
417
- }
418
- else if (modelType && !isAzureCoreModel(modelType)) {
419
- type = getType(context, modelType);
420
- }
421
- else if (!modelType) {
422
- type = getType(context, innerResponse.body.type);
425
+ else {
426
+ type = getType(context, body);
423
427
  }
424
428
  }
425
429
  const statusCodes = [];
@@ -430,12 +434,11 @@ function emitResponse(context, response, innerResponse, operation) {
430
434
  statusCodes.push(parseInt(response.statusCode));
431
435
  }
432
436
  return {
433
- headers: emitResponseHeaders(context, innerResponse.headers),
437
+ headers: emitResponseHeaders(context, response),
434
438
  statusCodes: statusCodes,
435
439
  addedOn: getAddedOnVersion(context, response.type),
436
440
  discriminator: "basic",
437
441
  type: type,
438
- resultProperty: resultProperty,
439
442
  };
440
443
  }
441
444
  function emitOperation(context, operation, operationGroupName) {
@@ -452,10 +455,20 @@ function emitOperation(context, operation, operationGroupName) {
452
455
  }
453
456
  return emitBasicOperation(context, operation, operationGroupName);
454
457
  }
455
- function addLroInformation(emittedOperation, initialOperation) {
458
+ function addLroInformation(context, tspOperation, emittedOperation, initialOperation) {
459
+ var _a;
456
460
  emittedOperation["discriminator"] = "lro";
457
461
  emittedOperation["initialOperation"] = initialOperation;
458
462
  emittedOperation["exposeStreamKeyword"] = false;
463
+ const lroMeta = getLroMetadata(context.program, tspOperation);
464
+ if (!isAzureCoreModel(lroMeta.logicalResult)) {
465
+ emittedOperation["responses"][0]["type"] = getType(context, lroMeta.logicalResult);
466
+ if (((_a = lroMeta.finalStep) === null || _a === void 0 ? void 0 : _a.target.kind) === "ModelProperty") {
467
+ emittedOperation["responses"][0]["resultProperty"] = lroMeta.finalStep.target.name;
468
+ }
469
+ addAcceptParameter(context, tspOperation, emittedOperation["parameters"]);
470
+ addAcceptParameter(context, lroMeta.operation, emittedOperation["initialOperation"]["parameters"]);
471
+ }
459
472
  }
460
473
  function addPagingInformation(context, operation, emittedOperation) {
461
474
  emittedOperation["discriminator"] = "paging";
@@ -470,18 +483,25 @@ function addPagingInformation(context, operation, emittedOperation) {
470
483
  emittedOperation["exposeStreamKeyword"] = false;
471
484
  }
472
485
  function getLroInitialOperation(context, operation, operationGroupName) {
473
- const initialOperation = emitBasicOperation(context, getLroMetadata(context.program, operation).operation, operationGroupName)[0];
486
+ const initialTspOperation = getLroMetadata(context.program, operation).operation;
487
+ const initialOperation = emitBasicOperation(context, initialTspOperation, operationGroupName)[0];
474
488
  initialOperation["name"] = `_${initialOperation["name"]}_initial`;
475
489
  initialOperation["isLroInitialOperation"] = true;
476
490
  initialOperation["wantTracing"] = false;
477
491
  initialOperation["exposeStreamKeyword"] = false;
492
+ initialOperation["responses"].forEach((resp, index) => {
493
+ if (getBodyFromResponse(context, ignoreDiagnostics(getHttpOperation(context.program, initialTspOperation)).responses[index])) {
494
+ // if there's a body, even if it's an Azure.Core model, we want to use anyObject
495
+ resp["type"] = KnownTypes.anyObject;
496
+ }
497
+ });
478
498
  return initialOperation;
479
499
  }
480
500
  function emitLroPagingOperation(context, operation, operationGroupName) {
481
501
  const retval = [];
482
502
  for (const emittedOperation of emitBasicOperation(context, operation, operationGroupName)) {
483
503
  const initialOperation = getLroInitialOperation(context, operation, operationGroupName);
484
- addLroInformation(emittedOperation, initialOperation);
504
+ addLroInformation(context, operation, emittedOperation, initialOperation);
485
505
  addPagingInformation(context, operation, emittedOperation);
486
506
  emittedOperation["discriminator"] = "lropaging";
487
507
  retval.push(emittedOperation);
@@ -492,7 +512,7 @@ function emitLroOperation(context, operation, operationGroupName) {
492
512
  const retval = [];
493
513
  for (const emittedOperation of emitBasicOperation(context, operation, operationGroupName)) {
494
514
  const initialOperation = getLroInitialOperation(context, operation, operationGroupName);
495
- addLroInformation(emittedOperation, initialOperation);
515
+ addLroInformation(context, operation, emittedOperation, initialOperation);
496
516
  retval.push(initialOperation);
497
517
  retval.push(emittedOperation);
498
518
  }
@@ -510,6 +530,13 @@ function isAbstract(operation) {
510
530
  const body = operation.parameters.body;
511
531
  return body !== undefined && body.contentTypes.length > 1;
512
532
  }
533
+ function addAcceptParameter(context, operation, parameters) {
534
+ const httpOperation = ignoreDiagnostics(getHttpOperation(context.program, operation));
535
+ if (getBodyFromResponse(context, httpOperation.responses[0]) &&
536
+ parameters.filter((e) => e.wireName.toLowerCase() === "accept").length === 0) {
537
+ parameters.push(emitAcceptParameter(false, false));
538
+ }
539
+ }
513
540
  function emitBasicOperation(context, operation, operationGroupName) {
514
541
  // Set up parameters for operation
515
542
  const parameters = [];
@@ -532,22 +559,17 @@ function emitBasicOperation(context, operation, operationGroupName) {
532
559
  const isOverload = false;
533
560
  const isOverriden = false;
534
561
  for (const response of httpOperation.responses) {
535
- for (const innerResponse of response.responses) {
536
- const emittedResponse = emitResponse(context, response, innerResponse, operation);
537
- if (emittedResponse["type"] &&
538
- parameters.filter((e) => e.wireName.toLowerCase() === "accept").length === 0) {
539
- parameters.push(emitAcceptParameter(isOverload, isOverriden));
540
- }
541
- if (isErrorModel(context.program, response.type)) {
542
- // * is valid status code in cadl but invalid for autorest.python
543
- if (response.statusCode === "*") {
544
- exceptions.push(emittedResponse);
545
- }
546
- }
547
- else {
548
- responses.push(emittedResponse);
562
+ const emittedResponse = emitResponse(context, response);
563
+ addAcceptParameter(context, operation, parameters);
564
+ if (isErrorModel(context.program, response.type)) {
565
+ // * is valid status code in cadl but invalid for autorest.python
566
+ if (response.statusCode === "*") {
567
+ exceptions.push(emittedResponse);
549
568
  }
550
569
  }
570
+ else {
571
+ responses.push(emittedResponse);
572
+ }
551
573
  }
552
574
  let bodyParameter;
553
575
  if (httpOperation.parameters.body === undefined) {
@@ -603,7 +625,7 @@ function emitProperty(context, type) {
603
625
  optional: sdkProperty.optional,
604
626
  description: sdkProperty.doc,
605
627
  addedOn: getAddedOnVersion(context, type),
606
- readonly: sdkProperty.readonly,
628
+ visibility: getVisibility(context.program, type),
607
629
  };
608
630
  }
609
631
  function getName(context, type) {
@@ -1080,5 +1102,6 @@ function emitCodeModel(context) {
1080
1102
  }
1081
1103
  const KnownTypes = {
1082
1104
  string: { type: "string" },
1105
+ anyObject: { type: "any-object" },
1083
1106
  };
1084
1107
  //# sourceMappingURL=emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"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"}
package/dist/src/lib.d.ts CHANGED
@@ -5,6 +5,7 @@ export interface PythonEmitterOptions {
5
5
  "output-dir"?: string;
6
6
  "package-mode"?: string;
7
7
  "package-pprint-name"?: string;
8
+ "head-as-boolean"?: boolean;
8
9
  "debug"?: boolean;
9
10
  }
10
11
  export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAyBD,eAAO,MAAM,IAAI;;wBAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;mBAAE,iBAAiB,4BAAE,SAAS,wFAAS,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AA0BD,eAAO,MAAM,IAAI;;wBAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;mBAAE,iBAAiB,4BAAE,SAAS,wFAAS,CAAC"}
package/dist/src/lib.js CHANGED
@@ -9,6 +9,7 @@ const EmitterOptionsSchema = {
9
9
  "output-dir": { type: "string", nullable: true },
10
10
  "package-mode": { type: "string", nullable: true },
11
11
  "package-pprint-name": { type: "string", nullable: true },
12
+ "head-as-boolean": { type: "boolean", nullable: true },
12
13
  "debug": { type: "boolean", nullable: true },
13
14
  },
14
15
  required: [],
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;AAY3E,MAAM,oBAAoB,GAAyC;IAC/D,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE;QACR,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,qBAAqB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/C;IACD,QAAQ,EAAE,EAAE;CACf,CAAC;AAEF,MAAM,MAAM,GAAG;IACX,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE;QACL,OAAO,EAAE,oBAA4D;KACxE;CACK,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;AAa3E,MAAM,oBAAoB,GAAyC;IAC/D,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE;QACR,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,qBAAqB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzD,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/C;IACD,QAAQ,EAAE,EAAE;CACf,CAAC;AAEF,MAAM,MAAM,GAAG;IACX,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE;QACL,OAAO,EAAE,oBAA4D;KACxE;CACK,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-python",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "Cadl emitter for Python SDKs",
6
6
  "homepage": "https://github.com/Azure/autorest.python",
@@ -43,11 +43,11 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "js-yaml": "~4.1.0",
46
- "@autorest/python": "^6.5.1"
46
+ "@autorest/python": "^6.7.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@azure-tools/cadl-ranch-expect": "~0.4.0",
50
- "@azure-tools/cadl-ranch-specs": "~0.16.0",
50
+ "@azure-tools/cadl-ranch-specs": "~0.16.2",
51
51
  "@types/js-yaml": "~4.0.5",
52
52
  "@types/mocha": "~10.0.1",
53
53
  "@types/node": "^18.16.3",
@@ -59,7 +59,7 @@
59
59
  "mocha": "~10.2.0",
60
60
  "prettier": "^2.8.8",
61
61
  "rimraf": "~5.0.0",
62
- "typescript": "^5.0.4"
62
+ "typescript": "~5.1.3"
63
63
  },
64
64
  "scripts": {
65
65
  "clean": "rimraf ./dist ./temp",