@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,477 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ /**
8
+ * Define scenario in building the http route/uri
9
+ */
10
+ @scenarioService("/routes")
11
+ namespace Routes;
12
+
13
+ @scenario
14
+ @scenarioDoc("""
15
+ Simple operation at a fixed in an interface
16
+ Expected path: /routes/fixed
17
+ """)
18
+ @route("fixed")
19
+ op fixed(): void;
20
+
21
+ @scenario
22
+ @scenarioDoc("""
23
+ Simple operation at a fixed in an interface
24
+ Expected path: /routes/in-interface/fixed
25
+ """)
26
+ @route("in-interface")
27
+ interface InInterface {
28
+ @route("fixed")
29
+ fixed(): void;
30
+ }
31
+
32
+ @route("path")
33
+ namespace PathParameters {
34
+ @scenario
35
+ @scenarioDoc("""
36
+ Path parameter defined implicitly
37
+ Value: "a"
38
+ Expected path: /routes/path/template-only/a
39
+ """)
40
+ @route("template-only/{param}")
41
+ op templateOnly(param: string): void;
42
+
43
+ @scenario
44
+ @scenarioDoc("""
45
+ Path parameter defined explicitly
46
+ Value: "a"
47
+ Expected path: /routes/path/explicit/a
48
+ """)
49
+ @route("explicit/{param}")
50
+ op explicit(@path param: string): void;
51
+
52
+ @scenario
53
+ @scenarioDoc("""
54
+ Path parameter annotated with @path but not defined explicitly in the route
55
+ Value: "a"
56
+ Expected path: /routes/path/annotation-only/a
57
+ """)
58
+ @route("annotation-only")
59
+ op annotationOnly(@path param: string): void;
60
+
61
+ @route("reserved-expansion")
62
+ namespace ReservedExpansion {
63
+ @scenario
64
+ @scenarioDoc("""
65
+ Defines a path parameter that shouldn't encode reserved characters. It should however still encode the other url characters.
66
+ Param value: "foo/bar baz"
67
+ Expected path: "/routes/path/reserved-expansion/template/foo/bar%20baz"
68
+ """)
69
+ @route("template/{+param}")
70
+ op template(param: string): void;
71
+
72
+ @scenario
73
+ @scenarioDoc("""
74
+ Defines a path parameter that shouldn't encode reserved characters. It should however still encode the other url characters.
75
+ Param value: "foo/bar baz"
76
+ Expected path: "/routes/path/reserved-expansion/annotation/foo/bar%20baz"
77
+ """)
78
+ @route("annotation")
79
+ op annotation(@path(#{ allowReserved: true }) param: string): void;
80
+ }
81
+
82
+ @route("simple")
83
+ namespace SimpleExpansion {
84
+ @route("standard")
85
+ namespace Standard {
86
+ @scenario
87
+ @scenarioDoc("""
88
+ Test simple expansion with explode: false when passed a primitive value.
89
+ Param value: "a"
90
+ Expected path: /routes/simple/standard/primitivea
91
+ """)
92
+ @route("primitive{param}")
93
+ op primitive(param: string): void;
94
+
95
+ @scenario
96
+ @scenarioDoc("""
97
+ Test simple expansion with explode: false when passed an array value.
98
+ Param value: ["a","b"]
99
+ Expected path: /routes/simple/standard/arraya,b
100
+ """)
101
+ @route("array{param}")
102
+ op array(param: string[]): void;
103
+
104
+ @scenario
105
+ @scenarioDoc("""
106
+ Test simple expansion with explode: false when passed a record value.
107
+ Param value: {a: 1, b: 2}
108
+ Expected path: /routes/simple/standard/recorda,1,b,2
109
+ """)
110
+ @route("record{param}")
111
+ op record(param: Record<int32>): void;
112
+ }
113
+
114
+ @route("explode")
115
+ namespace Explode {
116
+ @scenario
117
+ @scenarioDoc("""
118
+ Test simple expansion with explode: true when passed a primitive value.
119
+ Param value: "a"
120
+ Expected path: /routes/simple/explode/primitivea
121
+ """)
122
+ @route("primitive{param*}")
123
+ op primitive(param: string): void;
124
+
125
+ @scenario
126
+ @scenarioDoc("""
127
+ Test simple expansion with explode: true when passed an array value.
128
+ Param value: ["a","b"]
129
+ Expected path: /routes/simple/explode/arraya.b
130
+ """)
131
+ @route("array{param*}")
132
+ op array(param: string[]): void;
133
+
134
+ @scenario
135
+ @scenarioDoc("""
136
+ Test simple expansion with explode: true when passed a record value.
137
+ Param value: {a: 1, b: 2}
138
+ Expected path: /routes/simple/explode/recorda=1,b=2
139
+ """)
140
+ @route("record{param*}")
141
+ op record(param: Record<int32>): void;
142
+ }
143
+ }
144
+
145
+ @route("path")
146
+ namespace PathExpansion {
147
+ @route("standard")
148
+ namespace Standard {
149
+ @scenario
150
+ @scenarioDoc("""
151
+ Test path expansion with explode: false when passed a primitive value.
152
+ Param value: "a"
153
+ Expected path: /routes/path/standard/primitive/a
154
+ """)
155
+ @route("primitive{/param}")
156
+ op primitive(param: string): void;
157
+
158
+ @scenario
159
+ @scenarioDoc("""
160
+ Test path expansion with explode: false when passed an array value.
161
+ Param value: ["a","b"]
162
+ Expected path: /routes/path/standard/array/a,b
163
+ """)
164
+ @route("array{/param}")
165
+ op array(param: string[]): void;
166
+
167
+ @scenario
168
+ @scenarioDoc("""
169
+ Test path expansion with explode: false when passed a record value.
170
+ Param value: {a: 1, b: 2}
171
+ Expected path: /routes/path/standard/record/a,1,b,2
172
+ """)
173
+ @route("record{/param}")
174
+ op record(param: Record<int32>): void;
175
+ }
176
+
177
+ @route("explode")
178
+ namespace Explode {
179
+ @scenario
180
+ @scenarioDoc("""
181
+ Test path expansion with explode: true when passed a primitive value.
182
+ Param value: "a"
183
+ Expected path: /routes/path/explode/primitive/a
184
+ """)
185
+ @route("primitive{/param*}")
186
+ op primitive(param: string): void;
187
+
188
+ @scenario
189
+ @scenarioDoc("""
190
+ Test path expansion with explode: true when passed an array value.
191
+ Param value: ["a","b"]
192
+ Expected path: /routes/path/explode/array/a/b
193
+ """)
194
+ @route("array{/param*}")
195
+ op array(param: string[]): void;
196
+
197
+ @scenario
198
+ @scenarioDoc("""
199
+ Test path expansion with explode: true when passed a record value.
200
+ Param value: {a: 1, b: 2}
201
+ Expected path: /routes/path/explode/record/a=1/b=2
202
+ """)
203
+ @route("record{/param*}")
204
+ op record(param: Record<int32>): void;
205
+ }
206
+ }
207
+
208
+ @route("label")
209
+ namespace LabelExpansion {
210
+ @route("standard")
211
+ namespace Standard {
212
+ @scenario
213
+ @scenarioDoc("""
214
+ Test label expansion with explode: false when passed a primitive value.
215
+ Param value: "a"
216
+ Expected path: /routes/label/standard/primitive.a
217
+ """)
218
+ @route("primitive{.param}")
219
+ op primitive(param: string): void;
220
+
221
+ @scenario
222
+ @scenarioDoc("""
223
+ Test label expansion with explode: false when passed an array value.
224
+ Param value: ["a","b"]
225
+ Expected path: /routes/label/standard/array.a,b
226
+ """)
227
+ @route("array{.param}")
228
+ op array(param: string[]): void;
229
+
230
+ @scenario
231
+ @scenarioDoc("""
232
+ Test label expansion with explode: false when passed a record value.
233
+ Param value: {a: 1, b: 2}
234
+ Expected path: /routes/label/standard/record.a,1,b,2
235
+ """)
236
+ @route("record{.param}")
237
+ op record(param: Record<int32>): void;
238
+ }
239
+
240
+ @route("explode")
241
+ namespace Explode {
242
+ @scenario
243
+ @scenarioDoc("""
244
+ Test label expansion with explode: true when passed a primitive value.
245
+ Param value: "a"
246
+ Expected path: /routes/label/explode/primitive.a
247
+ """)
248
+ @route("primitive{.param*}")
249
+ op primitive(param: string): void;
250
+
251
+ @scenario
252
+ @scenarioDoc("""
253
+ Test label expansion with explode: true when passed an array value.
254
+ Param value: ["a","b"]
255
+ Expected path: /routes/label/explode/array.a.b
256
+ """)
257
+ @route("array{.param*}")
258
+ op array(param: string[]): void;
259
+
260
+ @scenario
261
+ @scenarioDoc("""
262
+ Test label expansion with explode: true when passed a record value.
263
+ Param value: {a: 1, b: 2}
264
+ Expected path: /routes/label/explode/record.a=1.b=2
265
+ """)
266
+ @route("record{.param*}")
267
+ op record(param: Record<int32>): void;
268
+ }
269
+ }
270
+
271
+ @route("matrix")
272
+ namespace MatrixExpansion {
273
+ @route("standard")
274
+ namespace Standard {
275
+ @scenario
276
+ @scenarioDoc("""
277
+ Test matrix expansion with explode: false when passed a primitive value.
278
+ Param value: "a"
279
+ Expected path: /routes/matrix/standard/primitive;a
280
+ """)
281
+ @route("primitive{;param}")
282
+ op primitive(param: string): void;
283
+
284
+ @scenario
285
+ @scenarioDoc("""
286
+ Test matrix expansion with explode: false when passed an array value.
287
+ Param value: ["a","b"]
288
+ Expected path: /routes/matrix/standard/array;a,b
289
+ """)
290
+ @route("array{;param}")
291
+ op array(param: string[]): void;
292
+
293
+ @scenario
294
+ @scenarioDoc("""
295
+ Test matrix expansion with explode: false when passed a record value.
296
+ Param value: {a: 1, b: 2}
297
+ Expected path: /routes/matrix/standard/record;a,1,b,2
298
+ """)
299
+ @route("record{;param}")
300
+ op record(param: Record<int32>): void;
301
+ }
302
+
303
+ @route("explode")
304
+ namespace Explode {
305
+ @scenario
306
+ @scenarioDoc("""
307
+ Test matrix expansion with explode: true when passed a primitive value.
308
+ Param value: "a"
309
+ Expected path: /routes/matrix/explode/primitive;a
310
+ """)
311
+ @route("primitive{;param*}")
312
+ op primitive(param: string): void;
313
+
314
+ @scenario
315
+ @scenarioDoc("""
316
+ Test matrix expansion with explode: true when passed an array value.
317
+ Param value: ["a","b"]
318
+ Expected path: /routes/matrix/explode/array;a.b
319
+ """)
320
+ @route("array{;param*}")
321
+ op array(param: string[]): void;
322
+
323
+ @scenario
324
+ @scenarioDoc("""
325
+ Test matrix expansion with explode: true when passed a record value.
326
+ Param value: {a: 1, b: 2}
327
+ Expected path: /routes/matrix/explode/record;a=1;b=2
328
+ """)
329
+ @route("record{;param*}")
330
+ op record(param: Record<int32>): void;
331
+ }
332
+ }
333
+ }
334
+
335
+ @route("query")
336
+ namespace QueryParameters {
337
+ @scenario
338
+ @scenarioDoc("Query parameter defined implicitly")
339
+ @route("template-only{?param}")
340
+ op templateOnly(param: string): void;
341
+
342
+ @scenario
343
+ @scenarioDoc("Query parameter marked with explicit @query")
344
+ @route("explicit{?param}")
345
+ op explicit(@query param: string): void;
346
+
347
+ @scenario
348
+ @scenarioDoc("Query parameter annotated with @query but not defined explicitly in the route")
349
+ @route("annotation-only")
350
+ op annotationOnly(@query param: string): void;
351
+
352
+ @route("query-expansion")
353
+ namespace QueryExpansion {
354
+ @route("standard")
355
+ namespace Standard {
356
+ @scenario
357
+ @scenarioDoc("""
358
+ Test query expansion with explode: false when passed a primitive value.
359
+ Param value: "a"
360
+ Expected path: /routes/query/query-expansion/standard/primitive?param=a
361
+ """)
362
+ @route("primitive{?param}")
363
+ op primitive(param: string): void;
364
+
365
+ @scenario
366
+ @scenarioDoc("""
367
+ Test query expansion with explode: false when passed an array value.
368
+ Param value: ["a","b"]
369
+ Expected path: /routes/query/query-expansion/standard/array?param=a,b
370
+ """)
371
+ @route("array{?param}")
372
+ op array(param: string[]): void;
373
+
374
+ @scenario
375
+ @scenarioDoc("""
376
+ Test query expansion with explode: false when passed a record value.
377
+ Param value: {a: 1, b: 2}
378
+ Expected path: /routes/query/query-expansion/standard/record?param=a,1,b,2
379
+ """)
380
+ @route("record{?param}")
381
+ op record(param: Record<int32>): void;
382
+ }
383
+
384
+ @route("explode")
385
+ namespace Explode {
386
+ @scenario
387
+ @scenarioDoc("""
388
+ Test query expansion with explode: true when passed a primitive value.
389
+ Param value: "a"
390
+ Expected path: /routes/query/query-expansion/explode/primitive?param=a
391
+ """)
392
+ @route("primitive{?param*}")
393
+ op primitive(param: string): void;
394
+
395
+ @scenario
396
+ @scenarioDoc("""
397
+ Test query expansion with explode: true when passed an array value.
398
+ Param value: ["a","b"]
399
+ Expected path: /routes/query/query-expansion/explode/array?param=a&param=b
400
+ """)
401
+ @route("array{?param*}")
402
+ op array(param: string[]): void;
403
+
404
+ @scenario
405
+ @scenarioDoc("""
406
+ Test query expansion with explode: true when passed a record value.
407
+ Param value: {a: 1, b: 2}
408
+ Expected path: /routes/query/query-expansion/explode/record?a=1&b=2
409
+ """)
410
+ @route("record{?param*}")
411
+ op record(param: Record<int32>): void;
412
+ }
413
+ }
414
+
415
+ @route("query-continuation")
416
+ namespace QueryContinuation {
417
+ @route("standard")
418
+ namespace Standard {
419
+ @scenario
420
+ @scenarioDoc("""
421
+ Test query continuation expansion with explode: false when passed a primitive value.
422
+ Param value: "a"
423
+ Expected path: /routes/query/query-continuation/standard/primitive?fixed=true&param=a
424
+ """)
425
+ @route("primitive?fixed=true{&param}")
426
+ op primitive(param: string): void;
427
+
428
+ @scenario
429
+ @scenarioDoc("""
430
+ Test query continuation expansion with explode: false when passed an array value.
431
+ Param value: ["a","b"]
432
+ Expected path: /routes/query/query-continuation/standard/array?fixed=true&param=a,b
433
+ """)
434
+ @route("array?fixed=true{&param}")
435
+ op array(param: string[]): void;
436
+
437
+ @scenario
438
+ @scenarioDoc("""
439
+ Test query continuation expansion with explode: false when passed a record value.
440
+ Param value: {a: 1, b: 2}
441
+ Expected path: /routes/query/query-continuation/standard/record?fixed=true&param=a,1,b,2
442
+ """)
443
+ @route("record?fixed=true{&param}")
444
+ op record(param: Record<int32>): void;
445
+ }
446
+
447
+ @route("explode")
448
+ namespace Explode {
449
+ @scenario
450
+ @scenarioDoc("""
451
+ Test query continuation expansion with explode: true when passed a primitive value.
452
+ Param value: "a"
453
+ Expected path: /routes/query/query-continuation/explode/primitive?fixed=true&param=a
454
+ """)
455
+ @route("primitive?fixed=true{&param*}")
456
+ op primitive(param: string): void;
457
+
458
+ @scenario
459
+ @scenarioDoc("""
460
+ Test query continuation expansion with explode: true when passed an array value.
461
+ Param value: ["a","b"]
462
+ Expected path: /routes/query/query-continuation/explode/array?fixed=true&param=a&param=b
463
+ """)
464
+ @route("array?fixed=true{&param*}")
465
+ op array(param: string[]): void;
466
+
467
+ @scenario
468
+ @scenarioDoc("""
469
+ Test query continuation expansion with explode: true when passed a record value.
470
+ Param value: {a: 1, b: 2}
471
+ Expected path: /routes/query/query-continuation/explode/record?fixed=true&a=1&b=2
472
+ """)
473
+ @route("record?fixed=true{&param*}")
474
+ op record(param: Record<int32>): void;
475
+ }
476
+ }
477
+ }
@@ -0,0 +1,175 @@
1
+ import { MockRequest, passOnSuccess, ScenarioMockApi, ValidationError } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ function createTests(uri: string) {
6
+ const url = new URL("http://example.com" + uri);
7
+ const queryMap = new Map<string, string | string[]>();
8
+ for (const [key, value] of url.searchParams.entries()) {
9
+ if (queryMap.has(key)) {
10
+ const existing = queryMap.get(key)!;
11
+ if (Array.isArray(existing)) {
12
+ existing.push(value);
13
+ } else {
14
+ queryMap.set(key, [existing, value]);
15
+ }
16
+ } else {
17
+ queryMap.set(key, value);
18
+ }
19
+ }
20
+ return passOnSuccess({
21
+ uri: url.pathname,
22
+ method: "get",
23
+ request: {
24
+ params: Object.fromEntries(queryMap),
25
+ },
26
+ response: {
27
+ status: 204,
28
+ },
29
+ handler: (req: MockRequest) => {
30
+ for (const [key, value] of queryMap.entries()) {
31
+ if (Array.isArray(value)) {
32
+ req.expect.containsQueryParam(key, value, "multi");
33
+ } else {
34
+ req.expect.containsQueryParam(key, value);
35
+ }
36
+ }
37
+ for (const param of Object.keys(req.query)) {
38
+ if (!url.searchParams.has(param)) {
39
+ throw new ValidationError(
40
+ `Unexpected query parameter ${param}`,
41
+ undefined,
42
+ req.query[param],
43
+ );
44
+ }
45
+ }
46
+ return { status: 204 };
47
+ },
48
+ kind: "MockApiDefinition",
49
+ });
50
+ }
51
+
52
+ Scenarios.Routes_InInterface = createTests("/routes/fixed");
53
+ Scenarios.Routes_fixed = createTests("/routes/in-interface/fixed");
54
+ Scenarios.Routes_PathParameters_templateOnly = createTests("/routes/path/template-only/a");
55
+ Scenarios.Routes_PathParameters_explicit = createTests("/routes/path/explicit/a");
56
+ Scenarios.Routes_PathParameters_annotationOnly = createTests("/routes/path/annotation-only/a");
57
+ Scenarios.Routes_PathParameters_ReservedExpansion_template = createTests(
58
+ "/routes/path/reserved-expansion/template/foo/bar%20baz",
59
+ );
60
+ Scenarios.Routes_PathParameters_ReservedExpansion_annotation = createTests(
61
+ "/routes/path/reserved-expansion/annotation/foo/bar%20baz",
62
+ );
63
+ Scenarios.Routes_PathParameters_SimpleExpansion_Standard_primitive = createTests(
64
+ "/routes/simple/standard/primitivea",
65
+ );
66
+ Scenarios.Routes_PathParameters_SimpleExpansion_Standard_array = createTests(
67
+ "/routes/simple/standard/arraya,b",
68
+ );
69
+ Scenarios.Routes_PathParameters_SimpleExpansion_Standard_record = createTests(
70
+ "/routes/simple/standard/recorda,1,b,2",
71
+ );
72
+ Scenarios.Routes_PathParameters_SimpleExpansion_Explode_primitive = createTests(
73
+ "/routes/simple/standard/primitivea",
74
+ );
75
+ Scenarios.Routes_PathParameters_SimpleExpansion_Explode_array = createTests(
76
+ "/routes/simple/standard/arraya,b",
77
+ );
78
+ Scenarios.Routes_PathParameters_SimpleExpansion_Explode_record = createTests(
79
+ "/routes/simple/standard/recorda=1,b=2",
80
+ );
81
+ Scenarios.Routes_PathParameters_PathExpansion_Standard_primitive = createTests(
82
+ "/routes/path/standard/primitive/a",
83
+ );
84
+ Scenarios.Routes_PathParameters_PathExpansion_Standard_array = createTests(
85
+ "/routes/path/standard/array/a,b",
86
+ );
87
+ Scenarios.Routes_PathParameters_PathExpansion_Standard_record = createTests(
88
+ "/routes/path/standard/record/a,1,b,2",
89
+ );
90
+ Scenarios.Routes_PathParameters_PathExpansion_Explode_primitive = createTests(
91
+ "/routes/path/standard/primitive/a",
92
+ );
93
+ Scenarios.Routes_PathParameters_PathExpansion_Explode_array = createTests(
94
+ "/routes/path/standard/array/a/b",
95
+ );
96
+ Scenarios.Routes_PathParameters_PathExpansion_Explode_record = createTests(
97
+ "/routes/path/standard/record/a=1/b=2",
98
+ );
99
+ Scenarios.Routes_PathParameters_LabelExpansion_Standard_primitive = createTests(
100
+ "/routes/label/standard/primitive.a",
101
+ );
102
+ Scenarios.Routes_PathParameters_LabelExpansion_Standard_array = createTests(
103
+ "/routes/label/standard/array.a,b",
104
+ );
105
+ Scenarios.Routes_PathParameters_LabelExpansion_Standard_record = createTests(
106
+ "/routes/label/standard/record.a,1,b,2",
107
+ );
108
+ Scenarios.Routes_PathParameters_LabelExpansion_Explode_primitive = createTests(
109
+ "/routes/label/standard/primitive.a",
110
+ );
111
+ Scenarios.Routes_PathParameters_LabelExpansion_Explode_array = createTests(
112
+ "/routes/label/standard/array.a.b",
113
+ );
114
+ Scenarios.Routes_PathParameters_LabelExpansion_Explode_record = createTests(
115
+ "/routes/label/standard/record.a=1.b=2",
116
+ );
117
+ Scenarios.Routes_PathParameters_MatrixExpansion_Standard_primitive = createTests(
118
+ "/routes/matrix/standard/primitive;a",
119
+ );
120
+ Scenarios.Routes_PathParameters_MatrixExpansion_Standard_array = createTests(
121
+ "/routes/matrix/standard/array;a,b",
122
+ );
123
+ Scenarios.Routes_PathParameters_MatrixExpansion_Standard_record = createTests(
124
+ "/routes/matrix/standard/record;a,1,b,2",
125
+ );
126
+ Scenarios.Routes_PathParameters_MatrixExpansion_Explode_primitive = createTests(
127
+ "/routes/matrix/standard/primitive;a",
128
+ );
129
+ Scenarios.Routes_PathParameters_MatrixExpansion_Explode_array = createTests(
130
+ "/routes/matrix/standard/array;a;b",
131
+ );
132
+ Scenarios.Routes_PathParameters_MatrixExpansion_Explode_record = createTests(
133
+ "/routes/matrix/standard/record;a=1;b=2",
134
+ );
135
+ Scenarios.Routes_QueryParameters_templateOnly = createTests("/routes/query/template-only?param=a");
136
+ Scenarios.Routes_QueryParameters_explicit = createTests("/routes/query/explicit?param=a");
137
+ Scenarios.Routes_QueryParameters_annotationOnly = createTests(
138
+ "/routes/query/annotation-only?param=a",
139
+ );
140
+ Scenarios.Routes_QueryParameters_QueryExpansion_Standard_primitive = createTests(
141
+ "/routes/query/query-expansion/standard/primitive?param=a",
142
+ );
143
+ Scenarios.Routes_QueryParameters_QueryExpansion_Standard_array = createTests(
144
+ "/routes/query/query-expansion/standard/array?param=a,b",
145
+ );
146
+ Scenarios.Routes_QueryParameters_QueryExpansion_Standard_record = createTests(
147
+ "/routes/query/query-expansion/standard/record?param=a,1,b,2",
148
+ );
149
+ Scenarios.Routes_QueryParameters_QueryExpansion_Explode_primitive = createTests(
150
+ "/routes/query/query-expansion/explode/primitive?param=a",
151
+ );
152
+ Scenarios.Routes_QueryParameters_QueryExpansion_Explode_array = createTests(
153
+ "/routes/query/query-expansion/explode/array?param=a&param=b",
154
+ );
155
+ Scenarios.Routes_QueryParameters_QueryExpansion_Explode_record = createTests(
156
+ "/routes/query/query-expansion/explode/record?a=1&b=2",
157
+ );
158
+ Scenarios.Routes_QueryParameters_QueryContinuation_Standard_primitive = createTests(
159
+ "/routes/query/query-continuation/standard/primitive?fixed=true&param=a",
160
+ );
161
+ Scenarios.Routes_QueryParameters_QueryContinuation_Standard_array = createTests(
162
+ "/routes/query/query-continuation/standard/array?fixed=true&param=a,b",
163
+ );
164
+ Scenarios.Routes_QueryParameters_QueryContinuation_Standard_record = createTests(
165
+ "/routes/query/query-continuation/standard/record?fixed=true&param=a,1,b,2",
166
+ );
167
+ Scenarios.Routes_QueryParameters_QueryContinuation_Explode_primitive = createTests(
168
+ "/routes/query/query-continuation/explode/primitive?fixed=true&param=a",
169
+ );
170
+ Scenarios.Routes_QueryParameters_QueryContinuation_Explode_array = createTests(
171
+ "/routes/query/query-continuation/explode/array?fixed=true&param=a&param=b",
172
+ );
173
+ Scenarios.Routes_QueryParameters_QueryContinuation_Explode_record = createTests(
174
+ "/routes/query/query-continuation/explode/record?fixed=true&a=1&b=2",
175
+ );
@@ -0,0 +1,3 @@
1
+ # This directory reserved for creating scratch *.tsp for testing/experimentation
2
+ **/*
3
+ !.gitignore