@fern-api/fdr-sdk 1.1.24-e30ed51fda → 1.1.24-e3bdb9c0a9

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 (1177) hide show
  1. package/dist/__test__/SdkSnippetHolder.test.d.ts +2 -0
  2. package/dist/__test__/SdkSnippetHolder.test.d.ts.map +1 -0
  3. package/dist/__test__/SdkSnippetHolder.test.js +58 -0
  4. package/dist/__test__/SdkSnippetHolder.test.js.map +1 -0
  5. package/dist/__test__/fixtures.test.d.ts +2 -0
  6. package/dist/__test__/fixtures.test.d.ts.map +1 -0
  7. package/dist/__test__/fixtures.test.js +128 -0
  8. package/dist/__test__/fixtures.test.js.map +1 -0
  9. package/dist/__test__/hume.test.d.ts +2 -0
  10. package/dist/__test__/hume.test.d.ts.map +1 -0
  11. package/dist/__test__/hume.test.js +18 -0
  12. package/dist/__test__/hume.test.js.map +1 -0
  13. package/dist/__test__/no-version-no-tabs.test.d.ts +2 -0
  14. package/dist/__test__/no-version-no-tabs.test.d.ts.map +1 -0
  15. package/dist/__test__/no-version-no-tabs.test.js +17 -0
  16. package/dist/__test__/no-version-no-tabs.test.js.map +1 -0
  17. package/dist/__test__/no-version-yes-tabs.test.d.ts +2 -0
  18. package/dist/__test__/no-version-yes-tabs.test.d.ts.map +1 -0
  19. package/dist/__test__/no-version-yes-tabs.test.js +24 -0
  20. package/dist/__test__/no-version-yes-tabs.test.js.map +1 -0
  21. package/dist/__test__/octoai.test.d.ts +2 -0
  22. package/dist/__test__/octoai.test.d.ts.map +1 -0
  23. package/dist/__test__/octoai.test.js +24 -0
  24. package/dist/__test__/octoai.test.js.map +1 -0
  25. package/dist/__test__/polytomic.test.d.ts +2 -0
  26. package/dist/__test__/polytomic.test.d.ts.map +1 -0
  27. package/dist/__test__/polytomic.test.js +22 -0
  28. package/dist/__test__/polytomic.test.js.map +1 -0
  29. package/dist/__test__/primer.test.d.ts +2 -0
  30. package/dist/__test__/primer.test.d.ts.map +1 -0
  31. package/dist/__test__/primer.test.js +20 -0
  32. package/dist/__test__/primer.test.js.map +1 -0
  33. package/dist/__test__/readFixtures.d.ts +3 -0
  34. package/dist/__test__/readFixtures.d.ts.map +1 -0
  35. package/dist/__test__/readFixtures.js +8 -0
  36. package/dist/__test__/readFixtures.js.map +1 -0
  37. package/dist/__test__/testGetAllUrlsFromDocsConfig.d.ts +3 -0
  38. package/dist/__test__/testGetAllUrlsFromDocsConfig.d.ts.map +1 -0
  39. package/dist/__test__/testGetAllUrlsFromDocsConfig.js +10 -0
  40. package/dist/__test__/testGetAllUrlsFromDocsConfig.js.map +1 -0
  41. package/dist/__test__/testGetNavigationRoot.d.ts +3 -0
  42. package/dist/__test__/testGetNavigationRoot.d.ts.map +1 -0
  43. package/dist/__test__/testGetNavigationRoot.js +16 -0
  44. package/dist/__test__/testGetNavigationRoot.js.map +1 -0
  45. package/dist/__test__/uploadcare.test.d.ts +2 -0
  46. package/dist/__test__/uploadcare.test.d.ts.map +1 -0
  47. package/dist/__test__/uploadcare.test.js +25 -0
  48. package/dist/__test__/uploadcare.test.js.map +1 -0
  49. package/dist/__test__/yes-version-no-tabs.test.d.ts +2 -0
  50. package/dist/__test__/yes-version-no-tabs.test.d.ts.map +1 -0
  51. package/dist/__test__/yes-version-no-tabs.test.js +27 -0
  52. package/dist/__test__/yes-version-no-tabs.test.js.map +1 -0
  53. package/dist/__test__/yes-version-yes-tabs.test.d.ts +2 -0
  54. package/dist/__test__/yes-version-yes-tabs.test.d.ts.map +1 -0
  55. package/dist/__test__/yes-version-yes-tabs.test.js +26 -0
  56. package/dist/__test__/yes-version-yes-tabs.test.js.map +1 -0
  57. package/dist/api-definition/__test__/availability.test.d.ts +2 -0
  58. package/dist/api-definition/__test__/availability.test.d.ts.map +1 -0
  59. package/dist/api-definition/__test__/availability.test.js +15 -0
  60. package/dist/api-definition/__test__/availability.test.js.map +1 -0
  61. package/dist/api-definition/__test__/join.test.d.ts +2 -0
  62. package/dist/api-definition/__test__/join.test.d.ts.map +1 -0
  63. package/dist/api-definition/__test__/join.test.js +325 -0
  64. package/dist/api-definition/__test__/join.test.js.map +1 -0
  65. package/dist/api-definition/__test__/prune.test.d.ts +2 -0
  66. package/dist/api-definition/__test__/prune.test.d.ts.map +1 -0
  67. package/dist/api-definition/__test__/prune.test.js +271 -0
  68. package/dist/api-definition/__test__/prune.test.js.map +1 -0
  69. package/dist/api-definition/__test__/schemaless-pipeline.test.d.ts +2 -0
  70. package/dist/api-definition/__test__/schemaless-pipeline.test.d.ts.map +1 -0
  71. package/dist/api-definition/__test__/schemaless-pipeline.test.js +258 -0
  72. package/dist/api-definition/__test__/schemaless-pipeline.test.js.map +1 -0
  73. package/dist/api-definition/__test__/unwrap.test.d.ts +2 -0
  74. package/dist/api-definition/__test__/unwrap.test.d.ts.map +1 -0
  75. package/dist/api-definition/__test__/unwrap.test.js +669 -0
  76. package/dist/api-definition/__test__/unwrap.test.js.map +1 -0
  77. package/dist/api-definition/__test__/v1ToV2.test.d.ts +2 -0
  78. package/dist/api-definition/__test__/v1ToV2.test.d.ts.map +1 -0
  79. package/dist/api-definition/__test__/v1ToV2.test.js +1168 -0
  80. package/dist/api-definition/__test__/v1ToV2.test.js.map +1 -0
  81. package/dist/api-definition/availability.d.ts +18 -0
  82. package/dist/api-definition/availability.d.ts.map +1 -0
  83. package/dist/api-definition/availability.js +27 -0
  84. package/dist/api-definition/availability.js.map +1 -0
  85. package/dist/api-definition/collect-referenced-types.d.ts +29 -0
  86. package/dist/api-definition/collect-referenced-types.d.ts.map +1 -0
  87. package/dist/api-definition/collect-referenced-types.js +123 -0
  88. package/dist/api-definition/collect-referenced-types.js.map +1 -0
  89. package/dist/api-definition/collect-type-tree.d.ts +58 -0
  90. package/dist/api-definition/collect-type-tree.d.ts.map +1 -0
  91. package/dist/api-definition/collect-type-tree.js +177 -0
  92. package/dist/api-definition/collect-type-tree.js.map +1 -0
  93. package/dist/api-definition/const.d.ts +11 -0
  94. package/dist/api-definition/const.d.ts.map +1 -0
  95. package/dist/api-definition/const.js +11 -0
  96. package/dist/api-definition/const.js.map +1 -0
  97. package/dist/api-definition/endpoint-context.d.ts +53 -0
  98. package/dist/api-definition/endpoint-context.d.ts.map +1 -0
  99. package/dist/api-definition/endpoint-context.js +236 -0
  100. package/dist/api-definition/endpoint-context.js.map +1 -0
  101. package/dist/api-definition/endpoint-path-literal.d.ts +11 -0
  102. package/dist/api-definition/endpoint-path-literal.d.ts.map +1 -0
  103. package/dist/api-definition/endpoint-path-literal.js +14 -0
  104. package/dist/api-definition/endpoint-path-literal.js.map +1 -0
  105. package/dist/api-definition/index.d.ts +17 -0
  106. package/dist/api-definition/index.d.ts.map +1 -0
  107. package/dist/api-definition/index.js +17 -0
  108. package/dist/api-definition/index.js.map +1 -0
  109. package/dist/api-definition/join.d.ts +11 -0
  110. package/dist/api-definition/join.d.ts.map +1 -0
  111. package/dist/api-definition/join.js +80 -0
  112. package/dist/api-definition/join.js.map +1 -0
  113. package/dist/api-definition/lang.d.ts +2 -0
  114. package/dist/api-definition/lang.d.ts.map +1 -0
  115. package/dist/api-definition/lang.js +17 -0
  116. package/dist/api-definition/lang.js.map +1 -0
  117. package/dist/api-definition/latest.d.ts +54 -0
  118. package/dist/api-definition/latest.d.ts.map +1 -0
  119. package/dist/api-definition/latest.js +7 -0
  120. package/dist/api-definition/latest.js.map +1 -0
  121. package/dist/api-definition/migrators/v1ToV2.d.ts +856 -0
  122. package/dist/api-definition/migrators/v1ToV2.d.ts.map +1 -0
  123. package/dist/api-definition/migrators/v1ToV2.js +836 -0
  124. package/dist/api-definition/migrators/v1ToV2.js.map +1 -0
  125. package/dist/api-definition/prune.d.ts +19 -0
  126. package/dist/api-definition/prune.d.ts.map +1 -0
  127. package/dist/api-definition/prune.js +143 -0
  128. package/dist/api-definition/prune.js.map +1 -0
  129. package/dist/api-definition/snippets/HttpSnippetConverter.d.ts +18 -0
  130. package/dist/api-definition/snippets/HttpSnippetConverter.d.ts.map +1 -0
  131. package/dist/api-definition/snippets/HttpSnippetConverter.js +228 -0
  132. package/dist/api-definition/snippets/HttpSnippetConverter.js.map +1 -0
  133. package/dist/api-definition/snippets/HttpSnippetConverter.test.d.ts +2 -0
  134. package/dist/api-definition/snippets/HttpSnippetConverter.test.d.ts.map +1 -0
  135. package/dist/api-definition/snippets/HttpSnippetConverter.test.js +290 -0
  136. package/dist/api-definition/snippets/HttpSnippetConverter.test.js.map +1 -0
  137. package/dist/api-definition/snippets/SnippetHttpRequest.d.ts +44 -0
  138. package/dist/api-definition/snippets/SnippetHttpRequest.d.ts.map +1 -0
  139. package/dist/api-definition/snippets/SnippetHttpRequest.js +140 -0
  140. package/dist/api-definition/snippets/SnippetHttpRequest.js.map +1 -0
  141. package/dist/api-definition/snippets/auth-scheme.d.ts +41 -0
  142. package/dist/api-definition/snippets/auth-scheme.d.ts.map +1 -0
  143. package/dist/api-definition/snippets/auth-scheme.js +128 -0
  144. package/dist/api-definition/snippets/auth-scheme.js.map +1 -0
  145. package/dist/api-definition/snippets/auth-scheme.test.d.ts +2 -0
  146. package/dist/api-definition/snippets/auth-scheme.test.d.ts.map +1 -0
  147. package/dist/api-definition/snippets/auth-scheme.test.js +166 -0
  148. package/dist/api-definition/snippets/auth-scheme.test.js.map +1 -0
  149. package/dist/api-definition/snippets/backfill.d.ts +18 -0
  150. package/dist/api-definition/snippets/backfill.d.ts.map +1 -0
  151. package/dist/api-definition/snippets/backfill.js +110 -0
  152. package/dist/api-definition/snippets/backfill.js.map +1 -0
  153. package/dist/api-definition/snippets/backfill.test.d.ts +2 -0
  154. package/dist/api-definition/snippets/backfill.test.d.ts.map +1 -0
  155. package/dist/api-definition/snippets/backfill.test.js +2503 -0
  156. package/dist/api-definition/snippets/backfill.test.js.map +1 -0
  157. package/dist/api-definition/snippets/constants.d.ts +7 -0
  158. package/dist/api-definition/snippets/constants.d.ts.map +1 -0
  159. package/dist/api-definition/snippets/constants.js +15 -0
  160. package/dist/api-definition/snippets/constants.js.map +1 -0
  161. package/dist/api-definition/snippets/curl.d.ts +4 -0
  162. package/dist/api-definition/snippets/curl.d.ts.map +1 -0
  163. package/dist/api-definition/snippets/curl.js +176 -0
  164. package/dist/api-definition/snippets/curl.js.map +1 -0
  165. package/dist/api-definition/snippets/curl.test.d.ts +2 -0
  166. package/dist/api-definition/snippets/curl.test.d.ts.map +1 -0
  167. package/dist/api-definition/snippets/curl.test.js +358 -0
  168. package/dist/api-definition/snippets/curl.test.js.map +1 -0
  169. package/dist/api-definition/snippets/generators.d.ts +14 -0
  170. package/dist/api-definition/snippets/generators.d.ts.map +1 -0
  171. package/dist/api-definition/snippets/generators.js +100 -0
  172. package/dist/api-definition/snippets/generators.js.map +1 -0
  173. package/dist/api-definition/snippets/get-har-request.d.ts +11 -0
  174. package/dist/api-definition/snippets/get-har-request.d.ts.map +1 -0
  175. package/dist/api-definition/snippets/get-har-request.js +172 -0
  176. package/dist/api-definition/snippets/get-har-request.js.map +1 -0
  177. package/dist/api-definition/snippets/get-har-request.test.d.ts +2 -0
  178. package/dist/api-definition/snippets/get-har-request.test.d.ts.map +1 -0
  179. package/dist/api-definition/snippets/get-har-request.test.js +282 -0
  180. package/dist/api-definition/snippets/get-har-request.test.js.map +1 -0
  181. package/dist/api-definition/snippets/graphql-snippets.d.ts +22 -0
  182. package/dist/api-definition/snippets/graphql-snippets.d.ts.map +1 -0
  183. package/dist/api-definition/snippets/graphql-snippets.js +464 -0
  184. package/dist/api-definition/snippets/graphql-snippets.js.map +1 -0
  185. package/dist/api-definition/snippets/graphql-snippets.test.d.ts +2 -0
  186. package/dist/api-definition/snippets/graphql-snippets.test.d.ts.map +1 -0
  187. package/dist/api-definition/snippets/graphql-snippets.test.js +568 -0
  188. package/dist/api-definition/snippets/graphql-snippets.test.js.map +1 -0
  189. package/dist/api-definition/snippets/http-snippets.d.ts +26 -0
  190. package/dist/api-definition/snippets/http-snippets.d.ts.map +1 -0
  191. package/dist/api-definition/snippets/http-snippets.js +96 -0
  192. package/dist/api-definition/snippets/http-snippets.js.map +1 -0
  193. package/dist/api-definition/snippets/index.d.ts +13 -0
  194. package/dist/api-definition/snippets/index.d.ts.map +1 -0
  195. package/dist/api-definition/snippets/index.js +12 -0
  196. package/dist/api-definition/snippets/index.js.map +1 -0
  197. package/dist/api-definition/snippets/sdk-snippets.d.ts +16 -0
  198. package/dist/api-definition/snippets/sdk-snippets.d.ts.map +1 -0
  199. package/dist/api-definition/snippets/sdk-snippets.js +139 -0
  200. package/dist/api-definition/snippets/sdk-snippets.js.map +1 -0
  201. package/dist/api-definition/snippets/sdk-snippets.test.d.ts +2 -0
  202. package/dist/api-definition/snippets/sdk-snippets.test.d.ts.map +1 -0
  203. package/dist/api-definition/snippets/sdk-snippets.test.js +132 -0
  204. package/dist/api-definition/snippets/sdk-snippets.test.js.map +1 -0
  205. package/dist/api-definition/snippets/types.d.ts +43 -0
  206. package/dist/api-definition/snippets/types.d.ts.map +1 -0
  207. package/dist/api-definition/snippets/types.js +11 -0
  208. package/dist/api-definition/snippets/types.js.map +1 -0
  209. package/dist/api-definition/sort-keys.d.ts +5 -0
  210. package/dist/api-definition/sort-keys.d.ts.map +1 -0
  211. package/dist/api-definition/sort-keys.js +103 -0
  212. package/dist/api-definition/sort-keys.js.map +1 -0
  213. package/dist/api-definition/status-message.d.ts +9 -0
  214. package/dist/api-definition/status-message.d.ts.map +1 -0
  215. package/dist/api-definition/status-message.js +111 -0
  216. package/dist/api-definition/status-message.js.map +1 -0
  217. package/dist/api-definition/transformer.d.ts +68 -0
  218. package/dist/api-definition/transformer.d.ts.map +1 -0
  219. package/dist/api-definition/transformer.js +370 -0
  220. package/dist/api-definition/transformer.js.map +1 -0
  221. package/dist/api-definition/typeid-visitor.d.ts +16 -0
  222. package/dist/api-definition/typeid-visitor.d.ts.map +1 -0
  223. package/dist/api-definition/typeid-visitor.js +133 -0
  224. package/dist/api-definition/typeid-visitor.js.map +1 -0
  225. package/dist/api-definition/types.d.ts +7 -0
  226. package/dist/api-definition/types.d.ts.map +1 -0
  227. package/dist/api-definition/types.js +2 -0
  228. package/dist/api-definition/types.js.map +1 -0
  229. package/dist/api-definition/unwrap.d.ts +48 -0
  230. package/dist/api-definition/unwrap.d.ts.map +1 -0
  231. package/dist/api-definition/unwrap.js +294 -0
  232. package/dist/api-definition/unwrap.js.map +1 -0
  233. package/dist/api-definition/url.d.ts +22 -0
  234. package/dist/api-definition/url.d.ts.map +1 -0
  235. package/dist/api-definition/url.js +89 -0
  236. package/dist/api-definition/url.js.map +1 -0
  237. package/dist/api-definition/wrapOpenRPCRequest.d.ts +14 -0
  238. package/dist/api-definition/wrapOpenRPCRequest.d.ts.map +1 -0
  239. package/dist/api-definition/wrapOpenRPCRequest.js +20 -0
  240. package/dist/api-definition/wrapOpenRPCRequest.js.map +1 -0
  241. package/dist/client/APIV1Db.d.ts +5 -0
  242. package/dist/client/APIV1Db.d.ts.map +1 -0
  243. package/dist/client/APIV1Db.js +7 -0
  244. package/dist/client/APIV1Db.js.map +1 -0
  245. package/dist/client/APIV1Read.d.ts +16 -0
  246. package/dist/client/APIV1Read.d.ts.map +1 -0
  247. package/dist/client/APIV1Read.js +15 -0
  248. package/dist/client/APIV1Read.js.map +1 -0
  249. package/dist/client/APIV1Write.d.ts +5 -0
  250. package/dist/client/APIV1Write.d.ts.map +1 -0
  251. package/dist/client/APIV1Write.js +7 -0
  252. package/dist/client/APIV1Write.js.map +1 -0
  253. package/dist/client/ApiLatestEndpoint.d.ts +2 -0
  254. package/dist/client/ApiLatestEndpoint.d.ts.map +1 -0
  255. package/dist/client/ApiLatestEndpoint.js +2 -0
  256. package/dist/client/ApiLatestEndpoint.js.map +1 -0
  257. package/dist/client/ApiLatestWebhook.d.ts +2 -0
  258. package/dist/client/ApiLatestWebhook.d.ts.map +1 -0
  259. package/dist/client/ApiLatestWebhook.js +2 -0
  260. package/dist/client/ApiLatestWebhook.js.map +1 -0
  261. package/dist/client/ApiLatestWebsocket.d.ts +2 -0
  262. package/dist/client/ApiLatestWebsocket.d.ts.map +1 -0
  263. package/dist/client/ApiLatestWebsocket.js +2 -0
  264. package/dist/client/ApiLatestWebsocket.js.map +1 -0
  265. package/dist/client/ApiLatestWithSubs.d.ts +5 -0
  266. package/dist/client/ApiLatestWithSubs.d.ts.map +1 -0
  267. package/dist/client/ApiLatestWithSubs.js +5 -0
  268. package/dist/client/ApiLatestWithSubs.js.map +1 -0
  269. package/dist/client/DocsLatest.d.ts +2 -0
  270. package/dist/client/DocsLatest.d.ts.map +1 -0
  271. package/dist/client/DocsLatest.js +2 -0
  272. package/dist/client/DocsLatest.js.map +1 -0
  273. package/dist/client/DocsV1Commons.d.ts +2 -0
  274. package/dist/client/DocsV1Commons.d.ts.map +1 -0
  275. package/dist/client/DocsV1Commons.js +2 -0
  276. package/dist/client/DocsV1Commons.js.map +1 -0
  277. package/dist/client/DocsV1Db.d.ts +2 -0
  278. package/dist/client/DocsV1Db.d.ts.map +1 -0
  279. package/dist/client/DocsV1Db.js +2 -0
  280. package/dist/client/DocsV1Db.js.map +1 -0
  281. package/dist/client/DocsV1Read.d.ts +2 -0
  282. package/dist/client/DocsV1Read.d.ts.map +1 -0
  283. package/dist/client/DocsV1Read.js +2 -0
  284. package/dist/client/DocsV1Read.js.map +1 -0
  285. package/dist/client/DocsV1Write.d.ts +2 -0
  286. package/dist/client/DocsV1Write.d.ts.map +1 -0
  287. package/dist/client/DocsV1Write.js +2 -0
  288. package/dist/client/DocsV1Write.js.map +1 -0
  289. package/dist/client/FdrAPI.d.ts +71 -0
  290. package/dist/client/FdrAPI.d.ts.map +1 -0
  291. package/dist/client/FdrAPI.js +59 -0
  292. package/dist/client/FdrAPI.js.map +1 -0
  293. package/dist/client/FdrClient.d.ts +854 -0
  294. package/dist/client/FdrClient.d.ts.map +1 -0
  295. package/dist/client/FdrClient.js +56 -0
  296. package/dist/client/FdrClient.js.map +1 -0
  297. package/dist/client/Sdks.d.ts +2 -0
  298. package/dist/client/Sdks.d.ts.map +1 -0
  299. package/dist/client/Sdks.js +2 -0
  300. package/dist/client/Sdks.js.map +1 -0
  301. package/dist/client/docs-types/__test__/collapsed.test.d.ts +2 -0
  302. package/dist/client/docs-types/__test__/collapsed.test.d.ts.map +1 -0
  303. package/dist/client/docs-types/__test__/collapsed.test.js +72 -0
  304. package/dist/client/docs-types/__test__/collapsed.test.js.map +1 -0
  305. package/dist/client/docs-types/db-commons.d.ts +3 -0
  306. package/dist/client/docs-types/db-commons.d.ts.map +1 -0
  307. package/dist/client/docs-types/db-commons.js +2 -0
  308. package/dist/client/docs-types/db-commons.js.map +1 -0
  309. package/dist/client/docs-types/db-docsCommons.d.ts +3 -0
  310. package/dist/client/docs-types/db-docsCommons.d.ts.map +1 -0
  311. package/dist/client/docs-types/db-docsCommons.js +2 -0
  312. package/dist/client/docs-types/db-docsCommons.js.map +1 -0
  313. package/dist/client/docs-types/db-docsRead.d.ts +4671 -0
  314. package/dist/client/docs-types/db-docsRead.d.ts.map +1 -0
  315. package/dist/client/docs-types/db-docsRead.js +40 -0
  316. package/dist/client/docs-types/db-docsRead.js.map +1 -0
  317. package/dist/client/docs-types/db.d.ts +66593 -0
  318. package/dist/client/docs-types/db.d.ts.map +1 -0
  319. package/dist/client/docs-types/db.js +201 -0
  320. package/dist/client/docs-types/db.js.map +1 -0
  321. package/dist/client/docs-types/latest.d.ts +2252 -0
  322. package/dist/client/docs-types/latest.d.ts.map +1 -0
  323. package/dist/client/docs-types/latest.js +89 -0
  324. package/dist/client/docs-types/latest.js.map +1 -0
  325. package/dist/client/docs-types/read-commons.d.ts +9 -0
  326. package/dist/client/docs-types/read-commons.d.ts.map +1 -0
  327. package/dist/client/docs-types/read-commons.js +7 -0
  328. package/dist/client/docs-types/read-commons.js.map +1 -0
  329. package/dist/client/docs-types/read.d.ts +36217 -0
  330. package/dist/client/docs-types/read.d.ts.map +1 -0
  331. package/dist/client/docs-types/read.js +189 -0
  332. package/dist/client/docs-types/read.js.map +1 -0
  333. package/dist/client/docs-types/shared.d.ts +3792 -0
  334. package/dist/client/docs-types/shared.d.ts.map +1 -0
  335. package/dist/client/docs-types/shared.js +574 -0
  336. package/dist/client/docs-types/shared.js.map +1 -0
  337. package/dist/client/docs-types/write-commons.d.ts +9 -0
  338. package/dist/client/docs-types/write-commons.d.ts.map +1 -0
  339. package/dist/client/docs-types/write-commons.js +7 -0
  340. package/dist/client/docs-types/write-commons.js.map +1 -0
  341. package/dist/client/docs-types/write.d.ts +27245 -0
  342. package/dist/client/docs-types/write.d.ts.map +1 -0
  343. package/dist/client/docs-types/write.js +315 -0
  344. package/dist/client/docs-types/write.js.map +1 -0
  345. package/dist/client/index.d.ts +7 -0
  346. package/dist/client/index.d.ts.map +1 -0
  347. package/dist/client/index.js +7 -0
  348. package/dist/client/index.js.map +1 -0
  349. package/dist/client/libraryDocs.d.ts +381 -0
  350. package/dist/client/libraryDocs.d.ts.map +1 -0
  351. package/dist/client/libraryDocs.js +23 -0
  352. package/dist/client/libraryDocs.js.map +1 -0
  353. package/dist/client/types.d.ts +24 -0
  354. package/dist/client/types.d.ts.map +1 -0
  355. package/dist/client/types.js +11 -0
  356. package/dist/client/types.js.map +1 -0
  357. package/dist/client/visitDbNavigationConfig.d.ts +13 -0
  358. package/dist/client/visitDbNavigationConfig.d.ts.map +1 -0
  359. package/dist/client/visitDbNavigationConfig.js +24 -0
  360. package/dist/client/visitDbNavigationConfig.js.map +1 -0
  361. package/dist/client/visitNavigationTab.d.ts +13 -0
  362. package/dist/client/visitNavigationTab.d.ts.map +1 -0
  363. package/dist/client/visitNavigationTab.js +20 -0
  364. package/dist/client/visitNavigationTab.js.map +1 -0
  365. package/dist/client/visitReadNavigationConfig.d.ts +13 -0
  366. package/dist/client/visitReadNavigationConfig.d.ts.map +1 -0
  367. package/dist/client/visitReadNavigationConfig.js +23 -0
  368. package/dist/client/visitReadNavigationConfig.js.map +1 -0
  369. package/dist/client/visitWriteNavigationConfig.d.ts +13 -0
  370. package/dist/client/visitWriteNavigationConfig.d.ts.map +1 -0
  371. package/dist/client/visitWriteNavigationConfig.js +24 -0
  372. package/dist/client/visitWriteNavigationConfig.js.map +1 -0
  373. package/dist/converters/db/convertAPIDefinitionToDb.d.ts +9 -0
  374. package/dist/converters/db/convertAPIDefinitionToDb.d.ts.map +1 -0
  375. package/dist/converters/db/convertAPIDefinitionToDb.js +615 -0
  376. package/dist/converters/db/convertAPIDefinitionToDb.js.map +1 -0
  377. package/dist/converters/db/convertDocsDefinitionToDb.d.ts +25 -0
  378. package/dist/converters/db/convertDocsDefinitionToDb.d.ts.map +1 -0
  379. package/dist/converters/db/convertDocsDefinitionToDb.js +504 -0
  380. package/dist/converters/db/convertDocsDefinitionToDb.js.map +1 -0
  381. package/dist/converters/db/examples/generateEndpointExampleCall.d.ts +21 -0
  382. package/dist/converters/db/examples/generateEndpointExampleCall.d.ts.map +1 -0
  383. package/dist/converters/db/examples/generateEndpointExampleCall.js +175 -0
  384. package/dist/converters/db/examples/generateEndpointExampleCall.js.map +1 -0
  385. package/dist/converters/db/examples/generateHttpBodyExample.d.ts +9 -0
  386. package/dist/converters/db/examples/generateHttpBodyExample.d.ts.map +1 -0
  387. package/dist/converters/db/examples/generateHttpBodyExample.js +332 -0
  388. package/dist/converters/db/examples/generateHttpBodyExample.js.map +1 -0
  389. package/dist/converters/db/examples/generateWebhookExample.d.ts +6 -0
  390. package/dist/converters/db/examples/generateWebhookExample.d.ts.map +1 -0
  391. package/dist/converters/db/examples/generateWebhookExample.js +20 -0
  392. package/dist/converters/db/examples/generateWebhookExample.js.map +1 -0
  393. package/dist/converters/db/snippets/SDKSnippetHolder.d.ts +82 -0
  394. package/dist/converters/db/snippets/SDKSnippetHolder.d.ts.map +1 -0
  395. package/dist/converters/db/snippets/SDKSnippetHolder.js +125 -0
  396. package/dist/converters/db/snippets/SDKSnippetHolder.js.map +1 -0
  397. package/dist/converters/db/upgrade/migrateDocsDbDefinition.d.ts +3 -0
  398. package/dist/converters/db/upgrade/migrateDocsDbDefinition.d.ts.map +1 -0
  399. package/dist/converters/db/upgrade/migrateDocsDbDefinition.js +22 -0
  400. package/dist/converters/db/upgrade/migrateDocsDbDefinition.js.map +1 -0
  401. package/dist/converters/db/upgrade/upgradeV1ToV2.d.ts +3 -0
  402. package/dist/converters/db/upgrade/upgradeV1ToV2.d.ts.map +1 -0
  403. package/dist/converters/db/upgrade/upgradeV1ToV2.js +4 -0
  404. package/dist/converters/db/upgrade/upgradeV1ToV2.js.map +1 -0
  405. package/dist/converters/db/upgrade/upgradeV2ToV3.d.ts +3 -0
  406. package/dist/converters/db/upgrade/upgradeV2ToV3.d.ts.map +1 -0
  407. package/dist/converters/db/upgrade/upgradeV2ToV3.js +15 -0
  408. package/dist/converters/db/upgrade/upgradeV2ToV3.js.map +1 -0
  409. package/dist/converters/index.d.ts +8 -0
  410. package/dist/converters/index.d.ts.map +1 -0
  411. package/dist/converters/index.js +8 -0
  412. package/dist/converters/index.js.map +1 -0
  413. package/dist/converters/read/convertDbAPIDefinitionToRead.d.ts +2548 -0
  414. package/dist/converters/read/convertDbAPIDefinitionToRead.d.ts.map +1 -0
  415. package/dist/converters/read/convertDbAPIDefinitionToRead.js +199 -0
  416. package/dist/converters/read/convertDbAPIDefinitionToRead.js.map +1 -0
  417. package/dist/converters/read/convertDbDocsConfigToRead.d.ts +11 -0
  418. package/dist/converters/read/convertDbDocsConfigToRead.d.ts.map +1 -0
  419. package/dist/converters/read/convertDbDocsConfigToRead.js +380 -0
  420. package/dist/converters/read/convertDbDocsConfigToRead.js.map +1 -0
  421. package/dist/converters/read/convertDocsDefinitionToRead.d.ts +10 -0
  422. package/dist/converters/read/convertDocsDefinitionToRead.d.ts.map +1 -0
  423. package/dist/converters/read/convertDocsDefinitionToRead.js +19 -0
  424. package/dist/converters/read/convertDocsDefinitionToRead.js.map +1 -0
  425. package/dist/converters/utils/colors.d.ts +4 -0
  426. package/dist/converters/utils/colors.d.ts.map +1 -0
  427. package/dist/converters/utils/colors.js +13 -0
  428. package/dist/converters/utils/colors.js.map +1 -0
  429. package/dist/docs/frontmatter.d.ts +3 -0
  430. package/dist/docs/frontmatter.d.ts.map +1 -0
  431. package/dist/docs/frontmatter.js +44 -0
  432. package/dist/docs/frontmatter.js.map +1 -0
  433. package/dist/docs/index.d.ts +4 -0
  434. package/dist/docs/index.d.ts.map +1 -0
  435. package/dist/docs/index.js +4 -0
  436. package/dist/docs/index.js.map +1 -0
  437. package/dist/docs/s3-docs-definition.d.ts +7 -0
  438. package/dist/docs/s3-docs-definition.d.ts.map +1 -0
  439. package/dist/docs/s3-docs-definition.js +13 -0
  440. package/dist/docs/s3-docs-definition.js.map +1 -0
  441. package/dist/index.d.ts +7 -0
  442. package/dist/index.d.ts.map +1 -0
  443. package/dist/index.js +7 -0
  444. package/dist/index.js.map +1 -0
  445. package/dist/navigation/ApiDefinitionHolder.d.ts +18 -0
  446. package/dist/navigation/ApiDefinitionHolder.d.ts.map +1 -0
  447. package/dist/navigation/ApiDefinitionHolder.js +59 -0
  448. package/dist/navigation/ApiDefinitionHolder.js.map +1 -0
  449. package/dist/navigation/ApiDefinitionPruner.d.ts +17 -0
  450. package/dist/navigation/ApiDefinitionPruner.d.ts.map +1 -0
  451. package/dist/navigation/ApiDefinitionPruner.js +138 -0
  452. package/dist/navigation/ApiDefinitionPruner.js.map +1 -0
  453. package/dist/navigation/ApiTypeIdVisitor.d.ts +17 -0
  454. package/dist/navigation/ApiTypeIdVisitor.d.ts.map +1 -0
  455. package/dist/navigation/ApiTypeIdVisitor.js +130 -0
  456. package/dist/navigation/ApiTypeIdVisitor.js.map +1 -0
  457. package/dist/navigation/NodeCollector.d.ts +51 -0
  458. package/dist/navigation/NodeCollector.d.ts.map +1 -0
  459. package/dist/navigation/NodeCollector.js +242 -0
  460. package/dist/navigation/NodeCollector.js.map +1 -0
  461. package/dist/navigation/__test__/NodeCollector.revalidationPageSlugs.test.d.ts +2 -0
  462. package/dist/navigation/__test__/NodeCollector.revalidationPageSlugs.test.d.ts.map +1 -0
  463. package/dist/navigation/__test__/NodeCollector.revalidationPageSlugs.test.js +154 -0
  464. package/dist/navigation/__test__/NodeCollector.revalidationPageSlugs.test.js.map +1 -0
  465. package/dist/navigation/consts.d.ts +2 -0
  466. package/dist/navigation/consts.d.ts.map +1 -0
  467. package/dist/navigation/consts.js +2 -0
  468. package/dist/navigation/consts.js.map +1 -0
  469. package/dist/navigation/index.d.ts +13 -0
  470. package/dist/navigation/index.d.ts.map +1 -0
  471. package/dist/navigation/index.js +13 -0
  472. package/dist/navigation/index.js.map +1 -0
  473. package/dist/navigation/migrators/__test__/collapsed.test.d.ts +2 -0
  474. package/dist/navigation/migrators/__test__/collapsed.test.d.ts.map +1 -0
  475. package/dist/navigation/migrators/__test__/collapsed.test.js +100 -0
  476. package/dist/navigation/migrators/__test__/collapsed.test.js.map +1 -0
  477. package/dist/navigation/migrators/index.d.ts +2 -0
  478. package/dist/navigation/migrators/index.d.ts.map +1 -0
  479. package/dist/navigation/migrators/index.js +2 -0
  480. package/dist/navigation/migrators/index.js.map +1 -0
  481. package/dist/navigation/migrators/v1ToV2.d.ts +42 -0
  482. package/dist/navigation/migrators/v1ToV2.d.ts.map +1 -0
  483. package/dist/navigation/migrators/v1ToV2.js +839 -0
  484. package/dist/navigation/migrators/v1ToV2.js.map +1 -0
  485. package/dist/navigation/types/latest.d.ts +252 -0
  486. package/dist/navigation/types/latest.d.ts.map +1 -0
  487. package/dist/navigation/types/latest.js +16 -0
  488. package/dist/navigation/types/latest.js.map +1 -0
  489. package/dist/navigation/types/v1.d.ts +250 -0
  490. package/dist/navigation/types/v1.d.ts.map +1 -0
  491. package/dist/navigation/types/v1.js +24 -0
  492. package/dist/navigation/types/v1.js.map +1 -0
  493. package/dist/navigation/utils/__test__/followRedirects.test.d.ts +2 -0
  494. package/dist/navigation/utils/__test__/followRedirects.test.d.ts.map +1 -0
  495. package/dist/navigation/utils/__test__/followRedirects.test.js +134 -0
  496. package/dist/navigation/utils/__test__/followRedirects.test.js.map +1 -0
  497. package/dist/navigation/utils/__test__/pruneNavigationTree.test.d.ts +2 -0
  498. package/dist/navigation/utils/__test__/pruneNavigationTree.test.d.ts.map +1 -0
  499. package/dist/navigation/utils/__test__/pruneNavigationTree.test.js +836 -0
  500. package/dist/navigation/utils/__test__/pruneNavigationTree.test.js.map +1 -0
  501. package/dist/navigation/utils/__test__/toUnversionedSlug.test.d.ts +2 -0
  502. package/dist/navigation/utils/__test__/toUnversionedSlug.test.d.ts.map +1 -0
  503. package/dist/navigation/utils/__test__/toUnversionedSlug.test.js +17 -0
  504. package/dist/navigation/utils/__test__/toUnversionedSlug.test.js.map +1 -0
  505. package/dist/navigation/utils/buildPageIdToSlugMap.d.ts +14 -0
  506. package/dist/navigation/utils/buildPageIdToSlugMap.d.ts.map +1 -0
  507. package/dist/navigation/utils/buildPageIdToSlugMap.js +39 -0
  508. package/dist/navigation/utils/buildPageIdToSlugMap.js.map +1 -0
  509. package/dist/navigation/utils/collectApiReferences.d.ts +3 -0
  510. package/dist/navigation/utils/collectApiReferences.d.ts.map +1 -0
  511. package/dist/navigation/utils/collectApiReferences.js +13 -0
  512. package/dist/navigation/utils/collectApiReferences.js.map +1 -0
  513. package/dist/navigation/utils/collectPageIds.d.ts +3 -0
  514. package/dist/navigation/utils/collectPageIds.d.ts.map +1 -0
  515. package/dist/navigation/utils/collectPageIds.js +15 -0
  516. package/dist/navigation/utils/collectPageIds.js.map +1 -0
  517. package/dist/navigation/utils/createBreadcrumb.d.ts +3 -0
  518. package/dist/navigation/utils/createBreadcrumb.d.ts.map +1 -0
  519. package/dist/navigation/utils/createBreadcrumb.js +59 -0
  520. package/dist/navigation/utils/createBreadcrumb.js.map +1 -0
  521. package/dist/navigation/utils/deleteChild.d.ts +9 -0
  522. package/dist/navigation/utils/deleteChild.d.ts.map +1 -0
  523. package/dist/navigation/utils/deleteChild.js +111 -0
  524. package/dist/navigation/utils/deleteChild.js.map +1 -0
  525. package/dist/navigation/utils/findNode.d.ts +55 -0
  526. package/dist/navigation/utils/findNode.d.ts.map +1 -0
  527. package/dist/navigation/utils/findNode.js +208 -0
  528. package/dist/navigation/utils/findNode.js.map +1 -0
  529. package/dist/navigation/utils/followRedirect.d.ts +4 -0
  530. package/dist/navigation/utils/followRedirect.d.ts.map +1 -0
  531. package/dist/navigation/utils/followRedirect.js +65 -0
  532. package/dist/navigation/utils/followRedirect.js.map +1 -0
  533. package/dist/navigation/utils/getApiReferenceId.d.ts +3 -0
  534. package/dist/navigation/utils/getApiReferenceId.d.ts.map +1 -0
  535. package/dist/navigation/utils/getApiReferenceId.js +41 -0
  536. package/dist/navigation/utils/getApiReferenceId.js.map +1 -0
  537. package/dist/navigation/utils/getFrontmatter.d.ts +6 -0
  538. package/dist/navigation/utils/getFrontmatter.d.ts.map +1 -0
  539. package/dist/navigation/utils/getFrontmatter.js +12 -0
  540. package/dist/navigation/utils/getFrontmatter.js.map +1 -0
  541. package/dist/navigation/utils/getNoIndexFromFrontmatter.d.ts +5 -0
  542. package/dist/navigation/utils/getNoIndexFromFrontmatter.d.ts.map +1 -0
  543. package/dist/navigation/utils/getNoIndexFromFrontmatter.js +13 -0
  544. package/dist/navigation/utils/getNoIndexFromFrontmatter.js.map +1 -0
  545. package/dist/navigation/utils/index.d.ts +13 -0
  546. package/dist/navigation/utils/index.d.ts.map +1 -0
  547. package/dist/navigation/utils/index.js +13 -0
  548. package/dist/navigation/utils/index.js.map +1 -0
  549. package/dist/navigation/utils/isSubpackage.d.ts +3 -0
  550. package/dist/navigation/utils/isSubpackage.d.ts.map +1 -0
  551. package/dist/navigation/utils/isSubpackage.js +4 -0
  552. package/dist/navigation/utils/isSubpackage.js.map +1 -0
  553. package/dist/navigation/utils/pruneNavigationTree.d.ts +14 -0
  554. package/dist/navigation/utils/pruneNavigationTree.d.ts.map +1 -0
  555. package/dist/navigation/utils/pruneNavigationTree.js +77 -0
  556. package/dist/navigation/utils/pruneNavigationTree.js.map +1 -0
  557. package/dist/navigation/utils/pruneVersionNode.d.ts +4 -0
  558. package/dist/navigation/utils/pruneVersionNode.d.ts.map +1 -0
  559. package/dist/navigation/utils/pruneVersionNode.js +23 -0
  560. package/dist/navigation/utils/pruneVersionNode.js.map +1 -0
  561. package/dist/navigation/utils/stringifyEndpointPathParts.d.ts +3 -0
  562. package/dist/navigation/utils/stringifyEndpointPathParts.d.ts.map +1 -0
  563. package/dist/navigation/utils/stringifyEndpointPathParts.js +5 -0
  564. package/dist/navigation/utils/stringifyEndpointPathParts.js.map +1 -0
  565. package/dist/navigation/utils/toApis.d.ts +312 -0
  566. package/dist/navigation/utils/toApis.d.ts.map +1 -0
  567. package/dist/navigation/utils/toApis.js +6 -0
  568. package/dist/navigation/utils/toApis.js.map +1 -0
  569. package/dist/navigation/utils/toPages.d.ts +3 -0
  570. package/dist/navigation/utils/toPages.d.ts.map +1 -0
  571. package/dist/navigation/utils/toPages.js +5 -0
  572. package/dist/navigation/utils/toPages.js.map +1 -0
  573. package/dist/navigation/utils/toRootNode.d.ts +3 -0
  574. package/dist/navigation/utils/toRootNode.d.ts.map +1 -0
  575. package/dist/navigation/utils/toRootNode.js +11 -0
  576. package/dist/navigation/utils/toRootNode.js.map +1 -0
  577. package/dist/navigation/utils/toUnversionedSlug.d.ts +8 -0
  578. package/dist/navigation/utils/toUnversionedSlug.d.ts.map +1 -0
  579. package/dist/navigation/utils/toUnversionedSlug.js +11 -0
  580. package/dist/navigation/utils/toUnversionedSlug.js.map +1 -0
  581. package/dist/navigation/utils/updatePointsTo.d.ts +8 -0
  582. package/dist/navigation/utils/updatePointsTo.d.ts.map +1 -0
  583. package/dist/navigation/utils/updatePointsTo.js +34 -0
  584. package/dist/navigation/utils/updatePointsTo.js.map +1 -0
  585. package/dist/navigation/versions/index.d.ts +3 -0
  586. package/dist/navigation/versions/index.d.ts.map +1 -0
  587. package/dist/navigation/versions/index.js +3 -0
  588. package/dist/navigation/versions/index.js.map +1 -0
  589. package/dist/navigation/versions/latest/NavigationNode.d.ts +6 -0
  590. package/dist/navigation/versions/latest/NavigationNode.d.ts.map +1 -0
  591. package/dist/navigation/versions/latest/NavigationNode.js +2 -0
  592. package/dist/navigation/versions/latest/NavigationNode.js.map +1 -0
  593. package/dist/navigation/versions/latest/NavigationNodeApiLeaf.d.ts +8 -0
  594. package/dist/navigation/versions/latest/NavigationNodeApiLeaf.d.ts.map +1 -0
  595. package/dist/navigation/versions/latest/NavigationNodeApiLeaf.js +8 -0
  596. package/dist/navigation/versions/latest/NavigationNodeApiLeaf.js.map +1 -0
  597. package/dist/navigation/versions/latest/NavigationNodeLeaf.d.ts +10 -0
  598. package/dist/navigation/versions/latest/NavigationNodeLeaf.d.ts.map +1 -0
  599. package/dist/navigation/versions/latest/NavigationNodeLeaf.js +6 -0
  600. package/dist/navigation/versions/latest/NavigationNodeLeaf.js.map +1 -0
  601. package/dist/navigation/versions/latest/NavigationNodeMarkdown.d.ts +9 -0
  602. package/dist/navigation/versions/latest/NavigationNodeMarkdown.d.ts.map +1 -0
  603. package/dist/navigation/versions/latest/NavigationNodeMarkdown.js +6 -0
  604. package/dist/navigation/versions/latest/NavigationNodeMarkdown.js.map +1 -0
  605. package/dist/navigation/versions/latest/NavigationNodeNeighbor.d.ts +7 -0
  606. package/dist/navigation/versions/latest/NavigationNodeNeighbor.d.ts.map +1 -0
  607. package/dist/navigation/versions/latest/NavigationNodeNeighbor.js +10 -0
  608. package/dist/navigation/versions/latest/NavigationNodeNeighbor.js.map +1 -0
  609. package/dist/navigation/versions/latest/NavigationNodePage.d.ts +10 -0
  610. package/dist/navigation/versions/latest/NavigationNodePage.d.ts.map +1 -0
  611. package/dist/navigation/versions/latest/NavigationNodePage.js +13 -0
  612. package/dist/navigation/versions/latest/NavigationNodePage.js.map +1 -0
  613. package/dist/navigation/versions/latest/NavigationNodePageLeaf.d.ts +8 -0
  614. package/dist/navigation/versions/latest/NavigationNodePageLeaf.d.ts.map +1 -0
  615. package/dist/navigation/versions/latest/NavigationNodePageLeaf.js +4 -0
  616. package/dist/navigation/versions/latest/NavigationNodePageLeaf.js.map +1 -0
  617. package/dist/navigation/versions/latest/NavigationNodeParent.d.ts +4 -0
  618. package/dist/navigation/versions/latest/NavigationNodeParent.d.ts.map +1 -0
  619. package/dist/navigation/versions/latest/NavigationNodeParent.js +2 -0
  620. package/dist/navigation/versions/latest/NavigationNodeParent.js.map +1 -0
  621. package/dist/navigation/versions/latest/NavigationNodeSection.d.ts +8 -0
  622. package/dist/navigation/versions/latest/NavigationNodeSection.d.ts.map +1 -0
  623. package/dist/navigation/versions/latest/NavigationNodeSection.js +7 -0
  624. package/dist/navigation/versions/latest/NavigationNodeSection.js.map +1 -0
  625. package/dist/navigation/versions/latest/NavigationNodeSectionOverview.d.ts +13 -0
  626. package/dist/navigation/versions/latest/NavigationNodeSectionOverview.d.ts.map +1 -0
  627. package/dist/navigation/versions/latest/NavigationNodeSectionOverview.js +5 -0
  628. package/dist/navigation/versions/latest/NavigationNodeSectionOverview.js.map +1 -0
  629. package/dist/navigation/versions/latest/NavigationNodeWithMetadata.d.ts +8 -0
  630. package/dist/navigation/versions/latest/NavigationNodeWithMetadata.d.ts.map +1 -0
  631. package/dist/navigation/versions/latest/NavigationNodeWithMetadata.js +5 -0
  632. package/dist/navigation/versions/latest/NavigationNodeWithMetadata.js.map +1 -0
  633. package/dist/navigation/versions/latest/NavigationNodeWithRedirect.d.ts +14 -0
  634. package/dist/navigation/versions/latest/NavigationNodeWithRedirect.d.ts.map +1 -0
  635. package/dist/navigation/versions/latest/NavigationNodeWithRedirect.js +19 -0
  636. package/dist/navigation/versions/latest/NavigationNodeWithRedirect.js.map +1 -0
  637. package/dist/navigation/versions/latest/NavigationNodeWithSlug.d.ts +10 -0
  638. package/dist/navigation/versions/latest/NavigationNodeWithSlug.d.ts.map +1 -0
  639. package/dist/navigation/versions/latest/NavigationNodeWithSlug.js +4 -0
  640. package/dist/navigation/versions/latest/NavigationNodeWithSlug.js.map +1 -0
  641. package/dist/navigation/versions/latest/__test__/slugjoin.test.d.ts +2 -0
  642. package/dist/navigation/versions/latest/__test__/slugjoin.test.d.ts.map +1 -0
  643. package/dist/navigation/versions/latest/__test__/slugjoin.test.js +22 -0
  644. package/dist/navigation/versions/latest/__test__/slugjoin.test.js.map +1 -0
  645. package/dist/navigation/versions/latest/getChildren.d.ts +3 -0
  646. package/dist/navigation/versions/latest/getChildren.d.ts.map +1 -0
  647. package/dist/navigation/versions/latest/getChildren.js +40 -0
  648. package/dist/navigation/versions/latest/getChildren.js.map +1 -0
  649. package/dist/navigation/versions/latest/getPageId.d.ts +3 -0
  650. package/dist/navigation/versions/latest/getPageId.d.ts.map +1 -0
  651. package/dist/navigation/versions/latest/getPageId.js +24 -0
  652. package/dist/navigation/versions/latest/getPageId.js.map +1 -0
  653. package/dist/navigation/versions/latest/index.d.ts +34 -0
  654. package/dist/navigation/versions/latest/index.d.ts.map +1 -0
  655. package/dist/navigation/versions/latest/index.js +34 -0
  656. package/dist/navigation/versions/latest/index.js.map +1 -0
  657. package/dist/navigation/versions/latest/isApiReferenceNode.d.ts +3 -0
  658. package/dist/navigation/versions/latest/isApiReferenceNode.d.ts.map +1 -0
  659. package/dist/navigation/versions/latest/isApiReferenceNode.js +4 -0
  660. package/dist/navigation/versions/latest/isApiReferenceNode.js.map +1 -0
  661. package/dist/navigation/versions/latest/isExternalProductNode.d.ts +3 -0
  662. package/dist/navigation/versions/latest/isExternalProductNode.d.ts.map +1 -0
  663. package/dist/navigation/versions/latest/isExternalProductNode.js +4 -0
  664. package/dist/navigation/versions/latest/isExternalProductNode.js.map +1 -0
  665. package/dist/navigation/versions/latest/isInternalProductNode.d.ts +3 -0
  666. package/dist/navigation/versions/latest/isInternalProductNode.d.ts.map +1 -0
  667. package/dist/navigation/versions/latest/isInternalProductNode.js +4 -0
  668. package/dist/navigation/versions/latest/isInternalProductNode.js.map +1 -0
  669. package/dist/navigation/versions/latest/isProductGroupNode.d.ts +3 -0
  670. package/dist/navigation/versions/latest/isProductGroupNode.d.ts.map +1 -0
  671. package/dist/navigation/versions/latest/isProductGroupNode.js +4 -0
  672. package/dist/navigation/versions/latest/isProductGroupNode.js.map +1 -0
  673. package/dist/navigation/versions/latest/isProductNode.d.ts +3 -0
  674. package/dist/navigation/versions/latest/isProductNode.d.ts.map +1 -0
  675. package/dist/navigation/versions/latest/isProductNode.js +4 -0
  676. package/dist/navigation/versions/latest/isProductNode.js.map +1 -0
  677. package/dist/navigation/versions/latest/isSidebarRootNode.d.ts +3 -0
  678. package/dist/navigation/versions/latest/isSidebarRootNode.d.ts.map +1 -0
  679. package/dist/navigation/versions/latest/isSidebarRootNode.js +4 -0
  680. package/dist/navigation/versions/latest/isSidebarRootNode.js.map +1 -0
  681. package/dist/navigation/versions/latest/isTabbedNode.d.ts +3 -0
  682. package/dist/navigation/versions/latest/isTabbedNode.d.ts.map +1 -0
  683. package/dist/navigation/versions/latest/isTabbedNode.js +4 -0
  684. package/dist/navigation/versions/latest/isTabbedNode.js.map +1 -0
  685. package/dist/navigation/versions/latest/isUnversionedNode.d.ts +3 -0
  686. package/dist/navigation/versions/latest/isUnversionedNode.d.ts.map +1 -0
  687. package/dist/navigation/versions/latest/isUnversionedNode.js +4 -0
  688. package/dist/navigation/versions/latest/isUnversionedNode.js.map +1 -0
  689. package/dist/navigation/versions/latest/isVariantNode.d.ts +3 -0
  690. package/dist/navigation/versions/latest/isVariantNode.d.ts.map +1 -0
  691. package/dist/navigation/versions/latest/isVariantNode.js +4 -0
  692. package/dist/navigation/versions/latest/isVariantNode.js.map +1 -0
  693. package/dist/navigation/versions/latest/isVariantedNode.d.ts +3 -0
  694. package/dist/navigation/versions/latest/isVariantedNode.d.ts.map +1 -0
  695. package/dist/navigation/versions/latest/isVariantedNode.js +4 -0
  696. package/dist/navigation/versions/latest/isVariantedNode.js.map +1 -0
  697. package/dist/navigation/versions/latest/isVersionNode.d.ts +3 -0
  698. package/dist/navigation/versions/latest/isVersionNode.d.ts.map +1 -0
  699. package/dist/navigation/versions/latest/isVersionNode.js +4 -0
  700. package/dist/navigation/versions/latest/isVersionNode.js.map +1 -0
  701. package/dist/navigation/versions/latest/slugjoin.d.ts +3 -0
  702. package/dist/navigation/versions/latest/slugjoin.d.ts.map +1 -0
  703. package/dist/navigation/versions/latest/slugjoin.js +17 -0
  704. package/dist/navigation/versions/latest/slugjoin.js.map +1 -0
  705. package/dist/navigation/versions/latest/toDefaultSlug.d.ts +9 -0
  706. package/dist/navigation/versions/latest/toDefaultSlug.d.ts.map +1 -0
  707. package/dist/navigation/versions/latest/toDefaultSlug.js +12 -0
  708. package/dist/navigation/versions/latest/toDefaultSlug.js.map +1 -0
  709. package/dist/navigation/versions/latest/traverseBF.d.ts +8 -0
  710. package/dist/navigation/versions/latest/traverseBF.d.ts.map +1 -0
  711. package/dist/navigation/versions/latest/traverseBF.js +9 -0
  712. package/dist/navigation/versions/latest/traverseBF.js.map +1 -0
  713. package/dist/navigation/versions/latest/traverseDF.d.ts +8 -0
  714. package/dist/navigation/versions/latest/traverseDF.d.ts.map +1 -0
  715. package/dist/navigation/versions/latest/traverseDF.js +9 -0
  716. package/dist/navigation/versions/latest/traverseDF.js.map +1 -0
  717. package/dist/navigation/versions/v1/NavigationNode.d.ts +6 -0
  718. package/dist/navigation/versions/v1/NavigationNode.d.ts.map +1 -0
  719. package/dist/navigation/versions/v1/NavigationNode.js +2 -0
  720. package/dist/navigation/versions/v1/NavigationNode.js.map +1 -0
  721. package/dist/navigation/versions/v1/NavigationNodeApiLeaf.d.ts +8 -0
  722. package/dist/navigation/versions/v1/NavigationNodeApiLeaf.d.ts.map +1 -0
  723. package/dist/navigation/versions/v1/NavigationNodeApiLeaf.js +8 -0
  724. package/dist/navigation/versions/v1/NavigationNodeApiLeaf.js.map +1 -0
  725. package/dist/navigation/versions/v1/NavigationNodeLeaf.d.ts +10 -0
  726. package/dist/navigation/versions/v1/NavigationNodeLeaf.d.ts.map +1 -0
  727. package/dist/navigation/versions/v1/NavigationNodeLeaf.js +6 -0
  728. package/dist/navigation/versions/v1/NavigationNodeLeaf.js.map +1 -0
  729. package/dist/navigation/versions/v1/NavigationNodeMarkdown.d.ts +9 -0
  730. package/dist/navigation/versions/v1/NavigationNodeMarkdown.d.ts.map +1 -0
  731. package/dist/navigation/versions/v1/NavigationNodeMarkdown.js +6 -0
  732. package/dist/navigation/versions/v1/NavigationNodeMarkdown.js.map +1 -0
  733. package/dist/navigation/versions/v1/NavigationNodeNeighbor.d.ts +7 -0
  734. package/dist/navigation/versions/v1/NavigationNodeNeighbor.d.ts.map +1 -0
  735. package/dist/navigation/versions/v1/NavigationNodeNeighbor.js +10 -0
  736. package/dist/navigation/versions/v1/NavigationNodeNeighbor.js.map +1 -0
  737. package/dist/navigation/versions/v1/NavigationNodePage.d.ts +10 -0
  738. package/dist/navigation/versions/v1/NavigationNodePage.d.ts.map +1 -0
  739. package/dist/navigation/versions/v1/NavigationNodePage.js +11 -0
  740. package/dist/navigation/versions/v1/NavigationNodePage.js.map +1 -0
  741. package/dist/navigation/versions/v1/NavigationNodePageLeaf.d.ts +8 -0
  742. package/dist/navigation/versions/v1/NavigationNodePageLeaf.d.ts.map +1 -0
  743. package/dist/navigation/versions/v1/NavigationNodePageLeaf.js +4 -0
  744. package/dist/navigation/versions/v1/NavigationNodePageLeaf.js.map +1 -0
  745. package/dist/navigation/versions/v1/NavigationNodeSection.d.ts +8 -0
  746. package/dist/navigation/versions/v1/NavigationNodeSection.d.ts.map +1 -0
  747. package/dist/navigation/versions/v1/NavigationNodeSection.js +7 -0
  748. package/dist/navigation/versions/v1/NavigationNodeSection.js.map +1 -0
  749. package/dist/navigation/versions/v1/NavigationNodeSectionOverview.d.ts +13 -0
  750. package/dist/navigation/versions/v1/NavigationNodeSectionOverview.d.ts.map +1 -0
  751. package/dist/navigation/versions/v1/NavigationNodeSectionOverview.js +5 -0
  752. package/dist/navigation/versions/v1/NavigationNodeSectionOverview.js.map +1 -0
  753. package/dist/navigation/versions/v1/NavigationNodeWithMetadata.d.ts +8 -0
  754. package/dist/navigation/versions/v1/NavigationNodeWithMetadata.d.ts.map +1 -0
  755. package/dist/navigation/versions/v1/NavigationNodeWithMetadata.js +5 -0
  756. package/dist/navigation/versions/v1/NavigationNodeWithMetadata.js.map +1 -0
  757. package/dist/navigation/versions/v1/NavigationNodeWithRedirect.d.ts +8 -0
  758. package/dist/navigation/versions/v1/NavigationNodeWithRedirect.d.ts.map +1 -0
  759. package/dist/navigation/versions/v1/NavigationNodeWithRedirect.js +4 -0
  760. package/dist/navigation/versions/v1/NavigationNodeWithRedirect.js.map +1 -0
  761. package/dist/navigation/versions/v1/__test__/slugjoin.test.d.ts +2 -0
  762. package/dist/navigation/versions/v1/__test__/slugjoin.test.d.ts.map +1 -0
  763. package/dist/navigation/versions/v1/__test__/slugjoin.test.js +14 -0
  764. package/dist/navigation/versions/v1/__test__/slugjoin.test.js.map +1 -0
  765. package/dist/navigation/versions/v1/convertAvailability.d.ts +4 -0
  766. package/dist/navigation/versions/v1/convertAvailability.d.ts.map +1 -0
  767. package/dist/navigation/versions/v1/convertAvailability.js +25 -0
  768. package/dist/navigation/versions/v1/convertAvailability.js.map +1 -0
  769. package/dist/navigation/versions/v1/converters/ApiReferenceNavigationConverter.d.ts +29 -0
  770. package/dist/navigation/versions/v1/converters/ApiReferenceNavigationConverter.d.ts.map +1 -0
  771. package/dist/navigation/versions/v1/converters/ApiReferenceNavigationConverter.js +479 -0
  772. package/dist/navigation/versions/v1/converters/ApiReferenceNavigationConverter.js.map +1 -0
  773. package/dist/navigation/versions/v1/converters/ChangelogConverter.d.ts +19 -0
  774. package/dist/navigation/versions/v1/converters/ChangelogConverter.d.ts.map +1 -0
  775. package/dist/navigation/versions/v1/converters/ChangelogConverter.js +147 -0
  776. package/dist/navigation/versions/v1/converters/ChangelogConverter.js.map +1 -0
  777. package/dist/navigation/versions/v1/converters/NavigationConfigConverter.d.ts +22 -0
  778. package/dist/navigation/versions/v1/converters/NavigationConfigConverter.d.ts.map +1 -0
  779. package/dist/navigation/versions/v1/converters/NavigationConfigConverter.js +345 -0
  780. package/dist/navigation/versions/v1/converters/NavigationConfigConverter.js.map +1 -0
  781. package/dist/navigation/versions/v1/converters/NodeIdGenerator.d.ts +6 -0
  782. package/dist/navigation/versions/v1/converters/NodeIdGenerator.d.ts.map +1 -0
  783. package/dist/navigation/versions/v1/converters/NodeIdGenerator.js +23 -0
  784. package/dist/navigation/versions/v1/converters/NodeIdGenerator.js.map +1 -0
  785. package/dist/navigation/versions/v1/converters/SlugGenerator.d.ts +20 -0
  786. package/dist/navigation/versions/v1/converters/SlugGenerator.d.ts.map +1 -0
  787. package/dist/navigation/versions/v1/converters/SlugGenerator.js +132 -0
  788. package/dist/navigation/versions/v1/converters/SlugGenerator.js.map +1 -0
  789. package/dist/navigation/versions/v1/converters/__test__/ApiReferenceNavigationConverter.titleCase.test.d.ts +2 -0
  790. package/dist/navigation/versions/v1/converters/__test__/ApiReferenceNavigationConverter.titleCase.test.d.ts.map +1 -0
  791. package/dist/navigation/versions/v1/converters/__test__/ApiReferenceNavigationConverter.titleCase.test.js +115 -0
  792. package/dist/navigation/versions/v1/converters/__test__/ApiReferenceNavigationConverter.titleCase.test.js.map +1 -0
  793. package/dist/navigation/versions/v1/converters/__test__/SlugGenerator.test.d.ts +2 -0
  794. package/dist/navigation/versions/v1/converters/__test__/SlugGenerator.test.d.ts.map +1 -0
  795. package/dist/navigation/versions/v1/converters/__test__/SlugGenerator.test.js +126 -0
  796. package/dist/navigation/versions/v1/converters/__test__/SlugGenerator.test.js.map +1 -0
  797. package/dist/navigation/versions/v1/converters/__test__/getFullSlugFromFrontmatter.test.d.ts +2 -0
  798. package/dist/navigation/versions/v1/converters/__test__/getFullSlugFromFrontmatter.test.d.ts.map +1 -0
  799. package/dist/navigation/versions/v1/converters/__test__/getFullSlugFromFrontmatter.test.js +42 -0
  800. package/dist/navigation/versions/v1/converters/__test__/getFullSlugFromFrontmatter.test.js.map +1 -0
  801. package/dist/navigation/versions/v1/converters/__test__/getNoIndexFromFrontmatter.test.d.ts +2 -0
  802. package/dist/navigation/versions/v1/converters/__test__/getNoIndexFromFrontmatter.test.d.ts.map +1 -0
  803. package/dist/navigation/versions/v1/converters/__test__/getNoIndexFromFrontmatter.test.js +44 -0
  804. package/dist/navigation/versions/v1/converters/__test__/getNoIndexFromFrontmatter.test.js.map +1 -0
  805. package/dist/navigation/versions/v1/converters/__test__/groupByTime.test.d.ts +2 -0
  806. package/dist/navigation/versions/v1/converters/__test__/groupByTime.test.d.ts.map +1 -0
  807. package/dist/navigation/versions/v1/converters/__test__/groupByTime.test.js +103 -0
  808. package/dist/navigation/versions/v1/converters/__test__/groupByTime.test.js.map +1 -0
  809. package/dist/navigation/versions/v1/converters/__test__/pruneVersionNode.test.d.ts +2 -0
  810. package/dist/navigation/versions/v1/converters/__test__/pruneVersionNode.test.d.ts.map +1 -0
  811. package/dist/navigation/versions/v1/converters/__test__/pruneVersionNode.test.js +10 -0
  812. package/dist/navigation/versions/v1/converters/__test__/pruneVersionNode.test.js.map +1 -0
  813. package/dist/navigation/versions/v1/converters/getFullSlugFromFrontmatter.d.ts +7 -0
  814. package/dist/navigation/versions/v1/converters/getFullSlugFromFrontmatter.d.ts.map +1 -0
  815. package/dist/navigation/versions/v1/converters/getFullSlugFromFrontmatter.js +13 -0
  816. package/dist/navigation/versions/v1/converters/getFullSlugFromFrontmatter.js.map +1 -0
  817. package/dist/navigation/versions/v1/converters/toRootNode.d.ts +4 -0
  818. package/dist/navigation/versions/v1/converters/toRootNode.d.ts.map +1 -0
  819. package/dist/navigation/versions/v1/converters/toRootNode.js +93 -0
  820. package/dist/navigation/versions/v1/converters/toRootNode.js.map +1 -0
  821. package/dist/navigation/versions/v1/followRedirect.d.ts +4 -0
  822. package/dist/navigation/versions/v1/followRedirect.d.ts.map +1 -0
  823. package/dist/navigation/versions/v1/followRedirect.js +55 -0
  824. package/dist/navigation/versions/v1/followRedirect.js.map +1 -0
  825. package/dist/navigation/versions/v1/getChildren.d.ts +3 -0
  826. package/dist/navigation/versions/v1/getChildren.d.ts.map +1 -0
  827. package/dist/navigation/versions/v1/getChildren.js +39 -0
  828. package/dist/navigation/versions/v1/getChildren.js.map +1 -0
  829. package/dist/navigation/versions/v1/getPageId.d.ts +3 -0
  830. package/dist/navigation/versions/v1/getPageId.d.ts.map +1 -0
  831. package/dist/navigation/versions/v1/getPageId.js +24 -0
  832. package/dist/navigation/versions/v1/getPageId.js.map +1 -0
  833. package/dist/navigation/versions/v1/index.d.ts +24 -0
  834. package/dist/navigation/versions/v1/index.d.ts.map +1 -0
  835. package/dist/navigation/versions/v1/index.js +24 -0
  836. package/dist/navigation/versions/v1/index.js.map +1 -0
  837. package/dist/navigation/versions/v1/slugjoin.d.ts +3 -0
  838. package/dist/navigation/versions/v1/slugjoin.d.ts.map +1 -0
  839. package/dist/navigation/versions/v1/slugjoin.js +10 -0
  840. package/dist/navigation/versions/v1/slugjoin.js.map +1 -0
  841. package/dist/navigation/versions/v1/toDefaultSlug.d.ts +9 -0
  842. package/dist/navigation/versions/v1/toDefaultSlug.d.ts.map +1 -0
  843. package/dist/navigation/versions/v1/toDefaultSlug.js +12 -0
  844. package/dist/navigation/versions/v1/toDefaultSlug.js.map +1 -0
  845. package/dist/navigation/versions/v1/traverseDF.d.ts +4 -0
  846. package/dist/navigation/versions/v1/traverseDF.d.ts.map +1 -0
  847. package/dist/navigation/versions/v1/traverseDF.js +6 -0
  848. package/dist/navigation/versions/v1/traverseDF.js.map +1 -0
  849. package/dist/orpc-client/api/client.d.ts +58 -0
  850. package/dist/orpc-client/api/client.d.ts.map +1 -0
  851. package/dist/orpc-client/api/client.js +98 -0
  852. package/dist/orpc-client/api/client.js.map +1 -0
  853. package/dist/orpc-client/api/contract-db.d.ts +73379 -0
  854. package/dist/orpc-client/api/contract-db.d.ts.map +1 -0
  855. package/dist/orpc-client/api/contract-db.js +83 -0
  856. package/dist/orpc-client/api/contract-db.js.map +1 -0
  857. package/dist/orpc-client/api/contract-latest.d.ts +6496 -0
  858. package/dist/orpc-client/api/contract-latest.d.ts.map +1 -0
  859. package/dist/orpc-client/api/contract-latest.js +480 -0
  860. package/dist/orpc-client/api/contract-latest.js.map +1 -0
  861. package/dist/orpc-client/api/contract-read.d.ts +88695 -0
  862. package/dist/orpc-client/api/contract-read.d.ts.map +1 -0
  863. package/dist/orpc-client/api/contract-read.js +261 -0
  864. package/dist/orpc-client/api/contract-read.js.map +1 -0
  865. package/dist/orpc-client/api/contract-register.d.ts +75189 -0
  866. package/dist/orpc-client/api/contract-register.d.ts.map +1 -0
  867. package/dist/orpc-client/api/contract-register.js +303 -0
  868. package/dist/orpc-client/api/contract-register.js.map +1 -0
  869. package/dist/orpc-client/api/index.d.ts +7 -0
  870. package/dist/orpc-client/api/index.d.ts.map +1 -0
  871. package/dist/orpc-client/api/index.js +7 -0
  872. package/dist/orpc-client/api/index.js.map +1 -0
  873. package/dist/orpc-client/api/shared.d.ts +3203 -0
  874. package/dist/orpc-client/api/shared.d.ts.map +1 -0
  875. package/dist/orpc-client/api/shared.js +531 -0
  876. package/dist/orpc-client/api/shared.js.map +1 -0
  877. package/dist/orpc-client/client.d.ts +47 -0
  878. package/dist/orpc-client/client.d.ts.map +1 -0
  879. package/dist/orpc-client/client.js +47 -0
  880. package/dist/orpc-client/client.js.map +1 -0
  881. package/dist/orpc-client/dashboard/client.d.ts +11 -0
  882. package/dist/orpc-client/dashboard/client.d.ts.map +1 -0
  883. package/dist/orpc-client/dashboard/client.js +14 -0
  884. package/dist/orpc-client/dashboard/client.js.map +1 -0
  885. package/dist/orpc-client/dashboard/contract.d.ts +282 -0
  886. package/dist/orpc-client/dashboard/contract.d.ts.map +1 -0
  887. package/dist/orpc-client/dashboard/contract.js +49 -0
  888. package/dist/orpc-client/dashboard/contract.js.map +1 -0
  889. package/dist/orpc-client/dashboard/index.d.ts +3 -0
  890. package/dist/orpc-client/dashboard/index.d.ts.map +1 -0
  891. package/dist/orpc-client/dashboard/index.js +3 -0
  892. package/dist/orpc-client/dashboard/index.js.map +1 -0
  893. package/dist/orpc-client/docs/client.d.ts +25 -0
  894. package/dist/orpc-client/docs/client.d.ts.map +1 -0
  895. package/dist/orpc-client/docs/client.js +21 -0
  896. package/dist/orpc-client/docs/client.js.map +1 -0
  897. package/dist/orpc-client/docs/index.d.ts +4 -0
  898. package/dist/orpc-client/docs/index.d.ts.map +1 -0
  899. package/dist/orpc-client/docs/index.js +4 -0
  900. package/dist/orpc-client/docs/index.js.map +1 -0
  901. package/dist/orpc-client/docs/v1/index.d.ts +3 -0
  902. package/dist/orpc-client/docs/v1/index.d.ts.map +1 -0
  903. package/dist/orpc-client/docs/v1/index.js +3 -0
  904. package/dist/orpc-client/docs/v1/index.js.map +1 -0
  905. package/dist/orpc-client/docs/v1/read/client.d.ts +11 -0
  906. package/dist/orpc-client/docs/v1/read/client.d.ts.map +1 -0
  907. package/dist/orpc-client/docs/v1/read/client.js +14 -0
  908. package/dist/orpc-client/docs/v1/read/client.js.map +1 -0
  909. package/dist/orpc-client/docs/v1/read/contract.d.ts +18914 -0
  910. package/dist/orpc-client/docs/v1/read/contract.d.ts.map +1 -0
  911. package/dist/orpc-client/docs/v1/read/contract.js +21 -0
  912. package/dist/orpc-client/docs/v1/read/contract.js.map +1 -0
  913. package/dist/orpc-client/docs/v1/read/index.d.ts +3 -0
  914. package/dist/orpc-client/docs/v1/read/index.d.ts.map +1 -0
  915. package/dist/orpc-client/docs/v1/read/index.js +3 -0
  916. package/dist/orpc-client/docs/v1/read/index.js.map +1 -0
  917. package/dist/orpc-client/docs/v1/write/client.d.ts +11 -0
  918. package/dist/orpc-client/docs/v1/write/client.d.ts.map +1 -0
  919. package/dist/orpc-client/docs/v1/write/client.js +14 -0
  920. package/dist/orpc-client/docs/v1/write/client.js.map +1 -0
  921. package/dist/orpc-client/docs/v1/write/contract.d.ts +4781 -0
  922. package/dist/orpc-client/docs/v1/write/contract.d.ts.map +1 -0
  923. package/dist/orpc-client/docs/v1/write/contract.js +29 -0
  924. package/dist/orpc-client/docs/v1/write/contract.js.map +1 -0
  925. package/dist/orpc-client/docs/v1/write/index.d.ts +3 -0
  926. package/dist/orpc-client/docs/v1/write/index.d.ts.map +1 -0
  927. package/dist/orpc-client/docs/v1/write/index.js +3 -0
  928. package/dist/orpc-client/docs/v1/write/index.js.map +1 -0
  929. package/dist/orpc-client/docs/v2/index.d.ts +5 -0
  930. package/dist/orpc-client/docs/v2/index.d.ts.map +1 -0
  931. package/dist/orpc-client/docs/v2/index.js +5 -0
  932. package/dist/orpc-client/docs/v2/index.js.map +1 -0
  933. package/dist/orpc-client/docs/v2/library-docs/__test__/contract.test.d.ts +2 -0
  934. package/dist/orpc-client/docs/v2/library-docs/__test__/contract.test.d.ts.map +1 -0
  935. package/dist/orpc-client/docs/v2/library-docs/__test__/contract.test.js +49 -0
  936. package/dist/orpc-client/docs/v2/library-docs/__test__/contract.test.js.map +1 -0
  937. package/dist/orpc-client/docs/v2/library-docs/client.d.ts +11 -0
  938. package/dist/orpc-client/docs/v2/library-docs/client.d.ts.map +1 -0
  939. package/dist/orpc-client/docs/v2/library-docs/client.js +14 -0
  940. package/dist/orpc-client/docs/v2/library-docs/client.js.map +1 -0
  941. package/dist/orpc-client/docs/v2/library-docs/contract.d.ts +361 -0
  942. package/dist/orpc-client/docs/v2/library-docs/contract.d.ts.map +1 -0
  943. package/dist/orpc-client/docs/v2/library-docs/contract.js +106 -0
  944. package/dist/orpc-client/docs/v2/library-docs/contract.js.map +1 -0
  945. package/dist/orpc-client/docs/v2/library-docs/index.d.ts +3 -0
  946. package/dist/orpc-client/docs/v2/library-docs/index.d.ts.map +1 -0
  947. package/dist/orpc-client/docs/v2/library-docs/index.js +3 -0
  948. package/dist/orpc-client/docs/v2/library-docs/index.js.map +1 -0
  949. package/dist/orpc-client/docs/v2/organization/client.d.ts +11 -0
  950. package/dist/orpc-client/docs/v2/organization/client.d.ts.map +1 -0
  951. package/dist/orpc-client/docs/v2/organization/client.js +14 -0
  952. package/dist/orpc-client/docs/v2/organization/client.js.map +1 -0
  953. package/dist/orpc-client/docs/v2/organization/contract.d.ts +18 -0
  954. package/dist/orpc-client/docs/v2/organization/contract.d.ts.map +1 -0
  955. package/dist/orpc-client/docs/v2/organization/contract.js +12 -0
  956. package/dist/orpc-client/docs/v2/organization/contract.js.map +1 -0
  957. package/dist/orpc-client/docs/v2/organization/index.d.ts +3 -0
  958. package/dist/orpc-client/docs/v2/organization/index.d.ts.map +1 -0
  959. package/dist/orpc-client/docs/v2/organization/index.js +3 -0
  960. package/dist/orpc-client/docs/v2/organization/index.js.map +1 -0
  961. package/dist/orpc-client/docs/v2/read/client.d.ts +11 -0
  962. package/dist/orpc-client/docs/v2/read/client.d.ts.map +1 -0
  963. package/dist/orpc-client/docs/v2/read/client.js +14 -0
  964. package/dist/orpc-client/docs/v2/read/client.js.map +1 -0
  965. package/dist/orpc-client/docs/v2/read/contract.d.ts +42236 -0
  966. package/dist/orpc-client/docs/v2/read/contract.d.ts.map +1 -0
  967. package/dist/orpc-client/docs/v2/read/contract.js +92 -0
  968. package/dist/orpc-client/docs/v2/read/contract.js.map +1 -0
  969. package/dist/orpc-client/docs/v2/read/index.d.ts +3 -0
  970. package/dist/orpc-client/docs/v2/read/index.d.ts.map +1 -0
  971. package/dist/orpc-client/docs/v2/read/index.js +3 -0
  972. package/dist/orpc-client/docs/v2/read/index.js.map +1 -0
  973. package/dist/orpc-client/docs/v2/write/client.d.ts +11 -0
  974. package/dist/orpc-client/docs/v2/write/client.d.ts.map +1 -0
  975. package/dist/orpc-client/docs/v2/write/client.js +14 -0
  976. package/dist/orpc-client/docs/v2/write/client.js.map +1 -0
  977. package/dist/orpc-client/docs/v2/write/contract.d.ts +10117 -0
  978. package/dist/orpc-client/docs/v2/write/contract.d.ts.map +1 -0
  979. package/dist/orpc-client/docs/v2/write/contract.js +140 -0
  980. package/dist/orpc-client/docs/v2/write/contract.js.map +1 -0
  981. package/dist/orpc-client/docs/v2/write/index.d.ts +3 -0
  982. package/dist/orpc-client/docs/v2/write/index.d.ts.map +1 -0
  983. package/dist/orpc-client/docs/v2/write/index.js +3 -0
  984. package/dist/orpc-client/docs/v2/write/index.js.map +1 -0
  985. package/dist/orpc-client/docs-cache/client.d.ts +11 -0
  986. package/dist/orpc-client/docs-cache/client.d.ts.map +1 -0
  987. package/dist/orpc-client/docs-cache/client.js +14 -0
  988. package/dist/orpc-client/docs-cache/client.js.map +1 -0
  989. package/dist/orpc-client/docs-cache/contract.d.ts +19 -0
  990. package/dist/orpc-client/docs-cache/contract.d.ts.map +1 -0
  991. package/dist/orpc-client/docs-cache/contract.js +12 -0
  992. package/dist/orpc-client/docs-cache/contract.js.map +1 -0
  993. package/dist/orpc-client/docs-cache/index.d.ts +3 -0
  994. package/dist/orpc-client/docs-cache/index.d.ts.map +1 -0
  995. package/dist/orpc-client/docs-cache/index.js +3 -0
  996. package/dist/orpc-client/docs-cache/index.js.map +1 -0
  997. package/dist/orpc-client/docs-deployment/client.d.ts +11 -0
  998. package/dist/orpc-client/docs-deployment/client.d.ts.map +1 -0
  999. package/dist/orpc-client/docs-deployment/client.js +14 -0
  1000. package/dist/orpc-client/docs-deployment/client.js.map +1 -0
  1001. package/dist/orpc-client/docs-deployment/contract.d.ts +689 -0
  1002. package/dist/orpc-client/docs-deployment/contract.d.ts.map +1 -0
  1003. package/dist/orpc-client/docs-deployment/contract.js +146 -0
  1004. package/dist/orpc-client/docs-deployment/contract.js.map +1 -0
  1005. package/dist/orpc-client/docs-deployment/index.d.ts +3 -0
  1006. package/dist/orpc-client/docs-deployment/index.d.ts.map +1 -0
  1007. package/dist/orpc-client/docs-deployment/index.js +3 -0
  1008. package/dist/orpc-client/docs-deployment/index.js.map +1 -0
  1009. package/dist/orpc-client/files/contract.d.ts +138 -0
  1010. package/dist/orpc-client/files/contract.d.ts.map +1 -0
  1011. package/dist/orpc-client/files/contract.js +56 -0
  1012. package/dist/orpc-client/files/contract.js.map +1 -0
  1013. package/dist/orpc-client/files/index.d.ts +2 -0
  1014. package/dist/orpc-client/files/index.d.ts.map +1 -0
  1015. package/dist/orpc-client/files/index.js +2 -0
  1016. package/dist/orpc-client/files/index.js.map +1 -0
  1017. package/dist/orpc-client/generators/cli/client.d.ts +11 -0
  1018. package/dist/orpc-client/generators/cli/client.d.ts.map +1 -0
  1019. package/dist/orpc-client/generators/cli/client.js +14 -0
  1020. package/dist/orpc-client/generators/cli/client.js.map +1 -0
  1021. package/dist/orpc-client/generators/cli/index.d.ts +2 -0
  1022. package/dist/orpc-client/generators/cli/index.d.ts.map +1 -0
  1023. package/dist/orpc-client/generators/cli/index.js +2 -0
  1024. package/dist/orpc-client/generators/cli/index.js.map +1 -0
  1025. package/dist/orpc-client/generators/client.d.ts +11 -0
  1026. package/dist/orpc-client/generators/client.d.ts.map +1 -0
  1027. package/dist/orpc-client/generators/client.js +14 -0
  1028. package/dist/orpc-client/generators/client.js.map +1 -0
  1029. package/dist/orpc-client/generators/contract.d.ts +3396 -0
  1030. package/dist/orpc-client/generators/contract.d.ts.map +1 -0
  1031. package/dist/orpc-client/generators/contract.js +246 -0
  1032. package/dist/orpc-client/generators/contract.js.map +1 -0
  1033. package/dist/orpc-client/generators/index.d.ts +5 -0
  1034. package/dist/orpc-client/generators/index.d.ts.map +1 -0
  1035. package/dist/orpc-client/generators/index.js +5 -0
  1036. package/dist/orpc-client/generators/index.js.map +1 -0
  1037. package/dist/orpc-client/generators/versions/client.d.ts +11 -0
  1038. package/dist/orpc-client/generators/versions/client.d.ts.map +1 -0
  1039. package/dist/orpc-client/generators/versions/client.js +14 -0
  1040. package/dist/orpc-client/generators/versions/client.js.map +1 -0
  1041. package/dist/orpc-client/generators/versions/index.d.ts +2 -0
  1042. package/dist/orpc-client/generators/versions/index.d.ts.map +1 -0
  1043. package/dist/orpc-client/generators/versions/index.js +2 -0
  1044. package/dist/orpc-client/generators/versions/index.js.map +1 -0
  1045. package/dist/orpc-client/git/client.d.ts +11 -0
  1046. package/dist/orpc-client/git/client.d.ts.map +1 -0
  1047. package/dist/orpc-client/git/client.js +14 -0
  1048. package/dist/orpc-client/git/client.js.map +1 -0
  1049. package/dist/orpc-client/git/contract.d.ts +2914 -0
  1050. package/dist/orpc-client/git/contract.d.ts.map +1 -0
  1051. package/dist/orpc-client/git/contract.js +145 -0
  1052. package/dist/orpc-client/git/contract.js.map +1 -0
  1053. package/dist/orpc-client/git/index.d.ts +3 -0
  1054. package/dist/orpc-client/git/index.d.ts.map +1 -0
  1055. package/dist/orpc-client/git/index.js +3 -0
  1056. package/dist/orpc-client/git/index.js.map +1 -0
  1057. package/dist/orpc-client/index.d.ts +17 -0
  1058. package/dist/orpc-client/index.d.ts.map +1 -0
  1059. package/dist/orpc-client/index.js +17 -0
  1060. package/dist/orpc-client/index.js.map +1 -0
  1061. package/dist/orpc-client/pdf-export/client.d.ts +11 -0
  1062. package/dist/orpc-client/pdf-export/client.d.ts.map +1 -0
  1063. package/dist/orpc-client/pdf-export/client.js +14 -0
  1064. package/dist/orpc-client/pdf-export/client.js.map +1 -0
  1065. package/dist/orpc-client/pdf-export/contract.d.ts +1046 -0
  1066. package/dist/orpc-client/pdf-export/contract.d.ts.map +1 -0
  1067. package/dist/orpc-client/pdf-export/contract.js +98 -0
  1068. package/dist/orpc-client/pdf-export/contract.js.map +1 -0
  1069. package/dist/orpc-client/pdf-export/index.d.ts +3 -0
  1070. package/dist/orpc-client/pdf-export/index.d.ts.map +1 -0
  1071. package/dist/orpc-client/pdf-export/index.js +3 -0
  1072. package/dist/orpc-client/pdf-export/index.js.map +1 -0
  1073. package/dist/orpc-client/sdks/client.d.ts +11 -0
  1074. package/dist/orpc-client/sdks/client.d.ts.map +1 -0
  1075. package/dist/orpc-client/sdks/client.js +14 -0
  1076. package/dist/orpc-client/sdks/client.js.map +1 -0
  1077. package/dist/orpc-client/sdks/contract.d.ts +55 -0
  1078. package/dist/orpc-client/sdks/contract.d.ts.map +1 -0
  1079. package/dist/orpc-client/sdks/contract.js +33 -0
  1080. package/dist/orpc-client/sdks/contract.js.map +1 -0
  1081. package/dist/orpc-client/sdks/index.d.ts +3 -0
  1082. package/dist/orpc-client/sdks/index.d.ts.map +1 -0
  1083. package/dist/orpc-client/sdks/index.js +3 -0
  1084. package/dist/orpc-client/sdks/index.js.map +1 -0
  1085. package/dist/orpc-client/shared.d.ts +324 -0
  1086. package/dist/orpc-client/shared.d.ts.map +1 -0
  1087. package/dist/orpc-client/shared.js +137 -0
  1088. package/dist/orpc-client/shared.js.map +1 -0
  1089. package/dist/orpc-client/slugs/client.d.ts +11 -0
  1090. package/dist/orpc-client/slugs/client.d.ts.map +1 -0
  1091. package/dist/orpc-client/slugs/client.js +14 -0
  1092. package/dist/orpc-client/slugs/client.js.map +1 -0
  1093. package/dist/orpc-client/slugs/contract.d.ts +251 -0
  1094. package/dist/orpc-client/slugs/contract.d.ts.map +1 -0
  1095. package/dist/orpc-client/slugs/contract.js +41 -0
  1096. package/dist/orpc-client/slugs/contract.js.map +1 -0
  1097. package/dist/orpc-client/slugs/index.d.ts +3 -0
  1098. package/dist/orpc-client/slugs/index.d.ts.map +1 -0
  1099. package/dist/orpc-client/slugs/index.js +3 -0
  1100. package/dist/orpc-client/slugs/index.js.map +1 -0
  1101. package/dist/orpc-client/snippets/client.d.ts +13 -0
  1102. package/dist/orpc-client/snippets/client.d.ts.map +1 -0
  1103. package/dist/orpc-client/snippets/client.js +24 -0
  1104. package/dist/orpc-client/snippets/client.js.map +1 -0
  1105. package/dist/orpc-client/snippets/contract.d.ts +1680 -0
  1106. package/dist/orpc-client/snippets/contract.d.ts.map +1 -0
  1107. package/dist/orpc-client/snippets/contract.js +98 -0
  1108. package/dist/orpc-client/snippets/contract.js.map +1 -0
  1109. package/dist/orpc-client/snippets/index.d.ts +3 -0
  1110. package/dist/orpc-client/snippets/index.d.ts.map +1 -0
  1111. package/dist/orpc-client/snippets/index.js +3 -0
  1112. package/dist/orpc-client/snippets/index.js.map +1 -0
  1113. package/dist/orpc-client/templates/client.d.ts +11 -0
  1114. package/dist/orpc-client/templates/client.d.ts.map +1 -0
  1115. package/dist/orpc-client/templates/client.js +14 -0
  1116. package/dist/orpc-client/templates/client.js.map +1 -0
  1117. package/dist/orpc-client/templates/contract.d.ts +1601 -0
  1118. package/dist/orpc-client/templates/contract.d.ts.map +1 -0
  1119. package/dist/orpc-client/templates/contract.js +52 -0
  1120. package/dist/orpc-client/templates/contract.js.map +1 -0
  1121. package/dist/orpc-client/templates/index.d.ts +3 -0
  1122. package/dist/orpc-client/templates/index.d.ts.map +1 -0
  1123. package/dist/orpc-client/templates/index.js +3 -0
  1124. package/dist/orpc-client/templates/index.js.map +1 -0
  1125. package/dist/orpc-client/tokens/client.d.ts +11 -0
  1126. package/dist/orpc-client/tokens/client.d.ts.map +1 -0
  1127. package/dist/orpc-client/tokens/client.js +14 -0
  1128. package/dist/orpc-client/tokens/client.js.map +1 -0
  1129. package/dist/orpc-client/tokens/contract.d.ts +66 -0
  1130. package/dist/orpc-client/tokens/contract.d.ts.map +1 -0
  1131. package/dist/orpc-client/tokens/contract.js +25 -0
  1132. package/dist/orpc-client/tokens/contract.js.map +1 -0
  1133. package/dist/orpc-client/tokens/index.d.ts +3 -0
  1134. package/dist/orpc-client/tokens/index.d.ts.map +1 -0
  1135. package/dist/orpc-client/tokens/index.js +3 -0
  1136. package/dist/orpc-client/tokens/index.js.map +1 -0
  1137. package/dist/utils/obfuscate-secret.d.ts +2 -0
  1138. package/dist/utils/obfuscate-secret.d.ts.map +1 -0
  1139. package/dist/utils/obfuscate-secret.js +10 -0
  1140. package/dist/utils/obfuscate-secret.js.map +1 -0
  1141. package/dist/utils/traversers/__test__/bfs.test.d.ts +2 -0
  1142. package/dist/utils/traversers/__test__/bfs.test.d.ts.map +1 -0
  1143. package/dist/utils/traversers/__test__/bfs.test.js +51 -0
  1144. package/dist/utils/traversers/__test__/bfs.test.js.map +1 -0
  1145. package/dist/utils/traversers/__test__/dfs.test.d.ts +2 -0
  1146. package/dist/utils/traversers/__test__/dfs.test.d.ts.map +1 -0
  1147. package/dist/utils/traversers/__test__/dfs.test.js +51 -0
  1148. package/dist/utils/traversers/__test__/dfs.test.js.map +1 -0
  1149. package/dist/utils/traversers/__test__/fixture.d.ts +6 -0
  1150. package/dist/utils/traversers/__test__/fixture.d.ts.map +1 -0
  1151. package/dist/utils/traversers/__test__/fixture.js +38 -0
  1152. package/dist/utils/traversers/__test__/fixture.js.map +1 -0
  1153. package/dist/utils/traversers/__test__/prunetree.test.d.ts +2 -0
  1154. package/dist/utils/traversers/__test__/prunetree.test.d.ts.map +1 -0
  1155. package/dist/utils/traversers/__test__/prunetree.test.js +79 -0
  1156. package/dist/utils/traversers/__test__/prunetree.test.js.map +1 -0
  1157. package/dist/utils/traversers/bfs.d.ts +3 -0
  1158. package/dist/utils/traversers/bfs.d.ts.map +1 -0
  1159. package/dist/utils/traversers/bfs.js +23 -0
  1160. package/dist/utils/traversers/bfs.js.map +1 -0
  1161. package/dist/utils/traversers/dfs.d.ts +3 -0
  1162. package/dist/utils/traversers/dfs.d.ts.map +1 -0
  1163. package/dist/utils/traversers/dfs.js +23 -0
  1164. package/dist/utils/traversers/dfs.js.map +1 -0
  1165. package/dist/utils/traversers/index.d.ts +4 -0
  1166. package/dist/utils/traversers/index.d.ts.map +1 -0
  1167. package/dist/utils/traversers/index.js +4 -0
  1168. package/dist/utils/traversers/index.js.map +1 -0
  1169. package/dist/utils/traversers/prunetree.d.ts +26 -0
  1170. package/dist/utils/traversers/prunetree.d.ts.map +1 -0
  1171. package/dist/utils/traversers/prunetree.js +39 -0
  1172. package/dist/utils/traversers/prunetree.js.map +1 -0
  1173. package/dist/utils/traversers/types.d.ts +8 -0
  1174. package/dist/utils/traversers/types.d.ts.map +1 -0
  1175. package/dist/utils/traversers/types.js +4 -0
  1176. package/dist/utils/traversers/types.js.map +1 -0
  1177. package/package.json +1 -1
@@ -0,0 +1,2503 @@
1
+ import { readFileSync } from "fs";
2
+ import { join } from "path";
3
+ import { describe, expect, it } from "vitest";
4
+ import { ApiDefinitionId, AuthSchemeId, EndpointId, EnvironmentId, PropertyKey } from "../latest";
5
+ import { backfillSnippets } from "./backfill";
6
+ // Load actual fixtures at runtime
7
+ const fixturesDir = join(__dirname, "fixtures", "demo");
8
+ const typescriptFixture = JSON.parse(readFileSync(join(fixturesDir, "typescript.json"), "utf-8"));
9
+ const pythonFixture = JSON.parse(readFileSync(join(fixturesDir, "python.json"), "utf-8"));
10
+ const javaFixture = JSON.parse(readFileSync(join(fixturesDir, "java.json"), "utf-8"));
11
+ const goFixture = JSON.parse(readFileSync(join(fixturesDir, "go.json"), "utf-8"));
12
+ const rubyFixture = JSON.parse(readFileSync(join(fixturesDir, "ruby.json"), "utf-8"));
13
+ const phpFixture = JSON.parse(readFileSync(join(fixturesDir, "php.json"), "utf-8"));
14
+ const csharpFixture = JSON.parse(readFileSync(join(fixturesDir, "csharp.json"), "utf-8"));
15
+ // Load pinnacle fixtures
16
+ const pinnacleFixturesDir = join(__dirname, "fixtures", "pinnacle");
17
+ const pinnacleTypescriptFixture = JSON.parse(readFileSync(join(pinnacleFixturesDir, "typescript.json"), "utf-8"));
18
+ const pinnaclePythonFixture = JSON.parse(readFileSync(join(pinnacleFixturesDir, "python.json"), "utf-8"));
19
+ const pinnacleRubyFixture = JSON.parse(readFileSync(join(pinnacleFixturesDir, "ruby.json"), "utf-8"));
20
+ describe("backfillSnippets", () => {
21
+ it("should backfill snippets only for specified languages when httpSnippets is an array", async () => {
22
+ const apiDefinition = {
23
+ id: ApiDefinitionId("test-api"),
24
+ apiName: undefined,
25
+ endpoints: {
26
+ [EndpointId("search")]: {
27
+ id: EndpointId("search"),
28
+ method: "POST",
29
+ path: [{ type: "literal", value: "/" }],
30
+ displayName: undefined,
31
+ operationId: undefined,
32
+ auth: undefined,
33
+ multiAuth: undefined,
34
+ defaultEnvironment: undefined,
35
+ environments: [
36
+ {
37
+ id: EnvironmentId("default"),
38
+ baseUrl: "https://api.example.com/v1",
39
+ audiences: undefined
40
+ }
41
+ ],
42
+ pathParameters: undefined,
43
+ queryParameters: undefined,
44
+ requestHeaders: undefined,
45
+ responseHeaders: undefined,
46
+ requests: undefined,
47
+ responses: undefined,
48
+ errors: undefined,
49
+ snippetTemplates: undefined,
50
+ protocol: undefined,
51
+ description: undefined,
52
+ availability: undefined,
53
+ namespace: undefined,
54
+ includeInApiExplorer: undefined,
55
+ examples: [
56
+ {
57
+ name: "Basic Search",
58
+ description: "",
59
+ path: "/",
60
+ pathParameters: {},
61
+ queryParameters: {},
62
+ headers: {},
63
+ requestBody: {
64
+ type: "json",
65
+ value: {
66
+ query: "test"
67
+ }
68
+ },
69
+ responseStatusCode: 200,
70
+ responseBody: {
71
+ type: "json",
72
+ value: {
73
+ results: []
74
+ }
75
+ },
76
+ snippets: undefined
77
+ }
78
+ ]
79
+ }
80
+ },
81
+ auths: {},
82
+ websockets: {},
83
+ webhooks: {},
84
+ graphqlOperations: {},
85
+ types: {},
86
+ globalHeaders: [],
87
+ subpackages: {},
88
+ snippetsConfiguration: undefined
89
+ };
90
+ const flags = {
91
+ httpSnippets: ["curl", "python"],
92
+ alwaysEnableJavaScriptFetch: true
93
+ };
94
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
95
+ const endpoint = result.endpoints[EndpointId("search")];
96
+ expect(endpoint).toBeDefined();
97
+ const examples = endpoint?.examples;
98
+ expect(examples).toHaveLength(1);
99
+ const example = examples?.[0];
100
+ expect(example).toBeDefined();
101
+ const snippets = example?.snippets;
102
+ expect(snippets).toBeDefined();
103
+ expect(snippets?.curl).toBeDefined();
104
+ expect(snippets?.curl).toHaveLength(1);
105
+ expect(snippets?.python).toBeDefined();
106
+ expect(snippets?.python).toHaveLength(1);
107
+ expect(snippets?.javascript).toBeUndefined();
108
+ expect(snippets?.go).toBeUndefined();
109
+ expect(snippets?.ruby).toBeUndefined();
110
+ expect(snippets?.java).toBeUndefined();
111
+ expect(snippets?.php).toBeUndefined();
112
+ expect(snippets?.csharp).toBeUndefined();
113
+ expect(snippets?.swift).toBeUndefined();
114
+ });
115
+ it("should always include curl even when httpSnippets is false", async () => {
116
+ const apiDefinition = {
117
+ id: ApiDefinitionId("test-api"),
118
+ apiName: undefined,
119
+ endpoints: {
120
+ [EndpointId("search")]: {
121
+ id: EndpointId("search"),
122
+ method: "POST",
123
+ path: [{ type: "literal", value: "/" }],
124
+ displayName: undefined,
125
+ operationId: undefined,
126
+ auth: undefined,
127
+ multiAuth: undefined,
128
+ defaultEnvironment: undefined,
129
+ environments: [
130
+ {
131
+ id: EnvironmentId("default"),
132
+ baseUrl: "https://api.example.com/v1",
133
+ audiences: undefined
134
+ }
135
+ ],
136
+ pathParameters: undefined,
137
+ queryParameters: undefined,
138
+ requestHeaders: undefined,
139
+ responseHeaders: undefined,
140
+ requests: undefined,
141
+ responses: undefined,
142
+ errors: undefined,
143
+ snippetTemplates: undefined,
144
+ protocol: undefined,
145
+ description: undefined,
146
+ availability: undefined,
147
+ namespace: undefined,
148
+ includeInApiExplorer: undefined,
149
+ examples: [
150
+ {
151
+ name: "Basic Search",
152
+ description: "",
153
+ path: "/",
154
+ pathParameters: {},
155
+ queryParameters: {},
156
+ headers: {},
157
+ requestBody: {
158
+ type: "json",
159
+ value: {
160
+ query: "test"
161
+ }
162
+ },
163
+ responseStatusCode: 200,
164
+ responseBody: {
165
+ type: "json",
166
+ value: {
167
+ results: []
168
+ }
169
+ },
170
+ snippets: undefined
171
+ }
172
+ ]
173
+ }
174
+ },
175
+ auths: {},
176
+ websockets: {},
177
+ webhooks: {},
178
+ graphqlOperations: {},
179
+ types: {},
180
+ globalHeaders: [],
181
+ subpackages: {},
182
+ snippetsConfiguration: undefined
183
+ };
184
+ const flags = {
185
+ httpSnippets: false,
186
+ alwaysEnableJavaScriptFetch: true
187
+ };
188
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
189
+ const endpoint = result.endpoints[EndpointId("search")];
190
+ expect(endpoint).toBeDefined();
191
+ const examples = endpoint?.examples;
192
+ expect(examples).toHaveLength(1);
193
+ const example = examples?.[0];
194
+ expect(example).toBeDefined();
195
+ const snippets = example?.snippets;
196
+ expect(snippets).toBeDefined();
197
+ expect(snippets?.curl).toBeDefined();
198
+ expect(snippets?.curl).toHaveLength(1);
199
+ expect(snippets?.python).toBeUndefined();
200
+ expect(snippets?.javascript).toBeUndefined();
201
+ expect(snippets?.go).toBeUndefined();
202
+ expect(snippets?.ruby).toBeUndefined();
203
+ expect(snippets?.java).toBeUndefined();
204
+ expect(snippets?.php).toBeUndefined();
205
+ expect(snippets?.csharp).toBeUndefined();
206
+ expect(snippets?.swift).toBeUndefined();
207
+ });
208
+ it("should not include curl when not specified in the language list", async () => {
209
+ const apiDefinition = {
210
+ id: ApiDefinitionId("test-api"),
211
+ apiName: undefined,
212
+ endpoints: {
213
+ [EndpointId("search")]: {
214
+ id: EndpointId("search"),
215
+ method: "POST",
216
+ path: [{ type: "literal", value: "/" }],
217
+ displayName: undefined,
218
+ operationId: undefined,
219
+ auth: undefined,
220
+ multiAuth: undefined,
221
+ defaultEnvironment: undefined,
222
+ environments: [
223
+ {
224
+ id: EnvironmentId("default"),
225
+ baseUrl: "https://api.example.com/v1",
226
+ audiences: undefined
227
+ }
228
+ ],
229
+ pathParameters: undefined,
230
+ queryParameters: undefined,
231
+ requestHeaders: undefined,
232
+ responseHeaders: undefined,
233
+ requests: undefined,
234
+ responses: undefined,
235
+ errors: undefined,
236
+ snippetTemplates: undefined,
237
+ protocol: undefined,
238
+ description: undefined,
239
+ availability: undefined,
240
+ namespace: undefined,
241
+ includeInApiExplorer: undefined,
242
+ examples: [
243
+ {
244
+ name: "Basic Search",
245
+ description: "",
246
+ path: "/",
247
+ pathParameters: {},
248
+ queryParameters: {},
249
+ headers: {},
250
+ requestBody: {
251
+ type: "json",
252
+ value: {
253
+ query: "test"
254
+ }
255
+ },
256
+ responseStatusCode: 200,
257
+ responseBody: {
258
+ type: "json",
259
+ value: {
260
+ results: []
261
+ }
262
+ },
263
+ snippets: undefined
264
+ }
265
+ ]
266
+ }
267
+ },
268
+ auths: {},
269
+ websockets: {},
270
+ webhooks: {},
271
+ graphqlOperations: {},
272
+ types: {},
273
+ globalHeaders: [],
274
+ subpackages: {},
275
+ snippetsConfiguration: undefined
276
+ };
277
+ const flags = {
278
+ httpSnippets: ["python", "javascript", "go"],
279
+ alwaysEnableJavaScriptFetch: true
280
+ };
281
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
282
+ const endpoint = result.endpoints[EndpointId("search")];
283
+ expect(endpoint).toBeDefined();
284
+ const examples = endpoint?.examples;
285
+ expect(examples).toHaveLength(1);
286
+ const example = examples?.[0];
287
+ expect(example).toBeDefined();
288
+ const snippets = example?.snippets;
289
+ expect(snippets).toBeDefined();
290
+ expect(snippets?.curl).toBeUndefined();
291
+ expect(snippets?.python).toBeDefined();
292
+ expect(snippets?.python).toHaveLength(1);
293
+ expect(snippets?.javascript).toBeDefined();
294
+ expect(snippets?.javascript).toHaveLength(1);
295
+ expect(snippets?.go).toBeDefined();
296
+ expect(snippets?.go).toHaveLength(1);
297
+ expect(snippets?.ruby).toBeUndefined();
298
+ expect(snippets?.java).toBeUndefined();
299
+ expect(snippets?.php).toBeUndefined();
300
+ expect(snippets?.csharp).toBeUndefined();
301
+ expect(snippets?.swift).toBeUndefined();
302
+ });
303
+ it("should backfill snippets for a search endpoint example", async () => {
304
+ const apiDefinition = {
305
+ id: ApiDefinitionId("test-api"),
306
+ apiName: undefined,
307
+ endpoints: {
308
+ [EndpointId("search")]: {
309
+ id: EndpointId("search"),
310
+ method: "POST",
311
+ path: [{ type: "literal", value: "/" }],
312
+ displayName: undefined,
313
+ operationId: undefined,
314
+ auth: undefined,
315
+ multiAuth: undefined,
316
+ defaultEnvironment: undefined,
317
+ environments: [
318
+ {
319
+ id: EnvironmentId("default"),
320
+ baseUrl: "https://api.example.com/v1",
321
+ audiences: undefined
322
+ }
323
+ ],
324
+ pathParameters: undefined,
325
+ queryParameters: undefined,
326
+ requestHeaders: undefined,
327
+ responseHeaders: undefined,
328
+ requests: undefined,
329
+ responses: undefined,
330
+ errors: undefined,
331
+ snippetTemplates: undefined,
332
+ protocol: undefined,
333
+ description: undefined,
334
+ availability: undefined,
335
+ namespace: undefined,
336
+ includeInApiExplorer: undefined,
337
+ examples: [
338
+ {
339
+ name: "Basic Search",
340
+ description: "",
341
+ path: "/",
342
+ pathParameters: {},
343
+ queryParameters: {},
344
+ headers: {},
345
+ requestBody: {
346
+ type: "json",
347
+ value: {
348
+ RecordCount: 50,
349
+ DocumentSearchParams: {
350
+ SearchTerms: {
351
+ All: ["data security"],
352
+ Any: ["cyberattack", "breach"],
353
+ None: ["ransomware"]
354
+ },
355
+ DocumentDateRangeStart: "2023-01-01T00:00:00Z",
356
+ DocumentDateRangeEnd: "2023-12-31T23:59:59Z"
357
+ }
358
+ }
359
+ },
360
+ responseStatusCode: 200,
361
+ responseBody: {
362
+ type: "json",
363
+ value: {
364
+ TotalDocumentCount: 833494,
365
+ NotReturnedDocumentCount: 0,
366
+ ReturnedDocumentCount: 2,
367
+ TruncatedDocumentCount: 0,
368
+ Documents: [
369
+ {
370
+ IsTruncated: false,
371
+ DocumentID: 77187402516,
372
+ DocumentType: "NEWS",
373
+ UploadDate: "2024-10-22T16:54:36Z",
374
+ DocumentDate: "2024-10-22T15:17:54Z",
375
+ DocumentName: "Wall Street Continues to See Recent Rally Cooling",
376
+ DocumentText: "U.S. stocks dropped again on Tuesday...",
377
+ AuthorName: "Natalie Venegas",
378
+ DocumentSourceURL: "https://www.newsweek.com/wall-street-continues-see-recent-rally-cooling-1972948",
379
+ DocumentImageURL: "https://d.newsweek.com/en/full/2501402/new-york-stock-exchange.jpg",
380
+ LanguageID: "en",
381
+ DocumentSentimentScore: "-13",
382
+ ContainsViolence: true
383
+ }
384
+ ],
385
+ FavIcons: {
386
+ NEWS: "https://d1hgo075dbsz4i.cloudfront.net/21f4f43585ea45aa539034866e692e21/a/News/dsicon"
387
+ }
388
+ }
389
+ },
390
+ snippets: undefined
391
+ }
392
+ ]
393
+ }
394
+ },
395
+ auths: {},
396
+ websockets: {},
397
+ webhooks: {},
398
+ graphqlOperations: {},
399
+ types: {},
400
+ globalHeaders: [],
401
+ subpackages: {},
402
+ snippetsConfiguration: undefined
403
+ };
404
+ const flags = {
405
+ httpSnippets: true,
406
+ alwaysEnableJavaScriptFetch: true
407
+ };
408
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
409
+ // Verify the result has the expected structure
410
+ const endpoint = result.endpoints[EndpointId("search")];
411
+ expect(endpoint).toBeDefined();
412
+ const examples = endpoint?.examples;
413
+ expect(examples).toHaveLength(1);
414
+ const example = examples?.[0];
415
+ expect(example).toBeDefined();
416
+ // Verify snippets were generated
417
+ const snippets = example?.snippets;
418
+ expect(snippets).toBeDefined();
419
+ const curlSnippets = snippets?.curl;
420
+ expect(curlSnippets).toBeDefined();
421
+ expect(curlSnippets).toHaveLength(1);
422
+ // Verify curl snippet contains expected content
423
+ const curlSnippet = curlSnippets?.[0];
424
+ expect(curlSnippet?.language).toBe("curl");
425
+ expect(curlSnippet?.code).toContain("curl");
426
+ expect(curlSnippet?.code).toContain("POST");
427
+ expect(curlSnippet?.code).toContain('"RecordCount": 50');
428
+ expect(curlSnippet?.code).toContain('"data security"');
429
+ expect(example?.snippets).toMatchSnapshot();
430
+ });
431
+ it("should backfill dynamic snippets for typescript", async () => {
432
+ const apiDefinition = {
433
+ id: ApiDefinitionId("test-api"),
434
+ apiName: undefined,
435
+ endpoints: {
436
+ [EndpointId("createUser")]: {
437
+ id: EndpointId("createUser"),
438
+ method: "POST",
439
+ path: [{ type: "literal", value: "/users" }],
440
+ displayName: undefined,
441
+ operationId: undefined,
442
+ auth: undefined,
443
+ multiAuth: undefined,
444
+ defaultEnvironment: undefined,
445
+ environments: [
446
+ {
447
+ id: EnvironmentId("default"),
448
+ baseUrl: "https://api.example.com/v1",
449
+ audiences: undefined
450
+ }
451
+ ],
452
+ pathParameters: undefined,
453
+ queryParameters: undefined,
454
+ requestHeaders: undefined,
455
+ responseHeaders: undefined,
456
+ requests: undefined,
457
+ responses: undefined,
458
+ errors: undefined,
459
+ snippetTemplates: undefined,
460
+ protocol: undefined,
461
+ description: undefined,
462
+ availability: undefined,
463
+ namespace: undefined,
464
+ includeInApiExplorer: undefined,
465
+ examples: [
466
+ {
467
+ name: "Create User",
468
+ description: "",
469
+ path: "/users",
470
+ pathParameters: {},
471
+ queryParameters: {},
472
+ headers: {},
473
+ requestBody: {
474
+ type: "json",
475
+ value: {
476
+ name: "John Doe",
477
+ email: "john.doe@example.com",
478
+ password: "securePassword123",
479
+ role: "user"
480
+ }
481
+ },
482
+ responseStatusCode: 201,
483
+ responseBody: {
484
+ type: "json",
485
+ value: {
486
+ id: 1,
487
+ name: "John Doe",
488
+ email: "john.doe@example.com",
489
+ role: "user",
490
+ status: "active",
491
+ created_at: "2024-01-15T10:30:00Z",
492
+ updated_at: "2024-01-15T10:30:00Z"
493
+ }
494
+ },
495
+ snippets: undefined
496
+ }
497
+ ]
498
+ }
499
+ },
500
+ auths: {},
501
+ websockets: {},
502
+ webhooks: {},
503
+ graphqlOperations: {},
504
+ types: {},
505
+ globalHeaders: [],
506
+ subpackages: {},
507
+ snippetsConfiguration: undefined
508
+ };
509
+ const flags = {
510
+ httpSnippets: true,
511
+ alwaysEnableJavaScriptFetch: true
512
+ };
513
+ const dynamicIr = {
514
+ typescript: typescriptFixture
515
+ };
516
+ const result = await backfillSnippets(apiDefinition, dynamicIr, flags);
517
+ // Verify the result has the expected structure
518
+ const endpoint = result.endpoints[EndpointId("createUser")];
519
+ expect(endpoint).toBeDefined();
520
+ const examples = endpoint?.examples;
521
+ expect(examples).toHaveLength(1);
522
+ const example = examples?.[0];
523
+ expect(example).toBeDefined();
524
+ // Verify snippets were generated
525
+ const snippets = example?.snippets;
526
+ expect(snippets).toBeDefined();
527
+ const curlSnippets = snippets?.curl;
528
+ expect(curlSnippets).toBeDefined();
529
+ expect(curlSnippets).toHaveLength(1);
530
+ // Verify curl snippet contains expected content
531
+ const curlSnippet = curlSnippets?.[0];
532
+ expect(curlSnippet?.language).toBe("curl");
533
+ expect(curlSnippet?.code).toContain("curl");
534
+ expect(curlSnippet?.code).toContain("POST");
535
+ expect(curlSnippet?.code).toContain('"name": "John Doe"');
536
+ expect(curlSnippet?.code).toContain('"email": "john.doe@example.com"');
537
+ // Verify typescript snippet was generated
538
+ const typescriptSnippets = snippets?.typescript;
539
+ expect(typescriptSnippets).toBeDefined();
540
+ expect(typescriptSnippets).toHaveLength(1);
541
+ const typescriptSnippet = typescriptSnippets?.[0];
542
+ expect(typescriptSnippet?.language).toBe("typescript");
543
+ expect(typescriptSnippet?.code).toBeDefined();
544
+ expect(example?.snippets).toMatchSnapshot();
545
+ });
546
+ it("should backfill dynamic snippets with multiple examples for typescript", async () => {
547
+ const apiDefinition = {
548
+ id: ApiDefinitionId("test-api"),
549
+ apiName: undefined,
550
+ endpoints: {
551
+ [EndpointId("createUser")]: {
552
+ id: EndpointId("createUser"),
553
+ method: "POST",
554
+ path: [{ type: "literal", value: "/users" }],
555
+ displayName: undefined,
556
+ operationId: undefined,
557
+ auth: undefined,
558
+ multiAuth: undefined,
559
+ defaultEnvironment: undefined,
560
+ environments: [
561
+ {
562
+ id: EnvironmentId("default"),
563
+ baseUrl: "https://api.example.com/v1",
564
+ audiences: undefined
565
+ }
566
+ ],
567
+ pathParameters: undefined,
568
+ queryParameters: undefined,
569
+ requestHeaders: undefined,
570
+ responseHeaders: undefined,
571
+ requests: undefined,
572
+ responses: undefined,
573
+ errors: undefined,
574
+ snippetTemplates: undefined,
575
+ protocol: undefined,
576
+ description: undefined,
577
+ availability: undefined,
578
+ namespace: undefined,
579
+ includeInApiExplorer: undefined,
580
+ examples: [
581
+ {
582
+ name: "Create Regular User",
583
+ description: "",
584
+ path: "/users",
585
+ pathParameters: {},
586
+ queryParameters: {},
587
+ headers: {},
588
+ requestBody: {
589
+ type: "json",
590
+ value: {
591
+ name: "John Doe",
592
+ email: "john.doe@example.com",
593
+ password: "securePassword123",
594
+ role: "user"
595
+ }
596
+ },
597
+ responseStatusCode: 201,
598
+ responseBody: {
599
+ type: "json",
600
+ value: {
601
+ id: 1,
602
+ name: "John Doe",
603
+ email: "john.doe@example.com",
604
+ role: "user",
605
+ status: "active",
606
+ created_at: "2024-01-15T10:30:00Z",
607
+ updated_at: "2024-01-15T10:30:00Z"
608
+ }
609
+ },
610
+ snippets: undefined
611
+ },
612
+ {
613
+ name: "Create Admin User",
614
+ description: "",
615
+ path: "/users",
616
+ pathParameters: {},
617
+ queryParameters: {},
618
+ headers: {},
619
+ requestBody: {
620
+ type: "json",
621
+ value: {
622
+ name: "Jane Admin",
623
+ email: "jane.admin@example.com",
624
+ password: "adminPass456",
625
+ role: "admin"
626
+ }
627
+ },
628
+ responseStatusCode: 201,
629
+ responseBody: {
630
+ type: "json",
631
+ value: {
632
+ id: 2,
633
+ name: "Jane Admin",
634
+ email: "jane.admin@example.com",
635
+ role: "admin",
636
+ status: "active",
637
+ created_at: "2024-01-15T11:00:00Z",
638
+ updated_at: "2024-01-15T11:00:00Z"
639
+ }
640
+ },
641
+ snippets: undefined
642
+ }
643
+ ]
644
+ }
645
+ },
646
+ auths: {},
647
+ websockets: {},
648
+ webhooks: {},
649
+ graphqlOperations: {},
650
+ types: {},
651
+ globalHeaders: [],
652
+ subpackages: {},
653
+ snippetsConfiguration: undefined
654
+ };
655
+ const flags = {
656
+ httpSnippets: true,
657
+ alwaysEnableJavaScriptFetch: true
658
+ };
659
+ const dynamicIr = {
660
+ typescript: typescriptFixture
661
+ };
662
+ const result = await backfillSnippets(apiDefinition, dynamicIr, flags);
663
+ // Verify the result has the expected structure
664
+ const endpoint = result.endpoints[EndpointId("createUser")];
665
+ expect(endpoint).toBeDefined();
666
+ const examples = endpoint?.examples;
667
+ expect(examples).toHaveLength(2);
668
+ const example = examples?.[0];
669
+ expect(example).toBeDefined();
670
+ // Verify snippets were generated for first example
671
+ const snippets = example?.snippets;
672
+ expect(snippets).toBeDefined();
673
+ const curlSnippets = snippets?.curl;
674
+ expect(curlSnippets).toBeDefined();
675
+ expect(curlSnippets).toHaveLength(1);
676
+ // Verify curl snippet contains expected content
677
+ const curlSnippet = curlSnippets?.[0];
678
+ expect(curlSnippet?.language).toBe("curl");
679
+ expect(curlSnippet?.code).toContain("curl");
680
+ expect(curlSnippet?.code).toContain("POST");
681
+ expect(curlSnippet?.code).toContain('"name": "John Doe"');
682
+ expect(curlSnippet?.code).toContain('"email": "john.doe@example.com"');
683
+ // Check the second example
684
+ const example2 = examples?.[1];
685
+ expect(example2).toBeDefined();
686
+ const snippets2 = example2?.snippets;
687
+ expect(snippets2).toBeDefined();
688
+ const curlSnippets2 = snippets2?.curl;
689
+ expect(curlSnippets2).toBeDefined();
690
+ expect(curlSnippets2).toHaveLength(1);
691
+ const curlSnippet2 = curlSnippets2?.[0];
692
+ expect(curlSnippet2?.code).toContain('"name": "Jane Admin"');
693
+ expect(curlSnippet2?.code).toContain('"role": "admin"');
694
+ // Check typescript snippets have two examples
695
+ const typescriptSnippets = snippets?.typescript;
696
+ expect(typescriptSnippets).toBeDefined();
697
+ expect(typescriptSnippets).toHaveLength(1);
698
+ const typescriptSnippets2 = snippets2?.typescript;
699
+ expect(typescriptSnippets2).toBeDefined();
700
+ expect(typescriptSnippets2).toHaveLength(1);
701
+ // Check actual content of typescript snippets
702
+ // example 1 should include evidence of the first example
703
+ const typescriptSnippet1 = typescriptSnippets?.[0];
704
+ expect(typescriptSnippet1?.code).toContain('name: "John Doe"');
705
+ expect(typescriptSnippet1?.code).toContain('email: "john.doe@example.com"');
706
+ expect(typescriptSnippet1?.code).toContain('role: "user"');
707
+ // example 2 should include evidence of the second example
708
+ const typescriptSnippet2 = typescriptSnippets2?.[0];
709
+ expect(typescriptSnippet2?.code).toContain('name: "Jane Admin"');
710
+ expect(typescriptSnippet2?.code).toContain('email: "jane.admin@example.com"');
711
+ expect(typescriptSnippet2?.code).toContain('role: "admin"');
712
+ expect(example?.snippets).toMatchSnapshot();
713
+ expect(example2?.snippets).toMatchSnapshot();
714
+ });
715
+ it("should backfill dynamic snippets with multiple examples and error example for typescript", async () => {
716
+ const apiDefinition = {
717
+ id: ApiDefinitionId("test-api"),
718
+ apiName: undefined,
719
+ endpoints: {
720
+ [EndpointId("createUser")]: {
721
+ id: EndpointId("createUser"),
722
+ method: "POST",
723
+ path: [{ type: "literal", value: "/users" }],
724
+ displayName: undefined,
725
+ operationId: undefined,
726
+ auth: undefined,
727
+ multiAuth: undefined,
728
+ defaultEnvironment: undefined,
729
+ environments: [
730
+ {
731
+ id: EnvironmentId("default"),
732
+ baseUrl: "https://api.example.com/v1",
733
+ audiences: undefined
734
+ }
735
+ ],
736
+ pathParameters: undefined,
737
+ queryParameters: undefined,
738
+ requestHeaders: undefined,
739
+ responseHeaders: undefined,
740
+ requests: undefined,
741
+ responses: undefined,
742
+ errors: undefined,
743
+ snippetTemplates: undefined,
744
+ protocol: undefined,
745
+ description: undefined,
746
+ availability: undefined,
747
+ namespace: undefined,
748
+ includeInApiExplorer: undefined,
749
+ examples: [
750
+ {
751
+ name: "Create Regular User",
752
+ description: "",
753
+ path: "/users",
754
+ pathParameters: {},
755
+ queryParameters: {},
756
+ headers: {},
757
+ requestBody: {
758
+ type: "json",
759
+ value: {
760
+ name: "John Doe",
761
+ email: "john.doe@example.com",
762
+ password: "securePassword123",
763
+ role: "user"
764
+ }
765
+ },
766
+ responseStatusCode: 201,
767
+ responseBody: {
768
+ type: "json",
769
+ value: {
770
+ id: 1,
771
+ name: "John Doe",
772
+ email: "john.doe@example.com",
773
+ role: "user",
774
+ status: "active",
775
+ created_at: "2024-01-15T10:30:00Z",
776
+ updated_at: "2024-01-15T10:30:00Z"
777
+ }
778
+ },
779
+ snippets: undefined
780
+ },
781
+ {
782
+ name: "Create Admin User",
783
+ description: "",
784
+ path: "/users",
785
+ pathParameters: {},
786
+ queryParameters: {},
787
+ headers: {},
788
+ requestBody: {
789
+ type: "json",
790
+ value: {
791
+ name: "Jane Admin",
792
+ email: "jane.admin@example.com",
793
+ password: "adminPass456",
794
+ role: "admin"
795
+ }
796
+ },
797
+ responseStatusCode: 201,
798
+ responseBody: {
799
+ type: "json",
800
+ value: {
801
+ id: 2,
802
+ name: "Jane Admin",
803
+ email: "jane.admin@example.com",
804
+ role: "admin",
805
+ status: "active",
806
+ created_at: "2024-01-15T11:00:00Z",
807
+ updated_at: "2024-01-15T11:00:00Z"
808
+ }
809
+ },
810
+ snippets: undefined
811
+ },
812
+ {
813
+ name: "Create User - Unauthorized",
814
+ description: "",
815
+ path: "/users",
816
+ pathParameters: {},
817
+ queryParameters: {},
818
+ headers: {},
819
+ requestBody: {
820
+ type: "json",
821
+ value: {
822
+ name: "Bob User",
823
+ email: "bob.user@example.com",
824
+ password: "password789",
825
+ role: "user"
826
+ }
827
+ },
828
+ responseStatusCode: 401,
829
+ responseBody: {
830
+ type: "json",
831
+ value: {
832
+ error: "Unauthorized",
833
+ code: "UNAUTHORIZED",
834
+ details: {
835
+ message: "Invalid authentication credentials"
836
+ }
837
+ }
838
+ },
839
+ snippets: undefined
840
+ }
841
+ ]
842
+ }
843
+ },
844
+ auths: {},
845
+ websockets: {},
846
+ webhooks: {},
847
+ graphqlOperations: {},
848
+ types: {},
849
+ globalHeaders: [],
850
+ subpackages: {},
851
+ snippetsConfiguration: undefined
852
+ };
853
+ const flags = {
854
+ httpSnippets: true,
855
+ alwaysEnableJavaScriptFetch: true
856
+ };
857
+ const dynamicIr = {
858
+ typescript: typescriptFixture
859
+ };
860
+ const result = await backfillSnippets(apiDefinition, dynamicIr, flags);
861
+ // Verify the result has the expected structure
862
+ const endpoint = result.endpoints[EndpointId("createUser")];
863
+ expect(endpoint).toBeDefined();
864
+ const examples = endpoint?.examples;
865
+ expect(examples).toHaveLength(3);
866
+ const example = examples?.[0];
867
+ expect(example).toBeDefined();
868
+ // Verify snippets were generated
869
+ const snippets = example?.snippets;
870
+ expect(snippets).toBeDefined();
871
+ const curlSnippets = snippets?.curl;
872
+ expect(curlSnippets).toBeDefined();
873
+ expect(curlSnippets).toHaveLength(1);
874
+ // Verify curl snippet contains expected content
875
+ const curlSnippet = curlSnippets?.[0];
876
+ expect(curlSnippet?.language).toBe("curl");
877
+ expect(curlSnippet?.code).toContain("curl");
878
+ expect(curlSnippet?.code).toContain("POST");
879
+ expect(curlSnippet?.code).toContain('"name": "John Doe"');
880
+ expect(curlSnippet?.code).toContain('"email": "john.doe@example.com"');
881
+ // Check the error example (third example)
882
+ const errorExample = examples?.[2];
883
+ expect(errorExample).toBeDefined();
884
+ expect(errorExample?.responseStatusCode).toBe(401);
885
+ const errorSnippets = errorExample?.snippets;
886
+ expect(errorSnippets).toBeDefined();
887
+ const errorCurlSnippets = errorSnippets?.curl;
888
+ expect(errorCurlSnippets).toBeDefined();
889
+ expect(errorCurlSnippets).toHaveLength(1);
890
+ // Check the typescript snippet includes all examples
891
+ const typescriptSnippets = snippets?.typescript;
892
+ expect(typescriptSnippets).toBeDefined();
893
+ expect(typescriptSnippets).toHaveLength(1);
894
+ const errorTypescriptSnippets = errorSnippets?.typescript;
895
+ expect(errorTypescriptSnippets).toBeDefined();
896
+ expect(errorTypescriptSnippets).toHaveLength(1);
897
+ expect(example?.snippets).toMatchSnapshot();
898
+ });
899
+ it("should backfill dynamic snippets for typescript and python", async () => {
900
+ const apiDefinition = {
901
+ id: ApiDefinitionId("test-api"),
902
+ apiName: undefined,
903
+ endpoints: {
904
+ [EndpointId("createUser")]: {
905
+ id: EndpointId("createUser"),
906
+ method: "POST",
907
+ path: [{ type: "literal", value: "/users" }],
908
+ displayName: undefined,
909
+ operationId: undefined,
910
+ auth: undefined,
911
+ multiAuth: undefined,
912
+ defaultEnvironment: undefined,
913
+ environments: [
914
+ {
915
+ id: EnvironmentId("default"),
916
+ baseUrl: "https://api.example.com/v1",
917
+ audiences: undefined
918
+ }
919
+ ],
920
+ pathParameters: undefined,
921
+ queryParameters: undefined,
922
+ requestHeaders: undefined,
923
+ responseHeaders: undefined,
924
+ requests: undefined,
925
+ responses: undefined,
926
+ errors: undefined,
927
+ snippetTemplates: undefined,
928
+ protocol: undefined,
929
+ description: undefined,
930
+ availability: undefined,
931
+ namespace: undefined,
932
+ includeInApiExplorer: undefined,
933
+ examples: [
934
+ {
935
+ name: "Create User",
936
+ description: "",
937
+ path: "/users",
938
+ pathParameters: {},
939
+ queryParameters: {},
940
+ headers: {},
941
+ requestBody: {
942
+ type: "json",
943
+ value: {
944
+ name: "John Doe",
945
+ email: "john.doe@example.com",
946
+ password: "securePassword123",
947
+ role: "user"
948
+ }
949
+ },
950
+ responseStatusCode: 201,
951
+ responseBody: {
952
+ type: "json",
953
+ value: {
954
+ id: 1,
955
+ name: "John Doe",
956
+ email: "john.doe@example.com",
957
+ role: "user",
958
+ status: "active",
959
+ created_at: "2024-01-15T10:30:00Z",
960
+ updated_at: "2024-01-15T10:30:00Z"
961
+ }
962
+ },
963
+ snippets: undefined
964
+ }
965
+ ]
966
+ }
967
+ },
968
+ auths: {},
969
+ websockets: {},
970
+ webhooks: {},
971
+ graphqlOperations: {},
972
+ types: {},
973
+ globalHeaders: [],
974
+ subpackages: {},
975
+ snippetsConfiguration: undefined
976
+ };
977
+ const flags = {
978
+ httpSnippets: true,
979
+ alwaysEnableJavaScriptFetch: true
980
+ };
981
+ const dynamicIr = {
982
+ typescript: typescriptFixture,
983
+ python: pythonFixture
984
+ };
985
+ const result = await backfillSnippets(apiDefinition, dynamicIr, flags);
986
+ // Verify the result has the expected structure
987
+ const endpoint = result.endpoints[EndpointId("createUser")];
988
+ expect(endpoint).toBeDefined();
989
+ const examples = endpoint?.examples;
990
+ expect(examples).toHaveLength(1);
991
+ const example = examples?.[0];
992
+ expect(example).toBeDefined();
993
+ // Verify snippets were generated
994
+ const snippets = example?.snippets;
995
+ expect(snippets).toBeDefined();
996
+ const curlSnippets = snippets?.curl;
997
+ expect(curlSnippets).toBeDefined();
998
+ expect(curlSnippets).toHaveLength(1);
999
+ // Verify curl snippet contains expected content
1000
+ const curlSnippet = curlSnippets?.[0];
1001
+ expect(curlSnippet?.language).toBe("curl");
1002
+ expect(curlSnippet?.code).toContain("curl");
1003
+ expect(curlSnippet?.code).toContain("POST");
1004
+ expect(curlSnippet?.code).toContain('"name": "John Doe"');
1005
+ expect(curlSnippet?.code).toContain('"email": "john.doe@example.com"');
1006
+ // Check typescript and python snippets
1007
+ const typescriptSnippets = snippets?.typescript;
1008
+ expect(typescriptSnippets).toBeDefined();
1009
+ expect(typescriptSnippets).toHaveLength(1);
1010
+ expect(typescriptSnippets?.[0]?.language).toBe("typescript");
1011
+ const pythonSnippets = snippets?.python;
1012
+ expect(pythonSnippets).toBeDefined();
1013
+ expect(pythonSnippets).toHaveLength(1);
1014
+ expect(pythonSnippets?.[0]?.language).toBe("python");
1015
+ expect(example?.snippets).toMatchSnapshot();
1016
+ });
1017
+ it("should backfill dynamic snippets for all languages", async () => {
1018
+ const apiDefinition = {
1019
+ id: ApiDefinitionId("test-api"),
1020
+ apiName: undefined,
1021
+ endpoints: {
1022
+ [EndpointId("createUser")]: {
1023
+ id: EndpointId("createUser"),
1024
+ method: "POST",
1025
+ path: [{ type: "literal", value: "/users" }],
1026
+ displayName: undefined,
1027
+ operationId: undefined,
1028
+ auth: undefined,
1029
+ multiAuth: undefined,
1030
+ defaultEnvironment: undefined,
1031
+ environments: [
1032
+ {
1033
+ id: EnvironmentId("default"),
1034
+ baseUrl: "https://api.example.com/v1",
1035
+ audiences: undefined
1036
+ }
1037
+ ],
1038
+ pathParameters: undefined,
1039
+ queryParameters: undefined,
1040
+ requestHeaders: undefined,
1041
+ responseHeaders: undefined,
1042
+ requests: undefined,
1043
+ responses: undefined,
1044
+ errors: undefined,
1045
+ snippetTemplates: undefined,
1046
+ protocol: undefined,
1047
+ description: undefined,
1048
+ availability: undefined,
1049
+ namespace: undefined,
1050
+ includeInApiExplorer: undefined,
1051
+ examples: [
1052
+ {
1053
+ name: "Create User",
1054
+ description: "",
1055
+ path: "/users",
1056
+ pathParameters: {},
1057
+ queryParameters: {},
1058
+ headers: {},
1059
+ requestBody: {
1060
+ type: "json",
1061
+ value: {
1062
+ name: "John Doe",
1063
+ email: "john.doe@example.com",
1064
+ password: "securePassword123",
1065
+ role: "user"
1066
+ }
1067
+ },
1068
+ responseStatusCode: 201,
1069
+ responseBody: {
1070
+ type: "json",
1071
+ value: {
1072
+ id: 1,
1073
+ name: "John Doe",
1074
+ email: "john.doe@example.com",
1075
+ role: "user",
1076
+ status: "active",
1077
+ created_at: "2024-01-15T10:30:00Z",
1078
+ updated_at: "2024-01-15T10:30:00Z"
1079
+ }
1080
+ },
1081
+ snippets: undefined
1082
+ }
1083
+ ]
1084
+ }
1085
+ },
1086
+ auths: {},
1087
+ websockets: {},
1088
+ webhooks: {},
1089
+ graphqlOperations: {},
1090
+ types: {},
1091
+ globalHeaders: [],
1092
+ subpackages: {},
1093
+ snippetsConfiguration: undefined
1094
+ };
1095
+ const flags = {
1096
+ httpSnippets: true,
1097
+ alwaysEnableJavaScriptFetch: true
1098
+ };
1099
+ const dynamicIr = {
1100
+ typescript: typescriptFixture,
1101
+ python: pythonFixture,
1102
+ java: javaFixture,
1103
+ go: goFixture,
1104
+ ruby: rubyFixture,
1105
+ php: phpFixture,
1106
+ csharp: csharpFixture
1107
+ };
1108
+ const result = await backfillSnippets(apiDefinition, dynamicIr, flags);
1109
+ // Verify the result has the expected structure
1110
+ const endpoint = result.endpoints[EndpointId("createUser")];
1111
+ expect(endpoint).toBeDefined();
1112
+ const examples = endpoint?.examples;
1113
+ expect(examples).toHaveLength(1);
1114
+ const example = examples?.[0];
1115
+ expect(example).toBeDefined();
1116
+ // Verify snippets were generated
1117
+ const snippets = example?.snippets;
1118
+ expect(snippets).toBeDefined();
1119
+ const curlSnippets = snippets?.curl;
1120
+ expect(curlSnippets).toBeDefined();
1121
+ expect(curlSnippets).toHaveLength(1);
1122
+ // Verify curl snippet contains expected content
1123
+ const curlSnippet = curlSnippets?.[0];
1124
+ expect(curlSnippet?.language).toBe("curl");
1125
+ expect(curlSnippet?.code).toContain("curl");
1126
+ expect(curlSnippet?.code).toContain("POST");
1127
+ expect(curlSnippet?.code).toContain('"name": "John Doe"');
1128
+ expect(curlSnippet?.code).toContain('"email": "john.doe@example.com"');
1129
+ // Check all snippets
1130
+ expect(snippets?.typescript).toBeDefined();
1131
+ expect(snippets?.typescript).toHaveLength(1);
1132
+ expect(snippets?.python).toBeDefined();
1133
+ expect(snippets?.python).toHaveLength(1);
1134
+ expect(snippets?.java).toBeDefined();
1135
+ expect(snippets?.java).toHaveLength(1);
1136
+ expect(snippets?.go).toBeDefined();
1137
+ expect(snippets?.go).toHaveLength(1);
1138
+ expect(snippets?.ruby).toBeDefined();
1139
+ expect(snippets?.ruby).toHaveLength(1);
1140
+ expect(snippets?.php).toBeDefined();
1141
+ expect(snippets?.php).toHaveLength(1);
1142
+ expect(snippets?.csharp).toBeDefined();
1143
+ expect(snippets?.csharp).toHaveLength(1);
1144
+ expect(example?.snippets).toMatchSnapshot();
1145
+ });
1146
+ it("should skip head method for dynamic snippets", async () => {
1147
+ const apiDefinition = {
1148
+ id: ApiDefinitionId("test-api"),
1149
+ apiName: undefined,
1150
+ endpoints: {
1151
+ [EndpointId("checkUserExists")]: {
1152
+ id: EndpointId("checkUserExists"),
1153
+ method: "HEAD",
1154
+ path: [
1155
+ { type: "literal", value: "/users" },
1156
+ { type: "literal", value: "/" },
1157
+ { type: "pathParameter", value: PropertyKey("userId") }
1158
+ ],
1159
+ displayName: undefined,
1160
+ operationId: undefined,
1161
+ auth: undefined,
1162
+ multiAuth: undefined,
1163
+ defaultEnvironment: undefined,
1164
+ environments: [
1165
+ {
1166
+ id: EnvironmentId("default"),
1167
+ baseUrl: "https://api.example.com/v1",
1168
+ audiences: undefined
1169
+ }
1170
+ ],
1171
+ pathParameters: undefined,
1172
+ queryParameters: undefined,
1173
+ requestHeaders: undefined,
1174
+ responseHeaders: undefined,
1175
+ requests: undefined,
1176
+ responses: undefined,
1177
+ errors: undefined,
1178
+ snippetTemplates: undefined,
1179
+ protocol: undefined,
1180
+ description: undefined,
1181
+ availability: undefined,
1182
+ namespace: undefined,
1183
+ includeInApiExplorer: undefined,
1184
+ examples: [
1185
+ {
1186
+ name: "Check User Exists",
1187
+ description: "",
1188
+ path: "/users/123",
1189
+ pathParameters: {
1190
+ [PropertyKey("userId")]: 123
1191
+ },
1192
+ queryParameters: {},
1193
+ headers: {},
1194
+ requestBody: undefined,
1195
+ responseStatusCode: 200,
1196
+ responseBody: undefined,
1197
+ snippets: undefined
1198
+ }
1199
+ ]
1200
+ }
1201
+ },
1202
+ auths: {},
1203
+ websockets: {},
1204
+ webhooks: {},
1205
+ graphqlOperations: {},
1206
+ types: {},
1207
+ globalHeaders: [],
1208
+ subpackages: {},
1209
+ snippetsConfiguration: undefined
1210
+ };
1211
+ const flags = {
1212
+ httpSnippets: true,
1213
+ alwaysEnableJavaScriptFetch: true
1214
+ };
1215
+ const dynamicIr = {
1216
+ typescript: typescriptFixture,
1217
+ python: pythonFixture,
1218
+ java: javaFixture,
1219
+ go: goFixture,
1220
+ ruby: rubyFixture,
1221
+ php: phpFixture,
1222
+ csharp: csharpFixture
1223
+ };
1224
+ const result = await backfillSnippets(apiDefinition, dynamicIr, flags);
1225
+ // Verify the result has the expected structure
1226
+ const endpoint = result.endpoints[EndpointId("checkUserExists")];
1227
+ expect(endpoint).toBeDefined();
1228
+ const examples = endpoint?.examples;
1229
+ expect(examples).toHaveLength(1);
1230
+ const example = examples?.[0];
1231
+ expect(example).toBeDefined();
1232
+ // Verify snippets were generated
1233
+ const snippets = example?.snippets;
1234
+ expect(snippets).toBeDefined();
1235
+ const curlSnippets = snippets?.curl;
1236
+ expect(curlSnippets).toBeDefined();
1237
+ expect(curlSnippets).toHaveLength(1);
1238
+ // Verify curl snippet contains expected content for HEAD method
1239
+ const curlSnippet = curlSnippets?.[0];
1240
+ expect(curlSnippet?.language).toBe("curl");
1241
+ expect(curlSnippet?.code).toContain("curl");
1242
+ expect(curlSnippet?.code).toContain("HEAD");
1243
+ // Check that dynamic snippets were skipped for HEAD method
1244
+ // HTTP snippets should still be generated for HEAD method
1245
+ expect(snippets?.typescript).toBeUndefined();
1246
+ expect(snippets?.python).toBeDefined();
1247
+ expect(snippets?.python).toHaveLength(1);
1248
+ expect(snippets?.java).toBeDefined();
1249
+ expect(snippets?.java).toHaveLength(1);
1250
+ expect(snippets?.go).toBeDefined();
1251
+ expect(snippets?.go).toHaveLength(1);
1252
+ expect(snippets?.ruby).toBeDefined();
1253
+ expect(snippets?.ruby).toHaveLength(1);
1254
+ expect(snippets?.php).toBeDefined();
1255
+ expect(snippets?.php).toHaveLength(1);
1256
+ expect(snippets?.csharp).toBeDefined();
1257
+ expect(snippets?.csharp).toHaveLength(1);
1258
+ expect(example?.snippets).toMatchSnapshot();
1259
+ });
1260
+ it("should backfill dynamic snippets for all pinnacle endpoints and languages", async () => {
1261
+ const apiDefinition = {
1262
+ id: ApiDefinitionId("pinnacle-api"),
1263
+ apiName: undefined,
1264
+ endpoints: {
1265
+ // Contacts endpoints
1266
+ [EndpointId("createContact")]: {
1267
+ id: EndpointId("createContact"),
1268
+ method: "POST",
1269
+ path: [{ type: "literal", value: "/contacts" }],
1270
+ displayName: undefined,
1271
+ operationId: undefined,
1272
+ auth: undefined,
1273
+ multiAuth: undefined,
1274
+ defaultEnvironment: undefined,
1275
+ environments: [
1276
+ {
1277
+ id: EnvironmentId("default"),
1278
+ baseUrl: "https://api.pinnacle.us/v1",
1279
+ audiences: undefined
1280
+ }
1281
+ ],
1282
+ pathParameters: undefined,
1283
+ queryParameters: undefined,
1284
+ requestHeaders: undefined,
1285
+ responseHeaders: undefined,
1286
+ requests: undefined,
1287
+ responses: undefined,
1288
+ errors: undefined,
1289
+ snippetTemplates: undefined,
1290
+ protocol: undefined,
1291
+ description: undefined,
1292
+ availability: undefined,
1293
+ namespace: undefined,
1294
+ includeInApiExplorer: undefined,
1295
+ examples: [
1296
+ {
1297
+ name: "Create Contact",
1298
+ description: "",
1299
+ path: "/contacts",
1300
+ pathParameters: {},
1301
+ queryParameters: {},
1302
+ headers: {},
1303
+ requestBody: {
1304
+ type: "json",
1305
+ value: {
1306
+ phoneNumber: "+15551234567",
1307
+ description: "Customer contact"
1308
+ }
1309
+ },
1310
+ responseStatusCode: 200,
1311
+ responseBody: {
1312
+ type: "json",
1313
+ value: {
1314
+ id: "contact_123",
1315
+ phoneNumber: "+15551234567",
1316
+ description: "Customer contact"
1317
+ }
1318
+ },
1319
+ snippets: undefined
1320
+ }
1321
+ ]
1322
+ },
1323
+ [EndpointId("getContact")]: {
1324
+ id: EndpointId("getContact"),
1325
+ method: "GET",
1326
+ path: [{ type: "literal", value: "/contacts" }],
1327
+ displayName: undefined,
1328
+ operationId: undefined,
1329
+ auth: undefined,
1330
+ multiAuth: undefined,
1331
+ defaultEnvironment: undefined,
1332
+ environments: [
1333
+ {
1334
+ id: EnvironmentId("default"),
1335
+ baseUrl: "https://api.pinnacle.us/v1",
1336
+ audiences: undefined
1337
+ }
1338
+ ],
1339
+ pathParameters: undefined,
1340
+ queryParameters: undefined,
1341
+ requestHeaders: undefined,
1342
+ responseHeaders: undefined,
1343
+ requests: undefined,
1344
+ responses: undefined,
1345
+ errors: undefined,
1346
+ snippetTemplates: undefined,
1347
+ protocol: undefined,
1348
+ description: undefined,
1349
+ availability: undefined,
1350
+ namespace: undefined,
1351
+ includeInApiExplorer: undefined,
1352
+ examples: [
1353
+ {
1354
+ name: "Get Contact",
1355
+ description: "",
1356
+ path: "/contacts",
1357
+ pathParameters: {},
1358
+ queryParameters: {},
1359
+ headers: {},
1360
+ requestBody: undefined,
1361
+ responseStatusCode: 200,
1362
+ responseBody: {
1363
+ type: "json",
1364
+ value: {
1365
+ id: "contact_123",
1366
+ phoneNumber: "+15551234567",
1367
+ description: "Customer contact"
1368
+ }
1369
+ },
1370
+ snippets: undefined
1371
+ }
1372
+ ]
1373
+ },
1374
+ // Messages endpoints
1375
+ [EndpointId("sendSms")]: {
1376
+ id: EndpointId("sendSms"),
1377
+ method: "POST",
1378
+ path: [{ type: "literal", value: "/messages/send/sms" }],
1379
+ displayName: undefined,
1380
+ operationId: undefined,
1381
+ auth: undefined,
1382
+ multiAuth: undefined,
1383
+ defaultEnvironment: undefined,
1384
+ environments: [
1385
+ {
1386
+ id: EnvironmentId("default"),
1387
+ baseUrl: "https://api.pinnacle.us/v1",
1388
+ audiences: undefined
1389
+ }
1390
+ ],
1391
+ pathParameters: undefined,
1392
+ queryParameters: undefined,
1393
+ requestHeaders: undefined,
1394
+ responseHeaders: undefined,
1395
+ requests: undefined,
1396
+ responses: undefined,
1397
+ errors: undefined,
1398
+ snippetTemplates: undefined,
1399
+ protocol: undefined,
1400
+ description: undefined,
1401
+ availability: undefined,
1402
+ namespace: undefined,
1403
+ includeInApiExplorer: undefined,
1404
+ examples: [
1405
+ {
1406
+ name: "Send SMS",
1407
+ description: "",
1408
+ path: "/messages/send/sms",
1409
+ pathParameters: {},
1410
+ queryParameters: {},
1411
+ headers: {},
1412
+ requestBody: {
1413
+ type: "json",
1414
+ value: {
1415
+ to: "+15551234567",
1416
+ from: "+15559876543",
1417
+ text: "Hello from Pinnacle!"
1418
+ }
1419
+ },
1420
+ responseStatusCode: 200,
1421
+ responseBody: {
1422
+ type: "json",
1423
+ value: {
1424
+ messageId: "msg_123",
1425
+ status: "sent"
1426
+ }
1427
+ },
1428
+ snippets: undefined
1429
+ }
1430
+ ]
1431
+ },
1432
+ [EndpointId("sendMms")]: {
1433
+ id: EndpointId("sendMms"),
1434
+ method: "POST",
1435
+ path: [{ type: "literal", value: "/messages/send/mms" }],
1436
+ displayName: undefined,
1437
+ operationId: undefined,
1438
+ auth: undefined,
1439
+ multiAuth: undefined,
1440
+ defaultEnvironment: undefined,
1441
+ environments: [
1442
+ {
1443
+ id: EnvironmentId("default"),
1444
+ baseUrl: "https://api.pinnacle.us/v1",
1445
+ audiences: undefined
1446
+ }
1447
+ ],
1448
+ pathParameters: undefined,
1449
+ queryParameters: undefined,
1450
+ requestHeaders: undefined,
1451
+ responseHeaders: undefined,
1452
+ requests: undefined,
1453
+ responses: undefined,
1454
+ errors: undefined,
1455
+ snippetTemplates: undefined,
1456
+ protocol: undefined,
1457
+ description: undefined,
1458
+ availability: undefined,
1459
+ namespace: undefined,
1460
+ includeInApiExplorer: undefined,
1461
+ examples: [
1462
+ {
1463
+ name: "Send MMS",
1464
+ description: "",
1465
+ path: "/messages/send/mms",
1466
+ pathParameters: {},
1467
+ queryParameters: {},
1468
+ headers: {},
1469
+ requestBody: {
1470
+ type: "json",
1471
+ value: {
1472
+ to: "+15551234567",
1473
+ from: "+15559876543",
1474
+ text: "Check out this image!",
1475
+ mediaUrls: ["https://example.com/image.jpg"]
1476
+ }
1477
+ },
1478
+ responseStatusCode: 200,
1479
+ responseBody: {
1480
+ type: "json",
1481
+ value: {
1482
+ messageId: "msg_456",
1483
+ status: "sent"
1484
+ }
1485
+ },
1486
+ snippets: undefined
1487
+ }
1488
+ ]
1489
+ },
1490
+ // Phone Numbers endpoints
1491
+ [EndpointId("buyPhoneNumber")]: {
1492
+ id: EndpointId("buyPhoneNumber"),
1493
+ method: "POST",
1494
+ path: [{ type: "literal", value: "/phone-numbers/buy" }],
1495
+ displayName: undefined,
1496
+ operationId: undefined,
1497
+ auth: undefined,
1498
+ multiAuth: undefined,
1499
+ defaultEnvironment: undefined,
1500
+ environments: [
1501
+ {
1502
+ id: EnvironmentId("default"),
1503
+ baseUrl: "https://api.pinnacle.us/v1",
1504
+ audiences: undefined
1505
+ }
1506
+ ],
1507
+ pathParameters: undefined,
1508
+ queryParameters: undefined,
1509
+ requestHeaders: undefined,
1510
+ responseHeaders: undefined,
1511
+ requests: undefined,
1512
+ responses: undefined,
1513
+ errors: undefined,
1514
+ snippetTemplates: undefined,
1515
+ protocol: undefined,
1516
+ description: undefined,
1517
+ availability: undefined,
1518
+ namespace: undefined,
1519
+ includeInApiExplorer: undefined,
1520
+ examples: [
1521
+ {
1522
+ name: "Buy Phone Number",
1523
+ description: "",
1524
+ path: "/phone-numbers/buy",
1525
+ pathParameters: {},
1526
+ queryParameters: {},
1527
+ headers: {},
1528
+ requestBody: {
1529
+ type: "json",
1530
+ value: {
1531
+ areaCode: "415",
1532
+ type: "local"
1533
+ }
1534
+ },
1535
+ responseStatusCode: 200,
1536
+ responseBody: {
1537
+ type: "json",
1538
+ value: {
1539
+ phoneNumber: "+14155551234",
1540
+ status: "active"
1541
+ }
1542
+ },
1543
+ snippets: undefined
1544
+ }
1545
+ ]
1546
+ },
1547
+ [EndpointId("searchPhoneNumbers")]: {
1548
+ id: EndpointId("searchPhoneNumbers"),
1549
+ method: "POST",
1550
+ path: [{ type: "literal", value: "/phone-numbers/search" }],
1551
+ displayName: undefined,
1552
+ operationId: undefined,
1553
+ auth: undefined,
1554
+ multiAuth: undefined,
1555
+ defaultEnvironment: undefined,
1556
+ environments: [
1557
+ {
1558
+ id: EnvironmentId("default"),
1559
+ baseUrl: "https://api.pinnacle.us/v1",
1560
+ audiences: undefined
1561
+ }
1562
+ ],
1563
+ pathParameters: undefined,
1564
+ queryParameters: undefined,
1565
+ requestHeaders: undefined,
1566
+ responseHeaders: undefined,
1567
+ requests: undefined,
1568
+ responses: undefined,
1569
+ errors: undefined,
1570
+ snippetTemplates: undefined,
1571
+ protocol: undefined,
1572
+ description: undefined,
1573
+ availability: undefined,
1574
+ namespace: undefined,
1575
+ includeInApiExplorer: undefined,
1576
+ examples: [
1577
+ {
1578
+ name: "Search Phone Numbers",
1579
+ description: "",
1580
+ path: "/phone-numbers/search",
1581
+ pathParameters: {},
1582
+ queryParameters: {},
1583
+ headers: {},
1584
+ requestBody: {
1585
+ type: "json",
1586
+ value: {
1587
+ areaCode: "415",
1588
+ limit: 10
1589
+ }
1590
+ },
1591
+ responseStatusCode: 200,
1592
+ responseBody: {
1593
+ type: "json",
1594
+ value: {
1595
+ phoneNumbers: ["+14155551234", "+14155555678"]
1596
+ }
1597
+ },
1598
+ snippets: undefined
1599
+ }
1600
+ ]
1601
+ },
1602
+ // Brands endpoints
1603
+ [EndpointId("getBrand")]: {
1604
+ id: EndpointId("getBrand"),
1605
+ method: "GET",
1606
+ path: [
1607
+ { type: "literal", value: "/brands" },
1608
+ { type: "literal", value: "/" },
1609
+ { type: "pathParameter", value: PropertyKey("id") }
1610
+ ],
1611
+ displayName: undefined,
1612
+ operationId: undefined,
1613
+ auth: undefined,
1614
+ multiAuth: undefined,
1615
+ defaultEnvironment: undefined,
1616
+ environments: [
1617
+ {
1618
+ id: EnvironmentId("default"),
1619
+ baseUrl: "https://api.pinnacle.us/v1",
1620
+ audiences: undefined
1621
+ }
1622
+ ],
1623
+ pathParameters: undefined,
1624
+ queryParameters: undefined,
1625
+ requestHeaders: undefined,
1626
+ responseHeaders: undefined,
1627
+ requests: undefined,
1628
+ responses: undefined,
1629
+ errors: undefined,
1630
+ snippetTemplates: undefined,
1631
+ protocol: undefined,
1632
+ description: undefined,
1633
+ availability: undefined,
1634
+ namespace: undefined,
1635
+ includeInApiExplorer: undefined,
1636
+ examples: [
1637
+ {
1638
+ name: "Get Brand",
1639
+ description: "",
1640
+ path: "/brands/brand_123",
1641
+ pathParameters: {
1642
+ [PropertyKey("id")]: "brand_123"
1643
+ },
1644
+ queryParameters: {},
1645
+ headers: {},
1646
+ requestBody: undefined,
1647
+ responseStatusCode: 200,
1648
+ responseBody: {
1649
+ type: "json",
1650
+ value: {
1651
+ id: "brand_123",
1652
+ name: "Acme Corp",
1653
+ status: "approved"
1654
+ }
1655
+ },
1656
+ snippets: undefined
1657
+ }
1658
+ ]
1659
+ },
1660
+ // Conversations endpoints
1661
+ [EndpointId("getConversation")]: {
1662
+ id: EndpointId("getConversation"),
1663
+ method: "POST",
1664
+ path: [{ type: "literal", value: "/conversations/get" }],
1665
+ displayName: undefined,
1666
+ operationId: undefined,
1667
+ auth: undefined,
1668
+ multiAuth: undefined,
1669
+ defaultEnvironment: undefined,
1670
+ environments: [
1671
+ {
1672
+ id: EnvironmentId("default"),
1673
+ baseUrl: "https://api.pinnacle.us/v1",
1674
+ audiences: undefined
1675
+ }
1676
+ ],
1677
+ pathParameters: undefined,
1678
+ queryParameters: undefined,
1679
+ requestHeaders: undefined,
1680
+ responseHeaders: undefined,
1681
+ requests: undefined,
1682
+ responses: undefined,
1683
+ errors: undefined,
1684
+ snippetTemplates: undefined,
1685
+ protocol: undefined,
1686
+ description: undefined,
1687
+ availability: undefined,
1688
+ namespace: undefined,
1689
+ includeInApiExplorer: undefined,
1690
+ examples: [
1691
+ {
1692
+ name: "Get Conversation",
1693
+ description: "",
1694
+ path: "/conversations/get",
1695
+ pathParameters: {},
1696
+ queryParameters: {},
1697
+ headers: {},
1698
+ requestBody: {
1699
+ type: "json",
1700
+ value: {
1701
+ conversationId: "conv_123"
1702
+ }
1703
+ },
1704
+ responseStatusCode: 200,
1705
+ responseBody: {
1706
+ type: "json",
1707
+ value: {
1708
+ id: "conv_123",
1709
+ messages: [],
1710
+ participants: ["+15551234567"]
1711
+ }
1712
+ },
1713
+ snippets: undefined
1714
+ }
1715
+ ]
1716
+ }
1717
+ },
1718
+ auths: {},
1719
+ websockets: {},
1720
+ webhooks: {},
1721
+ graphqlOperations: {},
1722
+ types: {},
1723
+ globalHeaders: [],
1724
+ subpackages: {},
1725
+ snippetsConfiguration: undefined
1726
+ };
1727
+ const flags = {
1728
+ httpSnippets: true,
1729
+ alwaysEnableJavaScriptFetch: true
1730
+ };
1731
+ const dynamicIr = {
1732
+ typescript: pinnacleTypescriptFixture,
1733
+ python: pinnaclePythonFixture,
1734
+ ruby: pinnacleRubyFixture
1735
+ };
1736
+ const result = await backfillSnippets(apiDefinition, dynamicIr, flags);
1737
+ // Verify all endpoints have snippets generated
1738
+ expect(result.endpoints[EndpointId("createContact")]?.examples?.[0]?.snippets).toBeDefined();
1739
+ expect(result.endpoints[EndpointId("getContact")]?.examples?.[0]?.snippets).toBeDefined();
1740
+ expect(result.endpoints[EndpointId("sendSms")]?.examples?.[0]?.snippets).toBeDefined();
1741
+ expect(result.endpoints[EndpointId("sendMms")]?.examples?.[0]?.snippets).toBeDefined();
1742
+ expect(result.endpoints[EndpointId("buyPhoneNumber")]?.examples?.[0]?.snippets).toBeDefined();
1743
+ expect(result.endpoints[EndpointId("searchPhoneNumbers")]?.examples?.[0]?.snippets).toBeDefined();
1744
+ expect(result.endpoints[EndpointId("getBrand")]?.examples?.[0]?.snippets).toBeDefined();
1745
+ expect(result.endpoints[EndpointId("getConversation")]?.examples?.[0]?.snippets).toBeDefined();
1746
+ // Verify all languages are present for each endpoint
1747
+ const contactSnippets = result.endpoints[EndpointId("createContact")]?.examples?.[0]?.snippets;
1748
+ expect(contactSnippets?.typescript).toBeDefined();
1749
+ expect(contactSnippets?.python).toBeDefined();
1750
+ expect(contactSnippets?.ruby).toBeDefined();
1751
+ expect(contactSnippets?.curl).toBeDefined();
1752
+ // Snapshot the entire result to capture all endpoints with all languages
1753
+ expect(result).toMatchSnapshot();
1754
+ });
1755
+ it("should use multiAuth to select the correct auth scheme for curl snippets", async () => {
1756
+ const apiDefinition = {
1757
+ id: ApiDefinitionId("test-api"),
1758
+ apiName: undefined,
1759
+ endpoints: {
1760
+ [EndpointId("merchantEndpoint")]: {
1761
+ id: EndpointId("merchantEndpoint"),
1762
+ method: "GET",
1763
+ path: [{ type: "literal", value: "/merchant/withdraws" }],
1764
+ displayName: undefined,
1765
+ operationId: undefined,
1766
+ auth: [AuthSchemeId("wallet"), AuthSchemeId("merchant")],
1767
+ multiAuth: [
1768
+ {
1769
+ schemes: [AuthSchemeId("merchant")]
1770
+ }
1771
+ ],
1772
+ defaultEnvironment: undefined,
1773
+ environments: [
1774
+ {
1775
+ id: EnvironmentId("default"),
1776
+ baseUrl: "https://api.example.com",
1777
+ audiences: undefined
1778
+ }
1779
+ ],
1780
+ pathParameters: undefined,
1781
+ queryParameters: undefined,
1782
+ requestHeaders: undefined,
1783
+ responseHeaders: undefined,
1784
+ requests: undefined,
1785
+ responses: undefined,
1786
+ errors: undefined,
1787
+ snippetTemplates: undefined,
1788
+ protocol: undefined,
1789
+ description: undefined,
1790
+ availability: undefined,
1791
+ namespace: undefined,
1792
+ includeInApiExplorer: undefined,
1793
+ examples: [
1794
+ {
1795
+ name: "Get Withdraws",
1796
+ description: "",
1797
+ path: "/merchant/withdraws",
1798
+ pathParameters: {},
1799
+ queryParameters: {},
1800
+ headers: {},
1801
+ requestBody: undefined,
1802
+ responseStatusCode: 200,
1803
+ responseBody: {
1804
+ type: "json",
1805
+ value: { status: "completed" }
1806
+ },
1807
+ snippets: undefined
1808
+ }
1809
+ ]
1810
+ }
1811
+ },
1812
+ auths: {
1813
+ [AuthSchemeId("wallet")]: {
1814
+ type: "header",
1815
+ headerWireValue: "x-custom-api-key",
1816
+ nameOverride: undefined,
1817
+ prefix: undefined,
1818
+ description: undefined
1819
+ },
1820
+ [AuthSchemeId("merchant")]: {
1821
+ type: "bearerAuth",
1822
+ tokenName: undefined,
1823
+ description: undefined
1824
+ }
1825
+ },
1826
+ websockets: {},
1827
+ webhooks: {},
1828
+ graphqlOperations: {},
1829
+ types: {},
1830
+ globalHeaders: [],
1831
+ subpackages: {},
1832
+ snippetsConfiguration: undefined
1833
+ };
1834
+ const flags = {
1835
+ httpSnippets: true,
1836
+ alwaysEnableJavaScriptFetch: true
1837
+ };
1838
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
1839
+ const endpoint = result.endpoints[EndpointId("merchantEndpoint")];
1840
+ expect(endpoint).toBeDefined();
1841
+ const examples = endpoint?.examples;
1842
+ expect(examples).toHaveLength(1);
1843
+ const example = examples?.[0];
1844
+ expect(example).toBeDefined();
1845
+ const snippets = example?.snippets;
1846
+ expect(snippets).toBeDefined();
1847
+ const curlSnippets = snippets?.curl;
1848
+ expect(curlSnippets).toBeDefined();
1849
+ expect(curlSnippets).toHaveLength(1);
1850
+ const curlSnippet = curlSnippets?.[0];
1851
+ expect(curlSnippet?.language).toBe("curl");
1852
+ expect(curlSnippet?.code).toContain("Authorization:");
1853
+ expect(curlSnippet?.code).not.toContain("x-custom-api-key");
1854
+ });
1855
+ it("should regenerate curl snippet when existing snippet has wrong auth header", async () => {
1856
+ const apiDefinition = {
1857
+ id: ApiDefinitionId("test-api"),
1858
+ apiName: undefined,
1859
+ endpoints: {
1860
+ [EndpointId("merchantEndpoint")]: {
1861
+ id: EndpointId("merchantEndpoint"),
1862
+ method: "GET",
1863
+ path: [{ type: "literal", value: "/merchant/withdraws" }],
1864
+ displayName: undefined,
1865
+ operationId: undefined,
1866
+ auth: [AuthSchemeId("wallet"), AuthSchemeId("merchant")],
1867
+ multiAuth: [
1868
+ {
1869
+ schemes: [AuthSchemeId("merchant")]
1870
+ }
1871
+ ],
1872
+ defaultEnvironment: undefined,
1873
+ environments: [
1874
+ {
1875
+ id: EnvironmentId("default"),
1876
+ baseUrl: "https://api.example.com",
1877
+ audiences: undefined
1878
+ }
1879
+ ],
1880
+ pathParameters: undefined,
1881
+ queryParameters: undefined,
1882
+ requestHeaders: undefined,
1883
+ responseHeaders: undefined,
1884
+ requests: undefined,
1885
+ responses: undefined,
1886
+ errors: undefined,
1887
+ snippetTemplates: undefined,
1888
+ protocol: undefined,
1889
+ description: undefined,
1890
+ availability: undefined,
1891
+ namespace: undefined,
1892
+ includeInApiExplorer: undefined,
1893
+ examples: [
1894
+ {
1895
+ name: "Get Withdraws",
1896
+ description: "",
1897
+ path: "/merchant/withdraws",
1898
+ pathParameters: {},
1899
+ queryParameters: {},
1900
+ headers: {},
1901
+ requestBody: undefined,
1902
+ responseStatusCode: 200,
1903
+ responseBody: {
1904
+ type: "json",
1905
+ value: { status: "completed" }
1906
+ },
1907
+ snippets: {
1908
+ curl: [
1909
+ {
1910
+ name: undefined,
1911
+ language: "curl",
1912
+ install: undefined,
1913
+ code: 'curl https://api.example.com/merchant/withdraws \\\n -H "x-custom-api-key: <apiKey>"',
1914
+ generated: true,
1915
+ description: undefined
1916
+ }
1917
+ ]
1918
+ }
1919
+ }
1920
+ ]
1921
+ }
1922
+ },
1923
+ auths: {
1924
+ [AuthSchemeId("wallet")]: {
1925
+ type: "header",
1926
+ headerWireValue: "x-custom-api-key",
1927
+ nameOverride: undefined,
1928
+ prefix: undefined,
1929
+ description: undefined
1930
+ },
1931
+ [AuthSchemeId("merchant")]: {
1932
+ type: "bearerAuth",
1933
+ tokenName: undefined,
1934
+ description: undefined
1935
+ }
1936
+ },
1937
+ websockets: {},
1938
+ webhooks: {},
1939
+ graphqlOperations: {},
1940
+ types: {},
1941
+ globalHeaders: [],
1942
+ subpackages: {},
1943
+ snippetsConfiguration: undefined
1944
+ };
1945
+ const flags = {
1946
+ httpSnippets: true,
1947
+ alwaysEnableJavaScriptFetch: true
1948
+ };
1949
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
1950
+ const endpoint = result.endpoints[EndpointId("merchantEndpoint")];
1951
+ expect(endpoint).toBeDefined();
1952
+ const examples = endpoint?.examples;
1953
+ expect(examples).toHaveLength(1);
1954
+ const example = examples?.[0];
1955
+ expect(example).toBeDefined();
1956
+ const snippets = example?.snippets;
1957
+ expect(snippets).toBeDefined();
1958
+ const curlSnippets = snippets?.curl;
1959
+ expect(curlSnippets).toBeDefined();
1960
+ expect(curlSnippets).toHaveLength(1);
1961
+ const curlSnippet = curlSnippets?.[0];
1962
+ expect(curlSnippet?.language).toBe("curl");
1963
+ expect(curlSnippet?.code).toContain("Authorization:");
1964
+ expect(curlSnippet?.code).not.toContain("x-custom-api-key");
1965
+ });
1966
+ it("should not regenerate curl snippet when existing snippet has correct auth header", async () => {
1967
+ const existingCurlCode = 'curl https://api.example.com/merchant/withdraws \\\n -H "Authorization: Bearer <token>"';
1968
+ const apiDefinition = {
1969
+ id: ApiDefinitionId("test-api"),
1970
+ apiName: undefined,
1971
+ endpoints: {
1972
+ [EndpointId("merchantEndpoint")]: {
1973
+ id: EndpointId("merchantEndpoint"),
1974
+ method: "GET",
1975
+ path: [{ type: "literal", value: "/merchant/withdraws" }],
1976
+ displayName: undefined,
1977
+ operationId: undefined,
1978
+ auth: [AuthSchemeId("wallet"), AuthSchemeId("merchant")],
1979
+ multiAuth: [
1980
+ {
1981
+ schemes: [AuthSchemeId("merchant")]
1982
+ }
1983
+ ],
1984
+ defaultEnvironment: undefined,
1985
+ environments: [
1986
+ {
1987
+ id: EnvironmentId("default"),
1988
+ baseUrl: "https://api.example.com",
1989
+ audiences: undefined
1990
+ }
1991
+ ],
1992
+ pathParameters: undefined,
1993
+ queryParameters: undefined,
1994
+ requestHeaders: undefined,
1995
+ responseHeaders: undefined,
1996
+ requests: undefined,
1997
+ responses: undefined,
1998
+ errors: undefined,
1999
+ snippetTemplates: undefined,
2000
+ protocol: undefined,
2001
+ description: undefined,
2002
+ availability: undefined,
2003
+ namespace: undefined,
2004
+ includeInApiExplorer: undefined,
2005
+ examples: [
2006
+ {
2007
+ name: "Get Withdraws",
2008
+ description: "",
2009
+ path: "/merchant/withdraws",
2010
+ pathParameters: {},
2011
+ queryParameters: {},
2012
+ headers: {},
2013
+ requestBody: undefined,
2014
+ responseStatusCode: 200,
2015
+ responseBody: {
2016
+ type: "json",
2017
+ value: { status: "completed" }
2018
+ },
2019
+ snippets: {
2020
+ curl: [
2021
+ {
2022
+ name: undefined,
2023
+ language: "curl",
2024
+ install: undefined,
2025
+ code: existingCurlCode,
2026
+ generated: true,
2027
+ description: undefined
2028
+ }
2029
+ ]
2030
+ }
2031
+ }
2032
+ ]
2033
+ }
2034
+ },
2035
+ auths: {
2036
+ [AuthSchemeId("wallet")]: {
2037
+ type: "header",
2038
+ headerWireValue: "x-custom-api-key",
2039
+ nameOverride: undefined,
2040
+ prefix: undefined,
2041
+ description: undefined
2042
+ },
2043
+ [AuthSchemeId("merchant")]: {
2044
+ type: "bearerAuth",
2045
+ tokenName: undefined,
2046
+ description: undefined
2047
+ }
2048
+ },
2049
+ websockets: {},
2050
+ webhooks: {},
2051
+ graphqlOperations: {},
2052
+ types: {},
2053
+ globalHeaders: [],
2054
+ subpackages: {},
2055
+ snippetsConfiguration: undefined
2056
+ };
2057
+ const flags = {
2058
+ httpSnippets: true,
2059
+ alwaysEnableJavaScriptFetch: true
2060
+ };
2061
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
2062
+ const endpoint = result.endpoints[EndpointId("merchantEndpoint")];
2063
+ const curlSnippet = endpoint?.examples?.[0]?.snippets?.curl?.[0];
2064
+ expect(curlSnippet?.code).toBe(existingCurlCode);
2065
+ });
2066
+ it("should fall back to endpoint.auth when multiAuth is not defined", async () => {
2067
+ const apiDefinition = {
2068
+ id: ApiDefinitionId("test-api"),
2069
+ apiName: undefined,
2070
+ endpoints: {
2071
+ [EndpointId("walletEndpoint")]: {
2072
+ id: EndpointId("walletEndpoint"),
2073
+ method: "GET",
2074
+ path: [{ type: "literal", value: "/wallet/balance" }],
2075
+ displayName: undefined,
2076
+ operationId: undefined,
2077
+ auth: [AuthSchemeId("wallet")],
2078
+ multiAuth: undefined,
2079
+ defaultEnvironment: undefined,
2080
+ environments: [
2081
+ {
2082
+ id: EnvironmentId("default"),
2083
+ baseUrl: "https://api.example.com",
2084
+ audiences: undefined
2085
+ }
2086
+ ],
2087
+ pathParameters: undefined,
2088
+ queryParameters: undefined,
2089
+ requestHeaders: undefined,
2090
+ responseHeaders: undefined,
2091
+ requests: undefined,
2092
+ responses: undefined,
2093
+ errors: undefined,
2094
+ snippetTemplates: undefined,
2095
+ protocol: undefined,
2096
+ description: undefined,
2097
+ availability: undefined,
2098
+ namespace: undefined,
2099
+ includeInApiExplorer: undefined,
2100
+ examples: [
2101
+ {
2102
+ name: "Get Balance",
2103
+ description: "",
2104
+ path: "/wallet/balance",
2105
+ pathParameters: {},
2106
+ queryParameters: {},
2107
+ headers: {},
2108
+ requestBody: undefined,
2109
+ responseStatusCode: 200,
2110
+ responseBody: {
2111
+ type: "json",
2112
+ value: { balance: 100 }
2113
+ },
2114
+ snippets: undefined
2115
+ }
2116
+ ]
2117
+ }
2118
+ },
2119
+ auths: {
2120
+ [AuthSchemeId("wallet")]: {
2121
+ type: "header",
2122
+ headerWireValue: "x-custom-api-key",
2123
+ nameOverride: undefined,
2124
+ prefix: undefined,
2125
+ description: undefined
2126
+ },
2127
+ [AuthSchemeId("merchant")]: {
2128
+ type: "bearerAuth",
2129
+ tokenName: undefined,
2130
+ description: undefined
2131
+ }
2132
+ },
2133
+ websockets: {},
2134
+ webhooks: {},
2135
+ graphqlOperations: {},
2136
+ types: {},
2137
+ globalHeaders: [],
2138
+ subpackages: {},
2139
+ snippetsConfiguration: undefined
2140
+ };
2141
+ const flags = {
2142
+ httpSnippets: true,
2143
+ alwaysEnableJavaScriptFetch: true
2144
+ };
2145
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
2146
+ const endpoint = result.endpoints[EndpointId("walletEndpoint")];
2147
+ expect(endpoint).toBeDefined();
2148
+ const curlSnippet = endpoint?.examples?.[0]?.snippets?.curl?.[0];
2149
+ expect(curlSnippet?.language).toBe("curl");
2150
+ expect(curlSnippet?.code).toContain("x-custom-api-key:");
2151
+ expect(curlSnippet?.code).not.toContain("Authorization:");
2152
+ });
2153
+ it("should regenerate curl snippet when basic auth uses -H Authorization header instead of -u flag", async () => {
2154
+ const apiDefinition = {
2155
+ id: ApiDefinitionId("test-api"),
2156
+ apiName: undefined,
2157
+ endpoints: {
2158
+ [EndpointId("secureEndpoint")]: {
2159
+ id: EndpointId("secureEndpoint"),
2160
+ method: "GET",
2161
+ path: [{ type: "literal", value: "/secure" }],
2162
+ displayName: undefined,
2163
+ operationId: undefined,
2164
+ auth: [AuthSchemeId("basicAuth")],
2165
+ multiAuth: undefined,
2166
+ defaultEnvironment: undefined,
2167
+ environments: [
2168
+ {
2169
+ id: EnvironmentId("default"),
2170
+ baseUrl: "https://api.example.com",
2171
+ audiences: undefined
2172
+ }
2173
+ ],
2174
+ pathParameters: undefined,
2175
+ queryParameters: undefined,
2176
+ requestHeaders: undefined,
2177
+ responseHeaders: undefined,
2178
+ requests: undefined,
2179
+ responses: undefined,
2180
+ errors: undefined,
2181
+ snippetTemplates: undefined,
2182
+ protocol: undefined,
2183
+ description: undefined,
2184
+ availability: undefined,
2185
+ namespace: undefined,
2186
+ includeInApiExplorer: undefined,
2187
+ examples: [
2188
+ {
2189
+ name: "Get Secure",
2190
+ description: "",
2191
+ path: "/secure",
2192
+ pathParameters: {},
2193
+ queryParameters: {},
2194
+ headers: {},
2195
+ requestBody: undefined,
2196
+ responseStatusCode: 200,
2197
+ responseBody: {
2198
+ type: "json",
2199
+ value: { status: "ok" }
2200
+ },
2201
+ snippets: {
2202
+ curl: [
2203
+ {
2204
+ name: undefined,
2205
+ language: "curl",
2206
+ install: undefined,
2207
+ code: 'curl https://api.example.com/secure \\\n -H "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ="',
2208
+ generated: true,
2209
+ description: undefined
2210
+ }
2211
+ ]
2212
+ }
2213
+ }
2214
+ ]
2215
+ }
2216
+ },
2217
+ auths: {
2218
+ [AuthSchemeId("basicAuth")]: {
2219
+ type: "basicAuth",
2220
+ usernameName: undefined,
2221
+ passwordName: undefined,
2222
+ passwordAlwaysEmpty: undefined,
2223
+ description: undefined
2224
+ }
2225
+ },
2226
+ websockets: {},
2227
+ webhooks: {},
2228
+ graphqlOperations: {},
2229
+ types: {},
2230
+ globalHeaders: [],
2231
+ subpackages: {},
2232
+ snippetsConfiguration: undefined
2233
+ };
2234
+ const flags = {
2235
+ httpSnippets: true,
2236
+ alwaysEnableJavaScriptFetch: true
2237
+ };
2238
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
2239
+ const endpoint = result.endpoints[EndpointId("secureEndpoint")];
2240
+ expect(endpoint).toBeDefined();
2241
+ const curlSnippet = endpoint?.examples?.[0]?.snippets?.curl?.[0];
2242
+ expect(curlSnippet?.language).toBe("curl");
2243
+ expect(curlSnippet?.code).toContain("-u ");
2244
+ expect(curlSnippet?.code).not.toContain('-H "Authorization: Basic');
2245
+ });
2246
+ it("should not regenerate curl snippet when basic auth already uses -u flag", async () => {
2247
+ const existingCurlCode = 'curl https://api.example.com/secure \\\n -u "<username>:<password>"';
2248
+ const apiDefinition = {
2249
+ id: ApiDefinitionId("test-api"),
2250
+ apiName: undefined,
2251
+ endpoints: {
2252
+ [EndpointId("secureEndpoint")]: {
2253
+ id: EndpointId("secureEndpoint"),
2254
+ method: "GET",
2255
+ path: [{ type: "literal", value: "/secure" }],
2256
+ displayName: undefined,
2257
+ operationId: undefined,
2258
+ auth: [AuthSchemeId("basicAuth")],
2259
+ multiAuth: undefined,
2260
+ defaultEnvironment: undefined,
2261
+ environments: [
2262
+ {
2263
+ id: EnvironmentId("default"),
2264
+ baseUrl: "https://api.example.com",
2265
+ audiences: undefined
2266
+ }
2267
+ ],
2268
+ pathParameters: undefined,
2269
+ queryParameters: undefined,
2270
+ requestHeaders: undefined,
2271
+ responseHeaders: undefined,
2272
+ requests: undefined,
2273
+ responses: undefined,
2274
+ errors: undefined,
2275
+ snippetTemplates: undefined,
2276
+ protocol: undefined,
2277
+ description: undefined,
2278
+ availability: undefined,
2279
+ namespace: undefined,
2280
+ includeInApiExplorer: undefined,
2281
+ examples: [
2282
+ {
2283
+ name: "Get Secure",
2284
+ description: "",
2285
+ path: "/secure",
2286
+ pathParameters: {},
2287
+ queryParameters: {},
2288
+ headers: {},
2289
+ requestBody: undefined,
2290
+ responseStatusCode: 200,
2291
+ responseBody: {
2292
+ type: "json",
2293
+ value: { status: "ok" }
2294
+ },
2295
+ snippets: {
2296
+ curl: [
2297
+ {
2298
+ name: undefined,
2299
+ language: "curl",
2300
+ install: undefined,
2301
+ code: existingCurlCode,
2302
+ generated: true,
2303
+ description: undefined
2304
+ }
2305
+ ]
2306
+ }
2307
+ }
2308
+ ]
2309
+ }
2310
+ },
2311
+ auths: {
2312
+ [AuthSchemeId("basicAuth")]: {
2313
+ type: "basicAuth",
2314
+ usernameName: undefined,
2315
+ passwordName: undefined,
2316
+ passwordAlwaysEmpty: undefined,
2317
+ description: undefined
2318
+ }
2319
+ },
2320
+ websockets: {},
2321
+ webhooks: {},
2322
+ graphqlOperations: {},
2323
+ types: {},
2324
+ globalHeaders: [],
2325
+ subpackages: {},
2326
+ snippetsConfiguration: undefined
2327
+ };
2328
+ const flags = {
2329
+ httpSnippets: true,
2330
+ alwaysEnableJavaScriptFetch: true
2331
+ };
2332
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
2333
+ const endpoint = result.endpoints[EndpointId("secureEndpoint")];
2334
+ const curlSnippet = endpoint?.examples?.[0]?.snippets?.curl?.[0];
2335
+ expect(curlSnippet?.code).toBe(existingCurlCode);
2336
+ });
2337
+ it("should use endpoint.path in curl snippet when example.path is empty", async () => {
2338
+ const apiDefinition = {
2339
+ id: ApiDefinitionId("test-api"),
2340
+ apiName: undefined,
2341
+ endpoints: {
2342
+ [EndpointId("getAccountBalance")]: {
2343
+ id: EndpointId("getAccountBalance"),
2344
+ method: "GET",
2345
+ path: [{ type: "literal", value: "/v1/billing/account_balance" }],
2346
+ displayName: undefined,
2347
+ operationId: undefined,
2348
+ auth: undefined,
2349
+ multiAuth: undefined,
2350
+ defaultEnvironment: undefined,
2351
+ environments: [
2352
+ {
2353
+ id: EnvironmentId("default"),
2354
+ baseUrl: "https://api.example.com",
2355
+ audiences: undefined
2356
+ }
2357
+ ],
2358
+ pathParameters: undefined,
2359
+ queryParameters: undefined,
2360
+ requestHeaders: undefined,
2361
+ responseHeaders: undefined,
2362
+ requests: undefined,
2363
+ responses: undefined,
2364
+ errors: undefined,
2365
+ snippetTemplates: undefined,
2366
+ protocol: undefined,
2367
+ description: undefined,
2368
+ availability: undefined,
2369
+ namespace: undefined,
2370
+ includeInApiExplorer: undefined,
2371
+ examples: [
2372
+ {
2373
+ name: "Get Account Balance",
2374
+ description: "",
2375
+ path: "",
2376
+ pathParameters: {},
2377
+ queryParameters: {},
2378
+ headers: {},
2379
+ requestBody: undefined,
2380
+ responseStatusCode: 200,
2381
+ responseBody: {
2382
+ type: "json",
2383
+ value: { balance: 100 }
2384
+ },
2385
+ snippets: undefined
2386
+ }
2387
+ ]
2388
+ }
2389
+ },
2390
+ auths: {},
2391
+ websockets: {},
2392
+ webhooks: {},
2393
+ graphqlOperations: {},
2394
+ types: {},
2395
+ globalHeaders: [],
2396
+ subpackages: {},
2397
+ snippetsConfiguration: undefined
2398
+ };
2399
+ const flags = {
2400
+ httpSnippets: true,
2401
+ alwaysEnableJavaScriptFetch: true
2402
+ };
2403
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
2404
+ const endpoint = result.endpoints[EndpointId("getAccountBalance")];
2405
+ const curlSnippet = endpoint?.examples?.[0]?.snippets?.curl?.[0];
2406
+ expect(curlSnippet?.code).toContain("https://api.example.com/v1/billing/account_balance");
2407
+ expect(curlSnippet?.code).not.toMatch(/https:\/\/api\.example\.com\/?\s/);
2408
+ });
2409
+ it("should regenerate pre-stored curl snippet whose URL is missing the endpoint path", async () => {
2410
+ // Simulates a snippet stored in FDR before the empty-example-path fix:
2411
+ // the URL is just the base environment URL with no endpoint path.
2412
+ const brokenCurl = 'curl https://api.example.com/ \\\n -H "X-API-Key: <apiKey>"';
2413
+ const apiDefinition = {
2414
+ id: ApiDefinitionId("test-api"),
2415
+ apiName: undefined,
2416
+ endpoints: {
2417
+ [EndpointId("getAccountBalance")]: {
2418
+ id: EndpointId("getAccountBalance"),
2419
+ method: "GET",
2420
+ path: [{ type: "literal", value: "/v1/billing/account_balance" }],
2421
+ displayName: undefined,
2422
+ operationId: undefined,
2423
+ auth: [AuthSchemeId("apiKey")],
2424
+ multiAuth: undefined,
2425
+ defaultEnvironment: undefined,
2426
+ environments: [
2427
+ {
2428
+ id: EnvironmentId("default"),
2429
+ baseUrl: "https://api.example.com",
2430
+ audiences: undefined
2431
+ }
2432
+ ],
2433
+ pathParameters: undefined,
2434
+ queryParameters: undefined,
2435
+ requestHeaders: undefined,
2436
+ responseHeaders: undefined,
2437
+ requests: undefined,
2438
+ responses: undefined,
2439
+ errors: undefined,
2440
+ snippetTemplates: undefined,
2441
+ protocol: undefined,
2442
+ description: undefined,
2443
+ availability: undefined,
2444
+ namespace: undefined,
2445
+ includeInApiExplorer: undefined,
2446
+ examples: [
2447
+ {
2448
+ name: "Get Account Balance",
2449
+ description: "",
2450
+ path: "",
2451
+ pathParameters: {},
2452
+ queryParameters: {},
2453
+ headers: {},
2454
+ requestBody: undefined,
2455
+ responseStatusCode: 200,
2456
+ responseBody: {
2457
+ type: "json",
2458
+ value: { balance: 100 }
2459
+ },
2460
+ snippets: {
2461
+ curl: [
2462
+ {
2463
+ name: undefined,
2464
+ language: "curl",
2465
+ install: undefined,
2466
+ code: brokenCurl,
2467
+ generated: true,
2468
+ description: undefined
2469
+ }
2470
+ ]
2471
+ }
2472
+ }
2473
+ ]
2474
+ }
2475
+ },
2476
+ auths: {
2477
+ [AuthSchemeId("apiKey")]: {
2478
+ type: "header",
2479
+ headerWireValue: "X-API-Key",
2480
+ nameOverride: undefined,
2481
+ prefix: undefined
2482
+ }
2483
+ },
2484
+ websockets: {},
2485
+ webhooks: {},
2486
+ graphqlOperations: {},
2487
+ types: {},
2488
+ globalHeaders: [],
2489
+ subpackages: {},
2490
+ snippetsConfiguration: undefined
2491
+ };
2492
+ const flags = {
2493
+ httpSnippets: true,
2494
+ alwaysEnableJavaScriptFetch: true
2495
+ };
2496
+ const result = await backfillSnippets(apiDefinition, undefined, flags);
2497
+ const endpoint = result.endpoints[EndpointId("getAccountBalance")];
2498
+ const curlSnippet = endpoint?.examples?.[0]?.snippets?.curl?.[0];
2499
+ expect(curlSnippet?.code).toContain("https://api.example.com/v1/billing/account_balance");
2500
+ expect(curlSnippet?.code).not.toBe(brokenCurl);
2501
+ });
2502
+ });
2503
+ //# sourceMappingURL=backfill.test.js.map