@typespec/http-specs 0.1.0-alpha.0

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 (335) 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 +33 -0
  9. package/dist/specs/authentication/api-key/mockapi.js.map +1 -0
  10. package/dist/specs/authentication/http/custom/mockapi.d.ts +3 -0
  11. package/dist/specs/authentication/http/custom/mockapi.d.ts.map +1 -0
  12. package/dist/specs/authentication/http/custom/mockapi.js +33 -0
  13. package/dist/specs/authentication/http/custom/mockapi.js.map +1 -0
  14. package/dist/specs/authentication/oauth2/mockapi.d.ts +3 -0
  15. package/dist/specs/authentication/oauth2/mockapi.d.ts.map +1 -0
  16. package/dist/specs/authentication/oauth2/mockapi.js +30 -0
  17. package/dist/specs/authentication/oauth2/mockapi.js.map +1 -0
  18. package/dist/specs/authentication/union/mockapi.d.ts +3 -0
  19. package/dist/specs/authentication/union/mockapi.d.ts.map +1 -0
  20. package/dist/specs/authentication/union/mockapi.js +29 -0
  21. package/dist/specs/authentication/union/mockapi.js.map +1 -0
  22. package/dist/specs/encode/bytes/mockapi.d.ts +3 -0
  23. package/dist/specs/encode/bytes/mockapi.d.ts.map +1 -0
  24. package/dist/specs/encode/bytes/mockapi.js +167 -0
  25. package/dist/specs/encode/bytes/mockapi.js.map +1 -0
  26. package/dist/specs/encode/datetime/mockapi.d.ts +3 -0
  27. package/dist/specs/encode/datetime/mockapi.d.ts.map +1 -0
  28. package/dist/specs/encode/datetime/mockapi.js +160 -0
  29. package/dist/specs/encode/datetime/mockapi.js.map +1 -0
  30. package/dist/specs/encode/duration/mockapi.d.ts +3 -0
  31. package/dist/specs/encode/duration/mockapi.d.ts.map +1 -0
  32. package/dist/specs/encode/duration/mockapi.js +103 -0
  33. package/dist/specs/encode/duration/mockapi.js.map +1 -0
  34. package/dist/specs/encode/numeric/mockapi.d.ts +3 -0
  35. package/dist/specs/encode/numeric/mockapi.d.ts.map +1 -0
  36. package/dist/specs/encode/numeric/mockapi.js +22 -0
  37. package/dist/specs/encode/numeric/mockapi.js.map +1 -0
  38. package/dist/specs/helper.d.ts +3 -0
  39. package/dist/specs/helper.d.ts.map +1 -0
  40. package/dist/specs/helper.js +7 -0
  41. package/dist/specs/helper.js.map +1 -0
  42. package/dist/specs/parameters/basic/mockapi.d.ts +3 -0
  43. package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -0
  44. package/dist/specs/parameters/basic/mockapi.js +20 -0
  45. package/dist/specs/parameters/basic/mockapi.js.map +1 -0
  46. package/dist/specs/parameters/body-optionality/mockapi.d.ts +3 -0
  47. package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -0
  48. package/dist/specs/parameters/body-optionality/mockapi.js +50 -0
  49. package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -0
  50. package/dist/specs/parameters/collection-format/mockapi.d.ts +3 -0
  51. package/dist/specs/parameters/collection-format/mockapi.d.ts.map +1 -0
  52. package/dist/specs/parameters/collection-format/mockapi.js +76 -0
  53. package/dist/specs/parameters/collection-format/mockapi.js.map +1 -0
  54. package/dist/specs/parameters/spread/mockapi.d.ts +3 -0
  55. package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -0
  56. package/dist/specs/parameters/spread/mockapi.js +155 -0
  57. package/dist/specs/parameters/spread/mockapi.js.map +1 -0
  58. package/dist/specs/payload/content-negotiation/mockapi.d.ts +3 -0
  59. package/dist/specs/payload/content-negotiation/mockapi.d.ts.map +1 -0
  60. package/dist/specs/payload/content-negotiation/mockapi.js +169 -0
  61. package/dist/specs/payload/content-negotiation/mockapi.js.map +1 -0
  62. package/dist/specs/payload/json-merge-patch/mockapi.d.ts +38 -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 +90 -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 +59 -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 +323 -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 +183 -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 +94 -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 +20 -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 +12 -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 +21 -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 +12 -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 +42 -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 +43 -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 +55 -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 +223 -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 +92 -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 +91 -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 +39 -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 +42 -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 +37 -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 +69 -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 +127 -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 +37 -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 +40 -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 +99 -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 +63 -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 +41 -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 +107 -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 +333 -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 +132 -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 +185 -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 +214 -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 +193 -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 +106 -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 +54 -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 +17 -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 +19 -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 +38 -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 +18 -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 +21 -0
  221. package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
  222. package/package.json +55 -0
  223. package/spec-summary.md +7463 -0
  224. package/specs/README.md +3 -0
  225. package/specs/authentication/api-key/main.tsp +40 -0
  226. package/specs/authentication/api-key/mockapi.ts +35 -0
  227. package/specs/authentication/http/custom/main.tsp +40 -0
  228. package/specs/authentication/http/custom/mockapi.ts +35 -0
  229. package/specs/authentication/oauth2/main.tsp +45 -0
  230. package/specs/authentication/oauth2/mockapi.ts +32 -0
  231. package/specs/authentication/union/main.tsp +30 -0
  232. package/specs/authentication/union/mockapi.ts +31 -0
  233. package/specs/encode/bytes/main.tsp +363 -0
  234. package/specs/encode/bytes/mockapi.ts +297 -0
  235. package/specs/encode/datetime/main.tsp +339 -0
  236. package/specs/encode/datetime/mockapi.ts +274 -0
  237. package/specs/encode/duration/main.tsp +318 -0
  238. package/specs/encode/duration/mockapi.ts +191 -0
  239. package/specs/encode/numeric/main.tsp +69 -0
  240. package/specs/encode/numeric/mockapi.ts +32 -0
  241. package/specs/helper.ts +8 -0
  242. package/specs/parameters/basic/main.tsp +58 -0
  243. package/specs/parameters/basic/mockapi.ts +25 -0
  244. package/specs/parameters/body-optionality/main.tsp +61 -0
  245. package/specs/parameters/body-optionality/mockapi.ts +59 -0
  246. package/specs/parameters/collection-format/main.tsp +92 -0
  247. package/specs/parameters/collection-format/mockapi.ts +83 -0
  248. package/specs/parameters/spread/main.tsp +337 -0
  249. package/specs/parameters/spread/mockapi.ts +165 -0
  250. package/specs/payload/content-negotiation/main.tsp +61 -0
  251. package/specs/payload/content-negotiation/mockapi.ts +188 -0
  252. package/specs/payload/json-merge-patch/main.tsp +184 -0
  253. package/specs/payload/json-merge-patch/mockapi.ts +95 -0
  254. package/specs/payload/media-type/main.tsp +52 -0
  255. package/specs/payload/media-type/mockapi.ts +63 -0
  256. package/specs/payload/multipart/main.tsp +500 -0
  257. package/specs/payload/multipart/mockapi.ts +364 -0
  258. package/specs/payload/xml/main.tsp +302 -0
  259. package/specs/payload/xml/mockapi.ts +238 -0
  260. package/specs/routes/main.tsp +477 -0
  261. package/specs/routes/mockapi.ts +175 -0
  262. package/specs/scratch/.gitignore +3 -0
  263. package/specs/serialization/encoded-name/json/main.tsp +45 -0
  264. package/specs/serialization/encoded-name/json/mockapi.ts +22 -0
  265. package/specs/server/endpoint/not-defined/main.tsp +20 -0
  266. package/specs/server/endpoint/not-defined/mockapi.ts +13 -0
  267. package/specs/server/path/multiple/main.tsp +47 -0
  268. package/specs/server/path/multiple/mockapi.ts +23 -0
  269. package/specs/server/path/single/main.tsp +24 -0
  270. package/specs/server/path/single/mockapi.ts +13 -0
  271. package/specs/server/versions/not-versioned/main.tsp +40 -0
  272. package/specs/server/versions/not-versioned/mockapi.ts +51 -0
  273. package/specs/server/versions/versioned/main.tsp +64 -0
  274. package/specs/server/versions/versioned/mockapi.ts +64 -0
  275. package/specs/special-headers/conditional-request/main.tsp +89 -0
  276. package/specs/special-headers/conditional-request/mockapi.ts +59 -0
  277. package/specs/special-headers/repeatability/main.tsp +39 -0
  278. package/specs/special-headers/repeatability/mockapi.ts +47 -0
  279. package/specs/special-words/dec.js +52 -0
  280. package/specs/special-words/main.tsp +234 -0
  281. package/specs/special-words/mockapi.ts +384 -0
  282. package/specs/type/array/main.tsp +108 -0
  283. package/specs/type/array/mockapi.ts +107 -0
  284. package/specs/type/dictionary/main.tsp +101 -0
  285. package/specs/type/dictionary/mockapi.ts +103 -0
  286. package/specs/type/enum/extensible/main.tsp +65 -0
  287. package/specs/type/enum/extensible/mockapi.ts +48 -0
  288. package/specs/type/enum/fixed/main.tsp +60 -0
  289. package/specs/type/enum/fixed/mockapi.ts +44 -0
  290. package/specs/type/model/empty/main.tsp +40 -0
  291. package/specs/type/model/empty/mockapi.ts +40 -0
  292. package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
  293. package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +89 -0
  294. package/specs/type/model/inheritance/nested-discriminator/main.tsp +224 -0
  295. package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +130 -0
  296. package/specs/type/model/inheritance/not-discriminated/main.tsp +54 -0
  297. package/specs/type/model/inheritance/not-discriminated/mockapi.ts +39 -0
  298. package/specs/type/model/inheritance/recursive/main.tsp +71 -0
  299. package/specs/type/model/inheritance/recursive/mockapi.ts +41 -0
  300. package/specs/type/model/inheritance/single-discriminator/main.tsp +172 -0
  301. package/specs/type/model/inheritance/single-discriminator/mockapi.ts +103 -0
  302. package/specs/type/model/templated/main.tsp +130 -0
  303. package/specs/type/model/templated/mockapi.ts +66 -0
  304. package/specs/type/model/usage/main.tsp +49 -0
  305. package/specs/type/model/usage/mockapi.ts +45 -0
  306. package/specs/type/model/visibility/main.tsp +153 -0
  307. package/specs/type/model/visibility/mockapi.ts +108 -0
  308. package/specs/type/property/additional-properties/main.tsp +549 -0
  309. package/specs/type/property/additional-properties/mockapi.ts +464 -0
  310. package/specs/type/property/nullable/main.tsp +139 -0
  311. package/specs/type/property/nullable/mockapi.ts +187 -0
  312. package/specs/type/property/optionality/main.tsp +226 -0
  313. package/specs/type/property/optionality/mockapi.ts +296 -0
  314. package/specs/type/property/value-types/main.tsp +244 -0
  315. package/specs/type/property/value-types/mockapi.ts +300 -0
  316. package/specs/type/scalar/main.tsp +136 -0
  317. package/specs/type/scalar/mockapi.ts +199 -0
  318. package/specs/type/union/main.tsp +249 -0
  319. package/specs/type/union/mockapi.ts +130 -0
  320. package/specs/versioning/added/main.tsp +136 -0
  321. package/specs/versioning/added/mockapi.ts +57 -0
  322. package/specs/versioning/madeOptional/main.tsp +65 -0
  323. package/specs/versioning/madeOptional/mockapi.ts +18 -0
  324. package/specs/versioning/removed/main.tsp +126 -0
  325. package/specs/versioning/removed/mockapi.ts +20 -0
  326. package/specs/versioning/renamedFrom/main.tsp +112 -0
  327. package/specs/versioning/renamedFrom/mockapi.ts +40 -0
  328. package/specs/versioning/returnTypeChangedFrom/main.tsp +57 -0
  329. package/specs/versioning/returnTypeChangedFrom/mockapi.ts +19 -0
  330. package/specs/versioning/typeChangedFrom/main.tsp +71 -0
  331. package/specs/versioning/typeChangedFrom/mockapi.ts +22 -0
  332. package/temp/.tsbuildinfo +1 -0
  333. package/tsconfig.build.json +8 -0
  334. package/tsconfig.json +11 -0
  335. package/tspconfig.yaml +2 -0
@@ -0,0 +1,45 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ @doc("Projection")
8
+ @scenarioService("/serialization/encoded-name/json")
9
+ namespace Serialization.EncodedName.Json;
10
+
11
+ @route("/property")
12
+ namespace Property {
13
+ model JsonEncodedNameModel {
14
+ /** Pass in true */
15
+ @encodedName("application/json", "wireName")
16
+ defaultName: boolean;
17
+ }
18
+
19
+ @scenario
20
+ @scenarioDoc("""
21
+ Testing that you send the right JSON name on the wire.
22
+ Your generated SDK should generate JsonEncodedNameModel with one property `defaultName` with wire name `wireName`.
23
+
24
+ Expected request body:
25
+ ```json
26
+ {"wireName": true}
27
+ ```
28
+ """)
29
+ @post
30
+ op send(@bodyRoot body: JsonEncodedNameModel): NoContentResponse;
31
+
32
+ @scenario
33
+ @scenarioDoc("""
34
+ Testing that you deserialize the right json name over the wire.
35
+
36
+ Your generated SDK should generate JsonEncodedNameModel with one property `defaultName` with wire name `wireName`.
37
+
38
+ Expected response body:
39
+ ```json
40
+ {"wireName": true}
41
+ ```
42
+ """)
43
+ @get
44
+ op get(): JsonEncodedNameModel;
45
+ }
@@ -0,0 +1,22 @@
1
+ import { json, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ Scenarios.Serialization_EncodedName_Json_Property_send = passOnSuccess({
6
+ uri: "/serialization/encoded-name/json/property",
7
+ method: "post",
8
+ request: { body: { wireName: true } },
9
+ response: { status: 204 },
10
+ kind: "MockApiDefinition",
11
+ });
12
+
13
+ Scenarios.Serialization_EncodedName_Json_Property_get = passOnSuccess({
14
+ uri: "/serialization/encoded-name/json/property",
15
+ method: "get",
16
+ request: {},
17
+ response: {
18
+ status: 200,
19
+ body: json({ wireName: true }),
20
+ },
21
+ kind: "MockApiDefinition",
22
+ });
@@ -0,0 +1,20 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ /**
8
+ * Illustrates server doesn't define endpoint. Client should automatically add an endpoint to let user pass in.
9
+ */
10
+ @route("/server/endpoint/not-defined")
11
+ @service({
12
+ title: "Testserver without any endpoint",
13
+ })
14
+ namespace Server.Endpoint.NotDefined;
15
+
16
+ @scenario
17
+ @scenarioDoc("A simple operation in a server without defining a endpoint. Expected uri: '<endpoint you start cadl-ranch>/valid'")
18
+ @route("/valid")
19
+ @head
20
+ op valid(): OkResponse;
@@ -0,0 +1,13 @@
1
+ import { passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ Scenarios.Server_Endpoint_NotDefined_valid = passOnSuccess({
6
+ uri: "/server/endpoint/not-defined/valid",
7
+ method: "head",
8
+ request: {},
9
+ response: {
10
+ status: 200,
11
+ },
12
+ kind: "MockApiDefinition",
13
+ });
@@ -0,0 +1,47 @@
1
+ import "@typespec/rest";
2
+ import "@typespec/spector";
3
+ import "@typespec/versioning";
4
+
5
+ using Http;
6
+ using Spector;
7
+ using TypeSpec.Versioning;
8
+ using TypeSpec.Rest;
9
+
10
+ @versioned(Versions)
11
+ @service({
12
+ title: "ServerPathMultiple",
13
+ })
14
+ @server(
15
+ "{endpoint}/server/path/multiple/{apiVersion}",
16
+ "Test server with path parameters.",
17
+ {
18
+ @doc("Pass in http://localhost:3000 for endpoint.")
19
+ endpoint: url,
20
+
21
+ @doc("Pass in v1.0 for API version.")
22
+ apiVersion: Versions,
23
+ }
24
+ )
25
+ namespace Server.Path.Multiple;
26
+
27
+ @doc("Service versions")
28
+ enum Versions {
29
+ @doc("Version 1.0")
30
+ v1_0: "v1.0",
31
+ }
32
+
33
+ @scenario
34
+ @scenarioDoc("""
35
+ Operation with client path parameters.
36
+
37
+ Expected path parameter: apiVersion=v1.0
38
+ """)
39
+ op noOperationParams(): NoContentResponse;
40
+
41
+ @scenario
42
+ @scenarioDoc("""
43
+ Operation with client and method path parameters.
44
+
45
+ Expected path parameter: apiVersion=v1.0, keyword=test
46
+ """)
47
+ op withOperationPathParam(@path keyword: string): NoContentResponse;
@@ -0,0 +1,23 @@
1
+ import { passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ Scenarios.Server_Path_Multiple_noOperationParams = passOnSuccess({
6
+ uri: "/server/path/multiple/v1.0",
7
+ method: "get",
8
+ request: {},
9
+ response: {
10
+ status: 204,
11
+ },
12
+ kind: "MockApiDefinition",
13
+ });
14
+
15
+ Scenarios.Server_Path_Multiple_withOperationPathParam = passOnSuccess({
16
+ uri: "/server/path/multiple/v1.0/test",
17
+ method: "get",
18
+ request: {},
19
+ response: {
20
+ status: 204,
21
+ },
22
+ kind: "MockApiDefinition",
23
+ });
@@ -0,0 +1,24 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ @doc("Illustrates server with a single path parameter @server")
8
+ @service
9
+ @server(
10
+ "{endpoint}",
11
+ "Testserver endpoint",
12
+ {
13
+ @doc("Need to be set as 'http://localhost:3000' in client.")
14
+ endpoint: url,
15
+ }
16
+ )
17
+ @route("/server/path/single")
18
+ namespace Server.Path.Single;
19
+
20
+ @scenario
21
+ @scenarioDoc("An simple operation in a parameterized server.")
22
+ @route("/myOp")
23
+ @head
24
+ op myOp(): OkResponse;
@@ -0,0 +1,13 @@
1
+ import { passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ Scenarios.Server_Path_Single_myOp = passOnSuccess({
6
+ uri: "/server/path/single/myOp",
7
+ method: "head",
8
+ request: {},
9
+ response: {
10
+ status: 200,
11
+ },
12
+ kind: "MockApiDefinition",
13
+ });
@@ -0,0 +1,40 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ /**
8
+ * Illustrates not-versioned server.
9
+ */
10
+ @service
11
+ @server(
12
+ "{endpoint}",
13
+ "Testserver endpoint",
14
+ {
15
+ /**
16
+ * Need to be set as 'http://localhost:3000' in client.
17
+ */
18
+ endpoint: url,
19
+ }
20
+ )
21
+ @route("/server/versions/not-versioned")
22
+ namespace Server.Versions.NotVersioned;
23
+
24
+ @scenario
25
+ @scenarioDoc("A simple operation without api-version. Expected url: '/without-api-version', it should not contain any api-version.")
26
+ @route("/without-api-version")
27
+ @head
28
+ op withoutApiVersion(): OkResponse;
29
+
30
+ @scenario
31
+ @scenarioDoc("A simple operation with query api-version, which doesn't have any default value. Expected url: '/with-query-api-version?api-version=v1.0'.")
32
+ @route("/with-query-api-version")
33
+ @head
34
+ op withQueryApiVersion(@query("api-version") apiVersion: string): OkResponse;
35
+
36
+ @scenario
37
+ @scenarioDoc("A simple operation with path api-version, which doesn't have any default value. Expected url: '/with-path-api-version/v1.0'.")
38
+ @route("/with-path-api-version")
39
+ @head
40
+ op withPathApiVersion(@path apiVersion: string): OkResponse;
@@ -0,0 +1,51 @@
1
+ import { MockRequest, passOnSuccess, ScenarioMockApi, ValidationError } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ function createServerTests(uri: string, requestData?: any) {
6
+ let requestObject: any;
7
+ if (requestData) {
8
+ requestObject = requestData;
9
+ } else {
10
+ requestObject = {};
11
+ }
12
+ return passOnSuccess({
13
+ uri,
14
+ method: "head",
15
+ request: requestObject,
16
+ response: {
17
+ status: 200,
18
+ },
19
+ handler: (req: MockRequest) => {
20
+ if (Object.keys(req.query).length > 0) {
21
+ throw new ValidationError(
22
+ "Expected no query parameters including api-version",
23
+ "No query parameters",
24
+ req.query,
25
+ );
26
+ }
27
+ return { status: 200 };
28
+ },
29
+ kind: "MockApiDefinition",
30
+ });
31
+ }
32
+
33
+ Scenarios.Server_Versions_NotVersioned_withoutApiVersion = createServerTests(
34
+ "/server/versions/not-versioned/without-api-version",
35
+ );
36
+ Scenarios.Server_Versions_NotVersioned_withPathApiVersion = createServerTests(
37
+ "/server/versions/not-versioned/with-path-api-version/v1.0",
38
+ );
39
+ Scenarios.Server_Versions_NotVersioned_withQueryApiVersion = passOnSuccess({
40
+ uri: "/server/versions/not-versioned/with-query-api-version",
41
+ method: "head",
42
+ request: {
43
+ params: {
44
+ "api-version": "v1.0",
45
+ },
46
+ },
47
+ response: {
48
+ status: 200,
49
+ },
50
+ kind: "MockApiDefinition",
51
+ });
@@ -0,0 +1,64 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+ import "@typespec/versioning";
4
+
5
+ using Http;
6
+ using Spector;
7
+ using TypeSpec.Versioning;
8
+
9
+ /**
10
+ * Illustrates versioned server.
11
+ */
12
+ @service
13
+ @versioned(Versions)
14
+ @server(
15
+ "{endpoint}",
16
+ "Testserver endpoint",
17
+ {
18
+ /**
19
+ * Need to be set as 'http://localhost:3000' in client.
20
+ */
21
+ endpoint: url,
22
+ }
23
+ )
24
+ @route("/server/versions/versioned")
25
+ namespace Server.Versions.Versioned;
26
+
27
+ /**
28
+ * The version of the API.
29
+ */
30
+ enum Versions {
31
+ /**
32
+ * The version 2022-12-01-preview.
33
+ */
34
+ v2021_01_01_preview: "2021-01-01-preview",
35
+
36
+ /**
37
+ * The version 2022-12-01-preview.
38
+ */
39
+ v2022_12_01_preview: "2022-12-01-preview",
40
+ }
41
+
42
+ @scenario
43
+ @scenarioDoc("A simple operation without api-version. Expected url: '/without-api-version', it should not contain any api-version.")
44
+ @route("/without-api-version")
45
+ @head
46
+ op withoutApiVersion(): OkResponse;
47
+
48
+ @scenario
49
+ @scenarioDoc("A simple operation with query api-version, whose default value is defined as '2022-12-01-preview'. Expected url: '/with-query-api-version?api-version=2022-12-01-preview'.")
50
+ @route("/with-query-api-version")
51
+ @head
52
+ op withQueryApiVersion(@query("api-version") apiVersion: string): OkResponse;
53
+
54
+ @scenario
55
+ @scenarioDoc("A simple operation with path api-version, whose default value is defined as '2022-12-01-preview'. Expected url: '/with-path-api-version/2022-12-01-preview'.")
56
+ @route("/with-path-api-version")
57
+ @head
58
+ op withPathApiVersion(@path apiVersion: string): OkResponse;
59
+
60
+ @scenario
61
+ @scenarioDoc("A simple operation with query api-version, that do NOT use the default but '2021-01-01-preview'. It's expected to be set at the client level. Expected url: '/with-old-query-api-version?api-version=2021-01-01-preview'.")
62
+ @route("/with-query-old-api-version")
63
+ @head
64
+ op withQueryOldApiVersion(@query("api-version") apiVersion: string): OkResponse;
@@ -0,0 +1,64 @@
1
+ import { MockRequest, passOnSuccess, ScenarioMockApi, ValidationError } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ function createServerTests(uri: string) {
6
+ return passOnSuccess({
7
+ uri,
8
+ method: "head",
9
+ request: {},
10
+ response: {
11
+ status: 200,
12
+ },
13
+ handler: (req: MockRequest) => {
14
+ if (Object.keys(req.query).length > 0) {
15
+ throw new ValidationError(
16
+ "Expected no query parameters including api-version",
17
+ "No query parameters",
18
+ req.query,
19
+ );
20
+ }
21
+ return { status: 200 };
22
+ },
23
+ kind: "MockApiDefinition",
24
+ });
25
+ }
26
+
27
+ Scenarios.Server_Versions_Versioned_withoutApiVersion = createServerTests(
28
+ "/server/versions/versioned/without-api-version",
29
+ );
30
+ Scenarios.Server_Versions_Versioned_withPathApiVersion = createServerTests(
31
+ "/server/versions/versioned/with-path-api-version/2022-12-01-preview",
32
+ );
33
+
34
+ function createAPIVersionTests(uri: string, requestData: any, serverData: string) {
35
+ return passOnSuccess({
36
+ uri,
37
+ method: "head",
38
+ request: requestData,
39
+ response: {
40
+ status: 200,
41
+ },
42
+ kind: "MockApiDefinition",
43
+ });
44
+ }
45
+
46
+ Scenarios.Server_Versions_Versioned_withQueryOldApiVersion = createAPIVersionTests(
47
+ "/server/versions/versioned/with-query-old-api-version",
48
+ {
49
+ params: {
50
+ "api-version": "2021-01-01-preview",
51
+ },
52
+ },
53
+ "2021-01-01-preview",
54
+ );
55
+
56
+ Scenarios.Server_Versions_Versioned_withQueryApiVersion = createAPIVersionTests(
57
+ "/server/versions/versioned/with-query-api-version",
58
+ {
59
+ params: {
60
+ "api-version": "2022-12-01-preview",
61
+ },
62
+ },
63
+ "2022-12-01-preview",
64
+ );
@@ -0,0 +1,89 @@
1
+ import "@typespec/http";
2
+ import "@typespec/versioning";
3
+ import "@typespec/spector";
4
+
5
+ using Http;
6
+ using Spector;
7
+ using TypeSpec.Versioning;
8
+
9
+ @doc("Illustrates conditional request headers")
10
+ @scenarioService("/special-headers/conditional-request")
11
+ namespace SpecialHeaders.ConditionalRequest;
12
+
13
+ @scenario
14
+ @doc("""
15
+ Check when only If-Match in header is defined.
16
+ """)
17
+ @scenarioDoc("""
18
+ Check when only If-Match in header is defined.
19
+ Expected header parameters:
20
+ - if-match="valid"
21
+ """)
22
+ @post
23
+ @route("/if-match")
24
+ op postIfMatch(
25
+ @header("If-Match")
26
+ @doc("The request should only proceed if an entity matches this string.")
27
+ ifMatch?: string,
28
+ ): NoContentResponse;
29
+
30
+ @scenario
31
+ @doc("""
32
+ Check when only If-None-Match in header is defined.
33
+ """)
34
+ @scenarioDoc("""
35
+ Check when only If-None-Match in header is defined.
36
+ Expected header parameters:
37
+ - if-nonematch="invalid"
38
+ """)
39
+ @post
40
+ @route("/if-none-match")
41
+ op postIfNoneMatch(
42
+ @header("If-None-Match")
43
+ @doc("The request should only proceed if no entity matches this string.")
44
+ ifNoneMatch?: string,
45
+ ): NoContentResponse;
46
+
47
+ @scenario
48
+ @doc("""
49
+ Check when only If-Modified-Since in header is defined.
50
+ """)
51
+ @scenarioDoc("""
52
+ Check when only If-Modified-Since in header is defined.
53
+ Expected header parameters:
54
+ - if-modified-since=Fri, 26 Aug 2022 14:38:00 GMT
55
+ """)
56
+ @head
57
+ @route("/if-modified-since")
58
+ op headIfModifiedSince(
59
+ @doc("""
60
+ A timestamp indicating the last modified time of the resource known to the
61
+ client. The operation will be performed only if the resource on the service has
62
+ been modified since the specified time.
63
+ """)
64
+ @header("If-Modified-Since")
65
+ @encode(DateTimeKnownEncoding.rfc7231)
66
+ ifModifiedSince?: utcDateTime,
67
+ ): NoContentResponse;
68
+
69
+ @scenario
70
+ @doc("""
71
+ Check when only If-Unmodified-Since in header is defined.
72
+ """)
73
+ @scenarioDoc("""
74
+ Check when only If-Unmodified-Since in header is defined.
75
+ Expected header parameters:
76
+ - if-unmodified-since=Fri, 26 Aug 2022 14:38:00 GMT
77
+ """)
78
+ @post
79
+ @route("/if-unmodified-since")
80
+ op postIfUnmodifiedSince(
81
+ @doc("""
82
+ A timestamp indicating the last modified time of the resource known to the
83
+ client. The operation will be performed only if the resource on the service has
84
+ not been modified since the specified time.
85
+ """)
86
+ @header("If-Unmodified-Since")
87
+ @encode(DateTimeKnownEncoding.rfc7231)
88
+ ifUnmodifiedSince?: utcDateTime,
89
+ ): NoContentResponse;
@@ -0,0 +1,59 @@
1
+ import { passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ Scenarios.SpecialHeaders_ConditionalRequest_postIfUnmodifiedSince = passOnSuccess({
6
+ uri: "/special-headers/conditional-request/if-unmodified-since",
7
+ method: "post",
8
+ request: {
9
+ headers: {
10
+ "if-unmodified-since": "Fri, 26 Aug 2022 14:38:00 GMT",
11
+ },
12
+ },
13
+ response: {
14
+ status: 204,
15
+ },
16
+ kind: "MockApiDefinition",
17
+ });
18
+
19
+ Scenarios.SpecialHeaders_ConditionalRequest_headIfModifiedSince = passOnSuccess({
20
+ uri: "/special-headers/conditional-request/if-modified-since",
21
+ method: "head",
22
+ request: {
23
+ headers: {
24
+ "if-modified-since": "Fri, 26 Aug 2022 14:38:00 GMT",
25
+ },
26
+ },
27
+ response: {
28
+ status: 204,
29
+ },
30
+ kind: "MockApiDefinition",
31
+ });
32
+
33
+ Scenarios.SpecialHeaders_ConditionalRequest_postIfMatch = passOnSuccess({
34
+ uri: "/special-headers/conditional-request/if-match",
35
+ method: "post",
36
+ request: {
37
+ headers: {
38
+ "if-match": '"valid"',
39
+ },
40
+ },
41
+ response: {
42
+ status: 204,
43
+ },
44
+ kind: "MockApiDefinition",
45
+ });
46
+
47
+ Scenarios.SpecialHeaders_ConditionalRequest_postIfNoneMatch = passOnSuccess({
48
+ uri: "/special-headers/conditional-request/if-none-match",
49
+ method: "post",
50
+ request: {
51
+ headers: {
52
+ "if-none-match": '"invalid"',
53
+ },
54
+ },
55
+ response: {
56
+ status: 204,
57
+ },
58
+ kind: "MockApiDefinition",
59
+ });
@@ -0,0 +1,39 @@
1
+ import "@typespec/http";
2
+ import "@typespec/versioning";
3
+ import "@typespec/spector";
4
+
5
+ using Http;
6
+ using Spector;
7
+ using TypeSpec.Versioning;
8
+
9
+ @doc("Illustrates OASIS repeatability headers")
10
+ @scenarioService("/special-headers/repeatability")
11
+ namespace SpecialHeaders.Repeatability;
12
+
13
+ model RepeatableResponse {
14
+ @doc("The status code.")
15
+ @statusCode
16
+ statusCode: 204;
17
+
18
+ @visibility("read")
19
+ @header("Repeatability-Result")
20
+ @doc("Indicates whether the repeatable request was accepted or rejected.")
21
+ repeatabilityResult?: "accepted" | "rejected";
22
+ }
23
+
24
+ @scenario
25
+ @scenarioDoc("""
26
+ Check we recognize Repeatability-Request-ID and Repeatability-First-Sent.
27
+ """)
28
+ @doc("""
29
+ Check we recognize Repeatability-Request-ID and Repeatability-First-Sent.
30
+ """)
31
+ @post
32
+ @route("/immediateSuccess")
33
+ op immediateSuccess(
34
+ @header("Repeatability-Request-ID")
35
+ repeatabilityRequestID: string,
36
+
37
+ @header("Repeatability-First-Sent")
38
+ repeatabilityFirstSent: utcDateTime,
39
+ ): RepeatableResponse;
@@ -0,0 +1,47 @@
1
+ import {
2
+ MockRequest,
3
+ passOnSuccess,
4
+ ScenarioMockApi,
5
+ validateValueFormat,
6
+ ValidationError,
7
+ } from "@typespec/spec-api";
8
+
9
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
10
+
11
+ Scenarios.SpecialHeaders_Repeatability_immediateSuccess = passOnSuccess({
12
+ uri: "/special-headers/repeatability/immediateSuccess",
13
+ method: "post",
14
+ request: {
15
+ headers: {
16
+ "Repeatability-First-Sent": "Tue, 15 Nov 2022 12:45:26 GMT",
17
+ "Repeatability-Request-ID": "2378d9bc-1726-11ee-be56-0242ac120002", // fake uuid
18
+ },
19
+ },
20
+ response: {
21
+ status: 204,
22
+ headers: {
23
+ "repeatability-result": "accepted",
24
+ },
25
+ },
26
+ handler: (req: MockRequest) => {
27
+ if (!("repeatability-request-id" in req.headers)) {
28
+ throw new ValidationError("Repeatability-Request-ID is missing", "A UUID string", undefined);
29
+ }
30
+ if (!("repeatability-first-sent" in req.headers)) {
31
+ throw new ValidationError(
32
+ "Repeatability-First-Sent is missing",
33
+ "A date-time in headers format",
34
+ undefined,
35
+ );
36
+ }
37
+ validateValueFormat(req.headers["repeatability-request-id"], "uuid");
38
+ validateValueFormat(req.headers["repeatability-first-sent"], "rfc7231");
39
+ return {
40
+ status: 204,
41
+ headers: {
42
+ "repeatability-result": "accepted",
43
+ },
44
+ };
45
+ },
46
+ kind: "MockApiDefinition",
47
+ });