@strapi/plugin-graphql 0.0.0-experimental.62ce06180fe9a772eaeb3d43d238b26644f39f7c → 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282

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 (644) hide show
  1. package/LICENSE +18 -3
  2. package/dist/admin/index.js +58 -167
  3. package/dist/admin/index.js.map +1 -1
  4. package/dist/admin/index.mjs +54 -168
  5. package/dist/admin/index.mjs.map +1 -1
  6. package/dist/admin/package.json.js +13 -0
  7. package/dist/admin/package.json.js.map +1 -0
  8. package/dist/admin/package.json.mjs +8 -0
  9. package/dist/admin/package.json.mjs.map +1 -0
  10. package/dist/admin/pluginId.js +6 -0
  11. package/dist/admin/pluginId.js.map +1 -0
  12. package/dist/admin/pluginId.mjs +4 -0
  13. package/dist/admin/pluginId.mjs.map +1 -0
  14. package/dist/admin/translations/cs.json.js +10 -0
  15. package/dist/admin/translations/cs.json.js.map +1 -0
  16. package/dist/admin/translations/cs.json.mjs +8 -0
  17. package/dist/admin/translations/cs.json.mjs.map +1 -0
  18. package/dist/admin/translations/da.json.js +10 -0
  19. package/dist/admin/translations/da.json.js.map +1 -0
  20. package/dist/admin/translations/da.json.mjs +8 -0
  21. package/dist/admin/translations/da.json.mjs.map +1 -0
  22. package/dist/admin/translations/en.json.js +10 -0
  23. package/dist/admin/translations/en.json.js.map +1 -0
  24. package/dist/admin/translations/en.json.mjs +8 -0
  25. package/dist/admin/translations/en.json.mjs.map +1 -0
  26. package/dist/admin/translations/es.json.js +10 -0
  27. package/dist/admin/translations/es.json.js.map +1 -0
  28. package/dist/admin/translations/es.json.mjs +8 -0
  29. package/dist/admin/translations/es.json.mjs.map +1 -0
  30. package/dist/admin/translations/fr.json.js +10 -0
  31. package/dist/admin/translations/fr.json.js.map +1 -0
  32. package/dist/admin/translations/fr.json.mjs +8 -0
  33. package/dist/admin/translations/fr.json.mjs.map +1 -0
  34. package/dist/admin/translations/pl.json.js +10 -0
  35. package/dist/admin/translations/pl.json.js.map +1 -0
  36. package/dist/admin/translations/pl.json.mjs +8 -0
  37. package/dist/admin/translations/pl.json.mjs.map +1 -0
  38. package/dist/admin/translations/ru.json.js +10 -0
  39. package/dist/admin/translations/ru.json.js.map +1 -0
  40. package/dist/admin/translations/ru.json.mjs +8 -0
  41. package/dist/admin/translations/ru.json.mjs.map +1 -0
  42. package/dist/admin/translations/sk.json.js +10 -0
  43. package/dist/admin/translations/sk.json.js.map +1 -0
  44. package/dist/admin/translations/sk.json.mjs +8 -0
  45. package/dist/admin/translations/sk.json.mjs.map +1 -0
  46. package/dist/admin/translations/sv.json.js +10 -0
  47. package/dist/admin/translations/sv.json.js.map +1 -0
  48. package/dist/admin/translations/sv.json.mjs +8 -0
  49. package/dist/admin/translations/sv.json.mjs.map +1 -0
  50. package/dist/admin/translations/tr.json.js +10 -0
  51. package/dist/admin/translations/tr.json.js.map +1 -0
  52. package/dist/admin/translations/tr.json.mjs +8 -0
  53. package/dist/admin/translations/tr.json.mjs.map +1 -0
  54. package/dist/admin/translations/uk.json.js +10 -0
  55. package/dist/admin/translations/uk.json.js.map +1 -0
  56. package/dist/admin/translations/uk.json.mjs +8 -0
  57. package/dist/admin/translations/uk.json.mjs.map +1 -0
  58. package/dist/admin/translations/zh-Hans.json.js +10 -0
  59. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  60. package/dist/admin/translations/zh-Hans.json.mjs +8 -0
  61. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  62. package/dist/admin/translations/zh.json.js +10 -0
  63. package/dist/admin/translations/zh.json.js.map +1 -0
  64. package/dist/admin/translations/zh.json.mjs +8 -0
  65. package/dist/admin/translations/zh.json.mjs.map +1 -0
  66. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  67. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  68. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  69. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  70. package/dist/server/bootstrap.js +221 -0
  71. package/dist/server/bootstrap.js.map +1 -0
  72. package/dist/server/bootstrap.mjs +212 -0
  73. package/dist/server/bootstrap.mjs.map +1 -0
  74. package/dist/server/config/default-config.js +13 -0
  75. package/dist/server/config/default-config.js.map +1 -0
  76. package/dist/server/config/default-config.mjs +11 -0
  77. package/dist/server/config/default-config.mjs.map +1 -0
  78. package/dist/server/config/index.js +10 -0
  79. package/dist/server/config/index.js.map +1 -0
  80. package/dist/server/config/index.mjs +8 -0
  81. package/dist/server/config/index.mjs.map +1 -0
  82. package/dist/server/format-graphql-error.js +60 -0
  83. package/dist/server/format-graphql-error.js.map +1 -0
  84. package/dist/server/format-graphql-error.mjs +58 -0
  85. package/dist/server/format-graphql-error.mjs.map +1 -0
  86. package/dist/server/index.js +12 -3112
  87. package/dist/server/index.js.map +1 -1
  88. package/dist/server/index.mjs +11 -3092
  89. package/dist/server/index.mjs.map +1 -1
  90. package/dist/server/services/builders/dynamic-zones.js +75 -0
  91. package/dist/server/services/builders/dynamic-zones.js.map +1 -0
  92. package/dist/server/services/builders/dynamic-zones.mjs +73 -0
  93. package/dist/server/services/builders/dynamic-zones.mjs.map +1 -0
  94. package/dist/server/services/builders/entity.js +38 -0
  95. package/dist/server/services/builders/entity.js.map +1 -0
  96. package/dist/server/services/builders/entity.mjs +36 -0
  97. package/dist/server/services/builders/entity.mjs.map +1 -0
  98. package/dist/server/services/builders/enums.js +24 -0
  99. package/dist/server/services/builders/enums.js.map +1 -0
  100. package/dist/server/services/builders/enums.mjs +22 -0
  101. package/dist/server/services/builders/enums.mjs.map +1 -0
  102. package/dist/server/services/builders/filters/content-type.js +94 -0
  103. package/dist/server/services/builders/filters/content-type.js.map +1 -0
  104. package/dist/server/services/builders/filters/content-type.mjs +92 -0
  105. package/dist/server/services/builders/filters/content-type.mjs.map +1 -0
  106. package/dist/server/services/builders/filters/index.js +10 -0
  107. package/dist/server/services/builders/filters/index.js.map +1 -0
  108. package/dist/server/services/builders/filters/index.mjs +8 -0
  109. package/dist/server/services/builders/filters/index.mjs.map +1 -0
  110. package/dist/server/services/builders/filters/operators/and.js +17 -0
  111. package/dist/server/services/builders/filters/operators/and.js.map +1 -0
  112. package/dist/server/services/builders/filters/operators/and.mjs +15 -0
  113. package/dist/server/services/builders/filters/operators/and.mjs.map +1 -0
  114. package/dist/server/services/builders/filters/operators/between.js +17 -0
  115. package/dist/server/services/builders/filters/operators/between.js.map +1 -0
  116. package/dist/server/services/builders/filters/operators/between.mjs +15 -0
  117. package/dist/server/services/builders/filters/operators/between.mjs.map +1 -0
  118. package/dist/server/services/builders/filters/operators/contains.js +15 -0
  119. package/dist/server/services/builders/filters/operators/contains.js.map +1 -0
  120. package/dist/server/services/builders/filters/operators/contains.mjs +13 -0
  121. package/dist/server/services/builders/filters/operators/contains.mjs.map +1 -0
  122. package/dist/server/services/builders/filters/operators/containsi.js +15 -0
  123. package/dist/server/services/builders/filters/operators/containsi.js.map +1 -0
  124. package/dist/server/services/builders/filters/operators/containsi.mjs +13 -0
  125. package/dist/server/services/builders/filters/operators/containsi.mjs.map +1 -0
  126. package/dist/server/services/builders/filters/operators/ends-with.js +15 -0
  127. package/dist/server/services/builders/filters/operators/ends-with.js.map +1 -0
  128. package/dist/server/services/builders/filters/operators/ends-with.mjs +13 -0
  129. package/dist/server/services/builders/filters/operators/ends-with.mjs.map +1 -0
  130. package/dist/server/services/builders/filters/operators/eq.js +22 -0
  131. package/dist/server/services/builders/filters/operators/eq.js.map +1 -0
  132. package/dist/server/services/builders/filters/operators/eq.mjs +20 -0
  133. package/dist/server/services/builders/filters/operators/eq.mjs.map +1 -0
  134. package/dist/server/services/builders/filters/operators/eqi.js +15 -0
  135. package/dist/server/services/builders/filters/operators/eqi.js.map +1 -0
  136. package/dist/server/services/builders/filters/operators/eqi.mjs +13 -0
  137. package/dist/server/services/builders/filters/operators/eqi.mjs.map +1 -0
  138. package/dist/server/services/builders/filters/operators/gt.js +15 -0
  139. package/dist/server/services/builders/filters/operators/gt.js.map +1 -0
  140. package/dist/server/services/builders/filters/operators/gt.mjs +13 -0
  141. package/dist/server/services/builders/filters/operators/gt.mjs.map +1 -0
  142. package/dist/server/services/builders/filters/operators/gte.js +15 -0
  143. package/dist/server/services/builders/filters/operators/gte.js.map +1 -0
  144. package/dist/server/services/builders/filters/operators/gte.mjs +13 -0
  145. package/dist/server/services/builders/filters/operators/gte.mjs.map +1 -0
  146. package/dist/server/services/builders/filters/operators/in.js +17 -0
  147. package/dist/server/services/builders/filters/operators/in.js.map +1 -0
  148. package/dist/server/services/builders/filters/operators/in.mjs +15 -0
  149. package/dist/server/services/builders/filters/operators/in.mjs.map +1 -0
  150. package/dist/server/services/builders/filters/operators/index.js +57 -0
  151. package/dist/server/services/builders/filters/operators/index.js.map +1 -0
  152. package/dist/server/services/builders/filters/operators/index.mjs +55 -0
  153. package/dist/server/services/builders/filters/operators/index.mjs.map +1 -0
  154. package/dist/server/services/builders/filters/operators/lt.js +15 -0
  155. package/dist/server/services/builders/filters/operators/lt.js.map +1 -0
  156. package/dist/server/services/builders/filters/operators/lt.mjs +13 -0
  157. package/dist/server/services/builders/filters/operators/lt.mjs.map +1 -0
  158. package/dist/server/services/builders/filters/operators/lte.js +15 -0
  159. package/dist/server/services/builders/filters/operators/lte.js.map +1 -0
  160. package/dist/server/services/builders/filters/operators/lte.mjs +13 -0
  161. package/dist/server/services/builders/filters/operators/lte.mjs.map +1 -0
  162. package/dist/server/services/builders/filters/operators/ne.js +15 -0
  163. package/dist/server/services/builders/filters/operators/ne.js.map +1 -0
  164. package/dist/server/services/builders/filters/operators/ne.mjs +13 -0
  165. package/dist/server/services/builders/filters/operators/ne.mjs.map +1 -0
  166. package/dist/server/services/builders/filters/operators/nei.js +15 -0
  167. package/dist/server/services/builders/filters/operators/nei.js.map +1 -0
  168. package/dist/server/services/builders/filters/operators/nei.mjs +13 -0
  169. package/dist/server/services/builders/filters/operators/nei.mjs.map +1 -0
  170. package/dist/server/services/builders/filters/operators/not-contains.js +15 -0
  171. package/dist/server/services/builders/filters/operators/not-contains.js.map +1 -0
  172. package/dist/server/services/builders/filters/operators/not-contains.mjs +13 -0
  173. package/dist/server/services/builders/filters/operators/not-contains.mjs.map +1 -0
  174. package/dist/server/services/builders/filters/operators/not-containsi.js +15 -0
  175. package/dist/server/services/builders/filters/operators/not-containsi.js.map +1 -0
  176. package/dist/server/services/builders/filters/operators/not-containsi.mjs +13 -0
  177. package/dist/server/services/builders/filters/operators/not-containsi.mjs.map +1 -0
  178. package/dist/server/services/builders/filters/operators/not-in.js +17 -0
  179. package/dist/server/services/builders/filters/operators/not-in.js.map +1 -0
  180. package/dist/server/services/builders/filters/operators/not-in.mjs +15 -0
  181. package/dist/server/services/builders/filters/operators/not-in.mjs.map +1 -0
  182. package/dist/server/services/builders/filters/operators/not-null.js +13 -0
  183. package/dist/server/services/builders/filters/operators/not-null.js.map +1 -0
  184. package/dist/server/services/builders/filters/operators/not-null.mjs +11 -0
  185. package/dist/server/services/builders/filters/operators/not-null.mjs.map +1 -0
  186. package/dist/server/services/builders/filters/operators/not.js +24 -0
  187. package/dist/server/services/builders/filters/operators/not.js.map +1 -0
  188. package/dist/server/services/builders/filters/operators/not.mjs +22 -0
  189. package/dist/server/services/builders/filters/operators/not.mjs.map +1 -0
  190. package/dist/server/services/builders/filters/operators/null.js +13 -0
  191. package/dist/server/services/builders/filters/operators/null.js.map +1 -0
  192. package/dist/server/services/builders/filters/operators/null.mjs +11 -0
  193. package/dist/server/services/builders/filters/operators/null.mjs.map +1 -0
  194. package/dist/server/services/builders/filters/operators/or.js +17 -0
  195. package/dist/server/services/builders/filters/operators/or.js.map +1 -0
  196. package/dist/server/services/builders/filters/operators/or.mjs +15 -0
  197. package/dist/server/services/builders/filters/operators/or.mjs.map +1 -0
  198. package/dist/server/services/builders/filters/operators/starts-with.js +15 -0
  199. package/dist/server/services/builders/filters/operators/starts-with.js.map +1 -0
  200. package/dist/server/services/builders/filters/operators/starts-with.mjs +13 -0
  201. package/dist/server/services/builders/filters/operators/starts-with.mjs.map +1 -0
  202. package/dist/server/services/builders/generic-morph.js +38 -0
  203. package/dist/server/services/builders/generic-morph.js.map +1 -0
  204. package/dist/server/services/builders/generic-morph.mjs +36 -0
  205. package/dist/server/services/builders/generic-morph.mjs.map +1 -0
  206. package/dist/server/services/builders/index.js +75 -0
  207. package/dist/server/services/builders/index.js.map +1 -0
  208. package/dist/server/services/builders/index.mjs +73 -0
  209. package/dist/server/services/builders/index.mjs.map +1 -0
  210. package/dist/server/services/builders/input.js +89 -0
  211. package/dist/server/services/builders/input.js.map +1 -0
  212. package/dist/server/services/builders/input.mjs +87 -0
  213. package/dist/server/services/builders/input.mjs.map +1 -0
  214. package/dist/server/services/builders/mutations/collection-type.js +155 -0
  215. package/dist/server/services/builders/mutations/collection-type.js.map +1 -0
  216. package/dist/server/services/builders/mutations/collection-type.mjs +153 -0
  217. package/dist/server/services/builders/mutations/collection-type.mjs.map +1 -0
  218. package/dist/server/services/builders/mutations/index.js +12 -0
  219. package/dist/server/services/builders/mutations/index.js.map +1 -0
  220. package/dist/server/services/builders/mutations/index.mjs +10 -0
  221. package/dist/server/services/builders/mutations/index.mjs.map +1 -0
  222. package/dist/server/services/builders/mutations/single-type.js +123 -0
  223. package/dist/server/services/builders/mutations/single-type.js.map +1 -0
  224. package/dist/server/services/builders/mutations/single-type.mjs +121 -0
  225. package/dist/server/services/builders/mutations/single-type.mjs.map +1 -0
  226. package/dist/server/services/builders/queries/collection-type.js +152 -0
  227. package/dist/server/services/builders/queries/collection-type.js.map +1 -0
  228. package/dist/server/services/builders/queries/collection-type.mjs +150 -0
  229. package/dist/server/services/builders/queries/collection-type.mjs.map +1 -0
  230. package/dist/server/services/builders/queries/index.js +12 -0
  231. package/dist/server/services/builders/queries/index.js.map +1 -0
  232. package/dist/server/services/builders/queries/index.mjs +10 -0
  233. package/dist/server/services/builders/queries/index.mjs.map +1 -0
  234. package/dist/server/services/builders/queries/single-type.js +70 -0
  235. package/dist/server/services/builders/queries/single-type.js.map +1 -0
  236. package/dist/server/services/builders/queries/single-type.mjs +68 -0
  237. package/dist/server/services/builders/queries/single-type.mjs.map +1 -0
  238. package/dist/server/services/builders/relation-response-collection.js +35 -0
  239. package/dist/server/services/builders/relation-response-collection.js.map +1 -0
  240. package/dist/server/services/builders/relation-response-collection.mjs +33 -0
  241. package/dist/server/services/builders/relation-response-collection.mjs.map +1 -0
  242. package/dist/server/services/builders/resolvers/association.js +141 -0
  243. package/dist/server/services/builders/resolvers/association.js.map +1 -0
  244. package/dist/server/services/builders/resolvers/association.mjs +139 -0
  245. package/dist/server/services/builders/resolvers/association.mjs.map +1 -0
  246. package/dist/server/services/builders/resolvers/component.js +27 -0
  247. package/dist/server/services/builders/resolvers/component.js.map +1 -0
  248. package/dist/server/services/builders/resolvers/component.mjs +25 -0
  249. package/dist/server/services/builders/resolvers/component.mjs.map +1 -0
  250. package/dist/server/services/builders/resolvers/dynamic-zone.js +12 -0
  251. package/dist/server/services/builders/resolvers/dynamic-zone.js.map +1 -0
  252. package/dist/server/services/builders/resolvers/dynamic-zone.mjs +10 -0
  253. package/dist/server/services/builders/resolvers/dynamic-zone.mjs.map +1 -0
  254. package/dist/server/services/builders/resolvers/index.js +20 -0
  255. package/dist/server/services/builders/resolvers/index.js.map +1 -0
  256. package/dist/server/services/builders/resolvers/index.mjs +18 -0
  257. package/dist/server/services/builders/resolvers/index.mjs.map +1 -0
  258. package/dist/server/services/builders/resolvers/merge-publication-args.js +23 -0
  259. package/dist/server/services/builders/resolvers/merge-publication-args.js.map +1 -0
  260. package/dist/server/services/builders/resolvers/merge-publication-args.mjs +21 -0
  261. package/dist/server/services/builders/resolvers/merge-publication-args.mjs.map +1 -0
  262. package/dist/server/services/builders/resolvers/pagination.js +40 -0
  263. package/dist/server/services/builders/resolvers/pagination.js.map +1 -0
  264. package/dist/server/services/builders/resolvers/pagination.mjs +38 -0
  265. package/dist/server/services/builders/resolvers/pagination.mjs.map +1 -0
  266. package/dist/server/services/builders/resolvers/query.js +62 -0
  267. package/dist/server/services/builders/resolvers/query.js.map +1 -0
  268. package/dist/server/services/builders/resolvers/query.mjs +60 -0
  269. package/dist/server/services/builders/resolvers/query.mjs.map +1 -0
  270. package/dist/server/services/builders/response-collection.js +50 -0
  271. package/dist/server/services/builders/response-collection.js.map +1 -0
  272. package/dist/server/services/builders/response-collection.mjs +48 -0
  273. package/dist/server/services/builders/response-collection.mjs.map +1 -0
  274. package/dist/server/services/builders/response.js +28 -0
  275. package/dist/server/services/builders/response.js.map +1 -0
  276. package/dist/server/services/builders/response.mjs +26 -0
  277. package/dist/server/services/builders/response.mjs.map +1 -0
  278. package/dist/server/services/builders/type.js +345 -0
  279. package/dist/server/services/builders/type.js.map +1 -0
  280. package/dist/server/services/builders/type.mjs +343 -0
  281. package/dist/server/services/builders/type.mjs.map +1 -0
  282. package/dist/server/services/builders/utils.js +132 -0
  283. package/dist/server/services/builders/utils.js.map +1 -0
  284. package/dist/server/services/builders/utils.mjs +130 -0
  285. package/dist/server/services/builders/utils.mjs.map +1 -0
  286. package/dist/server/services/constants.js +141 -0
  287. package/dist/server/services/constants.js.map +1 -0
  288. package/dist/server/services/constants.mjs +139 -0
  289. package/dist/server/services/constants.mjs.map +1 -0
  290. package/dist/server/services/content-api/index.js +198 -0
  291. package/dist/server/services/content-api/index.js.map +1 -0
  292. package/dist/server/services/content-api/index.mjs +196 -0
  293. package/dist/server/services/content-api/index.mjs.map +1 -0
  294. package/dist/server/services/content-api/policy.js +54 -0
  295. package/dist/server/services/content-api/policy.js.map +1 -0
  296. package/dist/server/services/content-api/policy.mjs +52 -0
  297. package/dist/server/services/content-api/policy.mjs.map +1 -0
  298. package/dist/server/services/content-api/register-functions/collection-type.js +41 -0
  299. package/dist/server/services/content-api/register-functions/collection-type.js.map +1 -0
  300. package/dist/server/services/content-api/register-functions/collection-type.mjs +39 -0
  301. package/dist/server/services/content-api/register-functions/collection-type.mjs.map +1 -0
  302. package/dist/server/services/content-api/register-functions/component.js +16 -0
  303. package/dist/server/services/content-api/register-functions/component.js.map +1 -0
  304. package/dist/server/services/content-api/register-functions/component.mjs +14 -0
  305. package/dist/server/services/content-api/register-functions/component.mjs.map +1 -0
  306. package/dist/server/services/content-api/register-functions/dynamic-zones.js +31 -0
  307. package/dist/server/services/content-api/register-functions/dynamic-zones.js.map +1 -0
  308. package/dist/server/services/content-api/register-functions/dynamic-zones.mjs +29 -0
  309. package/dist/server/services/content-api/register-functions/dynamic-zones.mjs.map +1 -0
  310. package/dist/server/services/content-api/register-functions/enums.js +23 -0
  311. package/dist/server/services/content-api/register-functions/enums.js.map +1 -0
  312. package/dist/server/services/content-api/register-functions/enums.mjs +21 -0
  313. package/dist/server/services/content-api/register-functions/enums.mjs.map +1 -0
  314. package/dist/server/services/content-api/register-functions/filters.js +16 -0
  315. package/dist/server/services/content-api/register-functions/filters.js.map +1 -0
  316. package/dist/server/services/content-api/register-functions/filters.mjs +14 -0
  317. package/dist/server/services/content-api/register-functions/filters.mjs.map +1 -0
  318. package/dist/server/services/content-api/register-functions/inputs.js +17 -0
  319. package/dist/server/services/content-api/register-functions/inputs.js.map +1 -0
  320. package/dist/server/services/content-api/register-functions/inputs.mjs +15 -0
  321. package/dist/server/services/content-api/register-functions/inputs.mjs.map +1 -0
  322. package/dist/server/services/content-api/register-functions/internals.js +16 -0
  323. package/dist/server/services/content-api/register-functions/internals.js.map +1 -0
  324. package/dist/server/services/content-api/register-functions/internals.mjs +14 -0
  325. package/dist/server/services/content-api/register-functions/internals.mjs.map +1 -0
  326. package/dist/server/services/content-api/register-functions/polymorphic.js +49 -0
  327. package/dist/server/services/content-api/register-functions/polymorphic.js.map +1 -0
  328. package/dist/server/services/content-api/register-functions/polymorphic.mjs +47 -0
  329. package/dist/server/services/content-api/register-functions/polymorphic.mjs.map +1 -0
  330. package/dist/server/services/content-api/register-functions/scalars.js +15 -0
  331. package/dist/server/services/content-api/register-functions/scalars.js.map +1 -0
  332. package/dist/server/services/content-api/register-functions/scalars.mjs +13 -0
  333. package/dist/server/services/content-api/register-functions/scalars.mjs.map +1 -0
  334. package/dist/server/services/content-api/register-functions/single-type.js +41 -0
  335. package/dist/server/services/content-api/register-functions/single-type.js.map +1 -0
  336. package/dist/server/services/content-api/register-functions/single-type.mjs +39 -0
  337. package/dist/server/services/content-api/register-functions/single-type.mjs.map +1 -0
  338. package/dist/server/services/content-api/wrap-resolvers.js +119 -0
  339. package/dist/server/services/content-api/wrap-resolvers.js.map +1 -0
  340. package/dist/server/services/content-api/wrap-resolvers.mjs +117 -0
  341. package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -0
  342. package/dist/server/services/extension/extension.js +85 -0
  343. package/dist/server/services/extension/extension.js.map +1 -0
  344. package/dist/server/services/extension/extension.mjs +63 -0
  345. package/dist/server/services/extension/extension.mjs.map +1 -0
  346. package/dist/server/services/extension/index.js +8 -0
  347. package/dist/server/services/extension/index.js.map +1 -0
  348. package/dist/server/services/extension/index.mjs +6 -0
  349. package/dist/server/services/extension/index.mjs.map +1 -0
  350. package/dist/server/services/extension/shadow-crud-manager.js +121 -0
  351. package/dist/server/services/extension/shadow-crud-manager.js.map +1 -0
  352. package/dist/server/services/extension/shadow-crud-manager.mjs +119 -0
  353. package/dist/server/services/extension/shadow-crud-manager.mjs.map +1 -0
  354. package/dist/server/services/format/index.js +10 -0
  355. package/dist/server/services/format/index.js.map +1 -0
  356. package/dist/server/services/format/index.mjs +8 -0
  357. package/dist/server/services/format/index.mjs.map +1 -0
  358. package/dist/server/services/format/return-types.js +27 -0
  359. package/dist/server/services/format/return-types.js.map +1 -0
  360. package/dist/server/services/format/return-types.mjs +25 -0
  361. package/dist/server/services/format/return-types.mjs.map +1 -0
  362. package/dist/server/services/index.js +24 -0
  363. package/dist/server/services/index.js.map +1 -0
  364. package/dist/server/services/index.mjs +22 -0
  365. package/dist/server/services/index.mjs.map +1 -0
  366. package/dist/server/services/internals/args/has-published-version.js +11 -0
  367. package/dist/server/services/internals/args/has-published-version.js.map +1 -0
  368. package/dist/server/services/internals/args/has-published-version.mjs +9 -0
  369. package/dist/server/services/internals/args/has-published-version.mjs.map +1 -0
  370. package/dist/server/services/internals/args/index.js +18 -0
  371. package/dist/server/services/internals/args/index.js.map +1 -0
  372. package/dist/server/services/internals/args/index.mjs +16 -0
  373. package/dist/server/services/internals/args/index.mjs.map +1 -0
  374. package/dist/server/services/internals/args/pagination.js +20 -0
  375. package/dist/server/services/internals/args/pagination.js.map +1 -0
  376. package/dist/server/services/internals/args/pagination.mjs +18 -0
  377. package/dist/server/services/internals/args/pagination.mjs.map +1 -0
  378. package/dist/server/services/internals/args/publication-filter.js +13 -0
  379. package/dist/server/services/internals/args/publication-filter.js.map +1 -0
  380. package/dist/server/services/internals/args/publication-filter.mjs +11 -0
  381. package/dist/server/services/internals/args/publication-filter.mjs.map +1 -0
  382. package/dist/server/services/internals/args/publication-status.js +14 -0
  383. package/dist/server/services/internals/args/publication-status.js.map +1 -0
  384. package/dist/server/services/internals/args/publication-status.mjs +12 -0
  385. package/dist/server/services/internals/args/publication-status.mjs.map +1 -0
  386. package/dist/server/services/internals/args/sort.js +11 -0
  387. package/dist/server/services/internals/args/sort.js.map +1 -0
  388. package/dist/server/services/internals/args/sort.mjs +9 -0
  389. package/dist/server/services/internals/args/sort.mjs.map +1 -0
  390. package/dist/server/services/internals/helpers/get-enabled-scalars.js +13 -0
  391. package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -0
  392. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs +11 -0
  393. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -0
  394. package/dist/server/services/internals/helpers/index.js +10 -0
  395. package/dist/server/services/internals/helpers/index.js.map +1 -0
  396. package/dist/server/services/internals/helpers/index.mjs +8 -0
  397. package/dist/server/services/internals/helpers/index.mjs.map +1 -0
  398. package/dist/server/services/internals/index.js +16 -0
  399. package/dist/server/services/internals/index.js.map +1 -0
  400. package/dist/server/services/internals/index.mjs +14 -0
  401. package/dist/server/services/internals/index.mjs.map +1 -0
  402. package/dist/server/services/internals/scalars/date.js +18 -0
  403. package/dist/server/services/internals/scalars/date.js.map +1 -0
  404. package/dist/server/services/internals/scalars/date.mjs +15 -0
  405. package/dist/server/services/internals/scalars/date.mjs.map +1 -0
  406. package/dist/server/services/internals/scalars/index.js +17 -0
  407. package/dist/server/services/internals/scalars/index.js.map +1 -0
  408. package/dist/server/services/internals/scalars/index.mjs +15 -0
  409. package/dist/server/services/internals/scalars/index.mjs.map +1 -0
  410. package/dist/server/services/internals/scalars/time.js +38 -0
  411. package/dist/server/services/internals/scalars/time.js.map +1 -0
  412. package/dist/server/services/internals/scalars/time.mjs +36 -0
  413. package/dist/server/services/internals/scalars/time.mjs.map +1 -0
  414. package/dist/server/services/internals/types/delete-mutation-response.js +18 -0
  415. package/dist/server/services/internals/types/delete-mutation-response.js.map +1 -0
  416. package/dist/server/services/internals/types/delete-mutation-response.mjs +16 -0
  417. package/dist/server/services/internals/types/delete-mutation-response.mjs.map +1 -0
  418. package/dist/server/services/internals/types/error.js +32 -0
  419. package/dist/server/services/internals/types/error.js.map +1 -0
  420. package/dist/server/services/internals/types/error.mjs +30 -0
  421. package/dist/server/services/internals/types/error.mjs.map +1 -0
  422. package/dist/server/services/internals/types/filters.js +35 -0
  423. package/dist/server/services/internals/types/filters.js.map +1 -0
  424. package/dist/server/services/internals/types/filters.mjs +33 -0
  425. package/dist/server/services/internals/types/filters.mjs.map +1 -0
  426. package/dist/server/services/internals/types/index.js +32 -0
  427. package/dist/server/services/internals/types/index.js.map +1 -0
  428. package/dist/server/services/internals/types/index.mjs +30 -0
  429. package/dist/server/services/internals/types/index.mjs.map +1 -0
  430. package/dist/server/services/internals/types/pagination.js +24 -0
  431. package/dist/server/services/internals/types/pagination.js.map +1 -0
  432. package/dist/server/services/internals/types/pagination.mjs +22 -0
  433. package/dist/server/services/internals/types/pagination.mjs.map +1 -0
  434. package/dist/server/services/internals/types/publication-filter.js +25 -0
  435. package/dist/server/services/internals/types/publication-filter.js.map +1 -0
  436. package/dist/server/services/internals/types/publication-filter.mjs +23 -0
  437. package/dist/server/services/internals/types/publication-filter.mjs.map +1 -0
  438. package/dist/server/services/internals/types/publication-status.js +22 -0
  439. package/dist/server/services/internals/types/publication-status.js.map +1 -0
  440. package/dist/server/services/internals/types/publication-status.mjs +20 -0
  441. package/dist/server/services/internals/types/publication-status.mjs.map +1 -0
  442. package/dist/server/services/internals/types/response-collection-meta.js +27 -0
  443. package/dist/server/services/internals/types/response-collection-meta.js.map +1 -0
  444. package/dist/server/services/internals/types/response-collection-meta.mjs +25 -0
  445. package/dist/server/services/internals/types/response-collection-meta.mjs.map +1 -0
  446. package/dist/server/services/type-registry.js +81 -0
  447. package/dist/server/services/type-registry.js.map +1 -0
  448. package/dist/server/services/type-registry.mjs +79 -0
  449. package/dist/server/services/type-registry.mjs.map +1 -0
  450. package/dist/server/services/utils/attributes.js +65 -0
  451. package/dist/server/services/utils/attributes.js.map +1 -0
  452. package/dist/server/services/utils/attributes.mjs +63 -0
  453. package/dist/server/services/utils/attributes.mjs.map +1 -0
  454. package/dist/server/services/utils/index.js +16 -0
  455. package/dist/server/services/utils/index.js.map +1 -0
  456. package/dist/server/services/utils/index.mjs +14 -0
  457. package/dist/server/services/utils/index.mjs.map +1 -0
  458. package/dist/server/services/utils/mappers/entity-to-response-entity.js +16 -0
  459. package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -0
  460. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +14 -0
  461. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -0
  462. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js +95 -0
  463. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -0
  464. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs +93 -0
  465. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -0
  466. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js +15 -0
  467. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -0
  468. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs +13 -0
  469. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -0
  470. package/dist/server/services/utils/mappers/index.js +16 -0
  471. package/dist/server/services/utils/mappers/index.js.map +1 -0
  472. package/dist/server/services/utils/mappers/index.mjs +14 -0
  473. package/dist/server/services/utils/mappers/index.mjs.map +1 -0
  474. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js +23 -0
  475. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -0
  476. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs +21 -0
  477. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -0
  478. package/dist/server/services/utils/naming.js +187 -0
  479. package/dist/server/services/utils/naming.js.map +1 -0
  480. package/dist/server/services/utils/naming.mjs +185 -0
  481. package/dist/server/services/utils/naming.mjs.map +1 -0
  482. package/dist/server/services/utils/playground.js +19 -0
  483. package/dist/server/services/utils/playground.js.map +1 -0
  484. package/dist/server/services/utils/playground.mjs +17 -0
  485. package/dist/server/services/utils/playground.mjs.map +1 -0
  486. package/dist/server/src/bootstrap.d.ts +7 -0
  487. package/dist/server/src/bootstrap.d.ts.map +1 -1
  488. package/dist/server/src/index.d.ts +35 -33
  489. package/dist/server/src/index.d.ts.map +1 -1
  490. package/dist/server/src/services/builders/dynamic-zones.d.ts.map +1 -1
  491. package/dist/server/src/services/builders/entity.d.ts.map +1 -1
  492. package/dist/server/src/services/builders/enums.d.ts.map +1 -1
  493. package/dist/server/src/services/builders/filters/content-type.d.ts.map +1 -1
  494. package/dist/server/src/services/builders/filters/index.d.ts.map +1 -1
  495. package/dist/server/src/services/builders/filters/operators/and.d.ts.map +1 -1
  496. package/dist/server/src/services/builders/filters/operators/between.d.ts.map +1 -1
  497. package/dist/server/src/services/builders/filters/operators/contains.d.ts.map +1 -1
  498. package/dist/server/src/services/builders/filters/operators/containsi.d.ts.map +1 -1
  499. package/dist/server/src/services/builders/filters/operators/ends-with.d.ts.map +1 -1
  500. package/dist/server/src/services/builders/filters/operators/eq.d.ts.map +1 -1
  501. package/dist/server/src/services/builders/filters/operators/eqi.d.ts.map +1 -1
  502. package/dist/server/src/services/builders/filters/operators/gt.d.ts.map +1 -1
  503. package/dist/server/src/services/builders/filters/operators/gte.d.ts.map +1 -1
  504. package/dist/server/src/services/builders/filters/operators/in.d.ts.map +1 -1
  505. package/dist/server/src/services/builders/filters/operators/index.d.ts +0 -1
  506. package/dist/server/src/services/builders/filters/operators/index.d.ts.map +1 -1
  507. package/dist/server/src/services/builders/filters/operators/lt.d.ts.map +1 -1
  508. package/dist/server/src/services/builders/filters/operators/lte.d.ts.map +1 -1
  509. package/dist/server/src/services/builders/filters/operators/ne.d.ts.map +1 -1
  510. package/dist/server/src/services/builders/filters/operators/nei.d.ts.map +1 -1
  511. package/dist/server/src/services/builders/filters/operators/not-contains.d.ts.map +1 -1
  512. package/dist/server/src/services/builders/filters/operators/not-containsi.d.ts.map +1 -1
  513. package/dist/server/src/services/builders/filters/operators/not-in.d.ts.map +1 -1
  514. package/dist/server/src/services/builders/filters/operators/not-null.d.ts.map +1 -1
  515. package/dist/server/src/services/builders/filters/operators/not.d.ts.map +1 -1
  516. package/dist/server/src/services/builders/filters/operators/null.d.ts.map +1 -1
  517. package/dist/server/src/services/builders/filters/operators/or.d.ts.map +1 -1
  518. package/dist/server/src/services/builders/filters/operators/starts-with.d.ts.map +1 -1
  519. package/dist/server/src/services/builders/generic-morph.d.ts.map +1 -1
  520. package/dist/server/src/services/builders/index.d.ts +7 -14
  521. package/dist/server/src/services/builders/index.d.ts.map +1 -1
  522. package/dist/server/src/services/builders/input.d.ts.map +1 -1
  523. package/dist/server/src/services/builders/mutations/collection-type.d.ts.map +1 -1
  524. package/dist/server/src/services/builders/mutations/index.d.ts.map +1 -1
  525. package/dist/server/src/services/builders/mutations/single-type.d.ts.map +1 -1
  526. package/dist/server/src/services/builders/queries/collection-type.d.ts.map +1 -1
  527. package/dist/server/src/services/builders/queries/index.d.ts.map +1 -1
  528. package/dist/server/src/services/builders/queries/single-type.d.ts.map +1 -1
  529. package/dist/server/src/services/builders/relation-response-collection.d.ts.map +1 -1
  530. package/dist/server/src/services/builders/resolvers/association.d.ts +1 -1
  531. package/dist/server/src/services/builders/resolvers/association.d.ts.map +1 -1
  532. package/dist/server/src/services/builders/resolvers/component.d.ts.map +1 -1
  533. package/dist/server/src/services/builders/resolvers/dynamic-zone.d.ts.map +1 -1
  534. package/dist/server/src/services/builders/resolvers/index.d.ts +5 -5
  535. package/dist/server/src/services/builders/resolvers/index.d.ts.map +1 -1
  536. package/dist/server/src/services/builders/resolvers/merge-publication-args.d.ts +9 -0
  537. package/dist/server/src/services/builders/resolvers/merge-publication-args.d.ts.map +1 -0
  538. package/dist/server/src/services/builders/resolvers/pagination.d.ts.map +1 -1
  539. package/dist/server/src/services/builders/resolvers/query.d.ts.map +1 -1
  540. package/dist/server/src/services/builders/response-collection.d.ts.map +1 -1
  541. package/dist/server/src/services/builders/response.d.ts.map +1 -1
  542. package/dist/server/src/services/builders/type.d.ts.map +1 -1
  543. package/dist/server/src/services/builders/utils.d.ts +4 -11
  544. package/dist/server/src/services/builders/utils.d.ts.map +1 -1
  545. package/dist/server/src/services/constants.d.ts +1 -0
  546. package/dist/server/src/services/constants.d.ts.map +1 -1
  547. package/dist/server/src/services/content-api/index.d.ts +2 -0
  548. package/dist/server/src/services/content-api/index.d.ts.map +1 -1
  549. package/dist/server/src/services/content-api/policy.d.ts.map +1 -1
  550. package/dist/server/src/services/content-api/register-functions/collection-type.d.ts.map +1 -1
  551. package/dist/server/src/services/content-api/register-functions/component.d.ts.map +1 -1
  552. package/dist/server/src/services/content-api/register-functions/dynamic-zones.d.ts.map +1 -1
  553. package/dist/server/src/services/content-api/register-functions/enums.d.ts.map +1 -1
  554. package/dist/server/src/services/content-api/register-functions/filters.d.ts.map +1 -1
  555. package/dist/server/src/services/content-api/register-functions/inputs.d.ts.map +1 -1
  556. package/dist/server/src/services/content-api/register-functions/internals.d.ts.map +1 -1
  557. package/dist/server/src/services/content-api/register-functions/polymorphic.d.ts.map +1 -1
  558. package/dist/server/src/services/content-api/register-functions/scalars.d.ts.map +1 -1
  559. package/dist/server/src/services/content-api/register-functions/single-type.d.ts.map +1 -1
  560. package/dist/server/src/services/content-api/wrap-resolvers.d.ts.map +1 -1
  561. package/dist/server/src/services/extension/extension.d.ts +10 -10
  562. package/dist/server/src/services/extension/extension.d.ts.map +1 -1
  563. package/dist/server/src/services/extension/shadow-crud-manager.d.ts +9 -9
  564. package/dist/server/src/services/extension/shadow-crud-manager.d.ts.map +1 -1
  565. package/dist/server/src/services/index.d.ts +35 -33
  566. package/dist/server/src/services/index.d.ts.map +1 -1
  567. package/dist/server/src/services/internals/args/has-published-version.d.ts +7 -0
  568. package/dist/server/src/services/internals/args/has-published-version.d.ts.map +1 -0
  569. package/dist/server/src/services/internals/args/index.d.ts +3 -0
  570. package/dist/server/src/services/internals/args/index.d.ts.map +1 -1
  571. package/dist/server/src/services/internals/args/publication-filter.d.ts +4 -0
  572. package/dist/server/src/services/internals/args/publication-filter.d.ts.map +1 -0
  573. package/dist/server/src/services/internals/args/publication-status.d.ts.map +1 -1
  574. package/dist/server/src/services/internals/helpers/get-enabled-scalars.d.ts.map +1 -1
  575. package/dist/server/src/services/internals/helpers/index.d.ts.map +1 -1
  576. package/dist/server/src/services/internals/index.d.ts +7 -0
  577. package/dist/server/src/services/internals/index.d.ts.map +1 -1
  578. package/dist/server/src/services/internals/types/delete-mutation-response.d.ts.map +1 -1
  579. package/dist/server/src/services/internals/types/error.d.ts.map +1 -1
  580. package/dist/server/src/services/internals/types/filters.d.ts.map +1 -1
  581. package/dist/server/src/services/internals/types/index.d.ts +5 -0
  582. package/dist/server/src/services/internals/types/index.d.ts.map +1 -1
  583. package/dist/server/src/services/internals/types/pagination.d.ts.map +1 -1
  584. package/dist/server/src/services/internals/types/publication-filter.d.ts +6 -0
  585. package/dist/server/src/services/internals/types/publication-filter.d.ts.map +1 -0
  586. package/dist/server/src/services/internals/types/publication-status.d.ts.map +1 -1
  587. package/dist/server/src/services/internals/types/response-collection-meta.d.ts.map +1 -1
  588. package/dist/server/src/services/type-registry.d.ts.map +1 -1
  589. package/dist/server/src/services/utils/attributes.d.ts.map +1 -1
  590. package/dist/server/src/services/utils/index.d.ts +8 -9
  591. package/dist/server/src/services/utils/index.d.ts.map +1 -1
  592. package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts +1 -3
  593. package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts.map +1 -1
  594. package/dist/server/src/services/utils/mappers/graphql-filters-to-strapi-query.d.ts.map +1 -1
  595. package/dist/server/src/services/utils/mappers/graphql-scalar-to-operators.d.ts.map +1 -1
  596. package/dist/server/src/services/utils/mappers/index.d.ts +1 -3
  597. package/dist/server/src/services/utils/mappers/index.d.ts.map +1 -1
  598. package/dist/server/src/services/utils/mappers/strapi-scalar-to-graphql-scalar.d.ts.map +1 -1
  599. package/dist/server/src/services/utils/naming.d.ts +3 -3
  600. package/dist/server/src/services/utils/naming.d.ts.map +1 -1
  601. package/dist/server/src/services/utils/playground.d.ts +1 -0
  602. package/dist/server/src/services/utils/playground.d.ts.map +1 -1
  603. package/package.json +30 -22
  604. package/dist/_chunks/dk-BbJCmDw6.mjs +0 -9
  605. package/dist/_chunks/dk-BbJCmDw6.mjs.map +0 -1
  606. package/dist/_chunks/dk-C9NcSzyg.js +0 -9
  607. package/dist/_chunks/dk-C9NcSzyg.js.map +0 -1
  608. package/dist/_chunks/en-BiKpmhCU.js +0 -9
  609. package/dist/_chunks/en-BiKpmhCU.js.map +0 -1
  610. package/dist/_chunks/en-YIQYYlvv.mjs +0 -9
  611. package/dist/_chunks/en-YIQYYlvv.mjs.map +0 -1
  612. package/dist/_chunks/es-BbsZ5Fh0.mjs +0 -9
  613. package/dist/_chunks/es-BbsZ5Fh0.mjs.map +0 -1
  614. package/dist/_chunks/es-DE22V9D4.js +0 -9
  615. package/dist/_chunks/es-DE22V9D4.js.map +0 -1
  616. package/dist/_chunks/fr-BgqFw7G8.mjs +0 -9
  617. package/dist/_chunks/fr-BgqFw7G8.mjs.map +0 -1
  618. package/dist/_chunks/fr-Ca-HowfR.js +0 -9
  619. package/dist/_chunks/fr-Ca-HowfR.js.map +0 -1
  620. package/dist/_chunks/pl-CbET57Jb.mjs +0 -9
  621. package/dist/_chunks/pl-CbET57Jb.mjs.map +0 -1
  622. package/dist/_chunks/pl-DVnJGR87.js +0 -9
  623. package/dist/_chunks/pl-DVnJGR87.js.map +0 -1
  624. package/dist/_chunks/ru-BFz40YSA.mjs +0 -9
  625. package/dist/_chunks/ru-BFz40YSA.mjs.map +0 -1
  626. package/dist/_chunks/ru-o4zaP02C.js +0 -9
  627. package/dist/_chunks/ru-o4zaP02C.js.map +0 -1
  628. package/dist/_chunks/sv-9qK4y9fb.js +0 -9
  629. package/dist/_chunks/sv-9qK4y9fb.js.map +0 -1
  630. package/dist/_chunks/sv-CNYcKBn2.mjs +0 -9
  631. package/dist/_chunks/sv-CNYcKBn2.mjs.map +0 -1
  632. package/dist/_chunks/tr-H1PrR6RM.mjs +0 -9
  633. package/dist/_chunks/tr-H1PrR6RM.mjs.map +0 -1
  634. package/dist/_chunks/tr-fBBDNMBY.js +0 -9
  635. package/dist/_chunks/tr-fBBDNMBY.js.map +0 -1
  636. package/dist/_chunks/zh-BEh3jejH.mjs +0 -9
  637. package/dist/_chunks/zh-BEh3jejH.mjs.map +0 -1
  638. package/dist/_chunks/zh-CyCKPuL0.js +0 -9
  639. package/dist/_chunks/zh-CyCKPuL0.js.map +0 -1
  640. package/dist/_chunks/zh-Hans-Btuz6Y7W.js +0 -9
  641. package/dist/_chunks/zh-Hans-Btuz6Y7W.js.map +0 -1
  642. package/dist/_chunks/zh-Hans-CRQss50D.mjs +0 -9
  643. package/dist/_chunks/zh-Hans-CRQss50D.mjs.map +0 -1
  644. package/strapi-server.js +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../server/src/services/content-api/index.ts"],"sourcesContent":["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 // Cached set of built-in query fields (populated at bootstrap)\n let builtInQueryFields: Set<string> = new Set();\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 // Populate builtInQueryFields set for use by resolvers to avoid runtime schema builds\n try {\n const queryType = prunedNexusSchema.getQueryType();\n const fields = queryType ? Object.keys(queryType.getFields() || {}) : [];\n builtInQueryFields = new Set(fields);\n } catch (e) {\n // ignore; leave set empty\n }\n\n return prunedNexusSchema;\n };\n\n const getBuiltInQueryFields = () => builtInQueryFields;\n\n const isBuiltInQueryField = (fieldName: string) =>\n builtInQueryFields.has(fieldName) || fieldName.endsWith('_connection');\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, registerOptions);\n }\n\n // Generate & register collection type's definition\n else if (kind === 'collectionType') {\n registerCollectionType(contentType, 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, getBuiltInQueryFields, isBuiltInQueryField };\n};\n"],"names":["strapi","mergeSchemas","addResolversToSchema","require","service","getGraphQLService","plugin","config","KINDS","GENERIC_MORPH_TYPENAME","extensionService","registry","builders","builtInQueryFields","Set","buildSchema","isShadowCRUDEnabled","new","registerScalars","registerInternals","shadowCRUD","schema","buildMergedSchema","extension","generate","typeRegistry","schemaWithResolvers","resolvers","outputs","typegen","currentEnv","get","nexusSchema","makeSchema","types","mergeSchema","plugins","shouldGenerateArtifacts","wrappedNexusSchema","wrapResolvers","prunedNexusSchema","pruneSchema","queryType","getQueryType","fields","Object","keys","getFields","e","getBuiltInQueryFields","isBuiltInQueryField","fieldName","has","endsWith","typeDefs","definitions","schemas","contentTypes","values","components","map","prop","filter","startsWith","forEach","uid","disable","contentTypesWithShadowCRUD","ct","isEnabled","registerAPITypes","registerMorphTypes","contentType","modelType","registerOptions","registerEnumsDefinition","registerDynamicZonesDefinition","registerFiltersDefinition","registerInputsDefinition","registerComponent","kind","registerSingleType","registerCollectionType","genericMorphType","buildGenericMorphDefinition","register","morph","registerPolymorphicContentType"],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ import { pruneSchema } from '@graphql-tools/utils';
2
+ import { makeSchema } from 'nexus';
3
+ import { prop, startsWith } from 'lodash/fp';
4
+ import { wrapResolvers } from './wrap-resolvers.mjs';
5
+ import { registerCollectionType } from './register-functions/collection-type.mjs';
6
+ import { registerSingleType } from './register-functions/single-type.mjs';
7
+ import { registerComponent } from './register-functions/component.mjs';
8
+ import { registerPolymorphicContentType } from './register-functions/polymorphic.mjs';
9
+ import { registerScalars } from './register-functions/scalars.mjs';
10
+ import { registerInternals } from './register-functions/internals.mjs';
11
+ import { registerDynamicZonesDefinition } from './register-functions/dynamic-zones.mjs';
12
+ import { registerEnumsDefinition } from './register-functions/enums.mjs';
13
+ import { registerInputsDefinition } from './register-functions/inputs.mjs';
14
+ import { registerFiltersDefinition } from './register-functions/filters.mjs';
15
+
16
+ var contentAPI = (({ strapi })=>{
17
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
18
+ const { mergeSchemas, addResolversToSchema } = require('@graphql-tools/schema');
19
+ const { service: getGraphQLService } = strapi.plugin('graphql');
20
+ const { config } = strapi.plugin('graphql');
21
+ const { KINDS, GENERIC_MORPH_TYPENAME } = getGraphQLService('constants');
22
+ const extensionService = getGraphQLService('extension');
23
+ // Type Registry
24
+ let registry;
25
+ // Builders Instances
26
+ let builders;
27
+ // Cached set of built-in query fields (populated at bootstrap)
28
+ let builtInQueryFields = new Set();
29
+ const buildSchema = ()=>{
30
+ const isShadowCRUDEnabled = !!config('shadowCRUD');
31
+ // Create a new empty type registry
32
+ registry = getGraphQLService('type-registry').new();
33
+ // Reset the builders instances associated to the
34
+ // content-api, and link the new type registry
35
+ builders = getGraphQLService('builders').new('content-api', registry);
36
+ registerScalars({
37
+ registry,
38
+ strapi
39
+ });
40
+ registerInternals({
41
+ registry,
42
+ strapi
43
+ });
44
+ if (isShadowCRUDEnabled) {
45
+ shadowCRUD();
46
+ }
47
+ // Build a merged schema from both Nexus types & SDL type definitions
48
+ const schema = buildMergedSchema({
49
+ registry
50
+ });
51
+ // Generate the extension configuration for the content API.
52
+ // This extension instance needs to be generated after the Nexus schema's
53
+ // generation, so that configurations created during types definitions
54
+ // can be registered before being used in the wrap resolvers operation
55
+ const extension = extensionService.generate({
56
+ typeRegistry: registry
57
+ });
58
+ // Add the extension's resolvers to the final schema
59
+ const schemaWithResolvers = addResolversToSchema({
60
+ schema,
61
+ resolvers: extension.resolvers
62
+ });
63
+ // Create a configuration object for the artifacts generation
64
+ const outputs = {
65
+ schema: config('artifacts.schema', false),
66
+ typegen: config('artifacts.typegen', false)
67
+ };
68
+ const currentEnv = strapi.config.get('environment');
69
+ const nexusSchema = makeSchema({
70
+ types: [],
71
+ // Build the schema from the merged GraphQL schema.
72
+ // Since we're passing the schema to the mergeSchema property, it'll transform our SDL type definitions
73
+ // into Nexus type definition, thus allowing them to be handled by Nexus plugins & other processing
74
+ mergeSchema: {
75
+ schema: schemaWithResolvers
76
+ },
77
+ // Apply user-defined plugins
78
+ plugins: extension.plugins,
79
+ // Whether to generate artifacts (GraphQL schema, TS types definitions) or not.
80
+ // By default, we generate artifacts only on development environment
81
+ shouldGenerateArtifacts: config('generateArtifacts', currentEnv === 'development'),
82
+ // Artifacts generation configuration
83
+ outputs
84
+ });
85
+ // Wrap resolvers if needed (auth, middlewares, policies...) as configured in the extension
86
+ const wrappedNexusSchema = wrapResolvers({
87
+ schema: nexusSchema,
88
+ strapi,
89
+ extension
90
+ });
91
+ // Prune schema, remove unused types
92
+ // eg: removes registered subscriptions if they're disabled in the config)
93
+ const prunedNexusSchema = pruneSchema(wrappedNexusSchema);
94
+ // Populate builtInQueryFields set for use by resolvers to avoid runtime schema builds
95
+ try {
96
+ const queryType = prunedNexusSchema.getQueryType();
97
+ const fields = queryType ? Object.keys(queryType.getFields() || {}) : [];
98
+ builtInQueryFields = new Set(fields);
99
+ } catch (e) {
100
+ // ignore; leave set empty
101
+ }
102
+ return prunedNexusSchema;
103
+ };
104
+ const getBuiltInQueryFields = ()=>builtInQueryFields;
105
+ const isBuiltInQueryField = (fieldName)=>builtInQueryFields.has(fieldName) || fieldName.endsWith('_connection');
106
+ const buildMergedSchema = ({ registry })=>{
107
+ // Here we extract types, plugins & typeDefs from a temporary generated
108
+ // extension since there won't be any addition allowed after schemas generation
109
+ const { types, typeDefs = [] } = extensionService.generate({
110
+ typeRegistry: registry
111
+ });
112
+ // Nexus schema built with user-defined & shadow CRUD auto generated Nexus types
113
+ const nexusSchema = makeSchema({
114
+ types: [
115
+ registry.definitions,
116
+ types
117
+ ]
118
+ });
119
+ // Merge type definitions with the Nexus schema
120
+ return mergeSchemas({
121
+ typeDefs,
122
+ // Give access to the shadowCRUD & nexus based types
123
+ // Note: This is necessary so that types defined in SDL can reference types defined with Nexus
124
+ schemas: [
125
+ nexusSchema
126
+ ]
127
+ });
128
+ };
129
+ const shadowCRUD = ()=>{
130
+ const extensionService = getGraphQLService('extension');
131
+ // Get every content type & component defined in Strapi
132
+ const contentTypes = [
133
+ ...Object.values(strapi.components),
134
+ ...Object.values(strapi.contentTypes)
135
+ ];
136
+ // Disable Shadow CRUD for admin content types
137
+ contentTypes.map(prop('uid')).filter(startsWith('admin::')).forEach((uid)=>extensionService.shadowCRUD(uid).disable());
138
+ const contentTypesWithShadowCRUD = contentTypes.filter((ct)=>extensionService.shadowCRUD(ct.uid).isEnabled());
139
+ // Generate and register definitions for every content type
140
+ registerAPITypes(contentTypesWithShadowCRUD);
141
+ // Generate and register polymorphic types' definitions
142
+ registerMorphTypes(contentTypesWithShadowCRUD);
143
+ };
144
+ /**
145
+ * Register needed GraphQL types for every content type
146
+ * @param {object[]} contentTypes
147
+ */ const registerAPITypes = (contentTypes)=>{
148
+ for (const contentType of contentTypes){
149
+ const { modelType } = contentType;
150
+ const registerOptions = {
151
+ registry,
152
+ strapi,
153
+ builders
154
+ };
155
+ // Generate various types associated to the content type
156
+ // (enums, dynamic-zones, filters, inputs...)
157
+ registerEnumsDefinition(contentType, registerOptions);
158
+ registerDynamicZonesDefinition(contentType, registerOptions);
159
+ registerFiltersDefinition(contentType, registerOptions);
160
+ registerInputsDefinition(contentType, registerOptions);
161
+ // Generate & register component's definition
162
+ if (modelType === 'component') {
163
+ registerComponent(contentType, registerOptions);
164
+ continue;
165
+ }
166
+ const { kind } = contentType;
167
+ // Generate & register single type's definition
168
+ if (kind === 'singleType') {
169
+ registerSingleType(contentType, registerOptions);
170
+ } else if (kind === 'collectionType') {
171
+ registerCollectionType(contentType, registerOptions);
172
+ }
173
+ }
174
+ };
175
+ const registerMorphTypes = (contentTypes)=>{
176
+ // Create & register a union type that includes every type or component registered
177
+ const genericMorphType = builders.buildGenericMorphDefinition();
178
+ registry.register(GENERIC_MORPH_TYPENAME, genericMorphType, {
179
+ kind: KINDS.morph
180
+ });
181
+ for (const contentType of contentTypes){
182
+ registerPolymorphicContentType(contentType, {
183
+ registry,
184
+ strapi
185
+ });
186
+ }
187
+ };
188
+ return {
189
+ buildSchema,
190
+ getBuiltInQueryFields,
191
+ isBuiltInQueryField
192
+ };
193
+ });
194
+
195
+ export { contentAPI as default };
196
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../server/src/services/content-api/index.ts"],"sourcesContent":["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 // Cached set of built-in query fields (populated at bootstrap)\n let builtInQueryFields: Set<string> = new Set();\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 // Populate builtInQueryFields set for use by resolvers to avoid runtime schema builds\n try {\n const queryType = prunedNexusSchema.getQueryType();\n const fields = queryType ? Object.keys(queryType.getFields() || {}) : [];\n builtInQueryFields = new Set(fields);\n } catch (e) {\n // ignore; leave set empty\n }\n\n return prunedNexusSchema;\n };\n\n const getBuiltInQueryFields = () => builtInQueryFields;\n\n const isBuiltInQueryField = (fieldName: string) =>\n builtInQueryFields.has(fieldName) || fieldName.endsWith('_connection');\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, registerOptions);\n }\n\n // Generate & register collection type's definition\n else if (kind === 'collectionType') {\n registerCollectionType(contentType, 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, getBuiltInQueryFields, isBuiltInQueryField };\n};\n"],"names":["strapi","mergeSchemas","addResolversToSchema","require","service","getGraphQLService","plugin","config","KINDS","GENERIC_MORPH_TYPENAME","extensionService","registry","builders","builtInQueryFields","Set","buildSchema","isShadowCRUDEnabled","new","registerScalars","registerInternals","shadowCRUD","schema","buildMergedSchema","extension","generate","typeRegistry","schemaWithResolvers","resolvers","outputs","typegen","currentEnv","get","nexusSchema","makeSchema","types","mergeSchema","plugins","shouldGenerateArtifacts","wrappedNexusSchema","wrapResolvers","prunedNexusSchema","pruneSchema","queryType","getQueryType","fields","Object","keys","getFields","e","getBuiltInQueryFields","isBuiltInQueryField","fieldName","has","endsWith","typeDefs","definitions","schemas","contentTypes","values","components","map","prop","filter","startsWith","forEach","uid","disable","contentTypesWithShadowCRUD","ct","isEnabled","registerAPITypes","registerMorphTypes","contentType","modelType","registerOptions","registerEnumsDefinition","registerDynamicZonesDefinition","registerFiltersDefinition","registerInputsDefinition","registerComponent","kind","registerSingleType","registerCollectionType","genericMorphType","buildGenericMorphDefinition","register","morph","registerPolymorphicContentType"],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var utils = require('@strapi/utils');
5
+
6
+ const { PolicyError } = utils.errors;
7
+ const getPoliciesConfig = fp.propOr([], 'policies');
8
+ const createPoliciesMiddleware = (resolverConfig, { strapi })=>{
9
+ const resolverPolicies = getPoliciesConfig(resolverConfig);
10
+ const policies = strapi.get('policies').resolve(resolverPolicies, {});
11
+ return async (resolve, parent, args, context, info)=>{
12
+ // Create a graphql policy context
13
+ const policyContext = createGraphQLPolicyContext(parent, args, context, info);
14
+ // Run policies & throw an error if one of them fails
15
+ for (const { handler, config } of policies){
16
+ const result = await handler(policyContext, config, {
17
+ strapi
18
+ });
19
+ if (![
20
+ true,
21
+ undefined
22
+ ].includes(result)) {
23
+ throw new PolicyError();
24
+ }
25
+ }
26
+ return resolve(parent, args, context, info);
27
+ };
28
+ };
29
+ const createGraphQLPolicyContext = (parent, args, context, info)=>{
30
+ const policyContext = {
31
+ get parent () {
32
+ return parent;
33
+ },
34
+ get args () {
35
+ return args;
36
+ },
37
+ get context () {
38
+ return context;
39
+ },
40
+ get info () {
41
+ return info;
42
+ },
43
+ get state () {
44
+ return this.context.state;
45
+ },
46
+ get http () {
47
+ return this.context.koaContext;
48
+ }
49
+ };
50
+ return utils.policy.createPolicyContext('graphql', policyContext);
51
+ };
52
+
53
+ exports.createPoliciesMiddleware = createPoliciesMiddleware;
54
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sources":["../../../../server/src/services/content-api/policy.ts"],"sourcesContent":["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"],"names":["PolicyError","errors","getPoliciesConfig","propOr","createPoliciesMiddleware","resolverConfig","strapi","resolverPolicies","policies","get","resolve","parent","args","context","info","policyContext","createGraphQLPolicyContext","handler","config","result","undefined","includes","state","http","koaContext","policyUtils","createPolicyContext"],"mappings":";;;;;AAKA,MAAM,EAAEA,WAAW,EAAE,GAAGC,YAAAA;AAExB,MAAMC,iBAAAA,GAAoBC,SAAAA,CAAO,EAAE,EAAE,UAAA,CAAA;AAErC,MAAMC,wBAAAA,GAA2B,CAACC,cAAAA,EAAqB,EAAEC,MAAM,EAA2B,GAAA;AACxF,IAAA,MAAMC,mBAAmBL,iBAAAA,CAAkBG,cAAAA,CAAAA;IAC3C,MAAMG,QAAAA,GAAWF,OAAOG,GAAG,CAAC,YAAYC,OAAO,CAACH,kBAAkB,EAAC,CAAA;AAEnE,IAAA,OAAO,OACLG,OAAAA,EACAC,MAAAA,EACAC,IAAAA,EACAC,OAAAA,EACAC,IAAAA,GAAAA;;AAGA,QAAA,MAAMC,aAAAA,GAAgBC,0BAAAA,CAA2BL,MAAAA,EAAQC,IAAAA,EAAMC,OAAAA,EAASC,IAAAA,CAAAA;;AAGxE,QAAA,KAAK,MAAM,EAAEG,OAAO,EAAEC,MAAM,EAAE,IAAIV,QAAAA,CAAU;AAC1C,YAAA,MAAMW,MAAAA,GAAS,MAAMF,OAAAA,CAAQF,aAAAA,EAAeG,MAAAA,EAAQ;AAAEZ,gBAAAA;AAAO,aAAA,CAAA;AAE7D,YAAA,IAAI,CAAC;AAAC,gBAAA,IAAA;AAAMc,gBAAAA;aAAU,CAACC,QAAQ,CAACF,MAAAA,CAAAA,EAAS;AACvC,gBAAA,MAAM,IAAInB,WAAAA,EAAAA;AACZ,YAAA;AACF,QAAA;QAEA,OAAOU,OAAAA,CAAQC,MAAAA,EAAQC,IAAAA,EAAMC,OAAAA,EAASC,IAAAA,CAAAA;AACxC,IAAA,CAAA;AACF;AAEA,MAAME,0BAAAA,GAA6B,CACjCL,MAAAA,EACAC,IAAAA,EACAC,OAAAA,EACAC,IAAAA,GAAAA;AAEA,IAAA,MAAMC,aAAAA,GAAgB;AACpB,QAAA,IAAIJ,MAAAA,CAAAA,GAAS;YACX,OAAOA,MAAAA;AACT,QAAA,CAAA;AAEA,QAAA,IAAIC,IAAAA,CAAAA,GAAO;YACT,OAAOA,IAAAA;AACT,QAAA,CAAA;AAEA,QAAA,IAAIC,OAAAA,CAAAA,GAAU;YACZ,OAAOA,OAAAA;AACT,QAAA,CAAA;AAEA,QAAA,IAAIC,IAAAA,CAAAA,GAAO;YACT,OAAOA,IAAAA;AACT,QAAA,CAAA;AAEA,QAAA,IAAIQ,KAAAA,CAAAA,GAAQ;AACV,YAAA,OAAO,IAAI,CAACT,OAAO,CAACS,KAAK;AAC3B,QAAA,CAAA;AAEA,QAAA,IAAIC,IAAAA,CAAAA,GAAO;AACT,YAAA,OAAO,IAAI,CAACV,OAAO,CAACW,UAAU;AAChC,QAAA;AACF,KAAA;IAEA,OAAOC,YAAAA,CAAYC,mBAAmB,CAAC,SAAA,EAAWX,aAAAA,CAAAA;AACpD,CAAA;;;;"}
@@ -0,0 +1,52 @@
1
+ import { propOr } from 'lodash/fp';
2
+ import { errors, policy } from '@strapi/utils';
3
+
4
+ const { PolicyError } = errors;
5
+ const getPoliciesConfig = propOr([], 'policies');
6
+ const createPoliciesMiddleware = (resolverConfig, { strapi })=>{
7
+ const resolverPolicies = getPoliciesConfig(resolverConfig);
8
+ const policies = strapi.get('policies').resolve(resolverPolicies, {});
9
+ return async (resolve, parent, args, context, info)=>{
10
+ // Create a graphql policy context
11
+ const policyContext = createGraphQLPolicyContext(parent, args, context, info);
12
+ // Run policies & throw an error if one of them fails
13
+ for (const { handler, config } of policies){
14
+ const result = await handler(policyContext, config, {
15
+ strapi
16
+ });
17
+ if (![
18
+ true,
19
+ undefined
20
+ ].includes(result)) {
21
+ throw new PolicyError();
22
+ }
23
+ }
24
+ return resolve(parent, args, context, info);
25
+ };
26
+ };
27
+ const createGraphQLPolicyContext = (parent, args, context, info)=>{
28
+ const policyContext = {
29
+ get parent () {
30
+ return parent;
31
+ },
32
+ get args () {
33
+ return args;
34
+ },
35
+ get context () {
36
+ return context;
37
+ },
38
+ get info () {
39
+ return info;
40
+ },
41
+ get state () {
42
+ return this.context.state;
43
+ },
44
+ get http () {
45
+ return this.context.koaContext;
46
+ }
47
+ };
48
+ return policy.createPolicyContext('graphql', policyContext);
49
+ };
50
+
51
+ export { createPoliciesMiddleware };
52
+ //# sourceMappingURL=policy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.mjs","sources":["../../../../server/src/services/content-api/policy.ts"],"sourcesContent":["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"],"names":["PolicyError","errors","getPoliciesConfig","propOr","createPoliciesMiddleware","resolverConfig","strapi","resolverPolicies","policies","get","resolve","parent","args","context","info","policyContext","createGraphQLPolicyContext","handler","config","result","undefined","includes","state","http","koaContext","policyUtils","createPolicyContext"],"mappings":";;;AAKA,MAAM,EAAEA,WAAW,EAAE,GAAGC,MAAAA;AAExB,MAAMC,iBAAAA,GAAoBC,MAAAA,CAAO,EAAE,EAAE,UAAA,CAAA;AAErC,MAAMC,wBAAAA,GAA2B,CAACC,cAAAA,EAAqB,EAAEC,MAAM,EAA2B,GAAA;AACxF,IAAA,MAAMC,mBAAmBL,iBAAAA,CAAkBG,cAAAA,CAAAA;IAC3C,MAAMG,QAAAA,GAAWF,OAAOG,GAAG,CAAC,YAAYC,OAAO,CAACH,kBAAkB,EAAC,CAAA;AAEnE,IAAA,OAAO,OACLG,OAAAA,EACAC,MAAAA,EACAC,IAAAA,EACAC,OAAAA,EACAC,IAAAA,GAAAA;;AAGA,QAAA,MAAMC,aAAAA,GAAgBC,0BAAAA,CAA2BL,MAAAA,EAAQC,IAAAA,EAAMC,OAAAA,EAASC,IAAAA,CAAAA;;AAGxE,QAAA,KAAK,MAAM,EAAEG,OAAO,EAAEC,MAAM,EAAE,IAAIV,QAAAA,CAAU;AAC1C,YAAA,MAAMW,MAAAA,GAAS,MAAMF,OAAAA,CAAQF,aAAAA,EAAeG,MAAAA,EAAQ;AAAEZ,gBAAAA;AAAO,aAAA,CAAA;AAE7D,YAAA,IAAI,CAAC;AAAC,gBAAA,IAAA;AAAMc,gBAAAA;aAAU,CAACC,QAAQ,CAACF,MAAAA,CAAAA,EAAS;AACvC,gBAAA,MAAM,IAAInB,WAAAA,EAAAA;AACZ,YAAA;AACF,QAAA;QAEA,OAAOU,OAAAA,CAAQC,MAAAA,EAAQC,IAAAA,EAAMC,OAAAA,EAASC,IAAAA,CAAAA;AACxC,IAAA,CAAA;AACF;AAEA,MAAME,0BAAAA,GAA6B,CACjCL,MAAAA,EACAC,IAAAA,EACAC,OAAAA,EACAC,IAAAA,GAAAA;AAEA,IAAA,MAAMC,aAAAA,GAAgB;AACpB,QAAA,IAAIJ,MAAAA,CAAAA,GAAS;YACX,OAAOA,MAAAA;AACT,QAAA,CAAA;AAEA,QAAA,IAAIC,IAAAA,CAAAA,GAAO;YACT,OAAOA,IAAAA;AACT,QAAA,CAAA;AAEA,QAAA,IAAIC,OAAAA,CAAAA,GAAU;YACZ,OAAOA,OAAAA;AACT,QAAA,CAAA;AAEA,QAAA,IAAIC,IAAAA,CAAAA,GAAO;YACT,OAAOA,IAAAA;AACT,QAAA,CAAA;AAEA,QAAA,IAAIQ,KAAAA,CAAAA,GAAQ;AACV,YAAA,OAAO,IAAI,CAACT,OAAO,CAACS,KAAK;AAC3B,QAAA,CAAA;AAEA,QAAA,IAAIC,IAAAA,CAAAA,GAAO;AACT,YAAA,OAAO,IAAI,CAACV,OAAO,CAACW,UAAU;AAChC,QAAA;AACF,KAAA;IAEA,OAAOC,MAAAA,CAAYC,mBAAmB,CAAC,SAAA,EAAWX,aAAAA,CAAAA;AACpD,CAAA;;;;"}
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ const registerCollectionType = (contentType, { registry, strapi, builders })=>{
4
+ const { service: getService } = strapi.plugin('graphql');
5
+ const { naming } = getService('utils');
6
+ const { KINDS } = getService('constants');
7
+ const extension = getService('extension');
8
+ // Types name (as string)
9
+ const types = {
10
+ base: naming.getTypeName(contentType),
11
+ entity: naming.getEntityName(contentType),
12
+ response: naming.getEntityResponseName(contentType),
13
+ responseCollection: naming.getEntityResponseCollectionName(contentType),
14
+ relationResponseCollection: naming.getRelationResponseCollectionName(contentType),
15
+ queries: naming.getEntityQueriesTypeName(contentType),
16
+ mutations: naming.getEntityMutationsTypeName(contentType)
17
+ };
18
+ const getConfig = (kind)=>({
19
+ kind,
20
+ contentType
21
+ });
22
+ // Type definition
23
+ registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));
24
+ // Higher level entity definition
25
+ registry.register(types.entity, builders.buildEntityDefinition(contentType), getConfig(KINDS.entity));
26
+ // Responses definition
27
+ registry.register(types.response, builders.buildResponseDefinition(contentType), getConfig(KINDS.entityResponse));
28
+ registry.register(types.responseCollection, builders.buildResponseCollectionDefinition(contentType), getConfig(KINDS.entityResponseCollection));
29
+ registry.register(types.relationResponseCollection, builders.buildRelationResponseCollectionDefinition(contentType), getConfig(KINDS.relationResponseCollection));
30
+ if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {
31
+ // Query extensions
32
+ registry.register(types.queries, builders.buildCollectionTypeQueries(contentType), getConfig(KINDS.query));
33
+ }
34
+ if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {
35
+ // Mutation extensions
36
+ registry.register(types.mutations, builders.buildCollectionTypeMutations(contentType), getConfig(KINDS.mutation));
37
+ }
38
+ };
39
+
40
+ exports.registerCollectionType = registerCollectionType;
41
+ //# sourceMappingURL=collection-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-type.js","sources":["../../../../../server/src/services/content-api/register-functions/collection-type.ts"],"sourcesContent":["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"],"names":["registerCollectionType","contentType","registry","strapi","builders","service","getService","plugin","naming","KINDS","extension","types","base","getTypeName","entity","getEntityName","response","getEntityResponseName","responseCollection","getEntityResponseCollectionName","relationResponseCollection","getRelationResponseCollectionName","queries","getEntityQueriesTypeName","mutations","getEntityMutationsTypeName","getConfig","kind","register","buildTypeDefinition","type","buildEntityDefinition","buildResponseDefinition","entityResponse","buildResponseCollectionDefinition","entityResponseCollection","buildRelationResponseCollectionDefinition","shadowCRUD","uid","areQueriesEnabled","buildCollectionTypeQueries","query","areMutationsEnabled","buildCollectionTypeMutations","mutation"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ const registerCollectionType = (contentType, { registry, strapi, builders })=>{
2
+ const { service: getService } = strapi.plugin('graphql');
3
+ const { naming } = getService('utils');
4
+ const { KINDS } = getService('constants');
5
+ const extension = getService('extension');
6
+ // Types name (as string)
7
+ const types = {
8
+ base: naming.getTypeName(contentType),
9
+ entity: naming.getEntityName(contentType),
10
+ response: naming.getEntityResponseName(contentType),
11
+ responseCollection: naming.getEntityResponseCollectionName(contentType),
12
+ relationResponseCollection: naming.getRelationResponseCollectionName(contentType),
13
+ queries: naming.getEntityQueriesTypeName(contentType),
14
+ mutations: naming.getEntityMutationsTypeName(contentType)
15
+ };
16
+ const getConfig = (kind)=>({
17
+ kind,
18
+ contentType
19
+ });
20
+ // Type definition
21
+ registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));
22
+ // Higher level entity definition
23
+ registry.register(types.entity, builders.buildEntityDefinition(contentType), getConfig(KINDS.entity));
24
+ // Responses definition
25
+ registry.register(types.response, builders.buildResponseDefinition(contentType), getConfig(KINDS.entityResponse));
26
+ registry.register(types.responseCollection, builders.buildResponseCollectionDefinition(contentType), getConfig(KINDS.entityResponseCollection));
27
+ registry.register(types.relationResponseCollection, builders.buildRelationResponseCollectionDefinition(contentType), getConfig(KINDS.relationResponseCollection));
28
+ if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {
29
+ // Query extensions
30
+ registry.register(types.queries, builders.buildCollectionTypeQueries(contentType), getConfig(KINDS.query));
31
+ }
32
+ if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {
33
+ // Mutation extensions
34
+ registry.register(types.mutations, builders.buildCollectionTypeMutations(contentType), getConfig(KINDS.mutation));
35
+ }
36
+ };
37
+
38
+ export { registerCollectionType };
39
+ //# sourceMappingURL=collection-type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-type.mjs","sources":["../../../../../server/src/services/content-api/register-functions/collection-type.ts"],"sourcesContent":["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"],"names":["registerCollectionType","contentType","registry","strapi","builders","service","getService","plugin","naming","KINDS","extension","types","base","getTypeName","entity","getEntityName","response","getEntityResponseName","responseCollection","getEntityResponseCollectionName","relationResponseCollection","getRelationResponseCollectionName","queries","getEntityQueriesTypeName","mutations","getEntityMutationsTypeName","getConfig","kind","register","buildTypeDefinition","type","buildEntityDefinition","buildResponseDefinition","entityResponse","buildResponseCollectionDefinition","entityResponseCollection","buildRelationResponseCollectionDefinition","shadowCRUD","uid","areQueriesEnabled","buildCollectionTypeQueries","query","areMutationsEnabled","buildCollectionTypeMutations","mutation"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ const registerComponent = (contentType, { registry, strapi, builders })=>{
4
+ const { service: getService } = strapi.plugin('graphql');
5
+ const { getComponentName } = getService('utils').naming;
6
+ const { KINDS } = getService('constants');
7
+ const name = getComponentName(contentType);
8
+ const definition = builders.buildTypeDefinition(contentType);
9
+ registry.register(name, definition, {
10
+ kind: KINDS.component,
11
+ contentType
12
+ });
13
+ };
14
+
15
+ exports.registerComponent = registerComponent;
16
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sources":["../../../../../server/src/services/content-api/register-functions/component.ts"],"sourcesContent":["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"],"names":["registerComponent","contentType","registry","strapi","builders","service","getService","plugin","getComponentName","naming","KINDS","name","definition","buildTypeDefinition","register","kind","component"],"mappings":";;AAGA,MAAMA,iBAAAA,GAAoB,CACxBC,WAAAA,EACA,EACEC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EAKT,GAAA;AAED,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAGF,UAAAA,CAAW,SAASG,MAAM;AACvD,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGJ,UAAAA,CAAW,WAAA,CAAA;AAE7B,IAAA,MAAMK,OAAOH,gBAAAA,CAAiBP,WAAAA,CAAAA;IAC9B,MAAMW,UAAAA,GAAaR,QAAAA,CAASS,mBAAmB,CAACZ,WAAAA,CAAAA;IAEhDC,QAAAA,CAASY,QAAQ,CAACH,IAAAA,EAAMC,UAAAA,EAAY;AAAEG,QAAAA,IAAAA,EAAML,MAAMM,SAAS;AAAEf,QAAAA;AAAY,KAAA,CAAA;AAC3E;;;;"}
@@ -0,0 +1,14 @@
1
+ const registerComponent = (contentType, { registry, strapi, builders })=>{
2
+ const { service: getService } = strapi.plugin('graphql');
3
+ const { getComponentName } = getService('utils').naming;
4
+ const { KINDS } = getService('constants');
5
+ const name = getComponentName(contentType);
6
+ const definition = builders.buildTypeDefinition(contentType);
7
+ registry.register(name, definition, {
8
+ kind: KINDS.component,
9
+ contentType
10
+ });
11
+ };
12
+
13
+ export { registerComponent };
14
+ //# sourceMappingURL=component.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.mjs","sources":["../../../../../server/src/services/content-api/register-functions/component.ts"],"sourcesContent":["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"],"names":["registerComponent","contentType","registry","strapi","builders","service","getService","plugin","getComponentName","naming","KINDS","name","definition","buildTypeDefinition","register","kind","component"],"mappings":"AAGA,MAAMA,iBAAAA,GAAoB,CACxBC,WAAAA,EACA,EACEC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EAKT,GAAA;AAED,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,gBAAgB,EAAE,GAAGF,UAAAA,CAAW,SAASG,MAAM;AACvD,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGJ,UAAAA,CAAW,WAAA,CAAA;AAE7B,IAAA,MAAMK,OAAOH,gBAAAA,CAAiBP,WAAAA,CAAAA;IAC9B,MAAMW,UAAAA,GAAaR,QAAAA,CAASS,mBAAmB,CAACZ,WAAAA,CAAAA;IAEhDC,QAAAA,CAASY,QAAQ,CAACH,IAAAA,EAAMC,UAAAA,EAAY;AAAEG,QAAAA,IAAAA,EAAML,MAAMM,SAAS;AAAEf,QAAAA;AAAY,KAAA,CAAA;AAC3E;;;;"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ const registerDynamicZonesDefinition = (contentType, { registry, strapi, builders })=>{
4
+ const { service: getService } = strapi.plugin('graphql');
5
+ const { naming, attributes: { isDynamicZone } } = getService('utils');
6
+ const { KINDS } = getService('constants');
7
+ const { attributes } = contentType;
8
+ const dynamicZoneAttributes = Object.keys(attributes).filter((attributeName)=>isDynamicZone(attributes[attributeName]));
9
+ for (const attributeName of dynamicZoneAttributes){
10
+ const attribute = attributes[attributeName];
11
+ const dzName = naming.getDynamicZoneName(contentType, attributeName);
12
+ const dzInputName = naming.getDynamicZoneInputName(contentType, attributeName);
13
+ const [type, input] = builders.buildDynamicZoneDefinition(attribute, dzName, dzInputName);
14
+ const baseConfig = {
15
+ contentType,
16
+ attributeName,
17
+ attribute
18
+ };
19
+ registry.register(dzName, type, {
20
+ kind: KINDS.dynamicZone,
21
+ ...baseConfig
22
+ });
23
+ registry.register(dzInputName, input, {
24
+ kind: KINDS.input,
25
+ ...baseConfig
26
+ });
27
+ }
28
+ };
29
+
30
+ exports.registerDynamicZonesDefinition = registerDynamicZonesDefinition;
31
+ //# sourceMappingURL=dynamic-zones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-zones.js","sources":["../../../../../server/src/services/content-api/register-functions/dynamic-zones.ts"],"sourcesContent":["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"],"names":["registerDynamicZonesDefinition","contentType","registry","strapi","builders","service","getService","plugin","naming","attributes","isDynamicZone","KINDS","dynamicZoneAttributes","Object","keys","filter","attributeName","attribute","dzName","getDynamicZoneName","dzInputName","getDynamicZoneInputName","type","input","buildDynamicZoneDefinition","baseConfig","register","kind","dynamicZone"],"mappings":";;AAGA,MAAMA,8BAAAA,GAAiC,CACrCC,WAAAA,EACA,EACEC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EAKT,GAAA;AAED,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA;IAE9C,MAAM,EACJC,MAAM,EACNC,UAAAA,EAAY,EAAEC,aAAa,EAAE,EAC9B,GAAGJ,UAAAA,CAAW,OAAA,CAAA;AACf,IAAA,MAAM,EAAEK,KAAK,EAAE,GAAGL,UAAAA,CAAW,WAAA,CAAA;IAE7B,MAAM,EAAEG,UAAU,EAAE,GAAGR,WAAAA;AAEvB,IAAA,MAAMW,qBAAAA,GAAwBC,MAAAA,CAAOC,IAAI,CAACL,UAAAA,CAAAA,CAAYM,MAAM,CAAC,CAACC,aAAAA,GAC5DN,aAAAA,CAAcD,UAAU,CAACO,aAAAA,CAAc,CAAA,CAAA;IAGzC,KAAK,MAAMA,iBAAiBJ,qBAAAA,CAAuB;QACjD,MAAMK,SAAAA,GAAYR,UAAU,CAACO,aAAAA,CAAc;AAC3C,QAAA,MAAME,MAAAA,GAASV,MAAAA,CAAOW,kBAAkB,CAAClB,WAAAA,EAAae,aAAAA,CAAAA;AACtD,QAAA,MAAMI,WAAAA,GAAcZ,MAAAA,CAAOa,uBAAuB,CAACpB,WAAAA,EAAae,aAAAA,CAAAA;QAEhE,MAAM,CAACM,MAAMC,KAAAA,CAAM,GAAGnB,SAASoB,0BAA0B,CAACP,WAAWC,MAAAA,EAAQE,WAAAA,CAAAA;AAE7E,QAAA,MAAMK,UAAAA,GAAa;AACjBxB,YAAAA,WAAAA;AACAe,YAAAA,aAAAA;AACAC,YAAAA;AACF,SAAA;QAEAf,QAAAA,CAASwB,QAAQ,CAACR,MAAAA,EAAQI,IAAAA,EAAM;AAAEK,YAAAA,IAAAA,EAAMhB,MAAMiB,WAAW;AAAE,YAAA,GAAGH;AAAW,SAAA,CAAA;QACzEvB,QAAAA,CAASwB,QAAQ,CAACN,WAAAA,EAAaG,KAAAA,EAAO;AAAEI,YAAAA,IAAAA,EAAMhB,MAAMY,KAAK;AAAE,YAAA,GAAGE;AAAW,SAAA,CAAA;AAC3E,IAAA;AACF;;;;"}
@@ -0,0 +1,29 @@
1
+ const registerDynamicZonesDefinition = (contentType, { registry, strapi, builders })=>{
2
+ const { service: getService } = strapi.plugin('graphql');
3
+ const { naming, attributes: { isDynamicZone } } = getService('utils');
4
+ const { KINDS } = getService('constants');
5
+ const { attributes } = contentType;
6
+ const dynamicZoneAttributes = Object.keys(attributes).filter((attributeName)=>isDynamicZone(attributes[attributeName]));
7
+ for (const attributeName of dynamicZoneAttributes){
8
+ const attribute = attributes[attributeName];
9
+ const dzName = naming.getDynamicZoneName(contentType, attributeName);
10
+ const dzInputName = naming.getDynamicZoneInputName(contentType, attributeName);
11
+ const [type, input] = builders.buildDynamicZoneDefinition(attribute, dzName, dzInputName);
12
+ const baseConfig = {
13
+ contentType,
14
+ attributeName,
15
+ attribute
16
+ };
17
+ registry.register(dzName, type, {
18
+ kind: KINDS.dynamicZone,
19
+ ...baseConfig
20
+ });
21
+ registry.register(dzInputName, input, {
22
+ kind: KINDS.input,
23
+ ...baseConfig
24
+ });
25
+ }
26
+ };
27
+
28
+ export { registerDynamicZonesDefinition };
29
+ //# sourceMappingURL=dynamic-zones.mjs.map