@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,369 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+ using Azure.ClientGenerator.Core;
6
+
7
+ @doc("Test for encode decorator on bytes.")
8
+ @supportedBy("dpg")
9
+ @scenarioService("/encode/bytes")
10
+ namespace Encode.Bytes;
11
+
12
+ @encode(BytesKnownEncoding.base64url)
13
+ scalar base64urlBytes extends bytes;
14
+
15
+ @operationGroup
16
+ @route("/query")
17
+ namespace Query {
18
+ @route("/default")
19
+ @scenario
20
+ @scenarioDoc("""
21
+ Test default encode (base64) for bytes query parameter.
22
+ Expected query parameter:
23
+ value=dGVzdA== (base64 encode of test)
24
+ """)
25
+ op default(
26
+ @query
27
+ value: bytes,
28
+ ): NoContentResponse;
29
+
30
+ @route("/base64")
31
+ @scenario
32
+ @scenarioDoc("""
33
+ Test base64 encode for bytes query parameter.
34
+ Expected query parameter:
35
+ value=dGVzdA== (base64 encode of test)
36
+ """)
37
+ op base64(
38
+ @query
39
+ @encode(BytesKnownEncoding.base64)
40
+ value: bytes,
41
+ ): NoContentResponse;
42
+
43
+ @route("/base64url")
44
+ @scenario
45
+ @scenarioDoc("""
46
+ Test base64url encode for bytes query parameter.
47
+ Expected query parameter:
48
+ value=dGVzdA (base64url encode of test)
49
+ """)
50
+ op base64url(
51
+ @query
52
+ @encode(BytesKnownEncoding.base64url)
53
+ value: bytes,
54
+ ): NoContentResponse;
55
+
56
+ @route("/base64url-array")
57
+ @scenario
58
+ @scenarioDoc("""
59
+ Test base64url encode for bytes array query parameter.
60
+ Expected query parameter:
61
+ value=dGVzdA, dGVzdA
62
+ """)
63
+ op base64urlArray(
64
+ #suppress "deprecated" "Deprecated in next release"
65
+ @query({
66
+ format: "csv",
67
+ })
68
+ value: base64urlBytes[],
69
+ ): NoContentResponse;
70
+ }
71
+
72
+ model DefaultBytesProperty {
73
+ value: bytes;
74
+ }
75
+
76
+ model Base64BytesProperty {
77
+ @encode(BytesKnownEncoding.base64)
78
+ value: bytes;
79
+ }
80
+
81
+ model Base64urlBytesProperty {
82
+ @encode(BytesKnownEncoding.base64url)
83
+ value: bytes;
84
+ }
85
+
86
+ model Base64urlArrayBytesProperty {
87
+ value: base64urlBytes[];
88
+ }
89
+
90
+ @operationGroup
91
+ @route("/property")
92
+ namespace Property {
93
+ @route("/default")
94
+ @scenario
95
+ @scenarioDoc("""
96
+ Test operation with request and response model contains bytes properties with default encode (base64).
97
+ Expected request body:
98
+ ```json
99
+ {
100
+ "value": "dGVzdA==" // base64 encode of test
101
+ }
102
+ ```
103
+ Expected response body:
104
+ ```json
105
+ {
106
+ "value": "dGVzdA=="
107
+ }
108
+ ```
109
+ """)
110
+ @post
111
+ op default(@body body: DefaultBytesProperty): DefaultBytesProperty;
112
+
113
+ @route("/base64")
114
+ @scenario
115
+ @scenarioDoc("""
116
+ Test operation with request and response model contains bytes properties with base64 encode.
117
+ Expected request body:
118
+ ```json
119
+ {
120
+ "value": "dGVzdA==" // base64 encode of test
121
+ }
122
+ ```
123
+ Expected response body:
124
+ ```json
125
+ {
126
+ "value": "dGVzdA=="
127
+ }
128
+ ```
129
+ """)
130
+ @post
131
+ op base64(@body body: Base64BytesProperty): Base64BytesProperty;
132
+
133
+ @route("/base64url")
134
+ @scenario
135
+ @scenarioDoc("""
136
+ Test operation with request and response model contains bytes properties with base64url encode.
137
+ Expected request body:
138
+ ```json
139
+ {
140
+ "value": "dGVzdA" // base64url encode of test
141
+ }
142
+ ```
143
+ Expected response body:
144
+ ```json
145
+ {
146
+ "value": "dGVzdA"
147
+ }
148
+ ```
149
+ """)
150
+ @post
151
+ op base64url(@body body: Base64urlBytesProperty): Base64urlBytesProperty;
152
+
153
+ @route("/base64url-array")
154
+ @scenario
155
+ @scenarioDoc("""
156
+ Test operation with request and response model contains bytes array properties with base64url encode.
157
+ Expected request body:
158
+ ```json
159
+ {
160
+ "value": ["dGVzdA", "dGVzdA"]
161
+ }
162
+ ```
163
+ Expected response body:
164
+ ```json
165
+ {
166
+ "value": ["dGVzdA", "dGVzdA"]
167
+ }
168
+ ```
169
+ """)
170
+ @post
171
+ op base64urlArray(@body body: Base64urlArrayBytesProperty): Base64urlArrayBytesProperty;
172
+ }
173
+
174
+ @operationGroup
175
+ @route("/header")
176
+ namespace Header {
177
+ @route("/default")
178
+ @scenario
179
+ @scenarioDoc("""
180
+ Test default encode (base64) for bytes header.
181
+ Expected header:
182
+ value=dGVzdA== (base64 encode of test)
183
+ """)
184
+ op default(
185
+ @header
186
+ value: bytes,
187
+ ): NoContentResponse;
188
+
189
+ @route("/base64")
190
+ @scenario
191
+ @scenarioDoc("""
192
+ Test base64 encode for bytes header.
193
+ Expected header:
194
+ value=dGVzdA== (base64 encode of test)
195
+ """)
196
+ op base64(
197
+ @header
198
+ @encode(BytesKnownEncoding.base64)
199
+ value: bytes,
200
+ ): NoContentResponse;
201
+
202
+ @route("/base64url")
203
+ @scenario
204
+ @scenarioDoc("""
205
+ Test base64url encode for bytes header.
206
+ Expected header:
207
+ value=dGVzdA (base64url encode of test)
208
+ """)
209
+ op base64url(
210
+ @header
211
+ @encode(BytesKnownEncoding.base64url)
212
+ value: bytes,
213
+ ): NoContentResponse;
214
+
215
+ @route("/base64url-array")
216
+ @scenario
217
+ @scenarioDoc("""
218
+ Test base64url encode for bytes array header.
219
+ Expected header:
220
+ value=dGVzdA,dGVzdA
221
+ """)
222
+ op base64urlArray(
223
+ @header({
224
+ format: "csv",
225
+ })
226
+ value: base64urlBytes[],
227
+ ): NoContentResponse;
228
+ }
229
+
230
+ @operationGroup
231
+ @route("/body/request")
232
+ namespace RequestBody {
233
+ @route("/default")
234
+ @scenario
235
+ @scenarioDoc("""
236
+ Test default encode (base64) for bytes in a json body.
237
+ Expected body:
238
+ "dGVzdA==" (base64 encode of test, in JSON string)
239
+ """)
240
+ @post
241
+ op default(
242
+ @body
243
+ value: bytes,
244
+ ): NoContentResponse;
245
+
246
+ @route("/octet-stream")
247
+ @scenario
248
+ @scenarioDoc("""
249
+ When content type is application/octet-stream and body is `bytes` the payload is a binary file.
250
+ File should match packages/cadl-ranch-specs/assets/image.png
251
+ """)
252
+ @post
253
+ op octetStream(
254
+ @header
255
+ contentType: "application/octet-stream",
256
+
257
+ @body
258
+ value: bytes,
259
+ ): NoContentResponse;
260
+
261
+ @route("/custom-content-type")
262
+ @scenario
263
+ @scenarioDoc("""
264
+ When content type is a custom type(image/png here) and body is `bytes` the payload is a binary file.
265
+ File should match packages/cadl-ranch-specs/assets/image.png
266
+ """)
267
+ @post
268
+ op customContentType(
269
+ @header
270
+ contentType: "image/png",
271
+
272
+ @body
273
+ value: bytes,
274
+ ): NoContentResponse;
275
+
276
+ @route("/base64")
277
+ @scenario
278
+ @scenarioDoc("""
279
+ Test base64 encode for bytes body.
280
+ Expected body:
281
+ "dGVzdA==" (base64 encode of test, in JSON string)
282
+ """)
283
+ @post
284
+ op base64(
285
+ @body
286
+ @encode(BytesKnownEncoding.base64)
287
+ value: bytes,
288
+ ): NoContentResponse;
289
+
290
+ @route("/base64url")
291
+ @scenario
292
+ @scenarioDoc("""
293
+ Test base64url encode for bytes body.
294
+ Expected body:
295
+ "dGVzdA" (base64url encode of test, in JSON string)
296
+ """)
297
+ @post
298
+ op base64url(
299
+ @body
300
+ @encode(BytesKnownEncoding.base64url)
301
+ value: bytes,
302
+ ): NoContentResponse;
303
+ }
304
+
305
+ @operationGroup
306
+ @route("/body/response")
307
+ namespace ResponseBody {
308
+ @route("/default")
309
+ @scenario
310
+ @scenarioDoc("""
311
+ Test default encode (base64) for bytes in a json body.
312
+ Expected body:
313
+ "dGVzdA==" (base64 encode of test, in JSON string)
314
+ """)
315
+ op default(): {
316
+ @body
317
+ value: bytes;
318
+ };
319
+
320
+ @route("/octet-stream")
321
+ @scenario
322
+ @scenarioDoc("""
323
+ When content type is application/octet-stream and body is `bytes` the payload is a binary file.
324
+ File should match packages/cadl-ranch-specs/assets/image.png
325
+ """)
326
+ op octetStream(): {
327
+ @header
328
+ contentType: "application/octet-stream";
329
+
330
+ @body
331
+ value: bytes;
332
+ };
333
+
334
+ @route("/custom-content-type")
335
+ @scenario
336
+ @scenarioDoc("""
337
+ When content type is a custom type(image/png here) and body is `bytes` the payload is a binary file.
338
+ File should match packages/cadl-ranch-specs/assets/image.png
339
+ """)
340
+ op customContentType(): {
341
+ @header
342
+ contentType: "image/png";
343
+
344
+ @body
345
+ value: bytes;
346
+ };
347
+
348
+ @route("/base64")
349
+ @scenario
350
+ @scenarioDoc("""
351
+ Test base64 encode for bytes body.
352
+ Expected body:
353
+ "dGVzdA==" (base64 encode of test, in JSON string)
354
+ """)
355
+ op base64(): {
356
+ @body
357
+ @encode(BytesKnownEncoding.base64)
358
+ value: bytes;
359
+ };
360
+
361
+ @route("/base64url")
362
+ @scenario
363
+ @scenarioDoc("""
364
+ Test base64url encode for bytes body.
365
+ Expected body:
366
+ "dGVzdA" (base64url encode of test, in JSON string)
367
+ """)
368
+ op base64url(): base64urlBytes;
369
+ }
@@ -0,0 +1,309 @@
1
+ import { resolvePath } from "@typespec/compiler";
2
+ import {
3
+ CollectionFormat,
4
+ json,
5
+ MockRequest,
6
+ passOnSuccess,
7
+ ScenarioMockApi,
8
+ } from "@typespec/spec-api";
9
+ import { readFileSync } from "fs";
10
+ import { fileURLToPath } from "url";
11
+
12
+ const root = resolvePath(fileURLToPath(import.meta.url), "../../../../../");
13
+
14
+ const pngFile = readFileSync(resolvePath(root, "assets/image.png"));
15
+
16
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
17
+
18
+ function createQueryServerTests(
19
+ uri: string,
20
+ data: any,
21
+ value: any,
22
+ collectionFormat?: CollectionFormat,
23
+ ) {
24
+ return passOnSuccess({
25
+ uri,
26
+ method: "get",
27
+ request: {
28
+ params: data,
29
+ },
30
+ response: {
31
+ status: 204,
32
+ },
33
+ handler: (req: MockRequest) => {
34
+ req.expect.containsQueryParam("value", value, collectionFormat);
35
+ return {
36
+ status: 204,
37
+ };
38
+ },
39
+ kind: "MockApiDefinition",
40
+ });
41
+ }
42
+ Scenarios.Encode_Bytes_Query_default = createQueryServerTests(
43
+ "/encode/bytes/query/default",
44
+ {
45
+ value: "dGVzdA==",
46
+ },
47
+ "dGVzdA==",
48
+ );
49
+ Scenarios.Encode_Bytes_Query_base64 = createQueryServerTests(
50
+ "/encode/bytes/query/base64",
51
+ {
52
+ value: "dGVzdA==",
53
+ },
54
+ "dGVzdA==",
55
+ );
56
+ Scenarios.Encode_Bytes_Query_base64url = createQueryServerTests(
57
+ "/encode/bytes/query/base64url",
58
+ {
59
+ value: "dGVzdA",
60
+ },
61
+ "dGVzdA",
62
+ );
63
+ Scenarios.Encode_Bytes_Query_base64urlArray = createQueryServerTests(
64
+ "/encode/bytes/query/base64url-array",
65
+ {
66
+ value: ["dGVzdA", "dGVzdA"].join(","),
67
+ },
68
+ ["dGVzdA", "dGVzdA"],
69
+ "csv",
70
+ );
71
+ function createPropertyServerTests(uri: string, data: any, value: any) {
72
+ return passOnSuccess({
73
+ uri,
74
+ method: "post",
75
+ request: {
76
+ body: data,
77
+ },
78
+ response: {
79
+ status: 200,
80
+ },
81
+ handler: (req: MockRequest) => {
82
+ req.expect.coercedBodyEquals({ value: value });
83
+ return {
84
+ status: 200,
85
+ body: json({ value: value }),
86
+ };
87
+ },
88
+ kind: "MockApiDefinition",
89
+ });
90
+ }
91
+ Scenarios.Encode_Bytes_Property_default = createPropertyServerTests(
92
+ "/encode/bytes/property/default",
93
+ {
94
+ value: "dGVzdA==",
95
+ },
96
+ "dGVzdA==",
97
+ );
98
+ Scenarios.Encode_Bytes_Property_base64 = createPropertyServerTests(
99
+ "/encode/bytes/property/base64",
100
+ {
101
+ value: "dGVzdA==",
102
+ },
103
+ "dGVzdA==",
104
+ );
105
+ Scenarios.Encode_Bytes_Property_base64url = createPropertyServerTests(
106
+ "/encode/bytes/property/base64url",
107
+ {
108
+ value: "dGVzdA",
109
+ },
110
+ "dGVzdA",
111
+ );
112
+ Scenarios.Encode_Bytes_Property_base64urlArray = createPropertyServerTests(
113
+ "/encode/bytes/property/base64url-array",
114
+ {
115
+ value: ["dGVzdA", "dGVzdA"],
116
+ },
117
+ ["dGVzdA", "dGVzdA"],
118
+ );
119
+ function createHeaderServerTests(uri: string, data: any, value: any) {
120
+ return passOnSuccess({
121
+ uri,
122
+ method: "get",
123
+ request: {
124
+ headers: data,
125
+ },
126
+ response: {
127
+ status: 204,
128
+ },
129
+ handler: (req: MockRequest) => {
130
+ req.expect.containsHeader("value", value);
131
+ return {
132
+ status: 204,
133
+ };
134
+ },
135
+ kind: "MockApiDefinition",
136
+ });
137
+ }
138
+ Scenarios.Encode_Bytes_Header_default = createHeaderServerTests(
139
+ "/encode/bytes/header/default",
140
+ {
141
+ value: "dGVzdA==",
142
+ },
143
+ "dGVzdA==",
144
+ );
145
+ Scenarios.Encode_Bytes_Header_base64 = createHeaderServerTests(
146
+ "/encode/bytes/header/base64",
147
+ {
148
+ value: "dGVzdA==",
149
+ },
150
+ "dGVzdA==",
151
+ );
152
+ Scenarios.Encode_Bytes_Header_base64url = createHeaderServerTests(
153
+ "/encode/bytes/header/base64url",
154
+ {
155
+ value: "dGVzdA",
156
+ },
157
+ "dGVzdA",
158
+ );
159
+ Scenarios.Encode_Bytes_Header_base64urlArray = createHeaderServerTests(
160
+ "/encode/bytes/header/base64url-array",
161
+ {
162
+ value: ["dGVzdA", "dGVzdA"].join(","),
163
+ },
164
+ ["dGVzdA", "dGVzdA"].join(","),
165
+ );
166
+ function createRequestBodyServerTests(
167
+ uri: string,
168
+ data: any,
169
+ headersData: any,
170
+ value: any,
171
+ contentType: string = "application/json",
172
+ ) {
173
+ return passOnSuccess({
174
+ uri,
175
+ method: "post",
176
+ request: {
177
+ body: data,
178
+ headers: headersData,
179
+ },
180
+ response: {
181
+ status: 204,
182
+ },
183
+ handler(req: MockRequest) {
184
+ req.expect.containsHeader("content-type", contentType);
185
+ req.expect.rawBodyEquals(value);
186
+ return {
187
+ status: 204,
188
+ };
189
+ },
190
+ kind: "MockApiDefinition",
191
+ });
192
+ }
193
+ Scenarios.Encode_Bytes_RequestBody_default = createRequestBodyServerTests(
194
+ "/encode/bytes/body/request/default",
195
+ '"dGVzdA=="',
196
+ {
197
+ "Content-Type": "application/json",
198
+ },
199
+ '"dGVzdA=="',
200
+ );
201
+ Scenarios.Encode_Bytes_RequestBody_base64 = createRequestBodyServerTests(
202
+ "/encode/bytes/body/request/base64",
203
+ '"dGVzdA=="',
204
+ {
205
+ "Content-Type": "application/json",
206
+ },
207
+ '"dGVzdA=="',
208
+ );
209
+ Scenarios.Encode_Bytes_RequestBody_base64url = createRequestBodyServerTests(
210
+ "/encode/bytes/body/request/base64url",
211
+ '"dGVzdA=="',
212
+ {
213
+ "Content-Type": "application/json",
214
+ },
215
+ '"dGVzdA=="',
216
+ );
217
+
218
+ Scenarios.Encode_Bytes_RequestBody_customContentType = createRequestBodyServerTests(
219
+ "/encode/bytes/body/request/custom-content-type",
220
+ pngFile,
221
+ {
222
+ "Content-Type": "image/png",
223
+ },
224
+ pngFile,
225
+ "image/png",
226
+ );
227
+ Scenarios.Encode_Bytes_RequestBody_octetStream = createRequestBodyServerTests(
228
+ "/encode/bytes/body/request/octet-stream",
229
+ pngFile,
230
+ {
231
+ "Content-Type": "application/octet-stream",
232
+ },
233
+ pngFile,
234
+ "application/octet-stream",
235
+ );
236
+ function createResponseBodyServerTests(
237
+ uri: string,
238
+ data: any,
239
+ headerData: any,
240
+ value: any,
241
+ contentType: string = "application/json",
242
+ ) {
243
+ return passOnSuccess({
244
+ uri,
245
+ method: "get",
246
+ request: {
247
+ headers: headerData,
248
+ },
249
+ response: {
250
+ status: 200,
251
+ body: {
252
+ contentType: contentType,
253
+ rawContent: data,
254
+ },
255
+ },
256
+ handler(req: MockRequest) {
257
+ return {
258
+ status: 200,
259
+ body: {
260
+ contentType: contentType,
261
+ rawContent: value,
262
+ },
263
+ };
264
+ },
265
+ kind: "MockApiDefinition",
266
+ });
267
+ }
268
+ Scenarios.Encode_Bytes_ResponseBody_default = createResponseBodyServerTests(
269
+ "/encode/bytes/body/response/default",
270
+ JSON.stringify("dGVzdA=="),
271
+ {
272
+ "Content-Type": "application/json",
273
+ },
274
+ JSON.stringify("dGVzdA=="),
275
+ );
276
+ Scenarios.Encode_Bytes_ResponseBody_base64 = createResponseBodyServerTests(
277
+ "/encode/bytes/body/response/base64",
278
+ JSON.stringify("dGVzdA=="),
279
+ {
280
+ "Content-Type": "application/json",
281
+ },
282
+ JSON.stringify("dGVzdA=="),
283
+ );
284
+ Scenarios.Encode_Bytes_ResponseBody_base64url = createResponseBodyServerTests(
285
+ "/encode/bytes/body/response/base64url",
286
+ JSON.stringify("dGVzdA"),
287
+ {
288
+ "Content-Type": "application/json",
289
+ },
290
+ JSON.stringify("dGVzdA"),
291
+ );
292
+ Scenarios.Encode_Bytes_ResponseBody_customContentType = createResponseBodyServerTests(
293
+ "/encode/bytes/body/response/custom-content-type",
294
+ pngFile,
295
+ {
296
+ "Content-Type": "image/png",
297
+ },
298
+ pngFile,
299
+ "image/png",
300
+ );
301
+ Scenarios.Encode_Bytes_ResponseBody_octetStream = createResponseBodyServerTests(
302
+ "/encode/bytes/body/response/octet-stream",
303
+ pngFile,
304
+ {
305
+ "Content-Type": "application/octet-stream",
306
+ },
307
+ pngFile,
308
+ "application/octet-stream",
309
+ );