@autorest/typescript 6.0.0-beta.7 → 6.0.0-rc.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 (437) hide show
  1. package/README.md +42 -5
  2. package/dist/{src/generators/static/README.md.hbs → hlcREADME.md.hbs} +41 -5
  3. package/dist/hlcSamples.ts.hbs +49 -0
  4. package/dist/karma.conf.js.hbs +126 -0
  5. package/dist/paginateHelper.ts.hbs +208 -0
  6. package/dist/pollingHelper.ts.hbs +72 -0
  7. package/dist/rlcEnv.ts.hbs +3 -0
  8. package/dist/rlcREADME.md.hbs +71 -0
  9. package/dist/rlcRecordedClient.ts.hbs +26 -0
  10. package/dist/rlcSampleTest.spec.ts.hbs +20 -0
  11. package/dist/rlcSamples.ts.hbs +28 -0
  12. package/dist/sampleEnv.hbs +4 -0
  13. package/dist/sampleTest.ts.hbs +32 -0
  14. package/dist/samples.ts.hbs +0 -0
  15. package/dist/src/autorestSession.d.ts +18 -6
  16. package/dist/src/autorestSession.d.ts.map +1 -1
  17. package/dist/src/autorestSession.js +3 -9
  18. package/dist/src/autorestSession.js.map +1 -1
  19. package/dist/src/conflictResolver.d.ts +3 -0
  20. package/dist/src/conflictResolver.d.ts.map +1 -0
  21. package/dist/src/conflictResolver.js +43 -0
  22. package/dist/src/conflictResolver.js.map +1 -0
  23. package/dist/src/generators/LROGenerator.d.ts.map +1 -1
  24. package/dist/src/generators/LROGenerator.js +5 -13
  25. package/dist/src/generators/LROGenerator.js.map +1 -1
  26. package/dist/src/generators/clientFileGenerator.d.ts.map +1 -1
  27. package/dist/src/generators/clientFileGenerator.js +303 -61
  28. package/dist/src/generators/clientFileGenerator.js.map +1 -1
  29. package/dist/src/generators/indexGenerator.d.ts +1 -1
  30. package/dist/src/generators/indexGenerator.d.ts.map +1 -1
  31. package/dist/src/generators/indexGenerator.js +143 -11
  32. package/dist/src/generators/indexGenerator.js.map +1 -1
  33. package/dist/src/generators/mappersGenerator.d.ts.map +1 -1
  34. package/dist/src/generators/mappersGenerator.js +93 -19
  35. package/dist/src/generators/mappersGenerator.js.map +1 -1
  36. package/dist/src/generators/modelsGenerator.d.ts.map +1 -1
  37. package/dist/src/generators/modelsGenerator.js +81 -82
  38. package/dist/src/generators/modelsGenerator.js.map +1 -1
  39. package/dist/src/generators/operationGenerator.d.ts.map +1 -1
  40. package/dist/src/generators/operationGenerator.js +92 -125
  41. package/dist/src/generators/operationGenerator.js.map +1 -1
  42. package/dist/src/generators/operationInterfaceGenerator.js +20 -20
  43. package/dist/src/generators/operationInterfaceGenerator.js.map +1 -1
  44. package/dist/src/generators/parametersGenerator.d.ts.map +1 -1
  45. package/dist/src/generators/parametersGenerator.js +7 -8
  46. package/dist/src/generators/parametersGenerator.js.map +1 -1
  47. package/dist/src/generators/samples/hlcSampleGenerator.d.ts +13 -0
  48. package/dist/src/generators/samples/hlcSampleGenerator.d.ts.map +1 -0
  49. package/dist/src/generators/samples/hlcSampleGenerator.js +43 -0
  50. package/dist/src/generators/samples/hlcSampleGenerator.js.map +1 -0
  51. package/dist/src/generators/samples/hlcSamples.ts.hbs +49 -0
  52. package/dist/src/generators/samples/rlcSampleGenerator.d.ts +4 -0
  53. package/dist/src/generators/samples/rlcSampleGenerator.d.ts.map +1 -0
  54. package/dist/src/generators/samples/rlcSampleGenerator.js +64 -0
  55. package/dist/src/generators/samples/rlcSampleGenerator.js.map +1 -0
  56. package/dist/src/generators/samples/rlcSamples.ts.hbs +28 -0
  57. package/dist/src/generators/samples/sampleEnv.hbs +4 -0
  58. package/dist/src/generators/samples/sampleEnvGenerator.d.ts +3 -0
  59. package/dist/src/generators/samples/sampleEnvGenerator.d.ts.map +1 -0
  60. package/dist/src/generators/samples/sampleEnvGenerator.js +17 -0
  61. package/dist/src/generators/samples/sampleEnvGenerator.js.map +1 -0
  62. package/dist/src/generators/static/apiExtractorConfig.js +3 -3
  63. package/dist/src/generators/static/apiExtractorConfig.js.map +1 -1
  64. package/dist/src/generators/static/esLintConfigGenerator.d.ts +3 -0
  65. package/dist/src/generators/static/esLintConfigGenerator.d.ts.map +1 -0
  66. package/dist/src/generators/static/esLintConfigGenerator.js +26 -0
  67. package/dist/src/generators/static/esLintConfigGenerator.js.map +1 -0
  68. package/{src/generators/static/README.md.hbs → dist/src/generators/static/hlcREADME.md.hbs} +41 -5
  69. package/dist/src/generators/static/karma.conf.js.hbs +126 -0
  70. package/dist/src/generators/static/karmaConfigFileGenerator.d.ts +3 -0
  71. package/dist/src/generators/static/karmaConfigFileGenerator.d.ts.map +1 -0
  72. package/dist/src/generators/static/karmaConfigFileGenerator.js +23 -0
  73. package/dist/src/generators/static/karmaConfigFileGenerator.js.map +1 -0
  74. package/dist/src/generators/static/licenseFileGenerator.js +1 -1
  75. package/dist/src/generators/static/licenseFileGenerator.js.map +1 -1
  76. package/dist/src/generators/static/packageFileGenerator.d.ts.map +1 -1
  77. package/dist/src/generators/static/packageFileGenerator.js +267 -79
  78. package/dist/src/generators/static/packageFileGenerator.js.map +1 -1
  79. package/dist/src/generators/static/readmeFileGenerator.d.ts +2 -2
  80. package/dist/src/generators/static/readmeFileGenerator.d.ts.map +1 -1
  81. package/dist/src/generators/static/readmeFileGenerator.js +54 -26
  82. package/dist/src/generators/static/readmeFileGenerator.js.map +1 -1
  83. package/dist/src/generators/static/rlcREADME.md.hbs +71 -0
  84. package/dist/src/generators/static/rollupConfigFileGenerator.d.ts.map +1 -1
  85. package/dist/src/generators/static/rollupConfigFileGenerator.js +12 -71
  86. package/dist/src/generators/static/rollupConfigFileGenerator.js.map +1 -1
  87. package/dist/src/generators/static/tsConfigFileGenerator.d.ts.map +1 -1
  88. package/dist/src/generators/static/tsConfigFileGenerator.js +47 -20
  89. package/dist/src/generators/static/tsConfigFileGenerator.js.map +1 -1
  90. package/dist/src/generators/test/envBrowserFileGenerator.d.ts +3 -0
  91. package/dist/src/generators/test/envBrowserFileGenerator.d.ts.map +1 -0
  92. package/dist/src/generators/test/envBrowserFileGenerator.js +15 -0
  93. package/dist/src/generators/test/envBrowserFileGenerator.js.map +1 -0
  94. package/dist/src/generators/test/envFileGenerator.d.ts +3 -0
  95. package/dist/src/generators/test/envFileGenerator.d.ts.map +1 -0
  96. package/dist/src/generators/test/envFileGenerator.js +23 -0
  97. package/dist/src/generators/test/envFileGenerator.js.map +1 -0
  98. package/dist/src/generators/test/recordedClientFileGenerator.d.ts +3 -0
  99. package/dist/src/generators/test/recordedClientFileGenerator.d.ts.map +1 -0
  100. package/dist/src/generators/test/recordedClientFileGenerator.js +23 -0
  101. package/dist/src/generators/test/recordedClientFileGenerator.js.map +1 -0
  102. package/dist/src/generators/test/rlcEnv.ts.hbs +3 -0
  103. package/dist/src/generators/test/rlcRecordedClient.ts.hbs +26 -0
  104. package/dist/src/generators/test/rlcSampleTest.spec.ts.hbs +20 -0
  105. package/dist/src/generators/test/sampleTest.ts.hbs +32 -0
  106. package/dist/src/generators/test/sampleTestGenerator.d.ts +3 -0
  107. package/dist/src/generators/test/sampleTestGenerator.d.ts.map +1 -0
  108. package/dist/src/generators/test/sampleTestGenerator.js +34 -0
  109. package/dist/src/generators/test/sampleTestGenerator.js.map +1 -0
  110. package/dist/src/generators/tracingFileGenerator.d.ts.map +1 -1
  111. package/dist/src/generators/tracingFileGenerator.js +7 -21
  112. package/dist/src/generators/tracingFileGenerator.js.map +1 -1
  113. package/dist/src/generators/utils/docsUtils.js +2 -2
  114. package/dist/src/generators/utils/docsUtils.js.map +1 -1
  115. package/dist/src/generators/utils/operationsUtils.js +1 -1
  116. package/dist/src/generators/utils/operationsUtils.js.map +1 -1
  117. package/dist/src/generators/utils/pagingOperations.d.ts +5 -0
  118. package/dist/src/generators/utils/pagingOperations.d.ts.map +1 -1
  119. package/dist/src/generators/utils/pagingOperations.js +15 -15
  120. package/dist/src/generators/utils/pagingOperations.js.map +1 -1
  121. package/dist/src/generators/utils/parameterUtils.js +9 -9
  122. package/dist/src/generators/utils/parameterUtils.js.map +1 -1
  123. package/dist/src/generators/utils/responseTypeUtils.js +2 -2
  124. package/dist/src/generators/utils/responseTypeUtils.js.map +1 -1
  125. package/dist/src/generators/utils/tracingUtils.d.ts.map +1 -1
  126. package/dist/src/generators/utils/tracingUtils.js +2 -6
  127. package/dist/src/generators/utils/tracingUtils.js.map +1 -1
  128. package/dist/src/lroImpl.d.ts +16 -0
  129. package/dist/src/lroImpl.d.ts.map +1 -0
  130. package/dist/src/lroImpl.js +45 -0
  131. package/dist/src/lroImpl.js.map +1 -0
  132. package/dist/src/main.d.ts +2 -2
  133. package/dist/src/main.d.ts.map +1 -1
  134. package/dist/src/main.js +8 -8
  135. package/dist/src/main.js.map +1 -1
  136. package/dist/src/models/clientDetails.d.ts +10 -1
  137. package/dist/src/models/clientDetails.d.ts.map +1 -1
  138. package/dist/src/models/modelDetails.d.ts +2 -2
  139. package/dist/src/models/modelDetails.d.ts.map +1 -1
  140. package/dist/src/models/operationDetails.d.ts +1 -0
  141. package/dist/src/models/operationDetails.d.ts.map +1 -1
  142. package/dist/src/models/sampleDetails.d.ts +22 -0
  143. package/dist/src/models/sampleDetails.d.ts.map +1 -0
  144. package/dist/src/models/sampleDetails.js +3 -0
  145. package/dist/src/models/sampleDetails.js.map +1 -0
  146. package/dist/src/restLevelClient/generateClient.d.ts +1 -1
  147. package/dist/src/restLevelClient/generateClient.d.ts.map +1 -1
  148. package/dist/src/restLevelClient/generateClient.js +108 -167
  149. package/dist/src/restLevelClient/generateClient.js.map +1 -1
  150. package/dist/src/restLevelClient/generateClientDefinition.d.ts +6 -0
  151. package/dist/src/restLevelClient/generateClientDefinition.d.ts.map +1 -0
  152. package/dist/src/restLevelClient/generateClientDefinition.js +261 -0
  153. package/dist/src/restLevelClient/generateClientDefinition.js.map +1 -0
  154. package/dist/src/restLevelClient/generateIsUnexpectedHelper.d.ts +8 -0
  155. package/dist/src/restLevelClient/generateIsUnexpectedHelper.d.ts.map +1 -0
  156. package/dist/src/restLevelClient/generateIsUnexpectedHelper.js +204 -0
  157. package/dist/src/restLevelClient/generateIsUnexpectedHelper.js.map +1 -0
  158. package/dist/src/restLevelClient/generateMethodShortcuts.d.ts +8 -0
  159. package/dist/src/restLevelClient/generateMethodShortcuts.d.ts.map +1 -0
  160. package/dist/src/restLevelClient/generateMethodShortcuts.js +70 -0
  161. package/dist/src/restLevelClient/generateMethodShortcuts.js.map +1 -0
  162. package/dist/src/restLevelClient/generateObjectTypes.d.ts +3 -3
  163. package/dist/src/restLevelClient/generateObjectTypes.d.ts.map +1 -1
  164. package/dist/src/restLevelClient/generateObjectTypes.js +43 -31
  165. package/dist/src/restLevelClient/generateObjectTypes.js.map +1 -1
  166. package/dist/src/restLevelClient/generatePagingHelper.d.ts +3 -0
  167. package/dist/src/restLevelClient/generatePagingHelper.d.ts.map +1 -0
  168. package/dist/src/restLevelClient/generatePagingHelper.js +54 -0
  169. package/dist/src/restLevelClient/generatePagingHelper.js.map +1 -0
  170. package/dist/src/restLevelClient/generateParameterTypes.d.ts.map +1 -1
  171. package/dist/src/restLevelClient/generateParameterTypes.js +247 -43
  172. package/dist/src/restLevelClient/generateParameterTypes.js.map +1 -1
  173. package/dist/src/restLevelClient/generatePollingHelper.d.ts +3 -0
  174. package/dist/src/restLevelClient/generatePollingHelper.d.ts.map +1 -0
  175. package/dist/src/restLevelClient/generatePollingHelper.js +20 -0
  176. package/dist/src/restLevelClient/generatePollingHelper.js.map +1 -0
  177. package/dist/src/restLevelClient/generateResponseTypes.d.ts.map +1 -1
  178. package/dist/src/restLevelClient/generateResponseTypes.js +45 -29
  179. package/dist/src/restLevelClient/generateResponseTypes.js.map +1 -1
  180. package/dist/src/restLevelClient/generateRestLevel.d.ts.map +1 -1
  181. package/dist/src/restLevelClient/generateRestLevel.js +64 -15
  182. package/dist/src/restLevelClient/generateRestLevel.js.map +1 -1
  183. package/dist/src/restLevelClient/generateSchemaTypes.d.ts.map +1 -1
  184. package/dist/src/restLevelClient/generateSchemaTypes.js +29 -7
  185. package/dist/src/restLevelClient/generateSchemaTypes.js.map +1 -1
  186. package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts +4 -0
  187. package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts.map +1 -0
  188. package/dist/src/restLevelClient/generateTopLevelIndexFile.js +37 -0
  189. package/dist/src/restLevelClient/generateTopLevelIndexFile.js.map +1 -0
  190. package/dist/src/restLevelClient/getPropertySignature.d.ts +3 -2
  191. package/dist/src/restLevelClient/getPropertySignature.d.ts.map +1 -1
  192. package/dist/src/restLevelClient/getPropertySignature.js +23 -7
  193. package/dist/src/restLevelClient/getPropertySignature.js.map +1 -1
  194. package/dist/src/restLevelClient/helpers/hasPollingOperations.d.ts +4 -0
  195. package/dist/src/restLevelClient/helpers/hasPollingOperations.d.ts.map +1 -0
  196. package/dist/src/restLevelClient/helpers/hasPollingOperations.js +12 -0
  197. package/dist/src/restLevelClient/helpers/hasPollingOperations.js.map +1 -0
  198. package/dist/src/restLevelClient/helpers/modelHelpers.d.ts +4 -0
  199. package/dist/src/restLevelClient/helpers/modelHelpers.d.ts.map +1 -0
  200. package/dist/src/restLevelClient/helpers/modelHelpers.js +19 -0
  201. package/dist/src/restLevelClient/helpers/modelHelpers.js.map +1 -0
  202. package/dist/src/restLevelClient/helpers/operationHelpers.d.ts +10 -0
  203. package/dist/src/restLevelClient/helpers/operationHelpers.d.ts.map +1 -0
  204. package/dist/src/restLevelClient/helpers/operationHelpers.js +64 -0
  205. package/dist/src/restLevelClient/helpers/operationHelpers.js.map +1 -0
  206. package/dist/src/restLevelClient/interfaces.d.ts +33 -0
  207. package/dist/src/restLevelClient/interfaces.d.ts.map +1 -0
  208. package/dist/src/restLevelClient/interfaces.js +3 -0
  209. package/dist/src/restLevelClient/interfaces.js.map +1 -0
  210. package/dist/src/restLevelClient/mutateCodeModel.js +2 -2
  211. package/dist/src/restLevelClient/mutateCodeModel.js.map +1 -1
  212. package/dist/src/restLevelClient/operationHelpers.d.ts +4 -0
  213. package/dist/src/restLevelClient/operationHelpers.d.ts.map +1 -1
  214. package/dist/src/restLevelClient/operationHelpers.js +21 -10
  215. package/dist/src/restLevelClient/operationHelpers.js.map +1 -1
  216. package/dist/src/restLevelClient/paginateHelper.ts.hbs +208 -0
  217. package/dist/src/restLevelClient/pollingHelper.ts.hbs +72 -0
  218. package/dist/src/restLevelClient/samples/generateSamples.d.ts +23 -0
  219. package/dist/src/restLevelClient/samples/generateSamples.d.ts.map +1 -0
  220. package/dist/src/restLevelClient/samples/generateSamples.js +3 -0
  221. package/dist/src/restLevelClient/samples/generateSamples.js.map +1 -0
  222. package/dist/src/restLevelClient/samples/samples.ts.hbs +0 -0
  223. package/dist/src/restLevelClient/schemaHelpers.d.ts +12 -2
  224. package/dist/src/restLevelClient/schemaHelpers.d.ts.map +1 -1
  225. package/dist/src/restLevelClient/schemaHelpers.js +48 -14
  226. package/dist/src/restLevelClient/schemaHelpers.js.map +1 -1
  227. package/dist/src/transforms/extensions.js +10 -10
  228. package/dist/src/transforms/extensions.js.map +1 -1
  229. package/dist/src/transforms/groupTransforms.js +2 -2
  230. package/dist/src/transforms/groupTransforms.js.map +1 -1
  231. package/dist/src/transforms/mapperTransforms.d.ts +1 -1
  232. package/dist/src/transforms/mapperTransforms.d.ts.map +1 -1
  233. package/dist/src/transforms/mapperTransforms.js +30 -27
  234. package/dist/src/transforms/mapperTransforms.js.map +1 -1
  235. package/dist/src/transforms/objectTransforms.d.ts.map +1 -1
  236. package/dist/src/transforms/objectTransforms.js +42 -26
  237. package/dist/src/transforms/objectTransforms.js.map +1 -1
  238. package/dist/src/transforms/operationTransforms.d.ts.map +1 -1
  239. package/dist/src/transforms/operationTransforms.js +29 -26
  240. package/dist/src/transforms/operationTransforms.js.map +1 -1
  241. package/dist/src/transforms/optionsTransforms.js +1 -1
  242. package/dist/src/transforms/optionsTransforms.js.map +1 -1
  243. package/dist/src/transforms/parameterTransforms.d.ts.map +1 -1
  244. package/dist/src/transforms/parameterTransforms.js +43 -27
  245. package/dist/src/transforms/parameterTransforms.js.map +1 -1
  246. package/dist/src/transforms/samplesTransforms.d.ts +7 -0
  247. package/dist/src/transforms/samplesTransforms.d.ts.map +1 -0
  248. package/dist/src/transforms/samplesTransforms.js +293 -0
  249. package/dist/src/transforms/samplesTransforms.js.map +1 -0
  250. package/dist/src/transforms/transforms.d.ts +1 -2
  251. package/dist/src/transforms/transforms.d.ts.map +1 -1
  252. package/dist/src/transforms/transforms.js +26 -24
  253. package/dist/src/transforms/transforms.js.map +1 -1
  254. package/dist/src/transforms/urlTransforms.js +3 -3
  255. package/dist/src/transforms/urlTransforms.js.map +1 -1
  256. package/dist/src/typescriptGenerator.d.ts +2 -2
  257. package/dist/src/typescriptGenerator.d.ts.map +1 -1
  258. package/dist/src/typescriptGenerator.js +46 -40
  259. package/dist/src/typescriptGenerator.js.map +1 -1
  260. package/dist/src/utils/autorestOptions.d.ts +2 -2
  261. package/dist/src/utils/autorestOptions.d.ts.map +1 -1
  262. package/dist/src/utils/autorestOptions.js +148 -61
  263. package/dist/src/utils/autorestOptions.js.map +1 -1
  264. package/dist/src/utils/cloneOperation.js +2 -2
  265. package/dist/src/utils/cloneOperation.js.map +1 -1
  266. package/dist/src/utils/copyFiles.d.ts +2 -0
  267. package/dist/src/utils/copyFiles.d.ts.map +1 -0
  268. package/dist/src/utils/copyFiles.js +33 -0
  269. package/dist/src/utils/copyFiles.js.map +1 -0
  270. package/dist/src/utils/extractHeaders.js +4 -4
  271. package/dist/src/utils/extractHeaders.js.map +1 -1
  272. package/dist/src/utils/extractPaginationDetails.d.ts +5 -1
  273. package/dist/src/utils/extractPaginationDetails.d.ts.map +1 -1
  274. package/dist/src/utils/extractPaginationDetails.js +23 -10
  275. package/dist/src/utils/extractPaginationDetails.js.map +1 -1
  276. package/dist/src/utils/headersToSchema.js +1 -1
  277. package/dist/src/utils/headersToSchema.js.map +1 -1
  278. package/dist/src/utils/logger.js +1 -1
  279. package/dist/src/utils/logger.js.map +1 -1
  280. package/dist/src/utils/nameUtils.d.ts +6 -2
  281. package/dist/src/utils/nameUtils.d.ts.map +1 -1
  282. package/dist/src/utils/nameUtils.js +13 -8
  283. package/dist/src/utils/nameUtils.js.map +1 -1
  284. package/dist/src/utils/schemaHelpers.d.ts +6 -1
  285. package/dist/src/utils/schemaHelpers.d.ts.map +1 -1
  286. package/dist/src/utils/schemaHelpers.js +50 -7
  287. package/dist/src/utils/schemaHelpers.js.map +1 -1
  288. package/dist/src/utils/sortObjectSchemasHierarchically.js +1 -1
  289. package/dist/src/utils/sortObjectSchemasHierarchically.js.map +1 -1
  290. package/dist/src/utils/valueHelpers.d.ts.map +1 -1
  291. package/dist/src/utils/valueHelpers.js +2 -1
  292. package/dist/src/utils/valueHelpers.js.map +1 -1
  293. package/package.json +59 -39
  294. package/src/autorestSession.ts +26 -18
  295. package/src/conflictResolver.ts +61 -0
  296. package/src/generators/LROGenerator.ts +2 -16
  297. package/src/generators/clientFileGenerator.ts +400 -50
  298. package/src/generators/indexGenerator.ts +166 -14
  299. package/src/generators/mappersGenerator.ts +108 -8
  300. package/src/generators/modelsGenerator.ts +101 -98
  301. package/src/generators/operationGenerator.ts +63 -122
  302. package/src/generators/parametersGenerator.ts +2 -3
  303. package/src/generators/samples/hlcSampleGenerator.ts +50 -0
  304. package/src/generators/samples/hlcSamples.ts.hbs +49 -0
  305. package/src/generators/samples/rlcSampleGenerator.ts +72 -0
  306. package/src/generators/samples/rlcSamples.ts.hbs +28 -0
  307. package/src/generators/samples/sampleEnv.hbs +4 -0
  308. package/src/generators/samples/sampleEnvGenerator.ts +14 -0
  309. package/src/generators/static/apiExtractorConfig.ts +3 -3
  310. package/src/generators/static/esLintConfigGenerator.ts +24 -0
  311. package/src/generators/static/hlcREADME.md.hbs +144 -0
  312. package/src/generators/static/karma.conf.js.hbs +126 -0
  313. package/src/generators/static/karmaConfigFileGenerator.ts +20 -0
  314. package/src/generators/static/packageFileGenerator.ts +305 -82
  315. package/src/generators/static/readmeFileGenerator.ts +85 -42
  316. package/src/generators/static/rlcREADME.md.hbs +71 -0
  317. package/src/generators/static/rollupConfigFileGenerator.ts +13 -71
  318. package/src/generators/static/tsConfigFileGenerator.ts +55 -21
  319. package/src/generators/test/envBrowserFileGenerator.ts +14 -0
  320. package/src/generators/test/envFileGenerator.ts +22 -0
  321. package/src/generators/test/recordedClientFileGenerator.ts +22 -0
  322. package/src/generators/test/rlcEnv.ts.hbs +3 -0
  323. package/src/generators/test/rlcRecordedClient.ts.hbs +26 -0
  324. package/src/generators/test/rlcSampleTest.spec.ts.hbs +20 -0
  325. package/src/generators/test/sampleTest.ts.hbs +32 -0
  326. package/src/generators/test/sampleTestGenerator.ts +32 -0
  327. package/src/generators/tracingFileGenerator.ts +6 -24
  328. package/src/generators/utils/pagingOperations.ts +1 -2
  329. package/src/generators/utils/tracingUtils.ts +1 -5
  330. package/src/lroImpl.ts +26 -0
  331. package/src/main.ts +8 -5
  332. package/src/models/clientDetails.ts +11 -1
  333. package/src/models/modelDetails.ts +2 -2
  334. package/src/models/operationDetails.ts +1 -0
  335. package/src/models/sampleDetails.ts +22 -0
  336. package/src/restLevelClient/generateClient.ts +134 -244
  337. package/src/restLevelClient/generateClientDefinition.ts +386 -0
  338. package/src/restLevelClient/generateIsUnexpectedHelper.ts +224 -0
  339. package/src/restLevelClient/generateMethodShortcuts.ts +121 -0
  340. package/src/restLevelClient/generateObjectTypes.ts +62 -21
  341. package/src/restLevelClient/generatePagingHelper.ts +69 -0
  342. package/src/restLevelClient/generateParameterTypes.ts +377 -55
  343. package/src/restLevelClient/generatePollingHelper.ts +19 -0
  344. package/src/restLevelClient/generateResponseTypes.ts +53 -22
  345. package/src/restLevelClient/generateRestLevel.ts +65 -8
  346. package/src/restLevelClient/generateSchemaTypes.ts +43 -8
  347. package/src/restLevelClient/generateTopLevelIndexFile.ts +37 -0
  348. package/src/restLevelClient/getPropertySignature.ts +31 -6
  349. package/src/restLevelClient/helpers/hasPollingOperations.ts +15 -0
  350. package/src/restLevelClient/helpers/modelHelpers.ts +15 -0
  351. package/src/restLevelClient/helpers/operationHelpers.ts +93 -0
  352. package/src/restLevelClient/interfaces.ts +39 -0
  353. package/src/restLevelClient/operationHelpers.ts +23 -9
  354. package/src/restLevelClient/paginateHelper.ts.hbs +208 -0
  355. package/src/restLevelClient/pollingHelper.ts.hbs +72 -0
  356. package/src/restLevelClient/samples/generateSamples.ts +23 -0
  357. package/src/restLevelClient/samples/samples.ts.hbs +0 -0
  358. package/src/restLevelClient/schemaHelpers.ts +51 -9
  359. package/src/transforms/mapperTransforms.ts +12 -6
  360. package/src/transforms/objectTransforms.ts +26 -6
  361. package/src/transforms/operationTransforms.ts +6 -1
  362. package/src/transforms/parameterTransforms.ts +26 -7
  363. package/src/transforms/samplesTransforms.ts +349 -0
  364. package/src/transforms/transforms.ts +14 -9
  365. package/src/typescriptGenerator.ts +41 -45
  366. package/src/utils/autorestOptions.ts +203 -86
  367. package/src/utils/copyFiles.ts +36 -0
  368. package/src/utils/extractPaginationDetails.ts +19 -1
  369. package/src/utils/nameUtils.ts +18 -9
  370. package/src/utils/schemaHelpers.ts +51 -4
  371. package/src/utils/valueHelpers.ts +1 -0
  372. package/CHANGELOG.md +0 -44
  373. package/dist/src/coreClientLro.d.ts +0 -26
  374. package/dist/src/coreClientLro.d.ts.map +0 -1
  375. package/dist/src/coreClientLro.js +0 -207
  376. package/dist/src/coreClientLro.js.map +0 -1
  377. package/dist/src/coreHttpLro.d.ts +0 -26
  378. package/dist/src/coreHttpLro.d.ts.map +0 -1
  379. package/dist/src/coreHttpLro.js +0 -186
  380. package/dist/src/coreHttpLro.js.map +0 -1
  381. package/dist/src/generators/clientContextFileGenerator.d.ts +0 -5
  382. package/dist/src/generators/clientContextFileGenerator.d.ts.map +0 -1
  383. package/dist/src/generators/clientContextFileGenerator.js +0 -263
  384. package/dist/src/generators/clientContextFileGenerator.js.map +0 -1
  385. package/dist/src/lro/azureAsyncPolling.d.ts +0 -3
  386. package/dist/src/lro/azureAsyncPolling.d.ts.map +0 -1
  387. package/dist/src/lro/azureAsyncPolling.js +0 -71
  388. package/dist/src/lro/azureAsyncPolling.js.map +0 -1
  389. package/dist/src/lro/bodyPolling.d.ts +0 -8
  390. package/dist/src/lro/bodyPolling.d.ts.map +0 -1
  391. package/dist/src/lro/bodyPolling.js +0 -34
  392. package/dist/src/lro/bodyPolling.js.map +0 -1
  393. package/dist/src/lro/index.d.ts +0 -4
  394. package/dist/src/lro/index.d.ts.map +0 -1
  395. package/dist/src/lro/index.js +0 -10
  396. package/dist/src/lro/index.js.map +0 -1
  397. package/dist/src/lro/locationPolling.d.ts +0 -3
  398. package/dist/src/lro/locationPolling.d.ts.map +0 -1
  399. package/dist/src/lro/locationPolling.js +0 -18
  400. package/dist/src/lro/locationPolling.js.map +0 -1
  401. package/dist/src/lro/lroEngine.d.ts +0 -14
  402. package/dist/src/lro/lroEngine.d.ts.map +0 -1
  403. package/dist/src/lro/lroEngine.js +0 -38
  404. package/dist/src/lro/lroEngine.js.map +0 -1
  405. package/dist/src/lro/models.d.ts +0 -138
  406. package/dist/src/lro/models.d.ts.map +0 -1
  407. package/dist/src/lro/models.js +0 -12
  408. package/dist/src/lro/models.js.map +0 -1
  409. package/dist/src/lro/operation.d.ts +0 -36
  410. package/dist/src/lro/operation.d.ts.map +0 -1
  411. package/dist/src/lro/operation.js +0 -89
  412. package/dist/src/lro/operation.js.map +0 -1
  413. package/dist/src/lro/passthrough.d.ts +0 -3
  414. package/dist/src/lro/passthrough.d.ts.map +0 -1
  415. package/dist/src/lro/passthrough.js +0 -14
  416. package/dist/src/lro/passthrough.js.map +0 -1
  417. package/dist/src/lro/requestUtils.d.ts +0 -16
  418. package/dist/src/lro/requestUtils.d.ts.map +0 -1
  419. package/dist/src/lro/requestUtils.js +0 -76
  420. package/dist/src/lro/requestUtils.js.map +0 -1
  421. package/dist/src/lro/stateMachine.d.ts +0 -18
  422. package/dist/src/lro/stateMachine.d.ts.map +0 -1
  423. package/dist/src/lro/stateMachine.js +0 -90
  424. package/dist/src/lro/stateMachine.js.map +0 -1
  425. package/src/coreClientLro.ts +0 -315
  426. package/src/coreHttpLro.ts +0 -268
  427. package/src/generators/clientContextFileGenerator.ts +0 -405
  428. package/src/lro/azureAsyncPolling.ts +0 -82
  429. package/src/lro/bodyPolling.ts +0 -34
  430. package/src/lro/index.ts +0 -18
  431. package/src/lro/locationPolling.ts +0 -20
  432. package/src/lro/lroEngine.ts +0 -53
  433. package/src/lro/models.ts +0 -165
  434. package/src/lro/operation.ts +0 -112
  435. package/src/lro/passthrough.ts +0 -15
  436. package/src/lro/requestUtils.ts +0 -94
  437. package/src/lro/stateMachine.ts +0 -108
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePathFirstClient = exports.pathDictionary = void 0;
4
+ const codemodel_1 = require("@autorest/codemodel");
5
+ const lodash_1 = require("lodash");
6
+ const operationHelpers_1 = require("./operationHelpers");
7
+ const ts_morph_1 = require("ts-morph");
8
+ const path = require("path");
9
+ const autorestSession_1 = require("../autorestSession");
10
+ const nameUtils_1 = require("../utils/nameUtils");
11
+ const languageHelpers_1 = require("../utils/languageHelpers");
12
+ const operationHelpers_2 = require("./helpers/operationHelpers");
13
+ const generateMethodShortcuts_1 = require("./generateMethodShortcuts");
14
+ const hasPollingOperations_1 = require("./helpers/hasPollingOperations");
15
+ exports.pathDictionary = {};
16
+ function generatePathFirstClient(model, project) {
17
+ var _a, _b, _c, _d, _e;
18
+ const name = (0, nameUtils_1.normalizeName)((0, languageHelpers_1.getLanguageMetadata)(model.language).name, nameUtils_1.NameType.File);
19
+ const { srcPath } = (0, autorestSession_1.getAutorestOptions)();
20
+ const clientFile = project.createSourceFile(path.join(srcPath, `clientDefinitions.ts`), undefined, {
21
+ overwrite: true
22
+ });
23
+ // Get all paths
24
+ const importedParameters = new Set();
25
+ const importedResponses = new Set();
26
+ const clientImports = new Set();
27
+ exports.pathDictionary = {};
28
+ for (const operationGroup of model.operationGroups) {
29
+ for (const operation of operationGroup.operations) {
30
+ const operationName = (0, languageHelpers_1.getLanguageMetadata)(operation.language).name;
31
+ const operationDescription = (0, languageHelpers_1.getLanguageMetadata)(operation.language)
32
+ .description;
33
+ const pathParameters = ((_a = operation.parameters) === null || _a === void 0 ? void 0 : _a.filter(p => { var _a; return ((_a = p.protocol.http) === null || _a === void 0 ? void 0 : _a.in) === codemodel_1.ParameterLocation.Path; }).map(p => {
34
+ const languageMetadata = (0, languageHelpers_1.getLanguageMetadata)(p.language);
35
+ return {
36
+ name: languageMetadata.serializedName || languageMetadata.name,
37
+ schema: p.schema,
38
+ description: languageMetadata.description
39
+ };
40
+ })) || [];
41
+ const path = (_c = (_b = operation.requests) === null || _b === void 0 ? void 0 : _b[0].protocol.http) === null || _c === void 0 ? void 0 : _c.path;
42
+ pathParameters.sort(function compare(a, b) {
43
+ return path.indexOf(a.name) - path.indexOf(b.name);
44
+ });
45
+ for (const request of operation.requests || []) {
46
+ const path = ((_d = request.protocol.http) === null || _d === void 0 ? void 0 : _d.path) || "";
47
+ const method = (_e = request.protocol.http) === null || _e === void 0 ? void 0 : _e.method;
48
+ if (path && method) {
49
+ if (!exports.pathDictionary[path]) {
50
+ exports.pathDictionary[path] = {
51
+ pathParameters,
52
+ methods: {},
53
+ name: operationName,
54
+ annotations: {
55
+ isLongRunning: (0, hasPollingOperations_1.isLongRunningOperation)(operation)
56
+ }
57
+ };
58
+ }
59
+ const hasOptionalOptions = !hasRequiredOptions(operation);
60
+ const newMethod = {
61
+ description: operationDescription,
62
+ optionsName: getOperationOptionsType(operation, importedParameters),
63
+ hasOptionalOptions,
64
+ returnType: `StreamableMethod<${getOperationReturnType(operation, importedResponses, clientImports)}>`,
65
+ responseTypes: getResponseTypes(operation),
66
+ successStatus: (0, operationHelpers_1.gerOperationSuccessStatus)(operation)
67
+ };
68
+ if (exports.pathDictionary[path].methods[`${method}`] &&
69
+ !exports.pathDictionary[path].methods[`${method}`].some(m => (0, lodash_1.isEqual)(m, newMethod))) {
70
+ exports.pathDictionary[path].methods[`${method}`].push(newMethod);
71
+ }
72
+ else {
73
+ exports.pathDictionary[path].methods[`${method}`] = [newMethod];
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ writeShortcutInterface(model, exports.pathDictionary, clientFile);
80
+ clientFile.addInterface({
81
+ name: "Routes",
82
+ isExported: true,
83
+ callSignatures: getPathFirstRoutesInterfaceDefinition(exports.pathDictionary, clientFile)
84
+ });
85
+ const clientName = (0, languageHelpers_1.getLanguageMetadata)(model.language).name;
86
+ const clientInterfaceName = clientName.endsWith("Client")
87
+ ? `${clientName}`
88
+ : `${clientName}Client`;
89
+ const { rlcShortcut } = (0, autorestSession_1.getAutorestOptions)();
90
+ let shortcutElements = !rlcShortcut
91
+ ? []
92
+ : model.operationGroups.map(og => {
93
+ const groupName = og.language.default.name;
94
+ const name = (0, nameUtils_1.normalizeName)(groupName, nameUtils_1.NameType.OperationGroup, true, generateMethodShortcuts_1.REST_CLIENT_RESERVED, nameUtils_1.CasingConvention.Camel);
95
+ const interfaceName = (0, nameUtils_1.normalizeName)(`${name}Operations`, nameUtils_1.NameType.Interface, true, generateMethodShortcuts_1.REST_CLIENT_RESERVED);
96
+ return { name, type: interfaceName };
97
+ });
98
+ // There may be operations without an operation group, those shortcut
99
+ // methods need to be handled differently.
100
+ const shortcutsInOperationGroup = shortcutElements.filter(s => s.name);
101
+ clientFile.addTypeAlias({
102
+ isExported: true,
103
+ name: clientInterfaceName,
104
+ type: ts_morph_1.Writers.intersectionType("Client", ts_morph_1.Writers.objectType({
105
+ properties: [
106
+ { name: "path", type: "Routes" },
107
+ ...shortcutsInOperationGroup
108
+ ]
109
+ }),
110
+ // If the length of shortcutMethods in operation group and all shortcutMethods
111
+ // is the same, then we don't have any operations at the client level
112
+ // Otherwise we need to make the client interface name an union with the
113
+ // definition of all client level shortcut methods
114
+ ...(shortcutsInOperationGroup.length !== shortcutElements.length
115
+ ? [`ClientOperations`]
116
+ : []))
117
+ });
118
+ if (importedParameters.size) {
119
+ clientFile.addImportDeclaration({
120
+ namedImports: [...importedParameters],
121
+ moduleSpecifier: "./parameters"
122
+ });
123
+ }
124
+ if (importedResponses.size) {
125
+ clientFile.addImportDeclaration({
126
+ namedImports: [...importedResponses],
127
+ moduleSpecifier: "./responses"
128
+ });
129
+ }
130
+ clientImports.add("Client");
131
+ clientImports.add("StreamableMethod");
132
+ clientFile.addImportDeclarations([
133
+ {
134
+ namedImports: [...clientImports],
135
+ moduleSpecifier: "@azure-rest/core-client"
136
+ }
137
+ ]);
138
+ }
139
+ exports.generatePathFirstClient = generatePathFirstClient;
140
+ function writeShortcutInterface(model, pathDictionary, clientFile) {
141
+ const { rlcShortcut } = (0, autorestSession_1.getAutorestOptions)();
142
+ if (!rlcShortcut) {
143
+ return;
144
+ }
145
+ // Create a map of Operation group descriptions
146
+ const descriptions = model.operationGroups.reduce((map, current) => {
147
+ const { name, description } = current.language.default;
148
+ map.set(name, description);
149
+ return map;
150
+ }, new Map());
151
+ const shortcuts = (0, generateMethodShortcuts_1.generateMethodShortcuts)(model, pathDictionary);
152
+ for (const group of Object.keys(shortcuts)) {
153
+ const groupName = (0, nameUtils_1.normalizeName)(group, nameUtils_1.NameType.Interface, true, generateMethodShortcuts_1.REST_CLIENT_RESERVED) ||
154
+ "Client";
155
+ const groupOperations = shortcuts[group];
156
+ clientFile.addInterface({
157
+ docs: [
158
+ descriptions.get(group) ||
159
+ `Contains operations for ${groupName} operations`
160
+ ],
161
+ name: `${groupName}Operations`,
162
+ isExported: true,
163
+ methods: groupOperations
164
+ });
165
+ }
166
+ }
167
+ function hasRequiredOptions(operation) {
168
+ return (0, operationHelpers_2.getOperationParameters)(operation)
169
+ .filter(p => p.implementation === codemodel_1.ImplementationLocation.Method)
170
+ .filter(p => { var _a; return ["query", "body", "headers"].includes((_a = p.protocol.http) === null || _a === void 0 ? void 0 : _a.in); })
171
+ .some(p => p.required);
172
+ }
173
+ function getOperationOptionsType(operation, importedParameters = new Set()) {
174
+ const paramsName = `${(0, languageHelpers_1.getLanguageMetadata)(operation.language).name}Parameters`;
175
+ importedParameters.add(paramsName);
176
+ return paramsName;
177
+ }
178
+ function getOperationReturnType(operation, importedResponses = new Set(), coreClientImports = new Set()) {
179
+ var _a, _b;
180
+ let returnType = "HttpResponse";
181
+ if ((operation.responses && operation.responses.length) ||
182
+ (operation.exceptions && operation.exceptions.length)) {
183
+ const responses = [
184
+ ...((_a = operation.responses) !== null && _a !== void 0 ? _a : []),
185
+ ...((_b = operation.exceptions) !== null && _b !== void 0 ? _b : [])
186
+ ];
187
+ const responseTypes = responses
188
+ .filter(r => { var _a, _b; return ((_a = r.protocol.http) === null || _a === void 0 ? void 0 : _a.statusCodes) && ((_b = r.protocol.http) === null || _b === void 0 ? void 0 : _b.statusCodes.length); })
189
+ .map(r => {
190
+ const responseName = (0, operationHelpers_1.getResponseTypeName)(operation, r);
191
+ importedResponses.add(responseName);
192
+ return responseName;
193
+ });
194
+ if (responseTypes.length) {
195
+ if (responseTypes.indexOf("HttpResponse") > -1 &&
196
+ !coreClientImports.has(returnType)) {
197
+ coreClientImports.add("HttpResponse");
198
+ }
199
+ returnType = responseTypes.join(" | ");
200
+ }
201
+ }
202
+ if (returnType === "HttpResponse" && !coreClientImports.has(returnType)) {
203
+ coreClientImports.add(returnType);
204
+ }
205
+ return returnType;
206
+ }
207
+ function getPathFirstRoutesInterfaceDefinition(paths, sourcefile) {
208
+ const signatures = [];
209
+ for (const key of Object.keys(paths)) {
210
+ generatePathFirstRouteMethodsDefinition(paths[key].name, paths[key].methods, sourcefile);
211
+ const pathParams = paths[key].pathParameters;
212
+ signatures.push({
213
+ docs: [
214
+ `Resource for '${key
215
+ .replace(/}/g, "\\}")
216
+ .replace(/{/g, "\\{")}' has methods for the following verbs: ${Object.keys(paths[key].methods).join(", ")}`
217
+ ],
218
+ parameters: [
219
+ { name: "path", type: `"${key}"` },
220
+ ...(0, operationHelpers_2.getPathParamDefinitions)(pathParams)
221
+ ],
222
+ returnType: paths[key].name,
223
+ kind: ts_morph_1.StructureKind.CallSignature
224
+ });
225
+ }
226
+ return signatures;
227
+ }
228
+ function generatePathFirstRouteMethodsDefinition(operationName, methods, file) {
229
+ const methodDefinitions = (0, operationHelpers_2.buildMethodDefinitions)(methods);
230
+ file.addInterface({
231
+ methods: methodDefinitions,
232
+ name: operationName,
233
+ isExported: true
234
+ });
235
+ }
236
+ /**
237
+ * This function computes all the response types error and success
238
+ * an operation can end up returning.
239
+ */
240
+ function getResponseTypes(operation) {
241
+ var _a, _b;
242
+ let returnTypes = {
243
+ error: [],
244
+ success: []
245
+ };
246
+ if ((operation.responses && operation.responses.length) ||
247
+ (operation.exceptions && operation.exceptions.length)) {
248
+ function getResponseType(responses) {
249
+ return responses
250
+ .filter(r => { var _a, _b; return ((_a = r.protocol.http) === null || _a === void 0 ? void 0 : _a.statusCodes) && ((_b = r.protocol.http) === null || _b === void 0 ? void 0 : _b.statusCodes.length); })
251
+ .map(r => {
252
+ const responseName = (0, operationHelpers_1.getResponseTypeName)(operation, r);
253
+ return responseName;
254
+ });
255
+ }
256
+ returnTypes.error = getResponseType((_a = operation.exceptions) !== null && _a !== void 0 ? _a : []);
257
+ returnTypes.success = getResponseType((_b = operation.responses) !== null && _b !== void 0 ? _b : []);
258
+ }
259
+ return returnTypes;
260
+ }
261
+ //# sourceMappingURL=generateClientDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateClientDefinition.js","sourceRoot":"","sources":["../../../src/restLevelClient/generateClientDefinition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Project } from "ts-morph";
2
+ /**
3
+ * Generates a helper function `isUnexpected` which takes a response
4
+ * and checks if the status code matches any of the success status codes
5
+ * defined in the API spec. This aids with type narrowing down.
6
+ */
7
+ export declare function generateIsUnexpectedHelper(project: Project): void;
8
+ //# sourceMappingURL=generateIsUnexpectedHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateIsUnexpectedHelper.d.ts","sourceRoot":"","sources":["../../../src/restLevelClient/generateIsUnexpectedHelper.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,OAAO,EAER,MAAM,UAAU,CAAC;AAGlB;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAsM1D"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateIsUnexpectedHelper = void 0;
4
+ const autorestSession_1 = require("../autorestSession");
5
+ const path = require("path");
6
+ const ts_morph_1 = require("ts-morph");
7
+ const generateClientDefinition_1 = require("./generateClientDefinition");
8
+ /**
9
+ * Generates a helper function `isUnexpected` which takes a response
10
+ * and checks if the status code matches any of the success status codes
11
+ * defined in the API spec. This aids with type narrowing down.
12
+ */
13
+ function generateIsUnexpectedHelper(project) {
14
+ var _a;
15
+ const { srcPath } = (0, autorestSession_1.getAutorestOptions)();
16
+ const isErrorHelper = project.createSourceFile(path.join(srcPath, `isUnexpected.ts`), undefined, {
17
+ overwrite: true
18
+ });
19
+ let map = {};
20
+ let allResponseTypes = new Set();
21
+ let allErrorTypes = new Set();
22
+ let overloads = [];
23
+ for (const [path, details] of Object.entries(generateClientDefinition_1.pathDictionary)) {
24
+ for (const [methodName, methodDetails] of Object.entries(details.methods)) {
25
+ const originalMethod = methodName.toUpperCase();
26
+ const operation = `${originalMethod} ${path}`;
27
+ const success = methodDetails[0].successStatus;
28
+ map = Object.assign(Object.assign({}, map), { [operation]: success });
29
+ // LROs may call the same path but with GET
30
+ // to get the operation status.
31
+ if (((_a = details.annotations) === null || _a === void 0 ? void 0 : _a.isLongRunning) && originalMethod !== "GET") {
32
+ const operation = `GET ${path}`;
33
+ const success = methodDetails[0].successStatus;
34
+ map = Object.assign(Object.assign({}, map), { [operation]: success });
35
+ }
36
+ const successTypes = methodDetails[0].responseTypes.success;
37
+ const errorTypes = methodDetails[0].responseTypes.error;
38
+ if (!successTypes.length || !errorTypes.length || !errorTypes[0]) {
39
+ continue;
40
+ }
41
+ successTypes.forEach(t => allResponseTypes.add(t));
42
+ errorTypes.forEach(t => {
43
+ allResponseTypes.add(t);
44
+ allErrorTypes.add(t);
45
+ });
46
+ overloads.push({
47
+ isExported: true,
48
+ parameters: [
49
+ {
50
+ name: "response",
51
+ type: [...successTypes, ...errorTypes].join(" | ")
52
+ }
53
+ ],
54
+ returnType: `response is ${errorTypes[0]}`
55
+ });
56
+ }
57
+ }
58
+ isErrorHelper.addImportDeclaration({
59
+ namedImports: [...allResponseTypes],
60
+ moduleSpecifier: "./responses"
61
+ });
62
+ isErrorHelper.addVariableStatement({
63
+ declarations: [
64
+ {
65
+ name: "responseMap",
66
+ initializer: JSON.stringify(map),
67
+ type: "Record<string, string[]>"
68
+ }
69
+ ],
70
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const
71
+ });
72
+ if (allErrorTypes.size) {
73
+ const hasTemplate = hasParametrizedPath();
74
+ isErrorHelper.addFunction({
75
+ overloads,
76
+ isExported: true,
77
+ name: "isUnexpected",
78
+ parameters: [
79
+ {
80
+ name: "response",
81
+ type: [...allResponseTypes].join(" | ")
82
+ }
83
+ ],
84
+ returnType: `response is ${[...allErrorTypes].join(" | ")}`,
85
+ statements: [
86
+ `
87
+ const lroOriginal = response.headers["x-ms-original-url"];
88
+ const url = new URL(lroOriginal ?? response.request.url);
89
+ const method = response.request.method;
90
+ ${hasTemplate ? "let" : "const"} pathDetails = responseMap[\`\${method} \${url.pathname}\`];
91
+ if (!pathDetails) {`,
92
+ hasTemplate
93
+ ? "pathDetails = geParametrizedPathSuccess(url.pathname);"
94
+ : `return true;`,
95
+ ` }
96
+ return !pathDetails.includes(response.status);
97
+ `
98
+ ]
99
+ });
100
+ if (hasTemplate) {
101
+ isErrorHelper.addFunction({
102
+ isExported: false,
103
+ name: "geParametrizedPathSuccess",
104
+ parameters: [
105
+ {
106
+ name: "path",
107
+ type: "string"
108
+ }
109
+ ],
110
+ returnType: `string[]`,
111
+ statements: [
112
+ `
113
+ const pathParts = path.split("/");
114
+
115
+ // Iterate the responseMap to find a match
116
+ for (const [key, value] of Object.entries(responseMap)) {
117
+ // Extracting the path from the map key which is in format
118
+ // GET /path/foo
119
+ const candidatePath = getPathFromMapKey(key);
120
+ // Get each part of the url path
121
+ const candidateParts = candidatePath.split("/");
122
+
123
+ // If the candidate and actual paths don't match in size
124
+ // we move on to the next candidate path
125
+ if (
126
+ candidateParts.length === pathParts.length &&
127
+ hasParametrizedPath(key)
128
+ ) {
129
+ // track if we have found a match to return the values found.
130
+ let found = true;
131
+ for (let i = 0; i < candidateParts.length; i++) {
132
+ if (
133
+ candidateParts[i].startsWith("{") &&
134
+ candidateParts[i].endsWith("}")
135
+ ) {
136
+ // If the current part of the candidate is a "template" part
137
+ // it is a match with the actual path part on hand
138
+ // skip as the parameterized part can match anything
139
+ continue;
140
+ }
141
+
142
+ // If the candidate part is not a template and
143
+ // the parts don't match mark the candidate as not found
144
+ // to move on with the next candidate path.
145
+ if (candidateParts[i] !== pathParts[i]) {
146
+ found = false;
147
+ break;
148
+ }
149
+ }
150
+
151
+ // We finished evaluating the current candidate parts
152
+ // if all parts matched we return the success values form
153
+ // the path mapping.
154
+ if (found) {
155
+ return value;
156
+ }
157
+ }
158
+ }
159
+
160
+ // No match was found, return an empty array.
161
+ return [];
162
+ `
163
+ ]
164
+ });
165
+ isErrorHelper.addFunction({
166
+ isExported: false,
167
+ name: "hasParametrizedPath",
168
+ parameters: [
169
+ {
170
+ name: "path",
171
+ type: "string"
172
+ }
173
+ ],
174
+ returnType: `boolean`,
175
+ statements: [`return path.includes("/{");`]
176
+ });
177
+ isErrorHelper.addFunction({
178
+ isExported: false,
179
+ name: "getPathFromMapKey",
180
+ parameters: [
181
+ {
182
+ name: "mapKey",
183
+ type: "string"
184
+ }
185
+ ],
186
+ returnType: `string`,
187
+ statements: [
188
+ `const pathStart = mapKey.indexOf("/");
189
+ return mapKey.slice(pathStart);`
190
+ ]
191
+ });
192
+ }
193
+ }
194
+ }
195
+ exports.generateIsUnexpectedHelper = generateIsUnexpectedHelper;
196
+ function hasParametrizedPath() {
197
+ for (const [path] of Object.entries(generateClientDefinition_1.pathDictionary)) {
198
+ if (path.includes("/{") && path.includes("}")) {
199
+ return true;
200
+ }
201
+ }
202
+ return false;
203
+ }
204
+ //# sourceMappingURL=generateIsUnexpectedHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateIsUnexpectedHelper.js","sourceRoot":"","sources":["../../../src/restLevelClient/generateIsUnexpectedHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { CodeModel } from "@autorest/codemodel";
2
+ import { OptionalKind, MethodSignatureStructure } from "ts-morph";
3
+ import { ReservedName } from "../utils/nameUtils";
4
+ import { Paths } from "./interfaces";
5
+ export declare const REST_CLIENT_RESERVED: ReservedName[];
6
+ export declare function generateMethodShortcuts(model: CodeModel, paths: Paths): Record<string, OptionalKind<MethodSignatureStructure>[]>;
7
+ export declare function generateMethodShortcutImplementation(model: CodeModel, paths: Paths): Record<string, string[]>;
8
+ //# sourceMappingURL=generateMethodShortcuts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateMethodShortcuts.d.ts","sourceRoot":"","sources":["../../../src/restLevelClient/generateMethodShortcuts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAIL,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAiB,KAAK,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAU9C,CAAC;AACF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,4DAerE;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,4BAgBb"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateMethodShortcutImplementation = exports.generateMethodShortcuts = exports.REST_CLIENT_RESERVED = void 0;
4
+ const nameUtils_1 = require("../utils/nameUtils");
5
+ const operationHelpers_1 = require("./helpers/operationHelpers");
6
+ exports.REST_CLIENT_RESERVED = [
7
+ { name: "path", reservedFor: [nameUtils_1.NameType.Property, nameUtils_1.NameType.OperationGroup] },
8
+ {
9
+ name: "pathUnchecked",
10
+ reservedFor: [nameUtils_1.NameType.Property, nameUtils_1.NameType.OperationGroup]
11
+ },
12
+ {
13
+ name: "pipeline",
14
+ reservedFor: [nameUtils_1.NameType.Property, nameUtils_1.NameType.OperationGroup]
15
+ }
16
+ ];
17
+ function generateMethodShortcuts(model, paths) {
18
+ const operationGroups = model.operationGroups;
19
+ let keys = {};
20
+ for (const group of operationGroups) {
21
+ const groupName = (0, nameUtils_1.normalizeName)(group.language.default.name, nameUtils_1.NameType.OperationGroup, true, exports.REST_CLIENT_RESERVED, nameUtils_1.CasingConvention.Camel);
22
+ keys[groupName] = buildOperationDefinitions(group.operations, paths);
23
+ }
24
+ return keys;
25
+ }
26
+ exports.generateMethodShortcuts = generateMethodShortcuts;
27
+ function generateMethodShortcutImplementation(model, paths) {
28
+ const operationGroups = model.operationGroups;
29
+ let keys = {};
30
+ for (const group of operationGroups) {
31
+ const groupName = (0, nameUtils_1.normalizeName)(group.language.default.name, nameUtils_1.NameType.OperationGroup, true, exports.REST_CLIENT_RESERVED, nameUtils_1.CasingConvention.Camel);
32
+ keys[groupName] = buildOperationDeclarations(group.operations, paths);
33
+ }
34
+ return keys;
35
+ }
36
+ exports.generateMethodShortcutImplementation = generateMethodShortcutImplementation;
37
+ function buildOperationDeclarations(operations, paths) {
38
+ var _a, _b, _c;
39
+ let ops = [];
40
+ for (const operation of operations) {
41
+ const name = (0, nameUtils_1.normalizeName)(operation.language.default.name, nameUtils_1.NameType.Property, true);
42
+ const path = (_a = operation.requests[0].protocol.http) === null || _a === void 0 ? void 0 : _a.path;
43
+ const method = (_b = operation.requests[0].protocol.http) === null || _b === void 0 ? void 0 : _b.method;
44
+ const pathParams = (_c = paths[path]) === null || _c === void 0 ? void 0 : _c.pathParameters;
45
+ const methodDefinitions = generateOperationDeclaration(path, name, method, pathParams);
46
+ ops = [...ops, methodDefinitions];
47
+ }
48
+ return ops;
49
+ }
50
+ function generateOperationDeclaration(path, operationName, method, pathParams = []) {
51
+ const pathParamNames = `${pathParams.length > 0 ? `${pathParams.map(p => p.name)},` : ""}`;
52
+ return `"${operationName}": (${pathParamNames} options) => {
53
+ return client.path("${path}", ${pathParamNames}).${method}(options);
54
+ }`;
55
+ }
56
+ function buildOperationDefinitions(operations, paths) {
57
+ var _a, _b, _c, _d;
58
+ let ops = [];
59
+ for (const operation of operations) {
60
+ const name = (0, nameUtils_1.normalizeName)(operation.language.default.name, nameUtils_1.NameType.Property, true);
61
+ const path = (_a = operation.requests[0].protocol.http) === null || _a === void 0 ? void 0 : _a.path;
62
+ const method = (_b = operation.requests[0].protocol.http) === null || _b === void 0 ? void 0 : _b.method;
63
+ const methods = (_c = paths[path]) === null || _c === void 0 ? void 0 : _c.methods[method];
64
+ const pathParams = (_d = paths[path]) === null || _d === void 0 ? void 0 : _d.pathParameters;
65
+ const methodDefinitions = (0, operationHelpers_1.buildMethodDefinitions)({ [name]: methods }, pathParams);
66
+ ops = [...ops, ...methodDefinitions];
67
+ }
68
+ return ops;
69
+ }
70
+ //# sourceMappingURL=generateMethodShortcuts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateMethodShortcuts.js","sourceRoot":"","sources":["../../../src/restLevelClient/generateMethodShortcuts.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { CodeModel } from "@autorest/codemodel";
1
+ import { CodeModel, SchemaContext } from "@autorest/codemodel";
2
2
  import { InterfaceDeclarationStructure, TypeAliasDeclarationStructure } from "ts-morph";
3
3
  /**
4
4
  * Generates interfaces for ObjectSchemas
5
5
  */
6
- export declare function buildObjectInterfaces(model: CodeModel, importedModels: Set<string>): InterfaceDeclarationStructure[];
7
- export declare function buildPolymorphicAliases(model: CodeModel): TypeAliasDeclarationStructure[];
6
+ export declare function buildObjectInterfaces(model: CodeModel, importedModels: Set<string>, schemaUsage: SchemaContext[]): InterfaceDeclarationStructure[];
7
+ export declare function buildPolymorphicAliases(model: CodeModel, schemaUsage: SchemaContext[]): TypeAliasDeclarationStructure[];
8
8
  //# sourceMappingURL=generateObjectTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateObjectTypes.d.ts","sourceRoot":"","sources":["../../../src/restLevelClient/generateObjectTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAKV,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,6BAA6B,EAI7B,6BAA6B,EAC9B,MAAM,UAAU,CAAC;AAOlB;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,6BAA6B,EAAE,CAejC;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,mCAavD"}
1
+ {"version":3,"file":"generateObjectTypes.d.ts","sourceRoot":"","sources":["../../../src/restLevelClient/generateObjectTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAKT,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,6BAA6B,EAG7B,6BAA6B,EAC9B,MAAM,UAAU,CAAC;AAOlB;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,WAAW,EAAE,aAAa,EAAE,GAC3B,6BAA6B,EAAE,CAkBjC;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,aAAa,EAAE,mCAoB7B"}