@strapi/plugin-graphql 5.12.1 → 5.12.3

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 (483) hide show
  1. package/dist/admin/index.js +18 -143
  2. package/dist/admin/index.js.map +1 -1
  3. package/dist/admin/index.mjs +14 -141
  4. package/dist/admin/index.mjs.map +1 -1
  5. package/dist/admin/package.json.js +143 -0
  6. package/dist/admin/package.json.js.map +1 -0
  7. package/dist/admin/package.json.mjs +124 -0
  8. package/dist/admin/package.json.mjs.map +1 -0
  9. package/dist/admin/pluginId.js +6 -0
  10. package/dist/admin/pluginId.js.map +1 -0
  11. package/dist/admin/pluginId.mjs +4 -0
  12. package/dist/admin/pluginId.mjs.map +1 -0
  13. package/dist/admin/{chunks/dk-D3k_Atlh.js → translations/dk.json.js} +2 -2
  14. package/dist/admin/translations/dk.json.js.map +1 -0
  15. package/dist/admin/{chunks/dk-Bji21OvY.mjs → translations/dk.json.mjs} +1 -1
  16. package/dist/admin/translations/dk.json.mjs.map +1 -0
  17. package/dist/admin/{chunks/en-DzY_FEd6.js → translations/en.json.js} +2 -2
  18. package/dist/admin/translations/en.json.js.map +1 -0
  19. package/dist/admin/{chunks/en-COko3s6d.mjs → translations/en.json.mjs} +1 -1
  20. package/dist/admin/translations/en.json.mjs.map +1 -0
  21. package/dist/admin/{chunks/es-D02rvX4A.js → translations/es.json.js} +2 -2
  22. package/dist/admin/translations/es.json.js.map +1 -0
  23. package/dist/admin/{chunks/es-BoUVfXlb.mjs → translations/es.json.mjs} +1 -1
  24. package/dist/admin/translations/es.json.mjs.map +1 -0
  25. package/dist/admin/{chunks/fr-D9dcL-gU.js → translations/fr.json.js} +2 -2
  26. package/dist/admin/translations/fr.json.js.map +1 -0
  27. package/dist/admin/{chunks/fr-DFbQQgkK.mjs → translations/fr.json.mjs} +1 -1
  28. package/dist/admin/translations/fr.json.mjs.map +1 -0
  29. package/dist/admin/{chunks/pl-DRSWvr2y.js → translations/pl.json.js} +2 -2
  30. package/dist/admin/translations/pl.json.js.map +1 -0
  31. package/dist/admin/{chunks/pl-Bih5cA3Y.mjs → translations/pl.json.mjs} +1 -1
  32. package/dist/admin/translations/pl.json.mjs.map +1 -0
  33. package/dist/admin/{chunks/ru-zDn7cu6t.js → translations/ru.json.js} +2 -2
  34. package/dist/admin/translations/ru.json.js.map +1 -0
  35. package/dist/admin/{chunks/ru-Bxi2fB6E.mjs → translations/ru.json.mjs} +1 -1
  36. package/dist/admin/translations/ru.json.mjs.map +1 -0
  37. package/dist/admin/{chunks/sv-Dq2aVH0_.js → translations/sv.json.js} +2 -2
  38. package/dist/admin/translations/sv.json.js.map +1 -0
  39. package/dist/admin/{chunks/sv-B2uIJv_a.mjs → translations/sv.json.mjs} +1 -1
  40. package/dist/admin/translations/sv.json.mjs.map +1 -0
  41. package/dist/admin/{chunks/tr-B0yEuVnS.js → translations/tr.json.js} +2 -2
  42. package/dist/admin/translations/tr.json.js.map +1 -0
  43. package/dist/admin/{chunks/tr-DwO6hyQD.mjs → translations/tr.json.mjs} +1 -1
  44. package/dist/admin/translations/tr.json.mjs.map +1 -0
  45. package/dist/admin/{chunks/uk-DJGNjXWk.js → translations/uk.json.js} +2 -2
  46. package/dist/admin/translations/uk.json.js.map +1 -0
  47. package/dist/admin/{chunks/uk-_25RY9BK.mjs → translations/uk.json.mjs} +1 -1
  48. package/dist/admin/translations/uk.json.mjs.map +1 -0
  49. package/dist/admin/{chunks/zh-Hans-DxlDvlSo.js → translations/zh-Hans.json.js} +2 -2
  50. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  51. package/dist/admin/{chunks/zh-Hans-DUab611K.mjs → translations/zh-Hans.json.mjs} +1 -1
  52. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  53. package/dist/admin/{chunks/zh-BkiTjJnf.js → translations/zh.json.js} +2 -2
  54. package/dist/admin/translations/zh.json.js.map +1 -0
  55. package/dist/admin/{chunks/zh-DVvz1qsT.mjs → translations/zh.json.mjs} +1 -1
  56. package/dist/admin/translations/zh.json.mjs.map +1 -0
  57. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  58. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  59. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  60. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  61. package/dist/server/bootstrap.js +180 -0
  62. package/dist/server/bootstrap.js.map +1 -0
  63. package/dist/server/bootstrap.mjs +177 -0
  64. package/dist/server/bootstrap.mjs.map +1 -0
  65. package/dist/server/config/default-config.js +13 -0
  66. package/dist/server/config/default-config.js.map +1 -0
  67. package/dist/server/config/default-config.mjs +11 -0
  68. package/dist/server/config/default-config.mjs.map +1 -0
  69. package/dist/server/config/index.js +10 -0
  70. package/dist/server/config/index.js.map +1 -0
  71. package/dist/server/config/index.mjs +8 -0
  72. package/dist/server/config/index.mjs.map +1 -0
  73. package/dist/server/format-graphql-error.js +60 -0
  74. package/dist/server/format-graphql-error.js.map +1 -0
  75. package/dist/server/format-graphql-error.mjs +58 -0
  76. package/dist/server/format-graphql-error.mjs.map +1 -0
  77. package/dist/server/index.js +6 -3719
  78. package/dist/server/index.js.map +1 -1
  79. package/dist/server/index.mjs +3 -3698
  80. package/dist/server/index.mjs.map +1 -1
  81. package/dist/server/services/builders/dynamic-zones.js +75 -0
  82. package/dist/server/services/builders/dynamic-zones.js.map +1 -0
  83. package/dist/server/services/builders/dynamic-zones.mjs +73 -0
  84. package/dist/server/services/builders/dynamic-zones.mjs.map +1 -0
  85. package/dist/server/services/builders/entity.js +38 -0
  86. package/dist/server/services/builders/entity.js.map +1 -0
  87. package/dist/server/services/builders/entity.mjs +36 -0
  88. package/dist/server/services/builders/entity.mjs.map +1 -0
  89. package/dist/server/services/builders/enums.js +24 -0
  90. package/dist/server/services/builders/enums.js.map +1 -0
  91. package/dist/server/services/builders/enums.mjs +22 -0
  92. package/dist/server/services/builders/enums.mjs.map +1 -0
  93. package/dist/server/services/builders/filters/content-type.js +94 -0
  94. package/dist/server/services/builders/filters/content-type.js.map +1 -0
  95. package/dist/server/services/builders/filters/content-type.mjs +92 -0
  96. package/dist/server/services/builders/filters/content-type.mjs.map +1 -0
  97. package/dist/server/services/builders/filters/index.js +10 -0
  98. package/dist/server/services/builders/filters/index.js.map +1 -0
  99. package/dist/server/services/builders/filters/index.mjs +8 -0
  100. package/dist/server/services/builders/filters/index.mjs.map +1 -0
  101. package/dist/server/services/builders/filters/operators/and.js +17 -0
  102. package/dist/server/services/builders/filters/operators/and.js.map +1 -0
  103. package/dist/server/services/builders/filters/operators/and.mjs +15 -0
  104. package/dist/server/services/builders/filters/operators/and.mjs.map +1 -0
  105. package/dist/server/services/builders/filters/operators/between.js +17 -0
  106. package/dist/server/services/builders/filters/operators/between.js.map +1 -0
  107. package/dist/server/services/builders/filters/operators/between.mjs +15 -0
  108. package/dist/server/services/builders/filters/operators/between.mjs.map +1 -0
  109. package/dist/server/services/builders/filters/operators/contains.js +15 -0
  110. package/dist/server/services/builders/filters/operators/contains.js.map +1 -0
  111. package/dist/server/services/builders/filters/operators/contains.mjs +13 -0
  112. package/dist/server/services/builders/filters/operators/contains.mjs.map +1 -0
  113. package/dist/server/services/builders/filters/operators/containsi.js +15 -0
  114. package/dist/server/services/builders/filters/operators/containsi.js.map +1 -0
  115. package/dist/server/services/builders/filters/operators/containsi.mjs +13 -0
  116. package/dist/server/services/builders/filters/operators/containsi.mjs.map +1 -0
  117. package/dist/server/services/builders/filters/operators/ends-with.js +15 -0
  118. package/dist/server/services/builders/filters/operators/ends-with.js.map +1 -0
  119. package/dist/server/services/builders/filters/operators/ends-with.mjs +13 -0
  120. package/dist/server/services/builders/filters/operators/ends-with.mjs.map +1 -0
  121. package/dist/server/services/builders/filters/operators/eq.js +22 -0
  122. package/dist/server/services/builders/filters/operators/eq.js.map +1 -0
  123. package/dist/server/services/builders/filters/operators/eq.mjs +20 -0
  124. package/dist/server/services/builders/filters/operators/eq.mjs.map +1 -0
  125. package/dist/server/services/builders/filters/operators/eqi.js +15 -0
  126. package/dist/server/services/builders/filters/operators/eqi.js.map +1 -0
  127. package/dist/server/services/builders/filters/operators/eqi.mjs +13 -0
  128. package/dist/server/services/builders/filters/operators/eqi.mjs.map +1 -0
  129. package/dist/server/services/builders/filters/operators/gt.js +15 -0
  130. package/dist/server/services/builders/filters/operators/gt.js.map +1 -0
  131. package/dist/server/services/builders/filters/operators/gt.mjs +13 -0
  132. package/dist/server/services/builders/filters/operators/gt.mjs.map +1 -0
  133. package/dist/server/services/builders/filters/operators/gte.js +15 -0
  134. package/dist/server/services/builders/filters/operators/gte.js.map +1 -0
  135. package/dist/server/services/builders/filters/operators/gte.mjs +13 -0
  136. package/dist/server/services/builders/filters/operators/gte.mjs.map +1 -0
  137. package/dist/server/services/builders/filters/operators/in.js +17 -0
  138. package/dist/server/services/builders/filters/operators/in.js.map +1 -0
  139. package/dist/server/services/builders/filters/operators/in.mjs +15 -0
  140. package/dist/server/services/builders/filters/operators/in.mjs.map +1 -0
  141. package/dist/server/services/builders/filters/operators/index.js +57 -0
  142. package/dist/server/services/builders/filters/operators/index.js.map +1 -0
  143. package/dist/server/services/builders/filters/operators/index.mjs +55 -0
  144. package/dist/server/services/builders/filters/operators/index.mjs.map +1 -0
  145. package/dist/server/services/builders/filters/operators/lt.js +15 -0
  146. package/dist/server/services/builders/filters/operators/lt.js.map +1 -0
  147. package/dist/server/services/builders/filters/operators/lt.mjs +13 -0
  148. package/dist/server/services/builders/filters/operators/lt.mjs.map +1 -0
  149. package/dist/server/services/builders/filters/operators/lte.js +15 -0
  150. package/dist/server/services/builders/filters/operators/lte.js.map +1 -0
  151. package/dist/server/services/builders/filters/operators/lte.mjs +13 -0
  152. package/dist/server/services/builders/filters/operators/lte.mjs.map +1 -0
  153. package/dist/server/services/builders/filters/operators/ne.js +15 -0
  154. package/dist/server/services/builders/filters/operators/ne.js.map +1 -0
  155. package/dist/server/services/builders/filters/operators/ne.mjs +13 -0
  156. package/dist/server/services/builders/filters/operators/ne.mjs.map +1 -0
  157. package/dist/server/services/builders/filters/operators/nei.js +15 -0
  158. package/dist/server/services/builders/filters/operators/nei.js.map +1 -0
  159. package/dist/server/services/builders/filters/operators/nei.mjs +13 -0
  160. package/dist/server/services/builders/filters/operators/nei.mjs.map +1 -0
  161. package/dist/server/services/builders/filters/operators/not-contains.js +15 -0
  162. package/dist/server/services/builders/filters/operators/not-contains.js.map +1 -0
  163. package/dist/server/services/builders/filters/operators/not-contains.mjs +13 -0
  164. package/dist/server/services/builders/filters/operators/not-contains.mjs.map +1 -0
  165. package/dist/server/services/builders/filters/operators/not-containsi.js +15 -0
  166. package/dist/server/services/builders/filters/operators/not-containsi.js.map +1 -0
  167. package/dist/server/services/builders/filters/operators/not-containsi.mjs +13 -0
  168. package/dist/server/services/builders/filters/operators/not-containsi.mjs.map +1 -0
  169. package/dist/server/services/builders/filters/operators/not-in.js +17 -0
  170. package/dist/server/services/builders/filters/operators/not-in.js.map +1 -0
  171. package/dist/server/services/builders/filters/operators/not-in.mjs +15 -0
  172. package/dist/server/services/builders/filters/operators/not-in.mjs.map +1 -0
  173. package/dist/server/services/builders/filters/operators/not-null.js +13 -0
  174. package/dist/server/services/builders/filters/operators/not-null.js.map +1 -0
  175. package/dist/server/services/builders/filters/operators/not-null.mjs +11 -0
  176. package/dist/server/services/builders/filters/operators/not-null.mjs.map +1 -0
  177. package/dist/server/services/builders/filters/operators/not.js +24 -0
  178. package/dist/server/services/builders/filters/operators/not.js.map +1 -0
  179. package/dist/server/services/builders/filters/operators/not.mjs +22 -0
  180. package/dist/server/services/builders/filters/operators/not.mjs.map +1 -0
  181. package/dist/server/services/builders/filters/operators/null.js +13 -0
  182. package/dist/server/services/builders/filters/operators/null.js.map +1 -0
  183. package/dist/server/services/builders/filters/operators/null.mjs +11 -0
  184. package/dist/server/services/builders/filters/operators/null.mjs.map +1 -0
  185. package/dist/server/services/builders/filters/operators/or.js +17 -0
  186. package/dist/server/services/builders/filters/operators/or.js.map +1 -0
  187. package/dist/server/services/builders/filters/operators/or.mjs +15 -0
  188. package/dist/server/services/builders/filters/operators/or.mjs.map +1 -0
  189. package/dist/server/services/builders/filters/operators/starts-with.js +15 -0
  190. package/dist/server/services/builders/filters/operators/starts-with.js.map +1 -0
  191. package/dist/server/services/builders/filters/operators/starts-with.mjs +13 -0
  192. package/dist/server/services/builders/filters/operators/starts-with.mjs.map +1 -0
  193. package/dist/server/services/builders/generic-morph.js +38 -0
  194. package/dist/server/services/builders/generic-morph.js.map +1 -0
  195. package/dist/server/services/builders/generic-morph.mjs +36 -0
  196. package/dist/server/services/builders/generic-morph.mjs.map +1 -0
  197. package/dist/server/services/builders/index.js +75 -0
  198. package/dist/server/services/builders/index.js.map +1 -0
  199. package/dist/server/services/builders/index.mjs +73 -0
  200. package/dist/server/services/builders/index.mjs.map +1 -0
  201. package/dist/server/services/builders/input.js +89 -0
  202. package/dist/server/services/builders/input.js.map +1 -0
  203. package/dist/server/services/builders/input.mjs +87 -0
  204. package/dist/server/services/builders/input.mjs.map +1 -0
  205. package/dist/server/services/builders/mutations/collection-type.js +155 -0
  206. package/dist/server/services/builders/mutations/collection-type.js.map +1 -0
  207. package/dist/server/services/builders/mutations/collection-type.mjs +153 -0
  208. package/dist/server/services/builders/mutations/collection-type.mjs.map +1 -0
  209. package/dist/server/services/builders/mutations/index.js +12 -0
  210. package/dist/server/services/builders/mutations/index.js.map +1 -0
  211. package/dist/server/services/builders/mutations/index.mjs +10 -0
  212. package/dist/server/services/builders/mutations/index.mjs.map +1 -0
  213. package/dist/server/services/builders/mutations/single-type.js +123 -0
  214. package/dist/server/services/builders/mutations/single-type.js.map +1 -0
  215. package/dist/server/services/builders/mutations/single-type.mjs +121 -0
  216. package/dist/server/services/builders/mutations/single-type.mjs.map +1 -0
  217. package/dist/server/services/builders/queries/collection-type.js +152 -0
  218. package/dist/server/services/builders/queries/collection-type.js.map +1 -0
  219. package/dist/server/services/builders/queries/collection-type.mjs +150 -0
  220. package/dist/server/services/builders/queries/collection-type.mjs.map +1 -0
  221. package/dist/server/services/builders/queries/index.js +12 -0
  222. package/dist/server/services/builders/queries/index.js.map +1 -0
  223. package/dist/server/services/builders/queries/index.mjs +10 -0
  224. package/dist/server/services/builders/queries/index.mjs.map +1 -0
  225. package/dist/server/services/builders/queries/single-type.js +70 -0
  226. package/dist/server/services/builders/queries/single-type.js.map +1 -0
  227. package/dist/server/services/builders/queries/single-type.mjs +68 -0
  228. package/dist/server/services/builders/queries/single-type.mjs.map +1 -0
  229. package/dist/server/services/builders/relation-response-collection.js +35 -0
  230. package/dist/server/services/builders/relation-response-collection.js.map +1 -0
  231. package/dist/server/services/builders/relation-response-collection.mjs +33 -0
  232. package/dist/server/services/builders/relation-response-collection.mjs.map +1 -0
  233. package/dist/server/services/builders/resolvers/association.js +74 -0
  234. package/dist/server/services/builders/resolvers/association.js.map +1 -0
  235. package/dist/server/services/builders/resolvers/association.mjs +72 -0
  236. package/dist/server/services/builders/resolvers/association.mjs.map +1 -0
  237. package/dist/server/services/builders/resolvers/component.js +27 -0
  238. package/dist/server/services/builders/resolvers/component.js.map +1 -0
  239. package/dist/server/services/builders/resolvers/component.mjs +25 -0
  240. package/dist/server/services/builders/resolvers/component.mjs.map +1 -0
  241. package/dist/server/services/builders/resolvers/dynamic-zone.js +12 -0
  242. package/dist/server/services/builders/resolvers/dynamic-zone.js.map +1 -0
  243. package/dist/server/services/builders/resolvers/dynamic-zone.mjs +10 -0
  244. package/dist/server/services/builders/resolvers/dynamic-zone.mjs.map +1 -0
  245. package/dist/server/services/builders/resolvers/index.js +20 -0
  246. package/dist/server/services/builders/resolvers/index.js.map +1 -0
  247. package/dist/server/services/builders/resolvers/index.mjs +18 -0
  248. package/dist/server/services/builders/resolvers/index.mjs.map +1 -0
  249. package/dist/server/services/builders/resolvers/pagination.js +29 -0
  250. package/dist/server/services/builders/resolvers/pagination.js.map +1 -0
  251. package/dist/server/services/builders/resolvers/pagination.mjs +27 -0
  252. package/dist/server/services/builders/resolvers/pagination.mjs.map +1 -0
  253. package/dist/server/services/builders/resolvers/query.js +55 -0
  254. package/dist/server/services/builders/resolvers/query.js.map +1 -0
  255. package/dist/server/services/builders/resolvers/query.mjs +53 -0
  256. package/dist/server/services/builders/resolvers/query.mjs.map +1 -0
  257. package/dist/server/services/builders/response-collection.js +50 -0
  258. package/dist/server/services/builders/response-collection.js.map +1 -0
  259. package/dist/server/services/builders/response-collection.mjs +48 -0
  260. package/dist/server/services/builders/response-collection.mjs.map +1 -0
  261. package/dist/server/services/builders/response.js +28 -0
  262. package/dist/server/services/builders/response.js.map +1 -0
  263. package/dist/server/services/builders/response.mjs +26 -0
  264. package/dist/server/services/builders/response.mjs.map +1 -0
  265. package/dist/server/services/builders/type.js +347 -0
  266. package/dist/server/services/builders/type.js.map +1 -0
  267. package/dist/server/services/builders/type.mjs +345 -0
  268. package/dist/server/services/builders/type.mjs.map +1 -0
  269. package/dist/server/services/builders/utils.js +113 -0
  270. package/dist/server/services/builders/utils.js.map +1 -0
  271. package/dist/server/services/builders/utils.mjs +111 -0
  272. package/dist/server/services/builders/utils.mjs.map +1 -0
  273. package/dist/server/services/constants.js +139 -0
  274. package/dist/server/services/constants.js.map +1 -0
  275. package/dist/server/services/constants.mjs +137 -0
  276. package/dist/server/services/constants.mjs.map +1 -0
  277. package/dist/server/services/content-api/index.js +184 -0
  278. package/dist/server/services/content-api/index.js.map +1 -0
  279. package/dist/server/services/content-api/index.mjs +182 -0
  280. package/dist/server/services/content-api/index.mjs.map +1 -0
  281. package/dist/server/services/content-api/policy.js +54 -0
  282. package/dist/server/services/content-api/policy.js.map +1 -0
  283. package/dist/server/services/content-api/policy.mjs +52 -0
  284. package/dist/server/services/content-api/policy.mjs.map +1 -0
  285. package/dist/server/services/content-api/register-functions/collection-type.js +41 -0
  286. package/dist/server/services/content-api/register-functions/collection-type.js.map +1 -0
  287. package/dist/server/services/content-api/register-functions/collection-type.mjs +39 -0
  288. package/dist/server/services/content-api/register-functions/collection-type.mjs.map +1 -0
  289. package/dist/server/services/content-api/register-functions/component.js +16 -0
  290. package/dist/server/services/content-api/register-functions/component.js.map +1 -0
  291. package/dist/server/services/content-api/register-functions/component.mjs +14 -0
  292. package/dist/server/services/content-api/register-functions/component.mjs.map +1 -0
  293. package/dist/server/services/content-api/register-functions/dynamic-zones.js +31 -0
  294. package/dist/server/services/content-api/register-functions/dynamic-zones.js.map +1 -0
  295. package/dist/server/services/content-api/register-functions/dynamic-zones.mjs +29 -0
  296. package/dist/server/services/content-api/register-functions/dynamic-zones.mjs.map +1 -0
  297. package/dist/server/services/content-api/register-functions/enums.js +23 -0
  298. package/dist/server/services/content-api/register-functions/enums.js.map +1 -0
  299. package/dist/server/services/content-api/register-functions/enums.mjs +21 -0
  300. package/dist/server/services/content-api/register-functions/enums.mjs.map +1 -0
  301. package/dist/server/services/content-api/register-functions/filters.js +16 -0
  302. package/dist/server/services/content-api/register-functions/filters.js.map +1 -0
  303. package/dist/server/services/content-api/register-functions/filters.mjs +14 -0
  304. package/dist/server/services/content-api/register-functions/filters.mjs.map +1 -0
  305. package/dist/server/services/content-api/register-functions/inputs.js +17 -0
  306. package/dist/server/services/content-api/register-functions/inputs.js.map +1 -0
  307. package/dist/server/services/content-api/register-functions/inputs.mjs +15 -0
  308. package/dist/server/services/content-api/register-functions/inputs.mjs.map +1 -0
  309. package/dist/server/services/content-api/register-functions/internals.js +16 -0
  310. package/dist/server/services/content-api/register-functions/internals.js.map +1 -0
  311. package/dist/server/services/content-api/register-functions/internals.mjs +14 -0
  312. package/dist/server/services/content-api/register-functions/internals.mjs.map +1 -0
  313. package/dist/server/services/content-api/register-functions/polymorphic.js +49 -0
  314. package/dist/server/services/content-api/register-functions/polymorphic.js.map +1 -0
  315. package/dist/server/services/content-api/register-functions/polymorphic.mjs +47 -0
  316. package/dist/server/services/content-api/register-functions/polymorphic.mjs.map +1 -0
  317. package/dist/server/services/content-api/register-functions/scalars.js +15 -0
  318. package/dist/server/services/content-api/register-functions/scalars.js.map +1 -0
  319. package/dist/server/services/content-api/register-functions/scalars.mjs +13 -0
  320. package/dist/server/services/content-api/register-functions/scalars.mjs.map +1 -0
  321. package/dist/server/services/content-api/register-functions/single-type.js +41 -0
  322. package/dist/server/services/content-api/register-functions/single-type.js.map +1 -0
  323. package/dist/server/services/content-api/register-functions/single-type.mjs +39 -0
  324. package/dist/server/services/content-api/register-functions/single-type.mjs.map +1 -0
  325. package/dist/server/services/content-api/wrap-resolvers.js +119 -0
  326. package/dist/server/services/content-api/wrap-resolvers.js.map +1 -0
  327. package/dist/server/services/content-api/wrap-resolvers.mjs +117 -0
  328. package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -0
  329. package/dist/server/services/extension/extension.js +84 -0
  330. package/dist/server/services/extension/extension.js.map +1 -0
  331. package/dist/server/services/extension/extension.mjs +63 -0
  332. package/dist/server/services/extension/extension.mjs.map +1 -0
  333. package/dist/server/services/extension/index.js +8 -0
  334. package/dist/server/services/extension/index.js.map +1 -0
  335. package/dist/server/services/extension/index.mjs +6 -0
  336. package/dist/server/services/extension/index.mjs.map +1 -0
  337. package/dist/server/services/extension/shadow-crud-manager.js +121 -0
  338. package/dist/server/services/extension/shadow-crud-manager.js.map +1 -0
  339. package/dist/server/services/extension/shadow-crud-manager.mjs +119 -0
  340. package/dist/server/services/extension/shadow-crud-manager.mjs.map +1 -0
  341. package/dist/server/services/format/index.js +10 -0
  342. package/dist/server/services/format/index.js.map +1 -0
  343. package/dist/server/services/format/index.mjs +8 -0
  344. package/dist/server/services/format/index.mjs.map +1 -0
  345. package/dist/server/services/format/return-types.js +27 -0
  346. package/dist/server/services/format/return-types.js.map +1 -0
  347. package/dist/server/services/format/return-types.mjs +25 -0
  348. package/dist/server/services/format/return-types.mjs.map +1 -0
  349. package/dist/server/services/index.js +24 -0
  350. package/dist/server/services/index.js.map +1 -0
  351. package/dist/server/services/index.mjs +22 -0
  352. package/dist/server/services/index.mjs.map +1 -0
  353. package/dist/server/services/internals/args/index.js +14 -0
  354. package/dist/server/services/internals/args/index.js.map +1 -0
  355. package/dist/server/services/internals/args/index.mjs +12 -0
  356. package/dist/server/services/internals/args/index.mjs.map +1 -0
  357. package/dist/server/services/internals/args/pagination.js +20 -0
  358. package/dist/server/services/internals/args/pagination.js.map +1 -0
  359. package/dist/server/services/internals/args/pagination.mjs +18 -0
  360. package/dist/server/services/internals/args/pagination.mjs.map +1 -0
  361. package/dist/server/services/internals/args/publication-status.js +14 -0
  362. package/dist/server/services/internals/args/publication-status.js.map +1 -0
  363. package/dist/server/services/internals/args/publication-status.mjs +12 -0
  364. package/dist/server/services/internals/args/publication-status.mjs.map +1 -0
  365. package/dist/server/services/internals/args/sort.js +11 -0
  366. package/dist/server/services/internals/args/sort.js.map +1 -0
  367. package/dist/server/services/internals/args/sort.mjs +9 -0
  368. package/dist/server/services/internals/args/sort.mjs.map +1 -0
  369. package/dist/server/services/internals/helpers/get-enabled-scalars.js +13 -0
  370. package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -0
  371. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs +11 -0
  372. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -0
  373. package/dist/server/services/internals/helpers/index.js +10 -0
  374. package/dist/server/services/internals/helpers/index.js.map +1 -0
  375. package/dist/server/services/internals/helpers/index.mjs +8 -0
  376. package/dist/server/services/internals/helpers/index.mjs.map +1 -0
  377. package/dist/server/services/internals/index.js +16 -0
  378. package/dist/server/services/internals/index.js.map +1 -0
  379. package/dist/server/services/internals/index.mjs +14 -0
  380. package/dist/server/services/internals/index.mjs.map +1 -0
  381. package/dist/server/services/internals/scalars/date.js +18 -0
  382. package/dist/server/services/internals/scalars/date.js.map +1 -0
  383. package/dist/server/services/internals/scalars/date.mjs +15 -0
  384. package/dist/server/services/internals/scalars/date.mjs.map +1 -0
  385. package/dist/server/services/internals/scalars/index.js +17 -0
  386. package/dist/server/services/internals/scalars/index.js.map +1 -0
  387. package/dist/server/services/internals/scalars/index.mjs +15 -0
  388. package/dist/server/services/internals/scalars/index.mjs.map +1 -0
  389. package/dist/server/services/internals/scalars/time.js +38 -0
  390. package/dist/server/services/internals/scalars/time.js.map +1 -0
  391. package/dist/server/services/internals/scalars/time.mjs +36 -0
  392. package/dist/server/services/internals/scalars/time.mjs.map +1 -0
  393. package/dist/server/services/internals/types/delete-mutation-response.js +18 -0
  394. package/dist/server/services/internals/types/delete-mutation-response.js.map +1 -0
  395. package/dist/server/services/internals/types/delete-mutation-response.mjs +16 -0
  396. package/dist/server/services/internals/types/delete-mutation-response.mjs.map +1 -0
  397. package/dist/server/services/internals/types/error.js +32 -0
  398. package/dist/server/services/internals/types/error.js.map +1 -0
  399. package/dist/server/services/internals/types/error.mjs +30 -0
  400. package/dist/server/services/internals/types/error.mjs.map +1 -0
  401. package/dist/server/services/internals/types/filters.js +35 -0
  402. package/dist/server/services/internals/types/filters.js.map +1 -0
  403. package/dist/server/services/internals/types/filters.mjs +33 -0
  404. package/dist/server/services/internals/types/filters.mjs.map +1 -0
  405. package/dist/server/services/internals/types/index.js +30 -0
  406. package/dist/server/services/internals/types/index.js.map +1 -0
  407. package/dist/server/services/internals/types/index.mjs +28 -0
  408. package/dist/server/services/internals/types/index.mjs.map +1 -0
  409. package/dist/server/services/internals/types/pagination.js +24 -0
  410. package/dist/server/services/internals/types/pagination.js.map +1 -0
  411. package/dist/server/services/internals/types/pagination.mjs +22 -0
  412. package/dist/server/services/internals/types/pagination.mjs.map +1 -0
  413. package/dist/server/services/internals/types/publication-status.js +22 -0
  414. package/dist/server/services/internals/types/publication-status.js.map +1 -0
  415. package/dist/server/services/internals/types/publication-status.mjs +20 -0
  416. package/dist/server/services/internals/types/publication-status.mjs.map +1 -0
  417. package/dist/server/services/internals/types/response-collection-meta.js +27 -0
  418. package/dist/server/services/internals/types/response-collection-meta.js.map +1 -0
  419. package/dist/server/services/internals/types/response-collection-meta.mjs +25 -0
  420. package/dist/server/services/internals/types/response-collection-meta.mjs.map +1 -0
  421. package/dist/server/services/type-registry.js +81 -0
  422. package/dist/server/services/type-registry.js.map +1 -0
  423. package/dist/server/services/type-registry.mjs +79 -0
  424. package/dist/server/services/type-registry.mjs.map +1 -0
  425. package/dist/server/services/utils/attributes.js +65 -0
  426. package/dist/server/services/utils/attributes.js.map +1 -0
  427. package/dist/server/services/utils/attributes.mjs +63 -0
  428. package/dist/server/services/utils/attributes.mjs.map +1 -0
  429. package/dist/server/services/utils/index.js +16 -0
  430. package/dist/server/services/utils/index.js.map +1 -0
  431. package/dist/server/services/utils/index.mjs +14 -0
  432. package/dist/server/services/utils/index.mjs.map +1 -0
  433. package/dist/server/services/utils/mappers/entity-to-response-entity.js +16 -0
  434. package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -0
  435. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +14 -0
  436. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -0
  437. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js +95 -0
  438. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -0
  439. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs +93 -0
  440. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -0
  441. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js +15 -0
  442. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -0
  443. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs +13 -0
  444. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -0
  445. package/dist/server/services/utils/mappers/index.js +16 -0
  446. package/dist/server/services/utils/mappers/index.js.map +1 -0
  447. package/dist/server/services/utils/mappers/index.mjs +14 -0
  448. package/dist/server/services/utils/mappers/index.mjs.map +1 -0
  449. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js +23 -0
  450. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -0
  451. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs +21 -0
  452. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -0
  453. package/dist/server/services/utils/naming.js +187 -0
  454. package/dist/server/services/utils/naming.js.map +1 -0
  455. package/dist/server/services/utils/naming.mjs +185 -0
  456. package/dist/server/services/utils/naming.mjs.map +1 -0
  457. package/dist/server/services/utils/playground.js +19 -0
  458. package/dist/server/services/utils/playground.js.map +1 -0
  459. package/dist/server/services/utils/playground.mjs +17 -0
  460. package/dist/server/services/utils/playground.mjs.map +1 -0
  461. package/package.json +6 -6
  462. package/dist/admin/chunks/dk-Bji21OvY.mjs.map +0 -1
  463. package/dist/admin/chunks/dk-D3k_Atlh.js.map +0 -1
  464. package/dist/admin/chunks/en-COko3s6d.mjs.map +0 -1
  465. package/dist/admin/chunks/en-DzY_FEd6.js.map +0 -1
  466. package/dist/admin/chunks/es-BoUVfXlb.mjs.map +0 -1
  467. package/dist/admin/chunks/es-D02rvX4A.js.map +0 -1
  468. package/dist/admin/chunks/fr-D9dcL-gU.js.map +0 -1
  469. package/dist/admin/chunks/fr-DFbQQgkK.mjs.map +0 -1
  470. package/dist/admin/chunks/pl-Bih5cA3Y.mjs.map +0 -1
  471. package/dist/admin/chunks/pl-DRSWvr2y.js.map +0 -1
  472. package/dist/admin/chunks/ru-Bxi2fB6E.mjs.map +0 -1
  473. package/dist/admin/chunks/ru-zDn7cu6t.js.map +0 -1
  474. package/dist/admin/chunks/sv-B2uIJv_a.mjs.map +0 -1
  475. package/dist/admin/chunks/sv-Dq2aVH0_.js.map +0 -1
  476. package/dist/admin/chunks/tr-B0yEuVnS.js.map +0 -1
  477. package/dist/admin/chunks/tr-DwO6hyQD.mjs.map +0 -1
  478. package/dist/admin/chunks/uk-DJGNjXWk.js.map +0 -1
  479. package/dist/admin/chunks/uk-_25RY9BK.mjs.map +0 -1
  480. package/dist/admin/chunks/zh-BkiTjJnf.js.map +0 -1
  481. package/dist/admin/chunks/zh-DVvz1qsT.mjs.map +0 -1
  482. package/dist/admin/chunks/zh-Hans-DUab611K.mjs.map +0 -1
  483. package/dist/admin/chunks/zh-Hans-DxlDvlSo.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../server/src/config/default-config.ts","../../server/src/config/index.ts","../../server/src/format-graphql-error.ts","../../server/src/bootstrap.ts","../../server/src/services/content-api/policy.ts","../../server/src/services/content-api/wrap-resolvers.ts","../../server/src/services/content-api/register-functions/collection-type.ts","../../server/src/services/content-api/register-functions/single-type.ts","../../server/src/services/content-api/register-functions/component.ts","../../server/src/services/content-api/register-functions/polymorphic.ts","../../server/src/services/content-api/register-functions/scalars.ts","../../server/src/services/content-api/register-functions/internals.ts","../../server/src/services/content-api/register-functions/dynamic-zones.ts","../../server/src/services/content-api/register-functions/enums.ts","../../server/src/services/content-api/register-functions/inputs.ts","../../server/src/services/content-api/register-functions/filters.ts","../../server/src/services/content-api/index.ts","../../server/src/services/type-registry.ts","../../server/src/services/utils/mappers/strapi-scalar-to-graphql-scalar.ts","../../server/src/services/utils/mappers/graphql-filters-to-strapi-query.ts","../../server/src/services/utils/mappers/graphql-scalar-to-operators.ts","../../server/src/services/utils/mappers/entity-to-response-entity.ts","../../server/src/services/utils/mappers/index.ts","../../server/src/services/utils/attributes.ts","../../server/src/services/utils/naming.ts","../../server/src/services/utils/playground.ts","../../server/src/services/utils/index.ts","../../server/src/services/constants.ts","../../server/src/services/internals/args/sort.ts","../../server/src/services/internals/args/publication-status.ts","../../server/src/services/internals/args/pagination.ts","../../server/src/services/internals/args/index.ts","../../server/src/services/internals/scalars/time.ts","../../server/src/services/internals/scalars/date.ts","../../server/src/services/internals/scalars/index.ts","../../server/src/services/internals/types/pagination.ts","../../server/src/services/internals/types/response-collection-meta.ts","../../server/src/services/internals/types/delete-mutation-response.ts","../../server/src/services/internals/types/publication-status.ts","../../server/src/services/internals/types/filters.ts","../../server/src/services/internals/types/error.ts","../../server/src/services/internals/types/index.ts","../../server/src/services/internals/helpers/get-enabled-scalars.ts","../../server/src/services/internals/helpers/index.ts","../../server/src/services/internals/index.ts","../../server/src/services/builders/enums.ts","../../server/src/services/builders/dynamic-zones.ts","../../server/src/services/builders/entity.ts","../../server/src/services/builders/type.ts","../../server/src/services/builders/response.ts","../../server/src/services/builders/response-collection.ts","../../server/src/services/builders/relation-response-collection.ts","../../server/src/services/builders/queries/collection-type.ts","../../server/src/services/builders/queries/single-type.ts","../../server/src/services/builders/queries/index.ts","../../server/src/services/builders/mutations/collection-type.ts","../../server/src/services/builders/mutations/single-type.ts","../../server/src/services/builders/mutations/index.ts","../../server/src/services/builders/filters/content-type.ts","../../server/src/services/builders/filters/index.ts","../../server/src/services/builders/input.ts","../../server/src/services/builders/generic-morph.ts","../../server/src/services/builders/resolvers/association.ts","../../server/src/services/builders/resolvers/query.ts","../../server/src/services/builders/resolvers/component.ts","../../server/src/services/builders/resolvers/dynamic-zone.ts","../../server/src/services/builders/resolvers/pagination.ts","../../server/src/services/builders/resolvers/index.ts","../../server/src/services/builders/filters/operators/and.ts","../../server/src/services/builders/filters/operators/or.ts","../../server/src/services/builders/filters/operators/not.ts","../../server/src/services/builders/filters/operators/eq.ts","../../server/src/services/builders/filters/operators/eqi.ts","../../server/src/services/builders/filters/operators/ne.ts","../../server/src/services/builders/filters/operators/nei.ts","../../server/src/services/builders/filters/operators/starts-with.ts","../../server/src/services/builders/filters/operators/ends-with.ts","../../server/src/services/builders/filters/operators/contains.ts","../../server/src/services/builders/filters/operators/not-contains.ts","../../server/src/services/builders/filters/operators/containsi.ts","../../server/src/services/builders/filters/operators/not-containsi.ts","../../server/src/services/builders/filters/operators/gt.ts","../../server/src/services/builders/filters/operators/gte.ts","../../server/src/services/builders/filters/operators/lt.ts","../../server/src/services/builders/filters/operators/lte.ts","../../server/src/services/builders/filters/operators/null.ts","../../server/src/services/builders/filters/operators/not-null.ts","../../server/src/services/builders/filters/operators/in.ts","../../server/src/services/builders/filters/operators/not-in.ts","../../server/src/services/builders/filters/operators/between.ts","../../server/src/services/builders/filters/operators/index.ts","../../server/src/services/builders/utils.ts","../../server/src/services/builders/index.ts","../../server/src/services/extension/shadow-crud-manager.ts","../../server/src/services/extension/extension.ts","../../server/src/services/format/return-types.ts","../../server/src/services/format/index.ts","../../server/src/services/index.ts","../../server/src/index.ts"],"sourcesContent":["export default {\n shadowCRUD: true,\n endpoint: '/graphql',\n subscriptions: false,\n maxLimit: -1,\n apolloServer: {},\n v4CompatibilityMode: process.env.STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE ?? false,\n};\n","import defaultConfig from './default-config';\n\nexport const config = {\n default: defaultConfig,\n};\n","import { toUpper, snakeCase, pick, isEmpty } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport { unwrapResolverError } from '@apollo/server/errors';\nimport { GraphQLError, type GraphQLFormattedError } from 'graphql';\n\nconst { HttpError, ForbiddenError, UnauthorizedError, ApplicationError, ValidationError } = errors;\n\nconst formatToCode = (name: string) => `STRAPI_${toUpper(snakeCase(name))}`;\nconst formatErrorToExtension = (error: any) => ({\n error: pick(['name', 'message', 'details'])(error),\n});\n\nfunction createFormattedError(\n formattedError: GraphQLFormattedError,\n message: string,\n code: string,\n originalError: unknown\n) {\n const options = {\n ...formattedError,\n extensions: {\n ...formattedError.extensions,\n ...formatErrorToExtension(originalError),\n code,\n },\n };\n\n return new GraphQLError(message, options);\n}\n\n/**\n * The handler for Apollo Server v4's formatError config option\n *\n * Intercepts specific Strapi error types to send custom error response codes in the GraphQL response\n */\nexport function formatGraphqlError(formattedError: GraphQLFormattedError, error: unknown) {\n const originalError = unwrapResolverError(error);\n\n // If this error doesn't have an associated originalError, it\n if (isEmpty(originalError)) {\n return formattedError;\n }\n\n const { message = '', name = 'UNKNOWN' } = originalError as Error;\n\n if (originalError instanceof ForbiddenError || originalError instanceof UnauthorizedError) {\n return createFormattedError(formattedError, message, 'FORBIDDEN', originalError);\n }\n\n if (originalError instanceof ValidationError) {\n return createFormattedError(formattedError, message, 'BAD_USER_INPUT', originalError);\n }\n\n if (originalError instanceof ApplicationError || originalError instanceof HttpError) {\n const errorName = formatToCode(name);\n return createFormattedError(formattedError, message, errorName, originalError);\n }\n\n if (originalError instanceof GraphQLError) {\n return formattedError;\n }\n\n // else if originalError doesn't appear to be from Strapi or GraphQL..\n\n // Log the error\n strapi.log.error(originalError);\n\n // Create a generic 500 to send so we don't risk leaking any data\n return createFormattedError(\n new GraphQLError('Internal Server Error'),\n 'Internal Server Error',\n 'INTERNAL_SERVER_ERROR',\n originalError\n );\n}\n","import { isEmpty, mergeWith, isArray, isObject, isFunction } from 'lodash/fp';\nimport { ApolloServer, type ApolloServerPlugin, type ApolloServerOptions } from '@apollo/server';\nimport {\n ApolloServerPluginLandingPageLocalDefault,\n ApolloServerPluginLandingPageProductionDefault,\n} from '@apollo/server/plugin/landingPage/default';\nimport { koaMiddleware } from '@as-integrations/koa';\nimport depthLimit from 'graphql-depth-limit';\nimport bodyParser from 'koa-bodyparser';\nimport cors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\nimport type { BaseContext, DefaultContextExtends, DefaultStateExtends } from 'koa';\n\nimport { formatGraphqlError } from './format-graphql-error';\n\nconst merge = mergeWith((a, b) => {\n if (isArray(a) && isArray(b)) {\n return a.concat(b);\n }\n});\n\nexport const determineLandingPage = (strapi: Core.Strapi) => {\n const { config } = strapi.plugin('graphql');\n const utils = strapi.plugin('graphql').service('utils');\n\n /**\n * configLanding page may be one of the following:\n *\n * - true: always use \"playground\" even in production\n * - false: never show \"playground\" even in non-production\n * - undefined: default Apollo behavior (hide playground on production)\n * - a function that returns an Apollo plugin that implements renderLandingPage\n ** */\n const configLandingPage = config('landingPage');\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n const localLanding = () => {\n strapi.log.debug('Apollo landing page: local');\n utils.playground.setEnabled(true);\n return ApolloServerPluginLandingPageLocalDefault();\n };\n\n const prodLanding = () => {\n strapi.log.debug('Apollo landing page: production');\n utils.playground.setEnabled(false);\n return ApolloServerPluginLandingPageProductionDefault();\n };\n\n const userLanding = (userFunction: (strapi?: Core.Strapi) => ApolloServerPlugin | boolean) => {\n strapi.log.debug('Apollo landing page: from user-defined function...');\n const result = userFunction(strapi);\n if (result === true) {\n return localLanding();\n }\n if (result === false) {\n return prodLanding();\n }\n strapi.log.debug('Apollo landing page: user-defined');\n return result;\n };\n\n // DEPRECATED, remove in Strapi v6\n const playgroundAlways = config('playgroundAlways');\n if (playgroundAlways !== undefined) {\n strapi.log.warn(\n 'The graphql config playgroundAlways is deprecated. This will be removed in Strapi 6. Please use landingPage instead. '\n );\n }\n if (playgroundAlways === false) {\n strapi.log.warn(\n 'graphql config playgroundAlways:false has no effect, please use landingPage:false to disable Graphql Playground in all environments'\n );\n }\n\n if (playgroundAlways || configLandingPage === true) {\n return localLanding();\n }\n\n // if landing page has been disabled, use production\n if (configLandingPage === false) {\n return prodLanding();\n }\n\n // If user did not define any settings, use our defaults\n if (configLandingPage === undefined) {\n return isProduction ? prodLanding() : localLanding();\n }\n\n // if user provided a landing page function, return that\n if (isFunction(configLandingPage)) {\n return userLanding(configLandingPage);\n }\n\n // If no other setting could be found, default to production settings\n strapi.log.warn(\n 'Your Graphql landing page has been disabled because there is a problem with your Graphql settings'\n );\n return prodLanding();\n};\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n // Generate the GraphQL schema for the content API\n const schema = strapi.plugin('graphql').service('content-api').buildSchema();\n\n if (isEmpty(schema)) {\n strapi.log.warn('The GraphQL schema has not been generated because it is empty');\n\n return;\n }\n\n const { config } = strapi.plugin('graphql');\n\n const path: string = config('endpoint');\n\n const landingPage = determineLandingPage(strapi);\n\n type CustomOptions = {\n cors: boolean;\n uploads: boolean;\n bodyParserConfig: boolean;\n };\n\n const defaultServerConfig: ApolloServerOptions<BaseContext> & CustomOptions = {\n // Schema\n schema,\n\n // Validation\n validationRules: [depthLimit(config('depthLimit') as number) as any],\n\n // Errors\n formatError: formatGraphqlError,\n\n // Misc\n cors: false,\n uploads: false,\n bodyParserConfig: true,\n // send 400 http status instead of 200 for input validation errors\n status400ForVariableCoercionErrors: true,\n plugins: [landingPage],\n\n cache: 'bounded' as const,\n };\n\n const serverConfig = merge(\n defaultServerConfig,\n config('apolloServer')\n ) as ApolloServerOptions<BaseContext> & CustomOptions;\n\n // Create a new Apollo server\n const server = new ApolloServer(serverConfig);\n\n try {\n // server.start() must be called before using server.applyMiddleware()\n await server.start();\n } catch (error) {\n if (error instanceof Error) {\n strapi.log.error('Failed to start the Apollo server', error.message);\n }\n\n throw error;\n }\n\n // Create the route handlers for Strapi\n const handler: Core.MiddlewareHandler[] = [];\n\n // add cors middleware\n if (cors) {\n handler.push(cors());\n }\n\n // add koa bodyparser middleware\n if (isObject(serverConfig.bodyParserConfig)) {\n handler.push(bodyParser(serverConfig.bodyParserConfig));\n } else if (serverConfig.bodyParserConfig) {\n handler.push(bodyParser());\n } else {\n strapi.log.debug('Body parser has been disabled for Apollo server');\n }\n\n // add the Strapi auth middleware\n handler.push((ctx, next) => {\n ctx.state.route = {\n info: {\n // Indicate it's a content API route\n type: 'content-api',\n },\n };\n\n const isPlaygroundRequest =\n ctx.request.method === 'GET' &&\n ctx.request.url === path && // Matches the GraphQL endpoint\n strapi.plugin('graphql').service('utils').playground.isEnabled() && // Only allow if the Playground is enabled\n ctx.request.header.accept?.includes('text/html'); // Specific to Playground UI loading\n\n // Skip authentication for the GraphQL Playground UI\n if (isPlaygroundRequest) {\n return next();\n }\n\n return strapi.auth.authenticate(ctx, next);\n });\n\n // add the graphql server for koa\n handler.push(\n koaMiddleware<DefaultStateExtends, DefaultContextExtends>(server, {\n // Initialize loaders for this request.\n context: async ({ ctx }) => ({\n state: ctx.state,\n koaContext: ctx,\n }),\n })\n );\n\n // now that handlers are set up, add the graphql route to our apollo server\n strapi.server.routes([\n {\n method: 'ALL',\n path,\n handler,\n config: {\n auth: false,\n },\n },\n ]);\n\n // Register destroy behavior\n // We're doing it here instead of exposing a destroy method to the strapi-server.js\n // file since we need to have access to the ApolloServer instance\n strapi.plugin('graphql').destroy = async () => {\n await server.stop();\n };\n}\n","import { propOr } from 'lodash/fp';\nimport { GraphQLFieldResolver, GraphQLResolveInfo } from 'graphql';\nimport { policy as policyUtils, errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nconst { PolicyError } = errors;\n\nconst getPoliciesConfig = propOr([], 'policies');\n\nconst createPoliciesMiddleware = (resolverConfig: any, { strapi }: { strapi: Core.Strapi }) => {\n const resolverPolicies = getPoliciesConfig(resolverConfig);\n const policies = strapi.get('policies').resolve(resolverPolicies, {});\n\n return async (\n resolve: GraphQLFieldResolver<any, any>,\n parent: any,\n args: any,\n context: any,\n info: GraphQLResolveInfo\n ) => {\n // Create a graphql policy context\n const policyContext = createGraphQLPolicyContext(parent, args, context, info);\n\n // Run policies & throw an error if one of them fails\n for (const { handler, config } of policies) {\n const result = await handler(policyContext, config, { strapi });\n\n if (![true, undefined].includes(result)) {\n throw new PolicyError();\n }\n }\n\n return resolve(parent, args, context, info);\n };\n};\n\nconst createGraphQLPolicyContext = (\n parent: any,\n args: any,\n context: any,\n info: GraphQLResolveInfo\n) => {\n const policyContext = {\n get parent() {\n return parent;\n },\n\n get args() {\n return args;\n },\n\n get context() {\n return context;\n },\n\n get info() {\n return info;\n },\n\n get state() {\n return this.context.state;\n },\n\n get http() {\n return this.context.koaContext;\n },\n };\n\n return policyUtils.createPolicyContext('graphql', policyContext);\n};\n\nexport { createPoliciesMiddleware };\n","import { get, getOr, isFunction, first, isNil } from 'lodash/fp';\nimport {\n GraphQLObjectType,\n GraphQLResolveInfo,\n GraphQLSchema,\n GraphQLFieldResolver,\n} from 'graphql';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport { createPoliciesMiddleware } from './policy';\n\nconst { ForbiddenError } = errors;\n\nconst introspectionQueries = [\n '__Schema',\n '__Type',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n];\n\ntype GraphQLMiddleware = (\n resolve: GraphQLFieldResolver<any, any>,\n parents: unknown,\n args: unknown,\n context: unknown,\n info: GraphQLResolveInfo\n) => any;\n\n/**\n * Get & parse middlewares definitions from the resolver's config\n * @param {object} resolverConfig\n * @param {object} strapi\n * @return {function[]}\n */\nconst parseMiddlewares = (resolverConfig: any, strapi: Core.Strapi): GraphQLMiddleware[] => {\n const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);\n\n // TODO: [v4] to factorize with compose endpoints (routes)\n return resolverMiddlewares.map(\n (middleware: string | Core.MiddlewareHandler | { name: string; options: any }) => {\n if (isFunction(middleware)) {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware);\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return strapi.middleware(name)(options, { strapi });\n }\n\n throw new Error(\n `Invalid middleware type, expected (function,string,object), received ${typeof middleware}`\n );\n }\n );\n};\n\n/**\n * Wrap the schema's resolvers if they've been\n * customized using the GraphQL extension service\n * @param {object} options\n * @param {GraphQLSchema} options.schema\n * @param {object} options.strapi\n * @param {object} options.extension\n * @return {GraphQLSchema}\n */\nconst wrapResolvers = ({\n schema,\n strapi,\n extension = {},\n}: {\n schema: GraphQLSchema;\n strapi: Core.Strapi;\n extension: any;\n}) => {\n // Get all the registered resolvers configuration\n const { resolversConfig = {} } = extension;\n\n // Fields filters\n const isValidFieldName = (field: string) => !field.startsWith('__');\n\n const typeMap = schema.getTypeMap();\n\n Object.entries(typeMap).forEach(([type, definition]) => {\n const isGraphQLObjectType = definition instanceof GraphQLObjectType;\n const isIgnoredType = introspectionQueries.includes(type);\n\n if (!isGraphQLObjectType || isIgnoredType) {\n return;\n }\n\n const fields = definition.getFields();\n const fieldsToProcess = Object.entries(fields).filter(([field]) => isValidFieldName(field));\n\n for (const [fieldName, fieldDefinition] of fieldsToProcess) {\n const defaultResolver = get(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = getOr({}, path, resolversConfig);\n\n const { resolve: baseResolver = defaultResolver } = fieldDefinition;\n\n // Parse & initialize the middlewares\n const middlewares = parseMiddlewares(resolverConfig, strapi);\n\n // Generate the policy middleware\n const policyMiddleware = createPoliciesMiddleware(resolverConfig, { strapi });\n\n // Add the policyMiddleware at the end of the middlewares collection\n middlewares.push(policyMiddleware);\n\n // Bind every middleware to the next one\n const boundMiddlewares = middlewares.map((middleware, index, collection) => {\n return (parents: unknown, args: unknown, context: unknown, info: GraphQLResolveInfo) =>\n middleware(\n // Make sure the last middleware in the list calls the baseResolver\n index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1],\n parents,\n args,\n context,\n info\n );\n });\n\n /**\n * GraphQL authorization flow\n * @param {object} context\n * @return {Promise<void>}\n */\n const authorize = async ({ context }: any) => {\n const authConfig = get('auth', resolverConfig);\n const authContext = get('state.auth', context);\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = !isNil(authConfig);\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch (error) {\n throw new ForbiddenError();\n }\n }\n };\n\n /**\n * Base resolver wrapper that handles authorization, middlewares & policies\n * @return {Promise<any>}\n */\n fieldDefinition.resolve = async (parent, args, context, info) => {\n await authorize({ context });\n\n // Execute middlewares (including the policy middleware which will always be included)\n return first(boundMiddlewares)!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n","import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerCollectionType = (\n contentType: Struct.CollectionTypeSchema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { KINDS } = getService('constants');\n\n const extension = getService('extension');\n\n // Types name (as string)\n const types = {\n base: naming.getTypeName(contentType),\n entity: naming.getEntityName(contentType),\n response: naming.getEntityResponseName(contentType),\n responseCollection: naming.getEntityResponseCollectionName(contentType),\n relationResponseCollection: naming.getRelationResponseCollectionName(contentType),\n queries: naming.getEntityQueriesTypeName(contentType),\n mutations: naming.getEntityMutationsTypeName(contentType),\n };\n\n const getConfig = (kind: string) => ({ kind, contentType });\n\n // Type definition\n registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));\n\n // Higher level entity definition\n registry.register(\n types.entity,\n builders.buildEntityDefinition(contentType),\n getConfig(KINDS.entity)\n );\n\n // Responses definition\n registry.register(\n types.response,\n builders.buildResponseDefinition(contentType),\n getConfig(KINDS.entityResponse)\n );\n\n registry.register(\n types.responseCollection,\n builders.buildResponseCollectionDefinition(contentType),\n getConfig(KINDS.entityResponseCollection)\n );\n\n registry.register(\n types.relationResponseCollection,\n builders.buildRelationResponseCollectionDefinition(contentType),\n getConfig(KINDS.relationResponseCollection)\n );\n\n if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {\n // Query extensions\n registry.register(\n types.queries,\n builders.buildCollectionTypeQueries(contentType),\n getConfig(KINDS.query)\n );\n }\n\n if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {\n // Mutation extensions\n registry.register(\n types.mutations,\n builders.buildCollectionTypeMutations(contentType),\n getConfig(KINDS.mutation)\n );\n }\n};\n\nexport { registerCollectionType };\n","import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerSingleType = (\n contentType: Struct.SingleTypeSchema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { KINDS } = getService('constants');\n\n const extension = getService('extension');\n\n const types = {\n base: naming.getTypeName(contentType),\n entity: naming.getEntityName(contentType),\n response: naming.getEntityResponseName(contentType),\n responseCollection: naming.getEntityResponseCollectionName(contentType),\n relationResponseCollection: naming.getRelationResponseCollectionName(contentType),\n queries: naming.getEntityQueriesTypeName(contentType),\n mutations: naming.getEntityMutationsTypeName(contentType),\n };\n\n const getConfig = (kind: string) => ({ kind, contentType });\n\n // Single type's definition\n registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));\n\n // Higher level entity definition\n registry.register(\n types.entity,\n builders.buildEntityDefinition(contentType),\n getConfig(KINDS.entity)\n );\n\n // Responses definition\n registry.register(\n types.response,\n builders.buildResponseDefinition(contentType),\n getConfig(KINDS.entityResponse)\n );\n\n // Response collection definition\n registry.register(\n types.responseCollection,\n builders.buildResponseCollectionDefinition(contentType),\n getConfig(KINDS.entityResponseCollection)\n );\n\n registry.register(\n types.relationResponseCollection,\n builders.buildRelationResponseCollectionDefinition(contentType),\n getConfig(KINDS.relationResponseCollection)\n );\n\n if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {\n // Queries\n registry.register(\n types.queries,\n builders.buildSingleTypeQueries(contentType),\n getConfig(KINDS.query)\n );\n }\n\n if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {\n // Mutations\n registry.register(\n types.mutations,\n builders.buildSingleTypeMutations(contentType),\n getConfig(KINDS.mutation)\n );\n }\n};\n\nexport { registerSingleType };\n","import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerComponent = (\n contentType: Struct.ComponentSchema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { getComponentName } = getService('utils').naming;\n const { KINDS } = getService('constants');\n\n const name = getComponentName(contentType);\n const definition = builders.buildTypeDefinition(contentType);\n\n registry.register(name, definition, { kind: KINDS.component, contentType });\n};\n\nexport { registerComponent };\n","import { unionType } from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nconst registerPolymorphicContentType = (\n contentType: Struct.Schema,\n { registry, strapi }: Context\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const {\n naming,\n attributes: { isMorphRelation },\n } = getService('utils');\n const { KINDS } = getService('constants');\n\n const { attributes = {} } = contentType;\n\n // Isolate its polymorphic attributes\n const morphAttributes = Object.entries(attributes).filter(([, attribute]) =>\n isMorphRelation(attribute)\n );\n\n // For each one of those polymorphic attribute\n for (const [attributeName, attribute] of morphAttributes) {\n const name = naming.getMorphRelationTypeName(contentType, attributeName);\n const { target } = attribute as any;\n\n // Ignore those whose target is not an array\n if (!Array.isArray(target)) {\n continue;\n }\n\n // Transform target UIDs into types names\n const members = target\n // Get content types definitions\n .map((uid) => strapi.getModel(uid))\n // Resolve types names\n .map((contentType) => naming.getTypeName(contentType));\n\n // Register the new polymorphic union type\n registry.register(\n name,\n\n unionType({\n name,\n\n resolveType(obj) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t) {\n t.members(...members);\n },\n }),\n\n { kind: KINDS.morph, contentType, attributeName }\n );\n }\n};\n\nexport { registerPolymorphicContentType };\n","import type { Context } from '../../types';\n\nconst registerScalars = ({ registry, strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { scalars } = getService('internals');\n const { KINDS } = getService('constants');\n\n Object.entries(scalars).forEach(([name, definition]) => {\n registry.register(name, definition, { kind: KINDS.scalar });\n });\n};\n\nexport { registerScalars };\n","import type { Context } from '../../types';\n\nconst registerInternals = ({ registry, strapi }: Context) => {\n const { buildInternalTypes } = strapi.plugin('graphql').service('internals');\n\n const internalTypes = buildInternalTypes({ strapi });\n\n for (const [kind, definitions] of Object.entries(internalTypes)) {\n registry.registerMany(Object.entries(definitions as any), { kind });\n }\n};\n\nexport { registerInternals };\n","import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerDynamicZonesDefinition = (\n contentType: Struct.Schema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const {\n naming,\n attributes: { isDynamicZone },\n } = getService('utils');\n const { KINDS } = getService('constants');\n\n const { attributes } = contentType;\n\n const dynamicZoneAttributes = Object.keys(attributes).filter((attributeName) =>\n isDynamicZone(attributes[attributeName])\n );\n\n for (const attributeName of dynamicZoneAttributes) {\n const attribute = attributes[attributeName];\n const dzName = naming.getDynamicZoneName(contentType, attributeName);\n const dzInputName = naming.getDynamicZoneInputName(contentType, attributeName);\n\n const [type, input] = builders.buildDynamicZoneDefinition(attribute, dzName, dzInputName);\n\n const baseConfig = {\n contentType,\n attributeName,\n attribute,\n };\n\n registry.register(dzName, type, { kind: KINDS.dynamicZone, ...baseConfig });\n registry.register(dzInputName, input, { kind: KINDS.input, ...baseConfig });\n }\n};\n\nexport { registerDynamicZonesDefinition };\n","import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerEnumsDefinition = (\n contentType: Struct.Schema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const {\n naming,\n attributes: { isEnumeration },\n } = getService('utils');\n const { KINDS } = getService('constants');\n\n const { attributes } = contentType;\n\n const enumAttributes = Object.keys(attributes).filter((attributeName) =>\n isEnumeration(attributes[attributeName])\n );\n\n for (const attributeName of enumAttributes) {\n const attribute = attributes[attributeName];\n\n const enumName = naming.getEnumName(contentType, attributeName);\n const enumDefinition = builders.buildEnumTypeDefinition(attribute, enumName);\n\n registry.register(enumName, enumDefinition, {\n kind: KINDS.enum,\n contentType,\n attributeName,\n attribute,\n });\n }\n};\n\nexport { registerEnumsDefinition };\n","import type { Core, Struct } from '@strapi/types';\nimport { type TypeRegistry } from '../../type-registry';\n\nconst registerInputsDefinition = (\n contentType: Struct.Schema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { getComponentInputName, getContentTypeInputName } = getService('utils').naming;\n const { KINDS } = getService('constants');\n\n const { modelType } = contentType;\n\n const type = (modelType === 'component' ? getComponentInputName : getContentTypeInputName).call(\n null,\n contentType\n );\n\n const definition = builders.buildInputType(contentType);\n\n registry.register(type, definition, { kind: KINDS.input, contentType });\n};\n\nexport { registerInputsDefinition };\n","import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerFiltersDefinition = (\n contentType: Struct.Schema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { getFiltersInputTypeName } = getService('utils').naming;\n const { KINDS } = getService('constants');\n\n const type = getFiltersInputTypeName(contentType);\n const definition = builders.buildContentTypeFilters(contentType);\n\n registry.register(type, definition, { kind: KINDS.filtersInput, contentType });\n};\n\nexport { registerFiltersDefinition };\n","import { pruneSchema } from '@graphql-tools/utils';\nimport { makeSchema } from 'nexus';\nimport { prop, startsWith } from 'lodash/fp';\nimport type * as Nexus from 'nexus';\nimport type { Core, Struct } from '@strapi/types';\n\nimport { wrapResolvers } from './wrap-resolvers';\nimport {\n registerSingleType,\n registerCollectionType,\n registerComponent,\n registerScalars,\n registerInternals,\n registerPolymorphicContentType,\n registerEnumsDefinition,\n registerInputsDefinition,\n registerFiltersDefinition,\n registerDynamicZonesDefinition,\n} from './register-functions';\nimport { TypeRegistry } from '../type-registry';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { mergeSchemas, addResolversToSchema } = require('@graphql-tools/schema');\n\n const { service: getGraphQLService } = strapi.plugin('graphql');\n const { config } = strapi.plugin('graphql');\n\n const { KINDS, GENERIC_MORPH_TYPENAME } = getGraphQLService('constants');\n const extensionService = getGraphQLService('extension');\n\n // Type Registry\n let registry: any;\n // Builders Instances\n let builders: any;\n\n const buildSchema = () => {\n const isShadowCRUDEnabled = !!config('shadowCRUD');\n\n // Create a new empty type registry\n registry = getGraphQLService('type-registry').new();\n\n // Reset the builders instances associated to the\n // content-api, and link the new type registry\n builders = getGraphQLService('builders').new('content-api', registry);\n\n registerScalars({ registry, strapi });\n registerInternals({ registry, strapi });\n\n if (isShadowCRUDEnabled) {\n shadowCRUD();\n }\n\n // Build a merged schema from both Nexus types & SDL type definitions\n const schema = buildMergedSchema({ registry });\n\n // Generate the extension configuration for the content API.\n // This extension instance needs to be generated after the Nexus schema's\n // generation, so that configurations created during types definitions\n // can be registered before being used in the wrap resolvers operation\n const extension = extensionService.generate({ typeRegistry: registry });\n\n // Add the extension's resolvers to the final schema\n const schemaWithResolvers = addResolversToSchema({\n schema,\n resolvers: extension.resolvers,\n });\n\n // Create a configuration object for the artifacts generation\n const outputs: Nexus.core.SchemaConfig['outputs'] = {\n schema: config('artifacts.schema', false),\n typegen: config('artifacts.typegen', false),\n };\n\n const currentEnv = strapi.config.get('environment');\n\n const nexusSchema = makeSchema({\n types: [],\n // Build the schema from the merged GraphQL schema.\n // Since we're passing the schema to the mergeSchema property, it'll transform our SDL type definitions\n // into Nexus type definition, thus allowing them to be handled by Nexus plugins & other processing\n mergeSchema: { schema: schemaWithResolvers },\n\n // Apply user-defined plugins\n plugins: extension.plugins,\n\n // Whether to generate artifacts (GraphQL schema, TS types definitions) or not.\n // By default, we generate artifacts only on development environment\n shouldGenerateArtifacts: config('generateArtifacts', currentEnv === 'development'),\n\n // Artifacts generation configuration\n outputs,\n });\n\n // Wrap resolvers if needed (auth, middlewares, policies...) as configured in the extension\n const wrappedNexusSchema = wrapResolvers({ schema: nexusSchema, strapi, extension });\n\n // Prune schema, remove unused types\n // eg: removes registered subscriptions if they're disabled in the config)\n const prunedNexusSchema = pruneSchema(wrappedNexusSchema);\n\n return prunedNexusSchema;\n };\n\n const buildMergedSchema = ({ registry }: { registry: TypeRegistry }) => {\n // Here we extract types, plugins & typeDefs from a temporary generated\n // extension since there won't be any addition allowed after schemas generation\n const { types, typeDefs = [] } = extensionService.generate({ typeRegistry: registry });\n\n // Nexus schema built with user-defined & shadow CRUD auto generated Nexus types\n const nexusSchema = makeSchema({ types: [registry.definitions, types] });\n\n // Merge type definitions with the Nexus schema\n return mergeSchemas({\n typeDefs,\n // Give access to the shadowCRUD & nexus based types\n // Note: This is necessary so that types defined in SDL can reference types defined with Nexus\n schemas: [nexusSchema],\n });\n };\n\n const shadowCRUD = () => {\n const extensionService = getGraphQLService('extension');\n\n // Get every content type & component defined in Strapi\n const contentTypes = [\n ...Object.values(strapi.components),\n ...Object.values(strapi.contentTypes),\n ];\n\n // Disable Shadow CRUD for admin content types\n contentTypes\n .map(prop('uid'))\n .filter(startsWith('admin::'))\n .forEach((uid) => extensionService.shadowCRUD(uid).disable());\n\n const contentTypesWithShadowCRUD = contentTypes.filter((ct) =>\n extensionService.shadowCRUD(ct.uid).isEnabled()\n );\n\n // Generate and register definitions for every content type\n registerAPITypes(contentTypesWithShadowCRUD);\n\n // Generate and register polymorphic types' definitions\n registerMorphTypes(contentTypesWithShadowCRUD);\n };\n\n /**\n * Register needed GraphQL types for every content type\n * @param {object[]} contentTypes\n */\n const registerAPITypes = (contentTypes: Struct.Schema[]) => {\n for (const contentType of contentTypes) {\n const { modelType } = contentType;\n\n const registerOptions = { registry, strapi, builders };\n\n // Generate various types associated to the content type\n // (enums, dynamic-zones, filters, inputs...)\n registerEnumsDefinition(contentType, registerOptions);\n registerDynamicZonesDefinition(contentType, registerOptions);\n registerFiltersDefinition(contentType, registerOptions);\n registerInputsDefinition(contentType, registerOptions);\n\n // Generate & register component's definition\n if (modelType === 'component') {\n registerComponent(contentType, registerOptions);\n continue;\n }\n\n const { kind } = contentType;\n\n // Generate & register single type's definition\n if (kind === 'singleType') {\n registerSingleType(contentType as Struct.SingleTypeSchema, registerOptions);\n }\n\n // Generate & register collection type's definition\n else if (kind === 'collectionType') {\n registerCollectionType(contentType as Struct.CollectionTypeSchema, registerOptions);\n }\n }\n };\n\n const registerMorphTypes = (contentTypes: Struct.Schema[]) => {\n // Create & register a union type that includes every type or component registered\n const genericMorphType = builders.buildGenericMorphDefinition();\n registry.register(GENERIC_MORPH_TYPENAME, genericMorphType, { kind: KINDS.morph });\n\n for (const contentType of contentTypes) {\n registerPolymorphicContentType(contentType, { registry, strapi });\n }\n };\n\n return { buildSchema };\n};\n","import { isFunction } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nconst { ApplicationError } = errors;\n\nexport type TypeRegistry = {\n register(name: string, definition: any, config?: object): TypeRegistry;\n registerMany(\n definitionsEntries: [string, any][],\n config?: object | ((...args: any[]) => any)\n ): TypeRegistry;\n has(name: string): boolean;\n get(name: string): any;\n toObject(): Record<string, any>;\n types: string[];\n definitions: any[];\n where(predicate: (item: any) => boolean): any[];\n};\n\n/**\n * Create a new type registry\n */\nconst createTypeRegistry = (): TypeRegistry => {\n const registry = new Map();\n\n const typeRegistry: TypeRegistry = {\n /**\n * Register a new type definition\n */\n register(name, definition, config = {}) {\n if (registry.has(name)) {\n throw new ApplicationError(`\"${name}\" has already been registered`);\n }\n\n registry.set(name, { name, definition, config });\n\n return this;\n },\n\n /**\n * Register many types definitions at once\n * @param {[string, NexusAcceptedTypeDef][]} definitionsEntries\n * @param {object | function} [config]\n */\n registerMany(definitionsEntries, config = {}) {\n for (const [name, definition] of definitionsEntries) {\n this.register(name, definition, isFunction(config) ? config(name, definition) : config);\n }\n\n return this;\n },\n\n /**\n * Check if the given type name has already been added to the registry\n * @param {string} name\n * @return {boolean}\n */\n has(name) {\n return registry.has(name);\n },\n\n /**\n * Get the type definition for `name`\n * @param {string} name - The name of the type\n */\n get(name) {\n return registry.get(name);\n },\n\n /**\n * Transform and return the registry as an object\n * @return {Object<string, RegisteredTypeDef>}\n */\n toObject() {\n return Object.fromEntries(registry.entries());\n },\n\n /**\n * Return the name of every registered type\n * @return {string[]}\n */\n get types() {\n return Array.from(registry.keys());\n },\n\n /**\n * Return all the registered definitions as an array\n * @return {RegisteredTypeDef[]}\n */\n get definitions() {\n return Array.from(registry.values());\n },\n\n /**\n * Filter and return the types definitions that matches the given predicate\n * @param {function(RegisteredTypeDef): boolean} predicate\n * @return {RegisteredTypeDef[]}\n */\n where(predicate) {\n return this.definitions.filter(predicate);\n },\n };\n\n return typeRegistry;\n};\n\nexport default () => ({\n new: createTypeRegistry,\n});\n","import { get, difference } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { STRAPI_SCALARS, SCALARS_ASSOCIATIONS } = strapi.plugin('graphql').service('constants');\n\n const missingStrapiScalars = difference(STRAPI_SCALARS, Object.keys(SCALARS_ASSOCIATIONS));\n\n if (missingStrapiScalars.length > 0) {\n throw new ApplicationError('Some Strapi scalars are not handled in the GraphQL scalars mapper');\n }\n\n return {\n /**\n * Used to transform a Strapi scalar type into its GraphQL equivalent\n */\n strapiScalarToGraphQLScalar(strapiScalar: string) {\n return get(strapiScalar, SCALARS_ASSOCIATIONS);\n },\n };\n};\n","import { has, propEq, isNil, isDate, isObject } from 'lodash/fp';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\n// todo[v4]: Find a way to get that dynamically\nconst virtualScalarAttributes = ['id', 'documentId'];\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const recursivelyReplaceScalarOperators = (data: any): any => {\n const { operators } = getService('builders').filters;\n\n if (Array.isArray(data)) {\n return data.map(recursivelyReplaceScalarOperators);\n }\n\n // Note: We need to make an exception for date since GraphQL\n // automatically cast date strings to date instances in args\n if (isDate(data) || !isObject(data)) {\n return data;\n }\n\n const result: any = {};\n\n for (const [key, value] of Object.entries(data)) {\n const isOperator = !!operators[key];\n\n const newKey = isOperator ? operators[key].strapiOperator : key;\n\n result[newKey] = recursivelyReplaceScalarOperators(value);\n }\n\n return result;\n };\n\n return {\n /**\n * Transform one or many GraphQL filters object into a valid Strapi query\n * @param {object | object[]} filters\n * @param {object} contentType\n * @return {object | object[]}\n */\n graphQLFiltersToStrapiQuery(filters: any, contentType: Struct.Schema): any {\n const { isStrapiScalar, isMedia, isRelation, isComponent } = getService('utils').attributes;\n const { operators } = getService('builders').filters;\n\n const ROOT_LEVEL_OPERATORS = [operators.and, operators.or, operators.not];\n\n // Handle unwanted scenario where there is no filters defined\n if (isNil(filters)) {\n return {};\n }\n\n // If filters is a collection, then apply the transformation to every item of the list\n if (Array.isArray(filters)) {\n return filters.map((filtersItem) =>\n this.graphQLFiltersToStrapiQuery(filtersItem, contentType)\n );\n }\n\n const resultMap: any = {};\n const { attributes } = contentType;\n\n const isAttribute = (attributeName: string) => {\n return virtualScalarAttributes.includes(attributeName) || has(attributeName, attributes);\n };\n\n for (const [key, value] of Object.entries(filters)) {\n // If the key is an attribute, update the value\n if (isAttribute(key)) {\n const attribute: any = attributes[key];\n\n // If it's a scalar attribute\n if (virtualScalarAttributes.includes(key) || isStrapiScalar(attribute)) {\n // Replace (recursively) every GraphQL scalar operator with the associated Strapi operator\n resultMap[key] = recursivelyReplaceScalarOperators(value);\n }\n\n // If it's a deep filter on a relation\n else if (isRelation(attribute) || isMedia(attribute)) {\n // Fetch the model from the relation\n const relModel = strapi.getModel(attribute.target);\n\n // Recursively apply the mapping to the value using the fetched model,\n // and update the value within `resultMap`\n resultMap[key] = this.graphQLFiltersToStrapiQuery(value, relModel);\n }\n\n // If it's a deep filter on a component\n else if (isComponent(attribute)) {\n // Fetch the model from the component attribute\n const componentModel = strapi.getModel(attribute.component);\n\n // Recursively apply the mapping to the value using the fetched model,\n // and update the value within `resultMap`\n resultMap[key] = this.graphQLFiltersToStrapiQuery(value, componentModel);\n }\n }\n\n // Handle the case where the key is not an attribute (operator, ...)\n else {\n const rootLevelOperator = ROOT_LEVEL_OPERATORS.find(propEq('fieldName', key));\n\n // If it's a root level operator (AND, NOT, OR, ...)\n if (rootLevelOperator) {\n const { strapiOperator } = rootLevelOperator;\n\n // Transform the current value recursively and add it to the resultMap\n // object using the strapiOperator equivalent of the GraphQL key\n resultMap[strapiOperator] = this.graphQLFiltersToStrapiQuery(value, contentType);\n }\n }\n }\n\n return resultMap;\n },\n };\n};\n","import { get, map, mapValues } from 'lodash/fp';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n graphqlScalarToOperators(graphqlScalar: string) {\n const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service('constants');\n const { operators } = strapi.plugin('graphql').service('builders').filters;\n\n const associations = mapValues(\n map((operatorName: string) => operators[operatorName]),\n GRAPHQL_SCALAR_OPERATORS\n );\n\n return get(graphqlScalar, associations);\n },\n});\n","import { map } from 'lodash/fp';\nimport type { Data } from '@strapi/types';\n\nconst entityToResponseEntity = (entity: { id: Data.ID; [key: keyof any]: unknown }) => ({\n id: entity.id,\n attributes: entity,\n});\n\nconst entitiesToResponseEntities = map(entityToResponseEntity);\n\nexport default () => ({\n entityToResponseEntity,\n entitiesToResponseEntities,\n});\n","import strapiScalarToGraphQLScalar from './strapi-scalar-to-graphql-scalar';\nimport graphQLFiltersToStrapiQuery from './graphql-filters-to-strapi-query';\nimport graphqlScalarToOperators from './graphql-scalar-to-operators';\nimport entityToResponseEntity from './entity-to-response-entity';\n\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...strapiScalarToGraphQLScalar(context),\n ...graphQLFiltersToStrapiQuery(context),\n ...graphqlScalarToOperators(context),\n ...entityToResponseEntity(),\n});\n","import { propEq } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n /**\n * Check if the given attribute is a Strapi scalar\n * @param {object} attribute\n * @return {boolean}\n */\n const isStrapiScalar = (attribute: Schema.Attribute.AnyAttribute) => {\n return strapi.plugin('graphql').service('constants').STRAPI_SCALARS.includes(attribute.type);\n };\n\n /**\n * Check if the given attribute is a GraphQL scalar\n * @param {object} attribute\n * @return {boolean}\n */\n const isGraphQLScalar = (attribute: Schema.Attribute.AnyAttribute) => {\n return strapi.plugin('graphql').service('constants').GRAPHQL_SCALARS.includes(attribute.type);\n };\n\n /**\n * Check if the given attribute is a polymorphic relation\n * @param {object} attribute\n * @return {boolean}\n */\n const isMorphRelation = (attribute: Schema.Attribute.AnyAttribute) => {\n return attribute.type === 'relation' && attribute.relation.includes('morph');\n };\n\n /**\n * Check if the given attribute is a media\n * @param {object} attribute\n * @return {boolean}\n */\n const isMedia = propEq('type', 'media');\n\n /**\n * Check if the given attribute is a relation\n * @param {object} attribute\n * @return {boolean}\n */\n const isRelation = propEq('type', 'relation');\n\n /**\n * Check if the given attribute is an enum\n * @param {object} attribute\n * @return {boolean}\n */\n const isEnumeration = propEq('type', 'enumeration');\n\n /**\n * Check if the given attribute is a component\n * @param {object} attribute\n * @return {boolean}\n */\n const isComponent = propEq('type', 'component');\n\n /**\n * Check if the given attribute is a dynamic zone\n * @param {object} attribute\n * @return {boolean}\n */\n const isDynamicZone = propEq('type', 'dynamiczone');\n\n return {\n isStrapiScalar,\n isGraphQLScalar,\n isMorphRelation,\n isMedia,\n isRelation,\n isEnumeration,\n isComponent,\n isDynamicZone,\n };\n};\n","import { camelCase, upperFirst, lowerFirst, pipe, get } from 'lodash/fp';\nimport { singular } from 'pluralize';\nimport { errors } from '@strapi/utils';\nimport type { Struct, Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n /**\n * Build a type name for a enum based on a content type & an attribute name\n */\n const getEnumName = (contentType: Struct.Schema, attributeName: string) => {\n const { attributes } = contentType;\n const { enumName } = attributes[attributeName] as Schema.Attribute.Enumeration;\n const { modelType } = contentType;\n\n const typeName =\n modelType === 'component' ? getComponentName(contentType) : getTypeName(contentType);\n\n const defaultEnumName = `ENUM_${typeName.toUpperCase()}_${attributeName.toUpperCase()}`;\n\n return enumName || defaultEnumName;\n };\n\n /**\n * Build the base type name for a given content type\n */\n const getTypeName = (\n contentType: Struct.Schema,\n {\n plurality = 'singular',\n }: {\n plurality?: 'singular' | 'plural';\n } = {}\n ) => {\n const plugin = get('plugin', contentType);\n const modelName = get('modelName', contentType);\n const name =\n plurality === 'singular'\n ? get('info.singularName', contentType)\n : get('info.pluralName', contentType);\n\n const transformedPlugin = upperFirst(camelCase(plugin));\n const transformedModelName = upperFirst(camelCase(name || singular(modelName)));\n\n return `${transformedPlugin}${transformedModelName}`;\n };\n\n /**\n * Build the entity's type name for a given content type\n */\n const getEntityName = (contentType: Struct.Schema) => {\n return `${getTypeName(contentType)}Entity`;\n };\n\n /**\n * Build the entity meta type name for a given content type\n */\n const getEntityMetaName = (contentType: Struct.Schema) => {\n return `${getEntityName(contentType)}Meta`;\n };\n\n /**\n * Build the entity response's type name for a given content type\n */\n const getEntityResponseName = (contentType: Struct.Schema) => {\n return `${getEntityName(contentType)}Response`;\n };\n\n /**\n * Build the entity response collection's type name for a given content type\n */\n const getEntityResponseCollectionName = (contentType: Struct.Schema) => {\n return `${getEntityName(contentType)}ResponseCollection`;\n };\n\n /**\n * Build the relation response collection's type name for a given content type\n */\n const getRelationResponseCollectionName = (contentType: Struct.Schema) => {\n return `${getTypeName(contentType)}RelationResponseCollection`;\n };\n\n /**\n * Build a component type name based on its definition\n */\n const getComponentName = (contentType: Struct.Schema) => {\n return contentType.globalId;\n };\n\n /**\n * Build a component type name based on a content type's attribute\n */\n const getComponentNameFromAttribute = (attribute: Schema.Attribute.Component) => {\n return strapi.components[attribute.component].globalId;\n };\n\n /**\n * Build a dynamic zone type name based on a content type and an attribute name\n */\n const getDynamicZoneName = (contentType: Struct.Schema, attributeName: string) => {\n const typeName = getTypeName(contentType);\n const dzName = upperFirst(camelCase(attributeName));\n const suffix = 'DynamicZone';\n\n return `${typeName}${dzName}${suffix}`;\n };\n\n /**\n * Build a dynamic zone input type name based on a content type and an attribute name\n */\n const getDynamicZoneInputName = (contentType: Struct.Schema, attributeName: string) => {\n const dzName = getDynamicZoneName(contentType, attributeName);\n\n return `${dzName}Input`;\n };\n\n /**\n * Build a component input type name based on a content type and an attribute name\n */\n const getComponentInputName = (contentType: Struct.Schema) => {\n const componentName = getComponentName(contentType);\n\n return `${componentName}Input`;\n };\n\n /**\n * Build a content type input name based on a content type and an attribute name\n */\n const getContentTypeInputName = (contentType: Struct.Schema) => {\n const typeName = getTypeName(contentType);\n\n return `${typeName}Input`;\n };\n\n /**\n * Build the queries type name for a given content type\n */\n const getEntityQueriesTypeName = (contentType: Struct.Schema) => {\n return `${getEntityName(contentType)}Queries`;\n };\n\n /**\n * Build the mutations type name for a given content type\n */\n const getEntityMutationsTypeName = (contentType: Struct.Schema) => {\n return `${getEntityName(contentType)}Mutations`;\n };\n\n /**\n * Build the filters type name for a given content type\n */\n const getFiltersInputTypeName = (contentType: Struct.Schema) => {\n const isComponent = contentType.modelType === 'component';\n\n const baseName = isComponent ? getComponentName(contentType) : getTypeName(contentType);\n\n return `${baseName}FiltersInput`;\n };\n\n /**\n * Build a filters type name for a given GraphQL scalar type\n */\n const getScalarFilterInputTypeName = (scalarType: string) => {\n return `${scalarType}FilterInput`;\n };\n\n /**\n * Build a type name for a given content type & polymorphic attribute\n */\n const getMorphRelationTypeName = (contentType: Struct.Schema, attributeName: string) => {\n const typeName = getTypeName(contentType);\n const formattedAttr = upperFirst(camelCase(attributeName));\n\n return `${typeName}${formattedAttr}Morph`;\n };\n\n /**\n * Build a custom type name generator with different customization options\n */\n const buildCustomTypeNameGenerator = (options: {\n prefix?: string;\n suffix?: string;\n firstLetterCase?: 'upper' | 'lower';\n plurality?: 'plural' | 'singular';\n }) => {\n // todo[v4]: use singularName & pluralName is available\n const { prefix = '', suffix = '', plurality = 'singular', firstLetterCase = 'upper' } = options;\n\n if (!['plural', 'singular'].includes(plurality)) {\n throw new ApplicationError(\n `\"plurality\" param must be either \"plural\" or \"singular\", but got: \"${plurality}\"`\n );\n }\n\n const getCustomTypeName = pipe(\n (ct) => getTypeName(ct, { plurality }),\n firstLetterCase === 'upper' ? upperFirst : lowerFirst\n );\n\n return (contentType: Struct.Schema) => `${prefix}${getCustomTypeName(contentType)}${suffix}`;\n };\n\n const getFindQueryName = buildCustomTypeNameGenerator({\n plurality: 'plural',\n firstLetterCase: 'lower',\n });\n\n const getFindConnectionQueryName = (contentType: Struct.Schema) => {\n return `${getFindQueryName(contentType)}_connection`;\n };\n\n const getFindOneQueryName = buildCustomTypeNameGenerator({ firstLetterCase: 'lower' });\n\n const getCreateMutationTypeName = buildCustomTypeNameGenerator({\n prefix: 'create',\n firstLetterCase: 'upper',\n });\n\n const getUpdateMutationTypeName = buildCustomTypeNameGenerator({\n prefix: 'update',\n firstLetterCase: 'upper',\n });\n\n const getDeleteMutationTypeName = buildCustomTypeNameGenerator({\n prefix: 'delete',\n firstLetterCase: 'upper',\n });\n\n return {\n getEnumName,\n getTypeName,\n getEntityName,\n getEntityMetaName,\n getEntityResponseName,\n getEntityResponseCollectionName,\n getRelationResponseCollectionName,\n getComponentName,\n getComponentNameFromAttribute,\n getDynamicZoneName,\n getDynamicZoneInputName,\n getComponentInputName,\n getContentTypeInputName,\n getEntityQueriesTypeName,\n getEntityMutationsTypeName,\n getFiltersInputTypeName,\n getScalarFilterInputTypeName,\n getMorphRelationTypeName,\n buildCustomTypeNameGenerator,\n getFindQueryName,\n getFindOneQueryName,\n getCreateMutationTypeName,\n getUpdateMutationTypeName,\n getDeleteMutationTypeName,\n getFindConnectionQueryName,\n };\n};\n","import { Context } from '../types';\n\n// TODO: deprecate and remove this because it is only used to determine if we need helmet security exceptions\n// stores the state of the Apollo landingPage (playground)\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport default (ctx: Context) => {\n let enabled = false;\n\n return {\n setEnabled(val: boolean) {\n enabled = val;\n },\n isEnabled() {\n return enabled;\n },\n };\n};\n","import mappers from './mappers';\nimport attributes from './attributes';\nimport naming from './naming';\nimport playground from './playground';\n\nimport type { Context } from '../types';\n\nexport default (context: Context) => ({\n playground: playground(context),\n naming: naming(context),\n attributes: attributes(context),\n mappers: mappers(context),\n});\n","const PAGINATION_TYPE_NAME = 'Pagination';\nconst DELETE_MUTATION_RESPONSE_TYPE_NAME = 'DeleteMutationResponse';\nconst PUBLICATION_STATUS_TYPE_NAME = 'PublicationStatus';\nconst ERROR_TYPE_NAME = 'Error';\n\nconst RESPONSE_COLLECTION_META_TYPE_NAME = 'ResponseCollectionMeta';\n\nconst GRAPHQL_SCALARS = [\n 'ID',\n 'Boolean',\n 'Int',\n 'String',\n 'Long',\n 'Float',\n 'JSON',\n 'Date',\n 'Time',\n 'DateTime',\n] as const;\n\nconst STRAPI_SCALARS = [\n 'boolean',\n 'integer',\n 'string',\n 'richtext',\n 'blocks',\n 'enumeration',\n 'biginteger',\n 'float',\n 'decimal',\n 'json',\n 'date',\n 'time',\n 'datetime',\n 'timestamp',\n 'uid',\n 'email',\n 'password',\n 'text',\n] as const;\n\nconst SCALARS_ASSOCIATIONS = {\n uid: 'String',\n email: 'String',\n password: 'String',\n text: 'String',\n boolean: 'Boolean',\n integer: 'Int',\n string: 'String',\n enumeration: 'String',\n richtext: 'String',\n blocks: 'JSON',\n biginteger: 'Long',\n float: 'Float',\n decimal: 'Float',\n json: 'JSON',\n date: 'Date',\n time: 'Time',\n datetime: 'DateTime',\n timestamp: 'DateTime',\n} as const;\n\nconst GENERIC_MORPH_TYPENAME = 'GenericMorph';\n\nconst KINDS = {\n type: 'type',\n component: 'component',\n dynamicZone: 'dynamic-zone',\n enum: 'enum',\n entity: 'entity',\n entityResponse: 'entity-response',\n entityResponseCollection: 'entity-response-collection',\n relationResponseCollection: 'relation-response-collection',\n query: 'query',\n mutation: 'mutation',\n input: 'input',\n filtersInput: 'filters-input',\n scalar: 'scalar',\n morph: 'polymorphic',\n internal: 'internal',\n} as const;\n\nconst allOperators = [\n 'and',\n 'or',\n 'not',\n\n 'eq',\n 'eqi',\n 'ne',\n 'nei',\n\n 'startsWith',\n 'endsWith',\n\n 'contains',\n 'notContains',\n\n 'containsi',\n 'notContainsi',\n\n 'gt',\n 'gte',\n\n 'lt',\n 'lte',\n\n 'null',\n 'notNull',\n\n 'in',\n 'notIn',\n\n 'between',\n] as const;\n\nconst GRAPHQL_SCALAR_OPERATORS = {\n // ID\n ID: allOperators,\n // Booleans\n Boolean: allOperators,\n // Strings\n String: allOperators,\n // Numbers\n Int: allOperators,\n Long: allOperators,\n Float: allOperators,\n // Dates\n Date: allOperators,\n Time: allOperators,\n DateTime: allOperators,\n // Others\n JSON: allOperators,\n} as const;\n\nconst ERROR_CODES = {\n emptyDynamicZone: 'dynamiczone.empty',\n} as const;\n\nexport type Constants = {\n PAGINATION_TYPE_NAME: string;\n RESPONSE_COLLECTION_META_TYPE_NAME: string;\n PUBLICATION_STATE_TYPE_NAME: string;\n GRAPHQL_SCALARS: string[];\n STRAPI_SCALARS: string[];\n GENERIC_MORPH_TYPENAME: string;\n KINDS: typeof KINDS;\n GRAPHQL_SCALAR_OPERATORS: typeof GRAPHQL_SCALAR_OPERATORS;\n SCALARS_ASSOCIATIONS: typeof SCALARS_ASSOCIATIONS;\n ERROR_CODES: typeof ERROR_CODES;\n ERROR_TYPE_NAME: string;\n};\n\nexport default () => ({\n PAGINATION_TYPE_NAME,\n RESPONSE_COLLECTION_META_TYPE_NAME,\n DELETE_MUTATION_RESPONSE_TYPE_NAME,\n PUBLICATION_STATUS_TYPE_NAME,\n GRAPHQL_SCALARS,\n STRAPI_SCALARS,\n GENERIC_MORPH_TYPENAME,\n KINDS,\n GRAPHQL_SCALAR_OPERATORS,\n SCALARS_ASSOCIATIONS,\n ERROR_CODES,\n ERROR_TYPE_NAME,\n});\n","import { arg, list } from 'nexus';\n\nconst SortArg = arg({\n type: list('String'),\n default: [],\n});\n\nexport default SortArg;\n","import { arg } from 'nexus';\nimport { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { PUBLICATION_STATUS_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return arg({\n type: PUBLICATION_STATUS_TYPE_NAME,\n default: 'published',\n });\n};\n","import { arg, inputObjectType } from 'nexus';\n\nconst PaginationInputType = inputObjectType({\n name: 'PaginationArg',\n\n definition(t) {\n t.int('page');\n t.int('pageSize');\n t.int('start');\n t.int('limit');\n },\n});\n\nexport default arg({\n type: PaginationInputType,\n default: {},\n});\n","import SortArg from './sort';\nimport publicationStatus from './publication-status';\nimport PaginationArg from './pagination';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n SortArg,\n PaginationArg,\n PublicationStatusArg: publicationStatus(context),\n});\n","import { GraphQLScalarType, Kind } from 'graphql';\nimport { parseType, errors } from '@strapi/utils';\n\nconst { ValidationError } = errors;\n\n/**\n * A GraphQL scalar used to store Time (HH:mm:ss.SSS) values\n * @type {GraphQLScalarType}\n */\nconst TimeScalar = new GraphQLScalarType({\n name: 'Time',\n\n description: 'A time string with format HH:mm:ss.SSS',\n\n serialize(value) {\n return parseType({ type: 'time', value });\n },\n\n parseValue(value) {\n return parseType({ type: 'time', value });\n },\n\n parseLiteral(ast) {\n if (ast.kind !== Kind.STRING) {\n throw new ValidationError('Time cannot represent non string type');\n }\n\n const { value } = ast;\n\n return parseType({ type: 'time', value });\n },\n});\n\nexport default TimeScalar;\n","import { GraphQLDate } from 'graphql-scalars';\n\nconst parseAndCast =\n (parseFn: any) =>\n (...args: any[]) => {\n const parsedValue = parseFn(...args);\n\n if (parsedValue instanceof Date) {\n return parsedValue.toISOString().split('T')[0];\n }\n\n return parsedValue;\n };\n\n// GraphQLDate casts the date string to new Date, we want to keep it as a string so we cast it back to a string\n// see https://github.com/excitement-engineer/graphql-iso-date/issues/106\nGraphQLDate.parseValue = parseAndCast(GraphQLDate.parseValue);\nGraphQLDate.parseLiteral = parseAndCast(GraphQLDate.parseLiteral);\n\nexport default GraphQLDate;\n","import { GraphQLDateTime, GraphQLLong, GraphQLJSON } from 'graphql-scalars';\nimport { asNexusMethod } from 'nexus';\n\nimport TimeScalar from './time';\nimport GraphQLDate from './date';\n\nexport default () => ({\n JSON: asNexusMethod(GraphQLJSON, 'json'),\n DateTime: asNexusMethod(GraphQLDateTime, 'dateTime'),\n Time: asNexusMethod(TimeScalar, 'time'),\n Date: asNexusMethod(GraphQLDate, 'date'),\n Long: asNexusMethod(GraphQLLong, 'long'),\n});\n","import { objectType } from 'nexus';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { PAGINATION_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return {\n /**\n * Type definition for a Pagination object\n * @type {NexusObjectTypeDef}\n */\n Pagination: objectType({\n name: PAGINATION_TYPE_NAME,\n\n definition(t) {\n t.nonNull.int('total');\n t.nonNull.int('page');\n t.nonNull.int('pageSize');\n t.nonNull.int('pageCount');\n },\n }),\n };\n};\n","import { objectType } from 'nexus';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { RESPONSE_COLLECTION_META_TYPE_NAME, PAGINATION_TYPE_NAME } = getService('constants');\n\n return {\n /**\n * A shared type definition used in EntitiesResponseCollection\n * to have information about the collection as a whole\n * @type {NexusObjectTypeDef}\n */\n ResponseCollectionMeta: objectType({\n name: RESPONSE_COLLECTION_META_TYPE_NAME,\n\n definition(t) {\n const { resolvePagination } = getService('builders').get('content-api');\n\n t.nonNull.field('pagination', {\n type: PAGINATION_TYPE_NAME,\n resolve: resolvePagination,\n });\n },\n }),\n };\n};\n","import { objectType } from 'nexus';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { DELETE_MUTATION_RESPONSE_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return {\n DeleteMutationResponse: objectType({\n name: DELETE_MUTATION_RESPONSE_TYPE_NAME,\n\n definition(t) {\n t.nonNull.id('documentId');\n },\n }),\n };\n};\n","import { enumType } from 'nexus';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { PUBLICATION_STATUS_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return {\n /**\n * An enum type definition representing a publication status\n * @type {NexusEnumTypeDef}\n */\n PublicationStatus: enumType({\n name: PUBLICATION_STATUS_TYPE_NAME,\n\n members: {\n DRAFT: 'draft',\n PUBLISHED: 'published',\n },\n }),\n };\n};\n","import { inputObjectType } from 'nexus';\nimport type { Context } from '../../types';\n\n/**\n * Build a map of filters type for every GraphQL scalars\n * @return {Object<string, NexusInputTypeDef>}\n */\nconst buildScalarFilters = ({ strapi }: Context) => {\n const { naming, mappers } = strapi.plugin('graphql').service('utils');\n const { helpers } = strapi.plugin('graphql').service('internals');\n\n return helpers.getEnabledScalars().reduce((acc: any, type: string) => {\n const operators = mappers.graphqlScalarToOperators(type);\n const typeName = naming.getScalarFilterInputTypeName(type);\n\n if (!operators || operators.length === 0) {\n return acc;\n }\n\n return {\n ...acc,\n\n [typeName]: inputObjectType({\n name: typeName,\n\n definition(t) {\n for (const operator of operators) {\n operator.add(t, type);\n }\n },\n }),\n };\n }, {});\n};\n\nexport default (context: Context) => ({\n scalars: buildScalarFilters(context),\n});\n","import { objectType } from 'nexus';\nimport { get } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nimport type { Context } from '../../types';\n\nconst { ValidationError } = errors;\n\n/**\n * Build an Error object type\n * @return {Object<string, NexusObjectTypeDef>}\n */\nexport default ({ strapi }: Context) => {\n const { ERROR_CODES, ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return objectType({\n name: ERROR_TYPE_NAME,\n\n definition(t) {\n t.nonNull.string('code', {\n resolve(parent) {\n const code = get('code', parent);\n\n const isValidPlaceholderCode = Object.values(ERROR_CODES).includes(code);\n if (!isValidPlaceholderCode) {\n throw new ValidationError(`\"${code}\" is not a valid code value`);\n }\n\n return code;\n },\n });\n\n t.string('message');\n },\n });\n};\n","import pagination from './pagination';\nimport buildResponseCollectionMeta from './response-collection-meta';\nimport buildDeleteMutationResponse from './delete-mutation-response';\nimport publicationStatus from './publication-status';\nimport filters from './filters';\nimport error from './error';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => () => {\n const { strapi } = context;\n\n const { KINDS } = strapi.plugin('graphql').service('constants');\n\n return {\n [KINDS.internal]: {\n error: error(context),\n pagination: pagination(context),\n responseCollectionMeta: buildResponseCollectionMeta(context),\n deleteDocumentResponse: buildDeleteMutationResponse(context),\n },\n\n [KINDS.enum]: {\n publicationStatus: publicationStatus(context),\n },\n\n [KINDS.filtersInput]: {\n ...filters(context),\n },\n };\n};\n","import { first } from 'lodash/fp';\nimport type { Context } from '../../types';\nimport type { Constants } from '../../constants';\n\nexport default ({ strapi }: Context) =>\n () => {\n const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service<Constants>('constants');\n\n return (\n Object.entries(GRAPHQL_SCALAR_OPERATORS)\n // To be valid, a GraphQL scalar must have at least one operator enabled\n .filter(([, value]) => value.length > 0)\n // Only keep the key (the scalar name)\n .map(first)\n );\n };\n","import getEnabledScalars from './get-enabled-scalars';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n getEnabledScalars: getEnabledScalars(context),\n});\n","import args from './args';\nimport scalars from './scalars';\nimport types from './types';\nimport helpers from './helpers';\nimport type { Context } from '../types';\n\nexport default (context: Context) => ({\n args: args(context),\n scalars: scalars(),\n buildInternalTypes: types(context),\n helpers: helpers(context),\n});\n","import { enumType } from 'nexus';\nimport { set } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\n\ninterface Definition {\n enum: string[];\n}\n\n/**\n * Build a Nexus enum type from a Strapi enum attribute\n * @param {object} definition - The definition of the enum\n * @param {string[]} definition.enum - The params of the enum\n * @param {string} name - The name of the enum\n * @return {NexusEnumTypeDef}\n */\nconst buildEnumTypeDefinition = (definition: Definition, name: string) => {\n return enumType({\n name,\n members: definition.enum.reduce(\n (acc, value) => set(strings.toRegressedEnumValue(value), value, acc),\n {}\n ),\n });\n};\n\nexport default () => ({\n buildEnumTypeDefinition,\n});\n","import { Kind, valueFromASTUntyped } from 'graphql';\nimport { omit } from 'lodash/fp';\nimport { unionType, scalarType } from 'nexus';\nimport { errors } from '@strapi/utils';\nimport type { Internal, Schema } from '@strapi/types';\n\nimport type { Context } from '../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const buildTypeDefinition = (name: string, components: Internal.UID.Component[]) => {\n const { ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n const isEmpty = components.length === 0;\n\n const componentsTypeNames = components.map((componentUID) => {\n const component = strapi.components[componentUID];\n\n if (!component) {\n throw new ApplicationError(\n `Trying to create a dynamic zone type with an unknown component: \"${componentUID}\"`\n );\n }\n\n return component.globalId;\n });\n\n return unionType({\n name,\n\n resolveType(obj) {\n if (isEmpty) {\n return ERROR_TYPE_NAME;\n }\n\n return strapi.components[obj.__component].globalId;\n },\n\n definition(t) {\n t.members(...componentsTypeNames, ERROR_TYPE_NAME);\n },\n });\n };\n\n const buildInputDefinition = (name: string, components: Internal.UID.Component[]) => {\n const parseData = (value: any) => {\n const component = Object.values(strapi.components).find(\n (component) => component.globalId === value.__typename\n );\n\n if (!component) {\n throw new ApplicationError(\n `Component not found. expected one of: ${components\n .map((uid) => strapi.components[uid].globalId)\n .join(', ')}`\n );\n }\n\n return {\n __component: component.uid,\n ...omit(['__typename'], value),\n };\n };\n\n return scalarType({\n name,\n\n serialize: (value) => value,\n\n parseValue: (value) => parseData(value),\n\n parseLiteral(ast, variables) {\n if (ast.kind !== Kind.OBJECT) {\n return undefined;\n }\n\n const value = valueFromASTUntyped(ast, variables);\n return parseData(value);\n },\n });\n };\n\n return {\n /**\n * Build a Nexus dynamic zone type from a Strapi dz attribute\n */\n buildDynamicZoneDefinition(\n definition: Schema.Attribute.DynamicZone,\n name: string,\n inputName: string\n ) {\n const { components } = definition;\n\n const typeDefinition = buildTypeDefinition(name, components);\n const inputDefinition = buildInputDefinition(inputName, components);\n\n return [typeDefinition, inputDefinition];\n },\n };\n};\n","import { objectType } from 'nexus';\nimport { prop, identity, isEmpty } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\n\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a higher level type for a content type which contains the attributes, the ID and the metadata\n * @param {object} contentType The content type which will be used to build its entity type\n * @return {NexusObjectTypeDef}\n */\n buildEntityDefinition(contentType: Schema.ContentType) {\n const { attributes } = contentType;\n\n const name = naming.getEntityName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n // Keep the ID attribute at the top level\n t.id('id', { resolve: prop('id') });\n\n if (!isEmpty(attributes)) {\n // Keep the fetched object into a dedicated `attributes` field\n t.field('attributes', {\n type: typeName,\n resolve: identity,\n });\n }\n },\n });\n },\n };\n};\n","import { isArray, isString, isUndefined, constant } from 'lodash/fp';\nimport { nonNull, list, objectType } from 'nexus';\nimport { contentTypes } from '@strapi/utils';\nimport type { Struct } from '@strapi/types';\n\nimport type { Context } from '../types';\n\nexport type TypeBuildersOptions = {\n builder: any;\n attributeName: string;\n attribute: any;\n contentType: any;\n context: Context;\n};\n\nexport default (context: Context) => {\n const { strapi } = context;\n const getGraphQLService = strapi.plugin('graphql').service;\n\n const extension = getGraphQLService('extension');\n\n /**\n * Add a scalar attribute to the type definition\n *\n * The attribute is added based on a simple association between a Strapi\n * type and a GraphQL type (the map is defined in `strapiTypeToGraphQLScalar`)\n */\n const addScalarAttribute = (options: TypeBuildersOptions) => {\n const { builder, attributeName, attribute } = options;\n\n const { mappers } = getGraphQLService('utils');\n\n const gqlType = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n builder.field(attributeName, { type: gqlType });\n };\n\n /**\n * Add a component attribute to the type definition\n *\n * The attribute is added by fetching the component's type\n * name and using it as the attribute's type\n */\n const addComponentAttribute = (options: TypeBuildersOptions) => {\n const { builder, attributeName, contentType, attribute } = options;\n\n let localBuilder = builder;\n\n const { naming } = getGraphQLService('utils');\n const { getContentTypeArgs } = getGraphQLService('builders').utils;\n const { buildComponentResolver } = getGraphQLService('builders').get('content-api');\n\n const type = naming.getComponentNameFromAttribute(attribute);\n\n if (attribute.repeatable) {\n localBuilder = localBuilder.list;\n }\n\n const targetComponent = strapi.getModel(attribute.component);\n\n const resolve = buildComponentResolver({\n contentTypeUID: contentType.uid,\n attributeName,\n strapi,\n });\n\n const args = getContentTypeArgs(targetComponent, {\n multiple: !!attribute.repeatable,\n isNested: true,\n });\n\n localBuilder.field(attributeName, { type, resolve, args });\n };\n\n /**\n * Add a dynamic zone attribute to the type definition\n *\n * The attribute is added by fetching the dynamic zone's\n * type name and using it as the attribute's type\n */\n const addDynamicZoneAttribute = (options: TypeBuildersOptions) => {\n const { builder, attributeName, contentType } = options;\n\n const { naming } = getGraphQLService('utils');\n const { ERROR_CODES } = getGraphQLService('constants');\n const { buildDynamicZoneResolver } = getGraphQLService('builders').get('content-api');\n\n const { components } = contentType.attributes[attributeName];\n\n const isEmpty = components.length === 0;\n const type = naming.getDynamicZoneName(contentType, attributeName);\n\n const resolve = isEmpty\n ? // If the dynamic zone don't have any component, then return an error payload\n constant({\n code: ERROR_CODES.emptyDynamicZone,\n message: `This dynamic zone don't have any component attached to it`,\n })\n : // Else, return a classic dynamic-zone resolver\n buildDynamicZoneResolver({\n contentTypeUID: contentType.uid,\n attributeName,\n });\n\n builder.list.field(attributeName, { type, resolve });\n };\n\n /**\n * Add an enum attribute to the type definition\n *\n * The attribute is added by fetching the enum's type\n * name and using it as the attribute's type\n */\n const addEnumAttribute = (options: TypeBuildersOptions) => {\n const { builder, attributeName, contentType } = options;\n\n const { naming } = getGraphQLService('utils');\n\n const type = naming.getEnumName(contentType, attributeName);\n\n builder.field(attributeName, { type });\n };\n\n /**\n * Add a media attribute to the type definition\n */\n const addMediaAttribute = (options: TypeBuildersOptions) => {\n const { naming } = getGraphQLService('utils');\n const { getContentTypeArgs } = getGraphQLService('builders').utils;\n const { buildAssociationResolver } = getGraphQLService('builders').get('content-api');\n const extension = getGraphQLService('extension');\n\n const { builder } = options;\n const { attributeName, attribute, contentType } = options;\n const fileUID = 'plugin::upload.file';\n\n if (extension.shadowCRUD(fileUID).isDisabled()) {\n return;\n }\n\n const fileContentType = strapi.contentTypes[fileUID];\n\n const resolve = buildAssociationResolver({\n contentTypeUID: contentType.uid,\n attributeName,\n strapi,\n });\n\n const args = attribute.multiple\n ? getContentTypeArgs(fileContentType, { isNested: true })\n : undefined;\n\n const typeName = naming.getTypeName(fileContentType);\n\n if (attribute.multiple) {\n builder.field(`${attributeName}_connection`, {\n type: naming.getRelationResponseCollectionName(fileContentType),\n resolve,\n args,\n });\n\n builder.field(attributeName, {\n type: nonNull(list(typeName)),\n async resolve(...args: unknown[]) {\n const res = await resolve(...args);\n return res.nodes ?? [];\n },\n args,\n });\n } else {\n builder.field(attributeName, {\n type: typeName,\n async resolve(...args: unknown[]) {\n const res = await resolve(...args);\n return res.value;\n },\n args,\n });\n }\n };\n\n /**\n * Add a polymorphic relational attribute to the type definition\n */\n const addPolymorphicRelationalAttribute = (options: TypeBuildersOptions) => {\n const { GENERIC_MORPH_TYPENAME } = getGraphQLService('constants');\n const { naming } = getGraphQLService('utils');\n const { buildAssociationResolver } = getGraphQLService('builders').get('content-api');\n\n let { builder } = options;\n const { attributeName, attribute, contentType } = options;\n\n const { target } = attribute;\n const isToManyRelation = attribute.relation.endsWith('Many');\n\n if (isToManyRelation) {\n builder = builder.list;\n }\n // todo[v4]: How to handle polymorphic relation w/ entity response collection types?\n // -> Currently return raw polymorphic entities\n\n const resolve = buildAssociationResolver({\n contentTypeUID: contentType.uid,\n attributeName,\n strapi,\n });\n\n // If there is no specific target specified, then use the GenericMorph type\n if (isUndefined(target)) {\n builder.field(attributeName, {\n type: GENERIC_MORPH_TYPENAME,\n resolve,\n });\n }\n\n // If the target is an array of string, resolve the associated morph type and use it\n else if (isArray(target) && target.every(isString)) {\n const type = naming.getMorphRelationTypeName(contentType, attributeName);\n\n builder.field(attributeName, { type, resolve });\n }\n };\n\n /**\n * Add a regular relational attribute to the type definition\n */\n const addRegularRelationalAttribute = (options: TypeBuildersOptions) => {\n const { naming } = getGraphQLService('utils');\n const { getContentTypeArgs } = getGraphQLService('builders').utils;\n const { buildAssociationResolver } = getGraphQLService('builders').get('content-api');\n const extension = getGraphQLService('extension');\n\n const { builder } = options;\n const { attributeName, attribute, contentType } = options;\n\n if (extension.shadowCRUD(attribute.target).isDisabled()) {\n return;\n }\n\n const isToManyRelation = attribute.relation.endsWith('Many');\n\n const resolve = buildAssociationResolver({\n contentTypeUID: contentType.uid,\n attributeName,\n strapi,\n });\n\n const targetContentType = strapi.getModel(attribute.target);\n\n const typeName = naming.getTypeName(targetContentType);\n\n const args = isToManyRelation\n ? getContentTypeArgs(targetContentType, { isNested: true })\n : undefined;\n\n const resolverScope = `${targetContentType.uid}.find`;\n const resolverPath = `${naming.getTypeName(contentType)}.${attributeName}`;\n\n extension.use({ resolversConfig: { [resolverPath]: { auth: { scope: [resolverScope] } } } });\n\n if (isToManyRelation) {\n builder.field(`${attributeName}_connection`, {\n type: naming.getRelationResponseCollectionName(targetContentType),\n resolve,\n args,\n });\n\n extension.use({\n resolversConfig: { [`${resolverPath}_connection`]: { auth: { scope: [resolverScope] } } },\n });\n\n builder.field(attributeName, {\n type: nonNull(list(typeName)),\n async resolve(...args: unknown[]) {\n const res = await resolve(...args);\n return res.nodes ?? [];\n },\n args,\n });\n } else {\n builder.field(attributeName, {\n type: typeName,\n async resolve(...args: unknown[]) {\n const res = await resolve(...args);\n return res.value;\n },\n args,\n });\n }\n };\n\n const isNotPrivate = (contentType: Struct.Schema) => (attributeName: string) => {\n return !contentTypes.isPrivateAttribute(contentType, attributeName);\n };\n\n const isNotDisabled = (contentType: Struct.Schema) => (attributeName: string) => {\n return extension.shadowCRUD(contentType.uid).field(attributeName).hasOutputEnabled();\n };\n\n return {\n /**\n * Create a type definition for a given content type\n * @param contentType - The content type used to created the definition\n * @return {NexusObjectTypeDef}\n */\n buildTypeDefinition(contentType: Struct.Schema) {\n const utils = getGraphQLService('utils');\n\n const { getComponentName, getTypeName } = utils.naming;\n const {\n isStrapiScalar,\n isComponent,\n isDynamicZone,\n isEnumeration,\n isMedia,\n isMorphRelation,\n isRelation,\n } = utils.attributes;\n\n const { attributes, modelType } = contentType;\n\n const attributesKey = Object.keys(attributes);\n\n const name = (modelType === 'component' ? getComponentName : getTypeName).call(\n null,\n contentType\n );\n\n return objectType({\n name,\n definition(t) {\n // add back the old id attribute on contentType if v4 compat is enabled\n if (\n modelType !== 'component' &&\n isNotDisabled(contentType)('id') &&\n strapi.plugin('graphql').config('v4CompatibilityMode', false)\n ) {\n t.nonNull.id('id', {\n deprecation: 'Use `documentId` instead',\n });\n }\n\n if (modelType === 'component' && isNotDisabled(contentType)('id')) {\n t.nonNull.id('id');\n }\n\n if (modelType !== 'component' && isNotDisabled(contentType)('documentId')) {\n t.nonNull.id('documentId');\n }\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.field('attributes', {\n deprecation: 'Use root level fields instead',\n type: name,\n resolve: (parent) => parent,\n });\n\n t.nonNull.field('data', {\n deprecation: 'Use root level fields instead',\n type: name,\n resolve: (parent) => parent,\n });\n }\n\n /** Attributes\n *\n * Attributes can be of 7 different kind:\n * - Scalar\n * - Component\n * - Dynamic Zone\n * - Enum\n * - Media\n * - Polymorphic Relations\n * - Regular Relations\n *\n * Here, we iterate over each non-private attribute\n * and add it to the type definition based on its type\n */\n attributesKey\n // Ignore private attributes\n .filter(isNotPrivate(contentType))\n // Ignore disabled fields (from extension service)\n .filter(isNotDisabled(contentType))\n // Add each attribute to the type definition\n .forEach((attributeName) => {\n const attribute = attributes[attributeName];\n\n // We create a copy of the builder (t) to apply custom\n // rules only on the current attribute (eg: nonNull, list, ...)\n let builder: any = t;\n\n if (attribute.required) {\n builder = builder.nonNull;\n }\n\n const options: TypeBuildersOptions = {\n builder,\n attributeName,\n attribute,\n contentType,\n context,\n };\n\n // Enums\n if (isEnumeration(attribute)) {\n addEnumAttribute(options);\n }\n\n // Scalars\n else if (isStrapiScalar(attribute)) {\n addScalarAttribute(options);\n }\n\n // Components\n else if (isComponent(attribute)) {\n addComponentAttribute(options);\n }\n\n // Dynamic Zones\n else if (isDynamicZone(attribute)) {\n addDynamicZoneAttribute(options);\n }\n\n // Media\n else if (isMedia(attribute)) {\n addMediaAttribute(options);\n }\n\n // Polymorphic Relations\n else if (isMorphRelation(attribute)) {\n addPolymorphicRelationalAttribute(options);\n }\n\n // Regular Relations\n else if (isRelation(attribute)) {\n addRegularRelationalAttribute(options);\n }\n });\n },\n });\n },\n };\n};\n","import { objectType } from 'nexus';\nimport { prop } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API response for a given content type\n */\n buildResponseDefinition(contentType: Schema.ContentType) {\n const name = naming.getEntityResponseName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.field('data', {\n type: typeName,\n\n resolve: prop('value'),\n });\n },\n });\n },\n };\n};\n","import { objectType, nonNull } from 'nexus';\nimport { defaultTo, prop, pipe, identity } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { RESPONSE_COLLECTION_META_TYPE_NAME, PAGINATION_TYPE_NAME } = getService('constants');\n\n return {\n /**\n * Build a type definition for a content API collection response for a given content type\n * @param {Schema.ContentType} contentType The content type which will be used to build its content API response definition\n * @return {NexusObjectTypeDef}\n */\n buildResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getEntityResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n const { resolvePagination } = getService('builders').get('content-api');\n\n return objectType({\n name,\n definition(t) {\n // NOTE: add edges & cursor based pagination to support the relay spec in a later version\n\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n t.nonNull.field('pageInfo', {\n type: PAGINATION_TYPE_NAME,\n resolve: resolvePagination,\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n t.nonNull.field('meta', {\n deprecation: 'Use the `pageInfo` field instead',\n type: RESPONSE_COLLECTION_META_TYPE_NAME,\n resolve: identity,\n });\n }\n },\n });\n },\n };\n};\n","import { objectType, nonNull } from 'nexus';\nimport { defaultTo, prop, pipe } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n }\n },\n });\n },\n };\n};\n","import { extendType, nonNull, list } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n const { toEntityResponseCollection } = getService('format').returnTypes;\n\n const {\n getFindOneQueryName,\n getTypeName,\n getFindQueryName,\n getFindConnectionQueryName,\n getEntityResponseCollectionName,\n } = naming;\n\n const buildCollectionTypeQueries = (contentType: Struct.CollectionTypeSchema) => {\n const findOneQueryName = `Query.${getFindOneQueryName(contentType)}`;\n const findQueryName = `Query.${getFindQueryName(contentType)}`;\n const findConnectionQueryName = `Query.${getFindConnectionQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindOneEnabled = isActionEnabled('findOne');\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindOneEnabled) {\n registerAuthConfig(findOneQueryName, { scope: [`${contentType.uid}.findOne`] });\n }\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n registerAuthConfig(findConnectionQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindOneEnabled) {\n addFindOneQuery(t, contentType);\n }\n\n if (isFindEnabled) {\n addFindConnectionQuery(t, contentType);\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n /**\n * Register a \"find one\" query field to the nexus type definition\n */\n const addFindOneQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findOneQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findOneQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType, { multiple: false }),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findOne } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findOne(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const findQueryName = getFindQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: nonNull(list(typeName)),\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n return findMany(parent, transformedArgs, ctx);\n },\n });\n };\n\n /**\n * Register a \"find\" query field to the nexus type definition\n */\n const addFindConnectionQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Query'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const { uid } = contentType;\n\n const queryName = getFindConnectionQueryName(contentType);\n const responseCollectionTypeName = getEntityResponseCollectionName(contentType);\n\n t.field(queryName, {\n type: responseCollectionTypeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType, usePagination: true });\n\n const { findMany } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n // queryResolvers will sanitize params\n const nodes = await findMany(parent, transformedArgs, ctx);\n\n return toEntityResponseCollection(nodes, { args: transformedArgs, resourceUID: uid });\n },\n });\n };\n\n return { buildCollectionTypeQueries };\n};\n","import { extendType } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { transformArgs, getContentTypeArgs } = getService('builders').utils;\n\n const { getFindOneQueryName, getTypeName } = naming;\n\n const buildSingleTypeQueries = (contentType: Struct.SingleTypeSchema) => {\n const findQueryName = `Query.${getFindOneQueryName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isFindEnabled = isActionEnabled('find');\n\n if (isFindEnabled) {\n registerAuthConfig(findQueryName, { scope: [`${contentType.uid}.find`] });\n }\n\n return extendType({\n type: 'Query',\n\n definition(t) {\n if (isFindEnabled) {\n addFindQuery(t, contentType);\n }\n },\n });\n };\n\n const addFindQuery = (\n t: Nexus.blocks.ObjectDefinitionBlock<string>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const findQueryName = getFindOneQueryName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(findQueryName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: getContentTypeArgs(contentType),\n\n async resolve(parent, args, ctx) {\n const transformedArgs = transformArgs(args, { contentType });\n\n const { findFirst } = getService('builders')\n .get('content-api')\n .buildQueriesResolvers({ contentType });\n\n return findFirst(parent, transformedArgs, ctx);\n },\n });\n };\n\n return { buildSingleTypeQueries };\n};\n","import createCollectionTypeQueriesBuilder from './collection-type';\nimport createSingleTypeQueriesBuilder from './single-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...createCollectionTypeQueriesBuilder(context),\n ...createSingleTypeQueriesBuilder(context),\n});\n","import { extendType, nonNull, idArg } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const {\n getCreateMutationTypeName,\n getUpdateMutationTypeName,\n getDeleteMutationTypeName,\n getContentTypeInputName,\n getTypeName,\n } = naming;\n\n const addCreateMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const { uid } = contentType;\n\n const createMutationName = getCreateMutationTypeName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(createMutationName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {\n // Create payload\n status: args.PublicationStatusArg,\n data: nonNull(getContentTypeInputName(contentType)),\n },\n\n async resolve(parent, args, context) {\n const { auth } = context.state;\n\n // Sanitize input data\n const sanitizedInputData = await strapi.contentAPI.sanitize.input(args.data, contentType, {\n auth,\n });\n\n return strapi.documents!(uid).create({\n ...args,\n data: sanitizedInputData,\n });\n },\n });\n };\n\n const addUpdateMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const { uid } = contentType;\n\n const updateMutationName = getUpdateMutationTypeName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(updateMutationName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {\n documentId: nonNull(idArg()),\n status: args.PublicationStatusArg,\n data: nonNull(getContentTypeInputName(contentType)),\n },\n\n async resolve(parent, args, context) {\n const { auth } = context.state;\n\n const { data, ...restParams } = args;\n\n // Sanitize input data\n const sanitizedInputData = await strapi.contentAPI.sanitize.input(data, contentType, {\n auth,\n });\n\n return strapi.documents!(uid).update({\n ...restParams,\n data: sanitizedInputData,\n });\n },\n });\n };\n\n const addDeleteMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.CollectionTypeSchema\n ) => {\n const { uid } = contentType;\n\n const deleteMutationName = getDeleteMutationTypeName(contentType);\n\n const { DELETE_MUTATION_RESPONSE_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n t.field(deleteMutationName, {\n type: DELETE_MUTATION_RESPONSE_TYPE_NAME,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {\n documentId: nonNull(idArg()),\n },\n\n async resolve(parent, args) {\n const { documentId } = args;\n\n await strapi.documents!(uid).delete({ documentId });\n\n return { documentId };\n },\n });\n };\n\n return {\n buildCollectionTypeMutations(contentType: Struct.CollectionTypeSchema) {\n const createMutationName = `Mutation.${getCreateMutationTypeName(contentType)}`;\n const updateMutationName = `Mutation.${getUpdateMutationTypeName(contentType)}`;\n const deleteMutationName = `Mutation.${getDeleteMutationTypeName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isCreateEnabled = isActionEnabled('create');\n const isUpdateEnabled = isActionEnabled('update');\n const isDeleteEnabled = isActionEnabled('delete');\n\n if (isCreateEnabled) {\n registerAuthConfig(createMutationName, { scope: [`${contentType.uid}.create`] });\n }\n\n if (isUpdateEnabled) {\n registerAuthConfig(updateMutationName, { scope: [`${contentType.uid}.update`] });\n }\n\n if (isDeleteEnabled) {\n registerAuthConfig(deleteMutationName, { scope: [`${contentType.uid}.delete`] });\n }\n\n return extendType({\n type: 'Mutation',\n\n definition(t) {\n if (isCreateEnabled) {\n addCreateMutation(t, contentType);\n }\n\n if (isUpdateEnabled) {\n addUpdateMutation(t, contentType);\n }\n\n if (isDeleteEnabled) {\n addDeleteMutation(t, contentType);\n }\n },\n });\n },\n };\n};\n","import { extendType, nonNull } from 'nexus';\nimport { errors } from '@strapi/utils';\nimport type * as Nexus from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nconst { NotFoundError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const {\n getUpdateMutationTypeName,\n getTypeName,\n getContentTypeInputName,\n getDeleteMutationTypeName,\n } = naming;\n\n const addUpdateMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const { uid } = contentType;\n\n const updateMutationName = getUpdateMutationTypeName(contentType);\n const typeName = getTypeName(contentType);\n\n t.field(updateMutationName, {\n type: typeName,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {\n // Update payload\n status: args.PublicationStatusArg,\n data: nonNull(getContentTypeInputName(contentType)),\n },\n\n async resolve(parent, args, context) {\n const { auth } = context.state;\n\n // Sanitize input data\n const sanitizedInputData = await strapi.contentAPI.sanitize.input(args.data, contentType, {\n auth,\n });\n\n const document = await strapi.db?.query(uid).findOne();\n\n if (document) {\n return strapi.documents!(uid).update({\n ...args,\n documentId: document.documentId,\n data: sanitizedInputData,\n });\n }\n\n return strapi.documents!(uid).create({\n ...args,\n data: sanitizedInputData,\n });\n },\n });\n };\n\n const addDeleteMutation = (\n t: Nexus.blocks.ObjectDefinitionBlock<'Mutation'>,\n contentType: Struct.SingleTypeSchema\n ) => {\n const { uid } = contentType;\n\n const deleteMutationName = getDeleteMutationTypeName(contentType);\n const { DELETE_MUTATION_RESPONSE_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n t.field(deleteMutationName, {\n type: DELETE_MUTATION_RESPONSE_TYPE_NAME,\n\n extensions: {\n strapi: {\n contentType,\n },\n },\n\n args: {},\n\n async resolve(parent, args) {\n const document = await strapi.db?.query(uid).findOne();\n\n if (!document) {\n throw new NotFoundError('Document not found');\n }\n\n await strapi.documents!(uid).delete({ ...args, documentId: document.documentId });\n\n return document;\n },\n });\n };\n\n return {\n buildSingleTypeMutations(contentType: Struct.SingleTypeSchema) {\n const updateMutationName = `Mutation.${getUpdateMutationTypeName(contentType)}`;\n const deleteMutationName = `Mutation.${getDeleteMutationTypeName(contentType)}`;\n\n const extension = getService('extension');\n\n const registerAuthConfig = (action: string, auth: any) => {\n return extension.use({ resolversConfig: { [action]: { auth } } });\n };\n\n const isActionEnabled = (action: string) => {\n return extension.shadowCRUD(contentType.uid).isActionEnabled(action);\n };\n\n const isUpdateEnabled = isActionEnabled('update');\n const isDeleteEnabled = isActionEnabled('delete');\n\n if (isUpdateEnabled) {\n registerAuthConfig(updateMutationName, { scope: [`${contentType.uid}.update`] });\n }\n\n if (isDeleteEnabled) {\n registerAuthConfig(deleteMutationName, { scope: [`${contentType.uid}.delete`] });\n }\n\n return extendType({\n type: 'Mutation',\n\n definition(t) {\n if (isUpdateEnabled) {\n addUpdateMutation(t, contentType);\n }\n\n if (isDeleteEnabled) {\n addDeleteMutation(t, contentType);\n }\n },\n });\n },\n };\n};\n","import createCollectionTypeMutationsBuilder from './collection-type';\nimport createSingleTypeMutationsBuilder from './single-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...createCollectionTypeMutationsBuilder(context),\n ...createSingleTypeMutationsBuilder(context),\n});\n","import { inputObjectType } from 'nexus';\nimport { contentTypes } from '@strapi/utils';\nimport type * as Nexus from 'nexus';\nimport type { Struct, Schema } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const rootLevelOperators = () => {\n const { operators } = strapi.plugin('graphql').service('builders').filters;\n\n return [operators.and, operators.or, operators.not];\n };\n\n const addScalarAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.AnyAttribute\n ) => {\n const { naming, mappers } = strapi.plugin('graphql').service('utils');\n\n const gqlType = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n builder.field(attributeName, { type: naming.getScalarFilterInputTypeName(gqlType) });\n };\n\n const addRelationalAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.Relation\n ) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n const { getFiltersInputTypeName } = utils.naming;\n const { isMorphRelation } = utils.attributes;\n\n const model = 'target' in attribute && strapi.getModel(attribute.target);\n\n // If there is no model corresponding to the attribute configuration\n // or if the attribute is a polymorphic relation, then ignore it\n if (!model || isMorphRelation(attribute)) return;\n\n // If the target model is disabled, then ignore it too\n if (extension.shadowCRUD(model.uid).isDisabled()) return;\n\n builder.field(attributeName, { type: getFiltersInputTypeName(model) });\n };\n\n const addComponentAttribute = (\n builder: Nexus.blocks.InputDefinitionBlock<any>,\n attributeName: string,\n attribute: Schema.Attribute.Component\n ) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n const { getFiltersInputTypeName } = utils.naming;\n\n const component = strapi.getModel(attribute.component);\n\n // If there is no component corresponding to the attribute configuration, then ignore it\n if (!component) return;\n\n // If the component is disabled, then ignore it too\n if (extension.shadowCRUD(component.uid).isDisabled()) return;\n\n builder.field(attributeName, { type: getFiltersInputTypeName(component) });\n };\n\n const buildContentTypeFilters = (contentType: Struct.ContentTypeSchema) => {\n const utils = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n\n const { getFiltersInputTypeName, getScalarFilterInputTypeName } = utils.naming;\n const { isStrapiScalar, isRelation, isComponent } = utils.attributes;\n\n const { attributes } = contentType;\n\n const filtersTypeName = getFiltersInputTypeName(contentType);\n\n return inputObjectType({\n name: filtersTypeName,\n\n definition(t) {\n const validAttributes = Object.entries(attributes)\n // Remove private attributes\n .filter(([attributeName]) => !contentTypes.isPrivateAttribute(contentType, attributeName))\n // Remove attributes that have been disabled using the shadow CRUD extension API\n .filter(([attributeName]) =>\n extension.shadowCRUD(contentType.uid).field(attributeName).hasFiltersEnabeld()\n );\n\n const isIDFilterEnabled = extension\n .shadowCRUD(contentType.uid)\n .field('documentId')\n .hasFiltersEnabeld();\n\n // Add an ID filter to the collection types\n if (contentType.kind === 'collectionType' && isIDFilterEnabled) {\n t.field('documentId', { type: getScalarFilterInputTypeName('ID') });\n }\n\n // Add every defined attribute\n for (const [attributeName, attribute] of validAttributes) {\n // Handle scalars\n if (isStrapiScalar(attribute)) {\n addScalarAttribute(t, attributeName, attribute);\n }\n\n // Handle relations\n else if (isRelation(attribute)) {\n addRelationalAttribute(t, attributeName, attribute as Schema.Attribute.Relation);\n }\n\n // Handle components\n else if (isComponent(attribute)) {\n addComponentAttribute(t, attributeName, attribute as Schema.Attribute.Component);\n }\n }\n\n // Conditional clauses\n for (const operator of rootLevelOperators()) {\n operator.add(t, filtersTypeName);\n }\n },\n });\n };\n\n return {\n buildContentTypeFilters,\n };\n};\n","import contentType from './content-type';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n ...contentType(context),\n});\n","import { inputObjectType, nonNull } from 'nexus';\nimport { contentTypes } from '@strapi/utils';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../types';\n\nconst { isWritableAttribute } = contentTypes;\n\nexport default ({ strapi }: Context) => {\n const { naming, mappers, attributes } = strapi.plugin('graphql').service('utils');\n const extension = strapi.plugin('graphql').service('extension');\n\n const { getComponentInputName, getContentTypeInputName, getEnumName, getDynamicZoneInputName } =\n naming;\n\n const {\n isStrapiScalar,\n isRelation,\n isMorphRelation,\n isMedia,\n isEnumeration,\n isComponent,\n isDynamicZone,\n } = attributes;\n\n return {\n buildInputType(contentType: Struct.Schema) {\n const { attributes, modelType } = contentType;\n\n const name = (\n modelType === 'component' ? getComponentInputName : getContentTypeInputName\n ).call(null, contentType);\n\n return inputObjectType({\n name,\n\n definition(t) {\n const isFieldEnabled = (fieldName: string) => {\n return extension.shadowCRUD(contentType.uid).field(fieldName).hasInputEnabled();\n };\n\n const validAttributes = Object.entries(attributes)\n // Remove private attributes\n .filter(\n ([attributeName]) => !contentTypes.isPrivateAttribute(contentType, attributeName)\n )\n // Remove non-writable attributes\n .filter(([attributeName]) => isWritableAttribute(contentType, attributeName))\n // Remove filters that have been disabled using the shadow CRUD extension API\n .filter(([attributeName]) => isFieldEnabled(attributeName));\n\n // Add the ID for the component to enable inplace updates\n if (modelType === 'component' && isFieldEnabled('id')) {\n t.id('id');\n }\n\n validAttributes.forEach(([attributeName, attribute]: [string, any]) => {\n // Enums\n if (isEnumeration(attribute)) {\n const enumTypeName = getEnumName(contentType, attributeName);\n\n t.field(attributeName, { type: enumTypeName });\n }\n\n // Scalars\n else if (isStrapiScalar(attribute)) {\n const gqlScalar = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n t.field(attributeName, { type: gqlScalar });\n }\n\n // Media\n else if (isMedia(attribute)) {\n const isMultiple = attribute.multiple === true;\n\n if (extension.shadowCRUD('plugin::upload.file').isDisabled()) {\n return;\n }\n\n if (isMultiple) {\n t.list.id(attributeName);\n } else {\n t.id(attributeName);\n }\n }\n\n // Regular Relations (ignore polymorphic relations)\n else if (isRelation(attribute) && !isMorphRelation(attribute)) {\n if (extension.shadowCRUD(attribute.target).isDisabled()) {\n return;\n }\n\n const isToManyRelation = attribute.relation.endsWith('Many');\n\n if (isToManyRelation) {\n t.list.id(attributeName);\n } else {\n t.id(attributeName);\n }\n }\n\n // Components\n else if (isComponent(attribute)) {\n const isRepeatable = attribute.repeatable === true;\n const component = strapi.components[attribute.component];\n const componentInputType = getComponentInputName(component);\n\n if (isRepeatable) {\n t.list.field(attributeName, { type: componentInputType });\n } else {\n t.field(attributeName, { type: componentInputType });\n }\n }\n\n // Dynamic Zones\n else if (isDynamicZone(attribute)) {\n const dzInputName = getDynamicZoneInputName(contentType, attributeName);\n\n t.list.field(attributeName, { type: nonNull(dzInputName) });\n }\n });\n },\n });\n },\n };\n};\n","import { unionType } from 'nexus';\nimport { prop } from 'lodash/fp';\n\nimport type { Context } from '../types';\n\nexport default ({ strapi, registry }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n const { KINDS, GENERIC_MORPH_TYPENAME } = strapi.plugin('graphql').service('constants');\n\n return {\n buildGenericMorphDefinition() {\n return unionType({\n name: GENERIC_MORPH_TYPENAME,\n\n resolveType(obj: any) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t: any) {\n const members = registry\n // Resolve every content-type or component\n .where(({ config }) => [KINDS.type, KINDS.component].includes(config.kind))\n // Only keep their name (the type's id)\n .map(prop('name'));\n\n t.members(...members);\n },\n });\n },\n };\n};\n","import { get } from 'lodash/fp';\nimport { async, errors } from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any = {}, context: any = {}) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n\n const dbQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const data = await strapi.db?.query(contentTypeUID).load(parent, attributeName, dbQuery);\n\n const info = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = get(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, info);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, info);\n };\n },\n };\n};\n","import { omit } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildQueriesResolvers({ contentType }: { contentType: Schema.ContentType }) {\n const { uid } = contentType;\n\n return {\n async findMany(parent: any, args: any, ctx: any) {\n await strapi.contentAPI.validate.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n return strapi.documents!(uid).findMany({ status: 'published', ...sanitizedQuery });\n },\n\n async findFirst(parent: any, args: any, ctx: any) {\n await strapi.contentAPI.validate.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n return strapi.documents!(uid).findFirst({ status: 'published', ...sanitizedQuery });\n },\n\n async findOne(parent: any, args: any, ctx: any) {\n const { documentId } = args;\n\n await strapi.contentAPI.validate.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n return strapi.documents!(uid).findOne({\n status: 'published',\n ...omit(['id', 'documentId'], sanitizedQuery),\n documentId,\n });\n },\n };\n },\n});\n","import type { Internal, Schema } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildComponentResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const { transformArgs } = strapi.plugin('graphql').service('builders').utils;\n\n return async (parent: any, args: any, ctx: any) => {\n const contentType = strapi.getModel(contentTypeUID);\n\n const { component: componentName } = contentType.attributes[\n attributeName\n ] as Schema.Attribute.Component;\n\n const component = strapi.getModel(componentName);\n\n const transformedArgs = transformArgs(args, { contentType: component, usePagination: true });\n await strapi.contentAPI.validate.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(transformedArgs, component, {\n auth: ctx?.state?.auth,\n });\n\n const dbQuery = strapi.get('query-params').transform(component.uid, sanitizedQuery);\n\n return strapi.db?.query(contentTypeUID).load(parent, attributeName, dbQuery);\n };\n },\n});\n","import type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n buildDynamicZoneResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n return async (parent: any) => {\n return strapi.db?.query(contentTypeUID).load(parent, attributeName);\n };\n },\n});\n","import type { Context } from '../../types';\n\nexport default ({ strapi }: Context) => ({\n async resolvePagination(parent: any, _: any, ctx: any) {\n const { args, resourceUID } = parent.info;\n const { start, limit } = args;\n const safeLimit = Math.max(limit, 1);\n const contentType = strapi.getModel(resourceUID);\n\n await strapi.contentAPI.validate.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {\n auth: ctx?.state?.auth,\n });\n\n const total = await strapi.documents!(resourceUID).count(sanitizedQuery);\n\n const pageSize = limit === -1 ? total - start : safeLimit;\n const pageCount = limit === -1 ? safeLimit : Math.ceil(total / safeLimit);\n const page = limit === -1 ? safeLimit : Math.floor(start / safeLimit) + 1;\n\n return { total, page, pageSize, pageCount };\n },\n});\n","import associationResolvers from './association';\nimport queriesResolvers from './query';\nimport componentResolvers from './component';\nimport dynamicZoneResolvers from './dynamic-zone';\nimport paginationResolvers from './pagination';\n\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n // Generics\n ...associationResolvers(context),\n\n // Builders\n ...queriesResolvers(context),\n ...componentResolvers(context),\n ...dynamicZoneResolvers(context),\n ...paginationResolvers(context),\n});\n","import { list } from 'nexus';\nimport type * as Nexus from 'nexus';\n\nconst AND_FIELD_NAME = 'and';\n\nexport default () => ({\n fieldName: AND_FIELD_NAME,\n\n strapiOperator: '$and',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(AND_FIELD_NAME, { type: list(type) });\n },\n});\n","import { list } from 'nexus';\nimport type * as Nexus from 'nexus';\n\nconst OR_FIELD_NAME = 'or';\n\nexport default () => ({\n fieldName: OR_FIELD_NAME,\n\n strapiOperator: '$or',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(OR_FIELD_NAME, { type: list(type) });\n },\n});\n","import type * as Nexus from 'nexus';\nimport type { Core } from '@strapi/types';\n\nconst NOT_FIELD_NAME = 'not';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n fieldName: NOT_FIELD_NAME,\n\n strapiOperator: '$not',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n const { naming, attributes } = strapi.plugin('graphql').service('utils');\n\n if (attributes.isGraphQLScalar({ type })) {\n t.field(NOT_FIELD_NAME, { type: naming.getScalarFilterInputTypeName(type) });\n } else {\n t.field(NOT_FIELD_NAME, { type });\n }\n },\n});\n","import { errors } from '@strapi/utils';\nimport type * as Nexus from 'nexus';\nimport type { Core } from '@strapi/types';\n\nconst { ValidationError } = errors;\n\nconst EQ_FIELD_NAME = 'eq';\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n fieldName: EQ_FIELD_NAME,\n\n strapiOperator: '$eq',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n const { GRAPHQL_SCALARS } = strapi.plugin('graphql').service('constants');\n\n if (!GRAPHQL_SCALARS.includes(type)) {\n throw new ValidationError(\n `Can't use \"${EQ_FIELD_NAME}\" operator. \"${type}\" is not a valid scalar`\n );\n }\n\n t.field(EQ_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst EQI_FIELD_NAME = 'eqi';\n\nexport default () => ({\n fieldName: EQI_FIELD_NAME,\n\n strapiOperator: '$eqi',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(EQI_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst NE_FIELD_NAME = 'ne';\n\nexport default () => ({\n fieldName: NE_FIELD_NAME,\n\n strapiOperator: '$ne',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(NE_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst NEI_FIELD_NAME = 'nei';\n\nexport default () => ({\n fieldName: NEI_FIELD_NAME,\n\n strapiOperator: '$nei',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(NEI_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst STARTS_WITH_FIELD_NAME = 'startsWith';\n\nexport default () => ({\n fieldName: STARTS_WITH_FIELD_NAME,\n\n strapiOperator: '$startsWith',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(STARTS_WITH_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst ENDS_WITH_FIELD_NAME = 'endsWith';\n\nexport default () => ({\n fieldName: ENDS_WITH_FIELD_NAME,\n\n strapiOperator: '$endsWith',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(ENDS_WITH_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst CONTAINS_FIELD_NAME = 'contains';\n\nexport default () => ({\n fieldName: CONTAINS_FIELD_NAME,\n\n strapiOperator: '$contains',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(CONTAINS_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst NOT_CONTAINS_FIELD_NAME = 'notContains';\n\nexport default () => ({\n fieldName: NOT_CONTAINS_FIELD_NAME,\n\n strapiOperator: '$notContains',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(NOT_CONTAINS_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst CONTAINSI_FIELD_NAME = 'containsi';\n\nexport default () => ({\n fieldName: CONTAINSI_FIELD_NAME,\n\n strapiOperator: '$containsi',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(CONTAINSI_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst NOT_CONTAINSI_FIELD_NAME = 'notContainsi';\n\nexport default () => ({\n fieldName: NOT_CONTAINSI_FIELD_NAME,\n\n strapiOperator: '$notContainsi',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(NOT_CONTAINSI_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst GT_FIELD_NAME = 'gt';\n\nexport default () => ({\n fieldName: GT_FIELD_NAME,\n\n strapiOperator: '$gt',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(GT_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst GTE_FIELD_NAME = 'gte';\n\nexport default () => ({\n fieldName: GTE_FIELD_NAME,\n\n strapiOperator: '$gte',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(GTE_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst LT_FIELD_NAME = 'lt';\n\nexport default () => ({\n fieldName: LT_FIELD_NAME,\n\n strapiOperator: '$lt',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(LT_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst LTE_FIELD_NAME = 'lte';\n\nexport default () => ({\n fieldName: LTE_FIELD_NAME,\n\n strapiOperator: '$lte',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(LTE_FIELD_NAME, { type });\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst NULL_FIELD_NAME = 'null';\n\nexport default () => ({\n fieldName: NULL_FIELD_NAME,\n\n strapiOperator: '$null',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>) {\n t.boolean(NULL_FIELD_NAME);\n },\n});\n","import type * as Nexus from 'nexus';\n\nconst NOT_NULL_FIELD_NAME = 'notNull';\n\nexport default () => ({\n fieldName: NOT_NULL_FIELD_NAME,\n\n strapiOperator: '$notNull',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>) {\n t.boolean(NOT_NULL_FIELD_NAME);\n },\n});\n","import { list } from 'nexus';\nimport type * as Nexus from 'nexus';\n\nconst IN_FIELD_NAME = 'in';\n\nexport default () => ({\n fieldName: IN_FIELD_NAME,\n\n strapiOperator: '$in',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(IN_FIELD_NAME, { type: list(type) });\n },\n});\n","import { list } from 'nexus';\nimport type * as Nexus from 'nexus';\n\nconst NOT_IN_FIELD_NAME = 'notIn';\n\nexport default () => ({\n fieldName: NOT_IN_FIELD_NAME,\n\n strapiOperator: '$notIn',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(NOT_IN_FIELD_NAME, { type: list(type) });\n },\n});\n","import { list } from 'nexus';\nimport type * as Nexus from 'nexus';\n\nconst BETWEEN_FIELD_NAME = 'between';\n\nexport default () => ({\n fieldName: BETWEEN_FIELD_NAME,\n\n strapiOperator: '$between',\n\n add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string) {\n t.field(BETWEEN_FIELD_NAME, { type: list(type) });\n },\n});\n","import type { Core } from '@strapi/types';\n\nimport { mapValues } from 'lodash/fp';\nimport andOperator from './and';\nimport orOperator from './or';\nimport notOperator from './not';\nimport eqOperator from './eq';\nimport eqiOperator from './eqi';\nimport neOperator from './ne';\nimport neiOperator from './nei';\nimport startsWithOperator from './starts-with';\nimport endsWithOperator from './ends-with';\nimport containsOperator from './contains';\nimport notContainsOperator from './not-contains';\nimport containsiOperator from './containsi';\nimport notContainsiOperator from './not-containsi';\nimport gtOperator from './gt';\nimport gteOperator from './gte';\nimport ltOperator from './lt';\nimport lteOperator from './lte';\nimport nullOperator from './null';\nimport notNullOperator from './not-null';\nimport inOperator from './in';\nimport notInOperator from './not-in';\nimport betweenOperator from './between';\n\nconst operators = {\n and: andOperator,\n or: orOperator,\n not: notOperator,\n eq: eqOperator,\n eqi: eqiOperator,\n ne: neOperator,\n nei: neiOperator,\n startsWith: startsWithOperator,\n endsWith: endsWithOperator,\n contains: containsOperator,\n notContains: notContainsOperator,\n containsi: containsiOperator,\n notContainsi: notContainsiOperator,\n gt: gtOperator,\n gte: gteOperator,\n lt: ltOperator,\n lte: lteOperator,\n null: nullOperator,\n notNull: notNullOperator,\n in: inOperator,\n notIn: notInOperator,\n between: betweenOperator,\n};\n\n// Instantiate every operator with the Strapi instance\nexport default ({ strapi }: { strapi: Core.Strapi }) =>\n mapValues((opCtor) => opCtor({ strapi }), operators);\n","import { entries, mapValues, omit } from 'lodash/fp';\nimport { idArg, nonNull } from 'nexus';\nimport { pagination } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nconst { withDefaultPagination } = pagination;\n\ntype ContentTypeArgsOptions = {\n multiple?: boolean;\n isNested?: boolean;\n};\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getService } = strapi.plugin('graphql');\n\n return {\n getContentTypeArgs(\n contentType: Struct.Schema,\n { multiple = true, isNested = false }: ContentTypeArgsOptions = {}\n ) {\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const { modelType } = contentType;\n\n // Components\n if (modelType === 'component') {\n if (!multiple) return {};\n\n return {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n }\n\n const { kind } = contentType;\n\n // Collection Types\n if (kind === 'collectionType') {\n if (!multiple) {\n return {\n documentId: nonNull(idArg()),\n status: args.PublicationStatusArg,\n };\n }\n\n const params = {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n\n if (!isNested) {\n Object.assign(params, { status: args.PublicationStatusArg });\n }\n\n return params;\n }\n\n // Single Types\n if (kind === 'singleType') {\n const params = {};\n\n if (!isNested) {\n Object.assign(params, { status: args.PublicationStatusArg });\n }\n\n return params;\n }\n },\n\n /**\n * Filter an object entries and keep only those whose value is a unique scalar attribute\n */\n getUniqueScalarAttributes(attributes: Struct.SchemaAttributes) {\n const { isStrapiScalar } = getService('utils').attributes;\n\n const uniqueAttributes = entries(attributes).filter(\n ([, attribute]) => isStrapiScalar(attribute) && 'unique' in attribute && attribute.unique\n );\n\n return Object.fromEntries(uniqueAttributes);\n },\n\n /**\n * Map each value from an attribute to a FiltersInput type name\n * @param {object} attributes - The attributes object to transform\n * @return {Object<string, string>}\n */\n scalarAttributesToFiltersMap(attributes: Struct.SchemaAttributes) {\n return mapValues((attribute) => {\n const { mappers, naming } = getService('utils');\n\n const gqlScalar = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n return naming.getScalarFilterInputTypeName(gqlScalar);\n }, attributes);\n },\n\n /**\n * Apply basic transform to GQL args\n */\n transformArgs(\n args: any,\n {\n contentType,\n usePagination = false,\n }: { contentType: Struct.ContentTypeSchema; usePagination?: boolean }\n ) {\n const { mappers } = getService('utils');\n const { config } = strapi.plugin('graphql');\n const { pagination = {}, filters = {} } = args;\n\n // Init\n const newArgs = omit(['pagination', 'filters'], args);\n\n // Pagination\n if (usePagination) {\n const defaultLimit: number = config('defaultLimit');\n const maxLimit: number = config('maxLimit');\n\n Object.assign(\n newArgs,\n withDefaultPagination(pagination, {\n maxLimit,\n defaults: {\n offset: { limit: defaultLimit },\n page: { pageSize: defaultLimit },\n },\n })\n );\n }\n\n // Filters\n if (args.filters) {\n Object.assign(newArgs, {\n filters: mappers.graphQLFiltersToStrapiQuery(filters, contentType),\n });\n }\n\n return newArgs;\n },\n };\n};\n","import { merge, map, pipe, reduce } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\n// Builders Factories\n\nimport enums from './enums';\nimport dynamicZone from './dynamic-zones';\nimport entity from './entity';\nimport typeBuilder from './type';\nimport response from './response';\nimport responseCollection from './response-collection';\nimport relationResponseCollection from './relation-response-collection';\nimport queries from './queries';\nimport mutations from './mutations';\nimport filters from './filters';\nimport inputs from './input';\nimport genericMorph from './generic-morph';\nimport resolvers from './resolvers';\n\n// Misc\n\nimport operators from './filters/operators';\nimport utils from './utils';\nimport type { TypeRegistry } from '../type-registry';\n\nconst buildersFactories = [\n enums,\n dynamicZone,\n entity,\n typeBuilder,\n response,\n responseCollection,\n relationResponseCollection,\n queries,\n mutations,\n filters,\n inputs,\n genericMorph,\n resolvers,\n];\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const buildersMap = new Map();\n\n return {\n /**\n * Instantiate every builder with a strapi instance & a type registry\n */\n new(name: string, registry: TypeRegistry) {\n const context = { strapi, registry };\n\n const builders = pipe(\n // Create a new instance of every builders\n map((factory: any) => factory(context)),\n // Merge every builder into the same object\n reduce(merge, {})\n ).call(null, buildersFactories);\n\n buildersMap.set(name, builders);\n\n return builders;\n },\n\n /**\n * Delete a set of builders instances from\n * the builders map for a given name\n */\n delete(name: string) {\n buildersMap.delete(name);\n },\n\n /**\n * Retrieve a set of builders instances from\n * the builders map for a given name\n */\n get(name: string) {\n return buildersMap.get(name);\n },\n\n filters: {\n operators: operators({ strapi }),\n },\n\n utils: utils({ strapi }),\n };\n};\n","export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n","import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n","export type InfoType = {\n args?: unknown;\n resourceUID?: string;\n};\n\nexport default () => ({\n toEntityResponse(value: unknown, info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { value, info: { args, resourceUID } };\n },\n\n toEntityResponseCollection(nodes: unknown[], info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { nodes, info: { args, resourceUID } };\n },\n});\n","import returnTypes from './return-types';\n\nexport default () => ({\n returnTypes: returnTypes(),\n});\n","import contentAPI from './content-api';\nimport typeRegistry from './type-registry';\nimport utils from './utils';\nimport constants from './constants';\nimport internals from './internals';\nimport builders from './builders';\nimport extension from './extension';\nimport format from './format';\n\nexport const services = {\n builders,\n 'content-api': contentAPI,\n constants,\n extension,\n format,\n internals,\n 'type-registry': typeRegistry,\n utils,\n};\n","import { config } from './config';\nimport { bootstrap } from './bootstrap';\nimport { services } from './services';\n\nexport default {\n config,\n bootstrap,\n services,\n};\n"],"names":["shadowCRUD","endpoint","subscriptions","maxLimit","apolloServer","v4CompatibilityMode","process","env","STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE","config","default","defaultConfig","HttpError","ForbiddenError","UnauthorizedError","ApplicationError","ValidationError","errors","formatToCode","name","toUpper","snakeCase","formatErrorToExtension","error","pick","createFormattedError","formattedError","message","code","originalError","options","extensions","GraphQLError","formatGraphqlError","unwrapResolverError","isEmpty","errorName","strapi","log","merge","mergeWith","a","b","isArray","concat","determineLandingPage","plugin","utils","service","configLandingPage","isProduction","NODE_ENV","localLanding","debug","playground","setEnabled","ApolloServerPluginLandingPageLocalDefault","prodLanding","ApolloServerPluginLandingPageProductionDefault","userLanding","userFunction","result","playgroundAlways","undefined","warn","isFunction","bootstrap","schema","buildSchema","path","landingPage","defaultServerConfig","validationRules","depthLimit","formatError","cors","uploads","bodyParserConfig","status400ForVariableCoercionErrors","plugins","cache","serverConfig","server","ApolloServer","start","Error","handler","push","isObject","bodyParser","ctx","next","state","route","info","type","isPlaygroundRequest","request","method","url","isEnabled","header","accept","includes","auth","authenticate","koaMiddleware","context","koaContext","routes","destroy","stop","PolicyError","getPoliciesConfig","propOr","createPoliciesMiddleware","resolverConfig","resolverPolicies","policies","get","resolve","parent","args","policyContext","createGraphQLPolicyContext","http","policyUtils","createPolicyContext","introspectionQueries","parseMiddlewares","resolverMiddlewares","getOr","map","middleware","wrapResolvers","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","baseResolver","middlewares","policyMiddleware","boundMiddlewares","index","collection","parents","length","authorize","authConfig","authContext","isValidType","hasConfig","isNil","isAuthDisabled","verify","first","registerCollectionType","contentType","registry","builders","getService","naming","KINDS","types","base","getTypeName","entity","getEntityName","response","getEntityResponseName","responseCollection","getEntityResponseCollectionName","relationResponseCollection","getRelationResponseCollectionName","queries","getEntityQueriesTypeName","mutations","getEntityMutationsTypeName","getConfig","kind","register","buildTypeDefinition","buildEntityDefinition","buildResponseDefinition","entityResponse","buildResponseCollectionDefinition","entityResponseCollection","buildRelationResponseCollectionDefinition","uid","areQueriesEnabled","buildCollectionTypeQueries","query","areMutationsEnabled","buildCollectionTypeMutations","mutation","registerSingleType","buildSingleTypeQueries","buildSingleTypeMutations","registerComponent","getComponentName","component","registerPolymorphicContentType","attributes","isMorphRelation","morphAttributes","attribute","attributeName","getMorphRelationTypeName","target","Array","members","getModel","unionType","resolveType","obj","__type","modelType","t","morph","registerScalars","scalars","scalar","registerInternals","buildInternalTypes","internalTypes","definitions","registerMany","registerDynamicZonesDefinition","isDynamicZone","dynamicZoneAttributes","keys","dzName","getDynamicZoneName","dzInputName","getDynamicZoneInputName","input","buildDynamicZoneDefinition","baseConfig","dynamicZone","registerEnumsDefinition","isEnumeration","enumAttributes","enumName","getEnumName","enumDefinition","buildEnumTypeDefinition","enum","registerInputsDefinition","getComponentInputName","getContentTypeInputName","call","buildInputType","registerFiltersDefinition","getFiltersInputTypeName","buildContentTypeFilters","filtersInput","mergeSchemas","addResolversToSchema","require","getGraphQLService","GENERIC_MORPH_TYPENAME","extensionService","isShadowCRUDEnabled","new","buildMergedSchema","generate","typeRegistry","schemaWithResolvers","resolvers","outputs","typegen","currentEnv","nexusSchema","makeSchema","mergeSchema","shouldGenerateArtifacts","wrappedNexusSchema","prunedNexusSchema","pruneSchema","typeDefs","schemas","contentTypes","values","components","prop","disable","contentTypesWithShadowCRUD","ct","registerAPITypes","registerMorphTypes","registerOptions","genericMorphType","buildGenericMorphDefinition","createTypeRegistry","Map","has","set","definitionsEntries","toObject","fromEntries","from","where","predicate","STRAPI_SCALARS","SCALARS_ASSOCIATIONS","missingStrapiScalars","difference","strapiScalarToGraphQLScalar","strapiScalar","virtualScalarAttributes","recursivelyReplaceScalarOperators","data","operators","filters","isDate","key","value","isOperator","newKey","strapiOperator","graphQLFiltersToStrapiQuery","isStrapiScalar","isMedia","isRelation","isComponent","ROOT_LEVEL_OPERATORS","and","or","not","filtersItem","resultMap","isAttribute","relModel","componentModel","rootLevelOperator","find","propEq","graphqlScalarToOperators","graphqlScalar","GRAPHQL_SCALAR_OPERATORS","associations","mapValues","operatorName","entityToResponseEntity","id","entitiesToResponseEntities","isGraphQLScalar","GRAPHQL_SCALARS","relation","typeName","defaultEnumName","toUpperCase","plurality","modelName","transformedPlugin","upperFirst","camelCase","transformedModelName","singular","getEntityMetaName","globalId","getComponentNameFromAttribute","suffix","componentName","baseName","getScalarFilterInputTypeName","scalarType","formattedAttr","buildCustomTypeNameGenerator","prefix","firstLetterCase","getCustomTypeName","pipe","lowerFirst","getFindQueryName","getFindConnectionQueryName","getFindOneQueryName","getCreateMutationTypeName","getUpdateMutationTypeName","getDeleteMutationTypeName","enabled","val","mappers","PAGINATION_TYPE_NAME","DELETE_MUTATION_RESPONSE_TYPE_NAME","PUBLICATION_STATUS_TYPE_NAME","ERROR_TYPE_NAME","RESPONSE_COLLECTION_META_TYPE_NAME","email","password","text","boolean","integer","string","enumeration","richtext","blocks","biginteger","float","decimal","json","date","time","datetime","timestamp","internal","allOperators","ID","Boolean","String","Int","Long","Float","Date","Time","DateTime","JSON","ERROR_CODES","emptyDynamicZone","SortArg","arg","list","PaginationInputType","inputObjectType","int","PaginationArg","PublicationStatusArg","publicationStatus","TimeScalar","GraphQLScalarType","description","serialize","parseType","parseValue","parseLiteral","ast","Kind","STRING","parseAndCast","parseFn","parsedValue","toISOString","split","GraphQLDate","asNexusMethod","GraphQLJSON","GraphQLDateTime","GraphQLLong","Pagination","objectType","nonNull","ResponseCollectionMeta","resolvePagination","DeleteMutationResponse","PublicationStatus","enumType","DRAFT","PUBLISHED","buildScalarFilters","helpers","getEnabledScalars","reduce","acc","operator","add","isValidPlaceholderCode","pagination","responseCollectionMeta","buildResponseCollectionMeta","deleteDocumentResponse","buildDeleteMutationResponse","strings","toRegressedEnumValue","componentsTypeNames","componentUID","__component","buildInputDefinition","parseData","__typename","join","omit","variables","OBJECT","valueFromASTUntyped","inputName","typeDefinition","inputDefinition","identity","addScalarAttribute","builder","gqlType","addComponentAttribute","localBuilder","getContentTypeArgs","buildComponentResolver","repeatable","targetComponent","contentTypeUID","multiple","isNested","addDynamicZoneAttribute","buildDynamicZoneResolver","constant","addEnumAttribute","addMediaAttribute","buildAssociationResolver","fileUID","isDisabled","fileContentType","res","nodes","addPolymorphicRelationalAttribute","isToManyRelation","endsWith","isUndefined","every","isString","addRegularRelationalAttribute","targetContentType","resolverScope","resolverPath","use","scope","isNotPrivate","isPrivateAttribute","isNotDisabled","hasOutputEnabled","attributesKey","deprecation","required","defaultTo","transformArgs","toEntityResponseCollection","returnTypes","findOneQueryName","findQueryName","findConnectionQueryName","registerAuthConfig","action","isActionEnabled","isFindOneEnabled","isFindEnabled","extendType","addFindOneQuery","addFindConnectionQuery","addFindQuery","transformedArgs","findOne","buildQueriesResolvers","usePagination","findMany","queryName","responseCollectionTypeName","resourceUID","findFirst","createCollectionTypeQueriesBuilder","createSingleTypeQueriesBuilder","addCreateMutation","createMutationName","status","sanitizedInputData","contentAPI","sanitize","documents","create","addUpdateMutation","updateMutationName","documentId","idArg","restParams","update","addDeleteMutation","deleteMutationName","delete","isCreateEnabled","isUpdateEnabled","isDeleteEnabled","NotFoundError","document","db","createCollectionTypeMutationsBuilder","createSingleTypeMutationsBuilder","rootLevelOperators","addRelationalAttribute","model","filtersTypeName","validAttributes","hasFiltersEnabeld","isIDFilterEnabled","isWritableAttribute","isFieldEnabled","hasInputEnabled","enumTypeName","gqlScalar","isMultiple","isRepeatable","componentInputType","toEntityResponse","isMediaAttribute","isMorphAttribute","targetUID","isToMany","validate","sanitizedQuery","dbQuery","transform","load","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","sanitizeMorphAttribute","async","_","limit","safeLimit","Math","max","total","count","pageSize","pageCount","ceil","page","floor","associationResolvers","queriesResolvers","componentResolvers","dynamicZoneResolvers","paginationResolvers","AND_FIELD_NAME","OR_FIELD_NAME","NOT_FIELD_NAME","EQ_FIELD_NAME","EQI_FIELD_NAME","NE_FIELD_NAME","NEI_FIELD_NAME","STARTS_WITH_FIELD_NAME","ENDS_WITH_FIELD_NAME","CONTAINS_FIELD_NAME","NOT_CONTAINS_FIELD_NAME","CONTAINSI_FIELD_NAME","NOT_CONTAINSI_FIELD_NAME","GT_FIELD_NAME","GTE_FIELD_NAME","LT_FIELD_NAME","LTE_FIELD_NAME","NULL_FIELD_NAME","NOT_NULL_FIELD_NAME","IN_FIELD_NAME","NOT_IN_FIELD_NAME","BETWEEN_FIELD_NAME","andOperator","orOperator","notOperator","eq","eqOperator","eqi","eqiOperator","ne","neOperator","nei","neiOperator","startsWithOperator","endsWithOperator","contains","containsOperator","notContains","notContainsOperator","containsi","containsiOperator","notContainsi","notContainsiOperator","gt","gtOperator","gte","gteOperator","lt","ltOperator","lte","lteOperator","null","nullOperator","notNull","notNullOperator","in","inOperator","notIn","notInOperator","between","betweenOperator","opCtor","withDefaultPagination","sort","params","assign","getUniqueScalarAttributes","uniqueAttributes","unique","scalarAttributesToFiltersMap","newArgs","defaultLimit","defaults","offset","buildersFactories","enums","typeBuilder","inputs","genericMorph","buildersMap","factory","getDefaultContentTypeConfig","disabledActions","getDefaultFieldConfig","ALL_ACTIONS","configs","areQueriesDisabled","areMutationsDisabled","matchingActions","isActionDisabled","disableQueries","disableMutations","disableAction","disableActions","actions","disableOutput","disableInput","disableFilters","getDefaultState","createExtension","createShadowCRUDManager","configuration","resolveConfig","nexus","services","constants","format","internals"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["import { config } from './config';\nimport { bootstrap } from './bootstrap';\nimport { services } from './services';\n\nexport default {\n config,\n bootstrap,\n services,\n};\n"],"names":["config","bootstrap","services"],"mappings":";;;;AAIA,YAAe;AACbA,IAAAA,MAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA;AACF,CAAE;;;;"}