@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,344 @@
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 datetime.")
8
+ @supportedBy("dpg")
9
+ @scenarioService("/encode/datetime")
10
+ namespace Encode.Datetime;
11
+
12
+ @encode(DateTimeKnownEncoding.unixTimestamp, int64)
13
+ scalar unixTimestampDatetime extends utcDateTime;
14
+
15
+ @operationGroup
16
+ @route("/query")
17
+ namespace Query {
18
+ @route("/default")
19
+ @scenario
20
+ @scenarioDoc("""
21
+ Test default encode (rfc3339) for datetime query parameter.
22
+ Expected query parameter:
23
+ value=2022-08-26T18:38:00.000Z
24
+ """)
25
+ op default(
26
+ @query
27
+ value: utcDateTime,
28
+ ): NoContentResponse;
29
+
30
+ @route("/rfc3339")
31
+ @scenario
32
+ @scenarioDoc("""
33
+ Test rfc3339 encode for datetime query parameter.
34
+ Expected query parameter:
35
+ value=2022-08-26T18:38:00.000Z
36
+ """)
37
+ op rfc3339(
38
+ @query
39
+ @encode(DateTimeKnownEncoding.rfc3339)
40
+ value: utcDateTime,
41
+ ): NoContentResponse;
42
+
43
+ @route("/rfc7231")
44
+ @scenario
45
+ @scenarioDoc("""
46
+ Test rfc7231 encode for datetime query parameter.
47
+ Expected query parameter:
48
+ value=Fri, 26 Aug 2022 14:38:00 GMT
49
+ """)
50
+ op rfc7231(
51
+ @query
52
+ @encode(DateTimeKnownEncoding.rfc7231)
53
+ value: utcDateTime,
54
+ ): NoContentResponse;
55
+
56
+ @route("/unix-timestamp")
57
+ @scenario
58
+ @scenarioDoc("""
59
+ Test unixTimestamp encode for datetime query parameter.
60
+ Expected query parameter:
61
+ value=1686566864
62
+ """)
63
+ op unixTimestamp(
64
+ @query
65
+ @encode(DateTimeKnownEncoding.unixTimestamp, int64)
66
+ value: utcDateTime,
67
+ ): NoContentResponse;
68
+
69
+ @route("/unix-timestamp-array")
70
+ @scenario
71
+ @scenarioDoc("""
72
+ Test unixTimestamp encode for datetime array query parameter.
73
+ Expected query parameter:
74
+ value=1686566864, 1686734256
75
+ """)
76
+ op unixTimestampArray(
77
+ #suppress "deprecated" "Deprecated in next release"
78
+ @query({
79
+ format: "csv",
80
+ })
81
+ value: unixTimestampDatetime[],
82
+ ): NoContentResponse;
83
+ }
84
+
85
+ model DefaultDatetimeProperty {
86
+ value: utcDateTime;
87
+ }
88
+
89
+ model Rfc3339DatetimeProperty {
90
+ @encode(DateTimeKnownEncoding.rfc3339)
91
+ value: utcDateTime;
92
+ }
93
+
94
+ model Rfc7231DatetimeProperty {
95
+ @encode(DateTimeKnownEncoding.rfc7231)
96
+ value: utcDateTime;
97
+ }
98
+
99
+ model UnixTimestampDatetimeProperty {
100
+ @encode(DateTimeKnownEncoding.unixTimestamp, int64)
101
+ value: utcDateTime;
102
+ }
103
+
104
+ model UnixTimestampArrayDatetimeProperty {
105
+ value: unixTimestampDatetime[];
106
+ }
107
+
108
+ @operationGroup
109
+ @route("/property")
110
+ namespace Property {
111
+ @route("/default")
112
+ @scenario
113
+ @scenarioDoc("""
114
+ Test operation with request and response model contains datetime property with default encode (rfc3339).
115
+ Expected request body:
116
+ ```json
117
+ {
118
+ "value": "2022-08-26T18:38:00.000Z"
119
+ }
120
+ ```
121
+ Expected response body:
122
+ ```json
123
+ {
124
+ "value": "2022-08-26T18:38:00.000Z"
125
+ }
126
+ ```
127
+ """)
128
+ @post
129
+ op default(@body body: DefaultDatetimeProperty): DefaultDatetimeProperty;
130
+
131
+ @route("/rfc3339")
132
+ @scenario
133
+ @scenarioDoc("""
134
+ Test operation with request and response model contains datetime property with rfc3339 encode.
135
+ Expected request body:
136
+ ```json
137
+ {
138
+ "value": "2022-08-26T18:38:00.000Z"
139
+ }
140
+ ```
141
+ Expected response body:
142
+ ```json
143
+ {
144
+ "value": "2022-08-26T18:38:00.000Z"
145
+ }
146
+ ```
147
+ """)
148
+ @post
149
+ op rfc3339(@body body: Rfc3339DatetimeProperty): Rfc3339DatetimeProperty;
150
+
151
+ @route("/rfc7231")
152
+ @scenario
153
+ @scenarioDoc("""
154
+ Test operation with request and response model contains datetime property with rfc7231 encode.
155
+ Expected request body:
156
+ ```json
157
+ {
158
+ "value": "Fri, 26 Aug 2022 14:38:00 GMT"
159
+ }
160
+ ```
161
+ Expected response body:
162
+ ```json
163
+ {
164
+ "value": "Fri, 26 Aug 2022 14:38:00 GMT"
165
+ }
166
+ ```
167
+ """)
168
+ @post
169
+ op rfc7231(@body body: Rfc7231DatetimeProperty): Rfc7231DatetimeProperty;
170
+
171
+ @route("/unix-timestamp")
172
+ @scenario
173
+ @scenarioDoc("""
174
+ Test operation with request and response model contains datetime property with unixTimestamp encode.
175
+ Expected request body:
176
+ ```json
177
+ {
178
+ "value": 1686566864
179
+ }
180
+ ```
181
+ Expected response body:
182
+ ```json
183
+ {
184
+ "value": 1686566864
185
+ }
186
+ ```
187
+ """)
188
+ @post
189
+ op unixTimestamp(@body body: UnixTimestampDatetimeProperty): UnixTimestampDatetimeProperty;
190
+
191
+ @route("/unix-timestamp-array")
192
+ @scenario
193
+ @scenarioDoc("""
194
+ Test operation with request and response model contains datetime array property with unixTimestamp encode.
195
+ Expected request body:f
196
+ ```json
197
+ {
198
+ "value": [1686566864, 1686734256]
199
+ }
200
+ ```
201
+ Expected response body:
202
+ ```json
203
+ {
204
+ "value": [1686566864, 1686734256]
205
+ }
206
+ ```
207
+ """)
208
+ @post
209
+ op unixTimestampArray(
210
+ @body body: UnixTimestampArrayDatetimeProperty,
211
+ ): UnixTimestampArrayDatetimeProperty;
212
+ }
213
+
214
+ @operationGroup
215
+ @route("/header")
216
+ namespace Header {
217
+ @route("/default")
218
+ @scenario
219
+ @scenarioDoc("""
220
+ Test default encode (rfc7231) for datetime header.
221
+ Expected header:
222
+ value=Fri, 26 Aug 2022 14:38:00 GMT
223
+ """)
224
+ op default(
225
+ @header
226
+ value: utcDateTime,
227
+ ): NoContentResponse;
228
+
229
+ @route("/rfc3339")
230
+ @scenario
231
+ @scenarioDoc("""
232
+ Test rfc3339 encode for datetime header.
233
+ Expected header:
234
+ value=2022-08-26T18:38:00.000Z
235
+ """)
236
+ op rfc3339(
237
+ @header
238
+ @encode(DateTimeKnownEncoding.rfc3339)
239
+ value: utcDateTime,
240
+ ): NoContentResponse;
241
+
242
+ @route("/rfc7231")
243
+ @scenario
244
+ @scenarioDoc("""
245
+ Test rfc7231 encode for datetime header.
246
+ Expected header:
247
+ value=Fri, 26 Aug 2022 14:38:00 GMT
248
+ """)
249
+ op rfc7231(
250
+ @header
251
+ @encode(DateTimeKnownEncoding.rfc7231)
252
+ value: utcDateTime,
253
+ ): NoContentResponse;
254
+
255
+ @route("/unix-timestamp")
256
+ @scenario
257
+ @scenarioDoc("""
258
+ Test unixTimestamp encode for datetime header.
259
+ Expected header:
260
+ value=1686566864
261
+ """)
262
+ op unixTimestamp(
263
+ @header
264
+ @encode(DateTimeKnownEncoding.unixTimestamp, int64)
265
+ value: utcDateTime,
266
+ ): NoContentResponse;
267
+
268
+ @route("/unix-timestamp-array")
269
+ @scenario
270
+ @scenarioDoc("""
271
+ Test unixTimestamp encode for datetime array header.
272
+ Expected header:
273
+ value=1686566864,1686734256
274
+ """)
275
+ op unixTimestampArray(
276
+ @header({
277
+ format: "csv",
278
+ })
279
+ value: unixTimestampDatetime[],
280
+ ): NoContentResponse;
281
+ }
282
+
283
+ model DefaultDatetimeHeader {
284
+ @header
285
+ value: utcDateTime;
286
+ }
287
+
288
+ model Rfc3339DatetimeHeader {
289
+ @encode(DateTimeKnownEncoding.rfc3339)
290
+ @header
291
+ value: utcDateTime;
292
+ }
293
+
294
+ model Rfc7231DatetimeHeader {
295
+ @encode(DateTimeKnownEncoding.rfc7231)
296
+ @header
297
+ value: utcDateTime;
298
+ }
299
+
300
+ model UnixTimestampDatetimeHeader {
301
+ @encode(DateTimeKnownEncoding.unixTimestamp, int64)
302
+ @header
303
+ value: utcDateTime;
304
+ }
305
+
306
+ @operationGroup
307
+ @route("/responseheader")
308
+ namespace ResponseHeader {
309
+ @route("/default")
310
+ @scenario
311
+ @scenarioDoc("""
312
+ Test default encode (rfc7231) for datetime header.
313
+ Expected response header:
314
+ value=Fri, 26 Aug 2022 14:38:00 GMT
315
+ """)
316
+ op default(): NoContentResponse & DefaultDatetimeHeader;
317
+
318
+ @route("/rfc3339")
319
+ @scenario
320
+ @scenarioDoc("""
321
+ Test rfc3339 encode for datetime header.
322
+ Expected response header:
323
+ value=2022-08-26T18:38:00.000Z
324
+ """)
325
+ op rfc3339(): NoContentResponse & Rfc3339DatetimeHeader;
326
+
327
+ @route("/rfc7231")
328
+ @scenario
329
+ @scenarioDoc("""
330
+ Test rfc7231 encode for datetime header.
331
+ Expected response header:
332
+ value=Fri, 26 Aug 2022 14:38:00 GMT
333
+ """)
334
+ op rfc7231(): NoContentResponse & Rfc7231DatetimeHeader;
335
+
336
+ @route("/unix-timestamp")
337
+ @scenario
338
+ @scenarioDoc("""
339
+ Test unixTimestamp encode for datetime header.
340
+ Expected response header:
341
+ value=1686566864
342
+ """)
343
+ op unixTimestamp(): NoContentResponse & UnixTimestampDatetimeHeader;
344
+ }
@@ -0,0 +1,274 @@
1
+ import {
2
+ CollectionFormat,
3
+ json,
4
+ MockRequest,
5
+ passOnSuccess,
6
+ ScenarioMockApi,
7
+ validateValueFormat,
8
+ ValidationError,
9
+ } from "@typespec/spec-api";
10
+
11
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
12
+
13
+ function createQueryServerTests(
14
+ uri: string,
15
+ paramData: any,
16
+ format: "rfc7231" | "rfc3339" | undefined,
17
+ value: any,
18
+ collectionFormat?: CollectionFormat,
19
+ ) {
20
+ return passOnSuccess({
21
+ uri,
22
+ method: "get",
23
+ request: {
24
+ params: paramData,
25
+ },
26
+ response: {
27
+ status: 204,
28
+ },
29
+ handler(req: MockRequest) {
30
+ if (format) {
31
+ validateValueFormat(req.query["value"] as string, format);
32
+ if (Date.parse(req.query["value"] as string) !== Date.parse(value)) {
33
+ throw new ValidationError(`Wrong value`, value, req.query["value"]);
34
+ }
35
+ } else {
36
+ req.expect.containsQueryParam("value", value, collectionFormat);
37
+ }
38
+ return {
39
+ status: 204,
40
+ };
41
+ },
42
+ kind: "MockApiDefinition",
43
+ });
44
+ }
45
+ Scenarios.Encode_Datetime_Query_default = createQueryServerTests(
46
+ "/encode/datetime/query/default",
47
+ {
48
+ value: "2022-08-26T18:38:00.000Z",
49
+ },
50
+ "rfc3339",
51
+ "2022-08-26T18:38:00.000Z",
52
+ );
53
+ Scenarios.Encode_Datetime_Query_rfc3339 = createQueryServerTests(
54
+ "/encode/datetime/query/rfc3339",
55
+ {
56
+ value: "2022-08-26T18:38:00.000Z",
57
+ },
58
+ "rfc3339",
59
+ "2022-08-26T18:38:00.000Z",
60
+ );
61
+ Scenarios.Encode_Datetime_Query_rfc7231 = createQueryServerTests(
62
+ "/encode/datetime/query/rfc7231",
63
+ {
64
+ value: "Fri, 26 Aug 2022 14:38:00 GMT",
65
+ },
66
+ "rfc7231",
67
+ "Fri, 26 Aug 2022 14:38:00 GMT",
68
+ );
69
+ Scenarios.Encode_Datetime_Query_unixTimestamp = createQueryServerTests(
70
+ "/encode/datetime/query/unix-timestamp",
71
+ {
72
+ value: 1686566864,
73
+ },
74
+ undefined,
75
+ "1686566864",
76
+ );
77
+ Scenarios.Encode_Datetime_Query_unixTimestampArray = createQueryServerTests(
78
+ "/encode/datetime/query/unix-timestamp-array",
79
+ {
80
+ value: [1686566864, 1686734256].join(","),
81
+ },
82
+ undefined,
83
+ ["1686566864", "1686734256"],
84
+ "csv",
85
+ );
86
+ function createPropertyServerTests(
87
+ uri: string,
88
+ data: any,
89
+ format: "rfc7231" | "rfc3339" | undefined,
90
+ value: any,
91
+ ) {
92
+ return passOnSuccess({
93
+ uri,
94
+ method: "post",
95
+ request: {
96
+ body: data,
97
+ },
98
+ response: {
99
+ status: 200,
100
+ },
101
+ handler: (req: MockRequest) => {
102
+ if (format) {
103
+ validateValueFormat(req.body["value"], format);
104
+ if (Date.parse(req.body["value"]) !== Date.parse(value)) {
105
+ throw new ValidationError(`Wrong value`, value, req.body["value"]);
106
+ }
107
+ } else {
108
+ req.expect.coercedBodyEquals({ value: value });
109
+ }
110
+ return {
111
+ status: 200,
112
+ body: json({ value: value }),
113
+ };
114
+ },
115
+ kind: "MockApiDefinition",
116
+ });
117
+ }
118
+ Scenarios.Encode_Datetime_Property_default = createPropertyServerTests(
119
+ "/encode/datetime/property/default",
120
+ {
121
+ value: "2022-08-26T18:38:00.000Z",
122
+ },
123
+ "rfc3339",
124
+ "2022-08-26T18:38:00.000Z",
125
+ );
126
+ Scenarios.Encode_Datetime_Property_rfc3339 = createPropertyServerTests(
127
+ "/encode/datetime/property/rfc3339",
128
+ {
129
+ value: "2022-08-26T18:38:00.000Z",
130
+ },
131
+ "rfc3339",
132
+ "2022-08-26T18:38:00.000Z",
133
+ );
134
+ Scenarios.Encode_Datetime_Property_rfc7231 = createPropertyServerTests(
135
+ "/encode/datetime/property/rfc7231",
136
+ {
137
+ value: "Fri, 26 Aug 2022 14:38:00 GMT",
138
+ },
139
+ "rfc7231",
140
+ "Fri, 26 Aug 2022 14:38:00 GMT",
141
+ );
142
+ Scenarios.Encode_Datetime_Property_unixTimestamp = createPropertyServerTests(
143
+ "/encode/datetime/property/unix-timestamp",
144
+ {
145
+ value: 1686566864,
146
+ },
147
+ undefined,
148
+ 1686566864,
149
+ );
150
+ Scenarios.Encode_Datetime_Property_unixTimestampArray = createPropertyServerTests(
151
+ "/encode/datetime/property/unix-timestamp-array",
152
+ {
153
+ value: [1686566864, 1686734256],
154
+ },
155
+ undefined,
156
+ [1686566864, 1686734256],
157
+ );
158
+ function createHeaderServerTests(
159
+ uri: string,
160
+ data: any,
161
+ format: "rfc7231" | "rfc3339" | undefined,
162
+ value: any,
163
+ ) {
164
+ return passOnSuccess({
165
+ uri,
166
+ method: "get",
167
+ request: {
168
+ headers: data,
169
+ },
170
+ response: {
171
+ status: 204,
172
+ },
173
+ handler(req: MockRequest) {
174
+ if (format) {
175
+ validateValueFormat(req.headers["value"], format);
176
+ if (Date.parse(req.headers["value"]) !== Date.parse(value)) {
177
+ throw new ValidationError(`Wrong value`, value, req.headers["value"]);
178
+ }
179
+ } else {
180
+ req.expect.containsHeader("value", value);
181
+ }
182
+ return {
183
+ status: 204,
184
+ };
185
+ },
186
+ kind: "MockApiDefinition",
187
+ });
188
+ }
189
+ Scenarios.Encode_Datetime_Header_default = createHeaderServerTests(
190
+ "/encode/datetime/header/default",
191
+ {
192
+ value: "Fri, 26 Aug 2022 14:38:00 GMT",
193
+ },
194
+ "rfc7231",
195
+ "Fri, 26 Aug 2022 14:38:00 GMT",
196
+ );
197
+ Scenarios.Encode_Datetime_Header_rfc3339 = createHeaderServerTests(
198
+ "/encode/datetime/header/rfc3339",
199
+ {
200
+ value: "2022-08-26T18:38:00.000Z",
201
+ },
202
+ "rfc3339",
203
+ "2022-08-26T18:38:00.000Z",
204
+ );
205
+ Scenarios.Encode_Datetime_Header_rfc7231 = createHeaderServerTests(
206
+ "/encode/datetime/header/rfc7231",
207
+ {
208
+ value: "Fri, 26 Aug 2022 14:38:00 GMT",
209
+ },
210
+ "rfc7231",
211
+ "Fri, 26 Aug 2022 14:38:00 GMT",
212
+ );
213
+ Scenarios.Encode_Datetime_Header_unixTimestamp = createHeaderServerTests(
214
+ "/encode/datetime/header/unix-timestamp",
215
+ {
216
+ value: 1686566864,
217
+ },
218
+ undefined,
219
+ "1686566864",
220
+ );
221
+ Scenarios.Encode_Datetime_Header_unixTimestampArray = createHeaderServerTests(
222
+ "/encode/datetime/header/unix-timestamp-array",
223
+ {
224
+ value: [1686566864, 1686734256].join(","),
225
+ },
226
+ undefined,
227
+ "1686566864,1686734256",
228
+ );
229
+ function createResponseHeaderServerTests(uri: string, data: any, value: any) {
230
+ return passOnSuccess({
231
+ uri,
232
+ method: "get",
233
+ request: {},
234
+ response: {
235
+ status: 204,
236
+ headers: data,
237
+ },
238
+ handler: (req: MockRequest) => {
239
+ return {
240
+ status: 204,
241
+ headers: { value: value },
242
+ };
243
+ },
244
+ kind: "MockApiDefinition",
245
+ });
246
+ }
247
+ Scenarios.Encode_Datetime_ResponseHeader_default = createResponseHeaderServerTests(
248
+ "/encode/datetime/responseheader/default",
249
+ {
250
+ value: "Fri, 26 Aug 2022 14:38:00 GMT",
251
+ },
252
+ "Fri, 26 Aug 2022 14:38:00 GMT",
253
+ );
254
+ Scenarios.Encode_Datetime_ResponseHeader_rfc3339 = createResponseHeaderServerTests(
255
+ "/encode/datetime/responseheader/rfc3339",
256
+ {
257
+ value: "2022-08-26T18:38:00.000Z",
258
+ },
259
+ "2022-08-26T18:38:00.000Z",
260
+ );
261
+ Scenarios.Encode_Datetime_ResponseHeader_rfc7231 = createResponseHeaderServerTests(
262
+ "/encode/datetime/responseheader/rfc7231",
263
+ {
264
+ value: "Fri, 26 Aug 2022 14:38:00 GMT",
265
+ },
266
+ "Fri, 26 Aug 2022 14:38:00 GMT",
267
+ );
268
+ Scenarios.Encode_Datetime_ResponseHeader_unixTimestamp = createResponseHeaderServerTests(
269
+ "/encode/datetime/responseheader/unix-timestamp",
270
+ {
271
+ value: "1686566864",
272
+ },
273
+ 1686566864,
274
+ );