@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,55 @@
1
+ import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ Scenarios.Type_Enum_Fixed_String_getKnownValue = passOnSuccess({
6
+ uri: "/type/enum/fixed/string/known-value",
7
+ method: "get",
8
+ request: {},
9
+ response: {
10
+ status: 200,
11
+ body: json("Monday"),
12
+ },
13
+ handler: (req: MockRequest) => {
14
+ return { status: 200, body: json("Monday") };
15
+ },
16
+ kind: "MockApiDefinition",
17
+ });
18
+ Scenarios.Type_Enum_Fixed_String_putKnownValue = passOnSuccess({
19
+ uri: "/type/enum/fixed/string/known-value",
20
+ method: "put",
21
+ request: {
22
+ body: "Monday",
23
+ headers: {
24
+ "Content-Type": "application/json",
25
+ },
26
+ },
27
+ response: {
28
+ status: 204,
29
+ },
30
+ handler: (req: MockRequest) => {
31
+ req.expect.bodyEquals("Monday");
32
+ return { status: 204 };
33
+ },
34
+ kind: "MockApiDefinition",
35
+ });
36
+
37
+ Scenarios.Type_Enum_Fixed_String_putUnknownValue = passOnSuccess({
38
+ uri: "/type/enum/fixed/string/unknown-value",
39
+ method: "put",
40
+ request: {
41
+ body: "Weekend",
42
+ headers: {
43
+ "Content-Type": "application/json",
44
+ },
45
+ status: 500,
46
+ },
47
+ response: {
48
+ status: 500,
49
+ },
50
+ handler: (req: MockRequest) => {
51
+ req.expect.bodyEquals("Weekend");
52
+ return { status: 500 };
53
+ },
54
+ kind: "MockApiDefinition",
55
+ });
@@ -0,0 +1,39 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+
6
+ @doc("Illustrates usage of empty model used in operation's parameters and responses.")
7
+ @scenarioService("/type/model/empty")
8
+ namespace Type.Model.Empty;
9
+
10
+ @doc("Empty model used in operation parameters")
11
+ model EmptyInput {}
12
+
13
+ @doc("Empty model used in operation return type")
14
+ model EmptyOutput {}
15
+
16
+ @doc("Empty model used in both parameter and return type")
17
+ model EmptyInputOutput {}
18
+
19
+ @scenario
20
+ @scenarioDoc("Send a PUT request with the following body {}")
21
+ @route("/alone")
22
+ @put
23
+ op putEmpty(@body input: EmptyInput): void;
24
+
25
+ @scenario
26
+ @scenarioDoc("Send a GET request which returns the following body {}")
27
+ @route("/alone")
28
+ @get
29
+ op getEmpty(): {
30
+ @body body: EmptyOutput;
31
+ };
32
+
33
+ @scenario
34
+ @scenarioDoc("Send a POST request with the following body {} which returns the same.")
35
+ @route("/round-trip")
36
+ @post
37
+ op postRoundTripEmpty(@body body: EmptyInputOutput): {
38
+ @body body: EmptyInputOutput;
39
+ };
@@ -0,0 +1,51 @@
1
+ import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ const body = {};
6
+
7
+ Scenarios.Type_Model_Empty_putEmpty = passOnSuccess({
8
+ uri: "/type/model/empty/alone",
9
+ method: "put",
10
+ request: {
11
+ body: body,
12
+ },
13
+ response: {
14
+ status: 204,
15
+ },
16
+ handler: (req: MockRequest) => {
17
+ req.expect.bodyEquals(body);
18
+ return { status: 204 };
19
+ },
20
+ kind: "MockApiDefinition",
21
+ });
22
+ Scenarios.Type_Model_Empty_getEmpty = passOnSuccess({
23
+ uri: "/type/model/empty/alone",
24
+ method: "get",
25
+ request: {},
26
+ response: {
27
+ status: 200,
28
+ body: json(body),
29
+ },
30
+ handler: (req: MockRequest) => {
31
+ return { status: 200, body: json(body) };
32
+ },
33
+ kind: "MockApiDefinition",
34
+ });
35
+
36
+ Scenarios.Type_Model_Empty_postRoundTripEmpty = passOnSuccess({
37
+ uri: "/type/model/empty/round-trip",
38
+ method: "post",
39
+ request: {
40
+ body: body,
41
+ },
42
+ response: {
43
+ status: 200,
44
+ body: json(body),
45
+ },
46
+ handler: (req: MockRequest) => {
47
+ req.expect.bodyEquals(body);
48
+ return { status: 200, body: json(body) };
49
+ },
50
+ kind: "MockApiDefinition",
51
+ });
@@ -0,0 +1,169 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+ using Azure.Core;
6
+
7
+ @doc("Illustrates inheritance with enum discriminator.")
8
+ @scenarioService("/type/model/inheritance/enum-discriminator")
9
+ namespace Type.Model.Inheritance.EnumDiscriminator;
10
+
11
+ @doc("extensible enum type for discriminator")
12
+ union DogKind {
13
+ string,
14
+
15
+ @doc("Species golden")
16
+ Golden: "golden",
17
+ }
18
+
19
+ @doc("Test extensible enum type for discriminator")
20
+ @discriminator("kind")
21
+ model Dog {
22
+ @doc("discriminator property")
23
+ kind: DogKind;
24
+
25
+ @doc("Weight of the dog")
26
+ weight: int32;
27
+ }
28
+
29
+ @doc("Golden dog model")
30
+ model Golden extends Dog {
31
+ @doc("discriminator property")
32
+ kind: DogKind.Golden;
33
+ }
34
+
35
+ #suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "For testing fixed enum as discriminator property"
36
+ @doc("fixed enum type for discriminator")
37
+ enum SnakeKind {
38
+ @doc("Species cobra")
39
+ Cobra: "cobra",
40
+ }
41
+
42
+ #suppress "@azure-tools/typespec-azure-core/no-fixed-enum-discriminator" "For testing fixed enum as discriminator property"
43
+ @doc("Test fixed enum type for discriminator")
44
+ @discriminator("kind")
45
+ model Snake {
46
+ @doc("discriminator property")
47
+ kind: SnakeKind;
48
+
49
+ @doc("Length of the snake")
50
+ length: int32;
51
+ }
52
+
53
+ @doc("Cobra model")
54
+ model Cobra extends Snake {
55
+ @doc("discriminator property")
56
+ kind: SnakeKind.Cobra;
57
+ }
58
+
59
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
60
+ @doc("Receive model with extensible enum discriminator type.")
61
+ @scenario
62
+ @scenarioDoc("""
63
+ Receive model with extensible enum discriminator type.
64
+ Expected response body:
65
+ ```json
66
+ {"kind": "golden", "weight": 10}
67
+ ```
68
+ """)
69
+ @route("/extensible-enum")
70
+ @get
71
+ op getExtensibleModel(): Dog;
72
+
73
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
74
+ @doc("Send model with extensible enum discriminator type.")
75
+ @scenario
76
+ @scenarioDoc("""
77
+ Send model with extensible enum discriminator type.
78
+ Expected request body:
79
+ ```json
80
+ {"kind": "golden", "weight": 10}
81
+ ```
82
+ """)
83
+ @route("/extensible-enum")
84
+ @put
85
+ op putExtensibleModel(@body @doc("Dog to create") input: Dog): NoContentResponse;
86
+
87
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
88
+ @doc("Get a model omitting the discriminator.")
89
+ @scenario
90
+ @route("/extensible-enum/missingdiscriminator")
91
+ @scenarioDoc("""
92
+ Get a model omitting the discriminator.
93
+ Expected response body:
94
+ ```json
95
+ {"weight": 10}
96
+ ```
97
+ """)
98
+ @get
99
+ op getExtensibleModelMissingDiscriminator(): Dog;
100
+
101
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
102
+ @doc("Get a model containing discriminator value never defined.")
103
+ @scenario
104
+ @route("/extensible-enum/wrongdiscriminator")
105
+ @scenarioDoc("""
106
+ Get a model containing discriminator value never defined.
107
+ Expected response body:
108
+ ```json
109
+ {"weight": 8, "kind": "wrongKind" }
110
+ ```
111
+ """)
112
+ @get
113
+ op getExtensibleModelWrongDiscriminator(): Dog;
114
+
115
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
116
+ @doc("Receive model with fixed enum discriminator type.")
117
+ @scenario
118
+ @scenarioDoc("""
119
+ Receive model with fixed enum discriminator type.
120
+ Expected response body:
121
+ ```json
122
+ {"kind": "cobra", "length": 10}
123
+ ```
124
+ """)
125
+ @route("/fixed-enum")
126
+ @get
127
+ op getFixedModel(): Snake;
128
+
129
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
130
+ @doc("Send model with fixed enum discriminator type.")
131
+ @scenario
132
+ @scenarioDoc("""
133
+ Send model with fixed enum discriminator type.
134
+ Expected request body:
135
+ ```json
136
+ {"kind": "cobra", "length": 10}
137
+ ```
138
+ """)
139
+ @route("/fixed-enum")
140
+ @put
141
+ op putFixedModel(@body @doc("Snake to create") input: Snake): NoContentResponse;
142
+
143
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
144
+ @doc("Get a model omitting the discriminator.")
145
+ @scenario
146
+ @route("/fixed-enum/missingdiscriminator")
147
+ @scenarioDoc("""
148
+ Get a model omitting the discriminator.
149
+ Expected response body:
150
+ ```json
151
+ {"length": 10}
152
+ ```
153
+ """)
154
+ @get
155
+ op getFixedModelMissingDiscriminator(): Snake;
156
+
157
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing enum as discriminator property"
158
+ @doc("Get a model containing discriminator value never defined.")
159
+ @scenario
160
+ @route("/fixed-enum/wrongdiscriminator")
161
+ @scenarioDoc("""
162
+ Get a model containing discriminator value never defined.
163
+ Expected response body:
164
+ ```json
165
+ {"length": 8, "kind": "wrongKind" }
166
+ ```
167
+ """)
168
+ @get
169
+ op getFixedModelWrongDiscriminator(): Snake;
@@ -0,0 +1,99 @@
1
+ import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ const validExtensibleEnumBody = {
6
+ weight: 10,
7
+ kind: "golden",
8
+ };
9
+ const validFixedEnumBody = {
10
+ length: 10,
11
+ kind: "cobra",
12
+ };
13
+ function createGetServerTests(uri: string, data: any) {
14
+ return passOnSuccess({
15
+ uri: uri,
16
+ method: "get",
17
+ request: {},
18
+ response: {
19
+ status: 200,
20
+ body: json(data),
21
+ },
22
+ handler: (req: MockRequest) => {
23
+ return { status: 200, body: json(data) };
24
+ },
25
+ kind: "MockApiDefinition",
26
+ });
27
+ }
28
+
29
+ function createGetPutServerTests(uri: string, data: any) {
30
+ return {
31
+ get: passOnSuccess({
32
+ uri: uri,
33
+ method: "get",
34
+ request: {},
35
+ response: {
36
+ status: 200,
37
+ body: json(data),
38
+ },
39
+ handler: (req: MockRequest) => {
40
+ return { status: 200, body: json(data) };
41
+ },
42
+ kind: "MockApiDefinition",
43
+ }),
44
+ put: passOnSuccess({
45
+ uri: uri,
46
+ method: "put",
47
+ request: {
48
+ body: data,
49
+ },
50
+ response: {
51
+ status: 204,
52
+ },
53
+ handler: (req: MockRequest) => {
54
+ req.expect.bodyEquals(data);
55
+ return { status: 204 };
56
+ },
57
+ kind: "MockApiDefinition",
58
+ }),
59
+ };
60
+ }
61
+
62
+ const Type_Model_Inheritance_Enum_Discriminator_Extensible_Enum = createGetPutServerTests(
63
+ "/type/model/inheritance/enum-discriminator/extensible-enum",
64
+ validExtensibleEnumBody,
65
+ );
66
+ Scenarios.Type_Model_Inheritance_EnumDiscriminator_getExtensibleModel =
67
+ Type_Model_Inheritance_Enum_Discriminator_Extensible_Enum.get;
68
+ Scenarios.Type_Model_Inheritance_EnumDiscriminator_putExtensibleModel =
69
+ Type_Model_Inheritance_Enum_Discriminator_Extensible_Enum.put;
70
+
71
+ const Type_Model_Inheritance_Enum_Discriminator_Fixed_Enum = createGetPutServerTests(
72
+ "/type/model/inheritance/enum-discriminator/fixed-enum",
73
+ validFixedEnumBody,
74
+ );
75
+ Scenarios.Type_Model_Inheritance_EnumDiscriminator_getFixedModel =
76
+ Type_Model_Inheritance_Enum_Discriminator_Fixed_Enum.get;
77
+ Scenarios.Type_Model_Inheritance_EnumDiscriminator_putFixedModel =
78
+ Type_Model_Inheritance_Enum_Discriminator_Fixed_Enum.put;
79
+
80
+ Scenarios.Type_Model_Inheritance_EnumDiscriminator_getExtensibleModelMissingDiscriminator =
81
+ createGetServerTests(
82
+ "/type/model/inheritance/enum-discriminator/extensible-enum/missingdiscriminator",
83
+ { weight: 10 },
84
+ );
85
+ Scenarios.Type_Model_Inheritance_EnumDiscriminator_getExtensibleModelWrongDiscriminator =
86
+ createGetServerTests(
87
+ "/type/model/inheritance/enum-discriminator/extensible-enum/wrongdiscriminator",
88
+ { weight: 8, kind: "wrongKind" },
89
+ );
90
+ Scenarios.Type_Model_Inheritance_EnumDiscriminator_getFixedModelMissingDiscriminator =
91
+ createGetServerTests(
92
+ "/type/model/inheritance/enum-discriminator/fixed-enum/missingdiscriminator",
93
+ { length: 10 },
94
+ );
95
+ Scenarios.Type_Model_Inheritance_EnumDiscriminator_getFixedModelWrongDiscriminator =
96
+ createGetServerTests("/type/model/inheritance/enum-discriminator/fixed-enum/wrongdiscriminator", {
97
+ length: 8,
98
+ kind: "wrongKind",
99
+ });
@@ -0,0 +1,223 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+
6
+ @doc("Illustrates multiple level inheritance with multiple discriminators.")
7
+ @scenarioService("/type/model/inheritance/nested-discriminator")
8
+ namespace Type.Model.Inheritance.NestedDiscriminator;
9
+
10
+ @doc("This is base model for polymorphic multiple levels inheritance with a discriminator.")
11
+ @discriminator("kind")
12
+ model Fish {
13
+ age: int32;
14
+ }
15
+
16
+ @doc("The second level model in polymorphic multiple levels inheritance and it defines a new discriminator.")
17
+ @discriminator("sharktype")
18
+ model Shark extends Fish {
19
+ kind: "shark";
20
+ sharktype: string;
21
+ }
22
+
23
+ @doc("The second level model in polymorphic multiple levels inheritance which contains references to other polymorphic instances.")
24
+ model Salmon extends Fish {
25
+ kind: "salmon";
26
+ friends?: Fish[];
27
+ hate?: Record<Fish>;
28
+ partner?: Fish;
29
+ }
30
+
31
+ @doc("The third level model SawShark in polymorphic multiple levels inheritance.")
32
+ model SawShark extends Shark {
33
+ sharktype: "saw";
34
+ }
35
+
36
+ @doc("The third level model GoblinShark in polymorphic multiple levels inheritance.")
37
+ model GoblinShark extends Shark {
38
+ sharktype: "goblin";
39
+ }
40
+
41
+ @scenario
42
+ @route("/model")
43
+ @scenarioDoc("""
44
+ Generate and receive polymorphic model in multiple levels inheritance with 2 discriminators.
45
+ Expected response body:
46
+ ```json
47
+ {"age": 1, "kind": "shark", "sharktype": "goblin"}
48
+ ```
49
+ """)
50
+ @get
51
+ op getModel(): Fish;
52
+
53
+ @scenario
54
+ @route("/model")
55
+ @scenarioDoc("""
56
+ Generate and send polymorphic model in multiple levels inheritance with 2 discriminators.
57
+ Expected input body:
58
+ ```json
59
+ {"age": 1, "kind": "shark", "sharktype": "goblin"}
60
+ ```
61
+ """)
62
+ @put
63
+ op putModel(@body input: Fish): NoContentResponse;
64
+
65
+ @scenario
66
+ @route("/recursivemodel")
67
+ @scenarioDoc("""
68
+ Generate and receive polymorphic models has collection and dictionary properties referring to other polymorphic models.
69
+ Expected response body:
70
+ ```json
71
+ {
72
+ "age": 1,
73
+ "kind": "salmon",
74
+ "partner": {
75
+ "age": 2,
76
+ "kind": "shark",
77
+ "sharktype": "saw"
78
+ },
79
+ "friends": [
80
+ {
81
+ "age": 2,
82
+ "kind": "salmon",
83
+ "partner": {
84
+ "age": 3,
85
+ "kind": "salmon"
86
+ },
87
+ "hate": {
88
+ "key1": {
89
+ "age": 4,
90
+ "kind": "salmon"
91
+ },
92
+ "key2": {
93
+ "age": 2,
94
+ "kind": "shark",
95
+ "sharktype": "goblin"
96
+ }
97
+ }
98
+ },
99
+ {
100
+ "age": 3,
101
+ "kind": "shark",
102
+ "sharktype": "goblin"
103
+ }
104
+ ],
105
+ "hate": {
106
+ "key3": {
107
+ "age": 3,
108
+ "kind": "shark",
109
+ "sharktype": "saw"
110
+ },
111
+ "key4": {
112
+ "age": 2,
113
+ "kind": "salmon",
114
+ "friends": [
115
+ {
116
+ "age": 1,
117
+ "kind": "salmon"
118
+ },
119
+ {
120
+ "age": 4,
121
+ "kind": "shark",
122
+ "sharktype": "goblin"
123
+ }
124
+ ]
125
+ }
126
+ }
127
+ }
128
+ ```
129
+ """)
130
+ @get
131
+ op getRecursiveModel(): Fish;
132
+
133
+ @scenario
134
+ @route("/recursivemodel")
135
+ @scenarioDoc("""
136
+ Generate and send polymorphic models has collection and dictionary properties referring to other polymorphic models.
137
+ Expected input body:
138
+ ```json
139
+ {
140
+ "age": 1,
141
+ "kind": "salmon",
142
+ "partner": {
143
+ "age": 2,
144
+ "kind": "shark",
145
+ "sharktype": "saw"
146
+ },
147
+ "friends": [
148
+ {
149
+ "age": 2,
150
+ "kind": "salmon",
151
+ "partner": {
152
+ "age": 3,
153
+ "kind": "salmon"
154
+ },
155
+ "hate": {
156
+ "key1": {
157
+ "age": 4,
158
+ "kind": "salmon"
159
+ },
160
+ "key2": {
161
+ "age": 2,
162
+ "kind": "shark",
163
+ "sharktype": "goblin"
164
+ }
165
+ }
166
+ },
167
+ {
168
+ "age": 3,
169
+ "kind": "shark",
170
+ "sharktype": "goblin"
171
+ }
172
+ ],
173
+ "hate": {
174
+ "key3": {
175
+ "age": 3,
176
+ "kind": "shark",
177
+ "sharktype": "saw"
178
+ },
179
+ "key4": {
180
+ "age": 2,
181
+ "kind": "salmon",
182
+ "friends": [
183
+ {
184
+ "age": 1,
185
+ "kind": "salmon"
186
+ },
187
+ {
188
+ "age": 4,
189
+ "kind": "shark",
190
+ "sharktype": "goblin"
191
+ }
192
+ ]
193
+ }
194
+ }
195
+ }
196
+ ```
197
+ """)
198
+ @put
199
+ op putRecursiveModel(@body input: Fish): NoContentResponse;
200
+
201
+ @scenario
202
+ @route("/missingdiscriminator")
203
+ @scenarioDoc("""
204
+ Get a model omitting the discriminator.
205
+ Expected response body:
206
+ ```json
207
+ {"age": 1}
208
+ ```
209
+ """)
210
+ @get
211
+ op getMissingDiscriminator(): Fish;
212
+
213
+ @scenario
214
+ @route("/wrongdiscriminator")
215
+ @scenarioDoc("""
216
+ Get a model containing discriminator value never defined.
217
+ Expected response body:
218
+ ```json
219
+ {"age": 1, "kind": "wrongKind" }
220
+ ```
221
+ """)
222
+ @get
223
+ op getWrongDiscriminator(): Fish;