@strapi/plugin-graphql 5.37.1 → 5.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/admin/index.js.map +1 -1
  2. package/dist/admin/index.mjs.map +1 -1
  3. package/dist/admin/package.json.js +1 -133
  4. package/dist/admin/package.json.js.map +1 -1
  5. package/dist/admin/package.json.mjs +2 -120
  6. package/dist/admin/package.json.mjs.map +1 -1
  7. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  8. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  9. package/dist/server/bootstrap.js.map +1 -1
  10. package/dist/server/bootstrap.mjs.map +1 -1
  11. package/dist/server/config/default-config.js.map +1 -1
  12. package/dist/server/config/default-config.mjs.map +1 -1
  13. package/dist/server/config/index.js.map +1 -1
  14. package/dist/server/config/index.mjs.map +1 -1
  15. package/dist/server/format-graphql-error.js.map +1 -1
  16. package/dist/server/format-graphql-error.mjs.map +1 -1
  17. package/dist/server/index.js +4 -4
  18. package/dist/server/index.js.map +1 -1
  19. package/dist/server/index.mjs.map +1 -1
  20. package/dist/server/services/builders/dynamic-zones.js.map +1 -1
  21. package/dist/server/services/builders/dynamic-zones.mjs.map +1 -1
  22. package/dist/server/services/builders/entity.js.map +1 -1
  23. package/dist/server/services/builders/entity.mjs.map +1 -1
  24. package/dist/server/services/builders/enums.js.map +1 -1
  25. package/dist/server/services/builders/enums.mjs.map +1 -1
  26. package/dist/server/services/builders/filters/content-type.js.map +1 -1
  27. package/dist/server/services/builders/filters/content-type.mjs.map +1 -1
  28. package/dist/server/services/builders/filters/index.js.map +1 -1
  29. package/dist/server/services/builders/filters/index.mjs.map +1 -1
  30. package/dist/server/services/builders/filters/operators/and.js.map +1 -1
  31. package/dist/server/services/builders/filters/operators/and.mjs.map +1 -1
  32. package/dist/server/services/builders/filters/operators/between.js.map +1 -1
  33. package/dist/server/services/builders/filters/operators/between.mjs.map +1 -1
  34. package/dist/server/services/builders/filters/operators/contains.js.map +1 -1
  35. package/dist/server/services/builders/filters/operators/contains.mjs.map +1 -1
  36. package/dist/server/services/builders/filters/operators/containsi.js.map +1 -1
  37. package/dist/server/services/builders/filters/operators/containsi.mjs.map +1 -1
  38. package/dist/server/services/builders/filters/operators/ends-with.js.map +1 -1
  39. package/dist/server/services/builders/filters/operators/ends-with.mjs.map +1 -1
  40. package/dist/server/services/builders/filters/operators/eq.js.map +1 -1
  41. package/dist/server/services/builders/filters/operators/eq.mjs.map +1 -1
  42. package/dist/server/services/builders/filters/operators/eqi.js.map +1 -1
  43. package/dist/server/services/builders/filters/operators/eqi.mjs.map +1 -1
  44. package/dist/server/services/builders/filters/operators/gt.js.map +1 -1
  45. package/dist/server/services/builders/filters/operators/gt.mjs.map +1 -1
  46. package/dist/server/services/builders/filters/operators/gte.js.map +1 -1
  47. package/dist/server/services/builders/filters/operators/gte.mjs.map +1 -1
  48. package/dist/server/services/builders/filters/operators/in.js.map +1 -1
  49. package/dist/server/services/builders/filters/operators/in.mjs.map +1 -1
  50. package/dist/server/services/builders/filters/operators/index.js.map +1 -1
  51. package/dist/server/services/builders/filters/operators/index.mjs +4 -4
  52. package/dist/server/services/builders/filters/operators/index.mjs.map +1 -1
  53. package/dist/server/services/builders/filters/operators/lt.js.map +1 -1
  54. package/dist/server/services/builders/filters/operators/lt.mjs.map +1 -1
  55. package/dist/server/services/builders/filters/operators/lte.js.map +1 -1
  56. package/dist/server/services/builders/filters/operators/lte.mjs.map +1 -1
  57. package/dist/server/services/builders/filters/operators/ne.js.map +1 -1
  58. package/dist/server/services/builders/filters/operators/ne.mjs.map +1 -1
  59. package/dist/server/services/builders/filters/operators/nei.js.map +1 -1
  60. package/dist/server/services/builders/filters/operators/nei.mjs.map +1 -1
  61. package/dist/server/services/builders/filters/operators/not-contains.js.map +1 -1
  62. package/dist/server/services/builders/filters/operators/not-contains.mjs.map +1 -1
  63. package/dist/server/services/builders/filters/operators/not-containsi.js.map +1 -1
  64. package/dist/server/services/builders/filters/operators/not-containsi.mjs.map +1 -1
  65. package/dist/server/services/builders/filters/operators/not-in.js.map +1 -1
  66. package/dist/server/services/builders/filters/operators/not-in.mjs.map +1 -1
  67. package/dist/server/services/builders/filters/operators/not-null.js.map +1 -1
  68. package/dist/server/services/builders/filters/operators/not-null.mjs.map +1 -1
  69. package/dist/server/services/builders/filters/operators/not.js.map +1 -1
  70. package/dist/server/services/builders/filters/operators/not.mjs.map +1 -1
  71. package/dist/server/services/builders/filters/operators/null.js.map +1 -1
  72. package/dist/server/services/builders/filters/operators/null.mjs.map +1 -1
  73. package/dist/server/services/builders/filters/operators/or.js.map +1 -1
  74. package/dist/server/services/builders/filters/operators/or.mjs.map +1 -1
  75. package/dist/server/services/builders/filters/operators/starts-with.js.map +1 -1
  76. package/dist/server/services/builders/filters/operators/starts-with.mjs.map +1 -1
  77. package/dist/server/services/builders/generic-morph.js.map +1 -1
  78. package/dist/server/services/builders/generic-morph.mjs.map +1 -1
  79. package/dist/server/services/builders/index.js.map +1 -1
  80. package/dist/server/services/builders/index.mjs.map +1 -1
  81. package/dist/server/services/builders/input.js.map +1 -1
  82. package/dist/server/services/builders/input.mjs.map +1 -1
  83. package/dist/server/services/builders/mutations/collection-type.js.map +1 -1
  84. package/dist/server/services/builders/mutations/collection-type.mjs.map +1 -1
  85. package/dist/server/services/builders/mutations/index.js.map +1 -1
  86. package/dist/server/services/builders/mutations/index.mjs.map +1 -1
  87. package/dist/server/services/builders/mutations/single-type.js.map +1 -1
  88. package/dist/server/services/builders/mutations/single-type.mjs.map +1 -1
  89. package/dist/server/services/builders/queries/collection-type.js.map +1 -1
  90. package/dist/server/services/builders/queries/collection-type.mjs.map +1 -1
  91. package/dist/server/services/builders/queries/index.js.map +1 -1
  92. package/dist/server/services/builders/queries/index.mjs.map +1 -1
  93. package/dist/server/services/builders/queries/single-type.js.map +1 -1
  94. package/dist/server/services/builders/queries/single-type.mjs.map +1 -1
  95. package/dist/server/services/builders/relation-response-collection.js.map +1 -1
  96. package/dist/server/services/builders/relation-response-collection.mjs.map +1 -1
  97. package/dist/server/services/builders/resolvers/association.js.map +1 -1
  98. package/dist/server/services/builders/resolvers/association.mjs +1 -1
  99. package/dist/server/services/builders/resolvers/association.mjs.map +1 -1
  100. package/dist/server/services/builders/resolvers/component.js.map +1 -1
  101. package/dist/server/services/builders/resolvers/component.mjs.map +1 -1
  102. package/dist/server/services/builders/resolvers/dynamic-zone.js.map +1 -1
  103. package/dist/server/services/builders/resolvers/dynamic-zone.mjs.map +1 -1
  104. package/dist/server/services/builders/resolvers/index.js.map +1 -1
  105. package/dist/server/services/builders/resolvers/index.mjs.map +1 -1
  106. package/dist/server/services/builders/resolvers/pagination.js.map +1 -1
  107. package/dist/server/services/builders/resolvers/pagination.mjs.map +1 -1
  108. package/dist/server/services/builders/resolvers/query.js.map +1 -1
  109. package/dist/server/services/builders/resolvers/query.mjs.map +1 -1
  110. package/dist/server/services/builders/response-collection.js.map +1 -1
  111. package/dist/server/services/builders/response-collection.mjs.map +1 -1
  112. package/dist/server/services/builders/response.js.map +1 -1
  113. package/dist/server/services/builders/response.mjs.map +1 -1
  114. package/dist/server/services/builders/type.js +1 -3
  115. package/dist/server/services/builders/type.js.map +1 -1
  116. package/dist/server/services/builders/type.mjs +1 -3
  117. package/dist/server/services/builders/type.mjs.map +1 -1
  118. package/dist/server/services/builders/utils.js.map +1 -1
  119. package/dist/server/services/builders/utils.mjs +2 -2
  120. package/dist/server/services/builders/utils.mjs.map +1 -1
  121. package/dist/server/services/constants.js.map +1 -1
  122. package/dist/server/services/constants.mjs.map +1 -1
  123. package/dist/server/services/content-api/index.js.map +1 -1
  124. package/dist/server/services/content-api/index.mjs.map +1 -1
  125. package/dist/server/services/content-api/policy.js.map +1 -1
  126. package/dist/server/services/content-api/policy.mjs +1 -1
  127. package/dist/server/services/content-api/policy.mjs.map +1 -1
  128. package/dist/server/services/content-api/register-functions/collection-type.js.map +1 -1
  129. package/dist/server/services/content-api/register-functions/collection-type.mjs.map +1 -1
  130. package/dist/server/services/content-api/register-functions/component.js.map +1 -1
  131. package/dist/server/services/content-api/register-functions/component.mjs.map +1 -1
  132. package/dist/server/services/content-api/register-functions/dynamic-zones.js.map +1 -1
  133. package/dist/server/services/content-api/register-functions/dynamic-zones.mjs.map +1 -1
  134. package/dist/server/services/content-api/register-functions/enums.js.map +1 -1
  135. package/dist/server/services/content-api/register-functions/enums.mjs.map +1 -1
  136. package/dist/server/services/content-api/register-functions/filters.js.map +1 -1
  137. package/dist/server/services/content-api/register-functions/filters.mjs.map +1 -1
  138. package/dist/server/services/content-api/register-functions/inputs.js.map +1 -1
  139. package/dist/server/services/content-api/register-functions/inputs.mjs.map +1 -1
  140. package/dist/server/services/content-api/register-functions/internals.js.map +1 -1
  141. package/dist/server/services/content-api/register-functions/internals.mjs.map +1 -1
  142. package/dist/server/services/content-api/register-functions/polymorphic.js.map +1 -1
  143. package/dist/server/services/content-api/register-functions/polymorphic.mjs.map +1 -1
  144. package/dist/server/services/content-api/register-functions/scalars.js.map +1 -1
  145. package/dist/server/services/content-api/register-functions/scalars.mjs.map +1 -1
  146. package/dist/server/services/content-api/register-functions/single-type.js.map +1 -1
  147. package/dist/server/services/content-api/register-functions/single-type.mjs.map +1 -1
  148. package/dist/server/services/content-api/wrap-resolvers.js.map +1 -1
  149. package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -1
  150. package/dist/server/services/extension/extension.js.map +1 -1
  151. package/dist/server/services/extension/extension.mjs.map +1 -1
  152. package/dist/server/services/extension/shadow-crud-manager.js.map +1 -1
  153. package/dist/server/services/extension/shadow-crud-manager.mjs.map +1 -1
  154. package/dist/server/services/format/index.js.map +1 -1
  155. package/dist/server/services/format/index.mjs.map +1 -1
  156. package/dist/server/services/format/return-types.js.map +1 -1
  157. package/dist/server/services/format/return-types.mjs.map +1 -1
  158. package/dist/server/services/index.js +8 -8
  159. package/dist/server/services/index.js.map +1 -1
  160. package/dist/server/services/index.mjs.map +1 -1
  161. package/dist/server/services/internals/args/index.js.map +1 -1
  162. package/dist/server/services/internals/args/index.mjs.map +1 -1
  163. package/dist/server/services/internals/args/pagination.js.map +1 -1
  164. package/dist/server/services/internals/args/pagination.mjs.map +1 -1
  165. package/dist/server/services/internals/args/publication-status.js.map +1 -1
  166. package/dist/server/services/internals/args/publication-status.mjs.map +1 -1
  167. package/dist/server/services/internals/args/sort.js.map +1 -1
  168. package/dist/server/services/internals/args/sort.mjs.map +1 -1
  169. package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -1
  170. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -1
  171. package/dist/server/services/internals/helpers/index.js.map +1 -1
  172. package/dist/server/services/internals/helpers/index.mjs.map +1 -1
  173. package/dist/server/services/internals/index.js +8 -8
  174. package/dist/server/services/internals/index.js.map +1 -1
  175. package/dist/server/services/internals/index.mjs.map +1 -1
  176. package/dist/server/services/internals/scalars/date.js.map +1 -1
  177. package/dist/server/services/internals/scalars/date.mjs.map +1 -1
  178. package/dist/server/services/internals/scalars/index.js.map +1 -1
  179. package/dist/server/services/internals/scalars/index.mjs +1 -1
  180. package/dist/server/services/internals/scalars/index.mjs.map +1 -1
  181. package/dist/server/services/internals/scalars/time.js.map +1 -1
  182. package/dist/server/services/internals/scalars/time.mjs +1 -1
  183. package/dist/server/services/internals/scalars/time.mjs.map +1 -1
  184. package/dist/server/services/internals/types/delete-mutation-response.js.map +1 -1
  185. package/dist/server/services/internals/types/delete-mutation-response.mjs.map +1 -1
  186. package/dist/server/services/internals/types/error.js.map +1 -1
  187. package/dist/server/services/internals/types/error.mjs.map +1 -1
  188. package/dist/server/services/internals/types/filters.js.map +1 -1
  189. package/dist/server/services/internals/types/filters.mjs.map +1 -1
  190. package/dist/server/services/internals/types/index.js.map +1 -1
  191. package/dist/server/services/internals/types/index.mjs.map +1 -1
  192. package/dist/server/services/internals/types/pagination.js.map +1 -1
  193. package/dist/server/services/internals/types/pagination.mjs.map +1 -1
  194. package/dist/server/services/internals/types/publication-status.js.map +1 -1
  195. package/dist/server/services/internals/types/publication-status.mjs.map +1 -1
  196. package/dist/server/services/internals/types/response-collection-meta.js.map +1 -1
  197. package/dist/server/services/internals/types/response-collection-meta.mjs.map +1 -1
  198. package/dist/server/services/type-registry.js.map +1 -1
  199. package/dist/server/services/type-registry.mjs.map +1 -1
  200. package/dist/server/services/utils/attributes.js.map +1 -1
  201. package/dist/server/services/utils/attributes.mjs.map +1 -1
  202. package/dist/server/services/utils/index.js.map +1 -1
  203. package/dist/server/services/utils/index.mjs.map +1 -1
  204. package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -1
  205. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +5 -5
  206. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -1
  207. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -1
  208. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -1
  209. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -1
  210. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -1
  211. package/dist/server/services/utils/mappers/index.js.map +1 -1
  212. package/dist/server/services/utils/mappers/index.mjs.map +1 -1
  213. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -1
  214. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -1
  215. package/dist/server/services/utils/naming.js.map +1 -1
  216. package/dist/server/services/utils/naming.mjs.map +1 -1
  217. package/dist/server/services/utils/playground.js.map +1 -1
  218. package/dist/server/services/utils/playground.mjs.map +1 -1
  219. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import pluginPkg from '../../package.json';\n\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n // TODO: we need to have the type for StrapiApp done from `@strapi/admin` package.\n register(app: any) {\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n bootstrap() {},\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["name","pluginPkg","strapi","register","app","registerPlugin","id","pluginId","bootstrap","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,IAAOC,GAAAA,gBAAAA,CAAUC,MAAM,CAACF,IAAI;AAElC;AACA,YAAe;;AAEbG,IAAAA,QAAAA,CAAAA,CAASC,GAAQ,EAAA;AACfA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;YACjBC,EAAIC,EAAAA,iBAAAA;AACJP,YAAAA;AACF,SAAA,CAAA;AACF,KAAA;IACAQ,SAAa,CAAA,GAAA,EAAA;IACb,MAAMC,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAQC,CAAAA,GAAG,CACrCH,OAAQI,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAO,CAAA,KAAK,CAAC,CAAA,CAC1CC,IAAI,CAAC,CAAC,EAAEC,OAAAA,EAASC,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,kDAAyBD,IAAMX,EAAAA,iBAAAA,CAAAA;AACrCQ,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA,CACCK,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPH,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQS,OAAO,CAACV,aAAAA,CAAAA;AACzB;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import pluginPkg from '../../package.json';\n\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n // TODO: we need to have the type for StrapiApp done from `@strapi/admin` package.\n register(app: any) {\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n bootstrap() {},\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["name","pluginPkg","strapi","register","app","registerPlugin","id","pluginId","bootstrap","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,IAAAA,GAAOC,gBAAAA,CAAUC,MAAM,CAACF,IAAI;AAElC;AACA,YAAe;;AAEbG,IAAAA,QAAAA,CAAAA,CAASC,GAAQ,EAAA;AACfA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;YACjBC,EAAAA,EAAIC,iBAAAA;AACJP,YAAAA;AACF,SAAA,CAAA;AACF,IAAA,CAAA;IACAQ,SAAAA,CAAAA,GAAAA,CAAa,CAAA;IACb,MAAMC,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAAA,CAAQC,GAAG,CACrCH,OAAAA,CAAQI,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAAA,CAAO,KAAK,CAAC,CAAA,CAC1CC,IAAI,CAAC,CAAC,EAAEC,OAAAA,EAASC,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,kDAAyBD,IAAAA,EAAMX,iBAAAA,CAAAA;AACrCQ,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA,CACCK,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPH,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQS,OAAO,CAACV,aAAAA,CAAAA;AACzB,IAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import pluginPkg from '../../package.json';\n\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n // TODO: we need to have the type for StrapiApp done from `@strapi/admin` package.\n register(app: any) {\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n bootstrap() {},\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["name","pluginPkg","strapi","register","app","registerPlugin","id","pluginId","bootstrap","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,IAAOC,GAAAA,SAAAA,CAAUC,MAAM,CAACF,IAAI;AAElC;AACA,YAAe;;AAEbG,IAAAA,QAAAA,CAAAA,CAASC,GAAQ,EAAA;AACfA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;YACjBC,EAAIC,EAAAA,QAAAA;AACJP,YAAAA;AACF,SAAA,CAAA;AACF,KAAA;IACAQ,SAAa,CAAA,GAAA,EAAA;IACb,MAAMC,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAQC,CAAAA,GAAG,CACrCH,OAAQI,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAO,CAAA,KAAK,CAAC,CAAA,CAC1CC,IAAI,CAAC,CAAC,EAAEC,OAAAA,EAASC,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,yBAAyBD,IAAMX,EAAAA,QAAAA,CAAAA;AACrCQ,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA,CACCK,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPH,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQS,OAAO,CAACV,aAAAA,CAAAA;AACzB;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import pluginPkg from '../../package.json';\n\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n // TODO: we need to have the type for StrapiApp done from `@strapi/admin` package.\n register(app: any) {\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n bootstrap() {},\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["name","pluginPkg","strapi","register","app","registerPlugin","id","pluginId","bootstrap","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,IAAAA,GAAOC,SAAAA,CAAUC,MAAM,CAACF,IAAI;AAElC;AACA,YAAe;;AAEbG,IAAAA,QAAAA,CAAAA,CAASC,GAAQ,EAAA;AACfA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;YACjBC,EAAAA,EAAIC,QAAAA;AACJP,YAAAA;AACF,SAAA,CAAA;AACF,IAAA,CAAA;IACAQ,SAAAA,CAAAA,GAAAA,CAAa,CAAA;IACb,MAAMC,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAAA,CAAQC,GAAG,CACrCH,OAAAA,CAAQI,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAAA,CAAO,KAAK,CAAC,CAAA,CAC1CC,IAAI,CAAC,CAAC,EAAEC,OAAAA,EAASC,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,yBAAyBD,IAAAA,EAAMX,QAAAA,CAAAA;AACrCQ,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA,CACCK,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPH,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQS,OAAO,CAACV,aAAAA,CAAAA;AACzB,IAAA;AACF,CAAA;;;;"}
@@ -2,144 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var name = "@strapi/plugin-graphql";
6
- var version = "5.37.1";
7
- var description = "Adds GraphQL endpoint with default API methods.";
8
- var repository = {
9
- type: "git",
10
- url: "https://github.com/strapi/strapi.git",
11
- directory: "packages/plugins/graphql"
12
- };
13
- var license = "SEE LICENSE IN LICENSE";
14
- var author = {
15
- name: "Strapi Solutions SAS",
16
- email: "hi@strapi.io",
17
- url: "https://strapi.io"
18
- };
19
- var maintainers = [
20
- {
21
- name: "Strapi Solutions SAS",
22
- email: "hi@strapi.io",
23
- url: "https://strapi.io"
24
- }
25
- ];
26
- var exports$1 = {
27
- "./strapi-admin": {
28
- types: "./dist/admin/src/index.d.ts",
29
- source: "./admin/src/index.ts",
30
- "import": "./dist/admin/index.mjs",
31
- require: "./dist/admin/index.js",
32
- "default": "./dist/admin/index.js"
33
- },
34
- "./strapi-server": {
35
- types: "./dist/server/src/index.d.ts",
36
- source: "./server/src/index.ts",
37
- "import": "./dist/server/index.mjs",
38
- require: "./dist/server/index.js",
39
- "default": "./dist/server/index.js"
40
- },
41
- "./package.json": "./package.json"
42
- };
43
- var files = [
44
- "dist/",
45
- "strapi-server.js"
46
- ];
47
- var scripts = {
48
- build: "run -T npm-run-all clean --parallel build:code build:types",
49
- "build:code": "run -T rollup -c",
50
- "build:types": "run -T run-p build:types:server build:types:admin",
51
- "build:types:server": "run -T tsc -p server/tsconfig.build.json --emitDeclarationOnly",
52
- "build:types:admin": "run -T tsc -p admin/tsconfig.build.json --emitDeclarationOnly",
53
- clean: "run -T rimraf ./dist",
54
- lint: "run -T eslint .",
55
- "test:unit": "run -T jest --passWithNoTests",
56
- "test:unit:watch": "run -T jest --watch",
57
- watch: "run -T rollup -c -w"
58
- };
59
- var dependencies = {
60
- "@apollo/server": "4.13.0",
61
- "@as-integrations/koa": "1.1.1",
62
- "@graphql-tools/schema": "10.0.3",
63
- "@graphql-tools/utils": "^10.1.3",
64
- "@koa/cors": "5.0.0",
65
- "@strapi/design-system": "2.1.2",
66
- "@strapi/icons": "2.1.2",
67
- "@strapi/utils": "5.37.1",
68
- graphql: "^16.8.1",
69
- "graphql-depth-limit": "^1.1.0",
70
- "graphql-playground-middleware-koa": "^1.6.21",
71
- "graphql-scalars": "1.22.2",
72
- "koa-bodyparser": "4.4.1",
73
- "koa-compose": "^4.1.0",
74
- lodash: "4.17.23",
75
- nexus: "1.3.0",
76
- pluralize: "8.0.0"
77
- };
78
- var devDependencies = {
79
- "@strapi/strapi": "5.37.1",
80
- "@strapi/types": "5.37.1",
81
- "@types/graphql-depth-limit": "1.1.5",
82
- "@types/koa-bodyparser": "4.3.12",
83
- "@types/koa__cors": "5.0.0",
84
- "cross-env": "^7.0.3",
85
- "eslint-config-custom": "5.37.1",
86
- koa: "2.16.3",
87
- react: "18.3.1",
88
- "react-dom": "18.3.1",
89
- "react-router-dom": "6.30.3",
90
- "styled-components": "6.1.8",
91
- tsconfig: "5.37.1",
92
- typescript: "5.4.4"
93
- };
94
- var peerDependencies = {
95
- "@strapi/strapi": "^5.0.0",
96
- react: "^17.0.0 || ^18.0.0",
97
- "react-dom": "^17.0.0 || ^18.0.0",
98
- "react-router-dom": "^6.30.3",
99
- "styled-components": "^6.0.0"
100
- };
101
- var engines = {
102
- node: ">=20.0.0 <=24.x.x",
103
- npm: ">=6.0.0"
104
- };
105
5
  var strapi = {
106
- displayName: "GraphQL",
107
- name: "graphql",
108
- description: "Adds GraphQL endpoint with default API methods.",
109
- kind: "plugin"
110
- };
6
+ name: "graphql"};
111
7
  var pluginPkg = {
112
- name: name,
113
- version: version,
114
- description: description,
115
- repository: repository,
116
- license: license,
117
- author: author,
118
- maintainers: maintainers,
119
- exports: exports$1,
120
- files: files,
121
- scripts: scripts,
122
- dependencies: dependencies,
123
- devDependencies: devDependencies,
124
- peerDependencies: peerDependencies,
125
- engines: engines,
126
8
  strapi: strapi
127
9
  };
128
10
 
129
- exports.author = author;
130
11
  exports.default = pluginPkg;
131
- exports.dependencies = dependencies;
132
- exports.description = description;
133
- exports.devDependencies = devDependencies;
134
- exports.engines = engines;
135
- exports.exports = exports$1;
136
- exports.files = files;
137
- exports.license = license;
138
- exports.maintainers = maintainers;
139
- exports.name = name;
140
- exports.peerDependencies = peerDependencies;
141
- exports.repository = repository;
142
- exports.scripts = scripts;
143
12
  exports.strapi = strapi;
144
- exports.version = version;
145
13
  //# sourceMappingURL=package.json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,126 +1,8 @@
1
- var name = "@strapi/plugin-graphql";
2
- var version = "5.37.1";
3
- var description = "Adds GraphQL endpoint with default API methods.";
4
- var repository = {
5
- type: "git",
6
- url: "https://github.com/strapi/strapi.git",
7
- directory: "packages/plugins/graphql"
8
- };
9
- var license = "SEE LICENSE IN LICENSE";
10
- var author = {
11
- name: "Strapi Solutions SAS",
12
- email: "hi@strapi.io",
13
- url: "https://strapi.io"
14
- };
15
- var maintainers = [
16
- {
17
- name: "Strapi Solutions SAS",
18
- email: "hi@strapi.io",
19
- url: "https://strapi.io"
20
- }
21
- ];
22
- var exports = {
23
- "./strapi-admin": {
24
- types: "./dist/admin/src/index.d.ts",
25
- source: "./admin/src/index.ts",
26
- "import": "./dist/admin/index.mjs",
27
- require: "./dist/admin/index.js",
28
- "default": "./dist/admin/index.js"
29
- },
30
- "./strapi-server": {
31
- types: "./dist/server/src/index.d.ts",
32
- source: "./server/src/index.ts",
33
- "import": "./dist/server/index.mjs",
34
- require: "./dist/server/index.js",
35
- "default": "./dist/server/index.js"
36
- },
37
- "./package.json": "./package.json"
38
- };
39
- var files = [
40
- "dist/",
41
- "strapi-server.js"
42
- ];
43
- var scripts = {
44
- build: "run -T npm-run-all clean --parallel build:code build:types",
45
- "build:code": "run -T rollup -c",
46
- "build:types": "run -T run-p build:types:server build:types:admin",
47
- "build:types:server": "run -T tsc -p server/tsconfig.build.json --emitDeclarationOnly",
48
- "build:types:admin": "run -T tsc -p admin/tsconfig.build.json --emitDeclarationOnly",
49
- clean: "run -T rimraf ./dist",
50
- lint: "run -T eslint .",
51
- "test:unit": "run -T jest --passWithNoTests",
52
- "test:unit:watch": "run -T jest --watch",
53
- watch: "run -T rollup -c -w"
54
- };
55
- var dependencies = {
56
- "@apollo/server": "4.13.0",
57
- "@as-integrations/koa": "1.1.1",
58
- "@graphql-tools/schema": "10.0.3",
59
- "@graphql-tools/utils": "^10.1.3",
60
- "@koa/cors": "5.0.0",
61
- "@strapi/design-system": "2.1.2",
62
- "@strapi/icons": "2.1.2",
63
- "@strapi/utils": "5.37.1",
64
- graphql: "^16.8.1",
65
- "graphql-depth-limit": "^1.1.0",
66
- "graphql-playground-middleware-koa": "^1.6.21",
67
- "graphql-scalars": "1.22.2",
68
- "koa-bodyparser": "4.4.1",
69
- "koa-compose": "^4.1.0",
70
- lodash: "4.17.23",
71
- nexus: "1.3.0",
72
- pluralize: "8.0.0"
73
- };
74
- var devDependencies = {
75
- "@strapi/strapi": "5.37.1",
76
- "@strapi/types": "5.37.1",
77
- "@types/graphql-depth-limit": "1.1.5",
78
- "@types/koa-bodyparser": "4.3.12",
79
- "@types/koa__cors": "5.0.0",
80
- "cross-env": "^7.0.3",
81
- "eslint-config-custom": "5.37.1",
82
- koa: "2.16.3",
83
- react: "18.3.1",
84
- "react-dom": "18.3.1",
85
- "react-router-dom": "6.30.3",
86
- "styled-components": "6.1.8",
87
- tsconfig: "5.37.1",
88
- typescript: "5.4.4"
89
- };
90
- var peerDependencies = {
91
- "@strapi/strapi": "^5.0.0",
92
- react: "^17.0.0 || ^18.0.0",
93
- "react-dom": "^17.0.0 || ^18.0.0",
94
- "react-router-dom": "^6.30.3",
95
- "styled-components": "^6.0.0"
96
- };
97
- var engines = {
98
- node: ">=20.0.0 <=24.x.x",
99
- npm: ">=6.0.0"
100
- };
101
1
  var strapi = {
102
- displayName: "GraphQL",
103
- name: "graphql",
104
- description: "Adds GraphQL endpoint with default API methods.",
105
- kind: "plugin"
106
- };
2
+ name: "graphql"};
107
3
  var pluginPkg = {
108
- name: name,
109
- version: version,
110
- description: description,
111
- repository: repository,
112
- license: license,
113
- author: author,
114
- maintainers: maintainers,
115
- exports: exports,
116
- files: files,
117
- scripts: scripts,
118
- dependencies: dependencies,
119
- devDependencies: devDependencies,
120
- peerDependencies: peerDependencies,
121
- engines: engines,
122
4
  strapi: strapi
123
5
  };
124
6
 
125
- export { author, pluginPkg as default, dependencies, description, devDependencies, engines, exports, files, license, maintainers, name, peerDependencies, repository, scripts, strapi, version };
7
+ export { pluginPkg as default, strapi };
126
8
  //# sourceMappingURL=package.json.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefixPluginTranslations.js","sources":["../../../admin/src/utils/prefixPluginTranslations.ts"],"sourcesContent":["type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n"],"names":["prefixPluginTranslations","trad","pluginId","Object","keys","reduce","acc","current"],"mappings":";;AAEMA,MAAAA,wBAAAA,GAA2B,CAACC,IAAmBC,EAAAA,QAAAA,GAAAA;AAInD,IAAA,OAAOC,OAAOC,IAAI,CAACH,MAAMI,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;QACpCD,GAAG,CAAC,CAAGJ,EAAAA,QAAAA,CAAS,CAAC,EAAEK,SAAS,CAAC,GAAGN,IAAI,CAACM,OAAQ,CAAA;QAC7C,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"prefixPluginTranslations.js","sources":["../../../admin/src/utils/prefixPluginTranslations.ts"],"sourcesContent":["type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n"],"names":["prefixPluginTranslations","trad","pluginId","Object","keys","reduce","acc","current"],"mappings":";;AAEA,MAAMA,wBAAAA,GAA2B,CAACC,IAAAA,EAAmBC,QAAAA,GAAAA;AAInD,IAAA,OAAOC,OAAOC,IAAI,CAACH,MAAMI,MAAM,CAAC,CAACC,GAAAA,EAAKC,OAAAA,GAAAA;QACpCD,GAAG,CAAC,CAAA,EAAGJ,QAAAA,CAAS,CAAC,EAAEK,SAAS,CAAC,GAAGN,IAAI,CAACM,OAAAA,CAAQ;QAC7C,OAAOD,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefixPluginTranslations.mjs","sources":["../../../admin/src/utils/prefixPluginTranslations.ts"],"sourcesContent":["type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n"],"names":["prefixPluginTranslations","trad","pluginId","Object","keys","reduce","acc","current"],"mappings":"AAEMA,MAAAA,wBAAAA,GAA2B,CAACC,IAAmBC,EAAAA,QAAAA,GAAAA;AAInD,IAAA,OAAOC,OAAOC,IAAI,CAACH,MAAMI,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;QACpCD,GAAG,CAAC,CAAGJ,EAAAA,QAAAA,CAAS,CAAC,EAAEK,SAAS,CAAC,GAAGN,IAAI,CAACM,OAAQ,CAAA;QAC7C,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"prefixPluginTranslations.mjs","sources":["../../../admin/src/utils/prefixPluginTranslations.ts"],"sourcesContent":["type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n"],"names":["prefixPluginTranslations","trad","pluginId","Object","keys","reduce","acc","current"],"mappings":"AAEA,MAAMA,wBAAAA,GAA2B,CAACC,IAAAA,EAAmBC,QAAAA,GAAAA;AAInD,IAAA,OAAOC,OAAOC,IAAI,CAACH,MAAMI,MAAM,CAAC,CAACC,GAAAA,EAAKC,OAAAA,GAAAA;QACpCD,GAAG,CAAC,CAAA,EAAGJ,QAAAA,CAAS,CAAC,EAAEK,SAAS,CAAC,GAAGN,IAAI,CAACM,OAAAA,CAAQ;QAC7C,OAAOD,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { isEmpty, mergeWith, isArray, isObject, isFunction } from 'lodash/fp';\nimport { ApolloServer, type ApolloServerPlugin, type ApolloServerOptions } from '@apollo/server';\nimport {\n ApolloServerPluginLandingPageLocalDefault,\n ApolloServerPluginLandingPageProductionDefault,\n} from '@apollo/server/plugin/landingPage/default';\nimport { koaMiddleware } from '@as-integrations/koa';\nimport depthLimit from 'graphql-depth-limit';\nimport bodyParser from 'koa-bodyparser';\nimport cors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\nimport type { Options } from '@koa/cors';\nimport type { BaseContext, DefaultContextExtends, DefaultStateExtends } from 'koa';\n\nimport { formatGraphqlError } from './format-graphql-error';\n\nconst merge = mergeWith((a, b) => {\n if (isArray(a) && isArray(b)) {\n return a.concat(b);\n }\n});\n\ntype StrapiGraphQLContext = BaseContext & {\n rootQueryArgs?: Record<string, unknown>;\n};\n\nexport const determineLandingPage = (\n strapi: Core.Strapi\n): ApolloServerPlugin<StrapiGraphQLContext> => {\n const { config } = strapi.plugin('graphql');\n const utils = strapi.plugin('graphql').service('utils');\n\n /**\n * configLanding page may be one of the following:\n *\n * - true: always use \"playground\" even in production\n * - false: never show \"playground\" even in non-production\n * - undefined: default Apollo behavior (hide playground on production)\n * - a function that returns an Apollo plugin that implements renderLandingPage\n ** */\n const configLandingPage = config('landingPage');\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n const localLanding = () => {\n strapi.log.debug('Apollo landing page: local');\n utils.playground.setEnabled(true);\n return ApolloServerPluginLandingPageLocalDefault();\n };\n\n const prodLanding = () => {\n strapi.log.debug('Apollo landing page: production');\n utils.playground.setEnabled(false);\n return ApolloServerPluginLandingPageProductionDefault();\n };\n\n const userLanding = (userFunction: (strapi?: Core.Strapi) => ApolloServerPlugin | boolean) => {\n strapi.log.debug('Apollo landing page: from user-defined function...');\n const result = userFunction(strapi);\n if (result === true) {\n return localLanding();\n }\n if (result === false) {\n return prodLanding();\n }\n strapi.log.debug('Apollo landing page: user-defined');\n return result;\n };\n\n // DEPRECATED, remove in Strapi v6\n const playgroundAlways = config('playgroundAlways');\n if (playgroundAlways !== undefined) {\n strapi.log.warn(\n 'The graphql config playgroundAlways is deprecated. This will be removed in Strapi 6. Please use landingPage instead. '\n );\n }\n if (playgroundAlways === false) {\n strapi.log.warn(\n 'graphql config playgroundAlways:false has no effect, please use landingPage:false to disable Graphql Playground in all environments'\n );\n }\n\n if (playgroundAlways || configLandingPage === true) {\n return localLanding();\n }\n\n // if landing page has been disabled, use production\n if (configLandingPage === false) {\n return prodLanding();\n }\n\n // If user did not define any settings, use our defaults\n if (configLandingPage === undefined) {\n return isProduction ? prodLanding() : localLanding();\n }\n\n // if user provided a landing page function, return that\n if (isFunction(configLandingPage)) {\n return userLanding(configLandingPage);\n }\n\n // If no other setting could be found, default to production settings\n strapi.log.warn(\n 'Your Graphql landing page has been disabled because there is a problem with your Graphql settings'\n );\n return prodLanding();\n};\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n // Generate the GraphQL schema for the content API\n const schema = strapi.plugin('graphql').service('content-api').buildSchema();\n\n if (isEmpty(schema)) {\n strapi.log.warn('The GraphQL schema has not been generated because it is empty');\n\n return;\n }\n\n const { config } = strapi.plugin('graphql');\n\n const path: string = config('endpoint');\n\n const landingPage = determineLandingPage(strapi);\n /**\n * We need the arguments passed to the root query to be available in the association resolver\n * so we can forward those arguments along to any relations.\n *\n * In order to do that we are currently storing the arguments in context.\n * There is likely a better solution, but for now this is the simplest fix we could find.\n *\n * @see https://github.com/strapi/strapi/issues/23524\n */\n const pluginAddRootQueryArgs: ApolloServerPlugin<StrapiGraphQLContext> = {\n async requestDidStart() {\n return {\n async executionDidStart() {\n return {\n willResolveField({ source, args, contextValue, info }) {\n if (!source && info.operation.operation === 'query') {\n // Track which query field set the rootQueryArgs\n const fieldName = info.fieldName;\n // Set rootQueryArgs with the field name that originated it\n contextValue.rootQueryArgs = {\n ...args,\n _originField: fieldName, // Track which field set this\n };\n }\n },\n };\n },\n };\n },\n };\n\n type CustomOptions = {\n cors?: boolean | Options;\n uploads: boolean;\n bodyParserConfig: boolean;\n };\n\n const defaultServerConfig: ApolloServerOptions<StrapiGraphQLContext> & CustomOptions = {\n // Schema\n schema,\n\n // Validation\n validationRules: [depthLimit(config('depthLimit') as number) as any],\n\n // Errors\n formatError: formatGraphqlError,\n\n // Misc\n cors: undefined,\n uploads: false,\n bodyParserConfig: true,\n // send 400 http status instead of 200 for input validation errors\n status400ForVariableCoercionErrors: true,\n plugins: [landingPage, pluginAddRootQueryArgs],\n\n cache: 'bounded' as const,\n };\n\n const serverConfig = merge(\n defaultServerConfig,\n config('apolloServer')\n ) as ApolloServerOptions<StrapiGraphQLContext> & CustomOptions;\n\n // Create a new Apollo server\n const server = new ApolloServer(serverConfig);\n\n try {\n // server.start() must be called before using server.applyMiddleware()\n await server.start();\n } catch (error) {\n if (error instanceof Error) {\n strapi.log.error('Failed to start the Apollo server', error.message);\n }\n\n throw error;\n }\n\n // Create the route handlers for Strapi\n const handler: Core.MiddlewareHandler[] = [];\n\n // add cors middleware\n if (serverConfig.cors === false) {\n // Explicitly disabled - don't add middleware\n } else if (serverConfig.cors === undefined || serverConfig.cors === true) {\n // enable with defaults (backwards compatible)\n handler.push(cors());\n } else {\n // Custom options object\n handler.push(cors(serverConfig.cors));\n }\n\n // add koa bodyparser middleware\n if (isObject(serverConfig.bodyParserConfig)) {\n handler.push(bodyParser(serverConfig.bodyParserConfig));\n } else if (serverConfig.bodyParserConfig) {\n handler.push(bodyParser());\n } else {\n strapi.log.debug('Body parser has been disabled for Apollo server');\n }\n\n // add the Strapi auth middleware\n handler.push((ctx, next) => {\n ctx.state.route = {\n info: {\n // Indicate it's a content API route\n type: 'content-api',\n },\n };\n\n const isPlaygroundRequest =\n ctx.request.method === 'GET' &&\n ctx.request.url === path && // Matches the GraphQL endpoint\n strapi.plugin('graphql').service('utils').playground.isEnabled() && // Only allow if the Playground is enabled\n ctx.request.header.accept?.includes('text/html'); // Specific to Playground UI loading\n\n // Skip authentication for the GraphQL Playground UI\n if (isPlaygroundRequest) {\n return next();\n }\n\n return strapi.auth.authenticate(ctx, next);\n });\n\n // add the graphql server for koa\n handler.push(\n koaMiddleware<DefaultStateExtends, DefaultContextExtends>(server, {\n // Initialize loaders for this request.\n context: async ({ ctx }) => ({\n state: ctx.state,\n koaContext: ctx,\n }),\n })\n );\n\n // now that handlers are set up, add the graphql route to our apollo server\n strapi.server.routes([\n {\n method: 'ALL',\n path,\n handler,\n config: {\n auth: false,\n },\n },\n ]);\n\n // Register destroy behavior\n // We're doing it here instead of exposing a destroy method to the strapi-server.js\n // file since we need to have access to the ApolloServer instance\n strapi.plugin('graphql').destroy = async () => {\n await server.stop();\n };\n}\n"],"names":["merge","mergeWith","a","b","isArray","concat","determineLandingPage","strapi","config","plugin","utils","service","configLandingPage","isProduction","process","env","NODE_ENV","localLanding","log","debug","playground","setEnabled","ApolloServerPluginLandingPageLocalDefault","prodLanding","ApolloServerPluginLandingPageProductionDefault","userLanding","userFunction","result","playgroundAlways","undefined","warn","isFunction","bootstrap","schema","buildSchema","isEmpty","path","landingPage","pluginAddRootQueryArgs","requestDidStart","executionDidStart","willResolveField","source","args","contextValue","info","operation","fieldName","rootQueryArgs","_originField","defaultServerConfig","validationRules","depthLimit","formatError","formatGraphqlError","cors","uploads","bodyParserConfig","status400ForVariableCoercionErrors","plugins","cache","serverConfig","server","ApolloServer","start","error","Error","message","handler","push","isObject","bodyParser","ctx","next","state","route","type","isPlaygroundRequest","request","method","url","isEnabled","header","accept","includes","auth","authenticate","koaMiddleware","context","koaContext","routes","destroy","stop"],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { isEmpty, mergeWith, isArray, isObject, isFunction } from 'lodash/fp';\nimport { ApolloServer, type ApolloServerPlugin, type ApolloServerOptions } from '@apollo/server';\nimport {\n ApolloServerPluginLandingPageLocalDefault,\n ApolloServerPluginLandingPageProductionDefault,\n} from '@apollo/server/plugin/landingPage/default';\nimport { koaMiddleware } from '@as-integrations/koa';\nimport depthLimit from 'graphql-depth-limit';\nimport bodyParser from 'koa-bodyparser';\nimport cors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\nimport type { Options } from '@koa/cors';\nimport type { BaseContext, DefaultContextExtends, DefaultStateExtends } from 'koa';\n\nimport { formatGraphqlError } from './format-graphql-error';\n\nconst merge = mergeWith((a, b) => {\n if (isArray(a) && isArray(b)) {\n return a.concat(b);\n }\n});\n\ntype StrapiGraphQLContext = BaseContext & {\n rootQueryArgs?: Record<string, unknown>;\n};\n\nexport const determineLandingPage = (\n strapi: Core.Strapi\n): ApolloServerPlugin<StrapiGraphQLContext> => {\n const { config } = strapi.plugin('graphql');\n const utils = strapi.plugin('graphql').service('utils');\n\n /**\n * configLanding page may be one of the following:\n *\n * - true: always use \"playground\" even in production\n * - false: never show \"playground\" even in non-production\n * - undefined: default Apollo behavior (hide playground on production)\n * - a function that returns an Apollo plugin that implements renderLandingPage\n ** */\n const configLandingPage = config('landingPage');\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n const localLanding = () => {\n strapi.log.debug('Apollo landing page: local');\n utils.playground.setEnabled(true);\n return ApolloServerPluginLandingPageLocalDefault();\n };\n\n const prodLanding = () => {\n strapi.log.debug('Apollo landing page: production');\n utils.playground.setEnabled(false);\n return ApolloServerPluginLandingPageProductionDefault();\n };\n\n const userLanding = (userFunction: (strapi?: Core.Strapi) => ApolloServerPlugin | boolean) => {\n strapi.log.debug('Apollo landing page: from user-defined function...');\n const result = userFunction(strapi);\n if (result === true) {\n return localLanding();\n }\n if (result === false) {\n return prodLanding();\n }\n strapi.log.debug('Apollo landing page: user-defined');\n return result;\n };\n\n // DEPRECATED, remove in Strapi v6\n const playgroundAlways = config('playgroundAlways');\n if (playgroundAlways !== undefined) {\n strapi.log.warn(\n 'The graphql config playgroundAlways is deprecated. This will be removed in Strapi 6. Please use landingPage instead. '\n );\n }\n if (playgroundAlways === false) {\n strapi.log.warn(\n 'graphql config playgroundAlways:false has no effect, please use landingPage:false to disable Graphql Playground in all environments'\n );\n }\n\n if (playgroundAlways || configLandingPage === true) {\n return localLanding();\n }\n\n // if landing page has been disabled, use production\n if (configLandingPage === false) {\n return prodLanding();\n }\n\n // If user did not define any settings, use our defaults\n if (configLandingPage === undefined) {\n return isProduction ? prodLanding() : localLanding();\n }\n\n // if user provided a landing page function, return that\n if (isFunction(configLandingPage)) {\n return userLanding(configLandingPage);\n }\n\n // If no other setting could be found, default to production settings\n strapi.log.warn(\n 'Your Graphql landing page has been disabled because there is a problem with your Graphql settings'\n );\n return prodLanding();\n};\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n // Generate the GraphQL schema for the content API\n const schema = strapi.plugin('graphql').service('content-api').buildSchema();\n\n if (isEmpty(schema)) {\n strapi.log.warn('The GraphQL schema has not been generated because it is empty');\n\n return;\n }\n\n const { config } = strapi.plugin('graphql');\n\n const path: string = config('endpoint');\n\n const landingPage = determineLandingPage(strapi);\n /**\n * We need the arguments passed to the root query to be available in the association resolver\n * so we can forward those arguments along to any relations.\n *\n * In order to do that we are currently storing the arguments in context.\n * There is likely a better solution, but for now this is the simplest fix we could find.\n *\n * @see https://github.com/strapi/strapi/issues/23524\n */\n const pluginAddRootQueryArgs: ApolloServerPlugin<StrapiGraphQLContext> = {\n async requestDidStart() {\n return {\n async executionDidStart() {\n return {\n willResolveField({ source, args, contextValue, info }) {\n if (!source && info.operation.operation === 'query') {\n // Track which query field set the rootQueryArgs\n const fieldName = info.fieldName;\n // Set rootQueryArgs with the field name that originated it\n contextValue.rootQueryArgs = {\n ...args,\n _originField: fieldName, // Track which field set this\n };\n }\n },\n };\n },\n };\n },\n };\n\n type CustomOptions = {\n cors?: boolean | Options;\n uploads: boolean;\n bodyParserConfig: boolean;\n };\n\n const defaultServerConfig: ApolloServerOptions<StrapiGraphQLContext> & CustomOptions = {\n // Schema\n schema,\n\n // Validation\n validationRules: [depthLimit(config('depthLimit') as number) as any],\n\n // Errors\n formatError: formatGraphqlError,\n\n // Misc\n cors: undefined,\n uploads: false,\n bodyParserConfig: true,\n // send 400 http status instead of 200 for input validation errors\n status400ForVariableCoercionErrors: true,\n plugins: [landingPage, pluginAddRootQueryArgs],\n\n cache: 'bounded' as const,\n };\n\n const serverConfig = merge(\n defaultServerConfig,\n config('apolloServer')\n ) as ApolloServerOptions<StrapiGraphQLContext> & CustomOptions;\n\n // Create a new Apollo server\n const server = new ApolloServer(serverConfig);\n\n try {\n // server.start() must be called before using server.applyMiddleware()\n await server.start();\n } catch (error) {\n if (error instanceof Error) {\n strapi.log.error('Failed to start the Apollo server', error.message);\n }\n\n throw error;\n }\n\n // Create the route handlers for Strapi\n const handler: Core.MiddlewareHandler[] = [];\n\n // add cors middleware\n if (serverConfig.cors === false) {\n // Explicitly disabled - don't add middleware\n } else if (serverConfig.cors === undefined || serverConfig.cors === true) {\n // enable with defaults (backwards compatible)\n handler.push(cors());\n } else {\n // Custom options object\n handler.push(cors(serverConfig.cors));\n }\n\n // add koa bodyparser middleware\n if (isObject(serverConfig.bodyParserConfig)) {\n handler.push(bodyParser(serverConfig.bodyParserConfig));\n } else if (serverConfig.bodyParserConfig) {\n handler.push(bodyParser());\n } else {\n strapi.log.debug('Body parser has been disabled for Apollo server');\n }\n\n // add the Strapi auth middleware\n handler.push((ctx, next) => {\n ctx.state.route = {\n info: {\n // Indicate it's a content API route\n type: 'content-api',\n },\n };\n\n const isPlaygroundRequest =\n ctx.request.method === 'GET' &&\n ctx.request.url === path && // Matches the GraphQL endpoint\n strapi.plugin('graphql').service('utils').playground.isEnabled() && // Only allow if the Playground is enabled\n ctx.request.header.accept?.includes('text/html'); // Specific to Playground UI loading\n\n // Skip authentication for the GraphQL Playground UI\n if (isPlaygroundRequest) {\n return next();\n }\n\n return strapi.auth.authenticate(ctx, next);\n });\n\n // add the graphql server for koa\n handler.push(\n koaMiddleware<DefaultStateExtends, DefaultContextExtends>(server, {\n // Initialize loaders for this request.\n context: async ({ ctx }) => ({\n state: ctx.state,\n koaContext: ctx,\n }),\n })\n );\n\n // now that handlers are set up, add the graphql route to our apollo server\n strapi.server.routes([\n {\n method: 'ALL',\n path,\n handler,\n config: {\n auth: false,\n },\n },\n ]);\n\n // Register destroy behavior\n // We're doing it here instead of exposing a destroy method to the strapi-server.js\n // file since we need to have access to the ApolloServer instance\n strapi.plugin('graphql').destroy = async () => {\n await server.stop();\n };\n}\n"],"names":["merge","mergeWith","a","b","isArray","concat","determineLandingPage","strapi","config","plugin","utils","service","configLandingPage","isProduction","process","env","NODE_ENV","localLanding","log","debug","playground","setEnabled","ApolloServerPluginLandingPageLocalDefault","prodLanding","ApolloServerPluginLandingPageProductionDefault","userLanding","userFunction","result","playgroundAlways","undefined","warn","isFunction","bootstrap","schema","buildSchema","isEmpty","path","landingPage","pluginAddRootQueryArgs","requestDidStart","executionDidStart","willResolveField","source","args","contextValue","info","operation","fieldName","rootQueryArgs","_originField","defaultServerConfig","validationRules","depthLimit","formatError","formatGraphqlError","cors","uploads","bodyParserConfig","status400ForVariableCoercionErrors","plugins","cache","serverConfig","server","ApolloServer","start","error","Error","message","handler","push","isObject","bodyParser","ctx","next","state","route","type","isPlaygroundRequest","request","method","url","isEnabled","header","accept","includes","auth","authenticate","koaMiddleware","context","koaContext","routes","destroy","stop"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { isEmpty, mergeWith, isArray, isObject, isFunction } from 'lodash/fp';\nimport { ApolloServer, type ApolloServerPlugin, type ApolloServerOptions } from '@apollo/server';\nimport {\n ApolloServerPluginLandingPageLocalDefault,\n ApolloServerPluginLandingPageProductionDefault,\n} from '@apollo/server/plugin/landingPage/default';\nimport { koaMiddleware } from '@as-integrations/koa';\nimport depthLimit from 'graphql-depth-limit';\nimport bodyParser from 'koa-bodyparser';\nimport cors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\nimport type { Options } from '@koa/cors';\nimport type { BaseContext, DefaultContextExtends, DefaultStateExtends } from 'koa';\n\nimport { formatGraphqlError } from './format-graphql-error';\n\nconst merge = mergeWith((a, b) => {\n if (isArray(a) && isArray(b)) {\n return a.concat(b);\n }\n});\n\ntype StrapiGraphQLContext = BaseContext & {\n rootQueryArgs?: Record<string, unknown>;\n};\n\nexport const determineLandingPage = (\n strapi: Core.Strapi\n): ApolloServerPlugin<StrapiGraphQLContext> => {\n const { config } = strapi.plugin('graphql');\n const utils = strapi.plugin('graphql').service('utils');\n\n /**\n * configLanding page may be one of the following:\n *\n * - true: always use \"playground\" even in production\n * - false: never show \"playground\" even in non-production\n * - undefined: default Apollo behavior (hide playground on production)\n * - a function that returns an Apollo plugin that implements renderLandingPage\n ** */\n const configLandingPage = config('landingPage');\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n const localLanding = () => {\n strapi.log.debug('Apollo landing page: local');\n utils.playground.setEnabled(true);\n return ApolloServerPluginLandingPageLocalDefault();\n };\n\n const prodLanding = () => {\n strapi.log.debug('Apollo landing page: production');\n utils.playground.setEnabled(false);\n return ApolloServerPluginLandingPageProductionDefault();\n };\n\n const userLanding = (userFunction: (strapi?: Core.Strapi) => ApolloServerPlugin | boolean) => {\n strapi.log.debug('Apollo landing page: from user-defined function...');\n const result = userFunction(strapi);\n if (result === true) {\n return localLanding();\n }\n if (result === false) {\n return prodLanding();\n }\n strapi.log.debug('Apollo landing page: user-defined');\n return result;\n };\n\n // DEPRECATED, remove in Strapi v6\n const playgroundAlways = config('playgroundAlways');\n if (playgroundAlways !== undefined) {\n strapi.log.warn(\n 'The graphql config playgroundAlways is deprecated. This will be removed in Strapi 6. Please use landingPage instead. '\n );\n }\n if (playgroundAlways === false) {\n strapi.log.warn(\n 'graphql config playgroundAlways:false has no effect, please use landingPage:false to disable Graphql Playground in all environments'\n );\n }\n\n if (playgroundAlways || configLandingPage === true) {\n return localLanding();\n }\n\n // if landing page has been disabled, use production\n if (configLandingPage === false) {\n return prodLanding();\n }\n\n // If user did not define any settings, use our defaults\n if (configLandingPage === undefined) {\n return isProduction ? prodLanding() : localLanding();\n }\n\n // if user provided a landing page function, return that\n if (isFunction(configLandingPage)) {\n return userLanding(configLandingPage);\n }\n\n // If no other setting could be found, default to production settings\n strapi.log.warn(\n 'Your Graphql landing page has been disabled because there is a problem with your Graphql settings'\n );\n return prodLanding();\n};\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n // Generate the GraphQL schema for the content API\n const schema = strapi.plugin('graphql').service('content-api').buildSchema();\n\n if (isEmpty(schema)) {\n strapi.log.warn('The GraphQL schema has not been generated because it is empty');\n\n return;\n }\n\n const { config } = strapi.plugin('graphql');\n\n const path: string = config('endpoint');\n\n const landingPage = determineLandingPage(strapi);\n /**\n * We need the arguments passed to the root query to be available in the association resolver\n * so we can forward those arguments along to any relations.\n *\n * In order to do that we are currently storing the arguments in context.\n * There is likely a better solution, but for now this is the simplest fix we could find.\n *\n * @see https://github.com/strapi/strapi/issues/23524\n */\n const pluginAddRootQueryArgs: ApolloServerPlugin<StrapiGraphQLContext> = {\n async requestDidStart() {\n return {\n async executionDidStart() {\n return {\n willResolveField({ source, args, contextValue, info }) {\n if (!source && info.operation.operation === 'query') {\n // Track which query field set the rootQueryArgs\n const fieldName = info.fieldName;\n // Set rootQueryArgs with the field name that originated it\n contextValue.rootQueryArgs = {\n ...args,\n _originField: fieldName, // Track which field set this\n };\n }\n },\n };\n },\n };\n },\n };\n\n type CustomOptions = {\n cors?: boolean | Options;\n uploads: boolean;\n bodyParserConfig: boolean;\n };\n\n const defaultServerConfig: ApolloServerOptions<StrapiGraphQLContext> & CustomOptions = {\n // Schema\n schema,\n\n // Validation\n validationRules: [depthLimit(config('depthLimit') as number) as any],\n\n // Errors\n formatError: formatGraphqlError,\n\n // Misc\n cors: undefined,\n uploads: false,\n bodyParserConfig: true,\n // send 400 http status instead of 200 for input validation errors\n status400ForVariableCoercionErrors: true,\n plugins: [landingPage, pluginAddRootQueryArgs],\n\n cache: 'bounded' as const,\n };\n\n const serverConfig = merge(\n defaultServerConfig,\n config('apolloServer')\n ) as ApolloServerOptions<StrapiGraphQLContext> & CustomOptions;\n\n // Create a new Apollo server\n const server = new ApolloServer(serverConfig);\n\n try {\n // server.start() must be called before using server.applyMiddleware()\n await server.start();\n } catch (error) {\n if (error instanceof Error) {\n strapi.log.error('Failed to start the Apollo server', error.message);\n }\n\n throw error;\n }\n\n // Create the route handlers for Strapi\n const handler: Core.MiddlewareHandler[] = [];\n\n // add cors middleware\n if (serverConfig.cors === false) {\n // Explicitly disabled - don't add middleware\n } else if (serverConfig.cors === undefined || serverConfig.cors === true) {\n // enable with defaults (backwards compatible)\n handler.push(cors());\n } else {\n // Custom options object\n handler.push(cors(serverConfig.cors));\n }\n\n // add koa bodyparser middleware\n if (isObject(serverConfig.bodyParserConfig)) {\n handler.push(bodyParser(serverConfig.bodyParserConfig));\n } else if (serverConfig.bodyParserConfig) {\n handler.push(bodyParser());\n } else {\n strapi.log.debug('Body parser has been disabled for Apollo server');\n }\n\n // add the Strapi auth middleware\n handler.push((ctx, next) => {\n ctx.state.route = {\n info: {\n // Indicate it's a content API route\n type: 'content-api',\n },\n };\n\n const isPlaygroundRequest =\n ctx.request.method === 'GET' &&\n ctx.request.url === path && // Matches the GraphQL endpoint\n strapi.plugin('graphql').service('utils').playground.isEnabled() && // Only allow if the Playground is enabled\n ctx.request.header.accept?.includes('text/html'); // Specific to Playground UI loading\n\n // Skip authentication for the GraphQL Playground UI\n if (isPlaygroundRequest) {\n return next();\n }\n\n return strapi.auth.authenticate(ctx, next);\n });\n\n // add the graphql server for koa\n handler.push(\n koaMiddleware<DefaultStateExtends, DefaultContextExtends>(server, {\n // Initialize loaders for this request.\n context: async ({ ctx }) => ({\n state: ctx.state,\n koaContext: ctx,\n }),\n })\n );\n\n // now that handlers are set up, add the graphql route to our apollo server\n strapi.server.routes([\n {\n method: 'ALL',\n path,\n handler,\n config: {\n auth: false,\n },\n },\n ]);\n\n // Register destroy behavior\n // We're doing it here instead of exposing a destroy method to the strapi-server.js\n // file since we need to have access to the ApolloServer instance\n strapi.plugin('graphql').destroy = async () => {\n await server.stop();\n };\n}\n"],"names":["merge","mergeWith","a","b","isArray","concat","determineLandingPage","strapi","config","plugin","utils","service","configLandingPage","isProduction","process","env","NODE_ENV","localLanding","log","debug","playground","setEnabled","ApolloServerPluginLandingPageLocalDefault","prodLanding","ApolloServerPluginLandingPageProductionDefault","userLanding","userFunction","result","playgroundAlways","undefined","warn","isFunction","bootstrap","schema","buildSchema","isEmpty","path","landingPage","pluginAddRootQueryArgs","requestDidStart","executionDidStart","willResolveField","source","args","contextValue","info","operation","fieldName","rootQueryArgs","_originField","defaultServerConfig","validationRules","depthLimit","formatError","formatGraphqlError","cors","uploads","bodyParserConfig","status400ForVariableCoercionErrors","plugins","cache","serverConfig","server","ApolloServer","start","error","Error","message","handler","push","isObject","bodyParser","ctx","next","state","route","type","isPlaygroundRequest","request","method","url","isEnabled","header","accept","includes","auth","authenticate","koaMiddleware","context","koaContext","routes","destroy","stop"],"mappings":";;;;;;;;;AAiBA,MAAMA,KAAAA,GAAQC,SAAU,CAAA,CAACC,CAAGC,EAAAA,CAAAA,GAAAA;IAC1B,IAAIC,OAAAA,CAAQF,CAAME,CAAAA,IAAAA,OAAAA,CAAQD,CAAI,CAAA,EAAA;QAC5B,OAAOD,CAAAA,CAAEG,MAAM,CAACF,CAAAA,CAAAA;AAClB;AACF,CAAA,CAAA;AAMO,MAAMG,uBAAuB,CAClCC,MAAAA,GAAAA;AAEA,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAAC,SAAA,CAAA;AACjC,IAAA,MAAMC,QAAQH,MAAOE,CAAAA,MAAM,CAAC,SAAA,CAAA,CAAWE,OAAO,CAAC,OAAA,CAAA;AAE/C;;;;;;;SAQA,MAAMC,oBAAoBJ,MAAO,CAAA,aAAA,CAAA;AAEjC,IAAA,MAAMK,YAAeC,GAAAA,OAAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,YAAA;AAE9C,IAAA,MAAMC,YAAe,GAAA,IAAA;QACnBV,MAAOW,CAAAA,GAAG,CAACC,KAAK,CAAC,4BAAA,CAAA;QACjBT,KAAMU,CAAAA,UAAU,CAACC,UAAU,CAAC,IAAA,CAAA;QAC5B,OAAOC,yCAAAA,EAAAA;AACT,KAAA;AAEA,IAAA,MAAMC,WAAc,GAAA,IAAA;QAClBhB,MAAOW,CAAAA,GAAG,CAACC,KAAK,CAAC,iCAAA,CAAA;QACjBT,KAAMU,CAAAA,UAAU,CAACC,UAAU,CAAC,KAAA,CAAA;QAC5B,OAAOG,8CAAAA,EAAAA;AACT,KAAA;AAEA,IAAA,MAAMC,cAAc,CAACC,YAAAA,GAAAA;QACnBnB,MAAOW,CAAAA,GAAG,CAACC,KAAK,CAAC,oDAAA,CAAA;AACjB,QAAA,MAAMQ,SAASD,YAAanB,CAAAA,MAAAA,CAAAA;AAC5B,QAAA,IAAIoB,WAAW,IAAM,EAAA;YACnB,OAAOV,YAAAA,EAAAA;AACT;AACA,QAAA,IAAIU,WAAW,KAAO,EAAA;YACpB,OAAOJ,WAAAA,EAAAA;AACT;QACAhB,MAAOW,CAAAA,GAAG,CAACC,KAAK,CAAC,mCAAA,CAAA;QACjB,OAAOQ,MAAAA;AACT,KAAA;;AAGA,IAAA,MAAMC,mBAAmBpB,MAAO,CAAA,kBAAA,CAAA;AAChC,IAAA,IAAIoB,qBAAqBC,SAAW,EAAA;QAClCtB,MAAOW,CAAAA,GAAG,CAACY,IAAI,CACb,uHAAA,CAAA;AAEJ;AACA,IAAA,IAAIF,qBAAqB,KAAO,EAAA;QAC9BrB,MAAOW,CAAAA,GAAG,CAACY,IAAI,CACb,qIAAA,CAAA;AAEJ;IAEA,IAAIF,gBAAAA,IAAoBhB,sBAAsB,IAAM,EAAA;QAClD,OAAOK,YAAAA,EAAAA;AACT;;AAGA,IAAA,IAAIL,sBAAsB,KAAO,EAAA;QAC/B,OAAOW,WAAAA,EAAAA;AACT;;AAGA,IAAA,IAAIX,sBAAsBiB,SAAW,EAAA;AACnC,QAAA,OAAOhB,eAAeU,WAAgBN,EAAAA,GAAAA,YAAAA,EAAAA;AACxC;;AAGA,IAAA,IAAIc,WAAWnB,iBAAoB,CAAA,EAAA;AACjC,QAAA,OAAOa,WAAYb,CAAAA,iBAAAA,CAAAA;AACrB;;IAGAL,MAAOW,CAAAA,GAAG,CAACY,IAAI,CACb,mGAAA,CAAA;IAEF,OAAOP,WAAAA,EAAAA;AACT;AAEO,eAAeS,SAAAA,CAAU,EAAEzB,MAAM,EAA2B,EAAA;;IAEjE,MAAM0B,MAAAA,GAAS1B,OAAOE,MAAM,CAAC,WAAWE,OAAO,CAAC,eAAeuB,WAAW,EAAA;AAE1E,IAAA,IAAIC,QAAQF,MAAS,CAAA,EAAA;QACnB1B,MAAOW,CAAAA,GAAG,CAACY,IAAI,CAAC,+DAAA,CAAA;AAEhB,QAAA;AACF;AAEA,IAAA,MAAM,EAAEtB,MAAM,EAAE,GAAGD,MAAAA,CAAOE,MAAM,CAAC,SAAA,CAAA;AAEjC,IAAA,MAAM2B,OAAe5B,MAAO,CAAA,UAAA,CAAA;AAE5B,IAAA,MAAM6B,cAAc/B,oBAAqBC,CAAAA,MAAAA,CAAAA;AACzC;;;;;;;;AAQC,MACD,MAAM+B,sBAAmE,GAAA;QACvE,MAAMC,eAAAA,CAAAA,GAAAA;YACJ,OAAO;gBACL,MAAMC,iBAAAA,CAAAA,GAAAA;oBACJ,OAAO;wBACLC,gBAAiB,CAAA,CAAA,EAAEC,MAAM,EAAEC,IAAI,EAAEC,YAAY,EAAEC,IAAI,EAAE,EAAA;AACnD,4BAAA,IAAI,CAACH,MAAUG,IAAAA,IAAAA,CAAKC,SAAS,CAACA,SAAS,KAAK,OAAS,EAAA;;gCAEnD,MAAMC,SAAAA,GAAYF,KAAKE,SAAS;;AAEhCH,gCAAAA,YAAAA,CAAaI,aAAa,GAAG;AAC3B,oCAAA,GAAGL,IAAI;oCACPM,YAAcF,EAAAA;AAChB,iCAAA;AACF;AACF;AACF,qBAAA;AACF;AACF,aAAA;AACF;AACF,KAAA;AAQA,IAAA,MAAMG,mBAAiF,GAAA;;AAErFjB,QAAAA,MAAAA;;QAGAkB,eAAiB,EAAA;AAACC,YAAAA,UAAAA,CAAW5C,MAAO,CAAA,YAAA,CAAA;AAAgC,SAAA;;QAGpE6C,WAAaC,EAAAA,kBAAAA;;QAGbC,IAAM1B,EAAAA,SAAAA;QACN2B,OAAS,EAAA,KAAA;QACTC,gBAAkB,EAAA,IAAA;;QAElBC,kCAAoC,EAAA,IAAA;QACpCC,OAAS,EAAA;AAACtB,YAAAA,WAAAA;AAAaC,YAAAA;AAAuB,SAAA;QAE9CsB,KAAO,EAAA;AACT,KAAA;IAEA,MAAMC,YAAAA,GAAe7D,KACnBkD,CAAAA,mBAAAA,EACA1C,MAAO,CAAA,cAAA,CAAA,CAAA;;IAIT,MAAMsD,MAAAA,GAAS,IAAIC,YAAaF,CAAAA,YAAAA,CAAAA;IAEhC,IAAI;;AAEF,QAAA,MAAMC,OAAOE,KAAK,EAAA;AACpB,KAAA,CAAE,OAAOC,KAAO,EAAA;AACd,QAAA,IAAIA,iBAAiBC,KAAO,EAAA;AAC1B3D,YAAAA,MAAAA,CAAOW,GAAG,CAAC+C,KAAK,CAAC,mCAAA,EAAqCA,MAAME,OAAO,CAAA;AACrE;QAEA,MAAMF,KAAAA;AACR;;AAGA,IAAA,MAAMG,UAAoC,EAAE;;IAG5C,IAAIP,YAAAA,CAAaN,IAAI,KAAK,KAAO,EAAA,CAE1B,MAAA,IAAIM,aAAaN,IAAI,KAAK1B,aAAagC,YAAaN,CAAAA,IAAI,KAAK,IAAM,EAAA;;AAExEa,QAAAA,OAAAA,CAAQC,IAAI,CAACd,IAAAA,EAAAA,CAAAA;KACR,MAAA;;AAELa,QAAAA,OAAAA,CAAQC,IAAI,CAACd,IAAKM,CAAAA,YAAAA,CAAaN,IAAI,CAAA,CAAA;AACrC;;IAGA,IAAIe,QAAAA,CAAST,YAAaJ,CAAAA,gBAAgB,CAAG,EAAA;AAC3CW,QAAAA,OAAAA,CAAQC,IAAI,CAACE,UAAWV,CAAAA,YAAAA,CAAaJ,gBAAgB,CAAA,CAAA;KAChD,MAAA,IAAII,YAAaJ,CAAAA,gBAAgB,EAAE;AACxCW,QAAAA,OAAAA,CAAQC,IAAI,CAACE,UAAAA,EAAAA,CAAAA;KACR,MAAA;QACLhE,MAAOW,CAAAA,GAAG,CAACC,KAAK,CAAC,iDAAA,CAAA;AACnB;;IAGAiD,OAAQC,CAAAA,IAAI,CAAC,CAACG,GAAKC,EAAAA,IAAAA,GAAAA;QACjBD,GAAIE,CAAAA,KAAK,CAACC,KAAK,GAAG;YAChB9B,IAAM,EAAA;;gBAEJ+B,IAAM,EAAA;AACR;AACF,SAAA;AAEA,QAAA,MAAMC,mBACJL,GAAAA,GAAAA,CAAIM,OAAO,CAACC,MAAM,KAAK,KACvBP,IAAAA,GAAAA,CAAIM,OAAO,CAACE,GAAG,KAAK5C;QACpB7B,MAAOE,CAAAA,MAAM,CAAC,SAAA,CAAA,CAAWE,OAAO,CAAC,SAASS,UAAU,CAAC6D,SAAS,EAAA;QAC9DT,GAAIM,CAAAA,OAAO,CAACI,MAAM,CAACC,MAAM,EAAEC,QAAAA,CAAS;;AAGtC,QAAA,IAAIP,mBAAqB,EAAA;YACvB,OAAOJ,IAAAA,EAAAA;AACT;AAEA,QAAA,OAAOlE,MAAO8E,CAAAA,IAAI,CAACC,YAAY,CAACd,GAAKC,EAAAA,IAAAA,CAAAA;AACvC,KAAA,CAAA;;IAGAL,OAAQC,CAAAA,IAAI,CACVkB,aAAAA,CAA0DzB,MAAQ,EAAA;;AAEhE0B,QAAAA,OAAAA,EAAS,OAAO,EAAEhB,GAAG,EAAE,IAAM;AAC3BE,gBAAAA,KAAAA,EAAOF,IAAIE,KAAK;gBAChBe,UAAYjB,EAAAA;aACd;AACF,KAAA,CAAA,CAAA;;IAIFjE,MAAOuD,CAAAA,MAAM,CAAC4B,MAAM,CAAC;AACnB,QAAA;YACEX,MAAQ,EAAA,KAAA;AACR3C,YAAAA,IAAAA;AACAgC,YAAAA,OAAAA;YACA5D,MAAQ,EAAA;gBACN6E,IAAM,EAAA;AACR;AACF;AACD,KAAA,CAAA;;;;AAKD9E,IAAAA,MAAAA,CAAOE,MAAM,CAAC,SAAWkF,CAAAA,CAAAA,OAAO,GAAG,UAAA;AACjC,QAAA,MAAM7B,OAAO8B,IAAI,EAAA;AACnB,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { isEmpty, mergeWith, isArray, isObject, isFunction } from 'lodash/fp';\nimport { ApolloServer, type ApolloServerPlugin, type ApolloServerOptions } from '@apollo/server';\nimport {\n ApolloServerPluginLandingPageLocalDefault,\n ApolloServerPluginLandingPageProductionDefault,\n} from '@apollo/server/plugin/landingPage/default';\nimport { koaMiddleware } from '@as-integrations/koa';\nimport depthLimit from 'graphql-depth-limit';\nimport bodyParser from 'koa-bodyparser';\nimport cors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\nimport type { Options } from '@koa/cors';\nimport type { BaseContext, DefaultContextExtends, DefaultStateExtends } from 'koa';\n\nimport { formatGraphqlError } from './format-graphql-error';\n\nconst merge = mergeWith((a, b) => {\n if (isArray(a) && isArray(b)) {\n return a.concat(b);\n }\n});\n\ntype StrapiGraphQLContext = BaseContext & {\n rootQueryArgs?: Record<string, unknown>;\n};\n\nexport const determineLandingPage = (\n strapi: Core.Strapi\n): ApolloServerPlugin<StrapiGraphQLContext> => {\n const { config } = strapi.plugin('graphql');\n const utils = strapi.plugin('graphql').service('utils');\n\n /**\n * configLanding page may be one of the following:\n *\n * - true: always use \"playground\" even in production\n * - false: never show \"playground\" even in non-production\n * - undefined: default Apollo behavior (hide playground on production)\n * - a function that returns an Apollo plugin that implements renderLandingPage\n ** */\n const configLandingPage = config('landingPage');\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n const localLanding = () => {\n strapi.log.debug('Apollo landing page: local');\n utils.playground.setEnabled(true);\n return ApolloServerPluginLandingPageLocalDefault();\n };\n\n const prodLanding = () => {\n strapi.log.debug('Apollo landing page: production');\n utils.playground.setEnabled(false);\n return ApolloServerPluginLandingPageProductionDefault();\n };\n\n const userLanding = (userFunction: (strapi?: Core.Strapi) => ApolloServerPlugin | boolean) => {\n strapi.log.debug('Apollo landing page: from user-defined function...');\n const result = userFunction(strapi);\n if (result === true) {\n return localLanding();\n }\n if (result === false) {\n return prodLanding();\n }\n strapi.log.debug('Apollo landing page: user-defined');\n return result;\n };\n\n // DEPRECATED, remove in Strapi v6\n const playgroundAlways = config('playgroundAlways');\n if (playgroundAlways !== undefined) {\n strapi.log.warn(\n 'The graphql config playgroundAlways is deprecated. This will be removed in Strapi 6. Please use landingPage instead. '\n );\n }\n if (playgroundAlways === false) {\n strapi.log.warn(\n 'graphql config playgroundAlways:false has no effect, please use landingPage:false to disable Graphql Playground in all environments'\n );\n }\n\n if (playgroundAlways || configLandingPage === true) {\n return localLanding();\n }\n\n // if landing page has been disabled, use production\n if (configLandingPage === false) {\n return prodLanding();\n }\n\n // If user did not define any settings, use our defaults\n if (configLandingPage === undefined) {\n return isProduction ? prodLanding() : localLanding();\n }\n\n // if user provided a landing page function, return that\n if (isFunction(configLandingPage)) {\n return userLanding(configLandingPage);\n }\n\n // If no other setting could be found, default to production settings\n strapi.log.warn(\n 'Your Graphql landing page has been disabled because there is a problem with your Graphql settings'\n );\n return prodLanding();\n};\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n // Generate the GraphQL schema for the content API\n const schema = strapi.plugin('graphql').service('content-api').buildSchema();\n\n if (isEmpty(schema)) {\n strapi.log.warn('The GraphQL schema has not been generated because it is empty');\n\n return;\n }\n\n const { config } = strapi.plugin('graphql');\n\n const path: string = config('endpoint');\n\n const landingPage = determineLandingPage(strapi);\n /**\n * We need the arguments passed to the root query to be available in the association resolver\n * so we can forward those arguments along to any relations.\n *\n * In order to do that we are currently storing the arguments in context.\n * There is likely a better solution, but for now this is the simplest fix we could find.\n *\n * @see https://github.com/strapi/strapi/issues/23524\n */\n const pluginAddRootQueryArgs: ApolloServerPlugin<StrapiGraphQLContext> = {\n async requestDidStart() {\n return {\n async executionDidStart() {\n return {\n willResolveField({ source, args, contextValue, info }) {\n if (!source && info.operation.operation === 'query') {\n // Track which query field set the rootQueryArgs\n const fieldName = info.fieldName;\n // Set rootQueryArgs with the field name that originated it\n contextValue.rootQueryArgs = {\n ...args,\n _originField: fieldName, // Track which field set this\n };\n }\n },\n };\n },\n };\n },\n };\n\n type CustomOptions = {\n cors?: boolean | Options;\n uploads: boolean;\n bodyParserConfig: boolean;\n };\n\n const defaultServerConfig: ApolloServerOptions<StrapiGraphQLContext> & CustomOptions = {\n // Schema\n schema,\n\n // Validation\n validationRules: [depthLimit(config('depthLimit') as number) as any],\n\n // Errors\n formatError: formatGraphqlError,\n\n // Misc\n cors: undefined,\n uploads: false,\n bodyParserConfig: true,\n // send 400 http status instead of 200 for input validation errors\n status400ForVariableCoercionErrors: true,\n plugins: [landingPage, pluginAddRootQueryArgs],\n\n cache: 'bounded' as const,\n };\n\n const serverConfig = merge(\n defaultServerConfig,\n config('apolloServer')\n ) as ApolloServerOptions<StrapiGraphQLContext> & CustomOptions;\n\n // Create a new Apollo server\n const server = new ApolloServer(serverConfig);\n\n try {\n // server.start() must be called before using server.applyMiddleware()\n await server.start();\n } catch (error) {\n if (error instanceof Error) {\n strapi.log.error('Failed to start the Apollo server', error.message);\n }\n\n throw error;\n }\n\n // Create the route handlers for Strapi\n const handler: Core.MiddlewareHandler[] = [];\n\n // add cors middleware\n if (serverConfig.cors === false) {\n // Explicitly disabled - don't add middleware\n } else if (serverConfig.cors === undefined || serverConfig.cors === true) {\n // enable with defaults (backwards compatible)\n handler.push(cors());\n } else {\n // Custom options object\n handler.push(cors(serverConfig.cors));\n }\n\n // add koa bodyparser middleware\n if (isObject(serverConfig.bodyParserConfig)) {\n handler.push(bodyParser(serverConfig.bodyParserConfig));\n } else if (serverConfig.bodyParserConfig) {\n handler.push(bodyParser());\n } else {\n strapi.log.debug('Body parser has been disabled for Apollo server');\n }\n\n // add the Strapi auth middleware\n handler.push((ctx, next) => {\n ctx.state.route = {\n info: {\n // Indicate it's a content API route\n type: 'content-api',\n },\n };\n\n const isPlaygroundRequest =\n ctx.request.method === 'GET' &&\n ctx.request.url === path && // Matches the GraphQL endpoint\n strapi.plugin('graphql').service('utils').playground.isEnabled() && // Only allow if the Playground is enabled\n ctx.request.header.accept?.includes('text/html'); // Specific to Playground UI loading\n\n // Skip authentication for the GraphQL Playground UI\n if (isPlaygroundRequest) {\n return next();\n }\n\n return strapi.auth.authenticate(ctx, next);\n });\n\n // add the graphql server for koa\n handler.push(\n koaMiddleware<DefaultStateExtends, DefaultContextExtends>(server, {\n // Initialize loaders for this request.\n context: async ({ ctx }) => ({\n state: ctx.state,\n koaContext: ctx,\n }),\n })\n );\n\n // now that handlers are set up, add the graphql route to our apollo server\n strapi.server.routes([\n {\n method: 'ALL',\n path,\n handler,\n config: {\n auth: false,\n },\n },\n ]);\n\n // Register destroy behavior\n // We're doing it here instead of exposing a destroy method to the strapi-server.js\n // file since we need to have access to the ApolloServer instance\n strapi.plugin('graphql').destroy = async () => {\n await server.stop();\n };\n}\n"],"names":["merge","mergeWith","a","b","isArray","concat","determineLandingPage","strapi","config","plugin","utils","service","configLandingPage","isProduction","process","env","NODE_ENV","localLanding","log","debug","playground","setEnabled","ApolloServerPluginLandingPageLocalDefault","prodLanding","ApolloServerPluginLandingPageProductionDefault","userLanding","userFunction","result","playgroundAlways","undefined","warn","isFunction","bootstrap","schema","buildSchema","isEmpty","path","landingPage","pluginAddRootQueryArgs","requestDidStart","executionDidStart","willResolveField","source","args","contextValue","info","operation","fieldName","rootQueryArgs","_originField","defaultServerConfig","validationRules","depthLimit","formatError","formatGraphqlError","cors","uploads","bodyParserConfig","status400ForVariableCoercionErrors","plugins","cache","serverConfig","server","ApolloServer","start","error","Error","message","handler","push","isObject","bodyParser","ctx","next","state","route","type","isPlaygroundRequest","request","method","url","isEnabled","header","accept","includes","auth","authenticate","koaMiddleware","context","koaContext","routes","destroy","stop"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"default-config.js","sources":["../../../server/src/config/default-config.ts"],"sourcesContent":["export default {\n shadowCRUD: true,\n endpoint: '/graphql',\n subscriptions: false,\n maxLimit: -1,\n apolloServer: {},\n v4CompatibilityMode: process.env.STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE ?? false,\n};\n"],"names":["shadowCRUD","endpoint","subscriptions","maxLimit","apolloServer","v4CompatibilityMode","process","env","STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE"],"mappings":";;AAAA,oBAAe;IACbA,UAAY,EAAA,IAAA;IACZC,QAAU,EAAA,UAAA;IACVC,aAAe,EAAA,KAAA;AACfC,IAAAA,QAAAA,EAAU,CAAC,CAAA;AACXC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,mBAAAA,EAAqBC,OAAQC,CAAAA,GAAG,CAACC,oCAAoC,IAAI;AAC3E,CAAE;;;;"}
1
+ {"version":3,"file":"default-config.js","sources":["../../../server/src/config/default-config.ts"],"sourcesContent":["export default {\n shadowCRUD: true,\n endpoint: '/graphql',\n subscriptions: false,\n maxLimit: -1,\n apolloServer: {},\n v4CompatibilityMode: process.env.STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE ?? false,\n};\n"],"names":["shadowCRUD","endpoint","subscriptions","maxLimit","apolloServer","v4CompatibilityMode","process","env","STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE"],"mappings":";;AAAA,oBAAe;IACbA,UAAAA,EAAY,IAAA;IACZC,QAAAA,EAAU,UAAA;IACVC,aAAAA,EAAe,KAAA;AACfC,IAAAA,QAAAA,EAAU,EAAC;AACXC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,mBAAAA,EAAqBC,OAAAA,CAAQC,GAAG,CAACC,oCAAoC,IAAI;AAC3E,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"default-config.mjs","sources":["../../../server/src/config/default-config.ts"],"sourcesContent":["export default {\n shadowCRUD: true,\n endpoint: '/graphql',\n subscriptions: false,\n maxLimit: -1,\n apolloServer: {},\n v4CompatibilityMode: process.env.STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE ?? false,\n};\n"],"names":["shadowCRUD","endpoint","subscriptions","maxLimit","apolloServer","v4CompatibilityMode","process","env","STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE"],"mappings":"AAAA,oBAAe;IACbA,UAAY,EAAA,IAAA;IACZC,QAAU,EAAA,UAAA;IACVC,aAAe,EAAA,KAAA;AACfC,IAAAA,QAAAA,EAAU,CAAC,CAAA;AACXC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,mBAAAA,EAAqBC,OAAQC,CAAAA,GAAG,CAACC,oCAAoC,IAAI;AAC3E,CAAE;;;;"}
1
+ {"version":3,"file":"default-config.mjs","sources":["../../../server/src/config/default-config.ts"],"sourcesContent":["export default {\n shadowCRUD: true,\n endpoint: '/graphql',\n subscriptions: false,\n maxLimit: -1,\n apolloServer: {},\n v4CompatibilityMode: process.env.STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE ?? false,\n};\n"],"names":["shadowCRUD","endpoint","subscriptions","maxLimit","apolloServer","v4CompatibilityMode","process","env","STRAPI_GRAPHQL_V4_COMPATIBILITY_MODE"],"mappings":"AAAA,oBAAe;IACbA,UAAAA,EAAY,IAAA;IACZC,QAAAA,EAAU,UAAA;IACVC,aAAAA,EAAe,KAAA;AACfC,IAAAA,QAAAA,EAAU,EAAC;AACXC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,mBAAAA,EAAqBC,OAAAA,CAAQC,GAAG,CAACC,oCAAoC,IAAI;AAC3E,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/config/index.ts"],"sourcesContent":["import defaultConfig from './default-config';\n\nexport const config = {\n default: defaultConfig,\n};\n"],"names":["config","default","defaultConfig"],"mappings":";;;;MAEaA,MAAS,GAAA;IACpBC,OAASC,EAAAA;AACX;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/config/index.ts"],"sourcesContent":["import defaultConfig from './default-config';\n\nexport const config = {\n default: defaultConfig,\n};\n"],"names":["config","default","defaultConfig"],"mappings":";;;;MAEaA,MAAAA,GAAS;IACpBC,OAAAA,EAASC;AACX;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/config/index.ts"],"sourcesContent":["import defaultConfig from './default-config';\n\nexport const config = {\n default: defaultConfig,\n};\n"],"names":["config","default","defaultConfig"],"mappings":";;MAEaA,MAAS,GAAA;IACpBC,OAASC,EAAAA;AACX;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/config/index.ts"],"sourcesContent":["import defaultConfig from './default-config';\n\nexport const config = {\n default: defaultConfig,\n};\n"],"names":["config","default","defaultConfig"],"mappings":";;MAEaA,MAAAA,GAAS;IACpBC,OAAAA,EAASC;AACX;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"format-graphql-error.js","sources":["../../server/src/format-graphql-error.ts"],"sourcesContent":["import { toUpper, snakeCase, pick, isEmpty } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport { unwrapResolverError } from '@apollo/server/errors';\nimport { GraphQLError, type GraphQLFormattedError } from 'graphql';\n\nconst { HttpError, ForbiddenError, UnauthorizedError, ApplicationError, ValidationError } = errors;\n\nconst formatToCode = (name: string) => `STRAPI_${toUpper(snakeCase(name))}`;\nconst formatErrorToExtension = (error: any) => ({\n error: pick(['name', 'message', 'details'])(error),\n});\n\nfunction createFormattedError(\n formattedError: GraphQLFormattedError,\n message: string,\n code: string,\n originalError: unknown\n) {\n const options = {\n ...formattedError,\n extensions: {\n ...formattedError.extensions,\n ...formatErrorToExtension(originalError),\n code,\n },\n };\n\n return new GraphQLError(message, options);\n}\n\n/**\n * The handler for Apollo Server v4's formatError config option\n *\n * Intercepts specific Strapi error types to send custom error response codes in the GraphQL response\n */\nexport function formatGraphqlError(formattedError: GraphQLFormattedError, error: unknown) {\n const originalError = unwrapResolverError(error);\n\n // If this error doesn't have an associated originalError, it\n if (isEmpty(originalError)) {\n return formattedError;\n }\n\n const { message = '', name = 'UNKNOWN' } = originalError as Error;\n\n if (originalError instanceof ForbiddenError || originalError instanceof UnauthorizedError) {\n return createFormattedError(formattedError, message, 'FORBIDDEN', originalError);\n }\n\n if (originalError instanceof ValidationError) {\n return createFormattedError(formattedError, message, 'BAD_USER_INPUT', originalError);\n }\n\n if (originalError instanceof ApplicationError || originalError instanceof HttpError) {\n const errorName = formatToCode(name);\n return createFormattedError(formattedError, message, errorName, originalError);\n }\n\n if (originalError instanceof GraphQLError) {\n return formattedError;\n }\n\n // else if originalError doesn't appear to be from Strapi or GraphQL..\n\n // Log the error\n strapi.log.error(originalError);\n\n // Create a generic 500 to send so we don't risk leaking any data\n return createFormattedError(\n new GraphQLError('Internal Server Error'),\n 'Internal Server Error',\n 'INTERNAL_SERVER_ERROR',\n originalError\n );\n}\n"],"names":["HttpError","ForbiddenError","UnauthorizedError","ApplicationError","ValidationError","errors","formatToCode","name","toUpper","snakeCase","formatErrorToExtension","error","pick","createFormattedError","formattedError","message","code","originalError","options","extensions","GraphQLError","formatGraphqlError","unwrapResolverError","isEmpty","errorName","strapi","log"],"mappings":";;;;;;;AAKA,MAAM,EAAEA,SAAS,EAAEC,cAAc,EAAEC,iBAAiB,EAAEC,gBAAgB,EAAEC,eAAe,EAAE,GAAGC,YAAAA;AAE5F,MAAMC,YAAAA,GAAe,CAACC,IAAiB,GAAA,CAAC,OAAO,EAAEC,UAAAA,CAAQC,aAAUF,IAAQ,CAAA,CAAA,CAAA,CAAA;AAC3E,MAAMG,sBAAAA,GAAyB,CAACC,KAAAA,IAAgB;AAC9CA,QAAAA,KAAAA,EAAOC,OAAK,CAAA;AAAC,YAAA,MAAA;AAAQ,YAAA,SAAA;AAAW,YAAA;SAAU,CAAED,CAAAA,KAAAA;KAC9C,CAAA;AAEA,SAASE,qBACPC,cAAqC,EACrCC,OAAe,EACfC,IAAY,EACZC,aAAsB,EAAA;AAEtB,IAAA,MAAMC,OAAU,GAAA;AACd,QAAA,GAAGJ,cAAc;QACjBK,UAAY,EAAA;AACV,YAAA,GAAGL,eAAeK,UAAU;AAC5B,YAAA,GAAGT,uBAAuBO,aAAc,CAAA;AACxCD,YAAAA;AACF;AACF,KAAA;IAEA,OAAO,IAAII,qBAAaL,OAASG,EAAAA,OAAAA,CAAAA;AACnC;AAEA;;;;AAIC,IACM,SAASG,kBAAmBP,CAAAA,cAAqC,EAAEH,KAAc,EAAA;AACtF,IAAA,MAAMM,gBAAgBK,0BAAoBX,CAAAA,KAAAA,CAAAA;;AAG1C,IAAA,IAAIY,WAAQN,aAAgB,CAAA,EAAA;QAC1B,OAAOH,cAAAA;AACT;AAEA,IAAA,MAAM,EAAEC,OAAU,GAAA,EAAE,EAAER,IAAO,GAAA,SAAS,EAAE,GAAGU,aAAAA;IAE3C,IAAIA,aAAAA,YAAyBhB,cAAkBgB,IAAAA,aAAAA,YAAyBf,iBAAmB,EAAA;QACzF,OAAOW,oBAAAA,CAAqBC,cAAgBC,EAAAA,OAAAA,EAAS,WAAaE,EAAAA,aAAAA,CAAAA;AACpE;AAEA,IAAA,IAAIA,yBAAyBb,eAAiB,EAAA;QAC5C,OAAOS,oBAAAA,CAAqBC,cAAgBC,EAAAA,OAAAA,EAAS,gBAAkBE,EAAAA,aAAAA,CAAAA;AACzE;IAEA,IAAIA,aAAAA,YAAyBd,gBAAoBc,IAAAA,aAAAA,YAAyBjB,SAAW,EAAA;AACnF,QAAA,MAAMwB,YAAYlB,YAAaC,CAAAA,IAAAA,CAAAA;QAC/B,OAAOM,oBAAAA,CAAqBC,cAAgBC,EAAAA,OAAAA,EAASS,SAAWP,EAAAA,aAAAA,CAAAA;AAClE;AAEA,IAAA,IAAIA,yBAAyBG,oBAAc,EAAA;QACzC,OAAON,cAAAA;AACT;;;IAKAW,MAAOC,CAAAA,GAAG,CAACf,KAAK,CAACM,aAAAA,CAAAA;;AAGjB,IAAA,OAAOJ,oBACL,CAAA,IAAIO,oBAAa,CAAA,uBAAA,CAAA,EACjB,yBACA,uBACAH,EAAAA,aAAAA,CAAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"format-graphql-error.js","sources":["../../server/src/format-graphql-error.ts"],"sourcesContent":["import { toUpper, snakeCase, pick, isEmpty } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport { unwrapResolverError } from '@apollo/server/errors';\nimport { GraphQLError, type GraphQLFormattedError } from 'graphql';\n\nconst { HttpError, ForbiddenError, UnauthorizedError, ApplicationError, ValidationError } = errors;\n\nconst formatToCode = (name: string) => `STRAPI_${toUpper(snakeCase(name))}`;\nconst formatErrorToExtension = (error: any) => ({\n error: pick(['name', 'message', 'details'])(error),\n});\n\nfunction createFormattedError(\n formattedError: GraphQLFormattedError,\n message: string,\n code: string,\n originalError: unknown\n) {\n const options = {\n ...formattedError,\n extensions: {\n ...formattedError.extensions,\n ...formatErrorToExtension(originalError),\n code,\n },\n };\n\n return new GraphQLError(message, options);\n}\n\n/**\n * The handler for Apollo Server v4's formatError config option\n *\n * Intercepts specific Strapi error types to send custom error response codes in the GraphQL response\n */\nexport function formatGraphqlError(formattedError: GraphQLFormattedError, error: unknown) {\n const originalError = unwrapResolverError(error);\n\n // If this error doesn't have an associated originalError, it\n if (isEmpty(originalError)) {\n return formattedError;\n }\n\n const { message = '', name = 'UNKNOWN' } = originalError as Error;\n\n if (originalError instanceof ForbiddenError || originalError instanceof UnauthorizedError) {\n return createFormattedError(formattedError, message, 'FORBIDDEN', originalError);\n }\n\n if (originalError instanceof ValidationError) {\n return createFormattedError(formattedError, message, 'BAD_USER_INPUT', originalError);\n }\n\n if (originalError instanceof ApplicationError || originalError instanceof HttpError) {\n const errorName = formatToCode(name);\n return createFormattedError(formattedError, message, errorName, originalError);\n }\n\n if (originalError instanceof GraphQLError) {\n return formattedError;\n }\n\n // else if originalError doesn't appear to be from Strapi or GraphQL..\n\n // Log the error\n strapi.log.error(originalError);\n\n // Create a generic 500 to send so we don't risk leaking any data\n return createFormattedError(\n new GraphQLError('Internal Server Error'),\n 'Internal Server Error',\n 'INTERNAL_SERVER_ERROR',\n originalError\n );\n}\n"],"names":["HttpError","ForbiddenError","UnauthorizedError","ApplicationError","ValidationError","errors","formatToCode","name","toUpper","snakeCase","formatErrorToExtension","error","pick","createFormattedError","formattedError","message","code","originalError","options","extensions","GraphQLError","formatGraphqlError","unwrapResolverError","isEmpty","errorName","strapi","log"],"mappings":";;;;;;;AAKA,MAAM,EAAEA,SAAS,EAAEC,cAAc,EAAEC,iBAAiB,EAAEC,gBAAgB,EAAEC,eAAe,EAAE,GAAGC,YAAAA;AAE5F,MAAMC,YAAAA,GAAe,CAACC,IAAAA,GAAiB,CAAC,OAAO,EAAEC,UAAAA,CAAQC,aAAUF,IAAAA,CAAAA,CAAAA,CAAAA,CAAQ;AAC3E,MAAMG,sBAAAA,GAAyB,CAACC,KAAAA,IAAgB;AAC9CA,QAAAA,KAAAA,EAAOC,OAAAA,CAAK;AAAC,YAAA,MAAA;AAAQ,YAAA,SAAA;AAAW,YAAA;SAAU,CAAA,CAAED,KAAAA;KAC9C,CAAA;AAEA,SAASE,qBACPC,cAAqC,EACrCC,OAAe,EACfC,IAAY,EACZC,aAAsB,EAAA;AAEtB,IAAA,MAAMC,OAAAA,GAAU;AACd,QAAA,GAAGJ,cAAc;QACjBK,UAAAA,EAAY;AACV,YAAA,GAAGL,eAAeK,UAAU;AAC5B,YAAA,GAAGT,uBAAuBO,aAAAA,CAAc;AACxCD,YAAAA;AACF;AACF,KAAA;IAEA,OAAO,IAAII,qBAAaL,OAAAA,EAASG,OAAAA,CAAAA;AACnC;AAEA;;;;AAIC,IACM,SAASG,kBAAAA,CAAmBP,cAAqC,EAAEH,KAAc,EAAA;AACtF,IAAA,MAAMM,gBAAgBK,0BAAAA,CAAoBX,KAAAA,CAAAA;;AAG1C,IAAA,IAAIY,WAAQN,aAAAA,CAAAA,EAAgB;QAC1B,OAAOH,cAAAA;AACT,IAAA;AAEA,IAAA,MAAM,EAAEC,OAAAA,GAAU,EAAE,EAAER,IAAAA,GAAO,SAAS,EAAE,GAAGU,aAAAA;IAE3C,IAAIA,aAAAA,YAAyBhB,cAAAA,IAAkBgB,aAAAA,YAAyBf,iBAAAA,EAAmB;QACzF,OAAOW,oBAAAA,CAAqBC,cAAAA,EAAgBC,OAAAA,EAAS,WAAA,EAAaE,aAAAA,CAAAA;AACpE,IAAA;AAEA,IAAA,IAAIA,yBAAyBb,eAAAA,EAAiB;QAC5C,OAAOS,oBAAAA,CAAqBC,cAAAA,EAAgBC,OAAAA,EAAS,gBAAA,EAAkBE,aAAAA,CAAAA;AACzE,IAAA;IAEA,IAAIA,aAAAA,YAAyBd,gBAAAA,IAAoBc,aAAAA,YAAyBjB,SAAAA,EAAW;AACnF,QAAA,MAAMwB,YAAYlB,YAAAA,CAAaC,IAAAA,CAAAA;QAC/B,OAAOM,oBAAAA,CAAqBC,cAAAA,EAAgBC,OAAAA,EAASS,SAAAA,EAAWP,aAAAA,CAAAA;AAClE,IAAA;AAEA,IAAA,IAAIA,yBAAyBG,oBAAAA,EAAc;QACzC,OAAON,cAAAA;AACT,IAAA;;;IAKAW,MAAAA,CAAOC,GAAG,CAACf,KAAK,CAACM,aAAAA,CAAAA;;AAGjB,IAAA,OAAOJ,oBAAAA,CACL,IAAIO,oBAAAA,CAAa,uBAAA,CAAA,EACjB,yBACA,uBAAA,EACAH,aAAAA,CAAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"format-graphql-error.mjs","sources":["../../server/src/format-graphql-error.ts"],"sourcesContent":["import { toUpper, snakeCase, pick, isEmpty } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport { unwrapResolverError } from '@apollo/server/errors';\nimport { GraphQLError, type GraphQLFormattedError } from 'graphql';\n\nconst { HttpError, ForbiddenError, UnauthorizedError, ApplicationError, ValidationError } = errors;\n\nconst formatToCode = (name: string) => `STRAPI_${toUpper(snakeCase(name))}`;\nconst formatErrorToExtension = (error: any) => ({\n error: pick(['name', 'message', 'details'])(error),\n});\n\nfunction createFormattedError(\n formattedError: GraphQLFormattedError,\n message: string,\n code: string,\n originalError: unknown\n) {\n const options = {\n ...formattedError,\n extensions: {\n ...formattedError.extensions,\n ...formatErrorToExtension(originalError),\n code,\n },\n };\n\n return new GraphQLError(message, options);\n}\n\n/**\n * The handler for Apollo Server v4's formatError config option\n *\n * Intercepts specific Strapi error types to send custom error response codes in the GraphQL response\n */\nexport function formatGraphqlError(formattedError: GraphQLFormattedError, error: unknown) {\n const originalError = unwrapResolverError(error);\n\n // If this error doesn't have an associated originalError, it\n if (isEmpty(originalError)) {\n return formattedError;\n }\n\n const { message = '', name = 'UNKNOWN' } = originalError as Error;\n\n if (originalError instanceof ForbiddenError || originalError instanceof UnauthorizedError) {\n return createFormattedError(formattedError, message, 'FORBIDDEN', originalError);\n }\n\n if (originalError instanceof ValidationError) {\n return createFormattedError(formattedError, message, 'BAD_USER_INPUT', originalError);\n }\n\n if (originalError instanceof ApplicationError || originalError instanceof HttpError) {\n const errorName = formatToCode(name);\n return createFormattedError(formattedError, message, errorName, originalError);\n }\n\n if (originalError instanceof GraphQLError) {\n return formattedError;\n }\n\n // else if originalError doesn't appear to be from Strapi or GraphQL..\n\n // Log the error\n strapi.log.error(originalError);\n\n // Create a generic 500 to send so we don't risk leaking any data\n return createFormattedError(\n new GraphQLError('Internal Server Error'),\n 'Internal Server Error',\n 'INTERNAL_SERVER_ERROR',\n originalError\n );\n}\n"],"names":["HttpError","ForbiddenError","UnauthorizedError","ApplicationError","ValidationError","errors","formatToCode","name","toUpper","snakeCase","formatErrorToExtension","error","pick","createFormattedError","formattedError","message","code","originalError","options","extensions","GraphQLError","formatGraphqlError","unwrapResolverError","isEmpty","errorName","strapi","log"],"mappings":";;;;;AAKA,MAAM,EAAEA,SAAS,EAAEC,cAAc,EAAEC,iBAAiB,EAAEC,gBAAgB,EAAEC,eAAe,EAAE,GAAGC,MAAAA;AAE5F,MAAMC,YAAAA,GAAe,CAACC,IAAiB,GAAA,CAAC,OAAO,EAAEC,OAAAA,CAAQC,UAAUF,IAAQ,CAAA,CAAA,CAAA,CAAA;AAC3E,MAAMG,sBAAAA,GAAyB,CAACC,KAAAA,IAAgB;AAC9CA,QAAAA,KAAAA,EAAOC,IAAK,CAAA;AAAC,YAAA,MAAA;AAAQ,YAAA,SAAA;AAAW,YAAA;SAAU,CAAED,CAAAA,KAAAA;KAC9C,CAAA;AAEA,SAASE,qBACPC,cAAqC,EACrCC,OAAe,EACfC,IAAY,EACZC,aAAsB,EAAA;AAEtB,IAAA,MAAMC,OAAU,GAAA;AACd,QAAA,GAAGJ,cAAc;QACjBK,UAAY,EAAA;AACV,YAAA,GAAGL,eAAeK,UAAU;AAC5B,YAAA,GAAGT,uBAAuBO,aAAc,CAAA;AACxCD,YAAAA;AACF;AACF,KAAA;IAEA,OAAO,IAAII,aAAaL,OAASG,EAAAA,OAAAA,CAAAA;AACnC;AAEA;;;;AAIC,IACM,SAASG,kBAAmBP,CAAAA,cAAqC,EAAEH,KAAc,EAAA;AACtF,IAAA,MAAMM,gBAAgBK,mBAAoBX,CAAAA,KAAAA,CAAAA;;AAG1C,IAAA,IAAIY,QAAQN,aAAgB,CAAA,EAAA;QAC1B,OAAOH,cAAAA;AACT;AAEA,IAAA,MAAM,EAAEC,OAAU,GAAA,EAAE,EAAER,IAAO,GAAA,SAAS,EAAE,GAAGU,aAAAA;IAE3C,IAAIA,aAAAA,YAAyBhB,cAAkBgB,IAAAA,aAAAA,YAAyBf,iBAAmB,EAAA;QACzF,OAAOW,oBAAAA,CAAqBC,cAAgBC,EAAAA,OAAAA,EAAS,WAAaE,EAAAA,aAAAA,CAAAA;AACpE;AAEA,IAAA,IAAIA,yBAAyBb,eAAiB,EAAA;QAC5C,OAAOS,oBAAAA,CAAqBC,cAAgBC,EAAAA,OAAAA,EAAS,gBAAkBE,EAAAA,aAAAA,CAAAA;AACzE;IAEA,IAAIA,aAAAA,YAAyBd,gBAAoBc,IAAAA,aAAAA,YAAyBjB,SAAW,EAAA;AACnF,QAAA,MAAMwB,YAAYlB,YAAaC,CAAAA,IAAAA,CAAAA;QAC/B,OAAOM,oBAAAA,CAAqBC,cAAgBC,EAAAA,OAAAA,EAASS,SAAWP,EAAAA,aAAAA,CAAAA;AAClE;AAEA,IAAA,IAAIA,yBAAyBG,YAAc,EAAA;QACzC,OAAON,cAAAA;AACT;;;IAKAW,MAAOC,CAAAA,GAAG,CAACf,KAAK,CAACM,aAAAA,CAAAA;;AAGjB,IAAA,OAAOJ,oBACL,CAAA,IAAIO,YAAa,CAAA,uBAAA,CAAA,EACjB,yBACA,uBACAH,EAAAA,aAAAA,CAAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"format-graphql-error.mjs","sources":["../../server/src/format-graphql-error.ts"],"sourcesContent":["import { toUpper, snakeCase, pick, isEmpty } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\nimport { unwrapResolverError } from '@apollo/server/errors';\nimport { GraphQLError, type GraphQLFormattedError } from 'graphql';\n\nconst { HttpError, ForbiddenError, UnauthorizedError, ApplicationError, ValidationError } = errors;\n\nconst formatToCode = (name: string) => `STRAPI_${toUpper(snakeCase(name))}`;\nconst formatErrorToExtension = (error: any) => ({\n error: pick(['name', 'message', 'details'])(error),\n});\n\nfunction createFormattedError(\n formattedError: GraphQLFormattedError,\n message: string,\n code: string,\n originalError: unknown\n) {\n const options = {\n ...formattedError,\n extensions: {\n ...formattedError.extensions,\n ...formatErrorToExtension(originalError),\n code,\n },\n };\n\n return new GraphQLError(message, options);\n}\n\n/**\n * The handler for Apollo Server v4's formatError config option\n *\n * Intercepts specific Strapi error types to send custom error response codes in the GraphQL response\n */\nexport function formatGraphqlError(formattedError: GraphQLFormattedError, error: unknown) {\n const originalError = unwrapResolverError(error);\n\n // If this error doesn't have an associated originalError, it\n if (isEmpty(originalError)) {\n return formattedError;\n }\n\n const { message = '', name = 'UNKNOWN' } = originalError as Error;\n\n if (originalError instanceof ForbiddenError || originalError instanceof UnauthorizedError) {\n return createFormattedError(formattedError, message, 'FORBIDDEN', originalError);\n }\n\n if (originalError instanceof ValidationError) {\n return createFormattedError(formattedError, message, 'BAD_USER_INPUT', originalError);\n }\n\n if (originalError instanceof ApplicationError || originalError instanceof HttpError) {\n const errorName = formatToCode(name);\n return createFormattedError(formattedError, message, errorName, originalError);\n }\n\n if (originalError instanceof GraphQLError) {\n return formattedError;\n }\n\n // else if originalError doesn't appear to be from Strapi or GraphQL..\n\n // Log the error\n strapi.log.error(originalError);\n\n // Create a generic 500 to send so we don't risk leaking any data\n return createFormattedError(\n new GraphQLError('Internal Server Error'),\n 'Internal Server Error',\n 'INTERNAL_SERVER_ERROR',\n originalError\n );\n}\n"],"names":["HttpError","ForbiddenError","UnauthorizedError","ApplicationError","ValidationError","errors","formatToCode","name","toUpper","snakeCase","formatErrorToExtension","error","pick","createFormattedError","formattedError","message","code","originalError","options","extensions","GraphQLError","formatGraphqlError","unwrapResolverError","isEmpty","errorName","strapi","log"],"mappings":";;;;;AAKA,MAAM,EAAEA,SAAS,EAAEC,cAAc,EAAEC,iBAAiB,EAAEC,gBAAgB,EAAEC,eAAe,EAAE,GAAGC,MAAAA;AAE5F,MAAMC,YAAAA,GAAe,CAACC,IAAAA,GAAiB,CAAC,OAAO,EAAEC,OAAAA,CAAQC,UAAUF,IAAAA,CAAAA,CAAAA,CAAAA,CAAQ;AAC3E,MAAMG,sBAAAA,GAAyB,CAACC,KAAAA,IAAgB;AAC9CA,QAAAA,KAAAA,EAAOC,IAAAA,CAAK;AAAC,YAAA,MAAA;AAAQ,YAAA,SAAA;AAAW,YAAA;SAAU,CAAA,CAAED,KAAAA;KAC9C,CAAA;AAEA,SAASE,qBACPC,cAAqC,EACrCC,OAAe,EACfC,IAAY,EACZC,aAAsB,EAAA;AAEtB,IAAA,MAAMC,OAAAA,GAAU;AACd,QAAA,GAAGJ,cAAc;QACjBK,UAAAA,EAAY;AACV,YAAA,GAAGL,eAAeK,UAAU;AAC5B,YAAA,GAAGT,uBAAuBO,aAAAA,CAAc;AACxCD,YAAAA;AACF;AACF,KAAA;IAEA,OAAO,IAAII,aAAaL,OAAAA,EAASG,OAAAA,CAAAA;AACnC;AAEA;;;;AAIC,IACM,SAASG,kBAAAA,CAAmBP,cAAqC,EAAEH,KAAc,EAAA;AACtF,IAAA,MAAMM,gBAAgBK,mBAAAA,CAAoBX,KAAAA,CAAAA;;AAG1C,IAAA,IAAIY,QAAQN,aAAAA,CAAAA,EAAgB;QAC1B,OAAOH,cAAAA;AACT,IAAA;AAEA,IAAA,MAAM,EAAEC,OAAAA,GAAU,EAAE,EAAER,IAAAA,GAAO,SAAS,EAAE,GAAGU,aAAAA;IAE3C,IAAIA,aAAAA,YAAyBhB,cAAAA,IAAkBgB,aAAAA,YAAyBf,iBAAAA,EAAmB;QACzF,OAAOW,oBAAAA,CAAqBC,cAAAA,EAAgBC,OAAAA,EAAS,WAAA,EAAaE,aAAAA,CAAAA;AACpE,IAAA;AAEA,IAAA,IAAIA,yBAAyBb,eAAAA,EAAiB;QAC5C,OAAOS,oBAAAA,CAAqBC,cAAAA,EAAgBC,OAAAA,EAAS,gBAAA,EAAkBE,aAAAA,CAAAA;AACzE,IAAA;IAEA,IAAIA,aAAAA,YAAyBd,gBAAAA,IAAoBc,aAAAA,YAAyBjB,SAAAA,EAAW;AACnF,QAAA,MAAMwB,YAAYlB,YAAAA,CAAaC,IAAAA,CAAAA;QAC/B,OAAOM,oBAAAA,CAAqBC,cAAAA,EAAgBC,OAAAA,EAASS,SAAAA,EAAWP,aAAAA,CAAAA;AAClE,IAAA;AAEA,IAAA,IAAIA,yBAAyBG,YAAAA,EAAc;QACzC,OAAON,cAAAA;AACT,IAAA;;;IAKAW,MAAAA,CAAOC,GAAG,CAACf,KAAK,CAACM,aAAAA,CAAAA;;AAGjB,IAAA,OAAOJ,oBAAAA,CACL,IAAIO,YAAAA,CAAa,uBAAA,CAAA,EACjB,yBACA,uBAAA,EACAH,aAAAA,CAAAA;AAEJ;;;;"}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var index$1 = require('./config/index.js');
3
+ var index$2 = require('./config/index.js');
4
4
  var bootstrap = require('./bootstrap.js');
5
- var index$2 = require('./services/index.js');
5
+ var index$1 = require('./services/index.js');
6
6
 
7
7
  var index = {
8
- config: index$1.config,
8
+ config: index$2.config,
9
9
  bootstrap: bootstrap.bootstrap,
10
- services: index$2.services
10
+ services: index$1.services
11
11
  };
12
12
 
13
13
  module.exports = index;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../server/src/index.ts"],"sourcesContent":["import { config } from './config';\nimport { bootstrap } from './bootstrap';\nimport { services } from './services';\n\nexport default {\n config,\n bootstrap,\n services,\n};\n"],"names":["config","bootstrap","services"],"mappings":";;;;;;AAIA,YAAe;AACbA,YAAAA,cAAAA;AACAC,eAAAA,mBAAAA;AACAC,cAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../server/src/index.ts"],"sourcesContent":["import { config } from './config';\nimport { bootstrap } from './bootstrap';\nimport { services } from './services';\n\nexport default {\n config,\n bootstrap,\n services,\n};\n"],"names":["config","bootstrap","services"],"mappings":";;;;;;AAIA,YAAe;AACbA,YAAAA,cAAAA;AACAC,eAAAA,mBAAAA;AACAC,cAAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["import { config } from './config';\nimport { bootstrap } from './bootstrap';\nimport { services } from './services';\n\nexport default {\n config,\n bootstrap,\n services,\n};\n"],"names":["config","bootstrap","services"],"mappings":";;;;AAIA,YAAe;AACbA,IAAAA,MAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["import { config } from './config';\nimport { bootstrap } from './bootstrap';\nimport { services } from './services';\n\nexport default {\n config,\n bootstrap,\n services,\n};\n"],"names":["config","bootstrap","services"],"mappings":";;;;AAIA,YAAe;AACbA,IAAAA,MAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA;AACF,CAAA;;;;"}