@strapi/plugin-graphql 0.0.0-experimental.62ebf57bb35846666febb5ee2078fe02fe990f57 → 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 (707) hide show
  1. package/dist/admin/index.js +58 -157
  2. package/dist/admin/index.js.map +1 -1
  3. package/dist/admin/index.mjs +54 -158
  4. package/dist/admin/index.mjs.map +1 -1
  5. package/dist/admin/package.json.js +13 -0
  6. package/dist/admin/package.json.js.map +1 -0
  7. package/dist/admin/package.json.mjs +8 -0
  8. package/dist/admin/package.json.mjs.map +1 -0
  9. package/dist/admin/pluginId.js +6 -0
  10. package/dist/admin/pluginId.js.map +1 -0
  11. package/dist/admin/pluginId.mjs +4 -0
  12. package/dist/admin/pluginId.mjs.map +1 -0
  13. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -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 -2963
  87. package/dist/server/index.js.map +1 -1
  88. package/dist/server/index.mjs +11 -2945
  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 +9 -2
  487. package/dist/server/src/bootstrap.d.ts.map +1 -1
  488. package/dist/server/src/config/default-config.d.ts +1 -0
  489. package/dist/server/src/config/default-config.d.ts.map +1 -1
  490. package/dist/server/src/config/index.d.ts +1 -0
  491. package/dist/server/src/config/index.d.ts.map +1 -1
  492. package/dist/server/src/format-graphql-error.d.ts +7 -3
  493. package/dist/server/src/format-graphql-error.d.ts.map +1 -1
  494. package/dist/server/src/index.d.ts +98 -82
  495. package/dist/server/src/index.d.ts.map +1 -1
  496. package/dist/server/src/services/builders/dynamic-zones.d.ts +2 -6
  497. package/dist/server/src/services/builders/dynamic-zones.d.ts.map +1 -1
  498. package/dist/server/src/services/builders/entity.d.ts.map +1 -1
  499. package/dist/server/src/services/builders/enums.d.ts.map +1 -1
  500. package/dist/server/src/services/builders/filters/content-type.d.ts +2 -2
  501. package/dist/server/src/services/builders/filters/content-type.d.ts.map +1 -1
  502. package/dist/server/src/services/builders/filters/index.d.ts +1 -1
  503. package/dist/server/src/services/builders/filters/index.d.ts.map +1 -1
  504. package/dist/server/src/services/builders/filters/operators/and.d.ts.map +1 -1
  505. package/dist/server/src/services/builders/filters/operators/between.d.ts.map +1 -1
  506. package/dist/server/src/services/builders/filters/operators/contains.d.ts.map +1 -1
  507. package/dist/server/src/services/builders/filters/operators/containsi.d.ts.map +1 -1
  508. package/dist/server/src/services/builders/filters/operators/ends-with.d.ts.map +1 -1
  509. package/dist/server/src/services/builders/filters/operators/eq.d.ts +2 -2
  510. package/dist/server/src/services/builders/filters/operators/eq.d.ts.map +1 -1
  511. package/dist/server/src/services/builders/filters/operators/eqi.d.ts.map +1 -1
  512. package/dist/server/src/services/builders/filters/operators/gt.d.ts.map +1 -1
  513. package/dist/server/src/services/builders/filters/operators/gte.d.ts.map +1 -1
  514. package/dist/server/src/services/builders/filters/operators/in.d.ts.map +1 -1
  515. package/dist/server/src/services/builders/filters/operators/index.d.ts +2 -3
  516. package/dist/server/src/services/builders/filters/operators/index.d.ts.map +1 -1
  517. package/dist/server/src/services/builders/filters/operators/lt.d.ts.map +1 -1
  518. package/dist/server/src/services/builders/filters/operators/lte.d.ts.map +1 -1
  519. package/dist/server/src/services/builders/filters/operators/ne.d.ts.map +1 -1
  520. package/dist/server/src/services/builders/filters/operators/nei.d.ts.map +1 -1
  521. package/dist/server/src/services/builders/filters/operators/not-contains.d.ts.map +1 -1
  522. package/dist/server/src/services/builders/filters/operators/not-containsi.d.ts.map +1 -1
  523. package/dist/server/src/services/builders/filters/operators/not-in.d.ts.map +1 -1
  524. package/dist/server/src/services/builders/filters/operators/not-null.d.ts.map +1 -1
  525. package/dist/server/src/services/builders/filters/operators/not.d.ts +2 -2
  526. package/dist/server/src/services/builders/filters/operators/not.d.ts.map +1 -1
  527. package/dist/server/src/services/builders/filters/operators/null.d.ts.map +1 -1
  528. package/dist/server/src/services/builders/filters/operators/or.d.ts.map +1 -1
  529. package/dist/server/src/services/builders/filters/operators/starts-with.d.ts.map +1 -1
  530. package/dist/server/src/services/builders/generic-morph.d.ts.map +1 -1
  531. package/dist/server/src/services/builders/index.d.ts +16 -19
  532. package/dist/server/src/services/builders/index.d.ts.map +1 -1
  533. package/dist/server/src/services/builders/input.d.ts +2 -2
  534. package/dist/server/src/services/builders/input.d.ts.map +1 -1
  535. package/dist/server/src/services/builders/mutations/collection-type.d.ts +2 -2
  536. package/dist/server/src/services/builders/mutations/collection-type.d.ts.map +1 -1
  537. package/dist/server/src/services/builders/mutations/index.d.ts +2 -2
  538. package/dist/server/src/services/builders/mutations/index.d.ts.map +1 -1
  539. package/dist/server/src/services/builders/mutations/single-type.d.ts +2 -2
  540. package/dist/server/src/services/builders/mutations/single-type.d.ts.map +1 -1
  541. package/dist/server/src/services/builders/queries/collection-type.d.ts +2 -2
  542. package/dist/server/src/services/builders/queries/collection-type.d.ts.map +1 -1
  543. package/dist/server/src/services/builders/queries/index.d.ts +2 -2
  544. package/dist/server/src/services/builders/queries/index.d.ts.map +1 -1
  545. package/dist/server/src/services/builders/queries/single-type.d.ts +2 -2
  546. package/dist/server/src/services/builders/queries/single-type.d.ts.map +1 -1
  547. package/dist/server/src/services/builders/relation-response-collection.d.ts.map +1 -1
  548. package/dist/server/src/services/builders/resolvers/association.d.ts +3 -3
  549. package/dist/server/src/services/builders/resolvers/association.d.ts.map +1 -1
  550. package/dist/server/src/services/builders/resolvers/component.d.ts +2 -2
  551. package/dist/server/src/services/builders/resolvers/component.d.ts.map +1 -1
  552. package/dist/server/src/services/builders/resolvers/dynamic-zone.d.ts +2 -2
  553. package/dist/server/src/services/builders/resolvers/dynamic-zone.d.ts.map +1 -1
  554. package/dist/server/src/services/builders/resolvers/index.d.ts +14 -38
  555. package/dist/server/src/services/builders/resolvers/index.d.ts.map +1 -1
  556. package/dist/server/src/services/builders/resolvers/merge-publication-args.d.ts +9 -0
  557. package/dist/server/src/services/builders/resolvers/merge-publication-args.d.ts.map +1 -0
  558. package/dist/server/src/services/builders/resolvers/pagination.d.ts +11 -0
  559. package/dist/server/src/services/builders/resolvers/pagination.d.ts.map +1 -0
  560. package/dist/server/src/services/builders/resolvers/query.d.ts +3 -14
  561. package/dist/server/src/services/builders/resolvers/query.d.ts.map +1 -1
  562. package/dist/server/src/services/builders/response-collection.d.ts.map +1 -1
  563. package/dist/server/src/services/builders/response.d.ts.map +1 -1
  564. package/dist/server/src/services/builders/type.d.ts +2 -2
  565. package/dist/server/src/services/builders/type.d.ts.map +1 -1
  566. package/dist/server/src/services/builders/utils.d.ts +16 -25
  567. package/dist/server/src/services/builders/utils.d.ts.map +1 -1
  568. package/dist/server/src/services/constants.d.ts +3 -1
  569. package/dist/server/src/services/constants.d.ts.map +1 -1
  570. package/dist/server/src/services/content-api/index.d.ts +4 -2
  571. package/dist/server/src/services/content-api/index.d.ts.map +1 -1
  572. package/dist/server/src/services/content-api/policy.d.ts +3 -3
  573. package/dist/server/src/services/content-api/policy.d.ts.map +1 -1
  574. package/dist/server/src/services/content-api/register-functions/collection-type.d.ts +3 -3
  575. package/dist/server/src/services/content-api/register-functions/collection-type.d.ts.map +1 -1
  576. package/dist/server/src/services/content-api/register-functions/component.d.ts +3 -3
  577. package/dist/server/src/services/content-api/register-functions/component.d.ts.map +1 -1
  578. package/dist/server/src/services/content-api/register-functions/dynamic-zones.d.ts +9 -0
  579. package/dist/server/src/services/content-api/register-functions/dynamic-zones.d.ts.map +1 -0
  580. package/dist/server/src/services/content-api/register-functions/enums.d.ts +9 -0
  581. package/dist/server/src/services/content-api/register-functions/enums.d.ts.map +1 -0
  582. package/dist/server/src/services/content-api/register-functions/filters.d.ts +9 -0
  583. package/dist/server/src/services/content-api/register-functions/filters.d.ts.map +1 -0
  584. package/dist/server/src/services/content-api/register-functions/index.d.ts +5 -2
  585. package/dist/server/src/services/content-api/register-functions/index.d.ts.map +1 -1
  586. package/dist/server/src/services/content-api/register-functions/inputs.d.ts +9 -0
  587. package/dist/server/src/services/content-api/register-functions/inputs.d.ts.map +1 -0
  588. package/dist/server/src/services/content-api/register-functions/internals.d.ts.map +1 -1
  589. package/dist/server/src/services/content-api/register-functions/polymorphic.d.ts +2 -2
  590. package/dist/server/src/services/content-api/register-functions/polymorphic.d.ts.map +1 -1
  591. package/dist/server/src/services/content-api/register-functions/scalars.d.ts.map +1 -1
  592. package/dist/server/src/services/content-api/register-functions/single-type.d.ts +3 -3
  593. package/dist/server/src/services/content-api/register-functions/single-type.d.ts.map +1 -1
  594. package/dist/server/src/services/content-api/wrap-resolvers.d.ts +2 -2
  595. package/dist/server/src/services/content-api/wrap-resolvers.d.ts.map +1 -1
  596. package/dist/server/src/services/extension/extension.d.ts +13 -13
  597. package/dist/server/src/services/extension/extension.d.ts.map +1 -1
  598. package/dist/server/src/services/extension/shadow-crud-manager.d.ts +9 -9
  599. package/dist/server/src/services/extension/shadow-crud-manager.d.ts.map +1 -1
  600. package/dist/server/src/services/index.d.ts +97 -82
  601. package/dist/server/src/services/index.d.ts.map +1 -1
  602. package/dist/server/src/services/internals/args/has-published-version.d.ts +7 -0
  603. package/dist/server/src/services/internals/args/has-published-version.d.ts.map +1 -0
  604. package/dist/server/src/services/internals/args/index.d.ts +4 -1
  605. package/dist/server/src/services/internals/args/index.d.ts.map +1 -1
  606. package/dist/server/src/services/internals/args/publication-filter.d.ts +4 -0
  607. package/dist/server/src/services/internals/args/publication-filter.d.ts.map +1 -0
  608. package/dist/server/src/services/internals/args/{publication-state.d.ts → publication-status.d.ts} +1 -1
  609. package/dist/server/src/services/internals/args/publication-status.d.ts.map +1 -0
  610. package/dist/server/src/services/internals/helpers/get-enabled-scalars.d.ts.map +1 -1
  611. package/dist/server/src/services/internals/helpers/index.d.ts.map +1 -1
  612. package/dist/server/src/services/internals/index.d.ts +21 -10
  613. package/dist/server/src/services/internals/index.d.ts.map +1 -1
  614. package/dist/server/src/services/internals/scalars/index.d.ts +4 -5
  615. package/dist/server/src/services/internals/scalars/index.d.ts.map +1 -1
  616. package/dist/server/src/services/internals/scalars/time.d.ts +1 -1
  617. package/dist/server/src/services/internals/scalars/time.d.ts.map +1 -1
  618. package/dist/server/src/services/internals/types/delete-mutation-response.d.ts +6 -0
  619. package/dist/server/src/services/internals/types/delete-mutation-response.d.ts.map +1 -0
  620. package/dist/server/src/services/internals/types/error.d.ts.map +1 -1
  621. package/dist/server/src/services/internals/types/filters.d.ts.map +1 -1
  622. package/dist/server/src/services/internals/types/index.d.ts +14 -4
  623. package/dist/server/src/services/internals/types/index.d.ts.map +1 -1
  624. package/dist/server/src/services/internals/types/pagination.d.ts.map +1 -1
  625. package/dist/server/src/services/internals/types/publication-filter.d.ts +6 -0
  626. package/dist/server/src/services/internals/types/publication-filter.d.ts.map +1 -0
  627. package/dist/server/src/services/internals/types/publication-status.d.ts +10 -0
  628. package/dist/server/src/services/internals/types/publication-status.d.ts.map +1 -0
  629. package/dist/server/src/services/internals/types/response-collection-meta.d.ts.map +1 -1
  630. package/dist/server/src/services/type-registry.d.ts.map +1 -1
  631. package/dist/server/src/services/types.d.ts +2 -2
  632. package/dist/server/src/services/types.d.ts.map +1 -1
  633. package/dist/server/src/services/utils/attributes.d.ts +4 -4
  634. package/dist/server/src/services/utils/attributes.d.ts.map +1 -1
  635. package/dist/server/src/services/utils/index.d.ts +44 -41
  636. package/dist/server/src/services/utils/index.d.ts.map +1 -1
  637. package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts +8 -10
  638. package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts.map +1 -1
  639. package/dist/server/src/services/utils/mappers/graphql-filters-to-strapi-query.d.ts +2 -2
  640. package/dist/server/src/services/utils/mappers/graphql-filters-to-strapi-query.d.ts.map +1 -1
  641. package/dist/server/src/services/utils/mappers/graphql-scalar-to-operators.d.ts.map +1 -1
  642. package/dist/server/src/services/utils/mappers/index.d.ts +8 -10
  643. package/dist/server/src/services/utils/mappers/index.d.ts.map +1 -1
  644. package/dist/server/src/services/utils/mappers/strapi-scalar-to-graphql-scalar.d.ts.map +1 -1
  645. package/dist/server/src/services/utils/naming.d.ts +28 -27
  646. package/dist/server/src/services/utils/naming.d.ts.map +1 -1
  647. package/dist/server/src/services/utils/playground.d.ts +7 -0
  648. package/dist/server/src/services/utils/playground.d.ts.map +1 -0
  649. package/package.json +42 -32
  650. package/dist/_chunks/dk-KmLnUoJC.mjs +0 -9
  651. package/dist/_chunks/dk-KmLnUoJC.mjs.map +0 -1
  652. package/dist/_chunks/dk-SLrLqAtl.js +0 -9
  653. package/dist/_chunks/dk-SLrLqAtl.js.map +0 -1
  654. package/dist/_chunks/en-A16mqbIV.mjs +0 -9
  655. package/dist/_chunks/en-A16mqbIV.mjs.map +0 -1
  656. package/dist/_chunks/en-WmmC2MW8.js +0 -9
  657. package/dist/_chunks/en-WmmC2MW8.js.map +0 -1
  658. package/dist/_chunks/es-4tl6ikyU.js +0 -9
  659. package/dist/_chunks/es-4tl6ikyU.js.map +0 -1
  660. package/dist/_chunks/es-_xZ14QXK.mjs +0 -9
  661. package/dist/_chunks/es-_xZ14QXK.mjs.map +0 -1
  662. package/dist/_chunks/fr-4BkQ-Qvt.mjs +0 -9
  663. package/dist/_chunks/fr-4BkQ-Qvt.mjs.map +0 -1
  664. package/dist/_chunks/fr-cJXSt55N.js +0 -9
  665. package/dist/_chunks/fr-cJXSt55N.js.map +0 -1
  666. package/dist/_chunks/pl-TWurBBP_.mjs +0 -9
  667. package/dist/_chunks/pl-TWurBBP_.mjs.map +0 -1
  668. package/dist/_chunks/pl-wKw9Xgkw.js +0 -9
  669. package/dist/_chunks/pl-wKw9Xgkw.js.map +0 -1
  670. package/dist/_chunks/ru-CYAnXR6L.js +0 -9
  671. package/dist/_chunks/ru-CYAnXR6L.js.map +0 -1
  672. package/dist/_chunks/ru-aD804UEo.mjs +0 -9
  673. package/dist/_chunks/ru-aD804UEo.mjs.map +0 -1
  674. package/dist/_chunks/sv-N5RufX6w.mjs +0 -9
  675. package/dist/_chunks/sv-N5RufX6w.mjs.map +0 -1
  676. package/dist/_chunks/sv-XNOe1ctV.js +0 -9
  677. package/dist/_chunks/sv-XNOe1ctV.js.map +0 -1
  678. package/dist/_chunks/tr-POFbAHUC.js +0 -9
  679. package/dist/_chunks/tr-POFbAHUC.js.map +0 -1
  680. package/dist/_chunks/tr-UmSHgD8y.mjs +0 -9
  681. package/dist/_chunks/tr-UmSHgD8y.mjs.map +0 -1
  682. package/dist/_chunks/zh-Hans-ClgXy4wM.mjs +0 -9
  683. package/dist/_chunks/zh-Hans-ClgXy4wM.mjs.map +0 -1
  684. package/dist/_chunks/zh-Hans-pnigVFnS.js +0 -9
  685. package/dist/_chunks/zh-Hans-pnigVFnS.js.map +0 -1
  686. package/dist/_chunks/zh-KvwXXMnA.mjs +0 -9
  687. package/dist/_chunks/zh-KvwXXMnA.mjs.map +0 -1
  688. package/dist/_chunks/zh-kJ_DkSIe.js +0 -9
  689. package/dist/_chunks/zh-kJ_DkSIe.js.map +0 -1
  690. package/dist/server/src/services/builders/entity-meta.d.ts +0 -6
  691. package/dist/server/src/services/builders/entity-meta.d.ts.map +0 -1
  692. package/dist/server/src/services/builders/resolvers/mutation.d.ts +0 -25
  693. package/dist/server/src/services/builders/resolvers/mutation.d.ts.map +0 -1
  694. package/dist/server/src/services/content-api/register-functions/content-type/dynamic-zones.d.ts +0 -9
  695. package/dist/server/src/services/content-api/register-functions/content-type/dynamic-zones.d.ts.map +0 -1
  696. package/dist/server/src/services/content-api/register-functions/content-type/enums.d.ts +0 -9
  697. package/dist/server/src/services/content-api/register-functions/content-type/enums.d.ts.map +0 -1
  698. package/dist/server/src/services/content-api/register-functions/content-type/filters.d.ts +0 -9
  699. package/dist/server/src/services/content-api/register-functions/content-type/filters.d.ts.map +0 -1
  700. package/dist/server/src/services/content-api/register-functions/content-type/index.d.ts +0 -24
  701. package/dist/server/src/services/content-api/register-functions/content-type/index.d.ts.map +0 -1
  702. package/dist/server/src/services/content-api/register-functions/content-type/inputs.d.ts +0 -9
  703. package/dist/server/src/services/content-api/register-functions/content-type/inputs.d.ts.map +0 -1
  704. package/dist/server/src/services/internals/args/publication-state.d.ts.map +0 -1
  705. package/dist/server/src/services/internals/types/publication-state.d.ts +0 -10
  706. package/dist/server/src/services/internals/types/publication-state.d.ts.map +0 -1
  707. package/strapi-server.js +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap-resolvers.js","sources":["../../../../server/src/services/content-api/wrap-resolvers.ts"],"sourcesContent":["import { get, getOr, isFunction, first, isNil } from 'lodash/fp';\nimport {\n GraphQLObjectType,\n GraphQLResolveInfo,\n GraphQLSchema,\n GraphQLFieldResolver,\n} from 'graphql';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport { createPoliciesMiddleware } from './policy';\n\nconst { ForbiddenError } = errors;\n\nconst introspectionQueries = [\n '__Schema',\n '__Type',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n];\n\ntype GraphQLMiddleware = (\n resolve: GraphQLFieldResolver<any, any>,\n parents: unknown,\n args: unknown,\n context: unknown,\n info: GraphQLResolveInfo\n) => any;\n\n/**\n * Get & parse middlewares definitions from the resolver's config\n * @param {object} resolverConfig\n * @param {object} strapi\n * @return {function[]}\n */\nconst parseMiddlewares = (resolverConfig: any, strapi: Core.Strapi): GraphQLMiddleware[] => {\n const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);\n\n // TODO: [v4] to factorize with compose endpoints (routes)\n return resolverMiddlewares.map(\n (middleware: string | Core.MiddlewareHandler | { name: string; options: any }) => {\n if (isFunction(middleware)) {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware);\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return strapi.middleware(name)(options, { strapi });\n }\n\n throw new Error(\n `Invalid middleware type, expected (function,string,object), received ${typeof middleware}`\n );\n }\n );\n};\n\n/**\n * Wrap the schema's resolvers if they've been\n * customized using the GraphQL extension service\n * @param {object} options\n * @param {GraphQLSchema} options.schema\n * @param {object} options.strapi\n * @param {object} options.extension\n * @return {GraphQLSchema}\n */\nconst wrapResolvers = ({\n schema,\n strapi,\n extension = {},\n}: {\n schema: GraphQLSchema;\n strapi: Core.Strapi;\n extension: any;\n}) => {\n // Get all the registered resolvers configuration\n const { resolversConfig = {} } = extension;\n\n // Fields filters\n const isValidFieldName = (field: string) => !field.startsWith('__');\n\n const typeMap = schema.getTypeMap();\n\n Object.entries(typeMap).forEach(([type, definition]) => {\n const isGraphQLObjectType = definition instanceof GraphQLObjectType;\n const isIgnoredType = introspectionQueries.includes(type);\n\n if (!isGraphQLObjectType || isIgnoredType) {\n return;\n }\n\n const fields = definition.getFields();\n const fieldsToProcess = Object.entries(fields).filter(([field]) => isValidFieldName(field));\n\n for (const [fieldName, fieldDefinition] of fieldsToProcess) {\n const defaultResolver = get(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = getOr({}, path, resolversConfig);\n\n const { resolve: baseResolver = defaultResolver } = fieldDefinition;\n\n // Parse & initialize the middlewares\n const middlewares = parseMiddlewares(resolverConfig, strapi);\n\n // Generate the policy middleware\n const policyMiddleware = createPoliciesMiddleware(resolverConfig, { strapi });\n\n // Add the policyMiddleware at the end of the middlewares collection\n middlewares.push(policyMiddleware);\n\n // Bind every middleware to the next one\n const boundMiddlewares = middlewares.map((middleware, index, collection) => {\n return (parents: unknown, args: unknown, context: unknown, info: GraphQLResolveInfo) =>\n middleware(\n // Make sure the last middleware in the list calls the baseResolver\n index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1],\n parents,\n args,\n context,\n info\n );\n });\n\n /**\n * GraphQL authorization flow\n * @param {object} context\n * @return {Promise<void>}\n */\n const authorize = async ({ context }: any) => {\n const authConfig = get('auth', resolverConfig);\n const authContext = get('state.auth', context);\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = !isNil(authConfig);\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch (error) {\n throw new ForbiddenError();\n }\n }\n };\n\n /**\n * Base resolver wrapper that handles authorization, middlewares & policies\n * @return {Promise<any>}\n */\n fieldDefinition.resolve = async (parent, args, context, info) => {\n await authorize({ context });\n\n // Execute middlewares (including the policy middleware which will always be included)\n return first(boundMiddlewares)!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n"],"names":["ForbiddenError","errors","introspectionQueries","parseMiddlewares","resolverConfig","strapi","resolverMiddlewares","getOr","map","middleware","isFunction","name","options","Error","wrapResolvers","schema","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","type","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","includes","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","get","path","resolve","baseResolver","middlewares","policyMiddleware","createPoliciesMiddleware","push","boundMiddlewares","index","collection","parents","args","context","info","length","authorize","authConfig","authContext","isValidType","hasConfig","isNil","isAuthDisabled","auth","verify","error","parent","first"],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import { get, getOr, first, isFunction, isNil } from 'lodash/fp';
2
+ import { GraphQLObjectType } from 'graphql';
3
+ import { errors } from '@strapi/utils';
4
+ import { createPoliciesMiddleware } from './policy.mjs';
5
+
6
+ const { ForbiddenError } = errors;
7
+ const introspectionQueries = [
8
+ '__Schema',
9
+ '__Type',
10
+ '__Field',
11
+ '__InputValue',
12
+ '__EnumValue',
13
+ '__Directive'
14
+ ];
15
+ /**
16
+ * Get & parse middlewares definitions from the resolver's config
17
+ * @param {object} resolverConfig
18
+ * @param {object} strapi
19
+ * @return {function[]}
20
+ */ const parseMiddlewares = (resolverConfig, strapi)=>{
21
+ const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);
22
+ // TODO: [v4] to factorize with compose endpoints (routes)
23
+ return resolverMiddlewares.map((middleware)=>{
24
+ if (isFunction(middleware)) {
25
+ return middleware;
26
+ }
27
+ if (typeof middleware === 'string') {
28
+ return strapi.middleware(middleware);
29
+ }
30
+ if (typeof middleware === 'object') {
31
+ const { name, options = {} } = middleware;
32
+ return strapi.middleware(name)(options, {
33
+ strapi
34
+ });
35
+ }
36
+ throw new Error(`Invalid middleware type, expected (function,string,object), received ${typeof middleware}`);
37
+ });
38
+ };
39
+ /**
40
+ * Wrap the schema's resolvers if they've been
41
+ * customized using the GraphQL extension service
42
+ * @param {object} options
43
+ * @param {GraphQLSchema} options.schema
44
+ * @param {object} options.strapi
45
+ * @param {object} options.extension
46
+ * @return {GraphQLSchema}
47
+ */ const wrapResolvers = ({ schema, strapi, extension = {} })=>{
48
+ // Get all the registered resolvers configuration
49
+ const { resolversConfig = {} } = extension;
50
+ // Fields filters
51
+ const isValidFieldName = (field)=>!field.startsWith('__');
52
+ const typeMap = schema.getTypeMap();
53
+ Object.entries(typeMap).forEach(([type, definition])=>{
54
+ const isGraphQLObjectType = definition instanceof GraphQLObjectType;
55
+ const isIgnoredType = introspectionQueries.includes(type);
56
+ if (!isGraphQLObjectType || isIgnoredType) {
57
+ return;
58
+ }
59
+ const fields = definition.getFields();
60
+ const fieldsToProcess = Object.entries(fields).filter(([field])=>isValidFieldName(field));
61
+ for (const [fieldName, fieldDefinition] of fieldsToProcess){
62
+ const defaultResolver = get(fieldName);
63
+ const path = `${type}.${fieldName}`;
64
+ const resolverConfig = getOr({}, path, resolversConfig);
65
+ const { resolve: baseResolver = defaultResolver } = fieldDefinition;
66
+ // Parse & initialize the middlewares
67
+ const middlewares = parseMiddlewares(resolverConfig, strapi);
68
+ // Generate the policy middleware
69
+ const policyMiddleware = createPoliciesMiddleware(resolverConfig, {
70
+ strapi
71
+ });
72
+ // Add the policyMiddleware at the end of the middlewares collection
73
+ middlewares.push(policyMiddleware);
74
+ // Bind every middleware to the next one
75
+ const boundMiddlewares = middlewares.map((middleware, index, collection)=>{
76
+ return (parents, args, context, info)=>middleware(// Make sure the last middleware in the list calls the baseResolver
77
+ index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1], parents, args, context, info);
78
+ });
79
+ /**
80
+ * GraphQL authorization flow
81
+ * @param {object} context
82
+ * @return {Promise<void>}
83
+ */ const authorize = async ({ context })=>{
84
+ const authConfig = get('auth', resolverConfig);
85
+ const authContext = get('state.auth', context);
86
+ const isValidType = [
87
+ 'Mutation',
88
+ 'Query',
89
+ 'Subscription'
90
+ ].includes(type);
91
+ const hasConfig = !isNil(authConfig);
92
+ const isAuthDisabled = authConfig === false;
93
+ if ((isValidType || hasConfig) && !isAuthDisabled) {
94
+ try {
95
+ await strapi.auth.verify(authContext, authConfig);
96
+ } catch (error) {
97
+ throw new ForbiddenError();
98
+ }
99
+ }
100
+ };
101
+ /**
102
+ * Base resolver wrapper that handles authorization, middlewares & policies
103
+ * @return {Promise<any>}
104
+ */ fieldDefinition.resolve = async (parent, args, context, info)=>{
105
+ await authorize({
106
+ context
107
+ });
108
+ // Execute middlewares (including the policy middleware which will always be included)
109
+ return first(boundMiddlewares)(parent, args, context, info);
110
+ };
111
+ }
112
+ });
113
+ return schema;
114
+ };
115
+
116
+ export { wrapResolvers };
117
+ //# sourceMappingURL=wrap-resolvers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap-resolvers.mjs","sources":["../../../../server/src/services/content-api/wrap-resolvers.ts"],"sourcesContent":["import { get, getOr, isFunction, first, isNil } from 'lodash/fp';\nimport {\n GraphQLObjectType,\n GraphQLResolveInfo,\n GraphQLSchema,\n GraphQLFieldResolver,\n} from 'graphql';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport { createPoliciesMiddleware } from './policy';\n\nconst { ForbiddenError } = errors;\n\nconst introspectionQueries = [\n '__Schema',\n '__Type',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n];\n\ntype GraphQLMiddleware = (\n resolve: GraphQLFieldResolver<any, any>,\n parents: unknown,\n args: unknown,\n context: unknown,\n info: GraphQLResolveInfo\n) => any;\n\n/**\n * Get & parse middlewares definitions from the resolver's config\n * @param {object} resolverConfig\n * @param {object} strapi\n * @return {function[]}\n */\nconst parseMiddlewares = (resolverConfig: any, strapi: Core.Strapi): GraphQLMiddleware[] => {\n const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);\n\n // TODO: [v4] to factorize with compose endpoints (routes)\n return resolverMiddlewares.map(\n (middleware: string | Core.MiddlewareHandler | { name: string; options: any }) => {\n if (isFunction(middleware)) {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware);\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return strapi.middleware(name)(options, { strapi });\n }\n\n throw new Error(\n `Invalid middleware type, expected (function,string,object), received ${typeof middleware}`\n );\n }\n );\n};\n\n/**\n * Wrap the schema's resolvers if they've been\n * customized using the GraphQL extension service\n * @param {object} options\n * @param {GraphQLSchema} options.schema\n * @param {object} options.strapi\n * @param {object} options.extension\n * @return {GraphQLSchema}\n */\nconst wrapResolvers = ({\n schema,\n strapi,\n extension = {},\n}: {\n schema: GraphQLSchema;\n strapi: Core.Strapi;\n extension: any;\n}) => {\n // Get all the registered resolvers configuration\n const { resolversConfig = {} } = extension;\n\n // Fields filters\n const isValidFieldName = (field: string) => !field.startsWith('__');\n\n const typeMap = schema.getTypeMap();\n\n Object.entries(typeMap).forEach(([type, definition]) => {\n const isGraphQLObjectType = definition instanceof GraphQLObjectType;\n const isIgnoredType = introspectionQueries.includes(type);\n\n if (!isGraphQLObjectType || isIgnoredType) {\n return;\n }\n\n const fields = definition.getFields();\n const fieldsToProcess = Object.entries(fields).filter(([field]) => isValidFieldName(field));\n\n for (const [fieldName, fieldDefinition] of fieldsToProcess) {\n const defaultResolver = get(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = getOr({}, path, resolversConfig);\n\n const { resolve: baseResolver = defaultResolver } = fieldDefinition;\n\n // Parse & initialize the middlewares\n const middlewares = parseMiddlewares(resolverConfig, strapi);\n\n // Generate the policy middleware\n const policyMiddleware = createPoliciesMiddleware(resolverConfig, { strapi });\n\n // Add the policyMiddleware at the end of the middlewares collection\n middlewares.push(policyMiddleware);\n\n // Bind every middleware to the next one\n const boundMiddlewares = middlewares.map((middleware, index, collection) => {\n return (parents: unknown, args: unknown, context: unknown, info: GraphQLResolveInfo) =>\n middleware(\n // Make sure the last middleware in the list calls the baseResolver\n index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1],\n parents,\n args,\n context,\n info\n );\n });\n\n /**\n * GraphQL authorization flow\n * @param {object} context\n * @return {Promise<void>}\n */\n const authorize = async ({ context }: any) => {\n const authConfig = get('auth', resolverConfig);\n const authContext = get('state.auth', context);\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = !isNil(authConfig);\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch (error) {\n throw new ForbiddenError();\n }\n }\n };\n\n /**\n * Base resolver wrapper that handles authorization, middlewares & policies\n * @return {Promise<any>}\n */\n fieldDefinition.resolve = async (parent, args, context, info) => {\n await authorize({ context });\n\n // Execute middlewares (including the policy middleware which will always be included)\n return first(boundMiddlewares)!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n"],"names":["ForbiddenError","errors","introspectionQueries","parseMiddlewares","resolverConfig","strapi","resolverMiddlewares","getOr","map","middleware","isFunction","name","options","Error","wrapResolvers","schema","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","type","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","includes","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","get","path","resolve","baseResolver","middlewares","policyMiddleware","createPoliciesMiddleware","push","boundMiddlewares","index","collection","parents","args","context","info","length","authorize","authConfig","authContext","isValidType","hasConfig","isNil","isAuthDisabled","auth","verify","error","parent","first"],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ 'use strict';
2
+
3
+ var nexus = require('nexus');
4
+ var fp = require('lodash/fp');
5
+ var shadowCrudManager = require('./shadow-crud-manager.js');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var nexus__namespace = /*#__PURE__*/_interopNamespace(nexus);
26
+
27
+ const getDefaultState = ()=>({
28
+ types: [],
29
+ typeDefs: [],
30
+ resolvers: {},
31
+ resolversConfig: {},
32
+ plugins: []
33
+ });
34
+ const createExtension = ({ strapi })=>{
35
+ const configs = [];
36
+ return {
37
+ shadowCRUD: shadowCrudManager(),
38
+ /**
39
+ * Register a new extension configuration
40
+ */ use (configuration) {
41
+ configs.push(configuration);
42
+ return this;
43
+ },
44
+ /**
45
+ * Convert the registered configuration into a single extension object & return it
46
+ */ generate ({ typeRegistry }) {
47
+ const resolveConfig = (config)=>{
48
+ return typeof config === 'function' ? config({
49
+ strapi,
50
+ nexus: nexus__namespace,
51
+ typeRegistry
52
+ }) : config;
53
+ };
54
+ // Evaluate & merge every registered configuration object, then return the result
55
+ return configs.reduce((acc, configuration)=>{
56
+ const { types, typeDefs, resolvers, resolversConfig, plugins } = resolveConfig(configuration);
57
+ // Register type definitions
58
+ if (typeof typeDefs === 'string') {
59
+ acc.typeDefs.push(typeDefs);
60
+ }
61
+ // Register nexus types
62
+ if (Array.isArray(types)) {
63
+ acc.types.push(...types);
64
+ }
65
+ // Register nexus plugins
66
+ if (Array.isArray(plugins)) {
67
+ acc.plugins.push(...plugins);
68
+ }
69
+ // Register resolvers
70
+ if (typeof resolvers === 'object') {
71
+ acc.resolvers = fp.merge(acc.resolvers, resolvers);
72
+ }
73
+ // Register resolvers configuration
74
+ if (typeof resolversConfig === 'object') {
75
+ // TODO: smarter merge for auth, middlewares & policies
76
+ acc.resolversConfig = fp.merge(resolversConfig, acc.resolversConfig);
77
+ }
78
+ return acc;
79
+ }, getDefaultState());
80
+ }
81
+ };
82
+ };
83
+
84
+ module.exports = createExtension;
85
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAAA,GAAkB,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAAA,EAAYC,iBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAAA,KAAW,UAAA,GAAaA,MAAAA,CAAO;AAAEV,oBAAAA,MAAAA;AAAQW,2BAAAA,gBAAAA;AAAOH,oBAAAA;iBAAa,CAAA,GAAKE,MAAAA;AAClF,YAAA,CAAA;;AAGA,YAAA,OAAOT,OAAAA,CAAQW,MAAM,CAAC,CAACC,GAAAA,EAAKR,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAAA,CAAcJ,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAA,EAAU;oBAChCkB,GAAAA,CAAIlB,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAAA,CAAAA,EAAQ;oBACxBmB,GAAAA,CAAInB,KAAK,CAACY,IAAI,CAAA,GAAIZ,KAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAAA,CAAAA,EAAU;oBAC1Be,GAAAA,CAAIf,OAAO,CAACQ,IAAI,CAAA,GAAIR,OAAAA,CAAAA;AACtB,gBAAA;;gBAGA,IAAI,OAAOF,cAAc,QAAA,EAAU;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,QAAAA,CAAMH,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC,gBAAA;;gBAGA,IAAI,OAAOC,oBAAoB,QAAA,EAAU;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,QAAAA,CAAMnB,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE,gBAAA;gBAEA,OAAOgB,GAAAA;YACT,CAAA,EAAGpB,eAAAA,EAAAA,CAAAA;AACL,QAAA;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,63 @@
1
+ import * as nexus from 'nexus';
2
+ import { merge } from 'lodash/fp';
3
+ import createShadowCRUDManager from './shadow-crud-manager.mjs';
4
+
5
+ const getDefaultState = ()=>({
6
+ types: [],
7
+ typeDefs: [],
8
+ resolvers: {},
9
+ resolversConfig: {},
10
+ plugins: []
11
+ });
12
+ const createExtension = ({ strapi })=>{
13
+ const configs = [];
14
+ return {
15
+ shadowCRUD: createShadowCRUDManager(),
16
+ /**
17
+ * Register a new extension configuration
18
+ */ use (configuration) {
19
+ configs.push(configuration);
20
+ return this;
21
+ },
22
+ /**
23
+ * Convert the registered configuration into a single extension object & return it
24
+ */ generate ({ typeRegistry }) {
25
+ const resolveConfig = (config)=>{
26
+ return typeof config === 'function' ? config({
27
+ strapi,
28
+ nexus,
29
+ typeRegistry
30
+ }) : config;
31
+ };
32
+ // Evaluate & merge every registered configuration object, then return the result
33
+ return configs.reduce((acc, configuration)=>{
34
+ const { types, typeDefs, resolvers, resolversConfig, plugins } = resolveConfig(configuration);
35
+ // Register type definitions
36
+ if (typeof typeDefs === 'string') {
37
+ acc.typeDefs.push(typeDefs);
38
+ }
39
+ // Register nexus types
40
+ if (Array.isArray(types)) {
41
+ acc.types.push(...types);
42
+ }
43
+ // Register nexus plugins
44
+ if (Array.isArray(plugins)) {
45
+ acc.plugins.push(...plugins);
46
+ }
47
+ // Register resolvers
48
+ if (typeof resolvers === 'object') {
49
+ acc.resolvers = merge(acc.resolvers, resolvers);
50
+ }
51
+ // Register resolvers configuration
52
+ if (typeof resolversConfig === 'object') {
53
+ // TODO: smarter merge for auth, middlewares & policies
54
+ acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);
55
+ }
56
+ return acc;
57
+ }, getDefaultState());
58
+ }
59
+ };
60
+ };
61
+
62
+ export { createExtension as default };
63
+ //# sourceMappingURL=extension.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.mjs","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAAA,GAAkB,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAAA,EAAYC,uBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAAA,KAAW,UAAA,GAAaA,MAAAA,CAAO;AAAEV,oBAAAA,MAAAA;AAAQW,oBAAAA,KAAAA;AAAOH,oBAAAA;iBAAa,CAAA,GAAKE,MAAAA;AAClF,YAAA,CAAA;;AAGA,YAAA,OAAOT,OAAAA,CAAQW,MAAM,CAAC,CAACC,GAAAA,EAAKR,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAAA,CAAcJ,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAA,EAAU;oBAChCkB,GAAAA,CAAIlB,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAAA,CAAAA,EAAQ;oBACxBmB,GAAAA,CAAInB,KAAK,CAACY,IAAI,CAAA,GAAIZ,KAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAAA,CAAAA,EAAU;oBAC1Be,GAAAA,CAAIf,OAAO,CAACQ,IAAI,CAAA,GAAIR,OAAAA,CAAAA;AACtB,gBAAA;;gBAGA,IAAI,OAAOF,cAAc,QAAA,EAAU;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,KAAAA,CAAMH,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC,gBAAA;;gBAGA,IAAI,OAAOC,oBAAoB,QAAA,EAAU;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,KAAAA,CAAMnB,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE,gBAAA;gBAEA,OAAOgB,GAAAA;YACT,CAAA,EAAGpB,eAAAA,EAAAA,CAAAA;AACL,QAAA;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var extension = require('./extension.js');
4
+
5
+
6
+
7
+ module.exports = extension;
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,6 @@
1
+ import createExtension from './extension.mjs';
2
+
3
+
4
+
5
+ export { createExtension as default };
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ const getDefaultContentTypeConfig = ()=>({
4
+ enabled: true,
5
+ mutations: true,
6
+ queries: true,
7
+ disabledActions: [],
8
+ fields: new Map()
9
+ });
10
+ const getDefaultFieldConfig = ()=>({
11
+ enabled: true,
12
+ input: true,
13
+ output: true,
14
+ filters: true
15
+ });
16
+ const ALL_ACTIONS = '*';
17
+ var createShadowCRUDManager = (()=>{
18
+ const configs = new Map();
19
+ return (uid)=>{
20
+ if (!configs.has(uid)) {
21
+ configs.set(uid, getDefaultContentTypeConfig());
22
+ }
23
+ return {
24
+ isEnabled () {
25
+ return configs.get(uid).enabled;
26
+ },
27
+ isDisabled () {
28
+ return !this.isEnabled();
29
+ },
30
+ areQueriesEnabled () {
31
+ return configs.get(uid).queries;
32
+ },
33
+ areQueriesDisabled () {
34
+ return !this.areQueriesEnabled();
35
+ },
36
+ areMutationsEnabled () {
37
+ return configs.get(uid).mutations;
38
+ },
39
+ areMutationsDisabled () {
40
+ return !this.areMutationsEnabled();
41
+ },
42
+ isActionEnabled (action) {
43
+ const matchingActions = [
44
+ action,
45
+ ALL_ACTIONS
46
+ ];
47
+ return configs.get(uid).disabledActions.every((action)=>!matchingActions.includes(action));
48
+ },
49
+ isActionDisabled (action) {
50
+ return !this.isActionEnabled(action);
51
+ },
52
+ disable () {
53
+ configs.get(uid).enabled = false;
54
+ return this;
55
+ },
56
+ disableQueries () {
57
+ configs.get(uid).queries = false;
58
+ return this;
59
+ },
60
+ disableMutations () {
61
+ configs.get(uid).mutations = false;
62
+ return this;
63
+ },
64
+ disableAction (action) {
65
+ const config = configs.get(uid);
66
+ if (!config.disabledActions.includes(action)) {
67
+ config.disabledActions.push(action);
68
+ }
69
+ return this;
70
+ },
71
+ disableActions (actions = []) {
72
+ actions.forEach((action)=>this.disableAction(action));
73
+ return this;
74
+ },
75
+ field (fieldName) {
76
+ const { fields } = configs.get(uid);
77
+ if (!fields.has(fieldName)) {
78
+ fields.set(fieldName, getDefaultFieldConfig());
79
+ }
80
+ return {
81
+ isEnabled () {
82
+ return fields.get(fieldName).enabled;
83
+ },
84
+ hasInputEnabled () {
85
+ return fields.get(fieldName).input;
86
+ },
87
+ hasOutputEnabled () {
88
+ return fields.get(fieldName).output;
89
+ },
90
+ hasFiltersEnabeld () {
91
+ return fields.get(fieldName).filters;
92
+ },
93
+ disable () {
94
+ fields.set(fieldName, {
95
+ enabled: false,
96
+ output: false,
97
+ input: false,
98
+ filters: false
99
+ });
100
+ return this;
101
+ },
102
+ disableOutput () {
103
+ fields.get(fieldName).output = false;
104
+ return this;
105
+ },
106
+ disableInput () {
107
+ fields.get(fieldName).input = false;
108
+ return this;
109
+ },
110
+ disableFilters () {
111
+ fields.get(fieldName).filters = false;
112
+ return this;
113
+ }
114
+ };
115
+ }
116
+ };
117
+ };
118
+ });
119
+
120
+ module.exports = createShadowCRUDManager;
121
+ //# sourceMappingURL=shadow-crud-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-crud-manager.js","sources":["../../../../server/src/services/extension/shadow-crud-manager.ts"],"sourcesContent":["export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n"],"names":["getDefaultContentTypeConfig","enabled","mutations","queries","disabledActions","fields","Map","getDefaultFieldConfig","input","output","filters","ALL_ACTIONS","configs","uid","has","set","isEnabled","get","isDisabled","areQueriesEnabled","areQueriesDisabled","areMutationsEnabled","areMutationsDisabled","isActionEnabled","action","matchingActions","every","includes","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":";;AAmBA,MAAMA,2BAAAA,GAA8B,KAA0B;QAC5DC,OAAAA,EAAS,IAAA;QAETC,SAAAA,EAAW,IAAA;QACXC,OAAAA,EAAS,IAAA;AAETC,QAAAA,eAAAA,EAAiB,EAAE;AACnBC,QAAAA,MAAAA,EAAQ,IAAIC,GAAAA;KACd,CAAA;AAEA,MAAMC,qBAAAA,GAAwB,KAAoB;QAChDN,OAAAA,EAAS,IAAA;QAETO,KAAAA,EAAO,IAAA;QACPC,MAAAA,EAAQ,IAAA;QAERC,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,WAAAA,GAAc,GAAA;AAEpB,8BAAe,CAAA,IAAA;AACb,IAAA,MAAMC,UAAU,IAAIN,GAAAA,EAAAA;AAEpB,IAAA,OAAO,CAACO,GAAAA,GAAAA;AACN,QAAA,IAAI,CAACD,OAAAA,CAAQE,GAAG,CAACD,GAAAA,CAAAA,EAAM;YACrBD,OAAAA,CAAQG,GAAG,CAACF,GAAAA,EAAKb,2BAAAA,EAAAA,CAAAA;AACnB,QAAA;QAEA,OAAO;AACLgB,YAAAA,SAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOJ,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA,CAAMZ,OAAO;AAClC,YAAA,CAAA;AAEAiB,YAAAA,UAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACF,SAAS,EAAA;AACxB,YAAA,CAAA;AAEAG,YAAAA,iBAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOP,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA,CAAMV,OAAO;AAClC,YAAA,CAAA;AAEAiB,YAAAA,kBAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACD,iBAAiB,EAAA;AAChC,YAAA,CAAA;AAEAE,YAAAA,mBAAAA,CAAAA,GAAAA;AACE,gBAAA,OAAOT,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA,CAAMX,SAAS;AACpC,YAAA,CAAA;AAEAoB,YAAAA,oBAAAA,CAAAA,GAAAA;gBACE,OAAO,CAAC,IAAI,CAACD,mBAAmB,EAAA;AAClC,YAAA,CAAA;AAEAE,YAAAA,eAAAA,CAAAA,CAAgBC,MAAc,EAAA;AAC5B,gBAAA,MAAMC,eAAAA,GAAkB;AAACD,oBAAAA,MAAAA;AAAQb,oBAAAA;AAAY,iBAAA;AAE7C,gBAAA,OAAOC,OAAAA,CACJK,GAAG,CAACJ,GAAAA,CAAAA,CACJT,eAAe,CAACsB,KAAK,CAAC,CAACF,MAAAA,GAAW,CAACC,eAAAA,CAAgBE,QAAQ,CAACH,MAAAA,CAAAA,CAAAA;AACjE,YAAA,CAAA;AAEAI,YAAAA,gBAAAA,CAAAA,CAAiBJ,MAAc,EAAA;AAC7B,gBAAA,OAAO,CAAC,IAAI,CAACD,eAAe,CAACC,MAAAA,CAAAA;AAC/B,YAAA,CAAA;AAEAK,YAAAA,OAAAA,CAAAA,GAAAA;AACEjB,gBAAAA,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA,CAAMZ,OAAO,GAAG,KAAA;AAE5B,gBAAA,OAAO,IAAI;AACb,YAAA,CAAA;AAEA6B,YAAAA,cAAAA,CAAAA,GAAAA;AACElB,gBAAAA,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA,CAAMV,OAAO,GAAG,KAAA;AAE5B,gBAAA,OAAO,IAAI;AACb,YAAA,CAAA;AAEA4B,YAAAA,gBAAAA,CAAAA,GAAAA;AACEnB,gBAAAA,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA,CAAMX,SAAS,GAAG,KAAA;AAE9B,gBAAA,OAAO,IAAI;AACb,YAAA,CAAA;AAEA8B,YAAAA,aAAAA,CAAAA,CAAcR,MAAc,EAAA;gBAC1B,MAAMS,MAAAA,GAASrB,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA;AAE3B,gBAAA,IAAI,CAACoB,MAAAA,CAAO7B,eAAe,CAACuB,QAAQ,CAACH,MAAAA,CAAAA,EAAS;oBAC5CS,MAAAA,CAAO7B,eAAe,CAAC8B,IAAI,CAACV,MAAAA,CAAAA;AAC9B,gBAAA;AAEA,gBAAA,OAAO,IAAI;AACb,YAAA,CAAA;AAEAW,YAAAA,cAAAA,CAAAA,CAAeC,UAAU,EAAE,EAAA;AACzBA,gBAAAA,OAAAA,CAAQC,OAAO,CAAC,CAACb,SAAW,IAAI,CAACQ,aAAa,CAACR,MAAAA,CAAAA,CAAAA;AAE/C,gBAAA,OAAO,IAAI;AACb,YAAA,CAAA;AAEAc,YAAAA,KAAAA,CAAAA,CAAMC,SAAiB,EAAA;AACrB,gBAAA,MAAM,EAAElC,MAAM,EAAE,GAAGO,OAAAA,CAAQK,GAAG,CAACJ,GAAAA,CAAAA;AAE/B,gBAAA,IAAI,CAACR,MAAAA,CAAOS,GAAG,CAACyB,SAAAA,CAAAA,EAAY;oBAC1BlC,MAAAA,CAAOU,GAAG,CAACwB,SAAAA,EAAWhC,qBAAAA,EAAAA,CAAAA;AACxB,gBAAA;gBAEA,OAAO;AACLS,oBAAAA,SAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAOX,MAAAA,CAAOY,GAAG,CAACsB,SAAAA,CAAAA,CAAYtC,OAAO;AACvC,oBAAA,CAAA;AAEAuC,oBAAAA,eAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAOnC,MAAAA,CAAOY,GAAG,CAACsB,SAAAA,CAAAA,CAAY/B,KAAK;AACrC,oBAAA,CAAA;AAEAiC,oBAAAA,gBAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAOpC,MAAAA,CAAOY,GAAG,CAACsB,SAAAA,CAAAA,CAAY9B,MAAM;AACtC,oBAAA,CAAA;AAEAiC,oBAAAA,iBAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAOrC,MAAAA,CAAOY,GAAG,CAACsB,SAAAA,CAAAA,CAAY7B,OAAO;AACvC,oBAAA,CAAA;AAEAmB,oBAAAA,OAAAA,CAAAA,GAAAA;wBACExB,MAAAA,CAAOU,GAAG,CAACwB,SAAAA,EAAW;4BACpBtC,OAAAA,EAAS,KAAA;4BAETQ,MAAAA,EAAQ,KAAA;4BACRD,KAAAA,EAAO,KAAA;4BAEPE,OAAAA,EAAS;AACX,yBAAA,CAAA;AAEA,wBAAA,OAAO,IAAI;AACb,oBAAA,CAAA;AAEAiC,oBAAAA,aAAAA,CAAAA,GAAAA;AACEtC,wBAAAA,MAAAA,CAAOY,GAAG,CAACsB,SAAAA,CAAAA,CAAY9B,MAAM,GAAG,KAAA;AAEhC,wBAAA,OAAO,IAAI;AACb,oBAAA,CAAA;AAEAmC,oBAAAA,YAAAA,CAAAA,GAAAA;AACEvC,wBAAAA,MAAAA,CAAOY,GAAG,CAACsB,SAAAA,CAAAA,CAAY/B,KAAK,GAAG,KAAA;AAE/B,wBAAA,OAAO,IAAI;AACb,oBAAA,CAAA;AAEAqC,oBAAAA,cAAAA,CAAAA,GAAAA;AACExC,wBAAAA,MAAAA,CAAOY,GAAG,CAACsB,SAAAA,CAAAA,CAAY7B,OAAO,GAAG,KAAA;AAEjC,wBAAA,OAAO,IAAI;AACb,oBAAA;AACF,iBAAA;AACF,YAAA;AACF,SAAA;AACF,IAAA,CAAA;AACF,CAAA;;;;"}
@@ -0,0 +1,119 @@
1
+ const getDefaultContentTypeConfig = ()=>({
2
+ enabled: true,
3
+ mutations: true,
4
+ queries: true,
5
+ disabledActions: [],
6
+ fields: new Map()
7
+ });
8
+ const getDefaultFieldConfig = ()=>({
9
+ enabled: true,
10
+ input: true,
11
+ output: true,
12
+ filters: true
13
+ });
14
+ const ALL_ACTIONS = '*';
15
+ var createShadowCRUDManager = (()=>{
16
+ const configs = new Map();
17
+ return (uid)=>{
18
+ if (!configs.has(uid)) {
19
+ configs.set(uid, getDefaultContentTypeConfig());
20
+ }
21
+ return {
22
+ isEnabled () {
23
+ return configs.get(uid).enabled;
24
+ },
25
+ isDisabled () {
26
+ return !this.isEnabled();
27
+ },
28
+ areQueriesEnabled () {
29
+ return configs.get(uid).queries;
30
+ },
31
+ areQueriesDisabled () {
32
+ return !this.areQueriesEnabled();
33
+ },
34
+ areMutationsEnabled () {
35
+ return configs.get(uid).mutations;
36
+ },
37
+ areMutationsDisabled () {
38
+ return !this.areMutationsEnabled();
39
+ },
40
+ isActionEnabled (action) {
41
+ const matchingActions = [
42
+ action,
43
+ ALL_ACTIONS
44
+ ];
45
+ return configs.get(uid).disabledActions.every((action)=>!matchingActions.includes(action));
46
+ },
47
+ isActionDisabled (action) {
48
+ return !this.isActionEnabled(action);
49
+ },
50
+ disable () {
51
+ configs.get(uid).enabled = false;
52
+ return this;
53
+ },
54
+ disableQueries () {
55
+ configs.get(uid).queries = false;
56
+ return this;
57
+ },
58
+ disableMutations () {
59
+ configs.get(uid).mutations = false;
60
+ return this;
61
+ },
62
+ disableAction (action) {
63
+ const config = configs.get(uid);
64
+ if (!config.disabledActions.includes(action)) {
65
+ config.disabledActions.push(action);
66
+ }
67
+ return this;
68
+ },
69
+ disableActions (actions = []) {
70
+ actions.forEach((action)=>this.disableAction(action));
71
+ return this;
72
+ },
73
+ field (fieldName) {
74
+ const { fields } = configs.get(uid);
75
+ if (!fields.has(fieldName)) {
76
+ fields.set(fieldName, getDefaultFieldConfig());
77
+ }
78
+ return {
79
+ isEnabled () {
80
+ return fields.get(fieldName).enabled;
81
+ },
82
+ hasInputEnabled () {
83
+ return fields.get(fieldName).input;
84
+ },
85
+ hasOutputEnabled () {
86
+ return fields.get(fieldName).output;
87
+ },
88
+ hasFiltersEnabeld () {
89
+ return fields.get(fieldName).filters;
90
+ },
91
+ disable () {
92
+ fields.set(fieldName, {
93
+ enabled: false,
94
+ output: false,
95
+ input: false,
96
+ filters: false
97
+ });
98
+ return this;
99
+ },
100
+ disableOutput () {
101
+ fields.get(fieldName).output = false;
102
+ return this;
103
+ },
104
+ disableInput () {
105
+ fields.get(fieldName).input = false;
106
+ return this;
107
+ },
108
+ disableFilters () {
109
+ fields.get(fieldName).filters = false;
110
+ return this;
111
+ }
112
+ };
113
+ }
114
+ };
115
+ };
116
+ });
117
+
118
+ export { createShadowCRUDManager as default };
119
+ //# sourceMappingURL=shadow-crud-manager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-crud-manager.mjs","sources":["../../../../server/src/services/extension/shadow-crud-manager.ts"],"sourcesContent":["export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n"],"names":["getDefaultContentTypeConfig","enabled","mutations","queries","disabledActions","fields","Map","getDefaultFieldConfig","input","output","filters","ALL_ACTIONS","configs","uid","has","set","isEnabled","get","isDisabled","areQueriesEnabled","areQueriesDisabled","areMutationsEnabled","areMutationsDisabled","isActionEnabled","action","matchingActions","every","includes","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":"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"}