@strapi/plugin-graphql 4.15.5 → 4.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/dist/admin/admin/src/index.d.ts +16 -0
  2. package/dist/admin/admin/src/pluginId.d.ts +1 -0
  3. package/dist/admin/index.js +31 -17
  4. package/dist/admin/index.js.map +1 -1
  5. package/dist/admin/index.mjs +31 -17
  6. package/dist/admin/index.mjs.map +1 -1
  7. package/dist/server/bootstrap.d.ts +5 -0
  8. package/dist/server/bootstrap.d.ts.map +1 -0
  9. package/dist/server/config/default-config.d.ts +9 -0
  10. package/dist/server/config/default-config.d.ts.map +1 -0
  11. package/dist/server/config/index.d.ts +10 -0
  12. package/dist/server/config/index.d.ts.map +1 -0
  13. package/dist/server/format-graphql-error.d.ts +4 -0
  14. package/dist/server/format-graphql-error.d.ts.map +1 -0
  15. package/dist/server/index.d.ts +301 -0
  16. package/dist/server/index.d.ts.map +1 -0
  17. package/dist/server/index.js +2970 -0
  18. package/dist/server/index.js.map +1 -0
  19. package/dist/server/index.mjs +2949 -0
  20. package/dist/server/index.mjs.map +1 -0
  21. package/dist/server/services/builders/dynamic-zones.d.ts +14 -0
  22. package/dist/server/services/builders/dynamic-zones.d.ts.map +1 -0
  23. package/dist/server/services/builders/entity-meta.d.ts +6 -0
  24. package/dist/server/services/builders/entity-meta.d.ts.map +1 -0
  25. package/dist/server/services/builders/entity.d.ts +12 -0
  26. package/dist/server/services/builders/entity.d.ts.map +1 -0
  27. package/dist/server/services/builders/enums.d.ts +8 -0
  28. package/dist/server/services/builders/enums.d.ts.map +1 -0
  29. package/dist/server/services/builders/filters/content-type.d.ts +8 -0
  30. package/dist/server/services/builders/filters/content-type.d.ts.map +1 -0
  31. package/dist/server/services/builders/filters/index.d.ts +6 -0
  32. package/dist/server/services/builders/filters/index.d.ts.map +1 -0
  33. package/dist/server/services/builders/filters/operators/and.d.ts +8 -0
  34. package/dist/server/services/builders/filters/operators/and.d.ts.map +1 -0
  35. package/dist/server/services/builders/filters/operators/between.d.ts +8 -0
  36. package/dist/server/services/builders/filters/operators/between.d.ts.map +1 -0
  37. package/dist/server/services/builders/filters/operators/contains.d.ts +8 -0
  38. package/dist/server/services/builders/filters/operators/contains.d.ts.map +1 -0
  39. package/dist/server/services/builders/filters/operators/containsi.d.ts +8 -0
  40. package/dist/server/services/builders/filters/operators/containsi.d.ts.map +1 -0
  41. package/dist/server/services/builders/filters/operators/ends-with.d.ts +8 -0
  42. package/dist/server/services/builders/filters/operators/ends-with.d.ts.map +1 -0
  43. package/dist/server/services/builders/filters/operators/eq.d.ts +11 -0
  44. package/dist/server/services/builders/filters/operators/eq.d.ts.map +1 -0
  45. package/dist/server/services/builders/filters/operators/eqi.d.ts +8 -0
  46. package/dist/server/services/builders/filters/operators/eqi.d.ts.map +1 -0
  47. package/dist/server/services/builders/filters/operators/gt.d.ts +8 -0
  48. package/dist/server/services/builders/filters/operators/gt.d.ts.map +1 -0
  49. package/dist/server/services/builders/filters/operators/gte.d.ts +8 -0
  50. package/dist/server/services/builders/filters/operators/gte.d.ts.map +1 -0
  51. package/dist/server/services/builders/filters/operators/in.d.ts +8 -0
  52. package/dist/server/services/builders/filters/operators/in.d.ts.map +1 -0
  53. package/dist/server/services/builders/filters/operators/index.d.ts +11 -0
  54. package/dist/server/services/builders/filters/operators/index.d.ts.map +1 -0
  55. package/dist/server/services/builders/filters/operators/lt.d.ts +8 -0
  56. package/dist/server/services/builders/filters/operators/lt.d.ts.map +1 -0
  57. package/dist/server/services/builders/filters/operators/lte.d.ts +8 -0
  58. package/dist/server/services/builders/filters/operators/lte.d.ts.map +1 -0
  59. package/dist/server/services/builders/filters/operators/ne.d.ts +8 -0
  60. package/dist/server/services/builders/filters/operators/ne.d.ts.map +1 -0
  61. package/dist/server/services/builders/filters/operators/nei.d.ts +8 -0
  62. package/dist/server/services/builders/filters/operators/nei.d.ts.map +1 -0
  63. package/dist/server/services/builders/filters/operators/not-contains.d.ts +8 -0
  64. package/dist/server/services/builders/filters/operators/not-contains.d.ts.map +1 -0
  65. package/dist/server/services/builders/filters/operators/not-containsi.d.ts +8 -0
  66. package/dist/server/services/builders/filters/operators/not-containsi.d.ts.map +1 -0
  67. package/dist/server/services/builders/filters/operators/not-in.d.ts +8 -0
  68. package/dist/server/services/builders/filters/operators/not-in.d.ts.map +1 -0
  69. package/dist/server/services/builders/filters/operators/not-null.d.ts +8 -0
  70. package/dist/server/services/builders/filters/operators/not-null.d.ts.map +1 -0
  71. package/dist/server/services/builders/filters/operators/not.d.ts +11 -0
  72. package/dist/server/services/builders/filters/operators/not.d.ts.map +1 -0
  73. package/dist/server/services/builders/filters/operators/null.d.ts +8 -0
  74. package/dist/server/services/builders/filters/operators/null.d.ts.map +1 -0
  75. package/dist/server/services/builders/filters/operators/or.d.ts +8 -0
  76. package/dist/server/services/builders/filters/operators/or.d.ts.map +1 -0
  77. package/dist/server/services/builders/filters/operators/starts-with.d.ts +8 -0
  78. package/dist/server/services/builders/filters/operators/starts-with.d.ts.map +1 -0
  79. package/dist/server/services/builders/generic-morph.d.ts +6 -0
  80. package/dist/server/services/builders/generic-morph.d.ts.map +1 -0
  81. package/dist/server/services/builders/index.d.ts +58 -0
  82. package/dist/server/services/builders/index.d.ts.map +1 -0
  83. package/dist/server/services/builders/input.d.ts +7 -0
  84. package/dist/server/services/builders/input.d.ts.map +1 -0
  85. package/dist/server/services/builders/mutations/collection-type.d.ts +8 -0
  86. package/dist/server/services/builders/mutations/collection-type.d.ts.map +1 -0
  87. package/dist/server/services/builders/mutations/index.d.ts +7 -0
  88. package/dist/server/services/builders/mutations/index.d.ts.map +1 -0
  89. package/dist/server/services/builders/mutations/single-type.d.ts +8 -0
  90. package/dist/server/services/builders/mutations/single-type.d.ts.map +1 -0
  91. package/dist/server/services/builders/queries/collection-type.d.ts +8 -0
  92. package/dist/server/services/builders/queries/collection-type.d.ts.map +1 -0
  93. package/dist/server/services/builders/queries/index.d.ts +7 -0
  94. package/dist/server/services/builders/queries/index.d.ts.map +1 -0
  95. package/dist/server/services/builders/queries/single-type.d.ts +8 -0
  96. package/dist/server/services/builders/queries/single-type.d.ts.map +1 -0
  97. package/dist/server/services/builders/relation-response-collection.d.ts +10 -0
  98. package/dist/server/services/builders/relation-response-collection.d.ts.map +1 -0
  99. package/dist/server/services/builders/resolvers/association.d.ts +10 -0
  100. package/dist/server/services/builders/resolvers/association.d.ts.map +1 -0
  101. package/dist/server/services/builders/resolvers/component.d.ts +10 -0
  102. package/dist/server/services/builders/resolvers/component.d.ts.map +1 -0
  103. package/dist/server/services/builders/resolvers/dynamic-zone.d.ts +10 -0
  104. package/dist/server/services/builders/resolvers/dynamic-zone.d.ts.map +1 -0
  105. package/dist/server/services/builders/resolvers/index.d.ts +30 -0
  106. package/dist/server/services/builders/resolvers/index.d.ts.map +1 -0
  107. package/dist/server/services/builders/resolvers/mutation.d.ts +13 -0
  108. package/dist/server/services/builders/resolvers/mutation.d.ts.map +1 -0
  109. package/dist/server/services/builders/resolvers/query.d.ts +12 -0
  110. package/dist/server/services/builders/resolvers/query.d.ts.map +1 -0
  111. package/dist/server/services/builders/response-collection.d.ts +12 -0
  112. package/dist/server/services/builders/response-collection.d.ts.map +1 -0
  113. package/dist/server/services/builders/response.d.ts +10 -0
  114. package/dist/server/services/builders/response.d.ts.map +1 -0
  115. package/dist/server/services/builders/type.d.ts +19 -0
  116. package/dist/server/services/builders/type.d.ts.map +1 -0
  117. package/dist/server/services/builders/utils.d.ts +52 -0
  118. package/dist/server/services/builders/utils.d.ts.map +1 -0
  119. package/dist/server/services/constants.d.ts +128 -0
  120. package/dist/server/services/constants.d.ts.map +1 -0
  121. package/dist/server/services/content-api/index.d.ts +8 -0
  122. package/dist/server/services/content-api/index.d.ts.map +1 -0
  123. package/dist/server/services/content-api/policy.d.ts +7 -0
  124. package/dist/server/services/content-api/policy.d.ts.map +1 -0
  125. package/dist/server/services/content-api/register-functions/collection-type.d.ts +9 -0
  126. package/dist/server/services/content-api/register-functions/collection-type.d.ts.map +1 -0
  127. package/dist/server/services/content-api/register-functions/component.d.ts +9 -0
  128. package/dist/server/services/content-api/register-functions/component.d.ts.map +1 -0
  129. package/dist/server/services/content-api/register-functions/content-type/dynamic-zones.d.ts +9 -0
  130. package/dist/server/services/content-api/register-functions/content-type/dynamic-zones.d.ts.map +1 -0
  131. package/dist/server/services/content-api/register-functions/content-type/enums.d.ts +9 -0
  132. package/dist/server/services/content-api/register-functions/content-type/enums.d.ts.map +1 -0
  133. package/dist/server/services/content-api/register-functions/content-type/filters.d.ts +9 -0
  134. package/dist/server/services/content-api/register-functions/content-type/filters.d.ts.map +1 -0
  135. package/dist/server/services/content-api/register-functions/content-type/index.d.ts +24 -0
  136. package/dist/server/services/content-api/register-functions/content-type/index.d.ts.map +1 -0
  137. package/dist/server/services/content-api/register-functions/content-type/inputs.d.ts +9 -0
  138. package/dist/server/services/content-api/register-functions/content-type/inputs.d.ts.map +1 -0
  139. package/dist/server/services/content-api/register-functions/index.d.ts +9 -0
  140. package/dist/server/services/content-api/register-functions/index.d.ts.map +1 -0
  141. package/dist/server/services/content-api/register-functions/internals.d.ts +4 -0
  142. package/dist/server/services/content-api/register-functions/internals.d.ts.map +1 -0
  143. package/dist/server/services/content-api/register-functions/polymorphic.d.ts +5 -0
  144. package/dist/server/services/content-api/register-functions/polymorphic.d.ts.map +1 -0
  145. package/dist/server/services/content-api/register-functions/scalars.d.ts +4 -0
  146. package/dist/server/services/content-api/register-functions/scalars.d.ts.map +1 -0
  147. package/dist/server/services/content-api/register-functions/single-type.d.ts +9 -0
  148. package/dist/server/services/content-api/register-functions/single-type.d.ts.map +1 -0
  149. package/dist/server/services/content-api/wrap-resolvers.d.ts +18 -0
  150. package/dist/server/services/content-api/wrap-resolvers.d.ts.map +1 -0
  151. package/dist/server/services/extension/extension.d.ts +63 -0
  152. package/dist/server/services/extension/extension.d.ts.map +1 -0
  153. package/dist/server/services/extension/index.d.ts +3 -0
  154. package/dist/server/services/extension/index.d.ts.map +1 -0
  155. package/dist/server/services/extension/shadow-crud-manager.d.ts +40 -0
  156. package/dist/server/services/extension/shadow-crud-manager.d.ts.map +1 -0
  157. package/dist/server/services/format/index.d.ts +20 -0
  158. package/dist/server/services/format/index.d.ts.map +1 -0
  159. package/dist/server/services/format/return-types.d.ts +22 -0
  160. package/dist/server/services/format/return-types.d.ts.map +1 -0
  161. package/dist/server/services/index.d.ts +287 -0
  162. package/dist/server/services/index.d.ts.map +1 -0
  163. package/dist/server/services/internals/args/index.d.ts +8 -0
  164. package/dist/server/services/internals/args/index.d.ts.map +1 -0
  165. package/dist/server/services/internals/args/pagination.d.ts +3 -0
  166. package/dist/server/services/internals/args/pagination.d.ts.map +1 -0
  167. package/dist/server/services/internals/args/publication-state.d.ts +4 -0
  168. package/dist/server/services/internals/args/publication-state.d.ts.map +1 -0
  169. package/dist/server/services/internals/args/sort.d.ts +3 -0
  170. package/dist/server/services/internals/args/sort.d.ts.map +1 -0
  171. package/dist/server/services/internals/helpers/get-enabled-scalars.d.ts +4 -0
  172. package/dist/server/services/internals/helpers/get-enabled-scalars.d.ts.map +1 -0
  173. package/dist/server/services/internals/helpers/index.d.ts +6 -0
  174. package/dist/server/services/internals/helpers/index.d.ts.map +1 -0
  175. package/dist/server/services/internals/index.d.ts +46 -0
  176. package/dist/server/services/internals/index.d.ts.map +1 -0
  177. package/dist/server/services/internals/scalars/date.d.ts +3 -0
  178. package/dist/server/services/internals/scalars/date.d.ts.map +1 -0
  179. package/dist/server/services/internals/scalars/index.d.ts +10 -0
  180. package/dist/server/services/internals/scalars/index.d.ts.map +1 -0
  181. package/dist/server/services/internals/scalars/time.d.ts +8 -0
  182. package/dist/server/services/internals/scalars/time.d.ts.map +1 -0
  183. package/dist/server/services/internals/types/error.d.ts +8 -0
  184. package/dist/server/services/internals/types/error.d.ts.map +1 -0
  185. package/dist/server/services/internals/types/filters.d.ts +6 -0
  186. package/dist/server/services/internals/types/filters.d.ts.map +1 -0
  187. package/dist/server/services/internals/types/index.d.ts +28 -0
  188. package/dist/server/services/internals/types/index.d.ts.map +1 -0
  189. package/dist/server/services/internals/types/pagination.d.ts +10 -0
  190. package/dist/server/services/internals/types/pagination.d.ts.map +1 -0
  191. package/dist/server/services/internals/types/publication-state.d.ts +10 -0
  192. package/dist/server/services/internals/types/publication-state.d.ts.map +1 -0
  193. package/dist/server/services/internals/types/response-collection-meta.d.ts +11 -0
  194. package/dist/server/services/internals/types/response-collection-meta.d.ts.map +1 -0
  195. package/dist/server/services/type-registry.d.ts +15 -0
  196. package/dist/server/services/type-registry.d.ts.map +1 -0
  197. package/dist/server/services/types.d.ts +7 -0
  198. package/dist/server/services/types.d.ts.map +1 -0
  199. package/dist/server/services/utils/attributes.d.ts +14 -0
  200. package/dist/server/services/utils/attributes.d.ts.map +1 -0
  201. package/dist/server/services/utils/index.d.ts +81 -0
  202. package/dist/server/services/utils/index.d.ts.map +1 -0
  203. package/dist/server/services/utils/mappers/entity-to-response-entity.d.ts +33 -0
  204. package/dist/server/services/utils/mappers/entity-to-response-entity.d.ts.map +1 -0
  205. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.d.ts +13 -0
  206. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.d.ts.map +1 -0
  207. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.d.ts +6 -0
  208. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.d.ts.map +1 -0
  209. package/dist/server/services/utils/mappers/index.d.ts +36 -0
  210. package/dist/server/services/utils/mappers/index.d.ts.map +1 -0
  211. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.d.ts +9 -0
  212. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.d.ts.map +1 -0
  213. package/dist/server/services/utils/naming.d.ts +37 -0
  214. package/dist/server/services/utils/naming.d.ts.map +1 -0
  215. package/package.json +28 -16
  216. package/strapi-server.js +1 -11
  217. package/.eslintignore +0 -1
  218. package/.eslintrc +0 -14
  219. package/admin/src/index.js +0 -38
  220. package/admin/src/pluginId.js +0 -5
  221. package/admin/src/translations/dk.json +0 -5
  222. package/admin/src/translations/en.json +0 -5
  223. package/admin/src/translations/es.json +0 -5
  224. package/admin/src/translations/fr.json +0 -5
  225. package/admin/src/translations/pl.json +0 -5
  226. package/admin/src/translations/ru.json +0 -5
  227. package/admin/src/translations/sv.json +0 -5
  228. package/admin/src/translations/tr.json +0 -5
  229. package/admin/src/translations/zh-Hans.json +0 -5
  230. package/admin/src/translations/zh.json +0 -5
  231. package/packup.config.ts +0 -42
  232. package/server/bootstrap.js +0 -134
  233. package/server/config/default-config.js +0 -13
  234. package/server/config/index.js +0 -7
  235. package/server/format-graphql-error.js +0 -45
  236. package/server/services/builders/dynamic-zones.js +0 -97
  237. package/server/services/builders/entity-meta.js +0 -7
  238. package/server/services/builders/entity.js +0 -43
  239. package/server/services/builders/enums.js +0 -26
  240. package/server/services/builders/filters/content-type.js +0 -111
  241. package/server/services/builders/filters/index.js +0 -7
  242. package/server/services/builders/filters/operators/and.js +0 -15
  243. package/server/services/builders/filters/operators/between.js +0 -15
  244. package/server/services/builders/filters/operators/contains.js +0 -13
  245. package/server/services/builders/filters/operators/containsi.js +0 -13
  246. package/server/services/builders/filters/operators/ends-with.js +0 -13
  247. package/server/services/builders/filters/operators/eq.js +0 -23
  248. package/server/services/builders/filters/operators/eqi.js +0 -13
  249. package/server/services/builders/filters/operators/gt.js +0 -13
  250. package/server/services/builders/filters/operators/gte.js +0 -13
  251. package/server/services/builders/filters/operators/in.js +0 -15
  252. package/server/services/builders/filters/operators/index.js +0 -40
  253. package/server/services/builders/filters/operators/lt.js +0 -13
  254. package/server/services/builders/filters/operators/lte.js +0 -13
  255. package/server/services/builders/filters/operators/ne.js +0 -13
  256. package/server/services/builders/filters/operators/nei.js +0 -13
  257. package/server/services/builders/filters/operators/not-contains.js +0 -13
  258. package/server/services/builders/filters/operators/not-containsi.js +0 -13
  259. package/server/services/builders/filters/operators/not-in.js +0 -15
  260. package/server/services/builders/filters/operators/not-null.js +0 -13
  261. package/server/services/builders/filters/operators/not.js +0 -19
  262. package/server/services/builders/filters/operators/null.js +0 -13
  263. package/server/services/builders/filters/operators/or.js +0 -15
  264. package/server/services/builders/filters/operators/starts-with.js +0 -13
  265. package/server/services/builders/generic-morph.js +0 -41
  266. package/server/services/builders/index.js +0 -92
  267. package/server/services/builders/input.js +0 -121
  268. package/server/services/builders/mutations/collection-type.js +0 -191
  269. package/server/services/builders/mutations/index.js +0 -9
  270. package/server/services/builders/mutations/single-type.js +0 -164
  271. package/server/services/builders/queries/collection-type.js +0 -122
  272. package/server/services/builders/queries/index.js +0 -9
  273. package/server/services/builders/queries/single-type.js +0 -71
  274. package/server/services/builders/relation-response-collection.js +0 -32
  275. package/server/services/builders/resolvers/association.js +0 -92
  276. package/server/services/builders/resolvers/component.js +0 -25
  277. package/server/services/builders/resolvers/dynamic-zone.js +0 -9
  278. package/server/services/builders/resolvers/index.js +0 -18
  279. package/server/services/builders/resolvers/mutation.js +0 -38
  280. package/server/services/builders/resolvers/query.js +0 -34
  281. package/server/services/builders/response-collection.js +0 -40
  282. package/server/services/builders/response.js +0 -32
  283. package/server/services/builders/type.js +0 -363
  284. package/server/services/builders/utils.js +0 -134
  285. package/server/services/constants.js +0 -153
  286. package/server/services/content-api/index.js +0 -188
  287. package/server/services/content-api/policy.js +0 -60
  288. package/server/services/content-api/register-functions/collection-type.js +0 -72
  289. package/server/services/content-api/register-functions/component.js +0 -15
  290. package/server/services/content-api/register-functions/content-type/dynamic-zones.js +0 -36
  291. package/server/services/content-api/register-functions/content-type/enums.js +0 -33
  292. package/server/services/content-api/register-functions/content-type/filters.js +0 -15
  293. package/server/services/content-api/register-functions/content-type/index.js +0 -13
  294. package/server/services/content-api/register-functions/content-type/inputs.js +0 -21
  295. package/server/services/content-api/register-functions/index.js +0 -22
  296. package/server/services/content-api/register-functions/internals.js +0 -13
  297. package/server/services/content-api/register-functions/polymorphic.js +0 -69
  298. package/server/services/content-api/register-functions/scalars.js +0 -14
  299. package/server/services/content-api/register-functions/single-type.js +0 -72
  300. package/server/services/content-api/wrap-resolvers.js +0 -148
  301. package/server/services/extension/extension.js +0 -94
  302. package/server/services/extension/index.js +0 -5
  303. package/server/services/extension/shadow-crud-manager.js +0 -161
  304. package/server/services/format/index.js +0 -7
  305. package/server/services/format/return-types.js +0 -27
  306. package/server/services/index.js +0 -21
  307. package/server/services/internals/args/index.js +0 -11
  308. package/server/services/internals/args/pagination.js +0 -19
  309. package/server/services/internals/args/publication-state.js +0 -12
  310. package/server/services/internals/args/sort.js +0 -10
  311. package/server/services/internals/helpers/get-enabled-scalars.js +0 -17
  312. package/server/services/internals/helpers/index.js +0 -7
  313. package/server/services/internals/index.js +0 -13
  314. package/server/services/internals/scalars/date.js +0 -22
  315. package/server/services/internals/scalars/index.js +0 -17
  316. package/server/services/internals/scalars/time.js +0 -36
  317. package/server/services/internals/types/error.js +0 -34
  318. package/server/services/internals/types/filters.js +0 -39
  319. package/server/services/internals/types/index.js +0 -29
  320. package/server/services/internals/types/pagination.js +0 -24
  321. package/server/services/internals/types/publication-state.js +0 -24
  322. package/server/services/internals/types/response-collection-meta.js +0 -46
  323. package/server/services/type-registry.js +0 -104
  324. package/server/services/utils/attributes.js +0 -78
  325. package/server/services/utils/index.js +0 -11
  326. package/server/services/utils/mappers/entity-to-response-entity.js +0 -12
  327. package/server/services/utils/mappers/graphql-filters-to-strapi-query.js +0 -119
  328. package/server/services/utils/mappers/graphql-scalar-to-operators.js +0 -17
  329. package/server/services/utils/mappers/index.js +0 -13
  330. package/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js +0 -25
  331. package/server/services/utils/naming.js +0 -287
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- const getEnabledScalars = require('./get-enabled-scalars');
4
-
5
- module.exports = (context) => ({
6
- getEnabledScalars: getEnabledScalars(context),
7
- });
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- const args = require('./args');
4
- const scalars = require('./scalars');
5
- const types = require('./types');
6
- const helpers = require('./helpers');
7
-
8
- module.exports = (context) => ({
9
- args: args(context),
10
- scalars: scalars(context),
11
- buildInternalTypes: types(context),
12
- helpers: helpers(context),
13
- });
@@ -1,22 +0,0 @@
1
- 'use strict';
2
-
3
- const { GraphQLDate } = require('graphql-scalars');
4
-
5
- const parseAndCast =
6
- (parseFn) =>
7
- (...args) => {
8
- const parsedValue = parseFn(...args);
9
-
10
- if (parsedValue instanceof Date) {
11
- return parsedValue.toISOString().split('T')[0];
12
- }
13
-
14
- return parsedValue;
15
- };
16
-
17
- // GraphQLDate casts the date string to new Date, we want to keep it as a string so we cast it back to a string
18
- // see https://github.com/excitement-engineer/graphql-iso-date/issues/106
19
- GraphQLDate.parseValue = parseAndCast(GraphQLDate.parseValue);
20
- GraphQLDate.parseLiteral = parseAndCast(GraphQLDate.parseLiteral);
21
-
22
- module.exports = GraphQLDate;
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const { GraphQLDateTime, GraphQLLong, GraphQLJSON } = require('graphql-scalars');
4
- const { GraphQLUpload } = require('graphql-upload');
5
- const { asNexusMethod } = require('nexus');
6
-
7
- const TimeScalar = require('./time');
8
- const GraphQLDate = require('./date');
9
-
10
- module.exports = () => ({
11
- JSON: asNexusMethod(GraphQLJSON, 'json'),
12
- DateTime: asNexusMethod(GraphQLDateTime, 'dateTime'),
13
- Time: asNexusMethod(TimeScalar, 'time'),
14
- Date: asNexusMethod(GraphQLDate, 'date'),
15
- Long: asNexusMethod(GraphQLLong, 'long'),
16
- Upload: asNexusMethod(GraphQLUpload, 'upload'),
17
- });
@@ -1,36 +0,0 @@
1
- 'use strict';
2
-
3
- const { GraphQLScalarType } = require('graphql');
4
- const { Kind } = require('graphql');
5
- const { parseType } = require('@strapi/utils');
6
- const { ValidationError } = require('@strapi/utils').errors;
7
-
8
- /**
9
- * A GraphQL scalar used to store Time (HH:mm:ss.SSS) values
10
- * @type {GraphQLScalarType}
11
- */
12
- const TimeScalar = new GraphQLScalarType({
13
- name: 'Time',
14
-
15
- description: 'A time string with format HH:mm:ss.SSS',
16
-
17
- serialize(value) {
18
- return parseType({ type: 'time', value });
19
- },
20
-
21
- parseValue(value) {
22
- return parseType({ type: 'time', value });
23
- },
24
-
25
- parseLiteral(ast) {
26
- if (ast.kind !== Kind.STRING) {
27
- throw new ValidationError('Time cannot represent non string type');
28
- }
29
-
30
- const { value } = ast;
31
-
32
- return parseType({ type: 'time', value });
33
- },
34
- });
35
-
36
- module.exports = TimeScalar;
@@ -1,34 +0,0 @@
1
- 'use strict';
2
-
3
- const { objectType } = require('nexus');
4
- const { get } = require('lodash/fp');
5
- const { ValidationError } = require('@strapi/utils').errors;
6
-
7
- /**
8
- * Build an Error object type
9
- * @return {Object<string, NexusObjectTypeDef>}
10
- */
11
- module.exports = ({ strapi }) => {
12
- const { ERROR_CODES, ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');
13
-
14
- return objectType({
15
- name: ERROR_TYPE_NAME,
16
-
17
- definition(t) {
18
- t.nonNull.string('code', {
19
- resolve(parent) {
20
- const code = get('code', parent);
21
-
22
- const isValidPlaceholderCode = Object.values(ERROR_CODES).includes(code);
23
- if (!isValidPlaceholderCode) {
24
- throw new ValidationError(`"${code}" is not a valid code value`);
25
- }
26
-
27
- return code;
28
- },
29
- });
30
-
31
- t.string('message');
32
- },
33
- });
34
- };
@@ -1,39 +0,0 @@
1
- 'use strict';
2
-
3
- const { inputObjectType } = require('nexus');
4
-
5
- /**
6
- * Build a map of filters type for every GraphQL scalars
7
- * @return {Object<string, NexusInputTypeDef>}
8
- */
9
- const buildScalarFilters = ({ strapi }) => {
10
- const { naming, mappers } = strapi.plugin('graphql').service('utils');
11
- const { helpers } = strapi.plugin('graphql').service('internals');
12
-
13
- return helpers.getEnabledScalars().reduce((acc, type) => {
14
- const operators = mappers.graphqlScalarToOperators(type);
15
- const typeName = naming.getScalarFilterInputTypeName(type);
16
-
17
- if (!operators || operators.length === 0) {
18
- return acc;
19
- }
20
-
21
- return {
22
- ...acc,
23
-
24
- [typeName]: inputObjectType({
25
- name: typeName,
26
-
27
- definition(t) {
28
- for (const operator of operators) {
29
- operator.add(t, type);
30
- }
31
- },
32
- }),
33
- };
34
- }, {});
35
- };
36
-
37
- module.exports = (context) => ({
38
- scalars: buildScalarFilters(context),
39
- });
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- const pagination = require('./pagination');
4
- const buildResponseCollectionMeta = require('./response-collection-meta');
5
- const publicationState = require('./publication-state');
6
- const filters = require('./filters');
7
- const error = require('./error');
8
-
9
- module.exports = (context) => () => {
10
- const { strapi } = context;
11
-
12
- const { KINDS } = strapi.plugin('graphql').service('constants');
13
-
14
- return {
15
- [KINDS.internal]: {
16
- error: error(context),
17
- pagination: pagination(context),
18
- responseCollectionMeta: buildResponseCollectionMeta(context),
19
- },
20
-
21
- [KINDS.enum]: {
22
- publicationState: publicationState(context),
23
- },
24
-
25
- [KINDS.filtersInput]: {
26
- ...filters(context),
27
- },
28
- };
29
- };
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- const { objectType } = require('nexus');
4
-
5
- module.exports = ({ strapi }) => {
6
- const { PAGINATION_TYPE_NAME } = strapi.plugin('graphql').service('constants');
7
-
8
- return {
9
- /**
10
- * Type definition for a Pagination object
11
- * @type {NexusObjectTypeDef}
12
- */
13
- Pagination: objectType({
14
- name: PAGINATION_TYPE_NAME,
15
-
16
- definition(t) {
17
- t.nonNull.int('total');
18
- t.nonNull.int('page');
19
- t.nonNull.int('pageSize');
20
- t.nonNull.int('pageCount');
21
- },
22
- }),
23
- };
24
- };
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- const { enumType } = require('nexus');
4
-
5
- module.exports = ({ strapi }) => {
6
- const { PUBLICATION_STATE_TYPE_NAME } = strapi.plugin('graphql').service('constants');
7
-
8
- return {
9
- /**
10
- * An enum type definition representing a publication state
11
- * @type {NexusEnumTypeDef}
12
- */
13
- PublicationState: enumType({
14
- name: PUBLICATION_STATE_TYPE_NAME,
15
-
16
- members: {
17
- // Published only
18
- LIVE: 'live',
19
- // Published & draft
20
- PREVIEW: 'preview',
21
- },
22
- }),
23
- };
24
- };
@@ -1,46 +0,0 @@
1
- 'use strict';
2
-
3
- const { objectType } = require('nexus');
4
- const { sanitize, validate } = require('@strapi/utils');
5
-
6
- module.exports = ({ strapi }) => {
7
- const { RESPONSE_COLLECTION_META_TYPE_NAME, PAGINATION_TYPE_NAME } = strapi
8
- .plugin('graphql')
9
- .service('constants');
10
-
11
- return {
12
- /**
13
- * A shared type definition used in EntitiesResponseCollection
14
- * to have information about the collection as a whole
15
- * @type {NexusObjectTypeDef}
16
- */
17
- ResponseCollectionMeta: objectType({
18
- name: RESPONSE_COLLECTION_META_TYPE_NAME,
19
-
20
- definition(t) {
21
- t.nonNull.field('pagination', {
22
- type: PAGINATION_TYPE_NAME,
23
-
24
- async resolve(parent, _childArgs, ctx) {
25
- const { args, resourceUID } = parent;
26
- const { start, limit } = args;
27
- const safeLimit = Math.max(limit, 1);
28
- const contentType = strapi.getModel(resourceUID);
29
- await validate.contentAPI.query(args, contentType, {
30
- auth: ctx?.state?.auth,
31
- });
32
- const sanitizedQuery = await sanitize.contentAPI.query(args, contentType, {
33
- auth: ctx?.state?.auth,
34
- });
35
- const total = await strapi.entityService.count(resourceUID, sanitizedQuery);
36
- const pageSize = limit === -1 ? total - start : safeLimit;
37
- const pageCount = limit === -1 ? safeLimit : Math.ceil(total / safeLimit);
38
- const page = limit === -1 ? safeLimit : Math.floor(start / safeLimit) + 1;
39
-
40
- return { total, page, pageSize, pageCount };
41
- },
42
- });
43
- },
44
- }),
45
- };
46
- };
@@ -1,104 +0,0 @@
1
- 'use strict';
2
-
3
- const { isFunction } = require('lodash/fp');
4
- const { ApplicationError } = require('@strapi/utils').errors;
5
-
6
- /**
7
- * @typedef RegisteredTypeDef
8
- *
9
- * @property {string} name
10
- * @property {NexusAcceptedTypeDef} definition
11
- * @property {object} config
12
- */
13
-
14
- /**
15
- * Create a new type registry
16
- */
17
- const createTypeRegistry = () => {
18
- const registry = new Map();
19
-
20
- return {
21
- /**
22
- * Register a new type definition
23
- * @param {string} name The name of the type
24
- * @param {NexusAcceptedTypeDef} definition The Nexus definition for the type
25
- * @param {object} [config] An optional config object with any metadata inside
26
- */
27
- register(name, definition, config = {}) {
28
- if (registry.has(name)) {
29
- throw new ApplicationError(`"${name}" has already been registered`);
30
- }
31
-
32
- registry.set(name, { name, definition, config });
33
-
34
- return this;
35
- },
36
-
37
- /**
38
- * Register many types definitions at once
39
- * @param {[string, NexusAcceptedTypeDef][]} definitionsEntries
40
- * @param {object | function} [config]
41
- */
42
- registerMany(definitionsEntries, config = {}) {
43
- for (const [name, definition] of definitionsEntries) {
44
- this.register(name, definition, isFunction(config) ? config(name, definition) : config);
45
- }
46
-
47
- return this;
48
- },
49
-
50
- /**
51
- * Check if the given type name has already been added to the registry
52
- * @param {string} name
53
- * @return {boolean}
54
- */
55
- has(name) {
56
- return registry.has(name);
57
- },
58
-
59
- /**
60
- * Get the type definition for `name`
61
- * @param {string} name - The name of the type
62
- */
63
- get(name) {
64
- return registry.get(name);
65
- },
66
-
67
- /**
68
- * Transform and return the registry as an object
69
- * @return {Object<string, RegisteredTypeDef>}
70
- */
71
- toObject() {
72
- return Object.fromEntries(registry.entries());
73
- },
74
-
75
- /**
76
- * Return the name of every registered type
77
- * @return {string[]}
78
- */
79
- get types() {
80
- return Array.from(registry.keys());
81
- },
82
-
83
- /**
84
- * Return all the registered definitions as an array
85
- * @return {RegisteredTypeDef[]}
86
- */
87
- get definitions() {
88
- return Array.from(registry.values());
89
- },
90
-
91
- /**
92
- * Filter and return the types definitions that matches the given predicate
93
- * @param {function(RegisteredTypeDef): boolean} predicate
94
- * @return {RegisteredTypeDef[]}
95
- */
96
- where(predicate) {
97
- return this.definitions.filter(predicate);
98
- },
99
- };
100
- };
101
-
102
- module.exports = () => ({
103
- new: createTypeRegistry,
104
- });
@@ -1,78 +0,0 @@
1
- 'use strict';
2
-
3
- const { propEq } = require('lodash/fp');
4
-
5
- module.exports = ({ strapi }) => {
6
- /**
7
- * Check if the given attribute is a Strapi scalar
8
- * @param {object} attribute
9
- * @return {boolean}
10
- */
11
- const isStrapiScalar = (attribute) => {
12
- return strapi.plugin('graphql').service('constants').STRAPI_SCALARS.includes(attribute.type);
13
- };
14
-
15
- /**
16
- * Check if the given attribute is a GraphQL scalar
17
- * @param {object} attribute
18
- * @return {boolean}
19
- */
20
- const isGraphQLScalar = (attribute) => {
21
- return strapi.plugin('graphql').service('constants').GRAPHQL_SCALARS.includes(attribute.type);
22
- };
23
-
24
- /**
25
- * Check if the given attribute is a polymorphic relation
26
- * @param {object} attribute
27
- * @return {boolean}
28
- */
29
- const isMorphRelation = (attribute) => {
30
- return isRelation(attribute) && attribute.relation.includes('morph');
31
- };
32
-
33
- /**
34
- * Check if the given attribute is a media
35
- * @param {object} attribute
36
- * @return {boolean}
37
- */
38
- const isMedia = propEq('type', 'media');
39
-
40
- /**
41
- * Check if the given attribute is a relation
42
- * @param {object} attribute
43
- * @return {boolean}
44
- */
45
- const isRelation = propEq('type', 'relation');
46
-
47
- /**
48
- * Check if the given attribute is an enum
49
- * @param {object} attribute
50
- * @return {boolean}
51
- */
52
- const isEnumeration = propEq('type', 'enumeration');
53
-
54
- /**
55
- * Check if the given attribute is a component
56
- * @param {object} attribute
57
- * @return {boolean}
58
- */
59
- const isComponent = propEq('type', 'component');
60
-
61
- /**
62
- * Check if the given attribute is a dynamic zone
63
- * @param {object} attribute
64
- * @return {boolean}
65
- */
66
- const isDynamicZone = propEq('type', 'dynamiczone');
67
-
68
- return {
69
- isStrapiScalar,
70
- isGraphQLScalar,
71
- isMorphRelation,
72
- isMedia,
73
- isRelation,
74
- isEnumeration,
75
- isComponent,
76
- isDynamicZone,
77
- };
78
- };
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- const mappers = require('./mappers');
4
- const attributes = require('./attributes');
5
- const naming = require('./naming');
6
-
7
- module.exports = (context) => ({
8
- naming: naming(context),
9
- attributes: attributes(context),
10
- mappers: mappers(context),
11
- });
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- const { map } = require('lodash/fp');
4
-
5
- const entityToResponseEntity = (entity) => ({ id: entity.id, attributes: entity });
6
-
7
- const entitiesToResponseEntities = map(entityToResponseEntity);
8
-
9
- module.exports = () => ({
10
- entityToResponseEntity,
11
- entitiesToResponseEntities,
12
- });
@@ -1,119 +0,0 @@
1
- 'use strict';
2
-
3
- const { has, propEq, isNil, isDate, isObject } = require('lodash/fp');
4
-
5
- // todo[v4]: Find a way to get that dynamically
6
- const virtualScalarAttributes = ['id'];
7
-
8
- module.exports = ({ strapi }) => {
9
- const { service: getService } = strapi.plugin('graphql');
10
-
11
- const recursivelyReplaceScalarOperators = (data) => {
12
- const { operators } = getService('builders').filters;
13
-
14
- if (Array.isArray(data)) {
15
- return data.map(recursivelyReplaceScalarOperators);
16
- }
17
-
18
- // Note: We need to make an exception for date since GraphQL
19
- // automatically cast date strings to date instances in args
20
- if (isDate(data) || !isObject(data)) {
21
- return data;
22
- }
23
-
24
- const result = {};
25
-
26
- for (const [key, value] of Object.entries(data)) {
27
- const isOperator = !!operators[key];
28
-
29
- const newKey = isOperator ? operators[key].strapiOperator : key;
30
-
31
- result[newKey] = recursivelyReplaceScalarOperators(value);
32
- }
33
-
34
- return result;
35
- };
36
-
37
- return {
38
- /**
39
- * Transform one or many GraphQL filters object into a valid Strapi query
40
- * @param {object | object[]} filters
41
- * @param {object} contentType
42
- * @return {object | object[]}
43
- */
44
- graphQLFiltersToStrapiQuery(filters, contentType = {}) {
45
- const { isStrapiScalar, isMedia, isRelation, isComponent } = getService('utils').attributes;
46
- const { operators } = getService('builders').filters;
47
-
48
- const ROOT_LEVEL_OPERATORS = [operators.and, operators.or, operators.not];
49
-
50
- // Handle unwanted scenario where there is no filters defined
51
- if (isNil(filters)) {
52
- return {};
53
- }
54
-
55
- // If filters is a collection, then apply the transformation to every item of the list
56
- if (Array.isArray(filters)) {
57
- return filters.map((filtersItem) =>
58
- this.graphQLFiltersToStrapiQuery(filtersItem, contentType)
59
- );
60
- }
61
-
62
- const resultMap = {};
63
- const { attributes } = contentType;
64
-
65
- const isAttribute = (attributeName) => {
66
- return virtualScalarAttributes.includes(attributeName) || has(attributeName, attributes);
67
- };
68
-
69
- for (const [key, value] of Object.entries(filters)) {
70
- // If the key is an attribute, update the value
71
- if (isAttribute(key)) {
72
- const attribute = attributes[key];
73
-
74
- // If it's a scalar attribute
75
- if (virtualScalarAttributes.includes(key) || isStrapiScalar(attribute)) {
76
- // Replace (recursively) every GraphQL scalar operator with the associated Strapi operator
77
- resultMap[key] = recursivelyReplaceScalarOperators(value);
78
- }
79
-
80
- // If it's a deep filter on a relation
81
- else if (isRelation(attribute) || isMedia(attribute)) {
82
- // Fetch the model from the relation
83
- const relModel = strapi.getModel(attribute.target);
84
-
85
- // Recursively apply the mapping to the value using the fetched model,
86
- // and update the value within `resultMap`
87
- resultMap[key] = this.graphQLFiltersToStrapiQuery(value, relModel);
88
- }
89
-
90
- // If it's a deep filter on a component
91
- else if (isComponent(attribute)) {
92
- // Fetch the model from the component attribute
93
- const componentModel = strapi.getModel(attribute.component);
94
-
95
- // Recursively apply the mapping to the value using the fetched model,
96
- // and update the value within `resultMap`
97
- resultMap[key] = this.graphQLFiltersToStrapiQuery(value, componentModel);
98
- }
99
- }
100
-
101
- // Handle the case where the key is not an attribute (operator, ...)
102
- else {
103
- const rootLevelOperator = ROOT_LEVEL_OPERATORS.find(propEq('fieldName', key));
104
-
105
- // If it's a root level operator (AND, NOT, OR, ...)
106
- if (rootLevelOperator) {
107
- const { strapiOperator } = rootLevelOperator;
108
-
109
- // Transform the current value recursively and add it to the resultMap
110
- // object using the strapiOperator equivalent of the GraphQL key
111
- resultMap[strapiOperator] = this.graphQLFiltersToStrapiQuery(value, contentType);
112
- }
113
- }
114
- }
115
-
116
- return resultMap;
117
- },
118
- };
119
- };
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const { get, map, mapValues } = require('lodash/fp');
4
-
5
- module.exports = ({ strapi }) => ({
6
- graphqlScalarToOperators(graphqlScalar) {
7
- const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service('constants');
8
- const { operators } = strapi.plugin('graphql').service('builders').filters;
9
-
10
- const associations = mapValues(
11
- map((operatorName) => operators[operatorName]),
12
- GRAPHQL_SCALAR_OPERATORS
13
- );
14
-
15
- return get(graphqlScalar, associations);
16
- },
17
- });
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- const strapiScalarToGraphQLScalar = require('./strapi-scalar-to-graphql-scalar');
4
- const graphQLFiltersToStrapiQuery = require('./graphql-filters-to-strapi-query');
5
- const graphqlScalarToOperators = require('./graphql-scalar-to-operators');
6
- const entityToResponseEntity = require('./entity-to-response-entity');
7
-
8
- module.exports = (context) => ({
9
- ...strapiScalarToGraphQLScalar(context),
10
- ...graphQLFiltersToStrapiQuery(context),
11
- ...graphqlScalarToOperators(context),
12
- ...entityToResponseEntity(context),
13
- });
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- const { get, difference } = require('lodash/fp');
4
- const { ApplicationError } = require('@strapi/utils').errors;
5
-
6
- module.exports = ({ strapi }) => {
7
- const { STRAPI_SCALARS, SCALARS_ASSOCIATIONS } = strapi.plugin('graphql').service('constants');
8
-
9
- const missingStrapiScalars = difference(STRAPI_SCALARS, Object.keys(SCALARS_ASSOCIATIONS));
10
-
11
- if (missingStrapiScalars.length > 0) {
12
- throw new ApplicationError('Some Strapi scalars are not handled in the GraphQL scalars mapper');
13
- }
14
-
15
- return {
16
- /**
17
- * Used to transform a Strapi scalar type into its GraphQL equivalent
18
- * @param {string} strapiScalar
19
- * @return {NexusGenScalars}
20
- */
21
- strapiScalarToGraphQLScalar(strapiScalar) {
22
- return get(strapiScalar, SCALARS_ASSOCIATIONS);
23
- },
24
- };
25
- };