@azure-tools/typespec-ts 0.13.0 → 0.13.1

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.
Files changed (511) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +37 -1
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/modelUtils.d.ts +2 -0
  6. package/dist/src/modelUtils.d.ts.map +1 -1
  7. package/dist/src/modelUtils.js +82 -13
  8. package/dist/src/modelUtils.js.map +1 -1
  9. package/dist/src/modular/buildApiIndex.d.ts.map +1 -1
  10. package/dist/src/modular/buildApiIndex.js +1 -1
  11. package/dist/src/modular/buildApiIndex.js.map +1 -1
  12. package/dist/src/modular/buildClassicalClient.d.ts.map +1 -1
  13. package/dist/src/modular/buildClassicalClient.js +6 -6
  14. package/dist/src/modular/buildClassicalClient.js.map +1 -1
  15. package/dist/src/modular/buildClientContext.d.ts.map +1 -1
  16. package/dist/src/modular/buildClientContext.js +9 -3
  17. package/dist/src/modular/buildClientContext.js.map +1 -1
  18. package/dist/src/modular/buildCodeModel.d.ts.map +1 -1
  19. package/dist/src/modular/buildCodeModel.js +190 -169
  20. package/dist/src/modular/buildCodeModel.js.map +1 -1
  21. package/dist/src/modular/buildOperations.d.ts.map +1 -1
  22. package/dist/src/modular/buildOperations.js +20 -2
  23. package/dist/src/modular/buildOperations.js.map +1 -1
  24. package/dist/src/modular/buildRootIndex.js +2 -2
  25. package/dist/src/modular/buildRootIndex.js.map +1 -1
  26. package/dist/src/modular/buildSharedTypes.d.ts.map +1 -1
  27. package/dist/src/modular/buildSharedTypes.js +8 -10
  28. package/dist/src/modular/buildSharedTypes.js.map +1 -1
  29. package/dist/src/modular/emitModels.d.ts.map +1 -1
  30. package/dist/src/modular/emitModels.js +19 -6
  31. package/dist/src/modular/emitModels.js.map +1 -1
  32. package/dist/src/modular/helpers/clientHelpers.d.ts.map +1 -1
  33. package/dist/src/modular/helpers/clientHelpers.js +2 -11
  34. package/dist/src/modular/helpers/clientHelpers.js.map +1 -1
  35. package/dist/src/modular/helpers/credentialHelpers.js +1 -1
  36. package/dist/src/modular/helpers/credentialHelpers.js.map +1 -1
  37. package/dist/src/modular/helpers/fixmeHelpers.d.ts +2 -0
  38. package/dist/src/modular/helpers/fixmeHelpers.d.ts.map +1 -0
  39. package/dist/src/modular/helpers/fixmeHelpers.js +4 -0
  40. package/dist/src/modular/helpers/fixmeHelpers.js.map +1 -0
  41. package/dist/src/modular/helpers/namingHelpers.d.ts +19 -1
  42. package/dist/src/modular/helpers/namingHelpers.d.ts.map +1 -1
  43. package/dist/src/modular/helpers/namingHelpers.js +99 -0
  44. package/dist/src/modular/helpers/namingHelpers.js.map +1 -1
  45. package/dist/src/modular/helpers/operationHelpers.d.ts +2 -0
  46. package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -1
  47. package/dist/src/modular/helpers/operationHelpers.js +117 -35
  48. package/dist/src/modular/helpers/operationHelpers.js.map +1 -1
  49. package/dist/src/modular/helpers/parameterHelpers.js +1 -1
  50. package/dist/src/modular/helpers/parameterHelpers.js.map +1 -1
  51. package/dist/src/modular/helpers/typeHelpers.d.ts.map +1 -1
  52. package/dist/src/modular/helpers/typeHelpers.js +31 -12
  53. package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
  54. package/dist/src/modular/modularCodeModel.d.ts +2 -1
  55. package/dist/src/modular/modularCodeModel.d.ts.map +1 -1
  56. package/dist/src/operationUtil.d.ts +1 -1
  57. package/dist/src/operationUtil.d.ts.map +1 -1
  58. package/dist/src/operationUtil.js +21 -3
  59. package/dist/src/operationUtil.js.map +1 -1
  60. package/dist/src/transform/transform.d.ts.map +1 -1
  61. package/dist/src/transform/transform.js +2 -2
  62. package/dist/src/transform/transform.js.map +1 -1
  63. package/dist/src/transform/transformApiVersionInfo.js +9 -0
  64. package/dist/src/transform/transformApiVersionInfo.js.map +1 -1
  65. package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +1 -1
  66. package/dist/src/transform/transformHelperFunctionDetails.js +18 -0
  67. package/dist/src/transform/transformHelperFunctionDetails.js.map +1 -1
  68. package/dist/src/transform/transformParameters.d.ts.map +1 -1
  69. package/dist/src/transform/transformParameters.js +27 -34
  70. package/dist/src/transform/transformParameters.js.map +1 -1
  71. package/dist/src/transform/transformPaths.d.ts.map +1 -1
  72. package/dist/src/transform/transformPaths.js +9 -0
  73. package/dist/src/transform/transformPaths.js.map +1 -1
  74. package/dist/src/transform/transformResponses.d.ts.map +1 -1
  75. package/dist/src/transform/transformResponses.js +10 -1
  76. package/dist/src/transform/transformResponses.js.map +1 -1
  77. package/dist/src/transform/transformSchemas.d.ts.map +1 -1
  78. package/dist/src/transform/transformSchemas.js +9 -0
  79. package/dist/src/transform/transformSchemas.js.map +1 -1
  80. package/dist/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +14 -7
  82. package/src/index.ts +47 -2
  83. package/src/modelUtils.ts +90 -15
  84. package/src/modular/buildApiIndex.ts +3 -1
  85. package/src/modular/buildClassicalClient.ts +8 -6
  86. package/src/modular/buildClientContext.ts +11 -3
  87. package/src/modular/buildCodeModel.ts +221 -196
  88. package/src/modular/buildOperations.ts +23 -1
  89. package/src/modular/buildRootIndex.ts +2 -2
  90. package/src/modular/buildSharedTypes.ts +8 -10
  91. package/src/modular/emitModels.ts +14 -0
  92. package/src/modular/helpers/clientHelpers.ts +3 -13
  93. package/src/modular/helpers/credentialHelpers.ts +1 -1
  94. package/src/modular/helpers/fixmeHelpers.ts +3 -0
  95. package/src/modular/helpers/namingHelpers.ts +121 -1
  96. package/src/modular/helpers/operationHelpers.ts +173 -66
  97. package/src/modular/helpers/parameterHelpers.ts +1 -1
  98. package/src/modular/helpers/typeHelpers.ts +33 -12
  99. package/src/modular/modularCodeModel.ts +3 -1
  100. package/src/operationUtil.ts +24 -3
  101. package/src/transform/transform.ts +4 -1
  102. package/src/transform/transformApiVersionInfo.ts +8 -0
  103. package/src/transform/transformHelperFunctionDetails.ts +16 -0
  104. package/src/transform/transformParameters.ts +42 -40
  105. package/src/transform/transformPaths.ts +8 -0
  106. package/src/transform/transformResponses.ts +9 -1
  107. package/src/transform/transformSchemas.ts +8 -0
  108. package/.eslintrc.json +0 -23
  109. package/.prettierignore +0 -1
  110. package/.prettierrc +0 -7
  111. package/.rush/temp/operation/build/all.log +0 -1
  112. package/.rush/temp/operation/build/state.json +0 -3
  113. package/.rush/temp/package-deps_build.json +0 -442
  114. package/.rush/temp/shrinkwrap-deps.json +0 -490
  115. package/CONTRIBUTING.md +0 -137
  116. package/test/commands/cadl-ranch-list.ts +0 -116
  117. package/test/commands/check-clean-tree.ts +0 -55
  118. package/test/commands/childProcessOnExit.ts +0 -16
  119. package/test/commands/gen-cadl-ranch.ts +0 -25
  120. package/test/commands/run.ts +0 -31
  121. package/test/integration/arrayItemTypes.spec.ts +0 -96
  122. package/test/integration/authApiKey.spec.ts +0 -38
  123. package/test/integration/authOauth2.spec.ts +0 -65
  124. package/test/integration/authUnion.spec.ts +0 -72
  125. package/test/integration/azurecore.spec.ts +0 -170
  126. package/test/integration/collectionFormat.spec.ts +0 -118
  127. package/test/integration/dictionary.spec.ts +0 -106
  128. package/test/integration/extensibleEnums.spec.ts +0 -61
  129. package/test/integration/fixedEnums.spec.ts +0 -52
  130. package/test/integration/generated/arrays/itemTypes/src/arrayItemTypesClient.ts +0 -35
  131. package/test/integration/generated/arrays/itemTypes/src/clientDefinitions.ts +0 -165
  132. package/test/integration/generated/arrays/itemTypes/src/index.ts +0 -13
  133. package/test/integration/generated/arrays/itemTypes/src/logger.ts +0 -5
  134. package/test/integration/generated/arrays/itemTypes/src/models.ts +0 -9
  135. package/test/integration/generated/arrays/itemTypes/src/outputModels.ts +0 -9
  136. package/test/integration/generated/arrays/itemTypes/src/parameters.ts +0 -86
  137. package/test/integration/generated/arrays/itemTypes/src/responses.ts +0 -115
  138. package/test/integration/generated/arrays/itemTypes/tspconfig.yaml +0 -15
  139. package/test/integration/generated/authentication/apiKey/.eslintrc.json +0 -11
  140. package/test/integration/generated/authentication/apiKey/README.md +0 -56
  141. package/test/integration/generated/authentication/apiKey/api-extractor.json +0 -18
  142. package/test/integration/generated/authentication/apiKey/karma.conf.js +0 -133
  143. package/test/integration/generated/authentication/apiKey/package.json +0 -103
  144. package/test/integration/generated/authentication/apiKey/rollup.config.js +0 -118
  145. package/test/integration/generated/authentication/apiKey/src/authApiKeyClient.ts +0 -45
  146. package/test/integration/generated/authentication/apiKey/src/clientDefinitions.ts +0 -33
  147. package/test/integration/generated/authentication/apiKey/src/index.ts +0 -12
  148. package/test/integration/generated/authentication/apiKey/src/logger.ts +0 -5
  149. package/test/integration/generated/authentication/apiKey/src/outputModels.ts +0 -6
  150. package/test/integration/generated/authentication/apiKey/src/parameters.ts +0 -7
  151. package/test/integration/generated/authentication/apiKey/src/responses.ts +0 -21
  152. package/test/integration/generated/authentication/apiKey/test/public/sampleTest.spec.ts +0 -23
  153. package/test/integration/generated/authentication/apiKey/test/public/utils/env.browser.ts +0 -2
  154. package/test/integration/generated/authentication/apiKey/test/public/utils/env.ts +0 -6
  155. package/test/integration/generated/authentication/apiKey/test/public/utils/recordedClient.ts +0 -29
  156. package/test/integration/generated/authentication/apiKey/tsconfig.json +0 -25
  157. package/test/integration/generated/authentication/apiKey/tspconfig.yaml +0 -13
  158. package/test/integration/generated/authentication/oauth2/karma.conf.js +0 -133
  159. package/test/integration/generated/authentication/oauth2/src/authOauth2Client.ts +0 -45
  160. package/test/integration/generated/authentication/oauth2/src/clientDefinitions.ts +0 -33
  161. package/test/integration/generated/authentication/oauth2/src/index.ts +0 -12
  162. package/test/integration/generated/authentication/oauth2/src/logger.ts +0 -5
  163. package/test/integration/generated/authentication/oauth2/src/outputModels.ts +0 -6
  164. package/test/integration/generated/authentication/oauth2/src/parameters.ts +0 -7
  165. package/test/integration/generated/authentication/oauth2/src/responses.ts +0 -21
  166. package/test/integration/generated/authentication/oauth2/test/public/sampleTest.spec.ts +0 -23
  167. package/test/integration/generated/authentication/oauth2/test/public/utils/env.browser.ts +0 -2
  168. package/test/integration/generated/authentication/oauth2/test/public/utils/env.ts +0 -6
  169. package/test/integration/generated/authentication/oauth2/test/public/utils/recordedClient.ts +0 -29
  170. package/test/integration/generated/authentication/oauth2/tspconfig.yaml +0 -15
  171. package/test/integration/generated/authentication/union/karma.conf.js +0 -133
  172. package/test/integration/generated/authentication/union/src/authUnionClient.ts +0 -46
  173. package/test/integration/generated/authentication/union/src/clientDefinitions.ts +0 -27
  174. package/test/integration/generated/authentication/union/src/index.ts +0 -11
  175. package/test/integration/generated/authentication/union/src/logger.ts +0 -5
  176. package/test/integration/generated/authentication/union/src/parameters.ts +0 -7
  177. package/test/integration/generated/authentication/union/src/responses.ts +0 -14
  178. package/test/integration/generated/authentication/union/test/public/sampleTest.spec.ts +0 -23
  179. package/test/integration/generated/authentication/union/test/public/utils/env.browser.ts +0 -2
  180. package/test/integration/generated/authentication/union/test/public/utils/env.ts +0 -6
  181. package/test/integration/generated/authentication/union/test/public/utils/recordedClient.ts +0 -29
  182. package/test/integration/generated/authentication/union/tspconfig.yaml +0 -15
  183. package/test/integration/generated/azure/core/.eslintrc.json +0 -11
  184. package/test/integration/generated/azure/core/README.md +0 -56
  185. package/test/integration/generated/azure/core/api-extractor.json +0 -18
  186. package/test/integration/generated/azure/core/package.json +0 -81
  187. package/test/integration/generated/azure/core/rollup.config.js +0 -118
  188. package/test/integration/generated/azure/core/src/azureCoreClient.ts +0 -35
  189. package/test/integration/generated/azure/core/src/clientDefinitions.ts +0 -108
  190. package/test/integration/generated/azure/core/src/index.ts +0 -16
  191. package/test/integration/generated/azure/core/src/isUnexpected.ts +0 -178
  192. package/test/integration/generated/azure/core/src/logger.ts +0 -5
  193. package/test/integration/generated/azure/core/src/models.ts +0 -18
  194. package/test/integration/generated/azure/core/src/outputModels.ts +0 -38
  195. package/test/integration/generated/azure/core/src/paginateHelper.ts +0 -204
  196. package/test/integration/generated/azure/core/src/parameters.ts +0 -68
  197. package/test/integration/generated/azure/core/src/responses.ts +0 -158
  198. package/test/integration/generated/azure/core/src/serializeHelper.ts +0 -16
  199. package/test/integration/generated/azure/core/tsconfig.json +0 -25
  200. package/test/integration/generated/azure/core/tspconfig.yaml +0 -15
  201. package/test/integration/generated/azure/core-traits/.eslintrc.json +0 -11
  202. package/test/integration/generated/azure/core-traits/README.md +0 -56
  203. package/test/integration/generated/azure/core-traits/api-extractor.json +0 -18
  204. package/test/integration/generated/azure/core-traits/package.json +0 -80
  205. package/test/integration/generated/azure/core-traits/rollup.config.js +0 -118
  206. package/test/integration/generated/azure/core-traits/src/azureCoreTraitsClient.ts +0 -35
  207. package/test/integration/generated/azure/core-traits/src/clientDefinitions.ts +0 -22
  208. package/test/integration/generated/azure/core-traits/src/index.ts +0 -13
  209. package/test/integration/generated/azure/core-traits/src/isUnexpected.ts +0 -97
  210. package/test/integration/generated/azure/core-traits/src/logger.ts +0 -5
  211. package/test/integration/generated/azure/core-traits/src/outputModels.ts +0 -25
  212. package/test/integration/generated/azure/core-traits/src/parameters.ts +0 -26
  213. package/test/integration/generated/azure/core-traits/src/responses.ts +0 -32
  214. package/test/integration/generated/azure/core-traits/tsconfig.json +0 -25
  215. package/test/integration/generated/azure/core-traits/tspconfig.yaml +0 -15
  216. package/test/integration/generated/dictionary/.eslintrc.json +0 -11
  217. package/test/integration/generated/dictionary/README.md +0 -56
  218. package/test/integration/generated/dictionary/api-extractor.json +0 -18
  219. package/test/integration/generated/dictionary/package.json +0 -80
  220. package/test/integration/generated/dictionary/rollup.config.js +0 -118
  221. package/test/integration/generated/dictionary/src/clientDefinitions.ts +0 -180
  222. package/test/integration/generated/dictionary/src/dictClient.ts +0 -33
  223. package/test/integration/generated/dictionary/src/index.ts +0 -13
  224. package/test/integration/generated/dictionary/src/logger.ts +0 -5
  225. package/test/integration/generated/dictionary/src/models.ts +0 -9
  226. package/test/integration/generated/dictionary/src/outputModels.ts +0 -9
  227. package/test/integration/generated/dictionary/src/parameters.ts +0 -94
  228. package/test/integration/generated/dictionary/src/responses.ts +0 -126
  229. package/test/integration/generated/dictionary/tsconfig.json +0 -25
  230. package/test/integration/generated/dictionary/tspconfig.yaml +0 -15
  231. package/test/integration/generated/enums/extensible/.eslintrc.json +0 -11
  232. package/test/integration/generated/enums/extensible/README.md +0 -56
  233. package/test/integration/generated/enums/extensible/api-extractor.json +0 -18
  234. package/test/integration/generated/enums/extensible/package.json +0 -80
  235. package/test/integration/generated/enums/extensible/rollup.config.js +0 -118
  236. package/test/integration/generated/enums/extensible/src/clientDefinitions.ts +0 -45
  237. package/test/integration/generated/enums/extensible/src/index.ts +0 -11
  238. package/test/integration/generated/enums/extensible/src/logger.ts +0 -5
  239. package/test/integration/generated/enums/extensible/src/parameters.ts +0 -23
  240. package/test/integration/generated/enums/extensible/src/responses.ts +0 -26
  241. package/test/integration/generated/enums/extensible/src/typeEnumExtensible.ts +0 -35
  242. package/test/integration/generated/enums/extensible/tsconfig.json +0 -25
  243. package/test/integration/generated/enums/extensible/tspconfig.yaml +0 -14
  244. package/test/integration/generated/enums/fixed/.eslintrc.json +0 -11
  245. package/test/integration/generated/enums/fixed/README.md +0 -56
  246. package/test/integration/generated/enums/fixed/api-extractor.json +0 -18
  247. package/test/integration/generated/enums/fixed/package.json +0 -80
  248. package/test/integration/generated/enums/fixed/rollup.config.js +0 -118
  249. package/test/integration/generated/enums/fixed/src/clientDefinitions.ts +0 -43
  250. package/test/integration/generated/enums/fixed/src/index.ts +0 -11
  251. package/test/integration/generated/enums/fixed/src/logger.ts +0 -5
  252. package/test/integration/generated/enums/fixed/src/parameters.ts +0 -36
  253. package/test/integration/generated/enums/fixed/src/responses.ts +0 -27
  254. package/test/integration/generated/enums/fixed/src/typeEnumFixed.ts +0 -35
  255. package/test/integration/generated/enums/fixed/tsconfig.json +0 -25
  256. package/test/integration/generated/enums/fixed/tspconfig.yaml +0 -14
  257. package/test/integration/generated/hello/.eslintrc.json +0 -11
  258. package/test/integration/generated/hello/README.md +0 -56
  259. package/test/integration/generated/hello/api-extractor.json +0 -18
  260. package/test/integration/generated/hello/package.json +0 -80
  261. package/test/integration/generated/hello/rollup.config.js +0 -118
  262. package/test/integration/generated/hello/src/clientDefinitions.ts +0 -19
  263. package/test/integration/generated/hello/src/hello.ts +0 -29
  264. package/test/integration/generated/hello/src/index.ts +0 -11
  265. package/test/integration/generated/hello/src/parameters.ts +0 -6
  266. package/test/integration/generated/hello/src/responses.ts +0 -10
  267. package/test/integration/generated/hello/tsconfig.json +0 -25
  268. package/test/integration/generated/hello/tspconfig.yaml +0 -14
  269. package/test/integration/generated/internal/src/clientDefinitions.ts +0 -53
  270. package/test/integration/generated/internal/src/index.ts +0 -12
  271. package/test/integration/generated/internal/src/internalClient.ts +0 -35
  272. package/test/integration/generated/internal/src/logger.ts +0 -5
  273. package/test/integration/generated/internal/src/outputModels.ts +0 -17
  274. package/test/integration/generated/internal/src/parameters.ts +0 -45
  275. package/test/integration/generated/internal/src/responses.ts +0 -33
  276. package/test/integration/generated/internal/tspconfig.yaml +0 -14
  277. package/test/integration/generated/lro/lroCore/.eslintrc.json +0 -11
  278. package/test/integration/generated/lro/lroCore/README.md +0 -56
  279. package/test/integration/generated/lro/lroCore/api-extractor.json +0 -18
  280. package/test/integration/generated/lro/lroCore/package.json +0 -82
  281. package/test/integration/generated/lro/lroCore/rollup.config.js +0 -118
  282. package/test/integration/generated/lro/lroCore/src/clientDefinitions.ts +0 -54
  283. package/test/integration/generated/lro/lroCore/src/index.ts +0 -15
  284. package/test/integration/generated/lro/lroCore/src/isUnexpected.ts +0 -135
  285. package/test/integration/generated/lro/lroCore/src/logger.ts +0 -5
  286. package/test/integration/generated/lro/lroCore/src/models.ts +0 -8
  287. package/test/integration/generated/lro/lroCore/src/outputModels.ts +0 -50
  288. package/test/integration/generated/lro/lroCore/src/parameters.ts +0 -25
  289. package/test/integration/generated/lro/lroCore/src/pollingHelper.ts +0 -113
  290. package/test/integration/generated/lro/lroCore/src/responses.ts +0 -109
  291. package/test/integration/generated/lro/lroCore/src/specsAzureCoreLroStandard.ts +0 -35
  292. package/test/integration/generated/lro/lroCore/tsconfig.json +0 -25
  293. package/test/integration/generated/lro/lroCore/tspconfig.yaml +0 -14
  294. package/test/integration/generated/lro/lroRPC/.eslintrc.json +0 -11
  295. package/test/integration/generated/lro/lroRPC/README.md +0 -56
  296. package/test/integration/generated/lro/lroRPC/api-extractor.json +0 -18
  297. package/test/integration/generated/lro/lroRPC/package.json +0 -82
  298. package/test/integration/generated/lro/lroRPC/rollup.config.js +0 -118
  299. package/test/integration/generated/lro/lroRPC/src/clientDefinitions.ts +0 -79
  300. package/test/integration/generated/lro/lroRPC/src/index.ts +0 -15
  301. package/test/integration/generated/lro/lroRPC/src/isUnexpected.ts +0 -153
  302. package/test/integration/generated/lro/lroRPC/src/logger.ts +0 -5
  303. package/test/integration/generated/lro/lroRPC/src/models.ts +0 -8
  304. package/test/integration/generated/lro/lroRPC/src/outputModels.ts +0 -40
  305. package/test/integration/generated/lro/lroRPC/src/parameters.ts +0 -20
  306. package/test/integration/generated/lro/lroRPC/src/pollingHelper.ts +0 -127
  307. package/test/integration/generated/lro/lroRPC/src/responses.ts +0 -124
  308. package/test/integration/generated/lro/lroRPC/src/specsAzureCoreLroRpc.ts +0 -35
  309. package/test/integration/generated/lro/lroRPC/tsconfig.json +0 -25
  310. package/test/integration/generated/lro/lroRPC/tspconfig.yaml +0 -14
  311. package/test/integration/generated/models/inheritance/.eslintrc.json +0 -11
  312. package/test/integration/generated/models/inheritance/README.md +0 -56
  313. package/test/integration/generated/models/inheritance/api-extractor.json +0 -18
  314. package/test/integration/generated/models/inheritance/package.json +0 -80
  315. package/test/integration/generated/models/inheritance/rollup.config.js +0 -118
  316. package/test/integration/generated/models/inheritance/src/clientDefinitions.ts +0 -81
  317. package/test/integration/generated/models/inheritance/src/index.ts +0 -13
  318. package/test/integration/generated/models/inheritance/src/logger.ts +0 -5
  319. package/test/integration/generated/models/inheritance/src/models.ts +0 -52
  320. package/test/integration/generated/models/inheritance/src/outputModels.ts +0 -52
  321. package/test/integration/generated/models/inheritance/src/parameters.ts +0 -35
  322. package/test/integration/generated/models/inheritance/src/responses.ts +0 -56
  323. package/test/integration/generated/models/inheritance/src/typeModelInheritance.ts +0 -35
  324. package/test/integration/generated/models/inheritance/tsconfig.json +0 -25
  325. package/test/integration/generated/models/inheritance/tspconfig.yaml +0 -14
  326. package/test/integration/generated/models/propertyNullable/.eslintrc.json +0 -11
  327. package/test/integration/generated/models/propertyNullable/README.md +0 -56
  328. package/test/integration/generated/models/propertyNullable/api-extractor.json +0 -18
  329. package/test/integration/generated/models/propertyNullable/package.json +0 -80
  330. package/test/integration/generated/models/propertyNullable/rollup.config.js +0 -118
  331. package/test/integration/generated/models/propertyNullable/src/clientDefinitions.ts +0 -227
  332. package/test/integration/generated/models/propertyNullable/src/index.ts +0 -13
  333. package/test/integration/generated/models/propertyNullable/src/logger.ts +0 -5
  334. package/test/integration/generated/models/propertyNullable/src/models.ts +0 -56
  335. package/test/integration/generated/models/propertyNullable/src/outputModels.ts +0 -56
  336. package/test/integration/generated/models/propertyNullable/src/parameters.ts +0 -197
  337. package/test/integration/generated/models/propertyNullable/src/responses.ts +0 -144
  338. package/test/integration/generated/models/propertyNullable/src/typePropertyNullable.ts +0 -35
  339. package/test/integration/generated/models/propertyNullable/tsconfig.json +0 -25
  340. package/test/integration/generated/models/propertyNullable/tspconfig.yaml +0 -14
  341. package/test/integration/generated/models/propertyOptional/.eslintrc.json +0 -11
  342. package/test/integration/generated/models/propertyOptional/README.md +0 -56
  343. package/test/integration/generated/models/propertyOptional/api-extractor.json +0 -18
  344. package/test/integration/generated/models/propertyOptional/package.json +0 -80
  345. package/test/integration/generated/models/propertyOptional/rollup.config.js +0 -118
  346. package/test/integration/generated/models/propertyOptional/src/clientDefinitions.ts +0 -263
  347. package/test/integration/generated/models/propertyOptional/src/index.ts +0 -13
  348. package/test/integration/generated/models/propertyOptional/src/logger.ts +0 -5
  349. package/test/integration/generated/models/propertyOptional/src/models.ts +0 -46
  350. package/test/integration/generated/models/propertyOptional/src/outputModels.ts +0 -46
  351. package/test/integration/generated/models/propertyOptional/src/parameters.ts +0 -125
  352. package/test/integration/generated/models/propertyOptional/src/responses.ts +0 -169
  353. package/test/integration/generated/models/propertyOptional/src/typePropertyOptional.ts +0 -35
  354. package/test/integration/generated/models/propertyOptional/tsconfig.json +0 -25
  355. package/test/integration/generated/models/propertyOptional/tspconfig.yaml +0 -14
  356. package/test/integration/generated/models/propertyTypes/.eslintrc.json +0 -11
  357. package/test/integration/generated/models/propertyTypes/README.md +0 -56
  358. package/test/integration/generated/models/propertyTypes/api-extractor.json +0 -18
  359. package/test/integration/generated/models/propertyTypes/package.json +0 -80
  360. package/test/integration/generated/models/propertyTypes/rollup.config.js +0 -118
  361. package/test/integration/generated/models/propertyTypes/src/clientDefinitions.ts +0 -310
  362. package/test/integration/generated/models/propertyTypes/src/index.ts +0 -13
  363. package/test/integration/generated/models/propertyTypes/src/logger.ts +0 -5
  364. package/test/integration/generated/models/propertyTypes/src/models.ts +0 -123
  365. package/test/integration/generated/models/propertyTypes/src/outputModels.ts +0 -123
  366. package/test/integration/generated/models/propertyTypes/src/parameters.ts +0 -189
  367. package/test/integration/generated/models/propertyTypes/src/responses.ts +0 -234
  368. package/test/integration/generated/models/propertyTypes/src/typePropertyValueTypes.ts +0 -35
  369. package/test/integration/generated/models/propertyTypes/tsconfig.json +0 -25
  370. package/test/integration/generated/models/propertyTypes/tspconfig.yaml +0 -14
  371. package/test/integration/generated/models/usage/.eslintrc.json +0 -11
  372. package/test/integration/generated/models/usage/README.md +0 -56
  373. package/test/integration/generated/models/usage/api-extractor.json +0 -18
  374. package/test/integration/generated/models/usage/package.json +0 -80
  375. package/test/integration/generated/models/usage/rollup.config.js +0 -118
  376. package/test/integration/generated/models/usage/src/clientDefinitions.ts +0 -41
  377. package/test/integration/generated/models/usage/src/index.ts +0 -13
  378. package/test/integration/generated/models/usage/src/logger.ts +0 -5
  379. package/test/integration/generated/models/usage/src/models.ts +0 -12
  380. package/test/integration/generated/models/usage/src/outputModels.ts +0 -12
  381. package/test/integration/generated/models/usage/src/parameters.ts +0 -19
  382. package/test/integration/generated/models/usage/src/responses.ts +0 -22
  383. package/test/integration/generated/models/usage/src/typeModelUsage.ts +0 -35
  384. package/test/integration/generated/models/usage/tsconfig.json +0 -25
  385. package/test/integration/generated/models/usage/tspconfig.yaml +0 -14
  386. package/test/integration/generated/models/visibility/.eslintrc.json +0 -11
  387. package/test/integration/generated/models/visibility/README.md +0 -56
  388. package/test/integration/generated/models/visibility/api-extractor.json +0 -18
  389. package/test/integration/generated/models/visibility/package.json +0 -80
  390. package/test/integration/generated/models/visibility/rollup.config.js +0 -118
  391. package/test/integration/generated/models/visibility/src/clientDefinitions.ts +0 -40
  392. package/test/integration/generated/models/visibility/src/index.ts +0 -13
  393. package/test/integration/generated/models/visibility/src/logger.ts +0 -5
  394. package/test/integration/generated/models/visibility/src/models.ts +0 -14
  395. package/test/integration/generated/models/visibility/src/outputModels.ts +0 -16
  396. package/test/integration/generated/models/visibility/src/parameters.ts +0 -41
  397. package/test/integration/generated/models/visibility/src/responses.ts +0 -36
  398. package/test/integration/generated/models/visibility/src/typeModelVisibility.ts +0 -35
  399. package/test/integration/generated/models/visibility/tsconfig.json +0 -25
  400. package/test/integration/generated/models/visibility/tspconfig.yaml +0 -14
  401. package/test/integration/generated/parameters/collection-format/src/clientDefinitions.ts +0 -63
  402. package/test/integration/generated/parameters/collection-format/src/collectionFormatClient.ts +0 -35
  403. package/test/integration/generated/parameters/collection-format/src/index.ts +0 -12
  404. package/test/integration/generated/parameters/collection-format/src/logger.ts +0 -5
  405. package/test/integration/generated/parameters/collection-format/src/parameters.ts +0 -71
  406. package/test/integration/generated/parameters/collection-format/src/responses.ts +0 -34
  407. package/test/integration/generated/parameters/collection-format/src/serializeHelper.ts +0 -28
  408. package/test/integration/generated/parameters/collection-format/tspconfig.yaml +0 -14
  409. package/test/integration/generated/parameters/spread/src/clientDefinitions.ts +0 -61
  410. package/test/integration/generated/parameters/spread/src/index.ts +0 -12
  411. package/test/integration/generated/parameters/spread/src/logger.ts +0 -5
  412. package/test/integration/generated/parameters/spread/src/models.ts +0 -7
  413. package/test/integration/generated/parameters/spread/src/parameters.ts +0 -61
  414. package/test/integration/generated/parameters/spread/src/parametersSpread.ts +0 -35
  415. package/test/integration/generated/parameters/spread/src/responses.ts +0 -25
  416. package/test/integration/generated/parameters/spread/tspconfig.yaml +0 -12
  417. package/test/integration/generated/projection/src/clientDefinitions.ts +0 -71
  418. package/test/integration/generated/projection/src/index.ts +0 -12
  419. package/test/integration/generated/projection/src/logger.ts +0 -5
  420. package/test/integration/generated/projection/src/models.ts +0 -22
  421. package/test/integration/generated/projection/src/parameters.ts +0 -48
  422. package/test/integration/generated/projection/src/projectionClient.ts +0 -35
  423. package/test/integration/generated/projection/src/responses.ts +0 -34
  424. package/test/integration/generated/projection/tspconfig.yaml +0 -14
  425. package/test/integration/generated/resiliency/srvDriven1/.eslintrc.json +0 -11
  426. package/test/integration/generated/resiliency/srvDriven1/README.md +0 -56
  427. package/test/integration/generated/resiliency/srvDriven1/api-extractor.json +0 -18
  428. package/test/integration/generated/resiliency/srvDriven1/package.json +0 -80
  429. package/test/integration/generated/resiliency/srvDriven1/rollup.config.js +0 -118
  430. package/test/integration/generated/resiliency/srvDriven1/src/clientDefinitions.ts +0 -46
  431. package/test/integration/generated/resiliency/srvDriven1/src/index.ts +0 -11
  432. package/test/integration/generated/resiliency/srvDriven1/src/logger.ts +0 -5
  433. package/test/integration/generated/resiliency/srvDriven1/src/parameters.ts +0 -30
  434. package/test/integration/generated/resiliency/srvDriven1/src/responses.ts +0 -19
  435. package/test/integration/generated/resiliency/srvDriven1/src/serviceDrivenOldClient.ts +0 -43
  436. package/test/integration/generated/resiliency/srvDriven1/tsconfig.json +0 -25
  437. package/test/integration/generated/resiliency/srvDriven1/tspconfig.yaml +0 -15
  438. package/test/integration/generated/resiliency/srvDriven2/.eslintrc.json +0 -11
  439. package/test/integration/generated/resiliency/srvDriven2/README.md +0 -65
  440. package/test/integration/generated/resiliency/srvDriven2/api-extractor.json +0 -18
  441. package/test/integration/generated/resiliency/srvDriven2/package.json +0 -80
  442. package/test/integration/generated/resiliency/srvDriven2/rollup.config.js +0 -118
  443. package/test/integration/generated/resiliency/srvDriven2/src/clientDefinitions.ts +0 -57
  444. package/test/integration/generated/resiliency/srvDriven2/src/index.ts +0 -11
  445. package/test/integration/generated/resiliency/srvDriven2/src/logger.ts +0 -5
  446. package/test/integration/generated/resiliency/srvDriven2/src/parameters.ts +0 -45
  447. package/test/integration/generated/resiliency/srvDriven2/src/responses.ts +0 -24
  448. package/test/integration/generated/resiliency/srvDriven2/src/serviceDrivenNewClient.ts +0 -43
  449. package/test/integration/generated/resiliency/srvDriven2/tsconfig.json +0 -25
  450. package/test/integration/generated/resiliency/srvDriven2/tspconfig.yaml +0 -15
  451. package/test/integration/generated/server/path/multiple/src/clientDefinitions.ts +0 -35
  452. package/test/integration/generated/server/path/multiple/src/index.ts +0 -11
  453. package/test/integration/generated/server/path/multiple/src/logger.ts +0 -5
  454. package/test/integration/generated/server/path/multiple/src/multipleParamInServerPathClient.ts +0 -43
  455. package/test/integration/generated/server/path/multiple/src/parameters.ts +0 -7
  456. package/test/integration/generated/server/path/multiple/src/responses.ts +0 -14
  457. package/test/integration/generated/server/path/multiple/tspconfig.yaml +0 -14
  458. package/test/integration/generated/server/path/single/src/clientDefinitions.ts +0 -19
  459. package/test/integration/generated/server/path/single/src/index.ts +0 -11
  460. package/test/integration/generated/server/path/single/src/logger.ts +0 -5
  461. package/test/integration/generated/server/path/single/src/parameters.ts +0 -6
  462. package/test/integration/generated/server/path/single/src/responses.ts +0 -9
  463. package/test/integration/generated/server/path/single/src/singleParamInServerPathClient.ts +0 -38
  464. package/test/integration/generated/server/path/single/tspconfig.yaml +0 -14
  465. package/test/integration/generated/specialWords/src/clientDefinitions.ts +0 -61
  466. package/test/integration/generated/specialWords/src/index.ts +0 -13
  467. package/test/integration/generated/specialWords/src/logger.ts +0 -5
  468. package/test/integration/generated/specialWords/src/models.ts +0 -17
  469. package/test/integration/generated/specialWords/src/outputModels.ts +0 -17
  470. package/test/integration/generated/specialWords/src/parameters.ts +0 -37
  471. package/test/integration/generated/specialWords/src/responses.ts +0 -31
  472. package/test/integration/generated/specialWords/src/specialWordsClient.ts +0 -35
  473. package/test/integration/generated/specialWords/tspconfig.yaml +0 -14
  474. package/test/integration/generated/unions/src/clientDefinitions.ts +0 -53
  475. package/test/integration/generated/unions/src/index.ts +0 -12
  476. package/test/integration/generated/unions/src/logger.ts +0 -5
  477. package/test/integration/generated/unions/src/models.ts +0 -27
  478. package/test/integration/generated/unions/src/parameters.ts +0 -34
  479. package/test/integration/generated/unions/src/responses.ts +0 -24
  480. package/test/integration/generated/unions/src/unionsClient.ts +0 -35
  481. package/test/integration/generated/unions/tspconfig.yaml +0 -14
  482. package/test/integration/internal.spec.ts +0 -76
  483. package/test/integration/lroCore.spec.ts +0 -89
  484. package/test/integration/modelInheritance.spec.ts +0 -192
  485. package/test/integration/modelPropertyNullable.spec.ts +0 -115
  486. package/test/integration/modelPropertyOptional.spec.ts +0 -362
  487. package/test/integration/modelPropertyType.spec.ts +0 -135
  488. package/test/integration/modelUsage.spec.ts +0 -47
  489. package/test/integration/projection.spec.ts +0 -102
  490. package/test/integration/resiliencyDpgCustomization.spec.ts +0 -147
  491. package/test/integration/server.spec.ts +0 -59
  492. package/test/integration/specialWords.spec.ts +0 -73
  493. package/test/integration/spreadParameters.spec.ts +0 -82
  494. package/test/integration/unions.spec.ts +0 -69
  495. package/test/tsconfig.json +0 -4
  496. package/test/unit/apiVersion.spec.ts +0 -400
  497. package/test/unit/azureCoreOperationsGenerator.spec.ts +0 -71
  498. package/test/unit/clientDefinitionGenerator.spec.ts +0 -73
  499. package/test/unit/clientFactoryGenerator.spec.ts +0 -404
  500. package/test/unit/docsGenerator.spec.ts +0 -201
  501. package/test/unit/modelsGenerator.spec.ts +0 -1529
  502. package/test/unit/parametersGenerator.spec.ts +0 -561
  503. package/test/unit/responsesGenerator.spec.ts +0 -462
  504. package/test/unit/spreadAndAlias.spec.ts +0 -200
  505. package/test/unit/util/emitUtil.ts +0 -166
  506. package/test/unit/util/testUtil.ts +0 -88
  507. package/test/util/customBearerTokenTestingPolicy.ts +0 -78
  508. package/test/util/matrix.ts +0 -48
  509. package/tsconfig.json +0 -36
  510. package/tsconfig.test.json +0 -7
  511. package/typespec-ts.build.log +0 -1
@@ -7,41 +7,52 @@ export interface TypeMetadata {
7
7
  modifier?: "Array";
8
8
  }
9
9
 
10
+ function getNullableType(name: string, type: Type): string {
11
+ if (type.nullable) {
12
+ return `(${name} | null)`;
13
+ }
14
+
15
+ return name;
16
+ }
17
+
10
18
  export function getType(type: Type): TypeMetadata {
11
19
  switch (type.type) {
12
20
  case "Key":
13
21
  return {
14
- name: "AzureKeyCredential",
22
+ name: "KeyCredential",
15
23
  originModule: "@azure/core-auth",
16
24
  isRelative: false
17
25
  };
18
26
  case "boolean":
19
- return { name: "boolean" };
27
+ return { name: getNullableType(type.type, type) };
20
28
  case "constant": {
21
29
  let typeName: string = type.value ?? "undefined";
22
30
  if (type.valueType?.type === "string") {
23
31
  typeName = type.value ? `"${type.value}"` : "undefined";
24
32
  }
25
- return { name: typeName };
33
+ return { name: getNullableType(typeName, type) };
26
34
  }
27
35
  case "datetime":
28
- return { name: "Date" };
36
+ return { name: getNullableType("Date", type) };
29
37
  case "enum":
30
38
  if (!type.name) {
31
39
  throw new Error("Unable to process enum without name");
32
40
  }
33
- return { name: type.name, originModule: "models.js" };
41
+ return {
42
+ name: getNullableType(type.name, type),
43
+ originModule: "models.js"
44
+ };
34
45
  case "float":
35
46
  case "integer":
36
- return { name: "number" };
47
+ return { name: getNullableType("number", type) };
37
48
  case "byte-array":
38
- return { name: "string" };
49
+ return { name: getNullableType("Uint8Array", type) };
39
50
  case "list":
40
51
  if (!type.elementType) {
41
52
  throw new Error("Unable to process Array with no elementType");
42
53
  }
43
54
  return {
44
- name: getType(type.elementType).name,
55
+ name: getNullableType(getType(type.elementType).name, type),
45
56
  modifier: "Array",
46
57
  originModule:
47
58
  type.elementType?.type === "model" ? "models.js" : undefined
@@ -50,10 +61,13 @@ export function getType(type: Type): TypeMetadata {
50
61
  if (!type.name) {
51
62
  throw new Error("Unable to process model without name");
52
63
  }
53
- return { name: type.name, originModule: "models.js" };
64
+ return {
65
+ name: getNullableType(type.name, type),
66
+ originModule: "models.js"
67
+ };
54
68
  case "string":
55
69
  case "duration":
56
- return { name: "string" };
70
+ return { name: getNullableType("string", type) };
57
71
  case "combined": {
58
72
  if (!type.types) {
59
73
  throw new Error("Unable to process combined without combinedTypes");
@@ -64,7 +78,7 @@ export function getType(type: Type): TypeMetadata {
64
78
  return `${sdkType}`;
65
79
  })
66
80
  .join(" | ");
67
- return { name };
81
+ return { name: getNullableType(name, type) };
68
82
  }
69
83
  case "dict":
70
84
  if (!type.elementType) {
@@ -73,8 +87,15 @@ export function getType(type: Type): TypeMetadata {
73
87
  return {
74
88
  name: `Record<string, ${getTypeName(getType(type.elementType))}>`
75
89
  };
90
+ case "any":
91
+ return {
92
+ name: `Record<string, any>`
93
+ };
76
94
  default:
77
- throw new Error(`Unsupported type ${type.type}`);
95
+ // throw new Error(`Unsupported type ${type.type}`);
96
+ return {
97
+ name: `any`
98
+ };
78
99
  }
79
100
  }
80
101
 
@@ -52,6 +52,7 @@ export interface EnumValue {
52
52
  description: string;
53
53
  }
54
54
  export interface Type {
55
+ nullable?: boolean;
55
56
  name?: string;
56
57
  description?: string;
57
58
  type:
@@ -70,7 +71,8 @@ export interface Type {
70
71
  | "float"
71
72
  | "boolean"
72
73
  | "dict"
73
- | "combined";
74
+ | "combined"
75
+ | "any";
74
76
  policy?: Policy;
75
77
  apiVersions?: any[];
76
78
  clientDefaultValue?: any;
@@ -33,6 +33,7 @@ import {
33
33
  OPERATION_LRO_LOW_PRIORITY,
34
34
  OPERATION_LRO_HIGH_PRIORITY
35
35
  } from "@azure-tools/rlc-common";
36
+ import { isByteOrByteUnion } from "./modelUtils.js";
36
37
 
37
38
  export function getNormalizedOperationName(
38
39
  route: HttpOperation,
@@ -74,11 +75,15 @@ export function isDefinedStatusCode(statusCode: StatusCode) {
74
75
  return statusCode !== "*";
75
76
  }
76
77
 
77
- export function isBinaryPayload(body: Type, contentType: string) {
78
+ export function isBinaryPayload(
79
+ program: Program,
80
+ dpgContext: SdkContext,
81
+ body: Type,
82
+ contentType: string
83
+ ) {
78
84
  contentType = `"${contentType}"`;
79
85
  if (
80
- body.kind === "Scalar" &&
81
- body.name === "bytes" &&
86
+ isByteOrByteUnion(program, dpgContext, body) &&
82
87
  contentType !== `"application/json"` &&
83
88
  contentType !== `"text/plain"` &&
84
89
  contentType !== `"application/json" | "text/plain"` &&
@@ -207,6 +212,10 @@ export function hasPollingOperations(
207
212
  );
208
213
  for (const op of operations) {
209
214
  const route = ignoreDiagnostics(getHttpOperation(program, op));
215
+ // ignore overload base operation
216
+ if (route.overloads && route.overloads?.length > 0) {
217
+ continue;
218
+ }
210
219
  if (isLongRunningOperation(program, route)) {
211
220
  return true;
212
221
  }
@@ -215,6 +224,10 @@ export function hasPollingOperations(
215
224
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
216
225
  for (const clientOp of clientOperations) {
217
226
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
227
+ // ignore overload base operation
228
+ if (route.overloads && route.overloads?.length > 0) {
229
+ continue;
230
+ }
218
231
  if (isLongRunningOperation(program, route)) {
219
232
  return true;
220
233
  }
@@ -246,6 +259,10 @@ export function hasPagingOperations(
246
259
  );
247
260
  for (const op of operations) {
248
261
  const route = ignoreDiagnostics(getHttpOperation(program, op));
262
+ // ignore overload base operation
263
+ if (route.overloads && route.overloads?.length > 0) {
264
+ continue;
265
+ }
249
266
  if (isPagingOperation(program, route)) {
250
267
  return true;
251
268
  }
@@ -254,6 +271,10 @@ export function hasPagingOperations(
254
271
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
255
272
  for (const clientOp of clientOperations) {
256
273
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
274
+ // ignore overload base operation
275
+ if (route.overloads && route.overloads?.length > 0) {
276
+ continue;
277
+ }
257
278
  if (isPagingOperation(program, route)) {
258
279
  return true;
259
280
  }
@@ -63,7 +63,10 @@ export async function transformRLCModel(
63
63
  const libraryName = normalizeName(
64
64
  options.batch && (options.isModularLibrary || options.batch.length > 1)
65
65
  ? client.name
66
- : options?.title ?? getDefaultService(program)?.title ?? "",
66
+ : options?.title ??
67
+ client.name ??
68
+ getDefaultService(program)?.title ??
69
+ "",
67
70
  NameType.Class
68
71
  );
69
72
  const importSet = new Map<ImportKind, Set<string>>();
@@ -68,6 +68,10 @@ function getOperationQueryApiVersion(
68
68
  );
69
69
  for (const op of operations) {
70
70
  const route = ignoreDiagnostics(getHttpOperation(program, op));
71
+ // ignore overload base operation
72
+ if (route.overloads && route.overloads?.length > 0) {
73
+ continue;
74
+ }
71
75
  const params = route.parameters.parameters.filter(
72
76
  (p) => p.type === "query" && isApiVersion(dpgContext, p)
73
77
  );
@@ -91,6 +95,10 @@ function getOperationQueryApiVersion(
91
95
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
92
96
  for (const clientOp of clientOperations) {
93
97
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
98
+ // ignore overload base operation
99
+ if (route.overloads && route.overloads?.length > 0) {
100
+ continue;
101
+ }
94
102
  const params = route.parameters.parameters.filter(
95
103
  (p) => p.type === "query" && isApiVersion(dpgContext, p)
96
104
  );
@@ -47,6 +47,10 @@ export function transformHelperFunctionDetails(
47
47
  );
48
48
  for (const op of operations) {
49
49
  const route = ignoreDiagnostics(getHttpOperation(program, op));
50
+ // ignore overload base operation
51
+ if (route.overloads && route.overloads?.length > 0) {
52
+ continue;
53
+ }
50
54
  if (getPageable(program, route.operation)) {
51
55
  const nextLinkName =
52
56
  getPageable(program, route.operation) || "nextLink";
@@ -59,6 +63,10 @@ export function transformHelperFunctionDetails(
59
63
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
60
64
  for (const clientOp of clientOperations) {
61
65
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
66
+ // ignore overload base operation
67
+ if (route.overloads && route.overloads?.length > 0) {
68
+ continue;
69
+ }
62
70
  if (getPageable(program, route.operation)) {
63
71
  const nextLinkName = getPageable(program, route.operation) || "nextLink";
64
72
  if (nextLinkName) {
@@ -112,12 +120,20 @@ function extractPageDetailFromCore(
112
120
  );
113
121
  for (const op of operations) {
114
122
  const route = ignoreDiagnostics(getHttpOperation(program, op));
123
+ // ignore overload base operation
124
+ if (route.overloads && route.overloads?.length > 0) {
125
+ continue;
126
+ }
115
127
  extractPageDetailFromCoreForRoute(route);
116
128
  }
117
129
  }
118
130
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
119
131
  for (const clientOp of clientOperations) {
120
132
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
133
+ // ignore overload base operation
134
+ if (route.overloads && route.overloads?.length > 0) {
135
+ continue;
136
+ }
121
137
  extractPageDetailFromCoreForRoute(route);
122
138
  }
123
139
 
@@ -21,10 +21,11 @@ import {
21
21
  getImportedModelName,
22
22
  getTypeName,
23
23
  getSchemaForType,
24
- getBinaryType,
25
24
  getFormattedPropertyDoc,
26
25
  getBodyType,
27
- predictDefaultValue
26
+ predictDefaultValue,
27
+ getBinaryType,
28
+ enrichBinaryTypeInBody
28
29
  } from "../modelUtils.js";
29
30
 
30
31
  import { getOperationGroupName, isBinaryPayload } from "../operationUtil.js";
@@ -53,12 +54,20 @@ export function transformToParameterTypes(
53
54
  );
54
55
  for (const op of operations) {
55
56
  const route = ignoreDiagnostics(getHttpOperation(program, op));
57
+ // ignore overload base operation
58
+ if (route.overloads && route.overloads?.length > 0) {
59
+ continue;
60
+ }
56
61
  transformToParameterTypesForRoute(program, route, operationGroup);
57
62
  }
58
63
  }
59
64
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
60
65
  for (const clientOp of clientOperations) {
61
66
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
67
+ // ignore overload base operation
68
+ if (route.overloads && route.overloads?.length > 0) {
69
+ continue;
70
+ }
62
71
  transformToParameterTypesForRoute(program, route);
63
72
  }
64
73
  if (outputImportedSet.size > 0) {
@@ -230,21 +239,25 @@ function transformBodyParameters(
230
239
  if (!bodyType) {
231
240
  return;
232
241
  }
233
- const { hasBinaryContent, hasFormContent } = getBodyDetail(bodyType, headers);
242
+ const { hasBinaryContent, hasFormContent } = getBodyDetail(
243
+ program,
244
+ dpgContext,
245
+ bodyType,
246
+ headers
247
+ );
234
248
 
235
- if (!hasBinaryContent && !hasFormContent) {
249
+ if (!hasFormContent) {
236
250
  // Case 1: Handle the normal case without binary or form data
251
+ // Case 2: Handle the binary body
237
252
  return transformNormalBody(
238
253
  program,
239
254
  dpgContext,
240
255
  bodyType,
241
256
  parameters,
242
257
  importedModels,
243
- headers
258
+ headers,
259
+ hasBinaryContent
244
260
  );
245
- } else if (hasBinaryContent) {
246
- // Case 2: Handle the binary body
247
- return transformBinaryBody(program, parameters);
248
261
  } else {
249
262
  // Case 3: Handle the form data
250
263
  return transformMultiFormBody(
@@ -263,14 +276,18 @@ function transformNormalBody(
263
276
  bodyType: Type,
264
277
  parameters: HttpOperationParameters,
265
278
  importedModels: Set<string>,
266
- headers: ParameterMetadata[]
279
+ headers: ParameterMetadata[],
280
+ hasBinaryContent: boolean
267
281
  ) {
268
- const description = extractDescriptionsFromBody(
282
+ const descriptions = extractDescriptionsFromBody(
269
283
  program,
270
284
  dpgContext,
271
285
  bodyType,
272
286
  parameters
273
- ).join("\n\n");
287
+ );
288
+ if (hasBinaryContent) {
289
+ descriptions.push("Value may contain any sequence of octets");
290
+ }
274
291
  const type = extractNameFromCadlType(
275
292
  program,
276
293
  dpgContext,
@@ -278,7 +295,12 @@ function transformNormalBody(
278
295
  importedModels,
279
296
  headers
280
297
  );
281
- const schema = getSchemaForType(program, dpgContext, bodyType);
298
+ let schema = getSchemaForType(program, dpgContext, bodyType);
299
+ let overrideType = undefined;
300
+ if (hasBinaryContent) {
301
+ schema = enrichBinaryTypeInBody(schema);
302
+ overrideType = schema.typeName;
303
+ }
282
304
  return {
283
305
  isPartialBody: false,
284
306
  body: [
@@ -286,32 +308,7 @@ function transformNormalBody(
286
308
  properties: schema.properties,
287
309
  typeName: schema.name,
288
310
  name: "body",
289
- type,
290
- required: parameters?.bodyParameter?.optional === false,
291
- description
292
- }
293
- ]
294
- };
295
- }
296
-
297
- function transformBinaryBody(
298
- program: Program,
299
- parameters: HttpOperationParameters
300
- ) {
301
- const descriptions: string[] = [];
302
- const description =
303
- parameters.bodyParameter &&
304
- getFormattedPropertyDoc(program, parameters.bodyParameter, {});
305
- if (description) {
306
- descriptions.push(description!);
307
- }
308
- descriptions.push("Value may contain any sequence of octets");
309
- return {
310
- isPartialBody: false,
311
- body: [
312
- {
313
- name: "body",
314
- type: getBinaryType([SchemaContext.Input, SchemaContext.Exception]),
311
+ type: overrideType ?? type,
315
312
  required: parameters?.bodyParameter?.optional === false,
316
313
  description: descriptions.join("\n\n")
317
314
  }
@@ -395,12 +392,17 @@ function transformMultiFormBody(
395
392
  return bodyParameters;
396
393
  }
397
394
 
398
- function getBodyDetail(bodyType: Type, headers: ParameterMetadata[]) {
395
+ function getBodyDetail(
396
+ program: Program,
397
+ dpgContext: SdkContext,
398
+ bodyType: Type,
399
+ headers: ParameterMetadata[]
400
+ ) {
399
401
  const contentTypes: string[] = headers
400
402
  .filter((h) => h.name === "contentType")
401
403
  .map((h) => h.param.type);
402
404
  const hasBinaryContent = contentTypes.some((c) =>
403
- isBinaryPayload(bodyType, c)
405
+ isBinaryPayload(program, dpgContext, bodyType, c)
404
406
  );
405
407
  const hasFormContent = contentTypes.includes(`"multipart/form-data"`);
406
408
  return { hasBinaryContent, hasFormContent };
@@ -48,12 +48,20 @@ export function transformPaths(
48
48
  );
49
49
  for (const op of operations) {
50
50
  const route = ignoreDiagnostics(getHttpOperation(program, op));
51
+ // ignore overload base operation
52
+ if (route.overloads && route.overloads?.length > 0) {
53
+ continue;
54
+ }
51
55
  transformOperation(program, dpgContext, route, paths, operationGroup);
52
56
  }
53
57
  }
54
58
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
55
59
  for (const clientOp of clientOperations) {
56
60
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
61
+ // ignore overload base operation
62
+ if (route.overloads && route.overloads?.length > 0) {
63
+ continue;
64
+ }
57
65
  transformOperation(program, dpgContext, route, paths);
58
66
  }
59
67
  return paths;
@@ -52,12 +52,20 @@ export function transformToResponseTypes(
52
52
  );
53
53
  for (const op of operations) {
54
54
  const route = ignoreDiagnostics(getHttpOperation(program, op));
55
+ // ignore overload base operation
56
+ if (route.overloads && route.overloads?.length > 0) {
57
+ continue;
58
+ }
55
59
  transformToResponseTypesForRoute(route, operationGroup);
56
60
  }
57
61
  }
58
62
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
59
63
  for (const clientOp of clientOperations) {
60
64
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
65
+ // ignore overload base operation
66
+ if (route.overloads && route.overloads?.length > 0) {
67
+ continue;
68
+ }
61
69
  transformToResponseTypesForRoute(route);
62
70
  }
63
71
  if (inputImportedSet.size > 0) {
@@ -169,7 +177,7 @@ function transformBody(
169
177
  continue;
170
178
  }
171
179
  const hasBinaryContent = body.contentTypes.some((contentType) =>
172
- isBinaryPayload(body.type, contentType)
180
+ isBinaryPayload(program, dpgContext, body.type, contentType)
173
181
  );
174
182
  if (hasBinaryContent) {
175
183
  typeSet.add(getBinaryType([SchemaContext.Output]));
@@ -36,12 +36,20 @@ export function transformSchemas(
36
36
  );
37
37
  for (const op of operations) {
38
38
  const route = ignoreDiagnostics(getHttpOperation(program, op));
39
+ // ignore overload base operation
40
+ if (route.overloads && route.overloads?.length > 0) {
41
+ continue;
42
+ }
39
43
  transformSchemaForRoute(route);
40
44
  }
41
45
  }
42
46
  const clientOperations = listOperationsInOperationGroup(dpgContext, client);
43
47
  for (const clientOp of clientOperations) {
44
48
  const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
49
+ // ignore overload base operation
50
+ if (route.overloads && route.overloads?.length > 0) {
51
+ continue;
52
+ }
45
53
  transformSchemaForRoute(route);
46
54
  }
47
55
  function transformSchemaForRoute(route: HttpOperation) {
package/.eslintrc.json DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "parser": "@typescript-eslint/parser",
3
- "parserOptions": { "project": "./tsconfig.json" },
4
- "plugins": ["@typescript-eslint"],
5
- "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
6
- "rules": {
7
- "@typescript-eslint/no-non-null-assertion": "off",
8
- "@typescript-eslint/no-explicit-any": "off",
9
- "@typescript-eslint/no-inferrable-types": "off",
10
- "@typescript-eslint/no-empty-function": "off",
11
- "@typescript-eslint/no-empty-interface": "off",
12
- "@typescript-eslint/no-unused-vars": [
13
- "warn",
14
- {
15
- "varsIgnorePattern": "^_",
16
- "argsIgnorePattern": ".*",
17
- "ignoreRestSiblings": true
18
- }
19
- ],
20
- "@typescript-eslint/no-floating-promises": "error",
21
- "@typescript-eslint/no-misused-promises": "error"
22
- }
23
- }
package/.prettierignore DELETED
@@ -1 +0,0 @@
1
- ./dist
package/.prettierrc DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "trailingComma": "none",
3
- "semi": true,
4
- "tabWidth": 2,
5
- "printWidth": 80,
6
- "endOfLine": "auto"
7
- }
@@ -1 +0,0 @@
1
- Invoking: tsc -p .
@@ -1,3 +0,0 @@
1
- {
2
- "nonCachedDurationMs": 8820.703389000002
3
- }