@typespec/http-specs 0.37.2

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 (334) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE +21 -0
  3. package/README.md +36 -0
  4. package/assets/image.jpg +0 -0
  5. package/assets/image.png +0 -0
  6. package/dist/specs/authentication/api-key/mockapi.d.ts +3 -0
  7. package/dist/specs/authentication/api-key/mockapi.d.ts.map +1 -0
  8. package/dist/specs/authentication/api-key/mockapi.js +45 -0
  9. package/dist/specs/authentication/api-key/mockapi.js.map +1 -0
  10. package/dist/specs/authentication/commonapi.d.ts +9 -0
  11. package/dist/specs/authentication/commonapi.d.ts.map +1 -0
  12. package/dist/specs/authentication/commonapi.js +19 -0
  13. package/dist/specs/authentication/commonapi.js.map +1 -0
  14. package/dist/specs/authentication/http/custom/mockapi.d.ts +3 -0
  15. package/dist/specs/authentication/http/custom/mockapi.d.ts.map +1 -0
  16. package/dist/specs/authentication/http/custom/mockapi.js +45 -0
  17. package/dist/specs/authentication/http/custom/mockapi.js.map +1 -0
  18. package/dist/specs/authentication/oauth2/mockapi.d.ts +3 -0
  19. package/dist/specs/authentication/oauth2/mockapi.d.ts.map +1 -0
  20. package/dist/specs/authentication/oauth2/mockapi.js +42 -0
  21. package/dist/specs/authentication/oauth2/mockapi.js.map +1 -0
  22. package/dist/specs/authentication/union/mockapi.d.ts +3 -0
  23. package/dist/specs/authentication/union/mockapi.d.ts.map +1 -0
  24. package/dist/specs/authentication/union/mockapi.js +37 -0
  25. package/dist/specs/authentication/union/mockapi.js.map +1 -0
  26. package/dist/specs/encode/bytes/mockapi.d.ts +3 -0
  27. package/dist/specs/encode/bytes/mockapi.d.ts.map +1 -0
  28. package/dist/specs/encode/bytes/mockapi.js +179 -0
  29. package/dist/specs/encode/bytes/mockapi.js.map +1 -0
  30. package/dist/specs/encode/datetime/mockapi.d.ts +3 -0
  31. package/dist/specs/encode/datetime/mockapi.d.ts.map +1 -0
  32. package/dist/specs/encode/datetime/mockapi.js +160 -0
  33. package/dist/specs/encode/datetime/mockapi.js.map +1 -0
  34. package/dist/specs/encode/duration/mockapi.d.ts +3 -0
  35. package/dist/specs/encode/duration/mockapi.d.ts.map +1 -0
  36. package/dist/specs/encode/duration/mockapi.js +116 -0
  37. package/dist/specs/encode/duration/mockapi.js.map +1 -0
  38. package/dist/specs/encode/numeric/mockapi.d.ts +3 -0
  39. package/dist/specs/encode/numeric/mockapi.d.ts.map +1 -0
  40. package/dist/specs/encode/numeric/mockapi.js +29 -0
  41. package/dist/specs/encode/numeric/mockapi.js.map +1 -0
  42. package/dist/specs/helper.d.ts +3 -0
  43. package/dist/specs/helper.d.ts.map +1 -0
  44. package/dist/specs/helper.js +7 -0
  45. package/dist/specs/helper.js.map +1 -0
  46. package/dist/specs/parameters/basic/mockapi.d.ts +3 -0
  47. package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -0
  48. package/dist/specs/parameters/basic/mockapi.js +24 -0
  49. package/dist/specs/parameters/basic/mockapi.js.map +1 -0
  50. package/dist/specs/parameters/body-optionality/mockapi.d.ts +3 -0
  51. package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -0
  52. package/dist/specs/parameters/body-optionality/mockapi.js +62 -0
  53. package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -0
  54. package/dist/specs/parameters/collection-format/mockapi.d.ts +3 -0
  55. package/dist/specs/parameters/collection-format/mockapi.d.ts.map +1 -0
  56. package/dist/specs/parameters/collection-format/mockapi.js +106 -0
  57. package/dist/specs/parameters/collection-format/mockapi.js.map +1 -0
  58. package/dist/specs/parameters/spread/mockapi.d.ts +3 -0
  59. package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -0
  60. package/dist/specs/parameters/spread/mockapi.js +206 -0
  61. package/dist/specs/parameters/spread/mockapi.js.map +1 -0
  62. package/dist/specs/payload/json-merge-patch/mockapi.d.ts +40 -0
  63. package/dist/specs/payload/json-merge-patch/mockapi.d.ts.map +1 -0
  64. package/dist/specs/payload/json-merge-patch/mockapi.js +141 -0
  65. package/dist/specs/payload/json-merge-patch/mockapi.js.map +1 -0
  66. package/dist/specs/payload/media-type/mockapi.d.ts +3 -0
  67. package/dist/specs/payload/media-type/mockapi.d.ts.map +1 -0
  68. package/dist/specs/payload/media-type/mockapi.js +84 -0
  69. package/dist/specs/payload/media-type/mockapi.js.map +1 -0
  70. package/dist/specs/payload/multipart/mockapi.d.ts +3 -0
  71. package/dist/specs/payload/multipart/mockapi.d.ts.map +1 -0
  72. package/dist/specs/payload/multipart/mockapi.js +153 -0
  73. package/dist/specs/payload/multipart/mockapi.js.map +1 -0
  74. package/dist/specs/payload/xml/mockapi.d.ts +15 -0
  75. package/dist/specs/payload/xml/mockapi.d.ts.map +1 -0
  76. package/dist/specs/payload/xml/mockapi.js +189 -0
  77. package/dist/specs/payload/xml/mockapi.js.map +1 -0
  78. package/dist/specs/routes/mockapi.d.ts +3 -0
  79. package/dist/specs/routes/mockapi.d.ts.map +1 -0
  80. package/dist/specs/routes/mockapi.js +63 -0
  81. package/dist/specs/routes/mockapi.js.map +1 -0
  82. package/dist/specs/serialization/encoded-name/json/mockapi.d.ts +3 -0
  83. package/dist/specs/serialization/encoded-name/json/mockapi.d.ts.map +1 -0
  84. package/dist/specs/serialization/encoded-name/json/mockapi.js +32 -0
  85. package/dist/specs/serialization/encoded-name/json/mockapi.js.map +1 -0
  86. package/dist/specs/server/endpoint/not-defined/mockapi.d.ts +3 -0
  87. package/dist/specs/server/endpoint/not-defined/mockapi.d.ts.map +1 -0
  88. package/dist/specs/server/endpoint/not-defined/mockapi.js +15 -0
  89. package/dist/specs/server/endpoint/not-defined/mockapi.js.map +1 -0
  90. package/dist/specs/server/path/multiple/mockapi.d.ts +3 -0
  91. package/dist/specs/server/path/multiple/mockapi.d.ts.map +1 -0
  92. package/dist/specs/server/path/multiple/mockapi.js +27 -0
  93. package/dist/specs/server/path/multiple/mockapi.js.map +1 -0
  94. package/dist/specs/server/path/single/mockapi.d.ts +3 -0
  95. package/dist/specs/server/path/single/mockapi.d.ts.map +1 -0
  96. package/dist/specs/server/path/single/mockapi.js +15 -0
  97. package/dist/specs/server/path/single/mockapi.js.map +1 -0
  98. package/dist/specs/server/versions/not-versioned/mockapi.d.ts +3 -0
  99. package/dist/specs/server/versions/not-versioned/mockapi.d.ts.map +1 -0
  100. package/dist/specs/server/versions/not-versioned/mockapi.js +46 -0
  101. package/dist/specs/server/versions/not-versioned/mockapi.js.map +1 -0
  102. package/dist/specs/server/versions/versioned/mockapi.d.ts +3 -0
  103. package/dist/specs/server/versions/versioned/mockapi.d.ts.map +1 -0
  104. package/dist/specs/server/versions/versioned/mockapi.js +47 -0
  105. package/dist/specs/server/versions/versioned/mockapi.js.map +1 -0
  106. package/dist/specs/special-headers/conditional-request/mockapi.d.ts +3 -0
  107. package/dist/specs/special-headers/conditional-request/mockapi.d.ts.map +1 -0
  108. package/dist/specs/special-headers/conditional-request/mockapi.js +79 -0
  109. package/dist/specs/special-headers/conditional-request/mockapi.js.map +1 -0
  110. package/dist/specs/special-headers/repeatability/mockapi.d.ts +3 -0
  111. package/dist/specs/special-headers/repeatability/mockapi.d.ts.map +1 -0
  112. package/dist/specs/special-headers/repeatability/mockapi.js +36 -0
  113. package/dist/specs/special-headers/repeatability/mockapi.js.map +1 -0
  114. package/dist/specs/special-words/dec.d.ts +22 -0
  115. package/dist/specs/special-words/dec.d.ts.map +1 -0
  116. package/dist/specs/special-words/dec.js +37 -0
  117. package/dist/specs/special-words/dec.js.map +1 -0
  118. package/dist/specs/special-words/mockapi.d.ts +3 -0
  119. package/dist/specs/special-words/mockapi.d.ts.map +1 -0
  120. package/dist/specs/special-words/mockapi.js +246 -0
  121. package/dist/specs/special-words/mockapi.js.map +1 -0
  122. package/dist/specs/type/array/mockapi.d.ts +3 -0
  123. package/dist/specs/type/array/mockapi.d.ts.map +1 -0
  124. package/dist/specs/type/array/mockapi.js +104 -0
  125. package/dist/specs/type/array/mockapi.js.map +1 -0
  126. package/dist/specs/type/dictionary/mockapi.d.ts +3 -0
  127. package/dist/specs/type/dictionary/mockapi.d.ts.map +1 -0
  128. package/dist/specs/type/dictionary/mockapi.js +103 -0
  129. package/dist/specs/type/dictionary/mockapi.js.map +1 -0
  130. package/dist/specs/type/enum/extensible/mockapi.d.ts +3 -0
  131. package/dist/specs/type/enum/extensible/mockapi.d.ts.map +1 -0
  132. package/dist/specs/type/enum/extensible/mockapi.js +46 -0
  133. package/dist/specs/type/enum/extensible/mockapi.js.map +1 -0
  134. package/dist/specs/type/enum/fixed/mockapi.d.ts +3 -0
  135. package/dist/specs/type/enum/fixed/mockapi.d.ts.map +1 -0
  136. package/dist/specs/type/enum/fixed/mockapi.js +53 -0
  137. package/dist/specs/type/enum/fixed/mockapi.js.map +1 -0
  138. package/dist/specs/type/model/empty/mockapi.d.ts +3 -0
  139. package/dist/specs/type/model/empty/mockapi.d.ts.map +1 -0
  140. package/dist/specs/type/model/empty/mockapi.js +48 -0
  141. package/dist/specs/type/model/empty/mockapi.js.map +1 -0
  142. package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts +3 -0
  143. package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts.map +1 -0
  144. package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js +79 -0
  145. package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js.map +1 -0
  146. package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts +3 -0
  147. package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts.map +1 -0
  148. package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js +147 -0
  149. package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js.map +1 -0
  150. package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts +3 -0
  151. package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts.map +1 -0
  152. package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js +47 -0
  153. package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js.map +1 -0
  154. package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts +3 -0
  155. package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts.map +1 -0
  156. package/dist/specs/type/model/inheritance/recursive/mockapi.js +47 -0
  157. package/dist/specs/type/model/inheritance/recursive/mockapi.js.map +1 -0
  158. package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts +3 -0
  159. package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts.map +1 -0
  160. package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js +122 -0
  161. package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js.map +1 -0
  162. package/dist/specs/type/model/templated/mockapi.d.ts +3 -0
  163. package/dist/specs/type/model/templated/mockapi.d.ts.map +1 -0
  164. package/dist/specs/type/model/templated/mockapi.js +99 -0
  165. package/dist/specs/type/model/templated/mockapi.js.map +1 -0
  166. package/dist/specs/type/model/usage/mockapi.d.ts +3 -0
  167. package/dist/specs/type/model/usage/mockapi.d.ts.map +1 -0
  168. package/dist/specs/type/model/usage/mockapi.js +52 -0
  169. package/dist/specs/type/model/usage/mockapi.js.map +1 -0
  170. package/dist/specs/type/model/visibility/mockapi.d.ts +3 -0
  171. package/dist/specs/type/model/visibility/mockapi.d.ts.map +1 -0
  172. package/dist/specs/type/model/visibility/mockapi.js +138 -0
  173. package/dist/specs/type/model/visibility/mockapi.js.map +1 -0
  174. package/dist/specs/type/property/additional-properties/mockapi.d.ts +3 -0
  175. package/dist/specs/type/property/additional-properties/mockapi.d.ts.map +1 -0
  176. package/dist/specs/type/property/additional-properties/mockapi.js +346 -0
  177. package/dist/specs/type/property/additional-properties/mockapi.js.map +1 -0
  178. package/dist/specs/type/property/nullable/mockapi.d.ts +3 -0
  179. package/dist/specs/type/property/nullable/mockapi.d.ts.map +1 -0
  180. package/dist/specs/type/property/nullable/mockapi.js +147 -0
  181. package/dist/specs/type/property/nullable/mockapi.js.map +1 -0
  182. package/dist/specs/type/property/optionality/mockapi.d.ts +3 -0
  183. package/dist/specs/type/property/optionality/mockapi.d.ts.map +1 -0
  184. package/dist/specs/type/property/optionality/mockapi.js +197 -0
  185. package/dist/specs/type/property/optionality/mockapi.js.map +1 -0
  186. package/dist/specs/type/property/value-types/mockapi.d.ts +3 -0
  187. package/dist/specs/type/property/value-types/mockapi.d.ts.map +1 -0
  188. package/dist/specs/type/property/value-types/mockapi.js +213 -0
  189. package/dist/specs/type/property/value-types/mockapi.js.map +1 -0
  190. package/dist/specs/type/scalar/mockapi.d.ts +3 -0
  191. package/dist/specs/type/scalar/mockapi.d.ts.map +1 -0
  192. package/dist/specs/type/scalar/mockapi.js +274 -0
  193. package/dist/specs/type/scalar/mockapi.js.map +1 -0
  194. package/dist/specs/type/union/mockapi.d.ts +3 -0
  195. package/dist/specs/type/union/mockapi.d.ts.map +1 -0
  196. package/dist/specs/type/union/mockapi.js +113 -0
  197. package/dist/specs/type/union/mockapi.js.map +1 -0
  198. package/dist/specs/versioning/added/mockapi.d.ts +3 -0
  199. package/dist/specs/versioning/added/mockapi.d.ts.map +1 -0
  200. package/dist/specs/versioning/added/mockapi.js +76 -0
  201. package/dist/specs/versioning/added/mockapi.js.map +1 -0
  202. package/dist/specs/versioning/madeOptional/mockapi.d.ts +3 -0
  203. package/dist/specs/versioning/madeOptional/mockapi.d.ts.map +1 -0
  204. package/dist/specs/versioning/madeOptional/mockapi.js +24 -0
  205. package/dist/specs/versioning/madeOptional/mockapi.js.map +1 -0
  206. package/dist/specs/versioning/removed/mockapi.d.ts +3 -0
  207. package/dist/specs/versioning/removed/mockapi.d.ts.map +1 -0
  208. package/dist/specs/versioning/removed/mockapi.js +26 -0
  209. package/dist/specs/versioning/removed/mockapi.js.map +1 -0
  210. package/dist/specs/versioning/renamedFrom/mockapi.d.ts +3 -0
  211. package/dist/specs/versioning/renamedFrom/mockapi.d.ts.map +1 -0
  212. package/dist/specs/versioning/renamedFrom/mockapi.js +53 -0
  213. package/dist/specs/versioning/renamedFrom/mockapi.js.map +1 -0
  214. package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts +3 -0
  215. package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts.map +1 -0
  216. package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js +25 -0
  217. package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js.map +1 -0
  218. package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts +3 -0
  219. package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts.map +1 -0
  220. package/dist/specs/versioning/typeChangedFrom/mockapi.js +29 -0
  221. package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
  222. package/package.json +53 -0
  223. package/specs/README.md +3 -0
  224. package/specs/authentication/api-key/main.tsp +39 -0
  225. package/specs/authentication/api-key/mockapi.ts +47 -0
  226. package/specs/authentication/commonapi.ts +43 -0
  227. package/specs/authentication/http/custom/main.tsp +39 -0
  228. package/specs/authentication/http/custom/mockapi.ts +47 -0
  229. package/specs/authentication/oauth2/main.tsp +44 -0
  230. package/specs/authentication/oauth2/mockapi.ts +44 -0
  231. package/specs/authentication/union/main.tsp +29 -0
  232. package/specs/authentication/union/mockapi.ts +39 -0
  233. package/specs/encode/bytes/main.tsp +369 -0
  234. package/specs/encode/bytes/mockapi.ts +309 -0
  235. package/specs/encode/datetime/main.tsp +344 -0
  236. package/specs/encode/datetime/mockapi.ts +274 -0
  237. package/specs/encode/duration/main.tsp +322 -0
  238. package/specs/encode/duration/mockapi.ts +204 -0
  239. package/specs/encode/numeric/main.tsp +71 -0
  240. package/specs/encode/numeric/mockapi.ts +39 -0
  241. package/specs/helper.ts +8 -0
  242. package/specs/parameters/basic/main.tsp +61 -0
  243. package/specs/parameters/basic/mockapi.ts +29 -0
  244. package/specs/parameters/body-optionality/main.tsp +63 -0
  245. package/specs/parameters/body-optionality/mockapi.ts +71 -0
  246. package/specs/parameters/collection-format/main.tsp +95 -0
  247. package/specs/parameters/collection-format/mockapi.ts +113 -0
  248. package/specs/parameters/spread/main.tsp +340 -0
  249. package/specs/parameters/spread/mockapi.ts +216 -0
  250. package/specs/payload/json-merge-patch/main.tsp +183 -0
  251. package/specs/payload/json-merge-patch/mockapi.ts +146 -0
  252. package/specs/payload/media-type/main.tsp +54 -0
  253. package/specs/payload/media-type/mockapi.ts +88 -0
  254. package/specs/payload/multipart/main.tsp +499 -0
  255. package/specs/payload/multipart/mockapi.ts +226 -0
  256. package/specs/payload/xml/main.tsp +312 -0
  257. package/specs/payload/xml/mockapi.ts +244 -0
  258. package/specs/routes/main.tsp +476 -0
  259. package/specs/routes/mockapi.ts +158 -0
  260. package/specs/scratch/.gitignore +3 -0
  261. package/specs/serialization/encoded-name/json/main.tsp +45 -0
  262. package/specs/serialization/encoded-name/json/mockapi.ts +34 -0
  263. package/specs/server/endpoint/not-defined/main.tsp +19 -0
  264. package/specs/server/endpoint/not-defined/mockapi.ts +16 -0
  265. package/specs/server/path/multiple/main.tsp +46 -0
  266. package/specs/server/path/multiple/mockapi.ts +29 -0
  267. package/specs/server/path/single/main.tsp +23 -0
  268. package/specs/server/path/single/mockapi.ts +16 -0
  269. package/specs/server/versions/not-versioned/main.tsp +39 -0
  270. package/specs/server/versions/not-versioned/mockapi.ts +55 -0
  271. package/specs/server/versions/versioned/main.tsp +65 -0
  272. package/specs/server/versions/versioned/mockapi.ts +68 -0
  273. package/specs/special-headers/conditional-request/main.tsp +89 -0
  274. package/specs/special-headers/conditional-request/mockapi.ts +83 -0
  275. package/specs/special-headers/repeatability/main.tsp +39 -0
  276. package/specs/special-headers/repeatability/mockapi.ts +47 -0
  277. package/specs/special-words/dec.js +52 -0
  278. package/specs/special-words/main.tsp +238 -0
  279. package/specs/special-words/mockapi.ts +407 -0
  280. package/specs/type/array/main.tsp +132 -0
  281. package/specs/type/array/mockapi.ts +119 -0
  282. package/specs/type/dictionary/main.tsp +122 -0
  283. package/specs/type/dictionary/mockapi.ts +115 -0
  284. package/specs/type/enum/extensible/main.tsp +64 -0
  285. package/specs/type/enum/extensible/mockapi.ts +55 -0
  286. package/specs/type/enum/fixed/main.tsp +60 -0
  287. package/specs/type/enum/fixed/mockapi.ts +55 -0
  288. package/specs/type/model/empty/main.tsp +39 -0
  289. package/specs/type/model/empty/mockapi.ts +51 -0
  290. package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
  291. package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +99 -0
  292. package/specs/type/model/inheritance/nested-discriminator/main.tsp +223 -0
  293. package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +150 -0
  294. package/specs/type/model/inheritance/not-discriminated/main.tsp +53 -0
  295. package/specs/type/model/inheritance/not-discriminated/mockapi.ts +49 -0
  296. package/specs/type/model/inheritance/recursive/main.tsp +70 -0
  297. package/specs/type/model/inheritance/recursive/mockapi.ts +48 -0
  298. package/specs/type/model/inheritance/single-discriminator/main.tsp +171 -0
  299. package/specs/type/model/inheritance/single-discriminator/mockapi.ts +126 -0
  300. package/specs/type/model/templated/main.tsp +130 -0
  301. package/specs/type/model/templated/mockapi.ts +102 -0
  302. package/specs/type/model/usage/main.tsp +48 -0
  303. package/specs/type/model/usage/mockapi.ts +56 -0
  304. package/specs/type/model/visibility/main.tsp +152 -0
  305. package/specs/type/model/visibility/mockapi.ts +139 -0
  306. package/specs/type/property/additional-properties/main.tsp +591 -0
  307. package/specs/type/property/additional-properties/mockapi.ts +477 -0
  308. package/specs/type/property/nullable/client.tsp +21 -0
  309. package/specs/type/property/nullable/main.tsp +162 -0
  310. package/specs/type/property/nullable/mockapi.ts +202 -0
  311. package/specs/type/property/optionality/main.tsp +258 -0
  312. package/specs/type/property/optionality/mockapi.ts +308 -0
  313. package/specs/type/property/value-types/main.tsp +285 -0
  314. package/specs/type/property/value-types/mockapi.ts +297 -0
  315. package/specs/type/scalar/main.tsp +164 -0
  316. package/specs/type/scalar/mockapi.ts +280 -0
  317. package/specs/type/union/main.tsp +262 -0
  318. package/specs/type/union/mockapi.ts +137 -0
  319. package/specs/versioning/added/main.tsp +135 -0
  320. package/specs/versioning/added/mockapi.ts +79 -0
  321. package/specs/versioning/madeOptional/main.tsp +64 -0
  322. package/specs/versioning/madeOptional/mockapi.ts +25 -0
  323. package/specs/versioning/removed/main.tsp +125 -0
  324. package/specs/versioning/removed/mockapi.ts +27 -0
  325. package/specs/versioning/renamedFrom/main.tsp +111 -0
  326. package/specs/versioning/renamedFrom/mockapi.ts +55 -0
  327. package/specs/versioning/returnTypeChangedFrom/main.tsp +56 -0
  328. package/specs/versioning/returnTypeChangedFrom/mockapi.ts +26 -0
  329. package/specs/versioning/typeChangedFrom/main.tsp +70 -0
  330. package/specs/versioning/typeChangedFrom/mockapi.ts +30 -0
  331. package/temp/.tsbuildinfo +1 -0
  332. package/tsconfig.build.json +9 -0
  333. package/tsconfig.json +11 -0
  334. package/tspconfig.yaml +2 -0
@@ -0,0 +1,29 @@
1
+ import { MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+ function createServerTests(uri: string) {
5
+ return passOnSuccess({
6
+ uri,
7
+ method: "put",
8
+ request: {
9
+ body: {
10
+ name: "foo",
11
+ },
12
+ },
13
+ response: {
14
+ status: 204,
15
+ },
16
+ handler: (req: MockRequest) => {
17
+ req.expect.bodyEquals({ name: "foo" });
18
+ return { status: 204 };
19
+ },
20
+ kind: "MockApiDefinition",
21
+ });
22
+ }
23
+
24
+ Scenarios.Parameters_Basic_ExplicitBody_simple = createServerTests(
25
+ "/parameters/basic/explicit-body/simple",
26
+ );
27
+ Scenarios.Parameters_Basic_ImplicitBody_simple = createServerTests(
28
+ "/parameters/basic/implicit-body/simple",
29
+ );
@@ -0,0 +1,63 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+ using Azure.ClientGenerator.Core;
6
+
7
+ @doc("Test describing optionality of the request body.")
8
+ @supportedBy("dpg")
9
+ @scenarioService("/parameters/body-optionality")
10
+ namespace Parameters.BodyOptionality;
11
+
12
+ model BodyModel {
13
+ name: string;
14
+ }
15
+
16
+ @scenario
17
+ @scenarioDoc("""
18
+ Scenario defining how an explicit required body parameter is specified.
19
+
20
+ Expected request body:
21
+ ```json
22
+ { "name": "foo" }
23
+ ```
24
+ """)
25
+ @route("/required-explicit")
26
+ @post
27
+ op requiredExplicit(@body body: BodyModel): NoContentResponse;
28
+
29
+ @scenario
30
+ @scenarioDoc("""
31
+ Scenario defining how an explicit optional body parameter is specified.
32
+
33
+ Expected request body for `set`
34
+ ```json
35
+ { "name": "foo" }
36
+ ```
37
+
38
+ Expected no request body for `omit`
39
+ """)
40
+ @operationGroup
41
+ @route("/optional-explicit")
42
+ namespace OptionalExplicit {
43
+ @route("/set")
44
+ @post
45
+ op set(@body body?: BodyModel): NoContentResponse;
46
+
47
+ @route("/omit")
48
+ @post
49
+ op omit(@body body?: BodyModel): NoContentResponse;
50
+ }
51
+
52
+ @scenario
53
+ @scenarioDoc("""
54
+ Scenario defining how an implicit required body parameter is specified.
55
+
56
+ Expected request body:
57
+ ```json
58
+ { "name": "foo" }
59
+ ```
60
+ """)
61
+ @route("/required-implicit")
62
+ @post
63
+ op requiredImplicit(...BodyModel): NoContentResponse;
@@ -0,0 +1,71 @@
1
+ import { MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+ function createServerTests(uri: string, data: any) {
5
+ return passOnSuccess({
6
+ uri,
7
+ method: "post",
8
+ request: {
9
+ body: data,
10
+ },
11
+ response: {
12
+ status: 204,
13
+ },
14
+ handler: (req: MockRequest) => {
15
+ req.expect.bodyEquals({ name: "foo" });
16
+ return { status: 204 };
17
+ },
18
+ kind: "MockApiDefinition",
19
+ });
20
+ }
21
+
22
+ Scenarios.Parameters_BodyOptionality_requiredExplicit = createServerTests(
23
+ "/parameters/body-optionality/required-explicit",
24
+ {
25
+ name: "foo",
26
+ },
27
+ );
28
+
29
+ Scenarios.Parameters_BodyOptionality_OptionalExplicit = passOnSuccess([
30
+ {
31
+ uri: "/parameters/body-optionality/optional-explicit/set",
32
+ method: "post",
33
+ request: {
34
+ body: {
35
+ name: "foo",
36
+ },
37
+ },
38
+ response: {
39
+ status: 204,
40
+ },
41
+ handler: (req: MockRequest) => {
42
+ req.expect.bodyEquals({ name: "foo" });
43
+ return { status: 204 };
44
+ },
45
+ kind: "MockApiDefinition",
46
+ },
47
+ {
48
+ uri: "/parameters/body-optionality/optional-explicit/omit",
49
+ method: "post",
50
+ request: {
51
+ body: {
52
+ name: "foo",
53
+ },
54
+ },
55
+ response: {
56
+ status: 204,
57
+ },
58
+ handler: (req: MockRequest) => {
59
+ req.expect.bodyEquals({ name: "foo" });
60
+ return { status: 204 };
61
+ },
62
+ kind: "MockApiDefinition",
63
+ },
64
+ ]);
65
+
66
+ Scenarios.Parameters_BodyOptionality_requiredImplicit = createServerTests(
67
+ "/parameters/body-optionality/required-implicit",
68
+ {
69
+ name: "foo",
70
+ },
71
+ );
@@ -0,0 +1,95 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+ using Azure.ClientGenerator.Core;
6
+
7
+ @doc("Test for collectionFormat.")
8
+ @supportedBy("dpg")
9
+ @scenarioService("/parameters/collection-format")
10
+ namespace Parameters.CollectionFormat;
11
+
12
+ @route("/query")
13
+ @operationGroup
14
+ namespace Query {
15
+ @scenario
16
+ @scenarioDoc("""
17
+ This test is testing sending a multi collection format array query parameters
18
+ """)
19
+ @route("/multi")
20
+ op multi(
21
+ @doc("Possible values for colors are [blue,red,green]")
22
+ @query(#{ explode: true })
23
+ colors: string[],
24
+ ): NoContentResponse;
25
+
26
+ @scenario
27
+ @scenarioDoc("""
28
+ This test is testing sending a ssv collection format array query parameters
29
+ """)
30
+ @route("/ssv")
31
+ op ssv(
32
+ #suppress "deprecated" "Deprecated in next release"
33
+ @doc("Possible values for colors are [blue,red,green]")
34
+ @query({
35
+ format: "ssv",
36
+ })
37
+ colors: string[],
38
+ ): NoContentResponse;
39
+
40
+ @scenario
41
+ @scenarioDoc("""
42
+ This test is testing sending a tsv collection format array query parameters
43
+ """)
44
+ @route("/tsv")
45
+ op tsv(
46
+ #suppress "deprecated" "Deprecated in next release"
47
+ @doc("Possible values for colors are [blue,red,green]")
48
+ @query({
49
+ format: "tsv",
50
+ })
51
+ colors: string[],
52
+ ): NoContentResponse;
53
+
54
+ @scenario
55
+ @scenarioDoc("""
56
+ This test is testing sending a pipes collection format array query parameters
57
+ """)
58
+ @route("/pipes")
59
+ op pipes(
60
+ #suppress "deprecated" "Deprecated in next release"
61
+ @doc("Possible values for colors are [blue,red,green]")
62
+ @query({
63
+ format: "pipes",
64
+ })
65
+ colors: string[],
66
+ ): NoContentResponse;
67
+
68
+ @scenario
69
+ @scenarioDoc("""
70
+ This test is testing sending a csv collection format array query parameters
71
+ """)
72
+ @route("/csv")
73
+ op csv(
74
+ @doc("Possible values for colors are [blue,red,green]")
75
+ @query
76
+ colors: string[],
77
+ ): NoContentResponse;
78
+ }
79
+
80
+ @route("/header")
81
+ @operationGroup
82
+ namespace Header {
83
+ @scenario
84
+ @scenarioDoc("""
85
+ This test is testing sending a csv collection format array header parameters
86
+ """)
87
+ @route("/csv")
88
+ op csv(
89
+ @doc("Possible values for colors are [blue,red,green]")
90
+ @header({
91
+ format: "csv",
92
+ })
93
+ colors: string[],
94
+ ): NoContentResponse;
95
+ }
@@ -0,0 +1,113 @@
1
+ import { MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ const colors = ["blue", "red", "green"];
6
+
7
+ Scenarios.Parameters_CollectionFormat_Query_multi = passOnSuccess({
8
+ uri: `/parameters/collection-format/query/multi`,
9
+ method: "get",
10
+ request: {
11
+ params: { colors: ["blue", "red", "green"] },
12
+ },
13
+ response: {
14
+ status: 204,
15
+ },
16
+ handler: (req: MockRequest) => {
17
+ req.expect.containsQueryParam("colors", ["blue", "red", "green"], "multi");
18
+ return {
19
+ status: 204,
20
+ };
21
+ },
22
+ kind: "MockApiDefinition",
23
+ });
24
+
25
+ Scenarios.Parameters_CollectionFormat_Query_csv = passOnSuccess({
26
+ uri: `/parameters/collection-format/query/csv`,
27
+ method: "get",
28
+ request: {
29
+ params: { colors: colors.join(",") },
30
+ },
31
+ response: {
32
+ status: 204,
33
+ },
34
+ handler: (req: MockRequest) => {
35
+ req.expect.containsQueryParam("colors", ["blue", "red", "green"], "csv");
36
+ return {
37
+ status: 204,
38
+ };
39
+ },
40
+ kind: "MockApiDefinition",
41
+ });
42
+
43
+ Scenarios.Parameters_CollectionFormat_Query_ssv = passOnSuccess({
44
+ uri: `/parameters/collection-format/query/ssv`,
45
+ method: "get",
46
+ request: {
47
+ params: { colors: colors.join(" ") },
48
+ },
49
+ response: {
50
+ status: 204,
51
+ },
52
+ handler: (req: MockRequest) => {
53
+ req.expect.containsQueryParam("colors", ["blue", "red", "green"], "ssv");
54
+ return {
55
+ status: 204,
56
+ };
57
+ },
58
+ kind: "MockApiDefinition",
59
+ });
60
+
61
+ Scenarios.Parameters_CollectionFormat_Query_tsv = passOnSuccess({
62
+ uri: `/parameters/collection-format/query/tsv`,
63
+ method: "get",
64
+ request: {
65
+ params: { colors: colors.join("\t") },
66
+ },
67
+ response: {
68
+ status: 204,
69
+ },
70
+ handler: (req: MockRequest) => {
71
+ req.expect.containsQueryParam("colors", ["blue", "red", "green"], "tsv");
72
+ return {
73
+ status: 204,
74
+ };
75
+ },
76
+ kind: "MockApiDefinition",
77
+ });
78
+
79
+ Scenarios.Parameters_CollectionFormat_Query_pipes = passOnSuccess({
80
+ uri: `/parameters/collection-format/query/pipes`,
81
+ method: "get",
82
+ request: {
83
+ params: { colors: colors.join("|") },
84
+ },
85
+ response: {
86
+ status: 204,
87
+ },
88
+ handler: (req: MockRequest) => {
89
+ req.expect.containsQueryParam("colors", ["blue", "red", "green"], "pipes");
90
+ return {
91
+ status: 204,
92
+ };
93
+ },
94
+ kind: "MockApiDefinition",
95
+ });
96
+
97
+ Scenarios.Parameters_CollectionFormat_Header_csv = passOnSuccess({
98
+ uri: `/parameters/collection-format/header/csv`,
99
+ method: "get",
100
+ request: {
101
+ headers: { colors: colors.join(",") },
102
+ },
103
+ response: {
104
+ status: 204,
105
+ },
106
+ handler: (req: MockRequest) => {
107
+ req.expect.containsHeader("colors", "blue,red,green");
108
+ return {
109
+ status: 204,
110
+ };
111
+ },
112
+ kind: "MockApiDefinition",
113
+ });
@@ -0,0 +1,340 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+ using Azure.ClientGenerator.Core;
6
+
7
+ @doc("Test for the spread operator.")
8
+ @supportedBy("dpg")
9
+ @scenarioService("/parameters/spread")
10
+ namespace Parameters.Spread;
11
+
12
+ @route("/model")
13
+ @operationGroup
14
+ namespace Model {
15
+ @doc("This is a simple model.")
16
+ model BodyParameter {
17
+ name: string;
18
+ }
19
+
20
+ @scenario
21
+ @scenarioDoc("""
22
+ Test case for spread named model.
23
+
24
+ Should not generate request body model named `BodyParameter`.
25
+ Should generate an operation like below:
26
+ ```
27
+ spreadAsRequestBody(name: string)
28
+ ```
29
+ Note the parameter name is guessed from the model name and it may vary by language.
30
+
31
+ Expected request body:
32
+ ```json
33
+ { "name": "foo" }
34
+ ```
35
+ """)
36
+ @route("/request-body")
37
+ @put
38
+ op spreadAsRequestBody(...BodyParameter): NoContentResponse;
39
+
40
+ @doc("This is a model only with `@body` property.")
41
+ model CompositeRequestOnlyWithBody {
42
+ @body body: BodyParameter;
43
+ }
44
+
45
+ @scenario
46
+ @scenarioDoc("""
47
+ Test case for spread model only with `@body` property.
48
+
49
+ Should generate request body model named `BodyParameter`.
50
+ Should not generate model named `CompositeRequestOnlyWithBody`.
51
+ Should generate an operation like below:
52
+ ```
53
+ spreadCompositeRequestOnlyWithBody(bodyParameter: BodyParameter)
54
+ ```
55
+ Note the parameter name is guessed from the model name and it may vary by language.
56
+
57
+ Expected request body:
58
+ ```json
59
+ { "name": "foo" }
60
+ ```
61
+ """)
62
+ @route("/composite-request-only-with-body")
63
+ @put
64
+ op spreadCompositeRequestOnlyWithBody(...CompositeRequestOnlyWithBody): NoContentResponse;
65
+
66
+ @doc("This is a model without `@body` property.")
67
+ model CompositeRequestWithoutBody {
68
+ @path
69
+ name: string;
70
+
71
+ @header
72
+ testHeader: string;
73
+ }
74
+
75
+ @scenario
76
+ @scenarioDoc("""
77
+ Test case for spread model without `@body` property.
78
+
79
+ Should not generate model named `CompositeRequestOnlyWithBody`.
80
+ Should generate an operation like below:
81
+ ```
82
+ spreadCompositeRequestWithoutBody(name: string, testHeader: string)
83
+ ```
84
+
85
+ Expected path parameter: name="foo"
86
+ Expected header parameter: testHeader="bar"
87
+ """)
88
+ @route("/composite-request-without-body/{name}")
89
+ @put
90
+ op spreadCompositeRequestWithoutBody(...CompositeRequestWithoutBody): NoContentResponse;
91
+
92
+ @doc("This is a model with all http request decorator.")
93
+ model CompositeRequest {
94
+ @path
95
+ name: string;
96
+
97
+ @header
98
+ testHeader: string;
99
+
100
+ @body
101
+ body: BodyParameter;
102
+ }
103
+
104
+ @scenario
105
+ @scenarioDoc("""
106
+ Test case for spread model with all http request decorator.
107
+
108
+ Should generate request body model named `BodyParameter`.
109
+ Should not generate model named `CompositeRequest`.
110
+ Should generate an operation like below:
111
+ ```
112
+ spreadCompositeRequest(name: string, testHeader: string, bodyParameter: BodyParameter)
113
+ ```
114
+ Note the parameter name is guessed from the model name and it may vary by language.
115
+
116
+ Expected path parameter: name="foo"
117
+ Expected header parameter: testHeader="bar"
118
+ Expected request body:
119
+ ```json
120
+ { "name": "foo" }
121
+ ```
122
+ """)
123
+ @route("/composite-request/{name}")
124
+ @put
125
+ op spreadCompositeRequest(...CompositeRequest): NoContentResponse;
126
+
127
+ @doc("This is a model with non-body http request decorator.")
128
+ model CompositeRequestMix {
129
+ @path
130
+ name: string;
131
+
132
+ @header
133
+ testHeader: string;
134
+
135
+ prop: string;
136
+ }
137
+
138
+ @scenario
139
+ @scenarioDoc("""
140
+ Test case for spread model with non-body http request decorator.
141
+
142
+ Should not generate model named `CompositeRequestMix`.
143
+ Should generate an operation like below:
144
+ ```
145
+ spreadCompositeRequestMix(name: string, testHeader: string, prop: string)
146
+ ```
147
+ Note the parameter name is guessed from the model name and it may vary by language.
148
+
149
+ Expected path parameter: name="foo"
150
+ Expected header parameter: testHeader="bar"
151
+ Expected request body:
152
+ ```json
153
+ { "prop": "foo" }
154
+ ```
155
+ """)
156
+ @route("/composite-request-mix/{name}")
157
+ @put
158
+ op spreadCompositeRequestMix(...CompositeRequestMix): NoContentResponse;
159
+ }
160
+
161
+ @route("/alias")
162
+ @operationGroup
163
+ namespace Alias {
164
+ alias BodyParameter = {
165
+ name: string;
166
+ };
167
+
168
+ @scenario
169
+ @scenarioDoc("""
170
+ Test case for spread alias.
171
+
172
+ Should not generate any model named `BodyParameter`.
173
+ Should generate an operation like:
174
+ ```
175
+ spreadAsRequestBody(name: string)
176
+ ```
177
+
178
+ Expected request body:
179
+ ```json
180
+ { "name": "foo" }
181
+ ```
182
+ """)
183
+ @route("/request-body")
184
+ @put
185
+ op spreadAsRequestBody(...BodyParameter): NoContentResponse;
186
+
187
+ model InnerModel {
188
+ name: string;
189
+ }
190
+
191
+ alias InnerModelParameter = {
192
+ @path
193
+ id: string;
194
+
195
+ ...InnerModel;
196
+
197
+ @header
198
+ `x-ms-test-header`: string;
199
+ };
200
+
201
+ @scenario
202
+ @scenarioDoc("""
203
+ Test case for spread alias.
204
+
205
+ Should not generate any model named `InnerModel`.
206
+ Should not generate any model named `InnerModelParameter`.
207
+ Should generate an operation like:
208
+ ```
209
+ spreadParameterWithInnerModel(id: string, x_ms_test_header: string, name: string)
210
+ ```
211
+ Note the parameter name is guessed from the model name and it may vary by language.
212
+
213
+ Expected path parameter: id="1"
214
+ Expected header parameter: x-ms-test-header="bar"
215
+ Expected request body:
216
+ ```json
217
+ { "name": "foo" }
218
+ ```
219
+ """)
220
+ @route("/inner-model-parameter/{id}")
221
+ @post
222
+ op spreadParameterWithInnerModel(...InnerModelParameter): NoContentResponse;
223
+
224
+ alias RequestParameter = {
225
+ @path
226
+ id: string;
227
+
228
+ @header
229
+ `x-ms-test-header`: string;
230
+
231
+ name: string;
232
+ };
233
+
234
+ @scenario
235
+ @scenarioDoc("""
236
+ Test case for spread alias with path and header parameter.
237
+
238
+ Should not generate any model named `RequestParameter`.
239
+ Should generate an operation like below:
240
+ ```
241
+ spreadAsRequestParameter(id: string, x_ms_test_header: string, name: string)
242
+ ```
243
+ Note the parameter name may be normalized and vary by language.
244
+
245
+ Expected path parameter: id="1"
246
+ Expected header parameter: x-ms-test-header="bar"
247
+ Expected request body:
248
+ ```json
249
+ { "name": "foo" }
250
+ ```
251
+ """)
252
+ @route("/request-parameter/{id}")
253
+ @put
254
+ op spreadAsRequestParameter(...RequestParameter): NoContentResponse;
255
+
256
+ alias MultipleRequestParameters = {
257
+ @path
258
+ id: string;
259
+
260
+ @header
261
+ `x-ms-test-header`: string;
262
+
263
+ /** required string */
264
+ requiredString: string;
265
+
266
+ /** optional int */
267
+ optionalInt?: int32;
268
+
269
+ /** required int */
270
+ requiredIntList: int32[];
271
+
272
+ /** optional string */
273
+ optionalStringList?: string[];
274
+ };
275
+
276
+ @scenario
277
+ @scenarioDoc("""
278
+ Test case for spread alias including 6 parameters. May handle as property bag for these parameters.
279
+
280
+ Should not generate any model named `MultipleRequestParameters`.
281
+ Since it contains both optional properties and required properties, the method signature might vary across different languages.
282
+ Note it's also acceptable if some languages handle it as property bag.
283
+
284
+ Expected path parameter: id="1"
285
+ Expected header parameter: x-ms-test-header="bar"
286
+ Expected request body:
287
+ ```json
288
+ {
289
+ "requiredString": "foo",
290
+ "optionalInt": 1,
291
+ "requiredIntList": [1, 2],
292
+ "optionalStringList": ["foo", "bar"]
293
+ }
294
+ ```
295
+ """)
296
+ @route("/multiple-parameters/{id}")
297
+ @put
298
+ op spreadWithMultipleParameters(...MultipleRequestParameters): NoContentResponse;
299
+
300
+ alias InnerAlias = {
301
+ @doc("name of the Thing")
302
+ name: string;
303
+
304
+ @doc("age of the Thing")
305
+ age: int32;
306
+ };
307
+
308
+ alias InnerAliasParameter = {
309
+ @path id: string;
310
+ ...InnerAlias;
311
+
312
+ @header
313
+ `x-ms-test-header`: string;
314
+ };
315
+
316
+ @scenario
317
+ @scenarioDoc("""
318
+ Test case for spread alias with contains another alias property as body.
319
+
320
+ Should not generate any model named `InnerAlias` and `InnerAliasParameter`.
321
+ Should generate an operation like below:
322
+ ```
323
+ spreadParameterWithInnerAlias(id: string, name: string, age: int32, x_ms_test_header: string)
324
+ ```
325
+ Note the parameter name is guessed from the model name and it may vary by language.
326
+ Expected path parameter: id="1"
327
+ Expected header parameter: x-ms-test-header="bar"
328
+ Expected request body:
329
+ ```json
330
+ {
331
+ "name": "foo",
332
+ "age": 1
333
+ }
334
+ ```
335
+ """)
336
+ @route("/inner-alias-parameter")
337
+ @doc("spread an alias with contains another alias property as body.")
338
+ @post
339
+ op spreadParameterWithInnerAlias(...InnerAliasParameter): NoContentResponse;
340
+ }