@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,464 @@
1
+ import { json, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ const recordFloatBody = {
6
+ id: 43.125,
7
+ prop: 43.125,
8
+ };
9
+ const recordModelBody = {
10
+ knownProp: { state: "ok" },
11
+ prop: { state: "ok" },
12
+ };
13
+ const recordModelArrayBody = {
14
+ knownProp: [{ state: "ok" }, { state: "ok" }],
15
+ prop: [{ state: "ok" }, { state: "ok" }],
16
+ };
17
+ const differentRecordStringBody = {
18
+ id: 43.125,
19
+ prop: "abc",
20
+ };
21
+ const differentRecordFloatBody = {
22
+ name: "abc",
23
+ prop: 43.125,
24
+ };
25
+ const differentRecordModelBody = {
26
+ knownProp: "abc",
27
+ prop: { state: "ok" },
28
+ };
29
+ const differentRecordModelArrayBody = {
30
+ knownProp: "abc",
31
+ prop: [{ state: "ok" }, { state: "ok" }],
32
+ };
33
+ const extendsModelSpreadStringBody = {
34
+ id: 43.125,
35
+ prop: "abc",
36
+ derivedProp: "abc",
37
+ };
38
+ const extendsModelSpreadFloatBody = {
39
+ name: "abc",
40
+ prop: 43.125,
41
+ derivedProp: 43.125,
42
+ };
43
+ const extendsModelSpreadModelBody = {
44
+ knownProp: "abc",
45
+ prop: { state: "ok" },
46
+ derivedProp: { state: "ok" },
47
+ };
48
+ const extendsModelSpreadModelArrayBody = {
49
+ knownProp: "abc",
50
+ prop: [{ state: "ok" }, { state: "ok" }],
51
+ derivedProp: [{ state: "ok" }, { state: "ok" }],
52
+ };
53
+ const multipleSpreadBody = {
54
+ flag: true,
55
+ prop1: "abc",
56
+ prop2: 43.125,
57
+ };
58
+ const recordUnionBody = multipleSpreadBody;
59
+ const recordDiscriminatedUnionBody = {
60
+ name: "abc",
61
+ prop1: {
62
+ kind: "kind0",
63
+ fooProp: "abc",
64
+ },
65
+ prop2: {
66
+ kind: "kind1",
67
+ start: "2021-01-01T00:00:00Z",
68
+ end: "2021-01-02T00:00:00Z",
69
+ },
70
+ };
71
+ const recordNonDiscriminatedUnion2Body = {
72
+ name: "abc",
73
+ prop1: {
74
+ kind: "kind1",
75
+ start: "2021-01-01T00:00:00Z",
76
+ },
77
+ prop2: {
78
+ kind: "kind1",
79
+ start: "2021-01-01T00:00:00Z",
80
+ end: "2021-01-02T00:00:00Z",
81
+ },
82
+ };
83
+ const recordNonDiscriminatedUnion3Body = {
84
+ name: "abc",
85
+ prop1: [
86
+ {
87
+ kind: "kind1",
88
+ start: "2021-01-01T00:00:00Z",
89
+ },
90
+ {
91
+ kind: "kind1",
92
+ start: "2021-01-01T00:00:00Z",
93
+ },
94
+ ],
95
+ prop2: {
96
+ kind: "kind1",
97
+ start: "2021-01-01T00:00:00Z",
98
+ end: "2021-01-02T00:00:00Z",
99
+ },
100
+ };
101
+ function createServerTests(url: string, value: any) {
102
+ return {
103
+ get: passOnSuccess({
104
+ uri: url,
105
+ method: `get`,
106
+ request: {},
107
+ response: {
108
+ status: 200,
109
+ body: json(value),
110
+ },
111
+ kind: "MockApiDefinition",
112
+ }),
113
+ put: passOnSuccess({
114
+ uri: url,
115
+ method: `put`,
116
+ request: {
117
+ body: value,
118
+ },
119
+ response: {
120
+ status: 204,
121
+ },
122
+ kind: "MockApiDefinition",
123
+ }),
124
+ };
125
+ }
126
+
127
+ const Type_Property_Additional_Properties_Extends_Record_Unknown = createServerTests(
128
+ `/type/property/additionalProperties/extendsRecordUnknown`,
129
+ {
130
+ name: "ExtendsUnknownAdditionalProperties",
131
+ prop1: 32,
132
+ prop2: true,
133
+ prop3: "abc",
134
+ },
135
+ );
136
+ Scenarios.Type_Property_AdditionalProperties_ExtendsUnknown_get =
137
+ Type_Property_Additional_Properties_Extends_Record_Unknown.get;
138
+ Scenarios.Type_Property_AdditionalProperties_ExtendsUnknown_put =
139
+ Type_Property_Additional_Properties_Extends_Record_Unknown.put;
140
+
141
+ const Type_Property_Additional_Properties_Extends_Record_Unknown_Derived = createServerTests(
142
+ `/type/property/additionalProperties/extendsRecordUnknownDerived`,
143
+ {
144
+ name: "ExtendsUnknownAdditionalProperties",
145
+ index: 314,
146
+ age: 2.71875,
147
+ prop1: 32,
148
+ prop2: true,
149
+ prop3: "abc",
150
+ },
151
+ );
152
+ Scenarios.Type_Property_AdditionalProperties_ExtendsUnknownDerived_get =
153
+ Type_Property_Additional_Properties_Extends_Record_Unknown_Derived.get;
154
+ Scenarios.Type_Property_AdditionalProperties_ExtendsUnknownDerived_put =
155
+ Type_Property_Additional_Properties_Extends_Record_Unknown_Derived.put;
156
+
157
+ const Type_Property_Additional_Properties_Extends_Unknown_Discriminated = createServerTests(
158
+ `/type/property/additionalProperties/extendsUnknownDiscriminated`,
159
+ {
160
+ kind: "derived",
161
+ name: "Derived",
162
+ index: 314,
163
+ age: 2.71875,
164
+ prop1: 32,
165
+ prop2: true,
166
+ prop3: "abc",
167
+ },
168
+ );
169
+ Scenarios.Type_Property_AdditionalProperties_ExtendsUnknownDiscriminated_get =
170
+ Type_Property_Additional_Properties_Extends_Unknown_Discriminated.get;
171
+ Scenarios.Type_Property_AdditionalProperties_ExtendsUnknownDiscriminated_put =
172
+ Type_Property_Additional_Properties_Extends_Unknown_Discriminated.put;
173
+
174
+ const Type_Property_Additional_Properties_Is_Record_Unknown = createServerTests(
175
+ `/type/property/additionalProperties/isRecordUnknown`,
176
+ {
177
+ name: "IsUnknownAdditionalProperties",
178
+ prop1: 32,
179
+ prop2: true,
180
+ prop3: "abc",
181
+ },
182
+ );
183
+ Scenarios.Type_Property_AdditionalProperties_IsUnknown_get =
184
+ Type_Property_Additional_Properties_Is_Record_Unknown.get;
185
+ Scenarios.Type_Property_AdditionalProperties_IsUnknown_put =
186
+ Type_Property_Additional_Properties_Is_Record_Unknown.put;
187
+
188
+ const Type_Property_Additional_Properties_Is_Record_Unknown_Derived = createServerTests(
189
+ `/type/property/additionalProperties/isRecordUnknownDerived`,
190
+ {
191
+ name: "IsUnknownAdditionalProperties",
192
+ index: 314,
193
+ age: 2.71875,
194
+ prop1: 32,
195
+ prop2: true,
196
+ prop3: "abc",
197
+ },
198
+ );
199
+ Scenarios.Type_Property_AdditionalProperties_IsUnknownDerived_get =
200
+ Type_Property_Additional_Properties_Is_Record_Unknown_Derived.get;
201
+ Scenarios.Type_Property_AdditionalProperties_IsUnknownDerived_put =
202
+ Type_Property_Additional_Properties_Is_Record_Unknown_Derived.put;
203
+
204
+ const Type_Property_Additional_Properties_Is_Unknown_Discriminated = createServerTests(
205
+ `/type/property/additionalProperties/isUnknownDiscriminated`,
206
+ {
207
+ kind: "derived",
208
+ name: "Derived",
209
+ index: 314,
210
+ age: 2.71875,
211
+ prop1: 32,
212
+ prop2: true,
213
+ prop3: "abc",
214
+ },
215
+ );
216
+ Scenarios.Type_Property_AdditionalProperties_IsUnknownDiscriminated_get =
217
+ Type_Property_Additional_Properties_Is_Unknown_Discriminated.get;
218
+ Scenarios.Type_Property_AdditionalProperties_IsUnknownDiscriminated_put =
219
+ Type_Property_Additional_Properties_Is_Unknown_Discriminated.put;
220
+
221
+ const Type_Property_Additional_Properties_Extends_Record_String = createServerTests(
222
+ `/type/property/additionalProperties/extendsRecordString`,
223
+ {
224
+ name: "ExtendsStringAdditionalProperties",
225
+ prop: "abc",
226
+ },
227
+ );
228
+ Scenarios.Type_Property_AdditionalProperties_ExtendsString_get =
229
+ Type_Property_Additional_Properties_Extends_Record_String.get;
230
+ Scenarios.Type_Property_AdditionalProperties_ExtendsString_put =
231
+ Type_Property_Additional_Properties_Extends_Record_String.put;
232
+
233
+ const Type_Property_Additional_Properties_Is_Record_String = createServerTests(
234
+ `/type/property/additionalProperties/isRecordstring`,
235
+ {
236
+ name: "IsStringAdditionalProperties",
237
+ prop: "abc",
238
+ },
239
+ );
240
+ Scenarios.Type_Property_AdditionalProperties_IsString_get =
241
+ Type_Property_Additional_Properties_Is_Record_String.get;
242
+ Scenarios.Type_Property_AdditionalProperties_IsString_put =
243
+ Type_Property_Additional_Properties_Is_Record_String.put;
244
+
245
+ const Type_Property_Additional_Properties_Extends_Record_Float = createServerTests(
246
+ `/type/property/additionalProperties/extendsRecordFloat`,
247
+ recordFloatBody,
248
+ );
249
+ Scenarios.Type_Property_AdditionalProperties_ExtendsFloat_get =
250
+ Type_Property_Additional_Properties_Extends_Record_Float.get;
251
+ Scenarios.Type_Property_AdditionalProperties_ExtendsFloat_put =
252
+ Type_Property_Additional_Properties_Extends_Record_Float.put;
253
+
254
+ const Type_Property_Additional_Properties_Is_Record_Float = createServerTests(
255
+ `/type/property/additionalProperties/isRecordFloat`,
256
+ recordFloatBody,
257
+ );
258
+ Scenarios.Type_Property_AdditionalProperties_IsFloat_get =
259
+ Type_Property_Additional_Properties_Is_Record_Float.get;
260
+ Scenarios.Type_Property_AdditionalProperties_IsFloat_put =
261
+ Type_Property_Additional_Properties_Is_Record_Float.put;
262
+
263
+ const Type_Property_Additional_Properties_Extends_Record_Model = createServerTests(
264
+ `/type/property/additionalProperties/extendsRecordModel`,
265
+ recordModelBody,
266
+ );
267
+ Scenarios.Type_Property_AdditionalProperties_ExtendsModel_get =
268
+ Type_Property_Additional_Properties_Extends_Record_Model.get;
269
+ Scenarios.Type_Property_AdditionalProperties_ExtendsModel_put =
270
+ Type_Property_Additional_Properties_Extends_Record_Model.put;
271
+
272
+ const Type_Property_Additional_Properties_Is_Record_Model = createServerTests(
273
+ `/type/property/additionalProperties/isRecordModel`,
274
+ recordModelBody,
275
+ );
276
+ Scenarios.Type_Property_AdditionalProperties_IsModel_get =
277
+ Type_Property_Additional_Properties_Is_Record_Model.get;
278
+ Scenarios.Type_Property_AdditionalProperties_IsModel_put =
279
+ Type_Property_Additional_Properties_Is_Record_Model.put;
280
+
281
+ const Type_Property_Additional_Properties_Extends_Record_Model_Array = createServerTests(
282
+ `/type/property/additionalProperties/extendsRecordModelArray`,
283
+ recordModelArrayBody,
284
+ );
285
+ Scenarios.Type_Property_AdditionalProperties_ExtendsModelArray_get =
286
+ Type_Property_Additional_Properties_Extends_Record_Model_Array.get;
287
+ Scenarios.Type_Property_AdditionalProperties_ExtendsModelArray_put =
288
+ Type_Property_Additional_Properties_Extends_Record_Model_Array.put;
289
+
290
+ const Type_Property_Additional_Properties_Is_Record_Model_Array = createServerTests(
291
+ `/type/property/additionalProperties/isRecordModelArray`,
292
+ recordModelArrayBody,
293
+ );
294
+ Scenarios.Type_Property_AdditionalProperties_IsModelArray_get =
295
+ Type_Property_Additional_Properties_Is_Record_Model_Array.get;
296
+ Scenarios.Type_Property_AdditionalProperties_IsModelArray_put =
297
+ Type_Property_Additional_Properties_Is_Record_Model_Array.put;
298
+
299
+ const Type_Property_Additional_Properties_Spread_Record_String = createServerTests(
300
+ `/type/property/additionalProperties/spreadRecordString`,
301
+ {
302
+ name: "SpreadSpringRecord",
303
+ prop: "abc",
304
+ },
305
+ );
306
+ Scenarios.Type_Property_AdditionalProperties_SpreadString_get =
307
+ Type_Property_Additional_Properties_Spread_Record_String.get;
308
+ Scenarios.Type_Property_AdditionalProperties_SpreadString_put =
309
+ Type_Property_Additional_Properties_Spread_Record_String.put;
310
+
311
+ const Type_Property_Additional_Properties_Spread_Record_Float = createServerTests(
312
+ `/type/property/additionalProperties/spreadRecordFloat`,
313
+ recordFloatBody,
314
+ );
315
+ Scenarios.Type_Property_AdditionalProperties_SpreadFloat_get =
316
+ Type_Property_Additional_Properties_Spread_Record_Float.get;
317
+ Scenarios.Type_Property_AdditionalProperties_SpreadFloat_put =
318
+ Type_Property_Additional_Properties_Spread_Record_Float.put;
319
+
320
+ const Type_Property_Additional_Properties_Spread_Record_Model = createServerTests(
321
+ `/type/property/additionalProperties/spreadRecordModel`,
322
+ recordModelBody,
323
+ );
324
+ Scenarios.Type_Property_AdditionalProperties_SpreadModel_get =
325
+ Type_Property_Additional_Properties_Spread_Record_Model.get;
326
+ Scenarios.Type_Property_AdditionalProperties_SpreadModel_put =
327
+ Type_Property_Additional_Properties_Spread_Record_Model.put;
328
+
329
+ const Type_Property_Additional_Properties_Spread_Record_Model_Array = createServerTests(
330
+ `/type/property/additionalProperties/spreadRecordModelArray`,
331
+ recordModelArrayBody,
332
+ );
333
+ Scenarios.Type_Property_AdditionalProperties_SpreadModelArray_get =
334
+ Type_Property_Additional_Properties_Spread_Record_Model_Array.get;
335
+ Scenarios.Type_Property_AdditionalProperties_SpreadModelArray_put =
336
+ Type_Property_Additional_Properties_Spread_Record_Model_Array.put;
337
+
338
+ const Type_Property_Additional_Properties_Spread_Different_Record_String = createServerTests(
339
+ `/type/property/additionalProperties/spreadDifferentRecordString`,
340
+ differentRecordStringBody,
341
+ );
342
+ Scenarios.Type_Property_AdditionalProperties_SpreadDifferentString_get =
343
+ Type_Property_Additional_Properties_Spread_Different_Record_String.get;
344
+ Scenarios.Type_Property_AdditionalProperties_SpreadDifferentString_put =
345
+ Type_Property_Additional_Properties_Spread_Different_Record_String.put;
346
+
347
+ const Type_Property_Additional_Properties_Spread_Different_Record_Float = createServerTests(
348
+ `/type/property/additionalProperties/spreadDifferentRecordFloat`,
349
+ differentRecordFloatBody,
350
+ );
351
+ Scenarios.Type_Property_AdditionalProperties_SpreadDifferentFloat_get =
352
+ Type_Property_Additional_Properties_Spread_Different_Record_Float.get;
353
+ Scenarios.Type_Property_AdditionalProperties_SpreadDifferentFloat_put =
354
+ Type_Property_Additional_Properties_Spread_Different_Record_Float.put;
355
+
356
+ const Type_Property_Additional_Properties_Spread_Different_Record_Model = createServerTests(
357
+ `/type/property/additionalProperties/spreadDifferentRecordModel`,
358
+ differentRecordModelBody,
359
+ );
360
+ Scenarios.Type_Property_AdditionalProperties_SpreadDifferentModel_get =
361
+ Type_Property_Additional_Properties_Spread_Different_Record_Model.get;
362
+ Scenarios.Type_Property_AdditionalProperties_SpreadDifferentModel_put =
363
+ Type_Property_Additional_Properties_Spread_Different_Record_Model.put;
364
+
365
+ const Type_Property_Additional_Properties_Spread_Different_Record_Model_Array = createServerTests(
366
+ `/type/property/additionalProperties/spreadDifferentRecordModelArray`,
367
+ differentRecordModelArrayBody,
368
+ );
369
+ Scenarios.Type_Property_AdditionalProperties_SpreadDifferentModelArray_get =
370
+ Type_Property_Additional_Properties_Spread_Different_Record_Model_Array.get;
371
+ Scenarios.Type_Property_AdditionalProperties_SpreadDifferentModelArray_put =
372
+ Type_Property_Additional_Properties_Spread_Different_Record_Model_Array.put;
373
+
374
+ const Type_Property_Additional_Properties_Extends_Different_Spread_String = createServerTests(
375
+ `/type/property/additionalProperties/extendsDifferentSpreadString`,
376
+ extendsModelSpreadStringBody,
377
+ );
378
+ Scenarios.Type_Property_AdditionalProperties_ExtendsDifferentSpreadString_get =
379
+ Type_Property_Additional_Properties_Extends_Different_Spread_String.get;
380
+ Scenarios.Type_Property_AdditionalProperties_ExtendsDifferentSpreadString_put =
381
+ Type_Property_Additional_Properties_Extends_Different_Spread_String.put;
382
+
383
+ const Type_Property_Additional_Properties_Extends_Different_Spread_Float = createServerTests(
384
+ `/type/property/additionalProperties/extendsDifferentSpreadFloat`,
385
+ extendsModelSpreadFloatBody,
386
+ );
387
+ Scenarios.Type_Property_AdditionalProperties_ExtendsDifferentSpreadFloat_get =
388
+ Type_Property_Additional_Properties_Extends_Different_Spread_Float.get;
389
+ Scenarios.Type_Property_AdditionalProperties_ExtendsDifferentSpreadFloat_put =
390
+ Type_Property_Additional_Properties_Extends_Different_Spread_Float.put;
391
+
392
+ const Type_Property_Additional_Properties_Extends_Different_Spread_Model = createServerTests(
393
+ `/type/property/additionalProperties/extendsDifferentSpreadModel`,
394
+ extendsModelSpreadModelBody,
395
+ );
396
+ Scenarios.Type_Property_AdditionalProperties_ExtendsDifferentSpreadModel_get =
397
+ Type_Property_Additional_Properties_Extends_Different_Spread_Model.get;
398
+ Scenarios.Type_Property_AdditionalProperties_ExtendsDifferentSpreadModel_put =
399
+ Type_Property_Additional_Properties_Extends_Different_Spread_Model.put;
400
+
401
+ const Type_Property_Additional_Properties_Extends_Different_Spread_Model_Array = createServerTests(
402
+ `/type/property/additionalProperties/extendsDifferentSpreadModelArray`,
403
+ extendsModelSpreadModelArrayBody,
404
+ );
405
+ Scenarios.Type_Property_AdditionalProperties_ExtendsDifferentSpreadModelArray_get =
406
+ Type_Property_Additional_Properties_Extends_Different_Spread_Model_Array.get;
407
+ Scenarios.Type_Property_AdditionalProperties_ExtendsDifferentSpreadModelArray_put =
408
+ Type_Property_Additional_Properties_Extends_Different_Spread_Model_Array.put;
409
+
410
+ const Type_Property_Additional_Properties_Multiple_Spread_Record = createServerTests(
411
+ `/type/property/additionalProperties/multipleSpreadRecord`,
412
+ multipleSpreadBody,
413
+ );
414
+ Scenarios.Type_Property_AdditionalProperties_MultipleSpread_get =
415
+ Type_Property_Additional_Properties_Multiple_Spread_Record.get;
416
+ Scenarios.Type_Property_AdditionalProperties_MultipleSpread_put =
417
+ Type_Property_Additional_Properties_Multiple_Spread_Record.put;
418
+
419
+ const Type_Property_Additional_Properties_Spread_Record_Union = createServerTests(
420
+ `/type/property/additionalProperties/spreadRecordUnion`,
421
+ recordUnionBody,
422
+ );
423
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordUnion_get =
424
+ Type_Property_Additional_Properties_Spread_Record_Union.get;
425
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordUnion_put =
426
+ Type_Property_Additional_Properties_Spread_Record_Union.put;
427
+
428
+ const Type_Property_Additional_Properties_Spread_Record_Discriminated_Union = createServerTests(
429
+ `/type/property/additionalProperties/spreadRecordDiscriminatedUnion`,
430
+ recordDiscriminatedUnionBody,
431
+ );
432
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordDiscriminatedUnion_get =
433
+ Type_Property_Additional_Properties_Spread_Record_Discriminated_Union.get;
434
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordDiscriminatedUnion_put =
435
+ Type_Property_Additional_Properties_Spread_Record_Discriminated_Union.put;
436
+
437
+ const Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union = createServerTests(
438
+ `/type/property/additionalProperties/spreadRecordNonDiscriminatedUnion`,
439
+ recordDiscriminatedUnionBody,
440
+ );
441
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordNonDiscriminatedUnion_get =
442
+ Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union.get;
443
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordNonDiscriminatedUnion_put =
444
+ Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union.put;
445
+
446
+ const Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union2 =
447
+ createServerTests(
448
+ `/type/property/additionalProperties/spreadRecordNonDiscriminatedUnion2`,
449
+ recordNonDiscriminatedUnion2Body,
450
+ );
451
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordNonDiscriminatedUnion2_get =
452
+ Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union2.get;
453
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordNonDiscriminatedUnion2_put =
454
+ Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union2.put;
455
+
456
+ const Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union3 =
457
+ createServerTests(
458
+ `/type/property/additionalProperties/spreadRecordNonDiscriminatedUnion3`,
459
+ recordNonDiscriminatedUnion3Body,
460
+ );
461
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordNonDiscriminatedUnion3_get =
462
+ Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union3.get;
463
+ Scenarios.Type_Property_AdditionalProperties_SpreadRecordNonDiscriminatedUnion3_put =
464
+ Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union3.put;
@@ -0,0 +1,139 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ @doc("Illustrates models with nullable properties.")
8
+ @scenarioService("/type/property/nullable")
9
+ namespace Type.Property.Nullable;
10
+
11
+ @doc("Template type for testing models with nullable property. Pass in the type of the property you are looking for")
12
+ model ModelTemplate<TProperty> {
13
+ @doc("Required property")
14
+ requiredProperty: string;
15
+
16
+ @doc("Property")
17
+ nullableProperty: TProperty | null;
18
+ }
19
+
20
+ @doc("Operations associated with getting and putting models with nullable properties.")
21
+ interface OperationsTemplate<
22
+ TModel,
23
+ TDoc extends valueof string,
24
+ TDefaultDoc extends valueof string = "null"
25
+ > {
26
+ @doc("Get models that will return all properties in the model")
27
+ @scenario
28
+ @scenarioDoc("""
29
+ Expected response body:
30
+ ```json
31
+ { "requiredProperty": "foo", "nullableProperty": ${TDoc}}
32
+ ```
33
+ """)
34
+ @route("/non-null")
35
+ @get
36
+ getNonNull(): TModel;
37
+
38
+ @doc("Get models that will return the default object")
39
+ @scenario
40
+ @scenarioDoc("""
41
+ Expected response body:
42
+ ```json
43
+ { "requiredProperty": "foo", "nullableProperty": ${TDefaultDoc}}
44
+ ```
45
+ """)
46
+ @route("/null")
47
+ @get
48
+ getNull(): TModel;
49
+
50
+ @doc("Put a body with all properties present.")
51
+ @scenario
52
+ @scenarioDoc("""
53
+ Expected request body:
54
+ ```json
55
+ { "requiredProperty": "foo", "nullableProperty": ${TDoc}}
56
+ ```
57
+ """)
58
+ @route("/non-null")
59
+ @patch
60
+ patchNonNull(
61
+ @doc("content-type is application/merge-patch+json")
62
+ @header("Content-Type")
63
+ contentType: "application/merge-patch+json",
64
+
65
+ @body body: TModel,
66
+ ): void;
67
+
68
+ @doc("Put a body with default properties.")
69
+ @scenario
70
+ @scenarioDoc("""
71
+ Expected request body:
72
+ ```json
73
+ { "requiredProperty": "foo", "nullableProperty": ${TDefaultDoc}}
74
+ ```
75
+ """)
76
+ @route("/null")
77
+ @patch
78
+ patchNull(
79
+ @doc("content-type is application/merge-patch+json")
80
+ @header("Content-Type")
81
+ contentType: "application/merge-patch+json",
82
+
83
+ @body body: TModel,
84
+ ): void;
85
+ }
86
+
87
+ // Model with nullable string property
88
+ model StringProperty is ModelTemplate<string>;
89
+ @route("/string")
90
+ interface String extends OperationsTemplate<StringProperty, "hello"> {}
91
+
92
+ // Model with nullable bytes property
93
+ model BytesProperty is ModelTemplate<bytes>;
94
+ @route("/bytes")
95
+ interface Bytes extends OperationsTemplate<BytesProperty, "aGVsbG8sIHdvcmxkIQ=="> {}
96
+
97
+ // Model with nullable datetime property
98
+ @doc("Model with a datetime property")
99
+ model DatetimeProperty is ModelTemplate<utcDateTime>;
100
+ @route("/datetime")
101
+ interface Datetime extends OperationsTemplate<DatetimeProperty, "2022-08-26T18:38:00Z"> {}
102
+
103
+ // Model with nullable duration property
104
+ @doc("Model with a duration property")
105
+ model DurationProperty is ModelTemplate<duration>;
106
+ @route("/duration")
107
+ interface Duration extends OperationsTemplate<DurationProperty, "P123DT22H14M12.011S"> {}
108
+
109
+ // Model with nullable collection bytes property
110
+ @doc("Model with collection bytes properties")
111
+ model CollectionsByteProperty is ModelTemplate<bytes[]>;
112
+ @route("/collections/bytes")
113
+ interface CollectionsByte
114
+ extends OperationsTemplate<
115
+ CollectionsByteProperty,
116
+ "[aGVsbG8sIHdvcmxkIQ==, aGVsbG8sIHdvcmxkIQ==]"
117
+ > {}
118
+
119
+ // Model with nullable collection models property
120
+ @doc("Inner model used in collections model property")
121
+ model InnerModel {
122
+ @doc("Inner model property")
123
+ property: string;
124
+ }
125
+ @doc("Model with collection models properties")
126
+ model CollectionsModelProperty is ModelTemplate<InnerModel[]>;
127
+ @route("/collections/model")
128
+ interface CollectionsModel
129
+ extends OperationsTemplate<
130
+ CollectionsModelProperty,
131
+ "[{'property': 'hello'}, {'property': 'world'}]"
132
+ > {}
133
+
134
+ // Model with nullable collection string property
135
+ @doc("Model with collection string properties")
136
+ model CollectionsStringProperty is ModelTemplate<string[]>;
137
+ @route("/collections/string")
138
+ interface CollectionsString
139
+ extends OperationsTemplate<CollectionsStringProperty, "['hello', 'world']"> {}