@tmdb-graphql-api/resolvers 0.0.34 → 0.1.1-unstable.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/index.mjs +1 -1
  4. package/dist/esm/index.mjs.map +1 -1
  5. package/dist/production.analysis.txt +506 -413
  6. package/dist/types/cjs/constants.d.cts +3 -0
  7. package/dist/types/cjs/constants.d.cts.map +1 -1
  8. package/dist/types/cjs/helpers/buildArgsResolver.d.cts +9 -0
  9. package/dist/types/cjs/helpers/buildArgsResolver.d.cts.map +1 -0
  10. package/dist/types/cjs/helpers/buildNoObjArgsResolver.d.cts +9 -0
  11. package/dist/types/cjs/helpers/buildNoObjArgsResolver.d.cts.map +1 -0
  12. package/dist/types/cjs/helpers/buildObjArgsResolver.d.cts +9 -0
  13. package/dist/types/cjs/helpers/buildObjArgsResolver.d.cts.map +1 -0
  14. package/dist/types/cjs/helpers/buildObjResolver.d.cts +11 -0
  15. package/dist/types/cjs/helpers/buildObjResolver.d.cts.map +1 -0
  16. package/dist/types/cjs/helpers/getTvIdSeasonAndEpisode.d.cts +4 -3
  17. package/dist/types/cjs/helpers/getTvIdSeasonAndEpisode.d.cts.map +1 -1
  18. package/dist/types/cjs/main.d.cts.map +1 -1
  19. package/dist/types/cjs/queries/certifications.d.cts +429 -4
  20. package/dist/types/cjs/queries/certifications.d.cts.map +1 -1
  21. package/dist/types/cjs/queries/collection.d.cts +61 -3397
  22. package/dist/types/cjs/queries/collection.d.cts.map +1 -1
  23. package/dist/types/cjs/queries/collectionImages.d.cts +40 -13
  24. package/dist/types/cjs/queries/collectionImages.d.cts.map +1 -1
  25. package/dist/types/cjs/queries/collectionTranslations.d.cts +34 -17
  26. package/dist/types/cjs/queries/collectionTranslations.d.cts.map +1 -1
  27. package/dist/types/cjs/queries/company.d.cts +9 -12
  28. package/dist/types/cjs/queries/company.d.cts.map +1 -1
  29. package/dist/types/cjs/queries/companyAlternativeNames.d.cts +27 -9
  30. package/dist/types/cjs/queries/companyAlternativeNames.d.cts.map +1 -1
  31. package/dist/types/cjs/queries/companyLogos.d.cts +19 -13
  32. package/dist/types/cjs/queries/companyLogos.d.cts.map +1 -1
  33. package/dist/types/cjs/queries/configuration.d.cts +11 -14
  34. package/dist/types/cjs/queries/configuration.d.cts.map +1 -1
  35. package/dist/types/cjs/queries/configurationCountries.d.cts +16 -3
  36. package/dist/types/cjs/queries/configurationCountries.d.cts.map +1 -1
  37. package/dist/types/cjs/queries/configurationJobs.d.cts +15 -3
  38. package/dist/types/cjs/queries/configurationJobs.d.cts.map +1 -1
  39. package/dist/types/cjs/queries/configurationLanguages.d.cts +16 -3
  40. package/dist/types/cjs/queries/configurationLanguages.d.cts.map +1 -1
  41. package/dist/types/cjs/queries/configurationPrimaryTranslations.d.cts +12 -3
  42. package/dist/types/cjs/queries/configurationPrimaryTranslations.d.cts.map +1 -1
  43. package/dist/types/cjs/queries/configurationTimezones.d.cts +15 -3
  44. package/dist/types/cjs/queries/configurationTimezones.d.cts.map +1 -1
  45. package/dist/types/cjs/queries/credit.d.cts +46 -4197
  46. package/dist/types/cjs/queries/credit.d.cts.map +1 -1
  47. package/dist/types/cjs/queries/discoverMovies.d.cts +2 -4
  48. package/dist/types/cjs/queries/discoverMovies.d.cts.map +1 -1
  49. package/dist/types/cjs/queries/discoverTv.d.cts +2 -4
  50. package/dist/types/cjs/queries/discoverTv.d.cts.map +1 -1
  51. package/dist/types/cjs/queries/episode.d.cts +235 -94
  52. package/dist/types/cjs/queries/episode.d.cts.map +1 -1
  53. package/dist/types/cjs/queries/episodeCredits.d.cts +168 -32
  54. package/dist/types/cjs/queries/episodeCredits.d.cts.map +1 -1
  55. package/dist/types/cjs/queries/episodeExternalIds.d.cts +139 -15
  56. package/dist/types/cjs/queries/episodeExternalIds.d.cts.map +1 -1
  57. package/dist/types/cjs/queries/episodeStills.d.cts +140 -5
  58. package/dist/types/cjs/queries/episodeStills.d.cts.map +1 -1
  59. package/dist/types/cjs/queries/episodeTranslations.d.cts +141 -19
  60. package/dist/types/cjs/queries/episodeTranslations.d.cts.map +1 -1
  61. package/dist/types/cjs/queries/episodeVideos.d.cts +142 -14
  62. package/dist/types/cjs/queries/episodeVideos.d.cts.map +1 -1
  63. package/dist/types/cjs/queries/find.d.cts +10 -1801
  64. package/dist/types/cjs/queries/find.d.cts.map +1 -1
  65. package/dist/types/cjs/queries/genres.d.cts +6 -6
  66. package/dist/types/cjs/queries/genres.d.cts.map +1 -1
  67. package/dist/types/cjs/queries/keyword.d.cts +2 -5
  68. package/dist/types/cjs/queries/keyword.d.cts.map +1 -1
  69. package/dist/types/cjs/queries/movie.d.cts +35 -3588
  70. package/dist/types/cjs/queries/movie.d.cts.map +1 -1
  71. package/dist/types/cjs/queries/movieAlternativeTitles.d.cts +1736 -5
  72. package/dist/types/cjs/queries/movieAlternativeTitles.d.cts.map +1 -1
  73. package/dist/types/cjs/queries/movieCredits.d.cts +1755 -30
  74. package/dist/types/cjs/queries/movieCredits.d.cts.map +1 -1
  75. package/dist/types/cjs/queries/movieExternalIds.d.cts +1738 -15
  76. package/dist/types/cjs/queries/movieExternalIds.d.cts.map +1 -1
  77. package/dist/types/cjs/queries/movieImages.d.cts +1756 -5
  78. package/dist/types/cjs/queries/movieImages.d.cts.map +1 -1
  79. package/dist/types/cjs/queries/movieKeywords.d.cts +1735 -5
  80. package/dist/types/cjs/queries/movieKeywords.d.cts.map +1 -1
  81. package/dist/types/cjs/queries/movieRecommendations.d.cts +1728 -1848
  82. package/dist/types/cjs/queries/movieRecommendations.d.cts.map +1 -1
  83. package/dist/types/cjs/queries/movieReleaseDates.d.cts +1742 -12
  84. package/dist/types/cjs/queries/movieReleaseDates.d.cts.map +1 -1
  85. package/dist/types/cjs/queries/movieReviews.d.cts +1728 -1848
  86. package/dist/types/cjs/queries/movieReviews.d.cts.map +1 -1
  87. package/dist/types/cjs/queries/movieSimilarMovies.d.cts +1728 -1848
  88. package/dist/types/cjs/queries/movieSimilarMovies.d.cts.map +1 -1
  89. package/dist/types/cjs/queries/movieTranslations.d.cts +1744 -19
  90. package/dist/types/cjs/queries/movieTranslations.d.cts.map +1 -1
  91. package/dist/types/cjs/queries/movieVideos.d.cts +1741 -13
  92. package/dist/types/cjs/queries/movieVideos.d.cts.map +1 -1
  93. package/dist/types/cjs/queries/movieWatchProviders.d.cts +3205 -1373
  94. package/dist/types/cjs/queries/movieWatchProviders.d.cts.map +1 -1
  95. package/dist/types/cjs/queries/network.d.cts +14 -23
  96. package/dist/types/cjs/queries/network.d.cts.map +1 -1
  97. package/dist/types/cjs/queries/networkAlternativeNames.d.cts +11 -9
  98. package/dist/types/cjs/queries/networkAlternativeNames.d.cts.map +1 -1
  99. package/dist/types/cjs/queries/networkLogos.d.cts +17 -13
  100. package/dist/types/cjs/queries/networkLogos.d.cts.map +1 -1
  101. package/dist/types/cjs/queries/person.d.cts +13 -41
  102. package/dist/types/cjs/queries/person.d.cts.map +1 -1
  103. package/dist/types/cjs/queries/personCombinedCredits.d.cts +233 -5
  104. package/dist/types/cjs/queries/personCombinedCredits.d.cts.map +1 -1
  105. package/dist/types/cjs/queries/personExternalIds.d.cts +203 -5
  106. package/dist/types/cjs/queries/personExternalIds.d.cts.map +1 -1
  107. package/dist/types/cjs/queries/personMovieCredits.d.cts +231 -5
  108. package/dist/types/cjs/queries/personMovieCredits.d.cts.map +1 -1
  109. package/dist/types/cjs/queries/personProfiles.d.cts +200 -5
  110. package/dist/types/cjs/queries/personProfiles.d.cts.map +1 -1
  111. package/dist/types/cjs/queries/personTranslations.d.cts +201 -19
  112. package/dist/types/cjs/queries/personTranslations.d.cts.map +1 -1
  113. package/dist/types/cjs/queries/personTvCredits.d.cts +232 -5
  114. package/dist/types/cjs/queries/personTvCredits.d.cts.map +1 -1
  115. package/dist/types/cjs/queries/rated.d.cts +6 -8
  116. package/dist/types/cjs/queries/rated.d.cts.map +1 -1
  117. package/dist/types/cjs/queries/review.d.cts +37 -23
  118. package/dist/types/cjs/queries/review.d.cts.map +1 -1
  119. package/dist/types/cjs/queries/search.d.cts +6 -8
  120. package/dist/types/cjs/queries/search.d.cts.map +1 -1
  121. package/dist/types/cjs/queries/season.d.cts +233 -282
  122. package/dist/types/cjs/queries/season.d.cts.map +1 -1
  123. package/dist/types/cjs/queries/seasonCredits.d.cts +152 -32
  124. package/dist/types/cjs/queries/seasonCredits.d.cts.map +1 -1
  125. package/dist/types/cjs/queries/seasonEpisodeCount.d.cts.map +1 -1
  126. package/dist/types/cjs/queries/seasonExternalIds.d.cts +134 -5
  127. package/dist/types/cjs/queries/seasonExternalIds.d.cts.map +1 -1
  128. package/dist/types/cjs/queries/seasonPosters.d.cts +136 -5
  129. package/dist/types/cjs/queries/seasonPosters.d.cts.map +1 -1
  130. package/dist/types/cjs/queries/seasonTranslations.d.cts +137 -19
  131. package/dist/types/cjs/queries/seasonTranslations.d.cts.map +1 -1
  132. package/dist/types/cjs/queries/seasonVideos.d.cts +138 -14
  133. package/dist/types/cjs/queries/seasonVideos.d.cts.map +1 -1
  134. package/dist/types/cjs/queries/trending.d.cts +5 -7
  135. package/dist/types/cjs/queries/trending.d.cts.map +1 -1
  136. package/dist/types/cjs/queries/tv.d.cts +79 -10478
  137. package/dist/types/cjs/queries/tv.d.cts.map +1 -1
  138. package/dist/types/cjs/queries/tvAlternativeTitles.d.cts +1273 -10
  139. package/dist/types/cjs/queries/tvAlternativeTitles.d.cts.map +1 -1
  140. package/dist/types/cjs/queries/tvContentRatings.d.cts +1273 -8
  141. package/dist/types/cjs/queries/tvContentRatings.d.cts.map +1 -1
  142. package/dist/types/cjs/queries/tvCredits.d.cts +1292 -30
  143. package/dist/types/cjs/queries/tvCredits.d.cts.map +1 -1
  144. package/dist/types/cjs/queries/tvEpisodeGroups.d.cts +1280 -37
  145. package/dist/types/cjs/queries/tvEpisodeGroups.d.cts.map +1 -1
  146. package/dist/types/cjs/queries/tvExternalIds.d.cts +1280 -15
  147. package/dist/types/cjs/queries/tvExternalIds.d.cts.map +1 -1
  148. package/dist/types/cjs/queries/tvImages.d.cts +1294 -15
  149. package/dist/types/cjs/queries/tvImages.d.cts.map +1 -1
  150. package/dist/types/cjs/queries/tvKeywords.d.cts +1271 -7
  151. package/dist/types/cjs/queries/tvKeywords.d.cts.map +1 -1
  152. package/dist/types/cjs/queries/tvRecommendations.d.cts +1264 -5365
  153. package/dist/types/cjs/queries/tvRecommendations.d.cts.map +1 -1
  154. package/dist/types/cjs/queries/tvReviews.d.cts +1264 -5365
  155. package/dist/types/cjs/queries/tvReviews.d.cts.map +1 -1
  156. package/dist/types/cjs/queries/tvSimilarTvShows.d.cts +1264 -5365
  157. package/dist/types/cjs/queries/tvSimilarTvShows.d.cts.map +1 -1
  158. package/dist/types/cjs/queries/tvTranslations.d.cts +1280 -18
  159. package/dist/types/cjs/queries/tvTranslations.d.cts.map +1 -1
  160. package/dist/types/cjs/queries/tvVideos.d.cts +1279 -13
  161. package/dist/types/cjs/queries/tvVideos.d.cts.map +1 -1
  162. package/dist/types/cjs/queries/tvWatchProviders.d.cts +2174 -1371
  163. package/dist/types/cjs/queries/tvWatchProviders.d.cts.map +1 -1
  164. package/dist/types/cjs/queries/videoType.d.cts +2 -2
  165. package/dist/types/cjs/queries/videoType.d.cts.map +1 -1
  166. package/dist/types/cjs/types.d.cts +130 -297
  167. package/dist/types/cjs/types.d.cts.map +1 -1
  168. package/dist/types/esm/constants.d.ts +3 -0
  169. package/dist/types/esm/constants.d.ts.map +1 -1
  170. package/dist/types/esm/helpers/buildArgsResolver.d.ts +9 -0
  171. package/dist/types/esm/helpers/buildArgsResolver.d.ts.map +1 -0
  172. package/dist/types/esm/helpers/buildNoObjArgsResolver.d.ts +9 -0
  173. package/dist/types/esm/helpers/buildNoObjArgsResolver.d.ts.map +1 -0
  174. package/dist/types/esm/helpers/buildObjArgsResolver.d.ts +9 -0
  175. package/dist/types/esm/helpers/buildObjArgsResolver.d.ts.map +1 -0
  176. package/dist/types/esm/helpers/buildObjResolver.d.ts +11 -0
  177. package/dist/types/esm/helpers/buildObjResolver.d.ts.map +1 -0
  178. package/dist/types/esm/helpers/getTvIdSeasonAndEpisode.d.ts +4 -3
  179. package/dist/types/esm/helpers/getTvIdSeasonAndEpisode.d.ts.map +1 -1
  180. package/dist/types/esm/main.d.ts.map +1 -1
  181. package/dist/types/esm/queries/certifications.d.ts +429 -4
  182. package/dist/types/esm/queries/certifications.d.ts.map +1 -1
  183. package/dist/types/esm/queries/collection.d.ts +61 -3397
  184. package/dist/types/esm/queries/collection.d.ts.map +1 -1
  185. package/dist/types/esm/queries/collectionImages.d.ts +40 -13
  186. package/dist/types/esm/queries/collectionImages.d.ts.map +1 -1
  187. package/dist/types/esm/queries/collectionTranslations.d.ts +34 -17
  188. package/dist/types/esm/queries/collectionTranslations.d.ts.map +1 -1
  189. package/dist/types/esm/queries/company.d.ts +9 -12
  190. package/dist/types/esm/queries/company.d.ts.map +1 -1
  191. package/dist/types/esm/queries/companyAlternativeNames.d.ts +27 -9
  192. package/dist/types/esm/queries/companyAlternativeNames.d.ts.map +1 -1
  193. package/dist/types/esm/queries/companyLogos.d.ts +19 -13
  194. package/dist/types/esm/queries/companyLogos.d.ts.map +1 -1
  195. package/dist/types/esm/queries/configuration.d.ts +11 -14
  196. package/dist/types/esm/queries/configuration.d.ts.map +1 -1
  197. package/dist/types/esm/queries/configurationCountries.d.ts +16 -3
  198. package/dist/types/esm/queries/configurationCountries.d.ts.map +1 -1
  199. package/dist/types/esm/queries/configurationJobs.d.ts +15 -3
  200. package/dist/types/esm/queries/configurationJobs.d.ts.map +1 -1
  201. package/dist/types/esm/queries/configurationLanguages.d.ts +16 -3
  202. package/dist/types/esm/queries/configurationLanguages.d.ts.map +1 -1
  203. package/dist/types/esm/queries/configurationPrimaryTranslations.d.ts +12 -3
  204. package/dist/types/esm/queries/configurationPrimaryTranslations.d.ts.map +1 -1
  205. package/dist/types/esm/queries/configurationTimezones.d.ts +15 -3
  206. package/dist/types/esm/queries/configurationTimezones.d.ts.map +1 -1
  207. package/dist/types/esm/queries/credit.d.ts +46 -4197
  208. package/dist/types/esm/queries/credit.d.ts.map +1 -1
  209. package/dist/types/esm/queries/discoverMovies.d.ts +2 -4
  210. package/dist/types/esm/queries/discoverMovies.d.ts.map +1 -1
  211. package/dist/types/esm/queries/discoverTv.d.ts +2 -4
  212. package/dist/types/esm/queries/discoverTv.d.ts.map +1 -1
  213. package/dist/types/esm/queries/episode.d.ts +235 -94
  214. package/dist/types/esm/queries/episode.d.ts.map +1 -1
  215. package/dist/types/esm/queries/episodeCredits.d.ts +168 -32
  216. package/dist/types/esm/queries/episodeCredits.d.ts.map +1 -1
  217. package/dist/types/esm/queries/episodeExternalIds.d.ts +139 -15
  218. package/dist/types/esm/queries/episodeExternalIds.d.ts.map +1 -1
  219. package/dist/types/esm/queries/episodeStills.d.ts +140 -5
  220. package/dist/types/esm/queries/episodeStills.d.ts.map +1 -1
  221. package/dist/types/esm/queries/episodeTranslations.d.ts +141 -19
  222. package/dist/types/esm/queries/episodeTranslations.d.ts.map +1 -1
  223. package/dist/types/esm/queries/episodeVideos.d.ts +142 -14
  224. package/dist/types/esm/queries/episodeVideos.d.ts.map +1 -1
  225. package/dist/types/esm/queries/find.d.ts +10 -1801
  226. package/dist/types/esm/queries/find.d.ts.map +1 -1
  227. package/dist/types/esm/queries/genres.d.ts +6 -6
  228. package/dist/types/esm/queries/genres.d.ts.map +1 -1
  229. package/dist/types/esm/queries/keyword.d.ts +2 -5
  230. package/dist/types/esm/queries/keyword.d.ts.map +1 -1
  231. package/dist/types/esm/queries/movie.d.ts +35 -3588
  232. package/dist/types/esm/queries/movie.d.ts.map +1 -1
  233. package/dist/types/esm/queries/movieAlternativeTitles.d.ts +1736 -5
  234. package/dist/types/esm/queries/movieAlternativeTitles.d.ts.map +1 -1
  235. package/dist/types/esm/queries/movieCredits.d.ts +1755 -30
  236. package/dist/types/esm/queries/movieCredits.d.ts.map +1 -1
  237. package/dist/types/esm/queries/movieExternalIds.d.ts +1738 -15
  238. package/dist/types/esm/queries/movieExternalIds.d.ts.map +1 -1
  239. package/dist/types/esm/queries/movieImages.d.ts +1756 -5
  240. package/dist/types/esm/queries/movieImages.d.ts.map +1 -1
  241. package/dist/types/esm/queries/movieKeywords.d.ts +1735 -5
  242. package/dist/types/esm/queries/movieKeywords.d.ts.map +1 -1
  243. package/dist/types/esm/queries/movieRecommendations.d.ts +1728 -1848
  244. package/dist/types/esm/queries/movieRecommendations.d.ts.map +1 -1
  245. package/dist/types/esm/queries/movieReleaseDates.d.ts +1742 -12
  246. package/dist/types/esm/queries/movieReleaseDates.d.ts.map +1 -1
  247. package/dist/types/esm/queries/movieReviews.d.ts +1728 -1848
  248. package/dist/types/esm/queries/movieReviews.d.ts.map +1 -1
  249. package/dist/types/esm/queries/movieSimilarMovies.d.ts +1728 -1848
  250. package/dist/types/esm/queries/movieSimilarMovies.d.ts.map +1 -1
  251. package/dist/types/esm/queries/movieTranslations.d.ts +1744 -19
  252. package/dist/types/esm/queries/movieTranslations.d.ts.map +1 -1
  253. package/dist/types/esm/queries/movieVideos.d.ts +1741 -13
  254. package/dist/types/esm/queries/movieVideos.d.ts.map +1 -1
  255. package/dist/types/esm/queries/movieWatchProviders.d.ts +3205 -1373
  256. package/dist/types/esm/queries/movieWatchProviders.d.ts.map +1 -1
  257. package/dist/types/esm/queries/network.d.ts +14 -23
  258. package/dist/types/esm/queries/network.d.ts.map +1 -1
  259. package/dist/types/esm/queries/networkAlternativeNames.d.ts +11 -9
  260. package/dist/types/esm/queries/networkAlternativeNames.d.ts.map +1 -1
  261. package/dist/types/esm/queries/networkLogos.d.ts +17 -13
  262. package/dist/types/esm/queries/networkLogos.d.ts.map +1 -1
  263. package/dist/types/esm/queries/person.d.ts +13 -41
  264. package/dist/types/esm/queries/person.d.ts.map +1 -1
  265. package/dist/types/esm/queries/personCombinedCredits.d.ts +233 -5
  266. package/dist/types/esm/queries/personCombinedCredits.d.ts.map +1 -1
  267. package/dist/types/esm/queries/personExternalIds.d.ts +203 -5
  268. package/dist/types/esm/queries/personExternalIds.d.ts.map +1 -1
  269. package/dist/types/esm/queries/personMovieCredits.d.ts +231 -5
  270. package/dist/types/esm/queries/personMovieCredits.d.ts.map +1 -1
  271. package/dist/types/esm/queries/personProfiles.d.ts +200 -5
  272. package/dist/types/esm/queries/personProfiles.d.ts.map +1 -1
  273. package/dist/types/esm/queries/personTranslations.d.ts +201 -19
  274. package/dist/types/esm/queries/personTranslations.d.ts.map +1 -1
  275. package/dist/types/esm/queries/personTvCredits.d.ts +232 -5
  276. package/dist/types/esm/queries/personTvCredits.d.ts.map +1 -1
  277. package/dist/types/esm/queries/rated.d.ts +6 -8
  278. package/dist/types/esm/queries/rated.d.ts.map +1 -1
  279. package/dist/types/esm/queries/review.d.ts +37 -23
  280. package/dist/types/esm/queries/review.d.ts.map +1 -1
  281. package/dist/types/esm/queries/search.d.ts +6 -8
  282. package/dist/types/esm/queries/search.d.ts.map +1 -1
  283. package/dist/types/esm/queries/season.d.ts +233 -282
  284. package/dist/types/esm/queries/season.d.ts.map +1 -1
  285. package/dist/types/esm/queries/seasonCredits.d.ts +152 -32
  286. package/dist/types/esm/queries/seasonCredits.d.ts.map +1 -1
  287. package/dist/types/esm/queries/seasonEpisodeCount.d.ts.map +1 -1
  288. package/dist/types/esm/queries/seasonExternalIds.d.ts +134 -5
  289. package/dist/types/esm/queries/seasonExternalIds.d.ts.map +1 -1
  290. package/dist/types/esm/queries/seasonPosters.d.ts +136 -5
  291. package/dist/types/esm/queries/seasonPosters.d.ts.map +1 -1
  292. package/dist/types/esm/queries/seasonTranslations.d.ts +137 -19
  293. package/dist/types/esm/queries/seasonTranslations.d.ts.map +1 -1
  294. package/dist/types/esm/queries/seasonVideos.d.ts +138 -14
  295. package/dist/types/esm/queries/seasonVideos.d.ts.map +1 -1
  296. package/dist/types/esm/queries/trending.d.ts +5 -7
  297. package/dist/types/esm/queries/trending.d.ts.map +1 -1
  298. package/dist/types/esm/queries/tv.d.ts +79 -10478
  299. package/dist/types/esm/queries/tv.d.ts.map +1 -1
  300. package/dist/types/esm/queries/tvAlternativeTitles.d.ts +1273 -10
  301. package/dist/types/esm/queries/tvAlternativeTitles.d.ts.map +1 -1
  302. package/dist/types/esm/queries/tvContentRatings.d.ts +1273 -8
  303. package/dist/types/esm/queries/tvContentRatings.d.ts.map +1 -1
  304. package/dist/types/esm/queries/tvCredits.d.ts +1292 -30
  305. package/dist/types/esm/queries/tvCredits.d.ts.map +1 -1
  306. package/dist/types/esm/queries/tvEpisodeGroups.d.ts +1280 -37
  307. package/dist/types/esm/queries/tvEpisodeGroups.d.ts.map +1 -1
  308. package/dist/types/esm/queries/tvExternalIds.d.ts +1280 -15
  309. package/dist/types/esm/queries/tvExternalIds.d.ts.map +1 -1
  310. package/dist/types/esm/queries/tvImages.d.ts +1294 -15
  311. package/dist/types/esm/queries/tvImages.d.ts.map +1 -1
  312. package/dist/types/esm/queries/tvKeywords.d.ts +1271 -7
  313. package/dist/types/esm/queries/tvKeywords.d.ts.map +1 -1
  314. package/dist/types/esm/queries/tvRecommendations.d.ts +1264 -5365
  315. package/dist/types/esm/queries/tvRecommendations.d.ts.map +1 -1
  316. package/dist/types/esm/queries/tvReviews.d.ts +1264 -5365
  317. package/dist/types/esm/queries/tvReviews.d.ts.map +1 -1
  318. package/dist/types/esm/queries/tvSimilarTvShows.d.ts +1264 -5365
  319. package/dist/types/esm/queries/tvSimilarTvShows.d.ts.map +1 -1
  320. package/dist/types/esm/queries/tvTranslations.d.ts +1280 -18
  321. package/dist/types/esm/queries/tvTranslations.d.ts.map +1 -1
  322. package/dist/types/esm/queries/tvVideos.d.ts +1279 -13
  323. package/dist/types/esm/queries/tvVideos.d.ts.map +1 -1
  324. package/dist/types/esm/queries/tvWatchProviders.d.ts +2174 -1371
  325. package/dist/types/esm/queries/tvWatchProviders.d.ts.map +1 -1
  326. package/dist/types/esm/queries/videoType.d.ts +2 -2
  327. package/dist/types/esm/queries/videoType.d.ts.map +1 -1
  328. package/dist/types/esm/types.d.ts +130 -297
  329. package/dist/types/esm/types.d.ts.map +1 -1
  330. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  331. package/package.json +12 -11
  332. package/src/__testUtils__/helpers/createMockLogger.ts +10 -0
  333. package/src/constants.ts +3 -0
  334. package/src/helpers/__snapshots__/typePropNames.test.ts.snap +0 -2
  335. package/src/helpers/buildArgsResolver.ts +37 -0
  336. package/src/helpers/buildNoObjArgsResolver.ts +36 -0
  337. package/src/helpers/buildObjArgsResolver.ts +43 -0
  338. package/src/helpers/buildObjResolver.ts +48 -0
  339. package/src/helpers/getTvIdSeasonAndEpisode.ts +12 -8
  340. package/src/main.ts +5 -11
  341. package/src/queries/__snapshots__/episode.test.ts.snap +1 -2
  342. package/src/queries/__snapshots__/season.test.ts.snap +1 -2
  343. package/src/queries/certifications.test.ts +13 -20
  344. package/src/queries/certifications.ts +21 -24
  345. package/src/queries/collection.test.ts +13 -16
  346. package/src/queries/collection.ts +20 -23
  347. package/src/queries/collectionImages.test.ts +16 -24
  348. package/src/queries/collectionImages.ts +16 -19
  349. package/src/queries/collectionTranslations.test.ts +29 -17
  350. package/src/queries/collectionTranslations.ts +19 -23
  351. package/src/queries/company.test.ts +13 -16
  352. package/src/queries/company.ts +20 -23
  353. package/src/queries/companyAlternativeNames.test.ts +34 -19
  354. package/src/queries/companyAlternativeNames.ts +19 -23
  355. package/src/queries/companyLogos.test.ts +29 -19
  356. package/src/queries/companyLogos.ts +13 -21
  357. package/src/queries/configuration.test.ts +12 -16
  358. package/src/queries/configuration.ts +11 -15
  359. package/src/queries/configurationCountries.test.ts +27 -17
  360. package/src/queries/configurationCountries.ts +19 -23
  361. package/src/queries/configurationJobs.test.ts +27 -17
  362. package/src/queries/configurationJobs.ts +19 -23
  363. package/src/queries/configurationLanguages.test.ts +27 -17
  364. package/src/queries/configurationLanguages.ts +19 -23
  365. package/src/queries/configurationPrimaryTranslations.test.ts +26 -17
  366. package/src/queries/configurationPrimaryTranslations.ts +14 -18
  367. package/src/queries/configurationTimezones.test.ts +27 -17
  368. package/src/queries/configurationTimezones.ts +19 -23
  369. package/src/queries/credit.test.ts +13 -16
  370. package/src/queries/credit.ts +12 -15
  371. package/src/queries/discoverMovies.test.ts +35 -81
  372. package/src/queries/discoverMovies.ts +21 -20
  373. package/src/queries/discoverTv.test.ts +29 -43
  374. package/src/queries/discoverTv.ts +16 -21
  375. package/src/queries/episode.test.ts +16 -17
  376. package/src/queries/episode.ts +36 -36
  377. package/src/queries/episodeCredits.test.ts +35 -67
  378. package/src/queries/episodeCredits.ts +29 -22
  379. package/src/queries/episodeExternalIds.test.ts +27 -39
  380. package/src/queries/episodeExternalIds.ts +35 -23
  381. package/src/queries/episodeStills.test.ts +28 -41
  382. package/src/queries/episodeStills.ts +32 -22
  383. package/src/queries/episodeTranslations.test.ts +26 -34
  384. package/src/queries/episodeTranslations.ts +29 -22
  385. package/src/queries/episodeVideos.test.ts +28 -41
  386. package/src/queries/episodeVideos.ts +29 -22
  387. package/src/queries/find.test.ts +13 -16
  388. package/src/queries/find.ts +25 -22
  389. package/src/queries/genres.test.ts +13 -22
  390. package/src/queries/genres.ts +13 -19
  391. package/src/queries/keyword.test.ts +13 -16
  392. package/src/queries/keyword.ts +12 -15
  393. package/src/queries/movie.test.ts +16 -20
  394. package/src/queries/movie.ts +20 -21
  395. package/src/queries/movieAlternativeTitles.test.ts +24 -30
  396. package/src/queries/movieAlternativeTitles.ts +34 -22
  397. package/src/queries/movieCredits.test.ts +27 -45
  398. package/src/queries/movieCredits.ts +24 -21
  399. package/src/queries/movieExternalIds.test.ts +22 -29
  400. package/src/queries/movieExternalIds.ts +26 -21
  401. package/src/queries/movieImages.test.ts +28 -46
  402. package/src/queries/movieImages.ts +26 -23
  403. package/src/queries/movieKeywords.test.ts +21 -26
  404. package/src/queries/movieKeywords.ts +24 -21
  405. package/src/queries/movieRecommendations.test.ts +27 -49
  406. package/src/queries/movieRecommendations.ts +27 -23
  407. package/src/queries/movieReleaseDates.test.ts +24 -28
  408. package/src/queries/movieReleaseDates.ts +25 -21
  409. package/src/queries/movieReviews.test.ts +32 -36
  410. package/src/queries/movieReviews.ts +28 -23
  411. package/src/queries/movieSimilarMovies.test.ts +25 -47
  412. package/src/queries/movieSimilarMovies.ts +28 -24
  413. package/src/queries/movieTranslations.test.ts +20 -25
  414. package/src/queries/movieTranslations.ts +24 -21
  415. package/src/queries/movieVideos.test.ts +22 -29
  416. package/src/queries/movieVideos.ts +24 -21
  417. package/src/queries/movieWatchProviders.test.ts +19 -27
  418. package/src/queries/movieWatchProviders.ts +26 -23
  419. package/src/queries/network.test.ts +13 -16
  420. package/src/queries/network.ts +20 -23
  421. package/src/queries/networkAlternativeNames.test.ts +16 -18
  422. package/src/queries/networkAlternativeNames.ts +19 -23
  423. package/src/queries/networkLogos.test.ts +14 -15
  424. package/src/queries/networkLogos.ts +13 -20
  425. package/src/queries/person.test.ts +16 -20
  426. package/src/queries/person.ts +20 -21
  427. package/src/queries/personCombinedCredits.test.ts +26 -26
  428. package/src/queries/personCombinedCredits.ts +27 -21
  429. package/src/queries/personExternalIds.test.ts +26 -26
  430. package/src/queries/personExternalIds.ts +27 -21
  431. package/src/queries/personMovieCredits.test.ts +26 -26
  432. package/src/queries/personMovieCredits.ts +27 -21
  433. package/src/queries/personProfiles.test.ts +22 -26
  434. package/src/queries/personProfiles.ts +25 -22
  435. package/src/queries/personTranslations.test.ts +22 -25
  436. package/src/queries/personTranslations.ts +24 -21
  437. package/src/queries/personTvCredits.test.ts +28 -28
  438. package/src/queries/personTvCredits.ts +26 -21
  439. package/src/queries/rated.test.ts +33 -69
  440. package/src/queries/rated.ts +31 -20
  441. package/src/queries/review.test.ts +13 -16
  442. package/src/queries/review.ts +27 -31
  443. package/src/queries/search.test.ts +53 -107
  444. package/src/queries/search.ts +42 -20
  445. package/src/queries/season.test.ts +16 -17
  446. package/src/queries/season.ts +34 -44
  447. package/src/queries/seasonCredits.test.ts +36 -45
  448. package/src/queries/seasonCredits.ts +27 -23
  449. package/src/queries/seasonEpisodeCount.ts +0 -4
  450. package/src/queries/seasonExternalIds.test.ts +25 -28
  451. package/src/queries/seasonExternalIds.ts +32 -22
  452. package/src/queries/seasonPosters.test.ts +25 -30
  453. package/src/queries/seasonPosters.ts +25 -22
  454. package/src/queries/seasonTranslations.test.ts +21 -27
  455. package/src/queries/seasonTranslations.ts +29 -22
  456. package/src/queries/seasonVideos.test.ts +23 -28
  457. package/src/queries/seasonVideos.ts +25 -22
  458. package/src/queries/trending.test.ts +28 -60
  459. package/src/queries/trending.ts +42 -20
  460. package/src/queries/tv.test.ts +16 -20
  461. package/src/queries/tv.ts +26 -34
  462. package/src/queries/tvAlternativeTitles.test.ts +25 -28
  463. package/src/queries/tvAlternativeTitles.ts +25 -22
  464. package/src/queries/tvContentRatings.test.ts +25 -28
  465. package/src/queries/tvContentRatings.ts +24 -22
  466. package/src/queries/tvCredits.test.ts +38 -44
  467. package/src/queries/tvCredits.ts +24 -21
  468. package/src/queries/tvEpisodeGroups.test.ts +25 -28
  469. package/src/queries/tvEpisodeGroups.ts +24 -21
  470. package/src/queries/tvExternalIds.test.ts +25 -28
  471. package/src/queries/tvExternalIds.ts +26 -21
  472. package/src/queries/tvImages.test.ts +36 -46
  473. package/src/queries/tvImages.ts +26 -23
  474. package/src/queries/tvKeywords.test.ts +24 -28
  475. package/src/queries/tvKeywords.ts +24 -21
  476. package/src/queries/tvRecommendations.test.ts +29 -49
  477. package/src/queries/tvRecommendations.ts +28 -22
  478. package/src/queries/tvReviews.test.ts +37 -48
  479. package/src/queries/tvReviews.ts +27 -23
  480. package/src/queries/tvSimilarTvShows.test.ts +37 -48
  481. package/src/queries/tvSimilarTvShows.ts +28 -24
  482. package/src/queries/tvTranslations.test.ts +24 -28
  483. package/src/queries/tvTranslations.ts +24 -21
  484. package/src/queries/tvVideos.test.ts +24 -28
  485. package/src/queries/tvVideos.ts +24 -21
  486. package/src/queries/tvWatchProviders.test.ts +24 -28
  487. package/src/queries/tvWatchProviders.ts +26 -23
  488. package/src/queries/videoType.ts +2 -2
  489. package/src/types.ts +226 -391
@@ -15,6 +15,7 @@ import { type Getta, type ShortcutProperties } from 'getta';
15
15
  import { type GraphQLResolveInfo } from 'graphql';
16
16
  import { decode } from 'js-base64';
17
17
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
18
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
18
19
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
19
20
  import { SEARCH } from '../constants.ts';
20
21
  import { type Context } from '../types.ts';
@@ -22,6 +23,15 @@ import { createMakeCursors, createResourceResolver, cursorCache, resolveSearch }
22
23
 
23
24
  const mockedFetch = mockFetch(jest.fn);
24
25
 
26
+ const context = {
27
+ logger: createMockLogger(jest.fn),
28
+ restClient: createRestClient(),
29
+ setCacheMetadata: jest.fn(),
30
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
31
+ } as unknown as Context;
32
+
33
+ const info = {} as GraphQLResolveInfo;
34
+
25
35
  describe('createMakeCursors', () => {
26
36
  const input = {
27
37
  after: 'abcdefg',
@@ -66,14 +76,16 @@ describe('createResourceResolver', () => {
66
76
  search: jest.fn().mockReturnValue({}),
67
77
  } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>;
68
78
 
69
- const setCacheMetadata = jest.fn();
70
-
71
79
  it('when `restClient.search` is called', async () => {
72
- const resourceResolver = createResourceResolver(undefined, { ...input }, {
73
- restClient,
74
- setCacheMetadata,
75
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
76
- } as unknown as Context);
80
+ const resourceResolver = createResourceResolver(
81
+ undefined,
82
+ { ...input },
83
+ {
84
+ ...context,
85
+ restClient,
86
+ },
87
+ info
88
+ );
77
89
 
78
90
  await resourceResolver({ page: 1 });
79
91
 
@@ -95,17 +107,10 @@ describe('createResourceResolver', () => {
95
107
  });
96
108
 
97
109
  describe('resolveSearch > collections', () => {
98
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
99
- const setCacheMetadata = jest.fn();
100
-
101
110
  const args = {
102
111
  query: 'star wars',
103
112
  };
104
113
 
105
- beforeAll(() => {
106
- restClient = createRestClient();
107
- });
108
-
109
114
  beforeEach(() => {
110
115
  mockedFetch.mockGetOnce(
111
116
  buildEndpoint(SEARCH_PATH, { type: SearchType.Collection.toLowerCase() }, { ...args, page: 1 }),
@@ -118,19 +123,15 @@ describe('resolveSearch > collections', () => {
118
123
 
119
124
  afterEach(async () => {
120
125
  mockedFetch.mockReset();
121
- await restClient.cache?.clear();
126
+ await context.restClient.cache?.clear();
122
127
  await cursorCache.clear();
128
+ jest.clearAllMocks();
123
129
  });
124
130
 
125
131
  describe('when the first 5 are requested', () => {
126
132
  it('should return the correct response', async () => {
127
133
  await expect(
128
- resolveSearch(
129
- undefined,
130
- { ...args, first: 5, searchType: SearchType.Collection },
131
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
132
- {} as GraphQLResolveInfo
133
- )
134
+ resolveSearch(undefined, { ...args, first: 5, searchType: SearchType.Collection }, context, info)
134
135
  ).resolves.toMatchSnapshot();
135
136
  });
136
137
  });
@@ -140,16 +141,16 @@ describe('resolveSearch > collections', () => {
140
141
  const { pageInfo } = await resolveSearch(
141
142
  undefined,
142
143
  { ...args, first: 5, searchType: SearchType.Collection },
143
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
144
- {} as GraphQLResolveInfo
144
+ context,
145
+ info
145
146
  );
146
147
 
147
148
  await expect(
148
149
  resolveSearch(
149
150
  undefined,
150
151
  { ...args, after: pageInfo.endCursor, first: 5, searchType: SearchType.Collection },
151
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
152
- {} as GraphQLResolveInfo
152
+ context,
153
+ info
153
154
  )
154
155
  ).resolves.toMatchSnapshot();
155
156
  });
@@ -157,17 +158,10 @@ describe('resolveSearch > collections', () => {
157
158
  });
158
159
 
159
160
  describe('resolveSearch > companies', () => {
160
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
161
- const setCacheMetadata = jest.fn();
162
-
163
161
  const args = {
164
162
  query: 'orion',
165
163
  };
166
164
 
167
- beforeAll(() => {
168
- restClient = createRestClient();
169
- });
170
-
171
165
  beforeEach(() => {
172
166
  mockedFetch.mockGetOnce(
173
167
  buildEndpoint(SEARCH_PATH, { type: SearchType.Company.toLowerCase() }, { ...args, page: 1 }),
@@ -180,19 +174,15 @@ describe('resolveSearch > companies', () => {
180
174
 
181
175
  afterEach(async () => {
182
176
  mockedFetch.mockReset();
183
- await restClient.cache?.clear();
177
+ await context.restClient.cache?.clear();
184
178
  await cursorCache.clear();
179
+ jest.clearAllMocks();
185
180
  });
186
181
 
187
182
  describe('when the last 5 are requested', () => {
188
183
  it('should return the correct response', async () => {
189
184
  await expect(
190
- resolveSearch(
191
- undefined,
192
- { ...args, last: 5, searchType: SearchType.Company },
193
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
194
- {} as GraphQLResolveInfo
195
- )
185
+ resolveSearch(undefined, { ...args, last: 5, searchType: SearchType.Company }, context, info)
196
186
  ).resolves.toMatchSnapshot();
197
187
  });
198
188
  });
@@ -202,16 +192,16 @@ describe('resolveSearch > companies', () => {
202
192
  const { pageInfo } = await resolveSearch(
203
193
  undefined,
204
194
  { ...args, last: 5, searchType: SearchType.Company },
205
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
206
- {} as GraphQLResolveInfo
195
+ context,
196
+ info
207
197
  );
208
198
 
209
199
  await expect(
210
200
  resolveSearch(
211
201
  undefined,
212
202
  { ...args, before: pageInfo.startCursor, last: 5, searchType: SearchType.Company },
213
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
214
- {} as GraphQLResolveInfo
203
+ context,
204
+ info
215
205
  )
216
206
  ).resolves.toMatchSnapshot();
217
207
  });
@@ -219,17 +209,10 @@ describe('resolveSearch > companies', () => {
219
209
  });
220
210
 
221
211
  describe('resolveSearch > movies', () => {
222
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
223
- const setCacheMetadata = jest.fn();
224
-
225
212
  const args = {
226
213
  query: 'harry potter',
227
214
  };
228
215
 
229
- beforeAll(() => {
230
- restClient = createRestClient();
231
- });
232
-
233
216
  beforeEach(() => {
234
217
  mockedFetch.mockGetOnce(
235
218
  buildEndpoint(SEARCH_PATH, { type: SearchType.Movie.toLowerCase() }, { ...args, page: 1 }),
@@ -250,19 +233,15 @@ describe('resolveSearch > movies', () => {
250
233
 
251
234
  afterEach(async () => {
252
235
  mockedFetch.mockReset();
253
- await restClient.cache?.clear();
236
+ await context.restClient.cache?.clear();
254
237
  await cursorCache.clear();
238
+ jest.clearAllMocks();
255
239
  });
256
240
 
257
241
  describe('when the first 18 are requested', () => {
258
242
  it('should return the correct response', async () => {
259
243
  await expect(
260
- resolveSearch(
261
- undefined,
262
- { ...args, first: 18, searchType: SearchType.Movie },
263
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
264
- {} as GraphQLResolveInfo
265
- )
244
+ resolveSearch(undefined, { ...args, first: 18, searchType: SearchType.Movie }, context, info)
266
245
  ).resolves.toMatchSnapshot();
267
246
  });
268
247
  });
@@ -272,16 +251,16 @@ describe('resolveSearch > movies', () => {
272
251
  const { pageInfo } = await resolveSearch(
273
252
  undefined,
274
253
  { ...args, first: 18, searchType: SearchType.Movie },
275
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
276
- {} as GraphQLResolveInfo
254
+ context,
255
+ info
277
256
  );
278
257
 
279
258
  await expect(
280
259
  resolveSearch(
281
260
  undefined,
282
261
  { ...args, after: pageInfo.endCursor, first: 18, searchType: SearchType.Movie },
283
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
284
- {} as GraphQLResolveInfo
262
+ context,
263
+ info
285
264
  )
286
265
  ).resolves.toMatchSnapshot();
287
266
  });
@@ -289,17 +268,10 @@ describe('resolveSearch > movies', () => {
289
268
  });
290
269
 
291
270
  describe('resolveSearch > multi', () => {
292
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
293
- const setCacheMetadata = jest.fn();
294
-
295
271
  const args = {
296
272
  query: 'marilyn monroe',
297
273
  };
298
274
 
299
- beforeAll(() => {
300
- restClient = createRestClient();
301
- });
302
-
303
275
  beforeEach(() => {
304
276
  mockedFetch.mockGetOnce(
305
277
  buildEndpoint(SEARCH_PATH, { type: SearchType.Multi.toLowerCase() }, { ...args, page: 1 }),
@@ -320,19 +292,15 @@ describe('resolveSearch > multi', () => {
320
292
 
321
293
  afterEach(async () => {
322
294
  mockedFetch.mockReset();
323
- await restClient.cache?.clear();
295
+ await context.restClient.cache?.clear();
324
296
  await cursorCache.clear();
297
+ jest.clearAllMocks();
325
298
  });
326
299
 
327
300
  describe('when the last 5 are requested', () => {
328
301
  it('should return the correct response', async () => {
329
302
  await expect(
330
- resolveSearch(
331
- undefined,
332
- { ...args, last: 5, searchType: SearchType.Multi },
333
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
334
- {} as GraphQLResolveInfo
335
- )
303
+ resolveSearch(undefined, { ...args, last: 5, searchType: SearchType.Multi }, context, info)
336
304
  ).resolves.toMatchSnapshot();
337
305
  });
338
306
  });
@@ -342,16 +310,16 @@ describe('resolveSearch > multi', () => {
342
310
  const { pageInfo } = await resolveSearch(
343
311
  undefined,
344
312
  { ...args, last: 5, searchType: SearchType.Multi },
345
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
346
- {} as GraphQLResolveInfo
313
+ context,
314
+ info
347
315
  );
348
316
 
349
317
  await expect(
350
318
  resolveSearch(
351
319
  undefined,
352
320
  { ...args, before: pageInfo.startCursor, last: 5, searchType: SearchType.Multi },
353
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
354
- {} as GraphQLResolveInfo
321
+ context,
322
+ info
355
323
  )
356
324
  ).resolves.toMatchSnapshot();
357
325
  });
@@ -359,17 +327,10 @@ describe('resolveSearch > multi', () => {
359
327
  });
360
328
 
361
329
  describe('resolveSearch > people', () => {
362
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
363
- const setCacheMetadata = jest.fn();
364
-
365
330
  const args = {
366
331
  query: 'tom cruise',
367
332
  };
368
333
 
369
- beforeAll(() => {
370
- restClient = createRestClient();
371
- });
372
-
373
334
  beforeEach(() => {
374
335
  mockedFetch.mockGetOnce(
375
336
  buildEndpoint(SEARCH_PATH, { type: SearchType.Person.toLowerCase() }, { ...args, page: 1 }),
@@ -382,36 +343,25 @@ describe('resolveSearch > people', () => {
382
343
 
383
344
  afterEach(async () => {
384
345
  mockedFetch.mockReset();
385
- await restClient.cache?.clear();
346
+ await context.restClient.cache?.clear();
386
347
  await cursorCache.clear();
348
+ jest.clearAllMocks();
387
349
  });
388
350
 
389
351
  describe('when the first 5 are requested', () => {
390
352
  it('should return the correct response', async () => {
391
353
  await expect(
392
- resolveSearch(
393
- undefined,
394
- { ...args, first: 5, searchType: SearchType.Person },
395
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
396
- {} as GraphQLResolveInfo
397
- )
354
+ resolveSearch(undefined, { ...args, first: 5, searchType: SearchType.Person }, context, info)
398
355
  ).resolves.toMatchSnapshot();
399
356
  });
400
357
  });
401
358
  });
402
359
 
403
360
  describe('resolveSearch > tv', () => {
404
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
405
- const setCacheMetadata = jest.fn();
406
-
407
361
  const args = {
408
362
  query: 'true detective',
409
363
  };
410
364
 
411
- beforeAll(() => {
412
- restClient = createRestClient();
413
- });
414
-
415
365
  beforeEach(() => {
416
366
  mockedFetch.mockGetOnce(buildEndpoint(SEARCH_PATH, { type: SearchType.Tv.toLowerCase() }, { ...args, page: 1 }), {
417
367
  body: searchTV,
@@ -421,19 +371,15 @@ describe('resolveSearch > tv', () => {
421
371
 
422
372
  afterEach(async () => {
423
373
  mockedFetch.mockReset();
424
- await restClient.cache?.clear();
374
+ await context.restClient.cache?.clear();
425
375
  await cursorCache.clear();
376
+ jest.clearAllMocks();
426
377
  });
427
378
 
428
379
  describe('when the first 5 are requested', () => {
429
380
  it('should return the correct response', async () => {
430
381
  await expect(
431
- resolveSearch(
432
- undefined,
433
- { ...args, first: 5, searchType: SearchType.Tv },
434
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
435
- {} as GraphQLResolveInfo
436
- )
382
+ resolveSearch(undefined, { ...args, first: 5, searchType: SearchType.Tv }, context, info)
437
383
  ).resolves.toMatchSnapshot();
438
384
  });
439
385
  });
@@ -1,13 +1,18 @@
1
1
  import { Core } from '@cachemap/core';
2
2
  import { init as map } from '@cachemap/map';
3
3
  import { init as reaper } from '@cachemap/reaper';
4
- import { type Getters, makeConnectionResolver, removeConnectionInputOptions } from '@graphql-box/connection-resolver';
5
- import { type QuerySearchArgs } from '@tmdb-graphql-api/schema/types';
4
+ import {
5
+ type CreateResourceResolver,
6
+ type Getters,
7
+ makeConnectionResolver,
8
+ removeConnectionInputOptions,
9
+ } from '@graphql-box/connection-resolver';
10
+ import { type QuerySearchArgs, SearchType } from '@tmdb-graphql-api/schema/types';
6
11
  import { encode } from 'js-base64';
7
12
  import { capitalize } from 'lodash-es';
8
13
  import { SEARCH } from '../constants.ts';
9
14
  import { snakeCasePropNames } from '../helpers/snakeCasePropNames.ts';
10
- import { type Context, type RawSearch, type RawSearchResource, type SearchMediaType } from '../types.ts';
15
+ import { type Context, type RawSearch, type RawSearchType } from '../types.ts';
11
16
 
12
17
  /* eslint-disable camelcase */
13
18
 
@@ -20,33 +25,48 @@ export const createMakeCursors = (_obj: undefined, args: QuerySearchArgs) => {
20
25
  };
21
26
  };
22
27
 
23
- export const createResourceResolver = (
24
- _obj: undefined,
25
- args: QuerySearchArgs,
26
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context
28
+ export const createResourceResolver: CreateResourceResolver<undefined, QuerySearchArgs, Context, RawSearch> = (
29
+ _obj,
30
+ args,
31
+ { requestID, restClient, tmdbGuestSessionId }
27
32
  ) => {
28
33
  const { searchType, ...rest } = removeConnectionInputOptions(args);
29
34
 
30
35
  return async ({ page }: { page: number }) => {
31
- const result = await restClient.search<RawSearchResource>(
36
+ const { data, errors, headers } = await restClient.search<RawSearch>(
32
37
  {
33
- pathTemplateData: { type: (searchType ?? 'MULTI').toLowerCase() },
38
+ pathTemplateData: { type: (searchType ?? SearchType.Multi).toLowerCase() },
34
39
  queryParams: { ...snakeCasePropNames(rest), page },
35
40
  },
36
41
  { requestID, tmdbGuestSessionId }
37
42
  );
38
43
 
39
- if (!result.data) {
40
- return result;
44
+ if (!data) {
45
+ return {
46
+ errors,
47
+ headers,
48
+ };
41
49
  }
42
50
 
43
- result.data.results = result.data.results.map(entry => {
44
- entry.media_type = capitalize(entry.media_type ?? (searchType as SearchMediaType)) as SearchMediaType;
51
+ data.results = data.results?.map(entry => {
52
+ let mediaType = entry.media_type;
53
+
54
+ if (!mediaType && searchType && searchType !== SearchType.Multi) {
55
+ mediaType = searchType.toLowerCase();
56
+ }
57
+
58
+ if (mediaType) {
59
+ entry.media_type = capitalize(mediaType);
60
+ }
61
+
45
62
  return entry;
46
63
  });
47
64
 
48
- setCacheMetadata(SEARCH, result.headers);
49
- return result;
65
+ return {
66
+ data,
67
+ errors,
68
+ headers,
69
+ };
50
70
  };
51
71
  };
52
72
 
@@ -57,11 +77,13 @@ export const cursorCache = new Core({
57
77
  type: 'GRAPHQL',
58
78
  });
59
79
 
60
- export const getters: Getters<RawSearchResource, RawSearch & { media_type?: SearchMediaType }> = {
61
- nodes: ({ results }: RawSearchResource) => results,
62
- page: ({ page }: RawSearchResource) => page,
63
- totalPages: ({ total_pages }: RawSearchResource) => total_pages,
64
- totalResults: ({ total_results }: RawSearchResource) => total_results,
80
+ export const getters: Getters<RawSearch, RawSearchType & { media_type?: Capitalize<Lowercase<SearchType>> }> = {
81
+ // @ts-expect-error nested identifier is optional when
82
+ // it shouldn't be
83
+ nodes: ({ results = [] }) => results,
84
+ page: ({ page = 0 }) => page,
85
+ totalPages: ({ total_pages = 0 }) => total_pages,
86
+ totalResults: ({ total_results = 0 }) => total_results,
65
87
  };
66
88
 
67
89
  export const resolveSearch = makeConnectionResolver({
@@ -9,6 +9,7 @@ import { mockFetch } from 'fetch-mocked';
9
9
  import { type FetchResponse, type Getta, type ShortcutProperties } from 'getta';
10
10
  import { type GraphQLResolveInfo, OperationTypeNode, parse } from 'graphql';
11
11
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
12
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
12
13
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
13
14
  import { SEASON } from '../constants.ts';
14
15
  import { encodeId } from '../helpers/encodeId.ts';
@@ -18,13 +19,14 @@ import { resolveSeason } from './season.ts';
18
19
  const mockedFetch = mockFetch(jest.fn);
19
20
 
20
21
  describe('resolveSeason >', () => {
21
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
22
- const setCacheMetadata = jest.fn();
23
22
  const id = 1399;
24
23
 
25
- beforeAll(() => {
26
- restClient = createRestClient();
27
- });
24
+ const context = {
25
+ logger: createMockLogger(jest.fn),
26
+ restClient: createRestClient(),
27
+ setCacheMetadata: jest.fn(),
28
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
29
+ } as unknown as Context;
28
30
 
29
31
  beforeEach(() => {
30
32
  mockedFetch.mockGetOnce(buildEndpoint(SEASON_PATH, { id, number: 1 }), {
@@ -34,26 +36,24 @@ describe('resolveSeason >', () => {
34
36
 
35
37
  afterEach(async () => {
36
38
  mockedFetch.mockReset();
37
- await restClient.cache?.clear();
39
+ await context.restClient.cache?.clear();
40
+ jest.clearAllMocks();
38
41
  });
39
42
 
40
43
  it('should return the correct season details', async () => {
41
44
  const operationDefinition = getOperationDefinitions(parse(seasonDetailsQuery()), OperationTypeNode.QUERY)[0]!;
42
45
  const { fieldNode } = getChildFields(operationDefinition, { name: SEASON })![0]!;
46
+ const info = { fieldNodes: [fieldNode] } as unknown as GraphQLResolveInfo;
43
47
 
44
48
  await expect(
45
- resolveSeason(
46
- undefined,
47
- { seasonLookupId: encodeId({ id, seasonNumber: 1 }) },
48
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
49
- { fieldNodes: [fieldNode] } as unknown as GraphQLResolveInfo
50
- )
49
+ resolveSeason(undefined, { id: encodeId({ id, seasonNumber: 1 }) }, context, info)
51
50
  ).resolves.toMatchSnapshot();
52
51
  });
53
52
 
54
53
  it('should request the correct resources when append to response fields are found', async () => {
55
54
  const operationDefinition = getOperationDefinitions(parse(seasonDetailsLgQuery()), OperationTypeNode.QUERY)[0]!;
56
55
  const { fieldNode } = getChildFields(operationDefinition, { name: SEASON })![0]!;
56
+ const info = { fieldNodes: [fieldNode] } as unknown as GraphQLResolveInfo;
57
57
 
58
58
  const seasonFetchMock = jest
59
59
  .fn<(...args: PlainArray) => Promise<FetchResponse>>()
@@ -61,13 +61,12 @@ describe('resolveSeason >', () => {
61
61
 
62
62
  await resolveSeason(
63
63
  undefined,
64
- { seasonLookupId: encodeId({ id, seasonNumber: 1 }) },
64
+ { id: encodeId({ id, seasonNumber: 1 }) },
65
65
  {
66
+ ...context,
66
67
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
67
- setCacheMetadata,
68
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
69
- } as unknown as Context,
70
- { fieldNodes: [fieldNode] } as unknown as GraphQLResolveInfo
68
+ },
69
+ info
71
70
  );
72
71
 
73
72
  expect(seasonFetchMock.mock.calls[0]![0]).toEqual(
@@ -1,11 +1,11 @@
1
1
  import { type QuerySeasonArgs } from '@tmdb-graphql-api/schema/types';
2
- import { GraphQLError, type GraphQLResolveInfo } from 'graphql';
3
2
  import { isUndefined, snakeCase } from 'lodash-es';
4
- import { CAST, CREDITS, CREW, EXTERNAL_IDS, IMAGES, POSTERS, SEASON, TRANSLATIONS, TV, VIDEOS } from '../constants.ts';
3
+ import { CAST, CREDITS, CREW, EXTERNAL_IDS, IMAGES, POSTERS, SEASON, TRANSLATIONS, VIDEOS } from '../constants.ts';
4
+ import { buildObjArgsResolver } from '../helpers/buildObjArgsResolver.ts';
5
5
  import { encodeId } from '../helpers/encodeId.ts';
6
6
  import { getAppendToResponseKeys } from '../helpers/getAppendToResponseKeys.ts';
7
7
  import { getTvIdSeasonAndEpisode } from '../helpers/getTvIdSeasonAndEpisode.ts';
8
- import { type Context, type RawSeason, type RawSeasonWithAppendToResponse } from '../types.ts';
8
+ import { type EnrichedRawSeason, type EnrichedRawSeasonWithAppendToResponse, type RawSeason } from '../types.ts';
9
9
 
10
10
  const appendToResponse = {
11
11
  [CAST]: CREDITS,
@@ -16,32 +16,29 @@ const appendToResponse = {
16
16
  [VIDEOS]: VIDEOS,
17
17
  };
18
18
 
19
- const enrichEpisodeData = (obj: RawSeason) => {
20
- if (obj.episodes) {
21
- for (const episode of obj.episodes) {
22
- episode.tv_show_id = obj.tv_show_id;
23
- }
24
- }
25
- };
26
-
27
- export const resolveSeason = async (
28
- obj: RawSeason | undefined,
29
- args: QuerySeasonArgs,
30
- { fragmentDefinitions, requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context,
31
- { fieldName, fieldNodes }: GraphQLResolveInfo
32
- ) => {
19
+ export const resolveSeason = buildObjArgsResolver<
20
+ EnrichedRawSeason,
21
+ QuerySeasonArgs,
22
+ | (EnrichedRawSeasonWithAppendToResponse & { __headers?: Headers })
23
+ | EnrichedRawSeasonWithAppendToResponse[keyof EnrichedRawSeasonWithAppendToResponse]
24
+ >(SEASON, async (obj, args, ctx, info) => {
25
+ const { fragmentDefinitions, requestID, restClient, tmdbGuestSessionId } = ctx;
26
+ const { fieldName, fieldNodes } = info;
33
27
  const typedFieldName = snakeCase(fieldName) as keyof RawSeason;
34
- const { seasonNumber, tvId } = getTvIdSeasonAndEpisode(obj, args.seasonLookupId);
28
+ const { id, seasonNumber } = getTvIdSeasonAndEpisode(obj, args);
35
29
 
36
30
  if (obj && !isUndefined(obj[typedFieldName])) {
37
- return typedFieldName === 'season_lookup_id' ? encodeId({ seasonNumber, tvId }) : obj[typedFieldName];
31
+ return {
32
+ data: typedFieldName === 'id' ? encodeId({ id, seasonNumber }) : obj[typedFieldName],
33
+ source: 'parentNode',
34
+ };
38
35
  }
39
36
 
40
37
  const appendToResponseKeys = getAppendToResponseKeys(fieldNodes[0]!, appendToResponse, fragmentDefinitions);
41
38
 
42
- const { data, errors, headers } = await restClient.season<RawSeasonWithAppendToResponse>(
39
+ const { data, errors, headers } = await restClient.season<EnrichedRawSeasonWithAppendToResponse>(
43
40
  {
44
- pathTemplateData: { id: tvId, number: seasonNumber },
41
+ pathTemplateData: { id, number: seasonNumber },
45
42
  ...(appendToResponseKeys.length > 0
46
43
  ? {
47
44
  queryParams: {
@@ -53,27 +50,20 @@ export const resolveSeason = async (
53
50
  { requestID, tmdbGuestSessionId }
54
51
  );
55
52
 
56
- if (errors?.length) {
57
- throw new GraphQLError(`Failed to resolve ${TV} show ${tvId} ${SEASON} ${seasonNumber}.`, {
58
- nodes: fieldNodes,
59
- originalError: errors[0],
60
- });
61
- }
62
-
63
- const rawSeason = data!;
64
- rawSeason.season_lookup_id = encodeId({ seasonNumber, tvId });
53
+ const seasonData = {
54
+ ...data,
55
+ episodes: (data?.episodes ?? []).map(episode => ({ ...episode, tv_show_id: Number(id) })),
56
+ id: encodeId({ id, seasonNumber }),
57
+ tv_show_id: Number(id),
58
+ };
65
59
 
66
- if (!rawSeason.tv_show_id) {
67
- rawSeason.tv_show_id = tvId;
68
- }
69
-
70
- enrichEpisodeData(rawSeason);
71
-
72
- if (obj) {
73
- setCacheMetadata(`${SEASON}.${fieldName}`, headers);
74
- return rawSeason[typedFieldName];
75
- }
76
-
77
- setCacheMetadata(SEASON, headers);
78
- return appendToResponseKeys.length > 0 ? { ...rawSeason, __headers: headers } : rawSeason;
79
- };
60
+ return {
61
+ data: obj
62
+ ? seasonData[typedFieldName]
63
+ : appendToResponseKeys.length > 0
64
+ ? { ...seasonData, __headers: headers }
65
+ : seasonData,
66
+ errors,
67
+ headers,
68
+ };
69
+ });