@strapi/plugin-graphql 4.15.5 → 4.16.1

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,153 +0,0 @@
1
- 'use strict';
2
-
3
- const PAGINATION_TYPE_NAME = 'Pagination';
4
- const PUBLICATION_STATE_TYPE_NAME = 'PublicationState';
5
- const ERROR_TYPE_NAME = 'Error';
6
-
7
- const RESPONSE_COLLECTION_META_TYPE_NAME = 'ResponseCollectionMeta';
8
-
9
- const GRAPHQL_SCALARS = [
10
- 'ID',
11
- 'Boolean',
12
- 'Int',
13
- 'String',
14
- 'Long',
15
- 'Float',
16
- 'JSON',
17
- 'Date',
18
- 'Time',
19
- 'DateTime',
20
- ];
21
-
22
- const STRAPI_SCALARS = [
23
- 'boolean',
24
- 'integer',
25
- 'string',
26
- 'richtext',
27
- 'blocks',
28
- 'enumeration',
29
- 'biginteger',
30
- 'float',
31
- 'decimal',
32
- 'json',
33
- 'date',
34
- 'time',
35
- 'datetime',
36
- 'timestamp',
37
- 'uid',
38
- 'email',
39
- 'password',
40
- 'text',
41
- ];
42
-
43
- const SCALARS_ASSOCIATIONS = {
44
- uid: 'String',
45
- email: 'String',
46
- password: 'String',
47
- text: 'String',
48
- boolean: 'Boolean',
49
- integer: 'Int',
50
- string: 'String',
51
- enumeration: 'String',
52
- richtext: 'String',
53
- blocks: 'JSON',
54
- biginteger: 'Long',
55
- float: 'Float',
56
- decimal: 'Float',
57
- json: 'JSON',
58
- date: 'Date',
59
- time: 'Time',
60
- datetime: 'DateTime',
61
- timestamp: 'DateTime',
62
- };
63
-
64
- const GENERIC_MORPH_TYPENAME = 'GenericMorph';
65
-
66
- const KINDS = {
67
- type: 'type',
68
- component: 'component',
69
- dynamicZone: 'dynamic-zone',
70
- enum: 'enum',
71
- entity: 'entity',
72
- entityResponse: 'entity-response',
73
- entityResponseCollection: 'entity-response-collection',
74
- relationResponseCollection: 'relation-response-collection',
75
- query: 'query',
76
- mutation: 'mutation',
77
- input: 'input',
78
- filtersInput: 'filters-input',
79
- scalar: 'scalar',
80
- morph: 'polymorphic',
81
- internal: 'internal',
82
- };
83
-
84
- const allOperators = [
85
- 'and',
86
- 'or',
87
- 'not',
88
-
89
- 'eq',
90
- 'eqi',
91
- 'ne',
92
- 'nei',
93
-
94
- 'startsWith',
95
- 'endsWith',
96
-
97
- 'contains',
98
- 'notContains',
99
-
100
- 'containsi',
101
- 'notContainsi',
102
-
103
- 'gt',
104
- 'gte',
105
-
106
- 'lt',
107
- 'lte',
108
-
109
- 'null',
110
- 'notNull',
111
-
112
- 'in',
113
- 'notIn',
114
-
115
- 'between',
116
- ];
117
-
118
- const GRAPHQL_SCALAR_OPERATORS = {
119
- // ID
120
- ID: allOperators,
121
- // Booleans
122
- Boolean: allOperators,
123
- // Strings
124
- String: allOperators,
125
- // Numbers
126
- Int: allOperators,
127
- Long: allOperators,
128
- Float: allOperators,
129
- // Dates
130
- Date: allOperators,
131
- Time: allOperators,
132
- DateTime: allOperators,
133
- // Others
134
- JSON: allOperators,
135
- };
136
-
137
- const ERROR_CODES = {
138
- emptyDynamicZone: 'dynamiczone.empty',
139
- };
140
-
141
- module.exports = () => ({
142
- PAGINATION_TYPE_NAME,
143
- RESPONSE_COLLECTION_META_TYPE_NAME,
144
- PUBLICATION_STATE_TYPE_NAME,
145
- GRAPHQL_SCALARS,
146
- STRAPI_SCALARS,
147
- GENERIC_MORPH_TYPENAME,
148
- KINDS,
149
- GRAPHQL_SCALAR_OPERATORS,
150
- SCALARS_ASSOCIATIONS,
151
- ERROR_CODES,
152
- ERROR_TYPE_NAME,
153
- });
@@ -1,188 +0,0 @@
1
- 'use strict';
2
-
3
- const { mergeSchemas, addResolversToSchema } = require('@graphql-tools/schema');
4
- const { pruneSchema } = require('@graphql-tools/utils');
5
- const { makeSchema } = require('nexus');
6
- const { prop, startsWith } = require('lodash/fp');
7
-
8
- const { wrapResolvers } = require('./wrap-resolvers');
9
- const {
10
- registerSingleType,
11
- registerCollectionType,
12
- registerComponent,
13
- registerScalars,
14
- registerInternals,
15
- registerPolymorphicContentType,
16
- contentType: {
17
- registerEnumsDefinition,
18
- registerInputsDefinition,
19
- registerFiltersDefinition,
20
- registerDynamicZonesDefinition,
21
- },
22
- } = require('./register-functions');
23
-
24
- module.exports = ({ strapi }) => {
25
- const { service: getGraphQLService } = strapi.plugin('graphql');
26
- const { config } = strapi.plugin('graphql');
27
-
28
- const { KINDS, GENERIC_MORPH_TYPENAME } = getGraphQLService('constants');
29
- const extensionService = getGraphQLService('extension');
30
-
31
- // Type Registry
32
- let registry;
33
- // Builders Instances
34
- let builders;
35
-
36
- const buildSchema = () => {
37
- const isShadowCRUDEnabled = !!config('shadowCRUD');
38
-
39
- // Create a new empty type registry
40
- registry = getGraphQLService('type-registry').new();
41
-
42
- // Reset the builders instances associated to the
43
- // content-api, and link the new type registry
44
- builders = getGraphQLService('builders').new('content-api', registry);
45
-
46
- registerScalars({ registry, strapi });
47
- registerInternals({ registry, strapi });
48
-
49
- if (isShadowCRUDEnabled) {
50
- shadowCRUD();
51
- }
52
-
53
- // Build a merged schema from both Nexus types & SDL type definitions
54
- const schema = buildMergedSchema({ registry });
55
-
56
- // Generate the extension configuration for the content API.
57
- // This extension instance needs to be generated after the Nexus schema's
58
- // generation, so that configurations created during types definitions
59
- // can be registered before being used in the wrap resolvers operation
60
- const extension = extensionService.generate({ typeRegistry: registry });
61
-
62
- // Add the extension's resolvers to the final schema
63
- const schemaWithResolvers = addResolversToSchema(schema, extension.resolvers);
64
-
65
- // Create a configuration object for the artifacts generation
66
- const outputs = {
67
- schema: config('artifacts.schema', false),
68
- typegen: config('artifacts.typegen', false),
69
- };
70
-
71
- const currentEnv = strapi.config.get('environment');
72
-
73
- const nexusSchema = makeSchema({
74
- // Build the schema from the merged GraphQL schema.
75
- // Since we're passing the schema to the mergeSchema property, it'll transform our SDL type definitions
76
- // into Nexus type definition, thus allowing them to be handled by Nexus plugins & other processing
77
- mergeSchema: { schema: schemaWithResolvers },
78
-
79
- // Apply user-defined plugins
80
- plugins: extension.plugins,
81
-
82
- // Whether to generate artifacts (GraphQL schema, TS types definitions) or not.
83
- // By default, we generate artifacts only on development environment
84
- shouldGenerateArtifacts: config('generateArtifacts', currentEnv === 'development'),
85
-
86
- // Artifacts generation configuration
87
- outputs,
88
- });
89
-
90
- // Wrap resolvers if needed (auth, middlewares, policies...) as configured in the extension
91
- const wrappedNexusSchema = wrapResolvers({ schema: nexusSchema, strapi, extension });
92
-
93
- // Prune schema, remove unused types
94
- // eg: removes registered subscriptions if they're disabled in the config)
95
- const prunedNexusSchema = pruneSchema(wrappedNexusSchema);
96
-
97
- return prunedNexusSchema;
98
- };
99
-
100
- const buildMergedSchema = ({ registry }) => {
101
- // Here we extract types, plugins & typeDefs from a temporary generated
102
- // extension since there won't be any addition allowed after schemas generation
103
- const { types, typeDefs = [] } = extensionService.generate({ typeRegistry: registry });
104
-
105
- // Nexus schema built with user-defined & shadow CRUD auto generated Nexus types
106
- const nexusSchema = makeSchema({ types: [registry.definitions, types] });
107
-
108
- // Merge type definitions with the Nexus schema
109
- return mergeSchemas({
110
- typeDefs,
111
- // Give access to the shadowCRUD & nexus based types
112
- // Note: This is necessary so that types defined in SDL can reference types defined with Nexus
113
- schemas: [nexusSchema],
114
- });
115
- };
116
-
117
- const shadowCRUD = () => {
118
- const extensionService = getGraphQLService('extension');
119
-
120
- // Get every content type & component defined in Strapi
121
- const contentTypes = [
122
- ...Object.values(strapi.components),
123
- ...Object.values(strapi.contentTypes),
124
- ];
125
-
126
- // Disable Shadow CRUD for admin content types
127
- contentTypes
128
- .map(prop('uid'))
129
- .filter(startsWith('admin::'))
130
- .forEach((uid) => extensionService.shadowCRUD(uid).disable());
131
-
132
- const contentTypesWithShadowCRUD = contentTypes.filter((ct) =>
133
- extensionService.shadowCRUD(ct.uid).isEnabled()
134
- );
135
-
136
- // Generate and register definitions for every content type
137
- registerAPITypes(contentTypesWithShadowCRUD);
138
-
139
- // Generate and register polymorphic types' definitions
140
- registerMorphTypes(contentTypesWithShadowCRUD);
141
- };
142
-
143
- /**
144
- * Register needed GraphQL types for every content type
145
- * @param {object[]} contentTypes
146
- */
147
- const registerAPITypes = (contentTypes) => {
148
- for (const contentType of contentTypes) {
149
- const { kind, modelType } = contentType;
150
-
151
- const registerOptions = { registry, strapi, builders };
152
-
153
- // Generate various types associated to the content type
154
- // (enums, dynamic-zones, filters, inputs...)
155
- registerEnumsDefinition(contentType, registerOptions);
156
- registerDynamicZonesDefinition(contentType, registerOptions);
157
- registerFiltersDefinition(contentType, registerOptions);
158
- registerInputsDefinition(contentType, registerOptions);
159
-
160
- // Generate & register component's definition
161
- if (modelType === 'component') {
162
- registerComponent(contentType, registerOptions);
163
- }
164
-
165
- // Generate & register single type's definition
166
- else if (kind === 'singleType') {
167
- registerSingleType(contentType, registerOptions);
168
- }
169
-
170
- // Generate & register collection type's definition
171
- else if (kind === 'collectionType') {
172
- registerCollectionType(contentType, registerOptions);
173
- }
174
- }
175
- };
176
-
177
- const registerMorphTypes = (contentTypes) => {
178
- // Create & register a union type that includes every type or component registered
179
- const genericMorphType = builders.buildGenericMorphDefinition();
180
- registry.register(GENERIC_MORPH_TYPENAME, genericMorphType, { kind: KINDS.morph });
181
-
182
- for (const contentType of contentTypes) {
183
- registerPolymorphicContentType(contentType, { registry, strapi });
184
- }
185
- };
186
-
187
- return { buildSchema };
188
- };
@@ -1,60 +0,0 @@
1
- 'use strict';
2
-
3
- const { propOr } = require('lodash/fp');
4
- const { policy: policyUtils } = require('@strapi/utils');
5
- const { PolicyError } = require('@strapi/utils').errors;
6
-
7
- const getPoliciesConfig = propOr([], 'policies');
8
-
9
- const createPoliciesMiddleware = (resolverConfig, { strapi }) => {
10
- const resolverPolicies = getPoliciesConfig(resolverConfig);
11
- const policies = policyUtils.resolve(resolverPolicies);
12
-
13
- return async (resolve, ...rest) => {
14
- // Create a graphql policy context
15
- const context = createGraphQLPolicyContext(...rest);
16
-
17
- // Run policies & throw an error if one of them fails
18
- for (const { handler, config } of policies) {
19
- const result = await handler(context, config, { strapi });
20
-
21
- if (![true, undefined].includes(result)) {
22
- throw new PolicyError();
23
- }
24
- }
25
-
26
- return resolve(...rest);
27
- };
28
- };
29
-
30
- const createGraphQLPolicyContext = (parent, args, context, info) => {
31
- return policyUtils.createPolicyContext('graphql', {
32
- get parent() {
33
- return parent;
34
- },
35
-
36
- get args() {
37
- return args;
38
- },
39
-
40
- get context() {
41
- return context;
42
- },
43
-
44
- get info() {
45
- return info;
46
- },
47
-
48
- get state() {
49
- return this.context.state;
50
- },
51
-
52
- get http() {
53
- return this.context.koaContext;
54
- },
55
- });
56
- };
57
-
58
- module.exports = {
59
- createPoliciesMiddleware,
60
- };
@@ -1,72 +0,0 @@
1
- 'use strict';
2
-
3
- const registerCollectionType = (contentType, { registry, strapi, builders }) => {
4
- const { service: getService } = strapi.plugin('graphql');
5
-
6
- const { naming } = getService('utils');
7
- const { KINDS } = getService('constants');
8
-
9
- const extension = getService('extension');
10
-
11
- // Types name (as string)
12
- const types = {
13
- base: naming.getTypeName(contentType),
14
- entity: naming.getEntityName(contentType),
15
- response: naming.getEntityResponseName(contentType),
16
- responseCollection: naming.getEntityResponseCollectionName(contentType),
17
- relationResponseCollection: naming.getRelationResponseCollectionName(contentType),
18
- queries: naming.getEntityQueriesTypeName(contentType),
19
- mutations: naming.getEntityMutationsTypeName(contentType),
20
- };
21
-
22
- const getConfig = (kind) => ({ kind, contentType });
23
-
24
- // Type definition
25
- registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));
26
-
27
- // Higher level entity definition
28
- registry.register(
29
- types.entity,
30
- builders.buildEntityDefinition(contentType),
31
- getConfig(KINDS.entity)
32
- );
33
-
34
- // Responses definition
35
- registry.register(
36
- types.response,
37
- builders.buildResponseDefinition(contentType),
38
- getConfig(KINDS.entityResponse)
39
- );
40
-
41
- registry.register(
42
- types.responseCollection,
43
- builders.buildResponseCollectionDefinition(contentType),
44
- getConfig(KINDS.entityResponseCollection)
45
- );
46
-
47
- registry.register(
48
- types.relationResponseCollection,
49
- builders.buildRelationResponseCollectionDefinition(contentType),
50
- getConfig(KINDS.relationResponseCollection)
51
- );
52
-
53
- if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {
54
- // Query extensions
55
- registry.register(
56
- types.queries,
57
- builders.buildCollectionTypeQueries(contentType),
58
- getConfig(KINDS.query)
59
- );
60
- }
61
-
62
- if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {
63
- // Mutation extensions
64
- registry.register(
65
- types.mutations,
66
- builders.buildCollectionTypeMutations(contentType),
67
- getConfig(KINDS.mutation)
68
- );
69
- }
70
- };
71
-
72
- module.exports = { registerCollectionType };
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- const registerComponent = (contentType, { registry, strapi, builders }) => {
4
- const { service: getService } = strapi.plugin('graphql');
5
-
6
- const { getComponentName } = getService('utils').naming;
7
- const { KINDS } = getService('constants');
8
-
9
- const name = getComponentName(contentType);
10
- const definition = builders.buildTypeDefinition(contentType);
11
-
12
- registry.register(name, definition, { kind: KINDS.component, contentType });
13
- };
14
-
15
- module.exports = { registerComponent };
@@ -1,36 +0,0 @@
1
- 'use strict';
2
-
3
- const registerDynamicZonesDefinition = (contentType, { registry, strapi, builders }) => {
4
- const { service: getService } = strapi.plugin('graphql');
5
-
6
- const {
7
- naming,
8
- attributes: { isDynamicZone },
9
- } = getService('utils');
10
- const { KINDS } = getService('constants');
11
-
12
- const { attributes } = contentType;
13
-
14
- const dynamicZoneAttributes = Object.keys(attributes).filter((attributeName) =>
15
- isDynamicZone(attributes[attributeName])
16
- );
17
-
18
- for (const attributeName of dynamicZoneAttributes) {
19
- const attribute = attributes[attributeName];
20
- const dzName = naming.getDynamicZoneName(contentType, attributeName);
21
- const dzInputName = naming.getDynamicZoneInputName(contentType, attributeName);
22
-
23
- const [type, input] = builders.buildDynamicZoneDefinition(attribute, dzName, dzInputName);
24
-
25
- const baseConfig = {
26
- contentType,
27
- attributeName,
28
- attribute,
29
- };
30
-
31
- registry.register(dzName, type, { kind: KINDS.dynamicZone, ...baseConfig });
32
- registry.register(dzInputName, input, { kind: KINDS.input, ...baseConfig });
33
- }
34
- };
35
-
36
- module.exports = { registerDynamicZonesDefinition };
@@ -1,33 +0,0 @@
1
- 'use strict';
2
-
3
- const registerEnumsDefinition = (contentType, { registry, strapi, builders }) => {
4
- const { service: getService } = strapi.plugin('graphql');
5
-
6
- const {
7
- naming,
8
- attributes: { isEnumeration },
9
- } = getService('utils');
10
- const { KINDS } = getService('constants');
11
-
12
- const { attributes } = contentType;
13
-
14
- const enumAttributes = Object.keys(attributes).filter((attributeName) =>
15
- isEnumeration(attributes[attributeName])
16
- );
17
-
18
- for (const attributeName of enumAttributes) {
19
- const attribute = attributes[attributeName];
20
-
21
- const enumName = naming.getEnumName(contentType, attributeName);
22
- const enumDefinition = builders.buildEnumTypeDefinition(attribute, enumName);
23
-
24
- registry.register(enumName, enumDefinition, {
25
- kind: KINDS.enum,
26
- contentType,
27
- attributeName,
28
- attribute,
29
- });
30
- }
31
- };
32
-
33
- module.exports = { registerEnumsDefinition };
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- const registerFiltersDefinition = (contentType, { registry, strapi, builders }) => {
4
- const { service: getService } = strapi.plugin('graphql');
5
-
6
- const { getFiltersInputTypeName } = getService('utils').naming;
7
- const { KINDS } = getService('constants');
8
-
9
- const type = getFiltersInputTypeName(contentType);
10
- const definition = builders.buildContentTypeFilters(contentType);
11
-
12
- registry.register(type, definition, { kind: KINDS.filtersInput, contentType });
13
- };
14
-
15
- module.exports = { registerFiltersDefinition };
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- const { registerDynamicZonesDefinition } = require('./dynamic-zones');
4
- const { registerEnumsDefinition } = require('./enums');
5
- const { registerInputsDefinition } = require('./inputs');
6
- const { registerFiltersDefinition } = require('./filters');
7
-
8
- module.exports = {
9
- registerDynamicZonesDefinition,
10
- registerFiltersDefinition,
11
- registerInputsDefinition,
12
- registerEnumsDefinition,
13
- };
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- const registerInputsDefinition = (contentType, { registry, strapi, builders }) => {
4
- const { service: getService } = strapi.plugin('graphql');
5
-
6
- const { getComponentInputName, getContentTypeInputName } = getService('utils').naming;
7
- const { KINDS } = getService('constants');
8
-
9
- const { modelType } = contentType;
10
-
11
- const type = (modelType === 'component' ? getComponentInputName : getContentTypeInputName).call(
12
- null,
13
- contentType
14
- );
15
-
16
- const definition = builders.buildInputType(contentType);
17
-
18
- registry.register(type, definition, { kind: KINDS.input, contentType });
19
- };
20
-
21
- module.exports = { registerInputsDefinition };
@@ -1,22 +0,0 @@
1
- 'use strict';
2
-
3
- const { registerCollectionType } = require('./collection-type');
4
- const { registerSingleType } = require('./single-type');
5
- const { registerComponent } = require('./component');
6
- const { registerPolymorphicContentType } = require('./polymorphic');
7
-
8
- const { registerScalars } = require('./scalars');
9
- const { registerInternals } = require('./internals');
10
-
11
- const contentType = require('./content-type');
12
-
13
- module.exports = {
14
- registerCollectionType,
15
- registerSingleType,
16
- registerComponent,
17
- registerPolymorphicContentType,
18
- registerInternals,
19
- registerScalars,
20
-
21
- contentType,
22
- };
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- const registerInternals = ({ registry, strapi }) => {
4
- const { buildInternalTypes } = strapi.plugin('graphql').service('internals');
5
-
6
- const internalTypes = buildInternalTypes({ strapi });
7
-
8
- for (const [kind, definitions] of Object.entries(internalTypes)) {
9
- registry.registerMany(Object.entries(definitions), { kind });
10
- }
11
- };
12
-
13
- module.exports = { registerInternals };