@fastpix/fastpix-node 2.0.6 → 2.0.8

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 (968) hide show
  1. package/README.md +92 -4
  2. package/dist/commonjs/funcs/aiFeaturesGenerateNamedEntities.d.ts +3 -1
  3. package/dist/commonjs/funcs/aiFeaturesGenerateNamedEntities.d.ts.map +1 -1
  4. package/dist/commonjs/funcs/aiFeaturesGenerateNamedEntities.js +0 -22
  5. package/dist/commonjs/funcs/aiFeaturesGenerateNamedEntities.js.map +1 -1
  6. package/dist/commonjs/funcs/aiFeaturesUpdateSummary.d.ts +3 -1
  7. package/dist/commonjs/funcs/aiFeaturesUpdateSummary.d.ts.map +1 -1
  8. package/dist/commonjs/funcs/aiFeaturesUpdateSummary.js +0 -18
  9. package/dist/commonjs/funcs/aiFeaturesUpdateSummary.js.map +1 -1
  10. package/dist/commonjs/funcs/dimensionsList.d.ts +3 -1
  11. package/dist/commonjs/funcs/dimensionsList.d.ts.map +1 -1
  12. package/dist/commonjs/funcs/dimensionsList.js +0 -10
  13. package/dist/commonjs/funcs/dimensionsList.js.map +1 -1
  14. package/dist/commonjs/funcs/dimensionsListFilterValues.d.ts +3 -1
  15. package/dist/commonjs/funcs/dimensionsListFilterValues.d.ts.map +1 -1
  16. package/dist/commonjs/funcs/dimensionsListFilterValues.js +0 -14
  17. package/dist/commonjs/funcs/dimensionsListFilterValues.js.map +1 -1
  18. package/dist/commonjs/funcs/drmConfigurationsGet.d.ts +3 -1
  19. package/dist/commonjs/funcs/drmConfigurationsGet.d.ts.map +1 -1
  20. package/dist/commonjs/funcs/drmConfigurationsGet.js +0 -13
  21. package/dist/commonjs/funcs/drmConfigurationsGet.js.map +1 -1
  22. package/dist/commonjs/funcs/drmConfigurationsList.d.ts +3 -1
  23. package/dist/commonjs/funcs/drmConfigurationsList.d.ts.map +1 -1
  24. package/dist/commonjs/funcs/drmConfigurationsList.js +0 -17
  25. package/dist/commonjs/funcs/drmConfigurationsList.js.map +1 -1
  26. package/dist/commonjs/funcs/errorsList.d.ts +3 -1
  27. package/dist/commonjs/funcs/errorsList.d.ts.map +1 -1
  28. package/dist/commonjs/funcs/errorsList.js +0 -20
  29. package/dist/commonjs/funcs/errorsList.js.map +1 -1
  30. package/dist/commonjs/funcs/inVideoAIUpdateModeration.d.ts +3 -1
  31. package/dist/commonjs/funcs/inVideoAIUpdateModeration.d.ts.map +1 -1
  32. package/dist/commonjs/funcs/inVideoAIUpdateModeration.js +0 -17
  33. package/dist/commonjs/funcs/inVideoAIUpdateModeration.js.map +1 -1
  34. package/dist/commonjs/funcs/inVideoAIfeaturesGenerateChapters.d.ts +3 -1
  35. package/dist/commonjs/funcs/inVideoAIfeaturesGenerateChapters.d.ts.map +1 -1
  36. package/dist/commonjs/funcs/inVideoAIfeaturesGenerateChapters.js +0 -17
  37. package/dist/commonjs/funcs/inVideoAIfeaturesGenerateChapters.js.map +1 -1
  38. package/dist/commonjs/funcs/inputVideoCreate.d.ts +3 -1
  39. package/dist/commonjs/funcs/inputVideoCreate.d.ts.map +1 -1
  40. package/dist/commonjs/funcs/inputVideoCreate.js +0 -40
  41. package/dist/commonjs/funcs/inputVideoCreate.js.map +1 -1
  42. package/dist/commonjs/funcs/inputVideoUpload.d.ts +3 -1
  43. package/dist/commonjs/funcs/inputVideoUpload.d.ts.map +1 -1
  44. package/dist/commonjs/funcs/inputVideoUpload.js +0 -30
  45. package/dist/commonjs/funcs/inputVideoUpload.js.map +1 -1
  46. package/dist/commonjs/funcs/livePlaybackCreateId.d.ts +3 -1
  47. package/dist/commonjs/funcs/livePlaybackCreateId.d.ts.map +1 -1
  48. package/dist/commonjs/funcs/livePlaybackCreateId.js +0 -12
  49. package/dist/commonjs/funcs/livePlaybackCreateId.js.map +1 -1
  50. package/dist/commonjs/funcs/livePlaybackDelete.d.ts +3 -1
  51. package/dist/commonjs/funcs/livePlaybackDelete.d.ts.map +1 -1
  52. package/dist/commonjs/funcs/livePlaybackDelete.js +0 -9
  53. package/dist/commonjs/funcs/livePlaybackDelete.js.map +1 -1
  54. package/dist/commonjs/funcs/livePlaybackGet.d.ts +3 -1
  55. package/dist/commonjs/funcs/livePlaybackGet.d.ts.map +1 -1
  56. package/dist/commonjs/funcs/livePlaybackGet.js +0 -9
  57. package/dist/commonjs/funcs/livePlaybackGet.js.map +1 -1
  58. package/dist/commonjs/funcs/liveStreamsCreate.d.ts +3 -1
  59. package/dist/commonjs/funcs/liveStreamsCreate.d.ts.map +1 -1
  60. package/dist/commonjs/funcs/liveStreamsCreate.js +0 -22
  61. package/dist/commonjs/funcs/liveStreamsCreate.js.map +1 -1
  62. package/dist/commonjs/funcs/liveStreamsDelete.d.ts +3 -1
  63. package/dist/commonjs/funcs/liveStreamsDelete.d.ts.map +1 -1
  64. package/dist/commonjs/funcs/liveStreamsDelete.js +0 -14
  65. package/dist/commonjs/funcs/liveStreamsDelete.js.map +1 -1
  66. package/dist/commonjs/funcs/liveStreamsEnable.d.ts +3 -1
  67. package/dist/commonjs/funcs/liveStreamsEnable.d.ts.map +1 -1
  68. package/dist/commonjs/funcs/liveStreamsEnable.js +0 -16
  69. package/dist/commonjs/funcs/liveStreamsEnable.js.map +1 -1
  70. package/dist/commonjs/funcs/liveStreamsList.d.ts +3 -1
  71. package/dist/commonjs/funcs/liveStreamsList.d.ts.map +1 -1
  72. package/dist/commonjs/funcs/liveStreamsList.js +0 -10
  73. package/dist/commonjs/funcs/liveStreamsList.js.map +1 -1
  74. package/dist/commonjs/funcs/liveStreamsListClips.d.ts +3 -1
  75. package/dist/commonjs/funcs/liveStreamsListClips.d.ts.map +1 -1
  76. package/dist/commonjs/funcs/liveStreamsListClips.js +0 -17
  77. package/dist/commonjs/funcs/liveStreamsListClips.js.map +1 -1
  78. package/dist/commonjs/funcs/manageLiveStreamComplete.d.ts +3 -1
  79. package/dist/commonjs/funcs/manageLiveStreamComplete.d.ts.map +1 -1
  80. package/dist/commonjs/funcs/manageLiveStreamComplete.js +0 -16
  81. package/dist/commonjs/funcs/manageLiveStreamComplete.js.map +1 -1
  82. package/dist/commonjs/funcs/manageLiveStreamDisable.d.ts +3 -1
  83. package/dist/commonjs/funcs/manageLiveStreamDisable.d.ts.map +1 -1
  84. package/dist/commonjs/funcs/manageLiveStreamDisable.js +0 -14
  85. package/dist/commonjs/funcs/manageLiveStreamDisable.js.map +1 -1
  86. package/dist/commonjs/funcs/manageLiveStreamGet.d.ts +3 -1
  87. package/dist/commonjs/funcs/manageLiveStreamGet.d.ts.map +1 -1
  88. package/dist/commonjs/funcs/manageLiveStreamGet.js +0 -11
  89. package/dist/commonjs/funcs/manageLiveStreamGet.js.map +1 -1
  90. package/dist/commonjs/funcs/manageLiveStreamGetViewerCount.d.ts +3 -1
  91. package/dist/commonjs/funcs/manageLiveStreamGetViewerCount.d.ts.map +1 -1
  92. package/dist/commonjs/funcs/manageLiveStreamGetViewerCount.js +0 -14
  93. package/dist/commonjs/funcs/manageLiveStreamGetViewerCount.js.map +1 -1
  94. package/dist/commonjs/funcs/manageLiveStreamUpdate.d.ts +3 -1
  95. package/dist/commonjs/funcs/manageLiveStreamUpdate.d.ts.map +1 -1
  96. package/dist/commonjs/funcs/manageLiveStreamUpdate.js +0 -14
  97. package/dist/commonjs/funcs/manageLiveStreamUpdate.js.map +1 -1
  98. package/dist/commonjs/funcs/manageVideosAddTrack.d.ts +3 -1
  99. package/dist/commonjs/funcs/manageVideosAddTrack.d.ts.map +1 -1
  100. package/dist/commonjs/funcs/manageVideosAddTrack.js +0 -27
  101. package/dist/commonjs/funcs/manageVideosAddTrack.js.map +1 -1
  102. package/dist/commonjs/funcs/manageVideosCancelUpload.d.ts +3 -1
  103. package/dist/commonjs/funcs/manageVideosCancelUpload.d.ts.map +1 -1
  104. package/dist/commonjs/funcs/manageVideosCancelUpload.js +0 -19
  105. package/dist/commonjs/funcs/manageVideosCancelUpload.js.map +1 -1
  106. package/dist/commonjs/funcs/manageVideosDelete.d.ts +3 -1
  107. package/dist/commonjs/funcs/manageVideosDelete.d.ts.map +1 -1
  108. package/dist/commonjs/funcs/manageVideosDelete.js +0 -17
  109. package/dist/commonjs/funcs/manageVideosDelete.js.map +1 -1
  110. package/dist/commonjs/funcs/manageVideosGenerateSubtitleTrack.d.ts +3 -1
  111. package/dist/commonjs/funcs/manageVideosGenerateSubtitleTrack.d.ts.map +1 -1
  112. package/dist/commonjs/funcs/manageVideosGenerateSubtitleTrack.js +0 -22
  113. package/dist/commonjs/funcs/manageVideosGenerateSubtitleTrack.js.map +1 -1
  114. package/dist/commonjs/funcs/manageVideosGet.d.ts +3 -1
  115. package/dist/commonjs/funcs/manageVideosGet.d.ts.map +1 -1
  116. package/dist/commonjs/funcs/manageVideosGet.js +0 -20
  117. package/dist/commonjs/funcs/manageVideosGet.js.map +1 -1
  118. package/dist/commonjs/funcs/manageVideosGetSummary.d.ts +3 -2
  119. package/dist/commonjs/funcs/manageVideosGetSummary.d.ts.map +1 -1
  120. package/dist/commonjs/funcs/manageVideosGetSummary.js +0 -17
  121. package/dist/commonjs/funcs/manageVideosGetSummary.js.map +1 -1
  122. package/dist/commonjs/funcs/manageVideosListUploads.d.ts +3 -1
  123. package/dist/commonjs/funcs/manageVideosListUploads.d.ts.map +1 -1
  124. package/dist/commonjs/funcs/manageVideosListUploads.js +0 -19
  125. package/dist/commonjs/funcs/manageVideosListUploads.js.map +1 -1
  126. package/dist/commonjs/funcs/manageVideosRetrieveMediaInputInfo.d.ts +3 -1
  127. package/dist/commonjs/funcs/manageVideosRetrieveMediaInputInfo.d.ts.map +1 -1
  128. package/dist/commonjs/funcs/manageVideosRetrieveMediaInputInfo.js +0 -18
  129. package/dist/commonjs/funcs/manageVideosRetrieveMediaInputInfo.js.map +1 -1
  130. package/dist/commonjs/funcs/manageVideosUpdate.d.ts +3 -1
  131. package/dist/commonjs/funcs/manageVideosUpdate.d.ts.map +1 -1
  132. package/dist/commonjs/funcs/manageVideosUpdate.js +0 -19
  133. package/dist/commonjs/funcs/manageVideosUpdate.js.map +1 -1
  134. package/dist/commonjs/funcs/manageVideosUpdateMp4Support.d.ts +3 -1
  135. package/dist/commonjs/funcs/manageVideosUpdateMp4Support.d.ts.map +1 -1
  136. package/dist/commonjs/funcs/manageVideosUpdateMp4Support.js +0 -33
  137. package/dist/commonjs/funcs/manageVideosUpdateMp4Support.js.map +1 -1
  138. package/dist/commonjs/funcs/manageVideosUpdateTrack.d.ts +3 -1
  139. package/dist/commonjs/funcs/manageVideosUpdateTrack.d.ts.map +1 -1
  140. package/dist/commonjs/funcs/manageVideosUpdateTrack.js +0 -32
  141. package/dist/commonjs/funcs/manageVideosUpdateTrack.js.map +1 -1
  142. package/dist/commonjs/funcs/mediaDeleteTrack.d.ts +3 -1
  143. package/dist/commonjs/funcs/mediaDeleteTrack.d.ts.map +1 -1
  144. package/dist/commonjs/funcs/mediaDeleteTrack.js +0 -27
  145. package/dist/commonjs/funcs/mediaDeleteTrack.js.map +1 -1
  146. package/dist/commonjs/funcs/mediaGetClips.d.ts +3 -1
  147. package/dist/commonjs/funcs/mediaGetClips.d.ts.map +1 -1
  148. package/dist/commonjs/funcs/mediaGetClips.js +0 -21
  149. package/dist/commonjs/funcs/mediaGetClips.js.map +1 -1
  150. package/dist/commonjs/funcs/mediaList.d.ts +3 -1
  151. package/dist/commonjs/funcs/mediaList.d.ts.map +1 -1
  152. package/dist/commonjs/funcs/mediaList.js +0 -13
  153. package/dist/commonjs/funcs/mediaList.js.map +1 -1
  154. package/dist/commonjs/funcs/mediaUpdateSourceAccess.d.ts +3 -1
  155. package/dist/commonjs/funcs/mediaUpdateSourceAccess.d.ts.map +1 -1
  156. package/dist/commonjs/funcs/mediaUpdateSourceAccess.js +0 -15
  157. package/dist/commonjs/funcs/mediaUpdateSourceAccess.js.map +1 -1
  158. package/dist/commonjs/funcs/metricsGetTimeseriesData.d.ts +3 -1
  159. package/dist/commonjs/funcs/metricsGetTimeseriesData.d.ts.map +1 -1
  160. package/dist/commonjs/funcs/metricsGetTimeseriesData.js +0 -12
  161. package/dist/commonjs/funcs/metricsGetTimeseriesData.js.map +1 -1
  162. package/dist/commonjs/funcs/metricsListBreakdownValues.d.ts +3 -1
  163. package/dist/commonjs/funcs/metricsListBreakdownValues.d.ts.map +1 -1
  164. package/dist/commonjs/funcs/metricsListBreakdownValues.js +0 -32
  165. package/dist/commonjs/funcs/metricsListBreakdownValues.js.map +1 -1
  166. package/dist/commonjs/funcs/metricsListCompares.d.ts +3 -1
  167. package/dist/commonjs/funcs/metricsListCompares.d.ts.map +1 -1
  168. package/dist/commonjs/funcs/metricsListCompares.js +0 -25
  169. package/dist/commonjs/funcs/metricsListCompares.js.map +1 -1
  170. package/dist/commonjs/funcs/metricsListOverallValues.d.ts +3 -1
  171. package/dist/commonjs/funcs/metricsListOverallValues.d.ts.map +1 -1
  172. package/dist/commonjs/funcs/metricsListOverallValues.js +0 -25
  173. package/dist/commonjs/funcs/metricsListOverallValues.js.map +1 -1
  174. package/dist/commonjs/funcs/playbackCreate.d.ts +3 -1
  175. package/dist/commonjs/funcs/playbackCreate.d.ts.map +1 -1
  176. package/dist/commonjs/funcs/playbackCreate.js +0 -19
  177. package/dist/commonjs/funcs/playbackCreate.js.map +1 -1
  178. package/dist/commonjs/funcs/playbackDelete.d.ts +3 -1
  179. package/dist/commonjs/funcs/playbackDelete.d.ts.map +1 -1
  180. package/dist/commonjs/funcs/playbackDelete.js +0 -16
  181. package/dist/commonjs/funcs/playbackDelete.js.map +1 -1
  182. package/dist/commonjs/funcs/playbackGet.d.ts +3 -1
  183. package/dist/commonjs/funcs/playbackGet.d.ts.map +1 -1
  184. package/dist/commonjs/funcs/playbackGet.js +0 -13
  185. package/dist/commonjs/funcs/playbackGet.js.map +1 -1
  186. package/dist/commonjs/funcs/playbackListIds.d.ts +3 -1
  187. package/dist/commonjs/funcs/playbackListIds.d.ts.map +1 -1
  188. package/dist/commonjs/funcs/playbackListIds.js +0 -13
  189. package/dist/commonjs/funcs/playbackListIds.js.map +1 -1
  190. package/dist/commonjs/funcs/playbackUpdateDomainRestrictions.d.ts +3 -1
  191. package/dist/commonjs/funcs/playbackUpdateDomainRestrictions.d.ts.map +1 -1
  192. package/dist/commonjs/funcs/playbackUpdateDomainRestrictions.js +0 -15
  193. package/dist/commonjs/funcs/playbackUpdateDomainRestrictions.js.map +1 -1
  194. package/dist/commonjs/funcs/playbackUpdateUserAgentRestrictions.d.ts +3 -1
  195. package/dist/commonjs/funcs/playbackUpdateUserAgentRestrictions.d.ts.map +1 -1
  196. package/dist/commonjs/funcs/playbackUpdateUserAgentRestrictions.js +0 -15
  197. package/dist/commonjs/funcs/playbackUpdateUserAgentRestrictions.js.map +1 -1
  198. package/dist/commonjs/funcs/playlistCreate.d.ts +3 -1
  199. package/dist/commonjs/funcs/playlistCreate.d.ts.map +1 -1
  200. package/dist/commonjs/funcs/playlistCreate.js +0 -19
  201. package/dist/commonjs/funcs/playlistCreate.js.map +1 -1
  202. package/dist/commonjs/funcs/playlistDelete.d.ts +3 -1
  203. package/dist/commonjs/funcs/playlistDelete.d.ts.map +1 -1
  204. package/dist/commonjs/funcs/playlistDelete.js +0 -11
  205. package/dist/commonjs/funcs/playlistDelete.js.map +1 -1
  206. package/dist/commonjs/funcs/playlistGet.d.ts +3 -1
  207. package/dist/commonjs/funcs/playlistGet.d.ts.map +1 -1
  208. package/dist/commonjs/funcs/playlistGet.js +0 -9
  209. package/dist/commonjs/funcs/playlistGet.js.map +1 -1
  210. package/dist/commonjs/funcs/playlistList.d.ts +3 -1
  211. package/dist/commonjs/funcs/playlistList.d.ts.map +1 -1
  212. package/dist/commonjs/funcs/playlistList.js +0 -13
  213. package/dist/commonjs/funcs/playlistList.js.map +1 -1
  214. package/dist/commonjs/funcs/playlistUpdate.d.ts +3 -1
  215. package/dist/commonjs/funcs/playlistUpdate.d.ts.map +1 -1
  216. package/dist/commonjs/funcs/playlistUpdate.js +0 -12
  217. package/dist/commonjs/funcs/playlistUpdate.js.map +1 -1
  218. package/dist/commonjs/funcs/playlistUpdateMediaOrder.d.ts +3 -1
  219. package/dist/commonjs/funcs/playlistUpdateMediaOrder.d.ts.map +1 -1
  220. package/dist/commonjs/funcs/playlistUpdateMediaOrder.js +0 -12
  221. package/dist/commonjs/funcs/playlistUpdateMediaOrder.js.map +1 -1
  222. package/dist/commonjs/funcs/playlistsAddMedia.d.ts +3 -1
  223. package/dist/commonjs/funcs/playlistsAddMedia.d.ts.map +1 -1
  224. package/dist/commonjs/funcs/playlistsAddMedia.js +0 -12
  225. package/dist/commonjs/funcs/playlistsAddMedia.js.map +1 -1
  226. package/dist/commonjs/funcs/playlistsDeleteMedia.d.ts +3 -1
  227. package/dist/commonjs/funcs/playlistsDeleteMedia.d.ts.map +1 -1
  228. package/dist/commonjs/funcs/playlistsDeleteMedia.js +0 -12
  229. package/dist/commonjs/funcs/playlistsDeleteMedia.js.map +1 -1
  230. package/dist/commonjs/funcs/signingKeysCreate.d.ts +3 -1
  231. package/dist/commonjs/funcs/signingKeysCreate.d.ts.map +1 -1
  232. package/dist/commonjs/funcs/signingKeysCreate.js +0 -21
  233. package/dist/commonjs/funcs/signingKeysCreate.js.map +1 -1
  234. package/dist/commonjs/funcs/signingKeysDelete.d.ts +3 -1
  235. package/dist/commonjs/funcs/signingKeysDelete.d.ts.map +1 -1
  236. package/dist/commonjs/funcs/signingKeysDelete.js +0 -18
  237. package/dist/commonjs/funcs/signingKeysDelete.js.map +1 -1
  238. package/dist/commonjs/funcs/signingKeysGetById.d.ts +3 -1
  239. package/dist/commonjs/funcs/signingKeysGetById.d.ts.map +1 -1
  240. package/dist/commonjs/funcs/signingKeysGetById.js +0 -38
  241. package/dist/commonjs/funcs/signingKeysGetById.js.map +1 -1
  242. package/dist/commonjs/funcs/signingKeysList.d.ts +3 -1
  243. package/dist/commonjs/funcs/signingKeysList.d.ts.map +1 -1
  244. package/dist/commonjs/funcs/signingKeysList.js +0 -16
  245. package/dist/commonjs/funcs/signingKeysList.js.map +1 -1
  246. package/dist/commonjs/funcs/simulcastStreamsDelete.d.ts +3 -1
  247. package/dist/commonjs/funcs/simulcastStreamsDelete.d.ts.map +1 -1
  248. package/dist/commonjs/funcs/simulcastStreamsDelete.js +0 -11
  249. package/dist/commonjs/funcs/simulcastStreamsDelete.js.map +1 -1
  250. package/dist/commonjs/funcs/simulcastsCreate.d.ts +3 -1
  251. package/dist/commonjs/funcs/simulcastsCreate.d.ts.map +1 -1
  252. package/dist/commonjs/funcs/simulcastsCreate.js +0 -16
  253. package/dist/commonjs/funcs/simulcastsCreate.js.map +1 -1
  254. package/dist/commonjs/funcs/simulcastsGet.d.ts +3 -1
  255. package/dist/commonjs/funcs/simulcastsGet.d.ts.map +1 -1
  256. package/dist/commonjs/funcs/simulcastsGet.js +0 -9
  257. package/dist/commonjs/funcs/simulcastsGet.js.map +1 -1
  258. package/dist/commonjs/funcs/simulcastsUpdate.d.ts +3 -1
  259. package/dist/commonjs/funcs/simulcastsUpdate.d.ts.map +1 -1
  260. package/dist/commonjs/funcs/simulcastsUpdate.js +0 -11
  261. package/dist/commonjs/funcs/simulcastsUpdate.js.map +1 -1
  262. package/dist/commonjs/funcs/viewsGetDetails.d.ts +3 -1
  263. package/dist/commonjs/funcs/viewsGetDetails.d.ts.map +1 -1
  264. package/dist/commonjs/funcs/viewsGetDetails.js +0 -14
  265. package/dist/commonjs/funcs/viewsGetDetails.js.map +1 -1
  266. package/dist/commonjs/funcs/viewsList.d.ts +3 -1
  267. package/dist/commonjs/funcs/viewsList.d.ts.map +1 -1
  268. package/dist/commonjs/funcs/viewsList.js +0 -28
  269. package/dist/commonjs/funcs/viewsList.js.map +1 -1
  270. package/dist/commonjs/funcs/viewsListTopContent.d.ts +3 -1
  271. package/dist/commonjs/funcs/viewsListTopContent.d.ts.map +1 -1
  272. package/dist/commonjs/funcs/viewsListTopContent.js +0 -20
  273. package/dist/commonjs/funcs/viewsListTopContent.js.map +1 -1
  274. package/dist/commonjs/hooks/hooks.d.ts.map +1 -1
  275. package/dist/commonjs/hooks/hooks.js +30 -23
  276. package/dist/commonjs/hooks/hooks.js.map +1 -1
  277. package/dist/commonjs/hooks/types.d.ts +9 -5
  278. package/dist/commonjs/hooks/types.d.ts.map +1 -1
  279. package/dist/commonjs/index.d.ts +1 -0
  280. package/dist/commonjs/index.d.ts.map +1 -1
  281. package/dist/commonjs/index.js +1 -0
  282. package/dist/commonjs/index.js.map +1 -1
  283. package/dist/commonjs/lib/base64.js +1 -1
  284. package/dist/commonjs/lib/base64.js.map +1 -1
  285. package/dist/commonjs/lib/config.d.ts +13 -2
  286. package/dist/commonjs/lib/config.d.ts.map +1 -1
  287. package/dist/commonjs/lib/config.js +2 -2
  288. package/dist/commonjs/lib/config.js.map +1 -1
  289. package/dist/commonjs/lib/dlv.d.ts +1 -1
  290. package/dist/commonjs/lib/dlv.d.ts.map +1 -1
  291. package/dist/commonjs/lib/dlv.js +2 -3
  292. package/dist/commonjs/lib/dlv.js.map +1 -1
  293. package/dist/commonjs/lib/encodings.d.ts.map +1 -1
  294. package/dist/commonjs/lib/encodings.js +17 -5
  295. package/dist/commonjs/lib/encodings.js.map +1 -1
  296. package/dist/commonjs/lib/env.d.ts +1 -0
  297. package/dist/commonjs/lib/env.d.ts.map +1 -1
  298. package/dist/commonjs/lib/env.js +1 -0
  299. package/dist/commonjs/lib/env.js.map +1 -1
  300. package/dist/commonjs/lib/files.js.map +1 -1
  301. package/dist/commonjs/lib/http.d.ts +2 -2
  302. package/dist/commonjs/lib/http.d.ts.map +1 -1
  303. package/dist/commonjs/lib/http.js +41 -11
  304. package/dist/commonjs/lib/http.js.map +1 -1
  305. package/dist/commonjs/lib/matchers.d.ts.map +1 -1
  306. package/dist/commonjs/lib/matchers.js +79 -81
  307. package/dist/commonjs/lib/matchers.js.map +1 -1
  308. package/dist/commonjs/lib/primitives.js +1 -1
  309. package/dist/commonjs/lib/primitives.js.map +1 -1
  310. package/dist/commonjs/lib/retries.d.ts.map +1 -1
  311. package/dist/commonjs/lib/retries.js +55 -33
  312. package/dist/commonjs/lib/retries.js.map +1 -1
  313. package/dist/commonjs/lib/schemas.js +1 -1
  314. package/dist/commonjs/lib/schemas.js.map +1 -1
  315. package/dist/commonjs/lib/sdks.d.ts.map +1 -1
  316. package/dist/commonjs/lib/sdks.js +92 -45
  317. package/dist/commonjs/lib/sdks.js.map +1 -1
  318. package/dist/commonjs/lib/security.d.ts +1 -1
  319. package/dist/commonjs/lib/security.d.ts.map +1 -1
  320. package/dist/commonjs/lib/security.js +7 -2
  321. package/dist/commonjs/lib/security.js.map +1 -1
  322. package/dist/commonjs/lib/url.js +2 -2
  323. package/dist/commonjs/lib/url.js.map +1 -1
  324. package/dist/commonjs/models/errordetails.d.ts +3 -7
  325. package/dist/commonjs/models/errordetails.d.ts.map +1 -1
  326. package/dist/commonjs/models/errordetails.js.map +1 -1
  327. package/dist/commonjs/models/errors/fastpixerror.js +35 -0
  328. package/dist/commonjs/models/errors/fastpixerror.js.map +1 -1
  329. package/dist/commonjs/models/errors/httpclienterrors.d.ts.map +1 -1
  330. package/dist/commonjs/models/errors/httpclienterrors.js +47 -9
  331. package/dist/commonjs/models/errors/httpclienterrors.js.map +1 -1
  332. package/dist/commonjs/models/errors/responsevalidationerror.js +18 -0
  333. package/dist/commonjs/models/errors/responsevalidationerror.js.map +1 -1
  334. package/dist/commonjs/models/errors/sdkvalidationerror.js +18 -0
  335. package/dist/commonjs/models/errors/sdkvalidationerror.js.map +1 -1
  336. package/dist/commonjs/models/toperrordetails.d.ts +6 -14
  337. package/dist/commonjs/models/toperrordetails.d.ts.map +1 -1
  338. package/dist/commonjs/models/toperrordetails.js.map +1 -1
  339. package/dist/commonjs/models/updatetrackrequest.d.ts.map +1 -1
  340. package/dist/commonjs/models/updatetrackrequest.js +5 -1
  341. package/dist/commonjs/models/updatetrackrequest.js.map +1 -1
  342. package/dist/commonjs/sdk/sdk.d.ts +3 -0
  343. package/dist/commonjs/sdk/sdk.d.ts.map +1 -1
  344. package/dist/commonjs/sdk/sdk.js +174 -20
  345. package/dist/commonjs/sdk/sdk.js.map +1 -1
  346. package/dist/commonjs/sdk/webhooks.d.ts +151 -0
  347. package/dist/commonjs/sdk/webhooks.d.ts.map +1 -0
  348. package/dist/commonjs/sdk/webhooks.js +139 -0
  349. package/dist/commonjs/sdk/webhooks.js.map +1 -0
  350. package/dist/commonjs/types/async.d.ts +5 -7
  351. package/dist/commonjs/types/async.d.ts.map +1 -1
  352. package/dist/commonjs/types/async.js +34 -25
  353. package/dist/commonjs/types/async.js.map +1 -1
  354. package/dist/commonjs/types/primitives.d.ts +1 -1
  355. package/dist/commonjs/types/primitives.d.ts.map +1 -1
  356. package/dist/commonjs/types/primitives.js +15 -7
  357. package/dist/commonjs/types/primitives.js.map +1 -1
  358. package/dist/commonjs/types/rfcdate.d.ts +1 -1
  359. package/dist/commonjs/types/rfcdate.d.ts.map +1 -1
  360. package/dist/commonjs/types/rfcdate.js +7 -1
  361. package/dist/commonjs/types/rfcdate.js.map +1 -1
  362. package/dist/esm/funcs/aiFeaturesGenerateNamedEntities.d.ts +3 -1
  363. package/dist/esm/funcs/aiFeaturesGenerateNamedEntities.d.ts.map +1 -1
  364. package/dist/esm/funcs/aiFeaturesGenerateNamedEntities.js +0 -22
  365. package/dist/esm/funcs/aiFeaturesGenerateNamedEntities.js.map +1 -1
  366. package/dist/esm/funcs/aiFeaturesUpdateSummary.d.ts +3 -1
  367. package/dist/esm/funcs/aiFeaturesUpdateSummary.d.ts.map +1 -1
  368. package/dist/esm/funcs/aiFeaturesUpdateSummary.js +0 -18
  369. package/dist/esm/funcs/aiFeaturesUpdateSummary.js.map +1 -1
  370. package/dist/esm/funcs/dimensionsList.d.ts +3 -1
  371. package/dist/esm/funcs/dimensionsList.d.ts.map +1 -1
  372. package/dist/esm/funcs/dimensionsList.js +0 -10
  373. package/dist/esm/funcs/dimensionsList.js.map +1 -1
  374. package/dist/esm/funcs/dimensionsListFilterValues.d.ts +3 -1
  375. package/dist/esm/funcs/dimensionsListFilterValues.d.ts.map +1 -1
  376. package/dist/esm/funcs/dimensionsListFilterValues.js +0 -14
  377. package/dist/esm/funcs/dimensionsListFilterValues.js.map +1 -1
  378. package/dist/esm/funcs/drmConfigurationsGet.d.ts +3 -1
  379. package/dist/esm/funcs/drmConfigurationsGet.d.ts.map +1 -1
  380. package/dist/esm/funcs/drmConfigurationsGet.js +0 -13
  381. package/dist/esm/funcs/drmConfigurationsGet.js.map +1 -1
  382. package/dist/esm/funcs/drmConfigurationsList.d.ts +3 -1
  383. package/dist/esm/funcs/drmConfigurationsList.d.ts.map +1 -1
  384. package/dist/esm/funcs/drmConfigurationsList.js +0 -17
  385. package/dist/esm/funcs/drmConfigurationsList.js.map +1 -1
  386. package/dist/esm/funcs/errorsList.d.ts +3 -1
  387. package/dist/esm/funcs/errorsList.d.ts.map +1 -1
  388. package/dist/esm/funcs/errorsList.js +0 -20
  389. package/dist/esm/funcs/errorsList.js.map +1 -1
  390. package/dist/esm/funcs/inVideoAIUpdateModeration.d.ts +3 -1
  391. package/dist/esm/funcs/inVideoAIUpdateModeration.d.ts.map +1 -1
  392. package/dist/esm/funcs/inVideoAIUpdateModeration.js +0 -17
  393. package/dist/esm/funcs/inVideoAIUpdateModeration.js.map +1 -1
  394. package/dist/esm/funcs/inVideoAIfeaturesGenerateChapters.d.ts +3 -1
  395. package/dist/esm/funcs/inVideoAIfeaturesGenerateChapters.d.ts.map +1 -1
  396. package/dist/esm/funcs/inVideoAIfeaturesGenerateChapters.js +0 -17
  397. package/dist/esm/funcs/inVideoAIfeaturesGenerateChapters.js.map +1 -1
  398. package/dist/esm/funcs/inputVideoCreate.d.ts +3 -1
  399. package/dist/esm/funcs/inputVideoCreate.d.ts.map +1 -1
  400. package/dist/esm/funcs/inputVideoCreate.js +0 -40
  401. package/dist/esm/funcs/inputVideoCreate.js.map +1 -1
  402. package/dist/esm/funcs/inputVideoUpload.d.ts +3 -1
  403. package/dist/esm/funcs/inputVideoUpload.d.ts.map +1 -1
  404. package/dist/esm/funcs/inputVideoUpload.js +0 -30
  405. package/dist/esm/funcs/inputVideoUpload.js.map +1 -1
  406. package/dist/esm/funcs/livePlaybackCreateId.d.ts +3 -1
  407. package/dist/esm/funcs/livePlaybackCreateId.d.ts.map +1 -1
  408. package/dist/esm/funcs/livePlaybackCreateId.js +0 -12
  409. package/dist/esm/funcs/livePlaybackCreateId.js.map +1 -1
  410. package/dist/esm/funcs/livePlaybackDelete.d.ts +3 -1
  411. package/dist/esm/funcs/livePlaybackDelete.d.ts.map +1 -1
  412. package/dist/esm/funcs/livePlaybackDelete.js +0 -9
  413. package/dist/esm/funcs/livePlaybackDelete.js.map +1 -1
  414. package/dist/esm/funcs/livePlaybackGet.d.ts +3 -1
  415. package/dist/esm/funcs/livePlaybackGet.d.ts.map +1 -1
  416. package/dist/esm/funcs/livePlaybackGet.js +0 -9
  417. package/dist/esm/funcs/livePlaybackGet.js.map +1 -1
  418. package/dist/esm/funcs/liveStreamsCreate.d.ts +3 -1
  419. package/dist/esm/funcs/liveStreamsCreate.d.ts.map +1 -1
  420. package/dist/esm/funcs/liveStreamsCreate.js +0 -22
  421. package/dist/esm/funcs/liveStreamsCreate.js.map +1 -1
  422. package/dist/esm/funcs/liveStreamsDelete.d.ts +3 -1
  423. package/dist/esm/funcs/liveStreamsDelete.d.ts.map +1 -1
  424. package/dist/esm/funcs/liveStreamsDelete.js +0 -14
  425. package/dist/esm/funcs/liveStreamsDelete.js.map +1 -1
  426. package/dist/esm/funcs/liveStreamsEnable.d.ts +3 -1
  427. package/dist/esm/funcs/liveStreamsEnable.d.ts.map +1 -1
  428. package/dist/esm/funcs/liveStreamsEnable.js +0 -16
  429. package/dist/esm/funcs/liveStreamsEnable.js.map +1 -1
  430. package/dist/esm/funcs/liveStreamsList.d.ts +3 -1
  431. package/dist/esm/funcs/liveStreamsList.d.ts.map +1 -1
  432. package/dist/esm/funcs/liveStreamsList.js +0 -10
  433. package/dist/esm/funcs/liveStreamsList.js.map +1 -1
  434. package/dist/esm/funcs/liveStreamsListClips.d.ts +3 -1
  435. package/dist/esm/funcs/liveStreamsListClips.d.ts.map +1 -1
  436. package/dist/esm/funcs/liveStreamsListClips.js +0 -17
  437. package/dist/esm/funcs/liveStreamsListClips.js.map +1 -1
  438. package/dist/esm/funcs/manageLiveStreamComplete.d.ts +3 -1
  439. package/dist/esm/funcs/manageLiveStreamComplete.d.ts.map +1 -1
  440. package/dist/esm/funcs/manageLiveStreamComplete.js +0 -16
  441. package/dist/esm/funcs/manageLiveStreamComplete.js.map +1 -1
  442. package/dist/esm/funcs/manageLiveStreamDisable.d.ts +3 -1
  443. package/dist/esm/funcs/manageLiveStreamDisable.d.ts.map +1 -1
  444. package/dist/esm/funcs/manageLiveStreamDisable.js +0 -14
  445. package/dist/esm/funcs/manageLiveStreamDisable.js.map +1 -1
  446. package/dist/esm/funcs/manageLiveStreamGet.d.ts +3 -1
  447. package/dist/esm/funcs/manageLiveStreamGet.d.ts.map +1 -1
  448. package/dist/esm/funcs/manageLiveStreamGet.js +0 -11
  449. package/dist/esm/funcs/manageLiveStreamGet.js.map +1 -1
  450. package/dist/esm/funcs/manageLiveStreamGetViewerCount.d.ts +3 -1
  451. package/dist/esm/funcs/manageLiveStreamGetViewerCount.d.ts.map +1 -1
  452. package/dist/esm/funcs/manageLiveStreamGetViewerCount.js +0 -14
  453. package/dist/esm/funcs/manageLiveStreamGetViewerCount.js.map +1 -1
  454. package/dist/esm/funcs/manageLiveStreamUpdate.d.ts +3 -1
  455. package/dist/esm/funcs/manageLiveStreamUpdate.d.ts.map +1 -1
  456. package/dist/esm/funcs/manageLiveStreamUpdate.js +0 -14
  457. package/dist/esm/funcs/manageLiveStreamUpdate.js.map +1 -1
  458. package/dist/esm/funcs/manageVideosAddTrack.d.ts +3 -1
  459. package/dist/esm/funcs/manageVideosAddTrack.d.ts.map +1 -1
  460. package/dist/esm/funcs/manageVideosAddTrack.js +0 -27
  461. package/dist/esm/funcs/manageVideosAddTrack.js.map +1 -1
  462. package/dist/esm/funcs/manageVideosCancelUpload.d.ts +3 -1
  463. package/dist/esm/funcs/manageVideosCancelUpload.d.ts.map +1 -1
  464. package/dist/esm/funcs/manageVideosCancelUpload.js +0 -19
  465. package/dist/esm/funcs/manageVideosCancelUpload.js.map +1 -1
  466. package/dist/esm/funcs/manageVideosDelete.d.ts +3 -1
  467. package/dist/esm/funcs/manageVideosDelete.d.ts.map +1 -1
  468. package/dist/esm/funcs/manageVideosDelete.js +0 -17
  469. package/dist/esm/funcs/manageVideosDelete.js.map +1 -1
  470. package/dist/esm/funcs/manageVideosGenerateSubtitleTrack.d.ts +3 -1
  471. package/dist/esm/funcs/manageVideosGenerateSubtitleTrack.d.ts.map +1 -1
  472. package/dist/esm/funcs/manageVideosGenerateSubtitleTrack.js +0 -22
  473. package/dist/esm/funcs/manageVideosGenerateSubtitleTrack.js.map +1 -1
  474. package/dist/esm/funcs/manageVideosGet.d.ts +3 -1
  475. package/dist/esm/funcs/manageVideosGet.d.ts.map +1 -1
  476. package/dist/esm/funcs/manageVideosGet.js +0 -20
  477. package/dist/esm/funcs/manageVideosGet.js.map +1 -1
  478. package/dist/esm/funcs/manageVideosGetSummary.d.ts +3 -2
  479. package/dist/esm/funcs/manageVideosGetSummary.d.ts.map +1 -1
  480. package/dist/esm/funcs/manageVideosGetSummary.js +0 -17
  481. package/dist/esm/funcs/manageVideosGetSummary.js.map +1 -1
  482. package/dist/esm/funcs/manageVideosListUploads.d.ts +3 -1
  483. package/dist/esm/funcs/manageVideosListUploads.d.ts.map +1 -1
  484. package/dist/esm/funcs/manageVideosListUploads.js +0 -19
  485. package/dist/esm/funcs/manageVideosListUploads.js.map +1 -1
  486. package/dist/esm/funcs/manageVideosRetrieveMediaInputInfo.d.ts +3 -1
  487. package/dist/esm/funcs/manageVideosRetrieveMediaInputInfo.d.ts.map +1 -1
  488. package/dist/esm/funcs/manageVideosRetrieveMediaInputInfo.js +0 -18
  489. package/dist/esm/funcs/manageVideosRetrieveMediaInputInfo.js.map +1 -1
  490. package/dist/esm/funcs/manageVideosUpdate.d.ts +3 -1
  491. package/dist/esm/funcs/manageVideosUpdate.d.ts.map +1 -1
  492. package/dist/esm/funcs/manageVideosUpdate.js +0 -19
  493. package/dist/esm/funcs/manageVideosUpdate.js.map +1 -1
  494. package/dist/esm/funcs/manageVideosUpdateMp4Support.d.ts +3 -1
  495. package/dist/esm/funcs/manageVideosUpdateMp4Support.d.ts.map +1 -1
  496. package/dist/esm/funcs/manageVideosUpdateMp4Support.js +0 -33
  497. package/dist/esm/funcs/manageVideosUpdateMp4Support.js.map +1 -1
  498. package/dist/esm/funcs/manageVideosUpdateTrack.d.ts +3 -1
  499. package/dist/esm/funcs/manageVideosUpdateTrack.d.ts.map +1 -1
  500. package/dist/esm/funcs/manageVideosUpdateTrack.js +0 -32
  501. package/dist/esm/funcs/manageVideosUpdateTrack.js.map +1 -1
  502. package/dist/esm/funcs/mediaDeleteTrack.d.ts +3 -1
  503. package/dist/esm/funcs/mediaDeleteTrack.d.ts.map +1 -1
  504. package/dist/esm/funcs/mediaDeleteTrack.js +0 -27
  505. package/dist/esm/funcs/mediaDeleteTrack.js.map +1 -1
  506. package/dist/esm/funcs/mediaGetClips.d.ts +3 -1
  507. package/dist/esm/funcs/mediaGetClips.d.ts.map +1 -1
  508. package/dist/esm/funcs/mediaGetClips.js +0 -21
  509. package/dist/esm/funcs/mediaGetClips.js.map +1 -1
  510. package/dist/esm/funcs/mediaList.d.ts +3 -1
  511. package/dist/esm/funcs/mediaList.d.ts.map +1 -1
  512. package/dist/esm/funcs/mediaList.js +0 -13
  513. package/dist/esm/funcs/mediaList.js.map +1 -1
  514. package/dist/esm/funcs/mediaUpdateSourceAccess.d.ts +3 -1
  515. package/dist/esm/funcs/mediaUpdateSourceAccess.d.ts.map +1 -1
  516. package/dist/esm/funcs/mediaUpdateSourceAccess.js +0 -15
  517. package/dist/esm/funcs/mediaUpdateSourceAccess.js.map +1 -1
  518. package/dist/esm/funcs/metricsGetTimeseriesData.d.ts +3 -1
  519. package/dist/esm/funcs/metricsGetTimeseriesData.d.ts.map +1 -1
  520. package/dist/esm/funcs/metricsGetTimeseriesData.js +0 -12
  521. package/dist/esm/funcs/metricsGetTimeseriesData.js.map +1 -1
  522. package/dist/esm/funcs/metricsListBreakdownValues.d.ts +3 -1
  523. package/dist/esm/funcs/metricsListBreakdownValues.d.ts.map +1 -1
  524. package/dist/esm/funcs/metricsListBreakdownValues.js +0 -32
  525. package/dist/esm/funcs/metricsListBreakdownValues.js.map +1 -1
  526. package/dist/esm/funcs/metricsListCompares.d.ts +3 -1
  527. package/dist/esm/funcs/metricsListCompares.d.ts.map +1 -1
  528. package/dist/esm/funcs/metricsListCompares.js +0 -25
  529. package/dist/esm/funcs/metricsListCompares.js.map +1 -1
  530. package/dist/esm/funcs/metricsListOverallValues.d.ts +3 -1
  531. package/dist/esm/funcs/metricsListOverallValues.d.ts.map +1 -1
  532. package/dist/esm/funcs/metricsListOverallValues.js +0 -25
  533. package/dist/esm/funcs/metricsListOverallValues.js.map +1 -1
  534. package/dist/esm/funcs/playbackCreate.d.ts +3 -1
  535. package/dist/esm/funcs/playbackCreate.d.ts.map +1 -1
  536. package/dist/esm/funcs/playbackCreate.js +0 -19
  537. package/dist/esm/funcs/playbackCreate.js.map +1 -1
  538. package/dist/esm/funcs/playbackDelete.d.ts +3 -1
  539. package/dist/esm/funcs/playbackDelete.d.ts.map +1 -1
  540. package/dist/esm/funcs/playbackDelete.js +0 -16
  541. package/dist/esm/funcs/playbackDelete.js.map +1 -1
  542. package/dist/esm/funcs/playbackGet.d.ts +3 -1
  543. package/dist/esm/funcs/playbackGet.d.ts.map +1 -1
  544. package/dist/esm/funcs/playbackGet.js +0 -13
  545. package/dist/esm/funcs/playbackGet.js.map +1 -1
  546. package/dist/esm/funcs/playbackListIds.d.ts +3 -1
  547. package/dist/esm/funcs/playbackListIds.d.ts.map +1 -1
  548. package/dist/esm/funcs/playbackListIds.js +0 -13
  549. package/dist/esm/funcs/playbackListIds.js.map +1 -1
  550. package/dist/esm/funcs/playbackUpdateDomainRestrictions.d.ts +3 -1
  551. package/dist/esm/funcs/playbackUpdateDomainRestrictions.d.ts.map +1 -1
  552. package/dist/esm/funcs/playbackUpdateDomainRestrictions.js +0 -15
  553. package/dist/esm/funcs/playbackUpdateDomainRestrictions.js.map +1 -1
  554. package/dist/esm/funcs/playbackUpdateUserAgentRestrictions.d.ts +3 -1
  555. package/dist/esm/funcs/playbackUpdateUserAgentRestrictions.d.ts.map +1 -1
  556. package/dist/esm/funcs/playbackUpdateUserAgentRestrictions.js +0 -15
  557. package/dist/esm/funcs/playbackUpdateUserAgentRestrictions.js.map +1 -1
  558. package/dist/esm/funcs/playlistCreate.d.ts +3 -1
  559. package/dist/esm/funcs/playlistCreate.d.ts.map +1 -1
  560. package/dist/esm/funcs/playlistCreate.js +0 -19
  561. package/dist/esm/funcs/playlistCreate.js.map +1 -1
  562. package/dist/esm/funcs/playlistDelete.d.ts +3 -1
  563. package/dist/esm/funcs/playlistDelete.d.ts.map +1 -1
  564. package/dist/esm/funcs/playlistDelete.js +0 -11
  565. package/dist/esm/funcs/playlistDelete.js.map +1 -1
  566. package/dist/esm/funcs/playlistGet.d.ts +3 -1
  567. package/dist/esm/funcs/playlistGet.d.ts.map +1 -1
  568. package/dist/esm/funcs/playlistGet.js +0 -9
  569. package/dist/esm/funcs/playlistGet.js.map +1 -1
  570. package/dist/esm/funcs/playlistList.d.ts +3 -1
  571. package/dist/esm/funcs/playlistList.d.ts.map +1 -1
  572. package/dist/esm/funcs/playlistList.js +0 -13
  573. package/dist/esm/funcs/playlistList.js.map +1 -1
  574. package/dist/esm/funcs/playlistUpdate.d.ts +3 -1
  575. package/dist/esm/funcs/playlistUpdate.d.ts.map +1 -1
  576. package/dist/esm/funcs/playlistUpdate.js +0 -12
  577. package/dist/esm/funcs/playlistUpdate.js.map +1 -1
  578. package/dist/esm/funcs/playlistUpdateMediaOrder.d.ts +3 -1
  579. package/dist/esm/funcs/playlistUpdateMediaOrder.d.ts.map +1 -1
  580. package/dist/esm/funcs/playlistUpdateMediaOrder.js +0 -12
  581. package/dist/esm/funcs/playlistUpdateMediaOrder.js.map +1 -1
  582. package/dist/esm/funcs/playlistsAddMedia.d.ts +3 -1
  583. package/dist/esm/funcs/playlistsAddMedia.d.ts.map +1 -1
  584. package/dist/esm/funcs/playlistsAddMedia.js +0 -12
  585. package/dist/esm/funcs/playlistsAddMedia.js.map +1 -1
  586. package/dist/esm/funcs/playlistsDeleteMedia.d.ts +3 -1
  587. package/dist/esm/funcs/playlistsDeleteMedia.d.ts.map +1 -1
  588. package/dist/esm/funcs/playlistsDeleteMedia.js +0 -12
  589. package/dist/esm/funcs/playlistsDeleteMedia.js.map +1 -1
  590. package/dist/esm/funcs/signingKeysCreate.d.ts +3 -1
  591. package/dist/esm/funcs/signingKeysCreate.d.ts.map +1 -1
  592. package/dist/esm/funcs/signingKeysCreate.js +0 -21
  593. package/dist/esm/funcs/signingKeysCreate.js.map +1 -1
  594. package/dist/esm/funcs/signingKeysDelete.d.ts +3 -1
  595. package/dist/esm/funcs/signingKeysDelete.d.ts.map +1 -1
  596. package/dist/esm/funcs/signingKeysDelete.js +0 -18
  597. package/dist/esm/funcs/signingKeysDelete.js.map +1 -1
  598. package/dist/esm/funcs/signingKeysGetById.d.ts +3 -1
  599. package/dist/esm/funcs/signingKeysGetById.d.ts.map +1 -1
  600. package/dist/esm/funcs/signingKeysGetById.js +0 -38
  601. package/dist/esm/funcs/signingKeysGetById.js.map +1 -1
  602. package/dist/esm/funcs/signingKeysList.d.ts +3 -1
  603. package/dist/esm/funcs/signingKeysList.d.ts.map +1 -1
  604. package/dist/esm/funcs/signingKeysList.js +0 -16
  605. package/dist/esm/funcs/signingKeysList.js.map +1 -1
  606. package/dist/esm/funcs/simulcastStreamsDelete.d.ts +3 -1
  607. package/dist/esm/funcs/simulcastStreamsDelete.d.ts.map +1 -1
  608. package/dist/esm/funcs/simulcastStreamsDelete.js +0 -11
  609. package/dist/esm/funcs/simulcastStreamsDelete.js.map +1 -1
  610. package/dist/esm/funcs/simulcastsCreate.d.ts +3 -1
  611. package/dist/esm/funcs/simulcastsCreate.d.ts.map +1 -1
  612. package/dist/esm/funcs/simulcastsCreate.js +0 -16
  613. package/dist/esm/funcs/simulcastsCreate.js.map +1 -1
  614. package/dist/esm/funcs/simulcastsGet.d.ts +3 -1
  615. package/dist/esm/funcs/simulcastsGet.d.ts.map +1 -1
  616. package/dist/esm/funcs/simulcastsGet.js +0 -9
  617. package/dist/esm/funcs/simulcastsGet.js.map +1 -1
  618. package/dist/esm/funcs/simulcastsUpdate.d.ts +3 -1
  619. package/dist/esm/funcs/simulcastsUpdate.d.ts.map +1 -1
  620. package/dist/esm/funcs/simulcastsUpdate.js +0 -11
  621. package/dist/esm/funcs/simulcastsUpdate.js.map +1 -1
  622. package/dist/esm/funcs/viewsGetDetails.d.ts +3 -1
  623. package/dist/esm/funcs/viewsGetDetails.d.ts.map +1 -1
  624. package/dist/esm/funcs/viewsGetDetails.js +0 -14
  625. package/dist/esm/funcs/viewsGetDetails.js.map +1 -1
  626. package/dist/esm/funcs/viewsList.d.ts +3 -1
  627. package/dist/esm/funcs/viewsList.d.ts.map +1 -1
  628. package/dist/esm/funcs/viewsList.js +0 -28
  629. package/dist/esm/funcs/viewsList.js.map +1 -1
  630. package/dist/esm/funcs/viewsListTopContent.d.ts +3 -1
  631. package/dist/esm/funcs/viewsListTopContent.d.ts.map +1 -1
  632. package/dist/esm/funcs/viewsListTopContent.js +0 -20
  633. package/dist/esm/funcs/viewsListTopContent.js.map +1 -1
  634. package/dist/esm/hooks/hooks.d.ts.map +1 -1
  635. package/dist/esm/hooks/hooks.js +30 -23
  636. package/dist/esm/hooks/hooks.js.map +1 -1
  637. package/dist/esm/hooks/types.d.ts +9 -5
  638. package/dist/esm/hooks/types.d.ts.map +1 -1
  639. package/dist/esm/index.d.ts +1 -0
  640. package/dist/esm/index.d.ts.map +1 -1
  641. package/dist/esm/index.js +1 -0
  642. package/dist/esm/index.js.map +1 -1
  643. package/dist/esm/lib/base64.js +1 -1
  644. package/dist/esm/lib/base64.js.map +1 -1
  645. package/dist/esm/lib/config.d.ts +13 -2
  646. package/dist/esm/lib/config.d.ts.map +1 -1
  647. package/dist/esm/lib/config.js +2 -2
  648. package/dist/esm/lib/config.js.map +1 -1
  649. package/dist/esm/lib/dlv.d.ts +1 -1
  650. package/dist/esm/lib/dlv.d.ts.map +1 -1
  651. package/dist/esm/lib/dlv.js +2 -3
  652. package/dist/esm/lib/dlv.js.map +1 -1
  653. package/dist/esm/lib/encodings.d.ts.map +1 -1
  654. package/dist/esm/lib/encodings.js +17 -5
  655. package/dist/esm/lib/encodings.js.map +1 -1
  656. package/dist/esm/lib/env.d.ts +1 -0
  657. package/dist/esm/lib/env.d.ts.map +1 -1
  658. package/dist/esm/lib/env.js +1 -0
  659. package/dist/esm/lib/env.js.map +1 -1
  660. package/dist/esm/lib/files.js.map +1 -1
  661. package/dist/esm/lib/http.d.ts +2 -2
  662. package/dist/esm/lib/http.d.ts.map +1 -1
  663. package/dist/esm/lib/http.js +41 -11
  664. package/dist/esm/lib/http.js.map +1 -1
  665. package/dist/esm/lib/matchers.d.ts.map +1 -1
  666. package/dist/esm/lib/matchers.js +79 -81
  667. package/dist/esm/lib/matchers.js.map +1 -1
  668. package/dist/esm/lib/primitives.js +1 -1
  669. package/dist/esm/lib/primitives.js.map +1 -1
  670. package/dist/esm/lib/retries.d.ts.map +1 -1
  671. package/dist/esm/lib/retries.js +55 -33
  672. package/dist/esm/lib/retries.js.map +1 -1
  673. package/dist/esm/lib/schemas.js +1 -1
  674. package/dist/esm/lib/schemas.js.map +1 -1
  675. package/dist/esm/lib/sdks.d.ts.map +1 -1
  676. package/dist/esm/lib/sdks.js +92 -45
  677. package/dist/esm/lib/sdks.js.map +1 -1
  678. package/dist/esm/lib/security.d.ts +1 -1
  679. package/dist/esm/lib/security.d.ts.map +1 -1
  680. package/dist/esm/lib/security.js +7 -2
  681. package/dist/esm/lib/security.js.map +1 -1
  682. package/dist/esm/lib/url.js +2 -2
  683. package/dist/esm/lib/url.js.map +1 -1
  684. package/dist/esm/models/errordetails.d.ts +3 -7
  685. package/dist/esm/models/errordetails.d.ts.map +1 -1
  686. package/dist/esm/models/errordetails.js.map +1 -1
  687. package/dist/esm/models/errors/fastpixerror.js +35 -0
  688. package/dist/esm/models/errors/fastpixerror.js.map +1 -1
  689. package/dist/esm/models/errors/httpclienterrors.d.ts.map +1 -1
  690. package/dist/esm/models/errors/httpclienterrors.js +47 -9
  691. package/dist/esm/models/errors/httpclienterrors.js.map +1 -1
  692. package/dist/esm/models/errors/responsevalidationerror.js +18 -0
  693. package/dist/esm/models/errors/responsevalidationerror.js.map +1 -1
  694. package/dist/esm/models/errors/sdkvalidationerror.js +18 -0
  695. package/dist/esm/models/errors/sdkvalidationerror.js.map +1 -1
  696. package/dist/esm/models/toperrordetails.d.ts +6 -14
  697. package/dist/esm/models/toperrordetails.d.ts.map +1 -1
  698. package/dist/esm/models/toperrordetails.js.map +1 -1
  699. package/dist/esm/models/updatetrackrequest.d.ts.map +1 -1
  700. package/dist/esm/models/updatetrackrequest.js +5 -1
  701. package/dist/esm/models/updatetrackrequest.js.map +1 -1
  702. package/dist/esm/sdk/sdk.d.ts +3 -0
  703. package/dist/esm/sdk/sdk.d.ts.map +1 -1
  704. package/dist/esm/sdk/sdk.js +174 -20
  705. package/dist/esm/sdk/sdk.js.map +1 -1
  706. package/dist/esm/sdk/webhooks.d.ts +151 -0
  707. package/dist/esm/sdk/webhooks.d.ts.map +1 -0
  708. package/dist/esm/sdk/webhooks.js +134 -0
  709. package/dist/esm/sdk/webhooks.js.map +1 -0
  710. package/dist/esm/types/async.d.ts +5 -7
  711. package/dist/esm/types/async.d.ts.map +1 -1
  712. package/dist/esm/types/async.js +34 -25
  713. package/dist/esm/types/async.js.map +1 -1
  714. package/dist/esm/types/primitives.d.ts +1 -1
  715. package/dist/esm/types/primitives.d.ts.map +1 -1
  716. package/dist/esm/types/primitives.js +15 -7
  717. package/dist/esm/types/primitives.js.map +1 -1
  718. package/dist/esm/types/rfcdate.d.ts +1 -1
  719. package/dist/esm/types/rfcdate.d.ts.map +1 -1
  720. package/dist/esm/types/rfcdate.js +7 -1
  721. package/dist/esm/types/rfcdate.js.map +1 -1
  722. package/examples/inputVideoCreate.example.ts +2 -2
  723. package/examples/webhooksServer.example.ts +93 -0
  724. package/jsr.json +1 -1
  725. package/package.json +3 -2
  726. package/src/funcs/aiFeaturesGenerateNamedEntities.ts +12 -18
  727. package/src/funcs/aiFeaturesUpdateSummary.ts +12 -27
  728. package/src/funcs/dimensionsList.ts +10 -25
  729. package/src/funcs/dimensionsListFilterValues.ts +16 -27
  730. package/src/funcs/drmConfigurationsGet.ts +13 -27
  731. package/src/funcs/drmConfigurationsList.ts +15 -27
  732. package/src/funcs/errorsList.ts +13 -27
  733. package/src/funcs/inVideoAIUpdateModeration.ts +13 -26
  734. package/src/funcs/inVideoAIfeaturesGenerateChapters.ts +12 -27
  735. package/src/funcs/inputVideoCreate.ts +13 -27
  736. package/src/funcs/inputVideoUpload.ts +12 -27
  737. package/src/funcs/livePlaybackCreateId.ts +12 -18
  738. package/src/funcs/livePlaybackDelete.ts +12 -9
  739. package/src/funcs/livePlaybackGet.ts +11 -9
  740. package/src/funcs/liveStreamsCreate.ts +11 -9
  741. package/src/funcs/liveStreamsDelete.ts +13 -27
  742. package/src/funcs/liveStreamsEnable.ts +13 -27
  743. package/src/funcs/liveStreamsList.ts +13 -27
  744. package/src/funcs/liveStreamsListClips.ts +11 -18
  745. package/src/funcs/manageLiveStreamComplete.ts +11 -9
  746. package/src/funcs/manageLiveStreamDisable.ts +13 -27
  747. package/src/funcs/manageLiveStreamGet.ts +11 -18
  748. package/src/funcs/manageLiveStreamGetViewerCount.ts +13 -27
  749. package/src/funcs/manageLiveStreamUpdate.ts +11 -27
  750. package/src/funcs/manageVideosAddTrack.ts +12 -18
  751. package/src/funcs/manageVideosCancelUpload.ts +12 -18
  752. package/src/funcs/manageVideosDelete.ts +13 -27
  753. package/src/funcs/manageVideosGenerateSubtitleTrack.ts +12 -27
  754. package/src/funcs/manageVideosGet.ts +11 -18
  755. package/src/funcs/manageVideosGetSummary.ts +12 -28
  756. package/src/funcs/manageVideosListUploads.ts +13 -27
  757. package/src/funcs/manageVideosRetrieveMediaInputInfo.ts +12 -27
  758. package/src/funcs/manageVideosUpdate.ts +12 -27
  759. package/src/funcs/manageVideosUpdateMp4Support.ts +12 -27
  760. package/src/funcs/manageVideosUpdateTrack.ts +13 -27
  761. package/src/funcs/mediaDeleteTrack.ts +11 -18
  762. package/src/funcs/mediaGetClips.ts +13 -27
  763. package/src/funcs/mediaList.ts +12 -27
  764. package/src/funcs/mediaUpdateSourceAccess.ts +12 -27
  765. package/src/funcs/metricsGetTimeseriesData.ts +13 -27
  766. package/src/funcs/metricsListBreakdownValues.ts +12 -18
  767. package/src/funcs/metricsListCompares.ts +13 -27
  768. package/src/funcs/metricsListOverallValues.ts +13 -27
  769. package/src/funcs/playbackCreate.ts +13 -27
  770. package/src/funcs/playbackDelete.ts +13 -27
  771. package/src/funcs/playbackGet.ts +12 -27
  772. package/src/funcs/playbackListIds.ts +13 -27
  773. package/src/funcs/playbackUpdateDomainRestrictions.ts +12 -18
  774. package/src/funcs/playbackUpdateUserAgentRestrictions.ts +12 -27
  775. package/src/funcs/playlistCreate.ts +12 -27
  776. package/src/funcs/playlistDelete.ts +13 -27
  777. package/src/funcs/playlistGet.ts +13 -27
  778. package/src/funcs/playlistList.ts +12 -27
  779. package/src/funcs/playlistUpdate.ts +11 -18
  780. package/src/funcs/playlistUpdateMediaOrder.ts +12 -27
  781. package/src/funcs/playlistsAddMedia.ts +13 -27
  782. package/src/funcs/playlistsDeleteMedia.ts +12 -27
  783. package/src/funcs/signingKeysCreate.ts +11 -26
  784. package/src/funcs/signingKeysDelete.ts +13 -27
  785. package/src/funcs/signingKeysGetById.ts +12 -27
  786. package/src/funcs/signingKeysList.ts +13 -27
  787. package/src/funcs/simulcastStreamsDelete.ts +12 -27
  788. package/src/funcs/simulcastsCreate.ts +13 -27
  789. package/src/funcs/simulcastsGet.ts +11 -9
  790. package/src/funcs/simulcastsUpdate.ts +13 -27
  791. package/src/funcs/viewsGetDetails.ts +12 -27
  792. package/src/funcs/viewsList.ts +12 -27
  793. package/src/funcs/viewsListTopContent.ts +13 -27
  794. package/src/hooks/hooks.ts +0 -20
  795. package/src/hooks/types.ts +5 -5
  796. package/src/index.ts +1 -0
  797. package/src/lib/base64.ts +1 -1
  798. package/src/lib/config.ts +14 -2
  799. package/src/lib/dlv.ts +1 -3
  800. package/src/lib/encodings.ts +18 -5
  801. package/src/lib/env.ts +2 -2
  802. package/src/lib/files.ts +1 -1
  803. package/src/lib/http.ts +13 -9
  804. package/src/lib/matchers.ts +99 -78
  805. package/src/lib/primitives.ts +1 -1
  806. package/src/lib/retries.ts +61 -41
  807. package/src/lib/schemas.ts +1 -1
  808. package/src/lib/sdks.ts +109 -59
  809. package/src/lib/security.ts +2 -2
  810. package/src/lib/url.ts +2 -2
  811. package/src/models/errordetails.ts +3 -8
  812. package/src/models/errors/httpclienterrors.ts +4 -3
  813. package/src/models/toperrordetails.ts +6 -16
  814. package/src/models/updatetrackrequest.ts +4 -1
  815. package/src/sdk/sdk.ts +48 -20
  816. package/src/sdk/webhooks.ts +329 -0
  817. package/src/types/async.ts +29 -37
  818. package/src/types/primitives.ts +24 -11
  819. package/src/types/rfcdate.ts +2 -2
  820. package/temp/example.ts +3 -1
  821. package/tsconfig.json +2 -0
  822. package/tests/artifacts/get-all-playlists.api.json +0 -26
  823. package/tests/artifacts/get-all-playlists.sdk.json +0 -26
  824. package/tests/artifacts/get-all-streams.api.json +0 -76
  825. package/tests/artifacts/get-all-streams.sdk.json +0 -76
  826. package/tests/artifacts/get-live-stream-by-id.api.json +0 -43
  827. package/tests/artifacts/get-live-stream-by-id.sdk.json +0 -43
  828. package/tests/artifacts/get-live-stream-playback-id.api.json +0 -7
  829. package/tests/artifacts/get-live-stream-playback-id.sdk.json +0 -7
  830. package/tests/artifacts/get-live-stream-viewer-count-by-id.api.json +0 -6
  831. package/tests/artifacts/get-live-stream-viewer-count-by-id.sdk.json +0 -6
  832. package/tests/artifacts/get-media-clips.api.json +0 -9
  833. package/tests/artifacts/get-media-clips.sdk.json +0 -9
  834. package/tests/artifacts/get-media-summary.api.json +0 -8
  835. package/tests/artifacts/get-media-summary.sdk.json +0 -26
  836. package/tests/artifacts/get-media.api.json +0 -57
  837. package/tests/artifacts/get-media.sdk.json +0 -57
  838. package/tests/artifacts/get-playback-id.api.json +0 -19
  839. package/tests/artifacts/get-playback-id.sdk.json +0 -19
  840. package/tests/artifacts/get-playlist-by-id.api.json +0 -15
  841. package/tests/artifacts/get-playlist-by-id.sdk.json +0 -15
  842. package/tests/artifacts/get-signing_key_by_id.api.json +0 -8
  843. package/tests/artifacts/get-signing_key_by_id.sdk.json +0 -8
  844. package/tests/artifacts/get-specific-simulcast-of-stream.api.json +0 -12
  845. package/tests/artifacts/get-specific-simulcast-of-stream.sdk.json +0 -12
  846. package/tests/artifacts/getDrmConfiguration.api.json +0 -8
  847. package/tests/artifacts/getDrmConfiguration.sdk.json +0 -26
  848. package/tests/artifacts/getDrmConfigurationById.api.json +0 -13
  849. package/tests/artifacts/getDrmConfigurationById.sdk.json +0 -31
  850. package/tests/artifacts/get_timeseries_data.api.json +0 -18
  851. package/tests/artifacts/get_timeseries_data.sdk.json +0 -18
  852. package/tests/artifacts/get_video_view_details.api.json +0 -213
  853. package/tests/artifacts/get_video_view_details.sdk.json +0 -213
  854. package/tests/artifacts/list-live-clips.api.json +0 -9
  855. package/tests/artifacts/list-live-clips.sdk.json +0 -9
  856. package/tests/artifacts/list-media.api.json +0 -65
  857. package/tests/artifacts/list-media.sdk.json +0 -65
  858. package/tests/artifacts/list-playback-ids.api.json +0 -21
  859. package/tests/artifacts/list-playback-ids.sdk.json +0 -21
  860. package/tests/artifacts/list-uploads.api.json +0 -43
  861. package/tests/artifacts/list-uploads.sdk.json +0 -43
  862. package/tests/artifacts/list_breakdown_values.api.json +0 -24
  863. package/tests/artifacts/list_breakdown_values.sdk.json +0 -24
  864. package/tests/artifacts/list_by_top_content.api.json +0 -19
  865. package/tests/artifacts/list_by_top_content.sdk.json +0 -19
  866. package/tests/artifacts/list_comparison_values.api.json +0 -350
  867. package/tests/artifacts/list_comparison_values.sdk.json +0 -350
  868. package/tests/artifacts/list_dimensions.api.json +0 -61
  869. package/tests/artifacts/list_dimensions.sdk.json +0 -61
  870. package/tests/artifacts/list_errors.api.json +0 -51
  871. package/tests/artifacts/list_errors.sdk.json +0 -51
  872. package/tests/artifacts/list_filter_values_for_dimension.api.json +0 -14
  873. package/tests/artifacts/list_filter_values_for_dimension.sdk.json +0 -14
  874. package/tests/artifacts/list_overall_values.api.json +0 -18
  875. package/tests/artifacts/list_overall_values.sdk.json +0 -18
  876. package/tests/artifacts/list_signing_keys.api.json +0 -22
  877. package/tests/artifacts/list_signing_keys.sdk.json +0 -22
  878. package/tests/artifacts/list_video_views.api.json +0 -84
  879. package/tests/artifacts/list_video_views.sdk.json +0 -84
  880. package/tests/artifacts/retrieveMediaInputInfo.api.json +0 -28
  881. package/tests/artifacts/retrieveMediaInputInfo.sdk.json +0 -28
  882. package/tests/artifacts-non-get/Add-media-track.raw.json +0 -10
  883. package/tests/artifacts-non-get/Add-media-track.sdk.json +0 -10
  884. package/tests/artifacts-non-get/Generate-subtitle-track.raw.json +0 -9
  885. package/tests/artifacts-non-get/Generate-subtitle-track.sdk.json +0 -9
  886. package/tests/artifacts-non-get/add-media-to-playlist.raw.json +0 -24
  887. package/tests/artifacts-non-get/add-media-to-playlist.sdk.json +0 -24
  888. package/tests/artifacts-non-get/cancel-upload.raw.json +0 -15
  889. package/tests/artifacts-non-get/cancel-upload.sdk.json +0 -15
  890. package/tests/artifacts-non-get/change-media-order-in-playlist.raw.json +0 -24
  891. package/tests/artifacts-non-get/change-media-order-in-playlist.sdk.json +0 -24
  892. package/tests/artifacts-non-get/complete-live-stream.raw.json +0 -8
  893. package/tests/artifacts-non-get/complete-live-stream.sdk.json +0 -13
  894. package/tests/artifacts-non-get/create-a-playlist.raw.json +0 -15
  895. package/tests/artifacts-non-get/create-a-playlist.sdk.json +0 -15
  896. package/tests/artifacts-non-get/create-media-playback-id.raw.json +0 -20
  897. package/tests/artifacts-non-get/create-media-playback-id.sdk.json +0 -19
  898. package/tests/artifacts-non-get/create-media.raw.json +0 -41
  899. package/tests/artifacts-non-get/create-media.sdk.json +0 -41
  900. package/tests/artifacts-non-get/create-new-stream.raw.json +0 -32
  901. package/tests/artifacts-non-get/create-new-stream.sdk.json +0 -32
  902. package/tests/artifacts-non-get/create-playbackId-of-stream.raw.json +0 -7
  903. package/tests/artifacts-non-get/create-playbackId-of-stream.sdk.json +0 -7
  904. package/tests/artifacts-non-get/create-simulcast-of-stream.raw.json +0 -9
  905. package/tests/artifacts-non-get/create-simulcast-of-stream.sdk.json +0 -9
  906. package/tests/artifacts-non-get/create_signing_key.raw.json +0 -8
  907. package/tests/artifacts-non-get/create_signing_key.sdk.json +0 -8
  908. package/tests/artifacts-non-get/delete-a-playlist.raw.json +0 -3
  909. package/tests/artifacts-non-get/delete-a-playlist.sdk.json +0 -3
  910. package/tests/artifacts-non-get/delete-live-stream.raw.json +0 -3
  911. package/tests/artifacts-non-get/delete-live-stream.sdk.json +0 -3
  912. package/tests/artifacts-non-get/delete-media-from-playlist.raw.json +0 -15
  913. package/tests/artifacts-non-get/delete-media-from-playlist.sdk.json +0 -15
  914. package/tests/artifacts-non-get/delete-media-playback-id.raw.json +0 -3
  915. package/tests/artifacts-non-get/delete-media-playback-id.sdk.json +0 -3
  916. package/tests/artifacts-non-get/delete-media-track.raw.json +0 -3
  917. package/tests/artifacts-non-get/delete-media-track.sdk.json +0 -3
  918. package/tests/artifacts-non-get/delete-media.raw.json +0 -3
  919. package/tests/artifacts-non-get/delete-media.sdk.json +0 -3
  920. package/tests/artifacts-non-get/delete-playbackId-of-stream.raw.json +0 -3
  921. package/tests/artifacts-non-get/delete-playbackId-of-stream.sdk.json +0 -3
  922. package/tests/artifacts-non-get/delete-simulcast-of-stream.raw.json +0 -3
  923. package/tests/artifacts-non-get/delete-simulcast-of-stream.sdk.json +0 -3
  924. package/tests/artifacts-non-get/delete_signing_key.raw.json +0 -6
  925. package/tests/artifacts-non-get/delete_signing_key.sdk.json +0 -6
  926. package/tests/artifacts-non-get/direct-upload-video-media.raw.json +0 -36
  927. package/tests/artifacts-non-get/direct-upload-video-media.sdk.json +0 -36
  928. package/tests/artifacts-non-get/disable-live-stream.raw.json +0 -3
  929. package/tests/artifacts-non-get/disable-live-stream.sdk.json +0 -3
  930. package/tests/artifacts-non-get/enable-live-stream.raw.json +0 -3
  931. package/tests/artifacts-non-get/enable-live-stream.sdk.json +0 -3
  932. package/tests/artifacts-non-get/update-a-playlist.raw.json +0 -15
  933. package/tests/artifacts-non-get/update-a-playlist.sdk.json +0 -15
  934. package/tests/artifacts-non-get/update-domain-restrictions.raw.json +0 -10
  935. package/tests/artifacts-non-get/update-domain-restrictions.sdk.json +0 -10
  936. package/tests/artifacts-non-get/update-live-stream.raw.json +0 -36
  937. package/tests/artifacts-non-get/update-live-stream.sdk.json +0 -36
  938. package/tests/artifacts-non-get/update-media-chapters.raw.json +0 -7
  939. package/tests/artifacts-non-get/update-media-chapters.sdk.json +0 -7
  940. package/tests/artifacts-non-get/update-media-moderation.raw.json +0 -7
  941. package/tests/artifacts-non-get/update-media-moderation.sdk.json +0 -7
  942. package/tests/artifacts-non-get/update-media-named-entities.raw.json +0 -7
  943. package/tests/artifacts-non-get/update-media-named-entities.sdk.json +0 -7
  944. package/tests/artifacts-non-get/update-media-summary.raw.json +0 -7
  945. package/tests/artifacts-non-get/update-media-summary.sdk.json +0 -7
  946. package/tests/artifacts-non-get/update-media-track.raw.json +0 -10
  947. package/tests/artifacts-non-get/update-media-track.sdk.json +0 -10
  948. package/tests/artifacts-non-get/update-specific-simulcast-of-stream.raw.json +0 -9
  949. package/tests/artifacts-non-get/update-specific-simulcast-of-stream.sdk.json +0 -9
  950. package/tests/artifacts-non-get/update-user-agent-restrictions.raw.json +0 -10
  951. package/tests/artifacts-non-get/update-user-agent-restrictions.sdk.json +0 -10
  952. package/tests/artifacts-non-get/updated-media.raw.json +0 -94
  953. package/tests/artifacts-non-get/updated-media.sdk.json +0 -94
  954. package/tests/artifacts-non-get/updated-mp4Support.raw.json +0 -95
  955. package/tests/artifacts-non-get/updated-mp4Support.sdk.json +0 -95
  956. package/tests/artifacts-non-get/updated-source-access.raw.json +0 -94
  957. package/tests/artifacts-non-get/updated-source-access.sdk.json +0 -94
  958. package/tests/build-url-mapping-pass2.mjs +0 -77
  959. package/tests/build-url-mapping.mjs +0 -101
  960. package/tests/check-broken-links.mjs +0 -89
  961. package/tests/diff-api-vs-sdk.mjs +0 -94
  962. package/tests/diff-passed.mjs +0 -99
  963. package/tests/diff-strict.mjs +0 -81
  964. package/tests/get-endpoints-fixtures.json +0 -179
  965. package/tests/non-get-endpoints-fixtures.json +0 -328
  966. package/tests/validate-get-endpoints.ts +0 -1180
  967. package/tests/validate-non-get-endpoints.ts +0 -477
  968. package/tests/validate-non-get-lifecycle.ts +0 -1093
@@ -1,1180 +0,0 @@
1
- #!/usr/bin/env tsx
2
- /*
3
- * GET endpoints validator using `openapi-response-validator`
4
- *
5
- * Per GET endpoint in `fixed.yaml`:
6
- * - Calls the API to get the raw JSON response
7
- * - Validates the raw response against the OpenAPI response schema using `openapi-response-validator`
8
- * - Parses the same raw response through the SDK's Zod inbound schema (this is what the SDK returns)
9
- * - Compares JSON paths:
10
- * - missingInSDK: present in API raw JSON but missing after SDK parsing
11
- * - missingInAPI: present after SDK parsing but missing in API raw JSON
12
- * - Generates a consolidated markdown report.
13
- *
14
- * Requirements:
15
- * - FASTPIX_USERNAME / FASTPIX_PASSWORD env vars (Basic Auth)
16
- * - `tests/get-endpoints-fixtures.json` for endpoints with required path params (optional but recommended)
17
- */
18
-
19
- /// <reference types="node" />
20
-
21
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
22
- import { join, dirname } from "node:path";
23
- import { fileURLToPath } from "node:url";
24
- import { createRequire } from "node:module";
25
- import yaml from "js-yaml";
26
- import * as operations from "../src/models/operations/index.js";
27
- import { Fastpix } from "../src/sdk/sdk.js";
28
-
29
- const require = createRequire(import.meta.url);
30
- const openapiResponseValidatorMod = require("openapi-response-validator");
31
- const OpenAPIResponseValidator =
32
- openapiResponseValidatorMod?.default ?? openapiResponseValidatorMod;
33
-
34
- const __filename = fileURLToPath(import.meta.url);
35
- const __dirname = dirname(__filename);
36
-
37
- type Fixture = {
38
- operations: Record<
39
- string,
40
- {
41
- pathParams?: Record<string, string>;
42
- query?: Record<string, string | number | boolean | Array<string | number | boolean>>;
43
- }
44
- >;
45
- };
46
-
47
- type EndpointInfo = {
48
- path: string;
49
- method: "GET";
50
- operationId: string;
51
- responses: any;
52
- parameters: Array<any>;
53
- };
54
-
55
- type FixSuggestion = {
56
- title: string;
57
- why: string;
58
- where?: string;
59
- pasteYaml?: string;
60
- };
61
-
62
- type EndpointResult = {
63
- endpoint: string;
64
- operationId: string;
65
- method: "GET";
66
- openapiValid: boolean;
67
- openapiErrors: Array<{ path?: string; message?: string; errorCode?: string }>;
68
- sdkParseOk: boolean;
69
- sdkParseError?: string;
70
- missingInSDK: string[];
71
- missingInAPI: string[];
72
- emptyArraysOmittedInSDK: string[];
73
- emptyArraysOmittedInAPI: string[];
74
- apiResponseFile?: string;
75
- sdkResponseFile?: string;
76
- apiResponsePreview?: string;
77
- sdkResponsePreview?: string;
78
- status: "PASS" | "FAIL";
79
- note?: string;
80
- fixSuggestions?: FixSuggestion[];
81
- };
82
-
83
- const ARTIFACTS_DIRNAME = "artifacts";
84
- const MAX_PREVIEW_CHARS = 4000;
85
- const PLACEHOLDER_UUID = "00000000-0000-0000-0000-000000000000";
86
- const FIX_SUGGESTIONS_MD = "GET_ENDPOINTS_OPENAPI_RESPONSE_FIX_SUGGESTIONS.md";
87
-
88
- function safeFileSlug(input: string): string {
89
- return input.replace(/[^a-zA-Z0-9._-]+/g, "_");
90
- }
91
-
92
- function toPrettyJson(value: unknown): string {
93
- return JSON.stringify(value, null, 2);
94
- }
95
-
96
- // FastPix asset hosts have migrated to the .com TLD. Some legacy media
97
- // records still have pre-migration CDN thumbnails persisted on them, and
98
- // the API echoes those URLs back verbatim. Both hosts continue to serve
99
- // the same content during the deprecation window, so we normalize before
100
- // writing artifacts to disk — this keeps committed snapshots consistent
101
- // with the post-migration host without changing API behavior. Runs after
102
- // validation, so any real shape/schema issues are still surfaced.
103
- function normalizeLegacyFastpixHosts(text: string): string {
104
- return text.replace(/fastpix\.io/g, "fastpix.com");
105
- }
106
-
107
- function preview(text: string): string {
108
- if (text.length <= MAX_PREVIEW_CHARS) return text;
109
- return text.slice(0, MAX_PREVIEW_CHARS) + "\n... (truncated)";
110
- }
111
-
112
- function writeArtifactFiles(
113
- operationId: string,
114
- rawBody: unknown,
115
- sdkBody: unknown,
116
- ): {
117
- apiPath: string;
118
- sdkPath: string;
119
- apiPreview: string;
120
- sdkPreview: string;
121
- } {
122
- const artifactsDir = join(__dirname, ARTIFACTS_DIRNAME);
123
- mkdirSync(artifactsDir, { recursive: true });
124
-
125
- const slug = safeFileSlug(operationId);
126
- const apiFilename = `${slug}.api.json`;
127
- const sdkFilename = `${slug}.sdk.json`;
128
-
129
- const apiText = normalizeLegacyFastpixHosts(toPrettyJson(rawBody));
130
- const sdkText = normalizeLegacyFastpixHosts(toPrettyJson(sdkBody));
131
-
132
- const apiPath = join(artifactsDir, apiFilename);
133
- const sdkPath = join(artifactsDir, sdkFilename);
134
-
135
- writeFileSync(apiPath, apiText);
136
- writeFileSync(sdkPath, sdkText);
137
-
138
- return {
139
- apiPath: `tests/${ARTIFACTS_DIRNAME}/${apiFilename}`,
140
- sdkPath: `tests/${ARTIFACTS_DIRNAME}/${sdkFilename}`,
141
- apiPreview: preview(apiText),
142
- sdkPreview: preview(sdkText),
143
- };
144
- }
145
-
146
- type SDKInvoker = (client: Fastpix, request: any) => Promise<any>;
147
-
148
- function getSDKInvoker(operationId: string): SDKInvoker | null {
149
- const map: Record<string, SDKInvoker> = {
150
- // On-demand media
151
- "list-media": (c, req) => c.media.list(req),
152
- "get-media": (c, req) => c.manageVideos.get(req),
153
- "get-media-summary": (c, req) => c.manageVideos.getSummary(req),
154
- retrieveMediaInputInfo: (c, req) => c.manageVideos.retrieveMediaInputInfo(req),
155
- "list-uploads": (c, req) => c.manageVideos.listUploads(req),
156
- "get-media-clips": (c, req) => c.media.getClips(req),
157
-
158
- // Live clips / streams
159
- "list-live-clips": (c, req) => c.liveStreams.listClips(req),
160
- "get-all-streams": (c, req) => c.liveStreams.list(req),
161
- "get-live-stream-by-id": (c, req) => c.manageLiveStream.get(req),
162
- "get-live-stream-viewer-count-by-id": (c, req) => c.manageLiveStream.getViewerCount(req),
163
- "get-live-stream-playback-id": (c, req) => c.livePlayback.get(req),
164
- "get-specific-simulcast-of-stream": (c, req) => c.simulcasts.get(req),
165
-
166
- // Playlists
167
- "get-all-playlists": (c, req) => c.playlist.list(req),
168
- "get-playlist-by-id": (c, req) => c.playlist.get(req),
169
-
170
- // Playback / DRM
171
- "list-playback-ids": (c, req) => c.playback.listIds(req),
172
- "get-playback-id": (c, req) => c.playback.get(req),
173
- getDrmConfiguration: (c, req) => c.drmConfigurations.list(req),
174
- getDrmConfigurationById: (c, req) => c.drmConfigurations.get(req),
175
-
176
- // IAM
177
- list_signing_keys: (c, req) => c.signingKeys.list(req),
178
- "get-signing_key_by_id": (c, req) => c.signingKeys.getById(req),
179
-
180
- // Data APIs
181
- list_video_views: (c, req) => c.views.list(req),
182
- get_video_view_details: (c, req) => c.views.getDetails(req),
183
- list_by_top_content: (c, req) => c.views.listTopContent(req),
184
-
185
- list_dimensions: (c, req) => c.dimensions.list(req),
186
- list_filter_values_for_dimension: (c, req) => c.dimensions.listFilterValues(req),
187
-
188
- list_breakdown_values: (c, req) => c.metrics.listBreakdownValues(req),
189
- list_overall_values: (c, req) => c.metrics.listOverallValues(req),
190
- get_timeseries_data: (c, req) => c.metrics.getTimeseriesData(req),
191
- list_comparison_values: (c, req) => c.metrics.listCompares(req),
192
-
193
- list_errors: (c, req) => c.errors.list(req),
194
- };
195
- return map[operationId] ?? null;
196
- }
197
-
198
- function defaultSDKRequest(operationId: string): any | undefined {
199
- // Ensure SDK input validation passes so we reach the HTTP call and get server errors on failures.
200
- switch (operationId) {
201
- case "get-media":
202
- case "get-media-summary":
203
- case "retrieveMediaInputInfo":
204
- case "list-playback-ids":
205
- case "get-media-clips":
206
- return { mediaId: PLACEHOLDER_UUID };
207
- case "get-playback-id":
208
- return { mediaId: PLACEHOLDER_UUID, playbackId: PLACEHOLDER_UUID };
209
- case "list-live-clips":
210
- return { livestreamId: PLACEHOLDER_UUID };
211
- case "get-playlist-by-id":
212
- return { playlistId: PLACEHOLDER_UUID };
213
- case "getDrmConfigurationById":
214
- return { drmConfigurationId: PLACEHOLDER_UUID };
215
- case "get-live-stream-by-id":
216
- case "get-live-stream-viewer-count-by-id":
217
- return { streamId: PLACEHOLDER_UUID };
218
- case "get-live-stream-playback-id":
219
- return { streamId: PLACEHOLDER_UUID, playbackId: PLACEHOLDER_UUID };
220
- case "get-specific-simulcast-of-stream":
221
- return { streamId: PLACEHOLDER_UUID, simulcastId: PLACEHOLDER_UUID };
222
- case "get-signing_key_by_id":
223
- return { signingKeyId: PLACEHOLDER_UUID };
224
- case "get_video_view_details":
225
- return { viewId: PLACEHOLDER_UUID };
226
- case "list_filter_values_for_dimension":
227
- return { dimensionsId: "browser_name" };
228
- case "list_breakdown_values":
229
- return {
230
- metricId: "quality_of_experience_score",
231
- timespan: "24:hours",
232
- groupBy: "browser_name",
233
- };
234
- case "list_overall_values":
235
- return { metricId: "quality_of_experience_score", timespan: "24:hours" };
236
- case "get_timeseries_data":
237
- return {
238
- metricId: "quality_of_experience_score",
239
- timespan: "24:hours",
240
- groupBy: "hour",
241
- };
242
- case "list_comparison_values":
243
- return { timespan: "24:hours", dimension: "browser_name", value: "Chrome" };
244
- case "list_errors":
245
- return { timespan: "24:hours", limit: 5 };
246
- case "list_video_views":
247
- return { timespan: "24:hours", limit: 5, offset: 1 };
248
- case "list_by_top_content":
249
- return { timespan: "24:hours", limit: 5 };
250
- case "list-media":
251
- return { limit: 5, offset: 1, orderBy: "desc" };
252
- case "list-uploads":
253
- return { limit: 5, offset: 1, orderBy: "desc" };
254
- case "get-all-streams":
255
- return { limit: 5, offset: 1, orderBy: "desc" };
256
- case "getDrmConfiguration":
257
- return { limit: 10, offset: 1 };
258
- case "get-all-playlists":
259
- return { limit: 5, offset: 1 };
260
- case "list_signing_keys":
261
- return { limit: 5, offset: 1 };
262
- case "list_dimensions":
263
- return undefined;
264
- default:
265
- return undefined;
266
- }
267
- }
268
-
269
- function buildSDKRequest(endpoint: EndpointInfo, fixtures: Fixture | null): any | undefined {
270
- const opFixture = fixtures?.operations?.[endpoint.operationId];
271
- const fromFixture = opFixture
272
- ? { ...(opFixture.pathParams || {}), ...(opFixture.query || {}) }
273
- : undefined;
274
-
275
- // If fixtures exist, use them as-is (they match SDK request shapes).
276
- if (fromFixture) return fromFixture;
277
-
278
- // Prefer operation-specific defaults (handles required query params too).
279
- const def = defaultSDKRequest(endpoint.operationId);
280
- if (def !== undefined) return def;
281
-
282
- // Otherwise: auto-generate a placeholder request object for required path params.
283
- const requiredPathParams = endpoint.parameters
284
- .filter((p) => p?.in === "path" && p?.required)
285
- .map((p) => p.name);
286
-
287
- if (requiredPathParams.length === 0) return undefined;
288
-
289
- const req: Record<string, string> = {};
290
- for (const name of requiredPathParams) req[name] = PLACEHOLDER_UUID;
291
- return req;
292
- }
293
-
294
- function headersToObject(headers: any): Record<string, string> | undefined {
295
- try {
296
- if (!headers) return undefined;
297
- if (typeof headers.entries === "function") {
298
- return Object.fromEntries(Array.from(headers.entries()));
299
- }
300
- } catch {
301
- // ignore
302
- }
303
- return undefined;
304
- }
305
-
306
- function normalizeSdkError(err: any): any {
307
- const base: any = {
308
- name: err?.name,
309
- message: err?.message,
310
- stack: err?.stack,
311
- };
312
-
313
- if (typeof err?.statusCode !== "undefined") base.statusCode = err.statusCode;
314
- if (typeof err?.contentType !== "undefined") base.contentType = err.contentType;
315
- if (typeof err?.body !== "undefined") {
316
- base.body = err.body;
317
- if (typeof err.body === "string") {
318
- try {
319
- base.bodyJson = JSON.parse(err.body);
320
- } catch {
321
- // ignore
322
- }
323
- }
324
- }
325
- base.headers = headersToObject(err?.headers) ?? headersToObject(err?.rawResponse?.headers);
326
- if (err?.rawResponse?.url) base.url = err.rawResponse.url;
327
-
328
- if (err?.cause) base.cause = err.cause;
329
- if (typeof err?.rawMessage !== "undefined") base.rawMessage = err.rawMessage;
330
- if (typeof err?.rawValue !== "undefined") base.rawValue = err.rawValue;
331
-
332
- return base;
333
- }
334
-
335
- function readFixtures(): Fixture | null {
336
- const p = join(__dirname, "get-endpoints-fixtures.json");
337
- if (!existsSync(p)) return null;
338
- return JSON.parse(readFileSync(p, "utf-8")) as Fixture;
339
- }
340
-
341
- function resolveSpecPath(): string {
342
- // Deterministic search order (mirrors reference repo’s "../../fastpix.yaml" pattern).
343
- const candidates = [
344
- join(__dirname, "../fixed.yaml"), // tests/../fixed.yaml (repo root)
345
- join(__dirname, "../../fixed.yaml"), // tests/../../fixed.yaml (workspace new sdk/fixed.yaml)
346
- ];
347
- for (const p of candidates) {
348
- if (existsSync(p)) return p;
349
- }
350
- throw new Error(
351
- `OpenAPI spec not found. Tried: ${candidates.map((c) => JSON.stringify(c)).join(", ")}`,
352
- );
353
- }
354
-
355
- function loadOpenAPISpec(): any {
356
- const specPath = resolveSpecPath();
357
- return yaml.load(readFileSync(specPath, "utf-8"));
358
- }
359
-
360
- function extractGetEndpoints(spec: any): EndpointInfo[] {
361
- const out: EndpointInfo[] = [];
362
- for (const [path, methods] of Object.entries(spec.paths || {})) {
363
- const m = methods as any;
364
- if (!m.get) continue;
365
- out.push({
366
- path,
367
- method: "GET",
368
- operationId: m.get.operationId,
369
- responses: m.get.responses || {},
370
- parameters: [...(m.get.parameters || []), ...(m.parameters || [])],
371
- });
372
- }
373
- return out;
374
- }
375
-
376
- // Convert OpenAPI 3 schema refs (#/components/schemas/X) to the format used by openapi-response-validator (#/definitions/X)
377
- function convertRefsToDefinitions(node: any): any {
378
- if (node == null || typeof node !== "object") return node;
379
- if (Array.isArray(node)) return node.map(convertRefsToDefinitions);
380
- const out: any = {};
381
- for (const [k, v] of Object.entries(node)) {
382
- if (k === "$ref" && typeof v === "string") {
383
- out[k] = v.replace("#/components/schemas/", "#/definitions/");
384
- } else {
385
- out[k] = convertRefsToDefinitions(v);
386
- }
387
- }
388
- return out;
389
- }
390
-
391
- function makeOpenAPIResponseValidator(spec: any, endpoint: EndpointInfo) {
392
- const definitions = convertRefsToDefinitions(spec.components?.schemas || {});
393
- const responses: any = {};
394
-
395
- for (const [status, def] of Object.entries(endpoint.responses || {})) {
396
- const d = def as any;
397
- const schema = d?.content?.["application/json"]?.schema;
398
- if (!schema) continue;
399
- responses[status] = {
400
- description: d.description || "",
401
- schema: convertRefsToDefinitions(schema),
402
- };
403
- }
404
-
405
- if (Object.keys(responses).length === 0) return null;
406
-
407
- return new OpenAPIResponseValidator({
408
- responses,
409
- definitions,
410
- });
411
- }
412
-
413
- function hasOpenapiError(r: EndpointResult, includes: string): boolean {
414
- return (r.openapiErrors || []).some((e) => (e?.message ?? "").includes(includes));
415
- }
416
-
417
- function openapiErrorPaths(r: EndpointResult): string[] {
418
- return (r.openapiErrors || [])
419
- .map((e) => e?.path)
420
- .filter((p): p is string => typeof p === "string" && p.length > 0);
421
- }
422
-
423
- function generateFixSuggestions(r: EndpointResult): FixSuggestion[] {
424
- const out: FixSuggestion[] = [];
425
- const paths = openapiErrorPaths(r);
426
-
427
- // 1) Generic: oneOf overlap on tracks
428
- const hasTracksOneOf =
429
- hasOpenapiError(r, "must match exactly one schema in oneOf") &&
430
- paths.some((p) => p.includes("tracks"));
431
- if (hasTracksOneOf) {
432
- out.push({
433
- title: "Fix `tracks[].oneOf` overlap by constraining `type` per track schema",
434
- why:
435
- "The current track schemas overlap (e.g. `type` is a free string and distinguishing fields are not required), so a single track object can match multiple branches. `oneOf` requires exactly one match.",
436
- where:
437
- "In `fixed.yaml`: `components/schemas/{VideoTrack,VideoTrackForGetAll,AudioTrack,SubtitleTrack}.properties.type`",
438
- pasteYaml: [
439
- "# Apply these changes inside each schema’s `properties:` block:",
440
- "",
441
- "# VideoTrack (and VideoTrackForGetAll)",
442
- "type:",
443
- " type: string",
444
- " enum: [video]",
445
- " example: video",
446
- "",
447
- "# AudioTrack",
448
- "type:",
449
- " type: string",
450
- " enum: [audio]",
451
- " example: audio",
452
- "",
453
- "# SubtitleTrack",
454
- "type:",
455
- " type: string",
456
- " enum: [subtitle]",
457
- " example: subtitle",
458
- ].join("\n"),
459
- });
460
- }
461
-
462
- // 2) Enum mismatch: sourceResolution
463
- const hasSourceResolutionEnum =
464
- hasOpenapiError(r, "must be equal to one of the allowed values") &&
465
- paths.some((p) => p.includes("sourceResolution"));
466
- if (hasSourceResolutionEnum) {
467
- out.push({
468
- title: "Fix `sourceResolution` enum mismatch (API may return values without `p`)",
469
- why:
470
- "The API can return values like `\"1080\"` but the spec constrains the enum to `\"1080p\"`-style values.",
471
- where:
472
- "In `fixed.yaml`: under the relevant media response schema(s) `sourceResolution:` field definition",
473
- });
474
- }
475
-
476
- // 3) Redundant oneOf for /data/dimensions
477
- const hasDimensionsOneOf =
478
- hasOpenapiError(r, "must match exactly one schema in oneOf") &&
479
- (r.endpoint === "/data/dimensions" || paths.some((p) => p.includes("dimensions")));
480
- if (hasDimensionsOneOf) {
481
- out.push({
482
- title: "Remove redundant `oneOf` on `/data/dimensions` response schema",
483
- why:
484
- "`data` is defined as `oneOf: [array<string>, $ref: Dimensions]` and `Dimensions` itself is also `array<string>`, so valid responses can match multiple branches.",
485
- where:
486
- "In `fixed.yaml`: `paths./data/dimensions.get.responses.200.content.application/json.schema.properties.data.oneOf`",
487
- });
488
- }
489
-
490
- // 4) Overlapping numeric oneOf: integer vs number
491
- const hasIntegerVsNumber =
492
- hasOpenapiError(r, "must match exactly one schema in oneOf") &&
493
- paths.some((p) => p.includes("value"));
494
- if (hasIntegerVsNumber) {
495
- out.push({
496
- title: "Avoid `oneOf: [integer, number]` overlaps (integers are also numbers)",
497
- why:
498
- "In JSON Schema, `integer` is a subset of `number`. A value like `0` matches both, causing oneOf validation errors.",
499
- where:
500
- "In `fixed.yaml`: metrics schemas that use `oneOf: [integer, number]`",
501
- });
502
- }
503
-
504
- // 5) Nullable mismatch: fpApiVersion
505
- const hasFpApiVersionNull =
506
- hasOpenapiError(r, "must be string") &&
507
- paths.some((p) => p.includes("fpApiVersion"));
508
- if (hasFpApiVersionNull) {
509
- out.push({
510
- title: "Make `fpApiVersion` nullable in the spec",
511
- why: "The API can return `null` for fpApiVersion but the schema declares `string` only.",
512
- where: "In `fixed.yaml`: `components/schemas/Views.properties.fpApiVersion`",
513
- });
514
- }
515
-
516
- // 6) Placeholder fixture guidance (common 404)
517
- const placeholderUsed = (r.note || "").includes("Placeholder used");
518
- const likely404 =
519
- r.sdkParseOk === false &&
520
- /404|not found/i.test(r.sdkParseError || "") &&
521
- placeholderUsed;
522
- if (likely404) {
523
- out.push({
524
- title: "Provide real fixture IDs for this operationId",
525
- why:
526
- "A placeholder UUID was used for required path params; the API likely returned 404 because the resource doesn't exist. Add a real ID under `tests/get-endpoints-fixtures.json` for this operationId.",
527
- });
528
- }
529
-
530
- // 7) Playlist playOrder default / missing
531
- const playOrderMissing = r.missingInAPI.some((p) => p.includes("playOrder")) ||
532
- r.missingInSDK.some((p) => p.includes("playOrder"));
533
- if (playOrderMissing) {
534
- out.push({
535
- title: "Ensure `playOrder` is correctly modeled for smart playlists only",
536
- why:
537
- "If `playOrder` is present/required only for `type: smart`, the response schemas should reflect that (e.g. discriminator split).",
538
- where:
539
- "In `fixed.yaml`: playlist response schemas for create/update/get-by-id",
540
- });
541
- }
542
-
543
- // 8) simulcastResponses missing
544
- const hasSimulcastResponses = r.missingInSDK.some((p) => p.includes("simulcastResponses"));
545
- if (hasSimulcastResponses) {
546
- out.push({
547
- title: "Add `simulcastResponses` to the live stream response schema",
548
- why:
549
- "The API response includes simulcastResponses but the OpenAPI schema (and generated SDK inbound schema) does not, causing the SDK to drop the field.",
550
- where:
551
- "In `fixed.yaml`: live stream response schema(s) for get/list streams",
552
- });
553
- }
554
-
555
- return out;
556
- }
557
-
558
- function writeFixSuggestions(results: EndpointResult[]) {
559
- const failing = results.filter((r) => r.status === "FAIL");
560
- const outPath = join(__dirname, FIX_SUGGESTIONS_MD);
561
- const lines: string[] = [];
562
-
563
- lines.push("# GET Endpoints — OpenAPI Response Fix Suggestions");
564
- lines.push("");
565
- lines.push(`Generated: ${new Date().toISOString()}`);
566
- lines.push("");
567
- lines.push(`Total failing endpoints: ${failing.length}`);
568
- lines.push("");
569
-
570
- for (const r of failing) {
571
- const suggestions = r.fixSuggestions ?? [];
572
- lines.push(`## ${r.operationId} (\`${r.endpoint}\`)`);
573
- lines.push("");
574
- lines.push(`- **Status**: ${r.status}`);
575
- lines.push(`- **OpenAPI valid**: ${r.openapiValid ? "yes" : "no"}`);
576
- lines.push(`- **SDK parse**: ${r.sdkParseOk ? "ok" : "failed"}`);
577
- if (r.apiResponseFile) lines.push(`- **API artifact**: \`${r.apiResponseFile}\``);
578
- if (r.sdkResponseFile) lines.push(`- **SDK artifact**: \`${r.sdkResponseFile}\``);
579
- lines.push("");
580
-
581
- if (!r.openapiValid && (r.openapiErrors?.length ?? 0) > 0) {
582
- lines.push("### Observed OpenAPI errors");
583
- lines.push("");
584
- for (const e of r.openapiErrors) {
585
- const loc = e.path ? `\`${e.path}\`` : "";
586
- const msg = e.message ?? "";
587
- lines.push(`- ${loc} ${msg}`.trim());
588
- }
589
- lines.push("");
590
- }
591
-
592
- if (suggestions.length === 0) {
593
- lines.push("### Suggested fixes");
594
- lines.push("");
595
- lines.push("- No heuristic suggestions available for this failure yet.");
596
- lines.push("");
597
- continue;
598
- }
599
-
600
- lines.push("### Suggested fixes");
601
- lines.push("");
602
- for (const s of suggestions) {
603
- lines.push(`- **${s.title}**`);
604
- lines.push(` - **why**: ${s.why}`);
605
- if (s.where) lines.push(` - **where**: ${s.where}`);
606
- if (s.pasteYaml) {
607
- lines.push(" - **paste**:");
608
- lines.push("");
609
- lines.push("```yaml");
610
- lines.push(s.pasteYaml);
611
- lines.push("```");
612
- }
613
- lines.push("");
614
- }
615
- }
616
-
617
- writeFileSync(outPath, lines.join("\n"));
618
- }
619
-
620
- function collectEmptyArrayFieldPaths(value: any, prefix = ""): Set<string> {
621
- const out = new Set<string>();
622
- if (value === null || value === undefined) return out;
623
- if (typeof value !== "object") return out;
624
-
625
- if (Array.isArray(value)) {
626
- const arrayPrefix = prefix ? `${prefix}[]` : "[]";
627
- for (const item of value) {
628
- for (const p of collectEmptyArrayFieldPaths(item, arrayPrefix)) out.add(p);
629
- }
630
- return out;
631
- }
632
-
633
- for (const [k, v] of Object.entries(value)) {
634
- const p = prefix ? `${prefix}.${k}` : k;
635
- if (Array.isArray(v) && v.length === 0) out.add(p);
636
- for (const child of collectEmptyArrayFieldPaths(v, p)) out.add(child);
637
- }
638
- return out;
639
- }
640
-
641
- function collectJsonPaths(
642
- value: any,
643
- prefix = "",
644
- opts: { includeEmptyArrays?: boolean } = {},
645
- ): Set<string> {
646
- const out = new Set<string>();
647
- const add = (p: string) => out.add(p);
648
- const includeEmptyArrays = opts.includeEmptyArrays ?? true;
649
-
650
- if (value === null || value === undefined) return out;
651
- if (typeof value !== "object") {
652
- if (prefix) add(prefix);
653
- return out;
654
- }
655
-
656
- if (Array.isArray(value)) {
657
- if (!includeEmptyArrays && value.length === 0) return out;
658
- const arrayPrefix = prefix ? `${prefix}[]` : "[]";
659
- add(arrayPrefix);
660
- for (const item of value) {
661
- for (const p of collectJsonPaths(item, arrayPrefix, opts)) out.add(p);
662
- }
663
- return out;
664
- }
665
-
666
- for (const [k, v] of Object.entries(value)) {
667
- if (!includeEmptyArrays && Array.isArray(v) && v.length === 0) {
668
- continue;
669
- }
670
- const p = prefix ? `${prefix}.${k}` : k;
671
- add(p);
672
- for (const child of collectJsonPaths(v, p, opts)) out.add(child);
673
- }
674
- return out;
675
- }
676
-
677
- function sortUnique(arr: string[]) {
678
- return Array.from(new Set(arr)).sort((a, b) => a.localeCompare(b));
679
- }
680
-
681
- function canonicalizeKey(key: string): string {
682
- // 1) snake_case -> camelCase
683
- const camel = key.includes("_")
684
- ? key
685
- .toLowerCase()
686
- .replace(/_([a-z0-9])/g, (_, c) => String(c).toUpperCase())
687
- : key;
688
-
689
- // 2) normalize acronyms casing
690
- return camel.replaceAll("SDK", "Sdk").replaceAll("API", "Api");
691
- }
692
-
693
- function normalizeJsonForComparison(value: any): any {
694
- if (value === null || value === undefined) return value;
695
- if (Array.isArray(value)) return value.map(normalizeJsonForComparison);
696
- if (typeof value !== "object") return value;
697
- const out: any = {};
698
- for (const [k, v] of Object.entries(value)) {
699
- out[canonicalizeKey(k)] = normalizeJsonForComparison(v);
700
- }
701
- return out;
702
- }
703
-
704
- function jsonRoundTrip(value: any): any {
705
- return JSON.parse(JSON.stringify(value));
706
- }
707
-
708
- function buildUrl(
709
- baseUrl: string,
710
- endpoint: EndpointInfo,
711
- fixture: Fixture | null,
712
- ): { url: string; note?: string } {
713
- const opFixture = fixture?.operations?.[endpoint.operationId];
714
- let path = endpoint.path;
715
-
716
- const requiredPathParams = endpoint.parameters
717
- .filter((p) => p?.in === "path" && p?.required)
718
- .map((p) => p.name);
719
-
720
- const defaults = defaultSDKRequest(endpoint.operationId) ?? {};
721
- const fromFixture = opFixture
722
- ? { ...(opFixture.pathParams || {}), ...(opFixture.query || {}) }
723
- : {};
724
- const effectiveReq: Record<string, any> = { ...defaults, ...fromFixture };
725
-
726
- let note: string | undefined;
727
- if (requiredPathParams.length > 0) {
728
- for (const name of requiredPathParams) {
729
- const val = effectiveReq[name] ?? PLACEHOLDER_UUID;
730
- if (effectiveReq[name] == null) {
731
- note = note ? `${note}; placeholder used for ${name}` : `Placeholder used for ${name}`;
732
- }
733
- path = path.replaceAll(`{${name}}`, encodeURIComponent(val));
734
- }
735
- }
736
-
737
- const base = baseUrl.endsWith("/") ? baseUrl : baseUrl + "/";
738
- const url = new URL(path.replace(/^\//, ""), base);
739
-
740
- const queryParams = endpoint.parameters.filter((p) => p?.in === "query");
741
- for (const p of queryParams) {
742
- const name: string = p.name;
743
- const baseName = name.endsWith("[]") ? name.slice(0, -2) : name;
744
- const val = effectiveReq[name] ?? effectiveReq[baseName];
745
- if (val == null) continue;
746
-
747
- if (Array.isArray(val)) {
748
- for (const item of val) url.searchParams.append(name, String(item));
749
- } else {
750
- if (name.endsWith("[]")) url.searchParams.append(name, String(val));
751
- else url.searchParams.set(name, String(val));
752
- }
753
- }
754
-
755
- return { url: url.toString(), note };
756
- }
757
-
758
- function basicAuthHeader(username: string, password: string): string {
759
- const token = Buffer.from(`${username}:${password}`).toString("base64");
760
- return `Basic ${token}`;
761
- }
762
-
763
- function getSDKInboundSchemaForOperation(operationId: string): any | null {
764
- // Use union response schemas where possible (Response$inboundSchema) so DefaultError fields are preserved.
765
- const map: Record<string, any> = {
766
- "list-media": operations.ListMediaResponse$inboundSchema,
767
- "get-media": operations.GetMediaResponse$inboundSchema,
768
- "get-media-summary": operations.GetMediaSummaryResponse$inboundSchema,
769
- retrieveMediaInputInfo: operations.RetrieveMediaInputInfoResponse$inboundSchema,
770
- "list-live-clips": operations.ListLiveClipsResponse$inboundSchema,
771
- "list-playback-ids": operations.ListPlaybackIdsResponse$inboundSchema,
772
- "get-playback-id": operations.GetPlaybackIdResponse$inboundSchema,
773
- "list-uploads": operations.ListUploadsResponse$inboundSchema,
774
- "get-media-clips": operations.GetMediaClipsResponse$inboundSchema,
775
- "get-all-playlists": operations.GetAllPlaylistsResponse$inboundSchema,
776
- "get-playlist-by-id": operations.GetPlaylistByIdResponse$inboundSchema,
777
- getDrmConfiguration: operations.GetDrmConfigurationResponse$inboundSchema,
778
- getDrmConfigurationById: operations.GetDrmConfigurationByIdResponse$inboundSchema,
779
- "get-all-streams": operations.GetAllStreamsResponse$inboundSchema,
780
- "get-live-stream-viewer-count-by-id": operations.GetLiveStreamViewerCountByIdResponse$inboundSchema,
781
- "get-live-stream-by-id": operations.GetLiveStreamByIdResponse$inboundSchema,
782
- "get-live-stream-playback-id": operations.GetLiveStreamPlaybackIdResponse$inboundSchema,
783
- "get-specific-simulcast-of-stream": operations.GetSpecificSimulcastOfStreamResponse$inboundSchema,
784
- list_signing_keys: operations.ListSigningKeysResponse$inboundSchema,
785
- "get-signing_key_by_id": operations.GetSigningKeyByIdResponse$inboundSchema,
786
- list_video_views: operations.ListVideoViewsResponse$inboundSchema,
787
- get_video_view_details: operations.GetVideoViewDetailsResponse$inboundSchema,
788
- list_by_top_content: operations.ListByTopContentResponse$inboundSchema,
789
- list_dimensions: operations.ListDimensionsResponse$inboundSchema,
790
- list_filter_values_for_dimension: operations.ListFilterValuesForDimensionResponse$inboundSchema,
791
- list_breakdown_values: operations.ListBreakdownValuesResponse$inboundSchema,
792
- list_overall_values: operations.ListOverallValuesResponse$inboundSchema,
793
- get_timeseries_data: operations.GetTimeseriesDataResponse$inboundSchema,
794
- list_comparison_values: operations.ListComparisonValuesResponse$inboundSchema,
795
- list_errors: operations.ListErrorsResponse$inboundSchema,
796
- };
797
- return map[operationId] || null;
798
- }
799
-
800
- function writeReport(results: EndpointResult[]) {
801
- const total = results.length;
802
- const passed = results.filter((r) => r.status === "PASS").length;
803
- const failed = results.filter((r) => r.status === "FAIL").length;
804
- const skipped = 0;
805
-
806
- const reportPath = join(__dirname, "GET_ENDPOINTS_OPENAPI_RESPONSE_VALIDATION_REPORT.md");
807
- const readmePath = join(__dirname, "README.md");
808
- const generatedAt = new Date().toISOString();
809
-
810
- const lines: string[] = [];
811
- lines.push("# GET Endpoints — OpenAPI Response Validation Report");
812
- lines.push("");
813
- lines.push(`Generated: ${generatedAt}`);
814
- lines.push("");
815
- lines.push("## Summary");
816
- lines.push("");
817
- lines.push(`- **Total GET endpoints**: ${total}`);
818
- lines.push(`- **PASS**: ${passed}`);
819
- lines.push(`- **FAIL**: ${failed}`);
820
- lines.push(`- **SKIP**: ${skipped}`);
821
- lines.push("");
822
- lines.push("## Consolidated report");
823
- lines.push("");
824
- lines.push("| Endpoint | OperationId | OpenAPI valid | SDK parse | Missing in SDK (present in API) | Missing in API (present in SDK) | Empty arrays omitted by SDK | Status |");
825
- lines.push("|---|---|---:|---:|---|---|---|---|");
826
-
827
- for (const r of results) {
828
- const openapiCol = r.openapiValid ? "✅" : "❌";
829
- const sdkCol = r.sdkParseOk ? "✅" : "❌";
830
- const missSdk = r.missingInSDK.length ? r.missingInSDK.map((p) => `\`${p}\``).join(", ") : "None";
831
- const missApi = r.missingInAPI.length ? r.missingInAPI.map((p) => `\`${p}\``).join(", ") : "None";
832
- const emptyOmitted = r.emptyArraysOmittedInSDK.length ? r.emptyArraysOmittedInSDK.map((p) => `\`${p}\``).join(", ") : "None";
833
- const status = r.status === "PASS" ? "✅ PASS" : "❌ FAIL";
834
- lines.push(`| \`${r.endpoint}\` | \`${r.operationId}\` | ${openapiCol} | ${sdkCol} | ${missSdk} | ${missApi} | ${emptyOmitted} | ${status} |`);
835
- }
836
-
837
- lines.push("");
838
- lines.push("## Per-endpoint details (full missing parameter lists)");
839
- lines.push("");
840
-
841
- for (const r of results) {
842
- lines.push(`### ${r.operationId} (\`${r.endpoint}\`)`);
843
- lines.push("");
844
- lines.push(`- **Status**: ${r.status}`);
845
- if (r.note) lines.push(`- **Note**: ${r.note}`);
846
- lines.push(`- **OpenAPI valid**: ${r.openapiValid ? "yes" : "no"}`);
847
- if (!r.openapiValid && r.openapiErrors.length) {
848
- lines.push("- **OpenAPI errors**:");
849
- for (const e of r.openapiErrors) {
850
- const loc = e.path ? `\`${e.path}\`` : "";
851
- const msg = e.message ?? "";
852
- lines.push(` - ${loc} ${msg}`.trim());
853
- }
854
- }
855
- lines.push(`- **SDK parse**: ${r.sdkParseOk ? "ok" : "failed"}`);
856
- if (!r.sdkParseOk && r.sdkParseError) lines.push(`- **SDK parse error**: ${r.sdkParseError}`);
857
- if (r.apiResponseFile) lines.push(`- **API response file**: \`${r.apiResponseFile}\``);
858
- if (r.sdkResponseFile) lines.push(`- **SDK response file**: \`${r.sdkResponseFile}\``);
859
- lines.push("");
860
-
861
- if (r.apiResponsePreview) {
862
- lines.push("**API response (preview)**");
863
- lines.push("");
864
- lines.push("```json");
865
- lines.push(r.apiResponsePreview);
866
- lines.push("```");
867
- lines.push("");
868
- }
869
-
870
- if (r.sdkResponsePreview) {
871
- lines.push("**SDK response (preview)**");
872
- lines.push("");
873
- lines.push("```json");
874
- lines.push(r.sdkResponsePreview);
875
- lines.push("```");
876
- lines.push("");
877
- }
878
-
879
- lines.push(`**Missing in SDK (present in API) — ${r.missingInSDK.length}**`);
880
- lines.push("");
881
- if (r.missingInSDK.length === 0) lines.push("- None");
882
- else for (const p of r.missingInSDK) lines.push(`- \`${p}\``);
883
- lines.push("");
884
-
885
- lines.push(`**Missing in API (present in SDK) — ${r.missingInAPI.length}**`);
886
- lines.push("");
887
- if (r.missingInAPI.length === 0) lines.push("- None");
888
- else for (const p of r.missingInAPI) lines.push(`- \`${p}\``);
889
- lines.push("");
890
-
891
- lines.push(`**Empty arrays omitted by SDK — ${r.emptyArraysOmittedInSDK.length}**`);
892
- lines.push("");
893
- if (r.emptyArraysOmittedInSDK.length === 0) lines.push("- None");
894
- else for (const p of r.emptyArraysOmittedInSDK) lines.push(`- \`${p}\``);
895
- lines.push("");
896
-
897
- lines.push(`**Empty arrays omitted by API — ${r.emptyArraysOmittedInAPI.length}**`);
898
- lines.push("");
899
- if (r.emptyArraysOmittedInAPI.length === 0) lines.push("- None");
900
- else for (const p of r.emptyArraysOmittedInAPI) lines.push(`- \`${p}\``);
901
- lines.push("");
902
- }
903
-
904
- writeFileSync(reportPath, lines.join("\n"));
905
- writeFixSuggestions(results);
906
-
907
- // Also update tests/README.md with the consolidated report section so it always stays in sync.
908
- try {
909
- if (existsSync(readmePath)) {
910
- const begin = "<!-- BEGIN GET_ENDPOINTS_CONSOLIDATED -->";
911
- const end = "<!-- END GET_ENDPOINTS_CONSOLIDATED -->";
912
-
913
- const consolidated: string[] = [];
914
- consolidated.push(`Last generated: ${generatedAt}`);
915
- consolidated.push("");
916
- consolidated.push(`- **Total GET endpoints**: ${total}`);
917
- consolidated.push(`- **PASS**: ${passed}`);
918
- consolidated.push(`- **FAIL**: ${failed}`);
919
- consolidated.push(`- **SKIP**: ${skipped}`);
920
- consolidated.push("");
921
- consolidated.push("| Endpoint | OperationId | OpenAPI valid | SDK parse | Missing in SDK (present in API) | Missing in API (present in SDK) | Empty arrays omitted by SDK | Status |");
922
- consolidated.push("|---|---|---:|---:|---|---|---|---|");
923
- for (const r of results) {
924
- const openapiCol = r.openapiValid ? "✅" : "❌";
925
- const sdkCol = r.sdkParseOk ? "✅" : "❌";
926
- const missSdk = r.missingInSDK.length ? r.missingInSDK.map((p) => `\`${p}\``).join(", ") : "None";
927
- const missApi = r.missingInAPI.length ? r.missingInAPI.map((p) => `\`${p}\``).join(", ") : "None";
928
- const emptyOmitted = r.emptyArraysOmittedInSDK.length ? r.emptyArraysOmittedInSDK.map((p) => `\`${p}\``).join(", ") : "None";
929
- const status = r.status === "PASS" ? "✅ PASS" : "❌ FAIL";
930
- consolidated.push(`| \`${r.endpoint}\` | \`${r.operationId}\` | ${openapiCol} | ${sdkCol} | ${missSdk} | ${missApi} | ${emptyOmitted} | ${status} |`);
931
- }
932
- consolidated.push("");
933
- consolidated.push("#### Missing fields (full lists)");
934
- consolidated.push("");
935
- for (const r of results) {
936
- consolidated.push(`- **${r.operationId}** (\`${r.endpoint}\`)`);
937
- consolidated.push(` - **Missing in SDK (present in API)**: ${r.missingInSDK.length ? r.missingInSDK.map((p) => `\`${p}\``).join(", ") : "None"}`);
938
- consolidated.push(` - **Missing in API (present in SDK)**: ${r.missingInAPI.length ? r.missingInAPI.map((p) => `\`${p}\``).join(", ") : "None"}`);
939
- consolidated.push(` - **Empty arrays omitted by SDK**: ${r.emptyArraysOmittedInSDK.length ? r.emptyArraysOmittedInSDK.map((p) => `\`${p}\``).join(", ") : "None"}`);
940
- consolidated.push(` - **Empty arrays omitted by API**: ${r.emptyArraysOmittedInAPI.length ? r.emptyArraysOmittedInAPI.map((p) => `\`${p}\``).join(", ") : "None"}`);
941
- }
942
- consolidated.push("");
943
- consolidated.push(`Full details: \`tests/GET_ENDPOINTS_OPENAPI_RESPONSE_VALIDATION_REPORT.md\``);
944
-
945
- const readme = readFileSync(readmePath, "utf-8");
946
- if (readme.includes(begin) && readme.includes(end)) {
947
- const block = `${begin}\n${consolidated.join("\n")}\n${end}`;
948
- const updated = readme.replace(new RegExp(`${begin}[\\s\\S]*?${end}`), block);
949
- writeFileSync(readmePath, updated);
950
- }
951
- }
952
- } catch {
953
- // ignore README update failures
954
- }
955
-
956
- // eslint-disable-next-line no-console
957
- console.log(`Report generated: ${reportPath}`);
958
- // eslint-disable-next-line no-console
959
- console.log(`Fix suggestions generated: ${join(__dirname, FIX_SUGGESTIONS_MD)}`);
960
- // eslint-disable-next-line no-console
961
- console.log(`Summary: total=${total} pass=${passed} fail=${failed} skip=${skipped}`);
962
- }
963
-
964
- async function main(): Promise<void> {
965
- const spec = loadOpenAPISpec();
966
- const endpoints = extractGetEndpoints(spec);
967
- const fixtures = readFixtures();
968
-
969
- const baseUrl: string =
970
- process.env.FASTPIX_BASE_URL
971
- ?? ((spec.servers?.[0]?.url as string | undefined) ?? "https://api.fastpix.com/v1/");
972
-
973
- const username = "1b92c0d6-5548-4642-b13e-4bb7d77dbaf4";
974
- const password = "ff32012b-ec02-40ca-b0d4-711d81537e73";
975
-
976
- if (!username || !password) {
977
- throw new Error("Missing FASTPIX_USERNAME / FASTPIX_PASSWORD env vars (BasicAuth)");
978
- }
979
-
980
- const sdkClient = new Fastpix({
981
- security: { username, password },
982
- serverURL: baseUrl,
983
- });
984
-
985
- const results: EndpointResult[] = [];
986
- const totalEndpoints = endpoints.length;
987
-
988
- for (let i = 0; i < endpoints.length; i++) {
989
- const ep = endpoints[i];
990
- // eslint-disable-next-line no-console
991
- console.log(`[${i + 1}/${totalEndpoints}] Processing: ${ep.operationId} (${ep.path})`);
992
-
993
- try {
994
- const { url, note } = buildUrl(baseUrl, ep, fixtures);
995
-
996
- let httpStatus = 0;
997
- let rawBody: any = null;
998
- let requestError: string | undefined;
999
- try {
1000
- // Add timeout to prevent hanging
1001
- const controller = new AbortController();
1002
- const timeoutId = setTimeout(() => controller.abort(), 30000); // 30 second timeout
1003
-
1004
- const res = await fetch(url, {
1005
- method: "GET",
1006
- headers: {
1007
- Accept: "application/json",
1008
- Authorization: basicAuthHeader(username, password),
1009
- },
1010
- signal: controller.signal,
1011
- });
1012
-
1013
- clearTimeout(timeoutId);
1014
-
1015
- httpStatus = res.status;
1016
- const bodyText = await res.text();
1017
- try {
1018
- rawBody = bodyText ? JSON.parse(bodyText) : null;
1019
- } catch {
1020
- rawBody = bodyText;
1021
- }
1022
- } catch (e: any) {
1023
- if (e.name === 'AbortError') {
1024
- requestError = "Request timeout (30s)";
1025
- } else {
1026
- requestError = e?.message ?? String(e);
1027
- }
1028
- // eslint-disable-next-line no-console
1029
- console.error(` ⚠️ API request failed: ${requestError}`);
1030
- }
1031
-
1032
- const validator = makeOpenAPIResponseValidator(spec, ep);
1033
- let openapiValid = true;
1034
- let openapiErrors: any[] = [];
1035
- if (requestError) {
1036
- openapiValid = false;
1037
- openapiErrors = [{ message: `Request failed: ${requestError}` }];
1038
- } else if (validator) {
1039
- const err = validator.validateResponse(String(httpStatus), rawBody);
1040
- if (err) {
1041
- openapiValid = false;
1042
- openapiErrors = err.errors || [];
1043
- }
1044
- }
1045
-
1046
- // SDK output: call SDK and capture success result or thrown error (normalized).
1047
- const invoker = getSDKInvoker(ep.operationId);
1048
- const sdkReq = buildSDKRequest(ep, fixtures);
1049
- let sdkParseOk = true;
1050
- let sdkParseError: string | undefined;
1051
- let sdkPrinted: any = null;
1052
- let sdkValueForDiff: any = null;
1053
-
1054
- if (!invoker) {
1055
- sdkParseOk = false;
1056
- sdkParseError = "No SDK method mapping for this operationId";
1057
- sdkPrinted = { name: "SDKMappingError", message: sdkParseError };
1058
- } else {
1059
- try {
1060
- // Add timeout wrapper for SDK calls
1061
- const sdkCallPromise = invoker(sdkClient, sdkReq);
1062
- const timeoutPromise = new Promise((_, reject) =>
1063
- setTimeout(() => reject(new Error("SDK call timeout (30s)")), 30000)
1064
- );
1065
-
1066
- const sdkRes = await Promise.race([sdkCallPromise, timeoutPromise]);
1067
- sdkValueForDiff = sdkRes;
1068
- sdkPrinted = sdkRes;
1069
- } catch (e: any) {
1070
- sdkParseOk = false;
1071
- sdkParseError = e?.message ?? String(e);
1072
- sdkPrinted = normalizeSdkError(e);
1073
- // eslint-disable-next-line no-console
1074
- console.error(` ⚠️ SDK call failed: ${sdkParseError}`);
1075
- }
1076
- }
1077
-
1078
- // Parse raw API JSON through SDK inbound schema (when available) for diff comparisons.
1079
- const inboundSchema = getSDKInboundSchemaForOperation(ep.operationId);
1080
- let sdkParsedFromRaw: any | null = null;
1081
- if (inboundSchema && rawBody && typeof rawBody === "object") {
1082
- try {
1083
- sdkParsedFromRaw = inboundSchema.parse(rawBody);
1084
- } catch {
1085
- // If inbound parsing fails, we still proceed with diffing the actual SDK call result.
1086
- }
1087
- }
1088
-
1089
- const apiNormalized = normalizeJsonForComparison(rawBody);
1090
- const sdkJsonLike =
1091
- (sdkParsedFromRaw && typeof sdkParsedFromRaw === "object")
1092
- ? jsonRoundTrip(sdkParsedFromRaw)
1093
- : (sdkValueForDiff && typeof sdkValueForDiff === "object")
1094
- ? jsonRoundTrip(sdkValueForDiff)
1095
- : null;
1096
- const sdkNormalized = sdkJsonLike ? normalizeJsonForComparison(sdkJsonLike) : null;
1097
-
1098
- // Treat `[]` the same as "missing" for comparison.
1099
- const apiPaths = collectJsonPaths(apiNormalized, "", { includeEmptyArrays: false });
1100
- const sdkPaths = sdkNormalized ? collectJsonPaths(sdkNormalized, "", { includeEmptyArrays: false }) : new Set<string>();
1101
-
1102
- const missingInSDK = sdkPaths.size
1103
- ? sortUnique([...apiPaths].filter((p) => !sdkPaths.has(p)))
1104
- : [];
1105
- const missingInAPI = sdkPaths.size
1106
- ? sortUnique([...sdkPaths].filter((p) => !apiPaths.has(p)))
1107
- : [];
1108
-
1109
- const apiStrictPaths = collectJsonPaths(apiNormalized, "", { includeEmptyArrays: true });
1110
- const sdkStrictPaths = sdkNormalized ? collectJsonPaths(sdkNormalized, "", { includeEmptyArrays: true }) : new Set<string>();
1111
- const apiEmptyArrayFields = collectEmptyArrayFieldPaths(apiNormalized);
1112
- const sdkEmptyArrayFields = sdkNormalized ? collectEmptyArrayFieldPaths(sdkNormalized) : new Set<string>();
1113
-
1114
- const emptyArraysOmittedInSDK = sortUnique([...apiEmptyArrayFields].filter((p) => !sdkStrictPaths.has(p)));
1115
- const emptyArraysOmittedInAPI = sortUnique([...sdkEmptyArrayFields].filter((p) => !apiStrictPaths.has(p)));
1116
-
1117
- const pass = openapiValid && sdkParseOk && missingInSDK.length === 0 && missingInAPI.length === 0;
1118
-
1119
- const artifacts = writeArtifactFiles(
1120
- ep.operationId,
1121
- rawBody,
1122
- sdkPrinted,
1123
- );
1124
-
1125
- results.push({
1126
- endpoint: ep.path,
1127
- operationId: ep.operationId,
1128
- method: "GET",
1129
- openapiValid,
1130
- openapiErrors,
1131
- sdkParseOk,
1132
- sdkParseError,
1133
- missingInSDK,
1134
- missingInAPI,
1135
- emptyArraysOmittedInSDK,
1136
- emptyArraysOmittedInAPI,
1137
- apiResponseFile: artifacts.apiPath,
1138
- sdkResponseFile: artifacts.sdkPath,
1139
- apiResponsePreview: artifacts.apiPreview,
1140
- sdkResponsePreview: artifacts.sdkPreview,
1141
- status: pass ? "PASS" : "FAIL",
1142
- note,
1143
- fixSuggestions: undefined,
1144
- });
1145
-
1146
- // eslint-disable-next-line no-console
1147
- console.log(` ✓ Completed: ${ep.operationId} - ${results[results.length - 1].status}`);
1148
- } catch (error: any) {
1149
- // Catch any unexpected errors and continue with next endpoint
1150
- // eslint-disable-next-line no-console
1151
- console.error(` ✗ Unexpected error processing ${ep.operationId}:`, error?.message ?? String(error));
1152
- results.push({
1153
- endpoint: ep.path,
1154
- operationId: ep.operationId,
1155
- method: "GET",
1156
- openapiValid: false,
1157
- openapiErrors: [{ message: `Unexpected error: ${error?.message ?? String(error)}` }],
1158
- sdkParseOk: false,
1159
- sdkParseError: error?.message ?? String(error),
1160
- missingInSDK: [],
1161
- missingInAPI: [],
1162
- emptyArraysOmittedInSDK: [],
1163
- emptyArraysOmittedInAPI: [],
1164
- status: "FAIL",
1165
- note: "Unexpected error during processing",
1166
- fixSuggestions: undefined,
1167
- });
1168
- }
1169
- }
1170
-
1171
- for (const r of results) {
1172
- if (r.status !== "FAIL") continue;
1173
- r.fixSuggestions = generateFixSuggestions(r);
1174
- }
1175
-
1176
- writeReport(results);
1177
- }
1178
-
1179
- await main();
1180
-