@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":"polymorphic.js","sources":["../../../../../server/src/services/content-api/register-functions/polymorphic.ts"],"sourcesContent":["import { unionType } from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nconst registerPolymorphicContentType = (\n contentType: Struct.Schema,\n { registry, strapi }: Context\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const {\n naming,\n attributes: { isMorphRelation },\n } = getService('utils');\n const { KINDS } = getService('constants');\n\n const { attributes = {} } = contentType;\n\n // Isolate its polymorphic attributes\n const morphAttributes = Object.entries(attributes).filter(([, attribute]) =>\n isMorphRelation(attribute)\n );\n\n // For each one of those polymorphic attribute\n for (const [attributeName, attribute] of morphAttributes) {\n const name = naming.getMorphRelationTypeName(contentType, attributeName);\n const { target } = attribute as any;\n\n // Ignore those whose target is not an array\n if (!Array.isArray(target)) {\n continue;\n }\n\n // Transform target UIDs into types names\n const members = target\n // Get content types definitions\n .map((uid) => strapi.getModel(uid))\n // Resolve types names\n .map((contentType) => naming.getTypeName(contentType));\n\n // Register the new polymorphic union type\n registry.register(\n name,\n\n unionType({\n name,\n\n resolveType(obj) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t) {\n t.members(...members);\n },\n }),\n\n { kind: KINDS.morph, contentType, attributeName }\n );\n }\n};\n\nexport { registerPolymorphicContentType };\n"],"names":["registerPolymorphicContentType","contentType","registry","strapi","service","getService","plugin","naming","attributes","isMorphRelation","KINDS","morphAttributes","Object","entries","filter","attribute","attributeName","name","getMorphRelationTypeName","target","Array","isArray","members","map","uid","getModel","getTypeName","register","unionType","resolveType","obj","__type","modelType","getComponentName","definition","t","kind","morph"],"mappings":";;;;AAIA,MAAMA,iCAAiC,CACrCC,WAAAA,EACA,EAAEC,QAAQ,EAAEC,MAAM,EAAW,GAAA;AAE7B,IAAA,MAAM,EAAEC,OAASC,EAAAA,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;IAE9C,MAAM,EACJC,MAAM,EACNC,UAAAA,EAAY,EAAEC,eAAe,EAAE,EAChC,GAAGJ,UAAW,CAAA,OAAA,CAAA;AACf,IAAA,MAAM,EAAEK,KAAK,EAAE,GAAGL,UAAW,CAAA,WAAA,CAAA;AAE7B,IAAA,MAAM,EAAEG,UAAAA,GAAa,EAAE,EAAE,GAAGP,WAAAA;;IAG5B,MAAMU,eAAAA,GAAkBC,MAAOC,CAAAA,OAAO,CAACL,UAAAA,CAAAA,CAAYM,MAAM,CAAC,CAAC,GAAGC,SAAU,CAAA,GACtEN,eAAgBM,CAAAA,SAAAA,CAAAA,CAAAA;;AAIlB,IAAA,KAAK,MAAM,CAACC,aAAeD,EAAAA,SAAAA,CAAU,IAAIJ,eAAiB,CAAA;AACxD,QAAA,MAAMM,IAAOV,GAAAA,MAAAA,CAAOW,wBAAwB,CAACjB,WAAae,EAAAA,aAAAA,CAAAA;QAC1D,MAAM,EAAEG,MAAM,EAAE,GAAGJ,SAAAA;;AAGnB,QAAA,IAAI,CAACK,KAAAA,CAAMC,OAAO,CAACF,MAAS,CAAA,EAAA;AAC1B,YAAA;AACF;;QAGA,MAAMG,OAAAA,GAAUH,MACd;AACCI,SAAAA,GAAG,CAAC,CAACC,GAAAA,GAAQrB,OAAOsB,QAAQ,CAACD,KAC9B;AACCD,SAAAA,GAAG,CAAC,CAACtB,WAAgBM,GAAAA,MAAAA,CAAOmB,WAAW,CAACzB,WAAAA,CAAAA,CAAAA;;QAG3CC,QAASyB,CAAAA,QAAQ,CACfV,IAAAA,EAEAW,eAAU,CAAA;AACRX,YAAAA,IAAAA;AAEAY,YAAAA,WAAAA,CAAAA,CAAYC,GAAG,EAAA;AACb,gBAAA,MAAM7B,WAAcE,GAAAA,MAAAA,CAAOsB,QAAQ,CAACK,IAAIC,MAAM,CAAA;AAE9C,gBAAA,IAAI,CAAC9B,WAAa,EAAA;oBAChB,OAAO,IAAA;AACT;gBAEA,IAAIA,WAAAA,CAAY+B,SAAS,KAAK,WAAa,EAAA;oBACzC,OAAOzB,MAAAA,CAAO0B,gBAAgB,CAAChC,WAAAA,CAAAA;AACjC;gBAEA,OAAOM,MAAAA,CAAOmB,WAAW,CAACzB,WAAAA,CAAAA;AAC5B,aAAA;AAEAiC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,gBAAAA,CAAAA,CAAEb,OAAO,CAAIA,GAAAA,OAAAA,CAAAA;AACf;SAGF,CAAA,EAAA;AAAEc,YAAAA,IAAAA,EAAM1B,MAAM2B,KAAK;AAAEpC,YAAAA,WAAAA;AAAae,YAAAA;AAAc,SAAA,CAAA;AAEpD;AACF;;;;"}
1
+ {"version":3,"file":"polymorphic.js","sources":["../../../../../server/src/services/content-api/register-functions/polymorphic.ts"],"sourcesContent":["import { unionType } from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nconst registerPolymorphicContentType = (\n contentType: Struct.Schema,\n { registry, strapi }: Context\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const {\n naming,\n attributes: { isMorphRelation },\n } = getService('utils');\n const { KINDS } = getService('constants');\n\n const { attributes = {} } = contentType;\n\n // Isolate its polymorphic attributes\n const morphAttributes = Object.entries(attributes).filter(([, attribute]) =>\n isMorphRelation(attribute)\n );\n\n // For each one of those polymorphic attribute\n for (const [attributeName, attribute] of morphAttributes) {\n const name = naming.getMorphRelationTypeName(contentType, attributeName);\n const { target } = attribute as any;\n\n // Ignore those whose target is not an array\n if (!Array.isArray(target)) {\n continue;\n }\n\n // Transform target UIDs into types names\n const members = target\n // Get content types definitions\n .map((uid) => strapi.getModel(uid))\n // Resolve types names\n .map((contentType) => naming.getTypeName(contentType));\n\n // Register the new polymorphic union type\n registry.register(\n name,\n\n unionType({\n name,\n\n resolveType(obj) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t) {\n t.members(...members);\n },\n }),\n\n { kind: KINDS.morph, contentType, attributeName }\n );\n }\n};\n\nexport { registerPolymorphicContentType };\n"],"names":["registerPolymorphicContentType","contentType","registry","strapi","service","getService","plugin","naming","attributes","isMorphRelation","KINDS","morphAttributes","Object","entries","filter","attribute","attributeName","name","getMorphRelationTypeName","target","Array","isArray","members","map","uid","getModel","getTypeName","register","unionType","resolveType","obj","__type","modelType","getComponentName","definition","t","kind","morph"],"mappings":";;;;AAIA,MAAMA,iCAAiC,CACrCC,WAAAA,EACA,EAAEC,QAAQ,EAAEC,MAAM,EAAW,GAAA;AAE7B,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;IAE9C,MAAM,EACJC,MAAM,EACNC,UAAAA,EAAY,EAAEC,eAAe,EAAE,EAChC,GAAGJ,UAAAA,CAAW,OAAA,CAAA;AACf,IAAA,MAAM,EAAEK,KAAK,EAAE,GAAGL,UAAAA,CAAW,WAAA,CAAA;AAE7B,IAAA,MAAM,EAAEG,UAAAA,GAAa,EAAE,EAAE,GAAGP,WAAAA;;IAG5B,MAAMU,eAAAA,GAAkBC,MAAAA,CAAOC,OAAO,CAACL,UAAAA,CAAAA,CAAYM,MAAM,CAAC,CAAC,GAAGC,SAAAA,CAAU,GACtEN,eAAAA,CAAgBM,SAAAA,CAAAA,CAAAA;;AAIlB,IAAA,KAAK,MAAM,CAACC,aAAAA,EAAeD,SAAAA,CAAU,IAAIJ,eAAAA,CAAiB;AACxD,QAAA,MAAMM,IAAAA,GAAOV,MAAAA,CAAOW,wBAAwB,CAACjB,WAAAA,EAAae,aAAAA,CAAAA;QAC1D,MAAM,EAAEG,MAAM,EAAE,GAAGJ,SAAAA;;AAGnB,QAAA,IAAI,CAACK,KAAAA,CAAMC,OAAO,CAACF,MAAAA,CAAAA,EAAS;AAC1B,YAAA;AACF,QAAA;;QAGA,MAAMG,OAAAA,GAAUH,MACd;AACCI,SAAAA,GAAG,CAAC,CAACC,GAAAA,GAAQrB,OAAOsB,QAAQ,CAACD,KAC9B;AACCD,SAAAA,GAAG,CAAC,CAACtB,WAAAA,GAAgBM,MAAAA,CAAOmB,WAAW,CAACzB,WAAAA,CAAAA,CAAAA;;QAG3CC,QAAAA,CAASyB,QAAQ,CACfV,IAAAA,EAEAW,eAAAA,CAAU;AACRX,YAAAA,IAAAA;AAEAY,YAAAA,WAAAA,CAAAA,CAAYC,GAAG,EAAA;AACb,gBAAA,MAAM7B,WAAAA,GAAcE,MAAAA,CAAOsB,QAAQ,CAACK,IAAIC,MAAM,CAAA;AAE9C,gBAAA,IAAI,CAAC9B,WAAAA,EAAa;oBAChB,OAAO,IAAA;AACT,gBAAA;gBAEA,IAAIA,WAAAA,CAAY+B,SAAS,KAAK,WAAA,EAAa;oBACzC,OAAOzB,MAAAA,CAAO0B,gBAAgB,CAAChC,WAAAA,CAAAA;AACjC,gBAAA;gBAEA,OAAOM,MAAAA,CAAOmB,WAAW,CAACzB,WAAAA,CAAAA;AAC5B,YAAA,CAAA;AAEAiC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,gBAAAA,CAAAA,CAAEb,OAAO,CAAA,GAAIA,OAAAA,CAAAA;AACf,YAAA;SACF,CAAA,EAEA;AAAEc,YAAAA,IAAAA,EAAM1B,MAAM2B,KAAK;AAAEpC,YAAAA,WAAAA;AAAae,YAAAA;AAAc,SAAA,CAAA;AAEpD,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"polymorphic.mjs","sources":["../../../../../server/src/services/content-api/register-functions/polymorphic.ts"],"sourcesContent":["import { unionType } from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nconst registerPolymorphicContentType = (\n contentType: Struct.Schema,\n { registry, strapi }: Context\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const {\n naming,\n attributes: { isMorphRelation },\n } = getService('utils');\n const { KINDS } = getService('constants');\n\n const { attributes = {} } = contentType;\n\n // Isolate its polymorphic attributes\n const morphAttributes = Object.entries(attributes).filter(([, attribute]) =>\n isMorphRelation(attribute)\n );\n\n // For each one of those polymorphic attribute\n for (const [attributeName, attribute] of morphAttributes) {\n const name = naming.getMorphRelationTypeName(contentType, attributeName);\n const { target } = attribute as any;\n\n // Ignore those whose target is not an array\n if (!Array.isArray(target)) {\n continue;\n }\n\n // Transform target UIDs into types names\n const members = target\n // Get content types definitions\n .map((uid) => strapi.getModel(uid))\n // Resolve types names\n .map((contentType) => naming.getTypeName(contentType));\n\n // Register the new polymorphic union type\n registry.register(\n name,\n\n unionType({\n name,\n\n resolveType(obj) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t) {\n t.members(...members);\n },\n }),\n\n { kind: KINDS.morph, contentType, attributeName }\n );\n }\n};\n\nexport { registerPolymorphicContentType };\n"],"names":["registerPolymorphicContentType","contentType","registry","strapi","service","getService","plugin","naming","attributes","isMorphRelation","KINDS","morphAttributes","Object","entries","filter","attribute","attributeName","name","getMorphRelationTypeName","target","Array","isArray","members","map","uid","getModel","getTypeName","register","unionType","resolveType","obj","__type","modelType","getComponentName","definition","t","kind","morph"],"mappings":";;AAIA,MAAMA,iCAAiC,CACrCC,WAAAA,EACA,EAAEC,QAAQ,EAAEC,MAAM,EAAW,GAAA;AAE7B,IAAA,MAAM,EAAEC,OAASC,EAAAA,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;IAE9C,MAAM,EACJC,MAAM,EACNC,UAAAA,EAAY,EAAEC,eAAe,EAAE,EAChC,GAAGJ,UAAW,CAAA,OAAA,CAAA;AACf,IAAA,MAAM,EAAEK,KAAK,EAAE,GAAGL,UAAW,CAAA,WAAA,CAAA;AAE7B,IAAA,MAAM,EAAEG,UAAAA,GAAa,EAAE,EAAE,GAAGP,WAAAA;;IAG5B,MAAMU,eAAAA,GAAkBC,MAAOC,CAAAA,OAAO,CAACL,UAAAA,CAAAA,CAAYM,MAAM,CAAC,CAAC,GAAGC,SAAU,CAAA,GACtEN,eAAgBM,CAAAA,SAAAA,CAAAA,CAAAA;;AAIlB,IAAA,KAAK,MAAM,CAACC,aAAeD,EAAAA,SAAAA,CAAU,IAAIJ,eAAiB,CAAA;AACxD,QAAA,MAAMM,IAAOV,GAAAA,MAAAA,CAAOW,wBAAwB,CAACjB,WAAae,EAAAA,aAAAA,CAAAA;QAC1D,MAAM,EAAEG,MAAM,EAAE,GAAGJ,SAAAA;;AAGnB,QAAA,IAAI,CAACK,KAAAA,CAAMC,OAAO,CAACF,MAAS,CAAA,EAAA;AAC1B,YAAA;AACF;;QAGA,MAAMG,OAAAA,GAAUH,MACd;AACCI,SAAAA,GAAG,CAAC,CAACC,GAAAA,GAAQrB,OAAOsB,QAAQ,CAACD,KAC9B;AACCD,SAAAA,GAAG,CAAC,CAACtB,WAAgBM,GAAAA,MAAAA,CAAOmB,WAAW,CAACzB,WAAAA,CAAAA,CAAAA;;QAG3CC,QAASyB,CAAAA,QAAQ,CACfV,IAAAA,EAEAW,SAAU,CAAA;AACRX,YAAAA,IAAAA;AAEAY,YAAAA,WAAAA,CAAAA,CAAYC,GAAG,EAAA;AACb,gBAAA,MAAM7B,WAAcE,GAAAA,MAAAA,CAAOsB,QAAQ,CAACK,IAAIC,MAAM,CAAA;AAE9C,gBAAA,IAAI,CAAC9B,WAAa,EAAA;oBAChB,OAAO,IAAA;AACT;gBAEA,IAAIA,WAAAA,CAAY+B,SAAS,KAAK,WAAa,EAAA;oBACzC,OAAOzB,MAAAA,CAAO0B,gBAAgB,CAAChC,WAAAA,CAAAA;AACjC;gBAEA,OAAOM,MAAAA,CAAOmB,WAAW,CAACzB,WAAAA,CAAAA;AAC5B,aAAA;AAEAiC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,gBAAAA,CAAAA,CAAEb,OAAO,CAAIA,GAAAA,OAAAA,CAAAA;AACf;SAGF,CAAA,EAAA;AAAEc,YAAAA,IAAAA,EAAM1B,MAAM2B,KAAK;AAAEpC,YAAAA,WAAAA;AAAae,YAAAA;AAAc,SAAA,CAAA;AAEpD;AACF;;;;"}
1
+ {"version":3,"file":"polymorphic.mjs","sources":["../../../../../server/src/services/content-api/register-functions/polymorphic.ts"],"sourcesContent":["import { unionType } from 'nexus';\nimport type { Struct } from '@strapi/types';\nimport type { Context } from '../../types';\n\nconst registerPolymorphicContentType = (\n contentType: Struct.Schema,\n { registry, strapi }: Context\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const {\n naming,\n attributes: { isMorphRelation },\n } = getService('utils');\n const { KINDS } = getService('constants');\n\n const { attributes = {} } = contentType;\n\n // Isolate its polymorphic attributes\n const morphAttributes = Object.entries(attributes).filter(([, attribute]) =>\n isMorphRelation(attribute)\n );\n\n // For each one of those polymorphic attribute\n for (const [attributeName, attribute] of morphAttributes) {\n const name = naming.getMorphRelationTypeName(contentType, attributeName);\n const { target } = attribute as any;\n\n // Ignore those whose target is not an array\n if (!Array.isArray(target)) {\n continue;\n }\n\n // Transform target UIDs into types names\n const members = target\n // Get content types definitions\n .map((uid) => strapi.getModel(uid))\n // Resolve types names\n .map((contentType) => naming.getTypeName(contentType));\n\n // Register the new polymorphic union type\n registry.register(\n name,\n\n unionType({\n name,\n\n resolveType(obj) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t) {\n t.members(...members);\n },\n }),\n\n { kind: KINDS.morph, contentType, attributeName }\n );\n }\n};\n\nexport { registerPolymorphicContentType };\n"],"names":["registerPolymorphicContentType","contentType","registry","strapi","service","getService","plugin","naming","attributes","isMorphRelation","KINDS","morphAttributes","Object","entries","filter","attribute","attributeName","name","getMorphRelationTypeName","target","Array","isArray","members","map","uid","getModel","getTypeName","register","unionType","resolveType","obj","__type","modelType","getComponentName","definition","t","kind","morph"],"mappings":";;AAIA,MAAMA,iCAAiC,CACrCC,WAAAA,EACA,EAAEC,QAAQ,EAAEC,MAAM,EAAW,GAAA;AAE7B,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;IAE9C,MAAM,EACJC,MAAM,EACNC,UAAAA,EAAY,EAAEC,eAAe,EAAE,EAChC,GAAGJ,UAAAA,CAAW,OAAA,CAAA;AACf,IAAA,MAAM,EAAEK,KAAK,EAAE,GAAGL,UAAAA,CAAW,WAAA,CAAA;AAE7B,IAAA,MAAM,EAAEG,UAAAA,GAAa,EAAE,EAAE,GAAGP,WAAAA;;IAG5B,MAAMU,eAAAA,GAAkBC,MAAAA,CAAOC,OAAO,CAACL,UAAAA,CAAAA,CAAYM,MAAM,CAAC,CAAC,GAAGC,SAAAA,CAAU,GACtEN,eAAAA,CAAgBM,SAAAA,CAAAA,CAAAA;;AAIlB,IAAA,KAAK,MAAM,CAACC,aAAAA,EAAeD,SAAAA,CAAU,IAAIJ,eAAAA,CAAiB;AACxD,QAAA,MAAMM,IAAAA,GAAOV,MAAAA,CAAOW,wBAAwB,CAACjB,WAAAA,EAAae,aAAAA,CAAAA;QAC1D,MAAM,EAAEG,MAAM,EAAE,GAAGJ,SAAAA;;AAGnB,QAAA,IAAI,CAACK,KAAAA,CAAMC,OAAO,CAACF,MAAAA,CAAAA,EAAS;AAC1B,YAAA;AACF,QAAA;;QAGA,MAAMG,OAAAA,GAAUH,MACd;AACCI,SAAAA,GAAG,CAAC,CAACC,GAAAA,GAAQrB,OAAOsB,QAAQ,CAACD,KAC9B;AACCD,SAAAA,GAAG,CAAC,CAACtB,WAAAA,GAAgBM,MAAAA,CAAOmB,WAAW,CAACzB,WAAAA,CAAAA,CAAAA;;QAG3CC,QAAAA,CAASyB,QAAQ,CACfV,IAAAA,EAEAW,SAAAA,CAAU;AACRX,YAAAA,IAAAA;AAEAY,YAAAA,WAAAA,CAAAA,CAAYC,GAAG,EAAA;AACb,gBAAA,MAAM7B,WAAAA,GAAcE,MAAAA,CAAOsB,QAAQ,CAACK,IAAIC,MAAM,CAAA;AAE9C,gBAAA,IAAI,CAAC9B,WAAAA,EAAa;oBAChB,OAAO,IAAA;AACT,gBAAA;gBAEA,IAAIA,WAAAA,CAAY+B,SAAS,KAAK,WAAA,EAAa;oBACzC,OAAOzB,MAAAA,CAAO0B,gBAAgB,CAAChC,WAAAA,CAAAA;AACjC,gBAAA;gBAEA,OAAOM,MAAAA,CAAOmB,WAAW,CAACzB,WAAAA,CAAAA;AAC5B,YAAA,CAAA;AAEAiC,YAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,gBAAAA,CAAAA,CAAEb,OAAO,CAAA,GAAIA,OAAAA,CAAAA;AACf,YAAA;SACF,CAAA,EAEA;AAAEc,YAAAA,IAAAA,EAAM1B,MAAM2B,KAAK;AAAEpC,YAAAA,WAAAA;AAAae,YAAAA;AAAc,SAAA,CAAA;AAEpD,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"scalars.js","sources":["../../../../../server/src/services/content-api/register-functions/scalars.ts"],"sourcesContent":["import type { Context } from '../../types';\n\nconst registerScalars = ({ registry, strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { scalars } = getService('internals');\n const { KINDS } = getService('constants');\n\n Object.entries(scalars).forEach(([name, definition]) => {\n registry.register(name, definition, { kind: KINDS.scalar });\n });\n};\n\nexport { registerScalars };\n"],"names":["registerScalars","registry","strapi","service","getService","plugin","scalars","KINDS","Object","entries","forEach","name","definition","register","kind","scalar"],"mappings":";;AAEA,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAW,GAAA;AACpD,IAAA,MAAM,EAAEC,OAASC,EAAAA,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,OAAO,EAAE,GAAGF,UAAW,CAAA,WAAA,CAAA;AAC/B,IAAA,MAAM,EAAEG,KAAK,EAAE,GAAGH,UAAW,CAAA,WAAA,CAAA;IAE7BI,MAAOC,CAAAA,OAAO,CAACH,OAASI,CAAAA,CAAAA,OAAO,CAAC,CAAC,CAACC,MAAMC,UAAW,CAAA,GAAA;QACjDX,QAASY,CAAAA,QAAQ,CAACF,IAAAA,EAAMC,UAAY,EAAA;AAAEE,YAAAA,IAAAA,EAAMP,MAAMQ;AAAO,SAAA,CAAA;AAC3D,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"scalars.js","sources":["../../../../../server/src/services/content-api/register-functions/scalars.ts"],"sourcesContent":["import type { Context } from '../../types';\n\nconst registerScalars = ({ registry, strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { scalars } = getService('internals');\n const { KINDS } = getService('constants');\n\n Object.entries(scalars).forEach(([name, definition]) => {\n registry.register(name, definition, { kind: KINDS.scalar });\n });\n};\n\nexport { registerScalars };\n"],"names":["registerScalars","registry","strapi","service","getService","plugin","scalars","KINDS","Object","entries","forEach","name","definition","register","kind","scalar"],"mappings":";;AAEA,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAW,GAAA;AACpD,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,OAAO,EAAE,GAAGF,UAAAA,CAAW,WAAA,CAAA;AAC/B,IAAA,MAAM,EAAEG,KAAK,EAAE,GAAGH,UAAAA,CAAW,WAAA,CAAA;IAE7BI,MAAAA,CAAOC,OAAO,CAACH,OAAAA,CAAAA,CAASI,OAAO,CAAC,CAAC,CAACC,MAAMC,UAAAA,CAAW,GAAA;QACjDX,QAAAA,CAASY,QAAQ,CAACF,IAAAA,EAAMC,UAAAA,EAAY;AAAEE,YAAAA,IAAAA,EAAMP,MAAMQ;AAAO,SAAA,CAAA;AAC3D,IAAA,CAAA,CAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"scalars.mjs","sources":["../../../../../server/src/services/content-api/register-functions/scalars.ts"],"sourcesContent":["import type { Context } from '../../types';\n\nconst registerScalars = ({ registry, strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { scalars } = getService('internals');\n const { KINDS } = getService('constants');\n\n Object.entries(scalars).forEach(([name, definition]) => {\n registry.register(name, definition, { kind: KINDS.scalar });\n });\n};\n\nexport { registerScalars };\n"],"names":["registerScalars","registry","strapi","service","getService","plugin","scalars","KINDS","Object","entries","forEach","name","definition","register","kind","scalar"],"mappings":"AAEA,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAW,GAAA;AACpD,IAAA,MAAM,EAAEC,OAASC,EAAAA,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,OAAO,EAAE,GAAGF,UAAW,CAAA,WAAA,CAAA;AAC/B,IAAA,MAAM,EAAEG,KAAK,EAAE,GAAGH,UAAW,CAAA,WAAA,CAAA;IAE7BI,MAAOC,CAAAA,OAAO,CAACH,OAASI,CAAAA,CAAAA,OAAO,CAAC,CAAC,CAACC,MAAMC,UAAW,CAAA,GAAA;QACjDX,QAASY,CAAAA,QAAQ,CAACF,IAAAA,EAAMC,UAAY,EAAA;AAAEE,YAAAA,IAAAA,EAAMP,MAAMQ;AAAO,SAAA,CAAA;AAC3D,KAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"scalars.mjs","sources":["../../../../../server/src/services/content-api/register-functions/scalars.ts"],"sourcesContent":["import type { Context } from '../../types';\n\nconst registerScalars = ({ registry, strapi }: Context) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { scalars } = getService('internals');\n const { KINDS } = getService('constants');\n\n Object.entries(scalars).forEach(([name, definition]) => {\n registry.register(name, definition, { kind: KINDS.scalar });\n });\n};\n\nexport { registerScalars };\n"],"names":["registerScalars","registry","strapi","service","getService","plugin","scalars","KINDS","Object","entries","forEach","name","definition","register","kind","scalar"],"mappings":"AAEA,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAW,GAAA;AACpD,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,OAAO,EAAE,GAAGF,UAAAA,CAAW,WAAA,CAAA;AAC/B,IAAA,MAAM,EAAEG,KAAK,EAAE,GAAGH,UAAAA,CAAW,WAAA,CAAA;IAE7BI,MAAAA,CAAOC,OAAO,CAACH,OAAAA,CAAAA,CAASI,OAAO,CAAC,CAAC,CAACC,MAAMC,UAAAA,CAAW,GAAA;QACjDX,QAAAA,CAASY,QAAQ,CAACF,IAAAA,EAAMC,UAAAA,EAAY;AAAEE,YAAAA,IAAAA,EAAMP,MAAMQ;AAAO,SAAA,CAAA;AAC3D,IAAA,CAAA,CAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"single-type.js","sources":["../../../../../server/src/services/content-api/register-functions/single-type.ts"],"sourcesContent":["import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerSingleType = (\n contentType: Struct.SingleTypeSchema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { KINDS } = getService('constants');\n\n const extension = getService('extension');\n\n const types = {\n base: naming.getTypeName(contentType),\n entity: naming.getEntityName(contentType),\n response: naming.getEntityResponseName(contentType),\n responseCollection: naming.getEntityResponseCollectionName(contentType),\n relationResponseCollection: naming.getRelationResponseCollectionName(contentType),\n queries: naming.getEntityQueriesTypeName(contentType),\n mutations: naming.getEntityMutationsTypeName(contentType),\n };\n\n const getConfig = (kind: string) => ({ kind, contentType });\n\n // Single type's definition\n registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));\n\n // Higher level entity definition\n registry.register(\n types.entity,\n builders.buildEntityDefinition(contentType),\n getConfig(KINDS.entity)\n );\n\n // Responses definition\n registry.register(\n types.response,\n builders.buildResponseDefinition(contentType),\n getConfig(KINDS.entityResponse)\n );\n\n // Response collection definition\n registry.register(\n types.responseCollection,\n builders.buildResponseCollectionDefinition(contentType),\n getConfig(KINDS.entityResponseCollection)\n );\n\n registry.register(\n types.relationResponseCollection,\n builders.buildRelationResponseCollectionDefinition(contentType),\n getConfig(KINDS.relationResponseCollection)\n );\n\n if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {\n // Queries\n registry.register(\n types.queries,\n builders.buildSingleTypeQueries(contentType),\n getConfig(KINDS.query)\n );\n }\n\n if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {\n // Mutations\n registry.register(\n types.mutations,\n builders.buildSingleTypeMutations(contentType),\n getConfig(KINDS.mutation)\n );\n }\n};\n\nexport { registerSingleType };\n"],"names":["registerSingleType","contentType","registry","strapi","builders","service","getService","plugin","naming","KINDS","extension","types","base","getTypeName","entity","getEntityName","response","getEntityResponseName","responseCollection","getEntityResponseCollectionName","relationResponseCollection","getRelationResponseCollectionName","queries","getEntityQueriesTypeName","mutations","getEntityMutationsTypeName","getConfig","kind","register","buildTypeDefinition","type","buildEntityDefinition","buildResponseDefinition","entityResponse","buildResponseCollectionDefinition","entityResponseCollection","buildRelationResponseCollectionDefinition","shadowCRUD","uid","areQueriesEnabled","buildSingleTypeQueries","query","areMutationsEnabled","buildSingleTypeMutations","mutation"],"mappings":"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"}
1
+ {"version":3,"file":"single-type.js","sources":["../../../../../server/src/services/content-api/register-functions/single-type.ts"],"sourcesContent":["import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerSingleType = (\n contentType: Struct.SingleTypeSchema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { KINDS } = getService('constants');\n\n const extension = getService('extension');\n\n const types = {\n base: naming.getTypeName(contentType),\n entity: naming.getEntityName(contentType),\n response: naming.getEntityResponseName(contentType),\n responseCollection: naming.getEntityResponseCollectionName(contentType),\n relationResponseCollection: naming.getRelationResponseCollectionName(contentType),\n queries: naming.getEntityQueriesTypeName(contentType),\n mutations: naming.getEntityMutationsTypeName(contentType),\n };\n\n const getConfig = (kind: string) => ({ kind, contentType });\n\n // Single type's definition\n registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));\n\n // Higher level entity definition\n registry.register(\n types.entity,\n builders.buildEntityDefinition(contentType),\n getConfig(KINDS.entity)\n );\n\n // Responses definition\n registry.register(\n types.response,\n builders.buildResponseDefinition(contentType),\n getConfig(KINDS.entityResponse)\n );\n\n // Response collection definition\n registry.register(\n types.responseCollection,\n builders.buildResponseCollectionDefinition(contentType),\n getConfig(KINDS.entityResponseCollection)\n );\n\n registry.register(\n types.relationResponseCollection,\n builders.buildRelationResponseCollectionDefinition(contentType),\n getConfig(KINDS.relationResponseCollection)\n );\n\n if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {\n // Queries\n registry.register(\n types.queries,\n builders.buildSingleTypeQueries(contentType),\n getConfig(KINDS.query)\n );\n }\n\n if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {\n // Mutations\n registry.register(\n types.mutations,\n builders.buildSingleTypeMutations(contentType),\n getConfig(KINDS.mutation)\n );\n }\n};\n\nexport { registerSingleType };\n"],"names":["registerSingleType","contentType","registry","strapi","builders","service","getService","plugin","naming","KINDS","extension","types","base","getTypeName","entity","getEntityName","response","getEntityResponseName","responseCollection","getEntityResponseCollectionName","relationResponseCollection","getRelationResponseCollectionName","queries","getEntityQueriesTypeName","mutations","getEntityMutationsTypeName","getConfig","kind","register","buildTypeDefinition","type","buildEntityDefinition","buildResponseDefinition","entityResponse","buildResponseCollectionDefinition","entityResponseCollection","buildRelationResponseCollectionDefinition","shadowCRUD","uid","areQueriesEnabled","buildSingleTypeQueries","query","areMutationsEnabled","buildSingleTypeMutations","mutation"],"mappings":";;AAGA,MAAMA,kBAAAA,GAAqB,CACzBC,WAAAA,EACA,EACEC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EAKT,GAAA;AAED,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGH,MAAAA,CAAOI,MAAM,CAAC,SAAA,CAAA;AAE9C,IAAA,MAAM,EAAEC,MAAM,EAAE,GAAGF,UAAAA,CAAW,OAAA,CAAA;AAC9B,IAAA,MAAM,EAAEG,KAAK,EAAE,GAAGH,UAAAA,CAAW,WAAA,CAAA;AAE7B,IAAA,MAAMI,YAAYJ,UAAAA,CAAW,WAAA,CAAA;AAE7B,IAAA,MAAMK,KAAAA,GAAQ;QACZC,IAAAA,EAAMJ,MAAAA,CAAOK,WAAW,CAACZ,WAAAA,CAAAA;QACzBa,MAAAA,EAAQN,MAAAA,CAAOO,aAAa,CAACd,WAAAA,CAAAA;QAC7Be,QAAAA,EAAUR,MAAAA,CAAOS,qBAAqB,CAAChB,WAAAA,CAAAA;QACvCiB,kBAAAA,EAAoBV,MAAAA,CAAOW,+BAA+B,CAAClB,WAAAA,CAAAA;QAC3DmB,0BAAAA,EAA4BZ,MAAAA,CAAOa,iCAAiC,CAACpB,WAAAA,CAAAA;QACrEqB,OAAAA,EAASd,MAAAA,CAAOe,wBAAwB,CAACtB,WAAAA,CAAAA;QACzCuB,SAAAA,EAAWhB,MAAAA,CAAOiB,0BAA0B,CAACxB,WAAAA;AAC/C,KAAA;IAEA,MAAMyB,SAAAA,GAAY,CAACC,IAAAA,IAAkB;AAAEA,YAAAA,IAAAA;AAAM1B,YAAAA;SAAY,CAAA;;IAGzDC,QAAAA,CAAS0B,QAAQ,CAACjB,KAAAA,CAAMC,IAAI,EAAER,QAAAA,CAASyB,mBAAmB,CAAC5B,WAAAA,CAAAA,EAAcyB,SAAAA,CAAUjB,KAAAA,CAAMqB,IAAI,CAAA,CAAA;;IAG7F5B,QAAAA,CAAS0B,QAAQ,CACfjB,KAAAA,CAAMG,MAAM,EACZV,QAAAA,CAAS2B,qBAAqB,CAAC9B,WAAAA,CAAAA,EAC/ByB,SAAAA,CAAUjB,KAAAA,CAAMK,MAAM,CAAA,CAAA;;IAIxBZ,QAAAA,CAAS0B,QAAQ,CACfjB,KAAAA,CAAMK,QAAQ,EACdZ,QAAAA,CAAS4B,uBAAuB,CAAC/B,WAAAA,CAAAA,EACjCyB,SAAAA,CAAUjB,KAAAA,CAAMwB,cAAc,CAAA,CAAA;;IAIhC/B,QAAAA,CAAS0B,QAAQ,CACfjB,KAAAA,CAAMO,kBAAkB,EACxBd,QAAAA,CAAS8B,iCAAiC,CAACjC,WAAAA,CAAAA,EAC3CyB,SAAAA,CAAUjB,KAAAA,CAAM0B,wBAAwB,CAAA,CAAA;IAG1CjC,QAAAA,CAAS0B,QAAQ,CACfjB,KAAAA,CAAMS,0BAA0B,EAChChB,QAAAA,CAASgC,yCAAyC,CAACnC,WAAAA,CAAAA,EACnDyB,SAAAA,CAAUjB,KAAAA,CAAMW,0BAA0B,CAAA,CAAA;AAG5C,IAAA,IAAIV,UAAU2B,UAAU,CAACpC,YAAYqC,GAAG,CAAA,CAAEC,iBAAiB,EAAA,EAAI;;QAE7DrC,QAAAA,CAAS0B,QAAQ,CACfjB,KAAAA,CAAMW,OAAO,EACblB,QAAAA,CAASoC,sBAAsB,CAACvC,WAAAA,CAAAA,EAChCyB,SAAAA,CAAUjB,KAAAA,CAAMgC,KAAK,CAAA,CAAA;AAEzB,IAAA;AAEA,IAAA,IAAI/B,UAAU2B,UAAU,CAACpC,YAAYqC,GAAG,CAAA,CAAEI,mBAAmB,EAAA,EAAI;;QAE/DxC,QAAAA,CAAS0B,QAAQ,CACfjB,KAAAA,CAAMa,SAAS,EACfpB,QAAAA,CAASuC,wBAAwB,CAAC1C,WAAAA,CAAAA,EAClCyB,SAAAA,CAAUjB,KAAAA,CAAMmC,QAAQ,CAAA,CAAA;AAE5B,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"single-type.mjs","sources":["../../../../../server/src/services/content-api/register-functions/single-type.ts"],"sourcesContent":["import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerSingleType = (\n contentType: Struct.SingleTypeSchema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { KINDS } = getService('constants');\n\n const extension = getService('extension');\n\n const types = {\n base: naming.getTypeName(contentType),\n entity: naming.getEntityName(contentType),\n response: naming.getEntityResponseName(contentType),\n responseCollection: naming.getEntityResponseCollectionName(contentType),\n relationResponseCollection: naming.getRelationResponseCollectionName(contentType),\n queries: naming.getEntityQueriesTypeName(contentType),\n mutations: naming.getEntityMutationsTypeName(contentType),\n };\n\n const getConfig = (kind: string) => ({ kind, contentType });\n\n // Single type's definition\n registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));\n\n // Higher level entity definition\n registry.register(\n types.entity,\n builders.buildEntityDefinition(contentType),\n getConfig(KINDS.entity)\n );\n\n // Responses definition\n registry.register(\n types.response,\n builders.buildResponseDefinition(contentType),\n getConfig(KINDS.entityResponse)\n );\n\n // Response collection definition\n registry.register(\n types.responseCollection,\n builders.buildResponseCollectionDefinition(contentType),\n getConfig(KINDS.entityResponseCollection)\n );\n\n registry.register(\n types.relationResponseCollection,\n builders.buildRelationResponseCollectionDefinition(contentType),\n getConfig(KINDS.relationResponseCollection)\n );\n\n if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {\n // Queries\n registry.register(\n types.queries,\n builders.buildSingleTypeQueries(contentType),\n getConfig(KINDS.query)\n );\n }\n\n if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {\n // Mutations\n registry.register(\n types.mutations,\n builders.buildSingleTypeMutations(contentType),\n getConfig(KINDS.mutation)\n );\n }\n};\n\nexport { registerSingleType };\n"],"names":["registerSingleType","contentType","registry","strapi","builders","service","getService","plugin","naming","KINDS","extension","types","base","getTypeName","entity","getEntityName","response","getEntityResponseName","responseCollection","getEntityResponseCollectionName","relationResponseCollection","getRelationResponseCollectionName","queries","getEntityQueriesTypeName","mutations","getEntityMutationsTypeName","getConfig","kind","register","buildTypeDefinition","type","buildEntityDefinition","buildResponseDefinition","entityResponse","buildResponseCollectionDefinition","entityResponseCollection","buildRelationResponseCollectionDefinition","shadowCRUD","uid","areQueriesEnabled","buildSingleTypeQueries","query","areMutationsEnabled","buildSingleTypeMutations","mutation"],"mappings":"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"}
1
+ {"version":3,"file":"single-type.mjs","sources":["../../../../../server/src/services/content-api/register-functions/single-type.ts"],"sourcesContent":["import type { Core, Struct } from '@strapi/types';\nimport type { TypeRegistry } from '../../type-registry';\n\nconst registerSingleType = (\n contentType: Struct.SingleTypeSchema,\n {\n registry,\n strapi,\n builders,\n }: {\n registry: TypeRegistry;\n strapi: Core.Strapi;\n builders: any;\n }\n) => {\n const { service: getService } = strapi.plugin('graphql');\n\n const { naming } = getService('utils');\n const { KINDS } = getService('constants');\n\n const extension = getService('extension');\n\n const types = {\n base: naming.getTypeName(contentType),\n entity: naming.getEntityName(contentType),\n response: naming.getEntityResponseName(contentType),\n responseCollection: naming.getEntityResponseCollectionName(contentType),\n relationResponseCollection: naming.getRelationResponseCollectionName(contentType),\n queries: naming.getEntityQueriesTypeName(contentType),\n mutations: naming.getEntityMutationsTypeName(contentType),\n };\n\n const getConfig = (kind: string) => ({ kind, contentType });\n\n // Single type's definition\n registry.register(types.base, builders.buildTypeDefinition(contentType), getConfig(KINDS.type));\n\n // Higher level entity definition\n registry.register(\n types.entity,\n builders.buildEntityDefinition(contentType),\n getConfig(KINDS.entity)\n );\n\n // Responses definition\n registry.register(\n types.response,\n builders.buildResponseDefinition(contentType),\n getConfig(KINDS.entityResponse)\n );\n\n // Response collection definition\n registry.register(\n types.responseCollection,\n builders.buildResponseCollectionDefinition(contentType),\n getConfig(KINDS.entityResponseCollection)\n );\n\n registry.register(\n types.relationResponseCollection,\n builders.buildRelationResponseCollectionDefinition(contentType),\n getConfig(KINDS.relationResponseCollection)\n );\n\n if (extension.shadowCRUD(contentType.uid).areQueriesEnabled()) {\n // Queries\n registry.register(\n types.queries,\n builders.buildSingleTypeQueries(contentType),\n getConfig(KINDS.query)\n );\n }\n\n if (extension.shadowCRUD(contentType.uid).areMutationsEnabled()) {\n // Mutations\n registry.register(\n types.mutations,\n builders.buildSingleTypeMutations(contentType),\n getConfig(KINDS.mutation)\n );\n }\n};\n\nexport { registerSingleType };\n"],"names":["registerSingleType","contentType","registry","strapi","builders","service","getService","plugin","naming","KINDS","extension","types","base","getTypeName","entity","getEntityName","response","getEntityResponseName","responseCollection","getEntityResponseCollectionName","relationResponseCollection","getRelationResponseCollectionName","queries","getEntityQueriesTypeName","mutations","getEntityMutationsTypeName","getConfig","kind","register","buildTypeDefinition","type","buildEntityDefinition","buildResponseDefinition","entityResponse","buildResponseCollectionDefinition","entityResponseCollection","buildRelationResponseCollectionDefinition","shadowCRUD","uid","areQueriesEnabled","buildSingleTypeQueries","query","areMutationsEnabled","buildSingleTypeMutations","mutation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-resolvers.js","sources":["../../../../server/src/services/content-api/wrap-resolvers.ts"],"sourcesContent":["import { get, getOr, isFunction, first, isNil } from 'lodash/fp';\nimport {\n GraphQLObjectType,\n GraphQLResolveInfo,\n GraphQLSchema,\n GraphQLFieldResolver,\n} from 'graphql';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport { createPoliciesMiddleware } from './policy';\n\nconst { ForbiddenError } = errors;\n\nconst introspectionQueries = [\n '__Schema',\n '__Type',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n];\n\ntype GraphQLMiddleware = (\n resolve: GraphQLFieldResolver<any, any>,\n parents: unknown,\n args: unknown,\n context: unknown,\n info: GraphQLResolveInfo\n) => any;\n\n/**\n * Get & parse middlewares definitions from the resolver's config\n * @param {object} resolverConfig\n * @param {object} strapi\n * @return {function[]}\n */\nconst parseMiddlewares = (resolverConfig: any, strapi: Core.Strapi): GraphQLMiddleware[] => {\n const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);\n\n // TODO: [v4] to factorize with compose endpoints (routes)\n return resolverMiddlewares.map(\n (middleware: string | Core.MiddlewareHandler | { name: string; options: any }) => {\n if (isFunction(middleware)) {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware);\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return strapi.middleware(name)(options, { strapi });\n }\n\n throw new Error(\n `Invalid middleware type, expected (function,string,object), received ${typeof middleware}`\n );\n }\n );\n};\n\n/**\n * Wrap the schema's resolvers if they've been\n * customized using the GraphQL extension service\n * @param {object} options\n * @param {GraphQLSchema} options.schema\n * @param {object} options.strapi\n * @param {object} options.extension\n * @return {GraphQLSchema}\n */\nconst wrapResolvers = ({\n schema,\n strapi,\n extension = {},\n}: {\n schema: GraphQLSchema;\n strapi: Core.Strapi;\n extension: any;\n}) => {\n // Get all the registered resolvers configuration\n const { resolversConfig = {} } = extension;\n\n // Fields filters\n const isValidFieldName = (field: string) => !field.startsWith('__');\n\n const typeMap = schema.getTypeMap();\n\n Object.entries(typeMap).forEach(([type, definition]) => {\n const isGraphQLObjectType = definition instanceof GraphQLObjectType;\n const isIgnoredType = introspectionQueries.includes(type);\n\n if (!isGraphQLObjectType || isIgnoredType) {\n return;\n }\n\n const fields = definition.getFields();\n const fieldsToProcess = Object.entries(fields).filter(([field]) => isValidFieldName(field));\n\n for (const [fieldName, fieldDefinition] of fieldsToProcess) {\n const defaultResolver = get(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = getOr({}, path, resolversConfig);\n\n const { resolve: baseResolver = defaultResolver } = fieldDefinition;\n\n // Parse & initialize the middlewares\n const middlewares = parseMiddlewares(resolverConfig, strapi);\n\n // Generate the policy middleware\n const policyMiddleware = createPoliciesMiddleware(resolverConfig, { strapi });\n\n // Add the policyMiddleware at the end of the middlewares collection\n middlewares.push(policyMiddleware);\n\n // Bind every middleware to the next one\n const boundMiddlewares = middlewares.map((middleware, index, collection) => {\n return (parents: unknown, args: unknown, context: unknown, info: GraphQLResolveInfo) =>\n middleware(\n // Make sure the last middleware in the list calls the baseResolver\n index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1],\n parents,\n args,\n context,\n info\n );\n });\n\n /**\n * GraphQL authorization flow\n * @param {object} context\n * @return {Promise<void>}\n */\n const authorize = async ({ context }: any) => {\n const authConfig = get('auth', resolverConfig);\n const authContext = get('state.auth', context);\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = !isNil(authConfig);\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch (error) {\n throw new ForbiddenError();\n }\n }\n };\n\n /**\n * Base resolver wrapper that handles authorization, middlewares & policies\n * @return {Promise<any>}\n */\n fieldDefinition.resolve = async (parent, args, context, info) => {\n await authorize({ context });\n\n // Execute middlewares (including the policy middleware which will always be included)\n return first(boundMiddlewares)!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n"],"names":["ForbiddenError","errors","introspectionQueries","parseMiddlewares","resolverConfig","strapi","resolverMiddlewares","getOr","map","middleware","isFunction","name","options","Error","wrapResolvers","schema","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","type","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","includes","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","get","path","resolve","baseResolver","middlewares","policyMiddleware","createPoliciesMiddleware","push","boundMiddlewares","index","collection","parents","args","context","info","length","authorize","authConfig","authContext","isValidType","hasConfig","isNil","isAuthDisabled","auth","verify","error","parent","first"],"mappings":"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"}
1
+ {"version":3,"file":"wrap-resolvers.js","sources":["../../../../server/src/services/content-api/wrap-resolvers.ts"],"sourcesContent":["import { get, getOr, isFunction, first, isNil } from 'lodash/fp';\nimport {\n GraphQLObjectType,\n GraphQLResolveInfo,\n GraphQLSchema,\n GraphQLFieldResolver,\n} from 'graphql';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport { createPoliciesMiddleware } from './policy';\n\nconst { ForbiddenError } = errors;\n\nconst introspectionQueries = [\n '__Schema',\n '__Type',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n];\n\ntype GraphQLMiddleware = (\n resolve: GraphQLFieldResolver<any, any>,\n parents: unknown,\n args: unknown,\n context: unknown,\n info: GraphQLResolveInfo\n) => any;\n\n/**\n * Get & parse middlewares definitions from the resolver's config\n * @param {object} resolverConfig\n * @param {object} strapi\n * @return {function[]}\n */\nconst parseMiddlewares = (resolverConfig: any, strapi: Core.Strapi): GraphQLMiddleware[] => {\n const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);\n\n // TODO: [v4] to factorize with compose endpoints (routes)\n return resolverMiddlewares.map(\n (middleware: string | Core.MiddlewareHandler | { name: string; options: any }) => {\n if (isFunction(middleware)) {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware);\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return strapi.middleware(name)(options, { strapi });\n }\n\n throw new Error(\n `Invalid middleware type, expected (function,string,object), received ${typeof middleware}`\n );\n }\n );\n};\n\n/**\n * Wrap the schema's resolvers if they've been\n * customized using the GraphQL extension service\n * @param {object} options\n * @param {GraphQLSchema} options.schema\n * @param {object} options.strapi\n * @param {object} options.extension\n * @return {GraphQLSchema}\n */\nconst wrapResolvers = ({\n schema,\n strapi,\n extension = {},\n}: {\n schema: GraphQLSchema;\n strapi: Core.Strapi;\n extension: any;\n}) => {\n // Get all the registered resolvers configuration\n const { resolversConfig = {} } = extension;\n\n // Fields filters\n const isValidFieldName = (field: string) => !field.startsWith('__');\n\n const typeMap = schema.getTypeMap();\n\n Object.entries(typeMap).forEach(([type, definition]) => {\n const isGraphQLObjectType = definition instanceof GraphQLObjectType;\n const isIgnoredType = introspectionQueries.includes(type);\n\n if (!isGraphQLObjectType || isIgnoredType) {\n return;\n }\n\n const fields = definition.getFields();\n const fieldsToProcess = Object.entries(fields).filter(([field]) => isValidFieldName(field));\n\n for (const [fieldName, fieldDefinition] of fieldsToProcess) {\n const defaultResolver = get(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = getOr({}, path, resolversConfig);\n\n const { resolve: baseResolver = defaultResolver } = fieldDefinition;\n\n // Parse & initialize the middlewares\n const middlewares = parseMiddlewares(resolverConfig, strapi);\n\n // Generate the policy middleware\n const policyMiddleware = createPoliciesMiddleware(resolverConfig, { strapi });\n\n // Add the policyMiddleware at the end of the middlewares collection\n middlewares.push(policyMiddleware);\n\n // Bind every middleware to the next one\n const boundMiddlewares = middlewares.map((middleware, index, collection) => {\n return (parents: unknown, args: unknown, context: unknown, info: GraphQLResolveInfo) =>\n middleware(\n // Make sure the last middleware in the list calls the baseResolver\n index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1],\n parents,\n args,\n context,\n info\n );\n });\n\n /**\n * GraphQL authorization flow\n * @param {object} context\n * @return {Promise<void>}\n */\n const authorize = async ({ context }: any) => {\n const authConfig = get('auth', resolverConfig);\n const authContext = get('state.auth', context);\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = !isNil(authConfig);\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch (error) {\n throw new ForbiddenError();\n }\n }\n };\n\n /**\n * Base resolver wrapper that handles authorization, middlewares & policies\n * @return {Promise<any>}\n */\n fieldDefinition.resolve = async (parent, args, context, info) => {\n await authorize({ context });\n\n // Execute middlewares (including the policy middleware which will always be included)\n return first(boundMiddlewares)!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n"],"names":["ForbiddenError","errors","introspectionQueries","parseMiddlewares","resolverConfig","strapi","resolverMiddlewares","getOr","map","middleware","isFunction","name","options","Error","wrapResolvers","schema","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","type","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","includes","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","get","path","resolve","baseResolver","middlewares","policyMiddleware","createPoliciesMiddleware","push","boundMiddlewares","index","collection","parents","args","context","info","length","authorize","authConfig","authContext","isValidType","hasConfig","isNil","isAuthDisabled","auth","verify","error","parent","first"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-resolvers.mjs","sources":["../../../../server/src/services/content-api/wrap-resolvers.ts"],"sourcesContent":["import { get, getOr, isFunction, first, isNil } from 'lodash/fp';\nimport {\n GraphQLObjectType,\n GraphQLResolveInfo,\n GraphQLSchema,\n GraphQLFieldResolver,\n} from 'graphql';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport { createPoliciesMiddleware } from './policy';\n\nconst { ForbiddenError } = errors;\n\nconst introspectionQueries = [\n '__Schema',\n '__Type',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n];\n\ntype GraphQLMiddleware = (\n resolve: GraphQLFieldResolver<any, any>,\n parents: unknown,\n args: unknown,\n context: unknown,\n info: GraphQLResolveInfo\n) => any;\n\n/**\n * Get & parse middlewares definitions from the resolver's config\n * @param {object} resolverConfig\n * @param {object} strapi\n * @return {function[]}\n */\nconst parseMiddlewares = (resolverConfig: any, strapi: Core.Strapi): GraphQLMiddleware[] => {\n const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);\n\n // TODO: [v4] to factorize with compose endpoints (routes)\n return resolverMiddlewares.map(\n (middleware: string | Core.MiddlewareHandler | { name: string; options: any }) => {\n if (isFunction(middleware)) {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware);\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return strapi.middleware(name)(options, { strapi });\n }\n\n throw new Error(\n `Invalid middleware type, expected (function,string,object), received ${typeof middleware}`\n );\n }\n );\n};\n\n/**\n * Wrap the schema's resolvers if they've been\n * customized using the GraphQL extension service\n * @param {object} options\n * @param {GraphQLSchema} options.schema\n * @param {object} options.strapi\n * @param {object} options.extension\n * @return {GraphQLSchema}\n */\nconst wrapResolvers = ({\n schema,\n strapi,\n extension = {},\n}: {\n schema: GraphQLSchema;\n strapi: Core.Strapi;\n extension: any;\n}) => {\n // Get all the registered resolvers configuration\n const { resolversConfig = {} } = extension;\n\n // Fields filters\n const isValidFieldName = (field: string) => !field.startsWith('__');\n\n const typeMap = schema.getTypeMap();\n\n Object.entries(typeMap).forEach(([type, definition]) => {\n const isGraphQLObjectType = definition instanceof GraphQLObjectType;\n const isIgnoredType = introspectionQueries.includes(type);\n\n if (!isGraphQLObjectType || isIgnoredType) {\n return;\n }\n\n const fields = definition.getFields();\n const fieldsToProcess = Object.entries(fields).filter(([field]) => isValidFieldName(field));\n\n for (const [fieldName, fieldDefinition] of fieldsToProcess) {\n const defaultResolver = get(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = getOr({}, path, resolversConfig);\n\n const { resolve: baseResolver = defaultResolver } = fieldDefinition;\n\n // Parse & initialize the middlewares\n const middlewares = parseMiddlewares(resolverConfig, strapi);\n\n // Generate the policy middleware\n const policyMiddleware = createPoliciesMiddleware(resolverConfig, { strapi });\n\n // Add the policyMiddleware at the end of the middlewares collection\n middlewares.push(policyMiddleware);\n\n // Bind every middleware to the next one\n const boundMiddlewares = middlewares.map((middleware, index, collection) => {\n return (parents: unknown, args: unknown, context: unknown, info: GraphQLResolveInfo) =>\n middleware(\n // Make sure the last middleware in the list calls the baseResolver\n index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1],\n parents,\n args,\n context,\n info\n );\n });\n\n /**\n * GraphQL authorization flow\n * @param {object} context\n * @return {Promise<void>}\n */\n const authorize = async ({ context }: any) => {\n const authConfig = get('auth', resolverConfig);\n const authContext = get('state.auth', context);\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = !isNil(authConfig);\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch (error) {\n throw new ForbiddenError();\n }\n }\n };\n\n /**\n * Base resolver wrapper that handles authorization, middlewares & policies\n * @return {Promise<any>}\n */\n fieldDefinition.resolve = async (parent, args, context, info) => {\n await authorize({ context });\n\n // Execute middlewares (including the policy middleware which will always be included)\n return first(boundMiddlewares)!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n"],"names":["ForbiddenError","errors","introspectionQueries","parseMiddlewares","resolverConfig","strapi","resolverMiddlewares","getOr","map","middleware","isFunction","name","options","Error","wrapResolvers","schema","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","type","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","includes","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","get","path","resolve","baseResolver","middlewares","policyMiddleware","createPoliciesMiddleware","push","boundMiddlewares","index","collection","parents","args","context","info","length","authorize","authConfig","authContext","isValidType","hasConfig","isNil","isAuthDisabled","auth","verify","error","parent","first"],"mappings":"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"}
1
+ {"version":3,"file":"wrap-resolvers.mjs","sources":["../../../../server/src/services/content-api/wrap-resolvers.ts"],"sourcesContent":["import { get, getOr, isFunction, first, isNil } from 'lodash/fp';\nimport {\n GraphQLObjectType,\n GraphQLResolveInfo,\n GraphQLSchema,\n GraphQLFieldResolver,\n} from 'graphql';\nimport { errors } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport { createPoliciesMiddleware } from './policy';\n\nconst { ForbiddenError } = errors;\n\nconst introspectionQueries = [\n '__Schema',\n '__Type',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n];\n\ntype GraphQLMiddleware = (\n resolve: GraphQLFieldResolver<any, any>,\n parents: unknown,\n args: unknown,\n context: unknown,\n info: GraphQLResolveInfo\n) => any;\n\n/**\n * Get & parse middlewares definitions from the resolver's config\n * @param {object} resolverConfig\n * @param {object} strapi\n * @return {function[]}\n */\nconst parseMiddlewares = (resolverConfig: any, strapi: Core.Strapi): GraphQLMiddleware[] => {\n const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);\n\n // TODO: [v4] to factorize with compose endpoints (routes)\n return resolverMiddlewares.map(\n (middleware: string | Core.MiddlewareHandler | { name: string; options: any }) => {\n if (isFunction(middleware)) {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware);\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return strapi.middleware(name)(options, { strapi });\n }\n\n throw new Error(\n `Invalid middleware type, expected (function,string,object), received ${typeof middleware}`\n );\n }\n );\n};\n\n/**\n * Wrap the schema's resolvers if they've been\n * customized using the GraphQL extension service\n * @param {object} options\n * @param {GraphQLSchema} options.schema\n * @param {object} options.strapi\n * @param {object} options.extension\n * @return {GraphQLSchema}\n */\nconst wrapResolvers = ({\n schema,\n strapi,\n extension = {},\n}: {\n schema: GraphQLSchema;\n strapi: Core.Strapi;\n extension: any;\n}) => {\n // Get all the registered resolvers configuration\n const { resolversConfig = {} } = extension;\n\n // Fields filters\n const isValidFieldName = (field: string) => !field.startsWith('__');\n\n const typeMap = schema.getTypeMap();\n\n Object.entries(typeMap).forEach(([type, definition]) => {\n const isGraphQLObjectType = definition instanceof GraphQLObjectType;\n const isIgnoredType = introspectionQueries.includes(type);\n\n if (!isGraphQLObjectType || isIgnoredType) {\n return;\n }\n\n const fields = definition.getFields();\n const fieldsToProcess = Object.entries(fields).filter(([field]) => isValidFieldName(field));\n\n for (const [fieldName, fieldDefinition] of fieldsToProcess) {\n const defaultResolver = get(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = getOr({}, path, resolversConfig);\n\n const { resolve: baseResolver = defaultResolver } = fieldDefinition;\n\n // Parse & initialize the middlewares\n const middlewares = parseMiddlewares(resolverConfig, strapi);\n\n // Generate the policy middleware\n const policyMiddleware = createPoliciesMiddleware(resolverConfig, { strapi });\n\n // Add the policyMiddleware at the end of the middlewares collection\n middlewares.push(policyMiddleware);\n\n // Bind every middleware to the next one\n const boundMiddlewares = middlewares.map((middleware, index, collection) => {\n return (parents: unknown, args: unknown, context: unknown, info: GraphQLResolveInfo) =>\n middleware(\n // Make sure the last middleware in the list calls the baseResolver\n index >= collection.length - 1 ? baseResolver : boundMiddlewares[index + 1],\n parents,\n args,\n context,\n info\n );\n });\n\n /**\n * GraphQL authorization flow\n * @param {object} context\n * @return {Promise<void>}\n */\n const authorize = async ({ context }: any) => {\n const authConfig = get('auth', resolverConfig);\n const authContext = get('state.auth', context);\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = !isNil(authConfig);\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch (error) {\n throw new ForbiddenError();\n }\n }\n };\n\n /**\n * Base resolver wrapper that handles authorization, middlewares & policies\n * @return {Promise<any>}\n */\n fieldDefinition.resolve = async (parent, args, context, info) => {\n await authorize({ context });\n\n // Execute middlewares (including the policy middleware which will always be included)\n return first(boundMiddlewares)!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n"],"names":["ForbiddenError","errors","introspectionQueries","parseMiddlewares","resolverConfig","strapi","resolverMiddlewares","getOr","map","middleware","isFunction","name","options","Error","wrapResolvers","schema","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","type","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","includes","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","get","path","resolve","baseResolver","middlewares","policyMiddleware","createPoliciesMiddleware","push","boundMiddlewares","index","collection","parents","args","context","info","length","authorize","authConfig","authContext","isValidType","hasConfig","isNil","isAuthDisabled","auth","verify","error","parent","first"],"mappings":";;;;;AAYA,MAAM,EAAEA,cAAc,EAAE,GAAGC,MAAAA;AAE3B,MAAMC,oBAAAA,GAAuB;AAC3B,IAAA,UAAA;AACA,IAAA,QAAA;AACA,IAAA,SAAA;AACA,IAAA,cAAA;AACA,IAAA,aAAA;AACA,IAAA;AACD,CAAA;AAUD;;;;;IAMA,MAAMC,gBAAAA,GAAmB,CAACC,cAAAA,EAAqBC,MAAAA,GAAAA;AAC7C,IAAA,MAAMC,mBAAAA,GAAsBC,KAAAA,CAAM,EAAE,EAAE,aAAA,EAAeH,cAAAA,CAAAA;;IAGrD,OAAOE,mBAAAA,CAAoBE,GAAG,CAC5B,CAACC,UAAAA,GAAAA;AACC,QAAA,IAAIC,WAAWD,UAAAA,CAAAA,EAAa;YAC1B,OAAOA,UAAAA;AACT,QAAA;QAEA,IAAI,OAAOA,eAAe,QAAA,EAAU;YAClC,OAAOJ,MAAAA,CAAOI,UAAU,CAACA,UAAAA,CAAAA;AAC3B,QAAA;QAEA,IAAI,OAAOA,eAAe,QAAA,EAAU;AAClC,YAAA,MAAM,EAAEE,IAAI,EAAEC,UAAU,EAAE,EAAE,GAAGH,UAAAA;AAE/B,YAAA,OAAOJ,MAAAA,CAAOI,UAAU,CAACE,IAAAA,CAAAA,CAAMC,OAAAA,EAAS;AAAEP,gBAAAA;AAAO,aAAA,CAAA;AACnD,QAAA;AAEA,QAAA,MAAM,IAAIQ,KAAAA,CACR,CAAC,qEAAqE,EAAE,OAAOJ,UAAAA,CAAAA,CAAY,CAAA;AAE/F,IAAA,CAAA,CAAA;AAEJ,CAAA;AAEA;;;;;;;;IASA,MAAMK,aAAAA,GAAgB,CAAC,EACrBC,MAAM,EACNV,MAAM,EACNW,SAAAA,GAAY,EAAE,EAKf,GAAA;;AAEC,IAAA,MAAM,EAAEC,eAAAA,GAAkB,EAAE,EAAE,GAAGD,SAAAA;;AAGjC,IAAA,MAAME,mBAAmB,CAACC,KAAAA,GAAkB,CAACA,KAAAA,CAAMC,UAAU,CAAC,IAAA,CAAA;IAE9D,MAAMC,OAAAA,GAAUN,OAAOO,UAAU,EAAA;IAEjCC,MAAAA,CAAOC,OAAO,CAACH,OAAAA,CAAAA,CAASI,OAAO,CAAC,CAAC,CAACC,MAAMC,UAAAA,CAAW,GAAA;AACjD,QAAA,MAAMC,sBAAsBD,UAAAA,YAAsBE,iBAAAA;QAClD,MAAMC,aAAAA,GAAgB5B,oBAAAA,CAAqB6B,QAAQ,CAACL,IAAAA,CAAAA;QAEpD,IAAI,CAACE,uBAAuBE,aAAAA,EAAe;AACzC,YAAA;AACF,QAAA;QAEA,MAAME,MAAAA,GAASL,WAAWM,SAAS,EAAA;QACnC,MAAMC,eAAAA,GAAkBX,MAAAA,CAAOC,OAAO,CAACQ,MAAAA,CAAAA,CAAQG,MAAM,CAAC,CAAC,CAAChB,KAAAA,CAAM,GAAKD,gBAAAA,CAAiBC,KAAAA,CAAAA,CAAAA;AAEpF,QAAA,KAAK,MAAM,CAACiB,SAAAA,EAAWC,eAAAA,CAAgB,IAAIH,eAAAA,CAAiB;AAC1D,YAAA,MAAMI,kBAAkBC,GAAAA,CAAIH,SAAAA,CAAAA;AAE5B,YAAA,MAAMI,IAAAA,GAAO,CAAA,EAAGd,IAAAA,CAAK,CAAC,EAAEU,SAAAA,CAAAA,CAAW;AACnC,YAAA,MAAMhC,cAAAA,GAAiBG,KAAAA,CAAM,EAAC,EAAGiC,IAAAA,EAAMvB,eAAAA,CAAAA;AAEvC,YAAA,MAAM,EAAEwB,OAAAA,EAASC,YAAAA,GAAeJ,eAAe,EAAE,GAAGD,eAAAA;;YAGpD,MAAMM,WAAAA,GAAcxC,iBAAiBC,cAAAA,EAAgBC,MAAAA,CAAAA;;YAGrD,MAAMuC,gBAAAA,GAAmBC,yBAAyBzC,cAAAA,EAAgB;AAAEC,gBAAAA;AAAO,aAAA,CAAA;;AAG3EsC,YAAAA,WAAAA,CAAYG,IAAI,CAACF,gBAAAA,CAAAA;;AAGjB,YAAA,MAAMG,mBAAmBJ,WAAAA,CAAYnC,GAAG,CAAC,CAACC,YAAYuC,KAAAA,EAAOC,UAAAA,GAAAA;AAC3D,gBAAA,OAAO,CAACC,OAAAA,EAAkBC,IAAAA,EAAeC,OAAAA,EAAkBC,IAAAA,GACzD5C;AAEEuC,oBAAAA,KAAAA,IAASC,UAAAA,CAAWK,MAAM,GAAG,CAAA,GAAIZ,YAAAA,GAAeK,gBAAgB,CAACC,KAAAA,GAAQ,CAAA,CAAE,EAC3EE,OAAAA,EACAC,IAAAA,EACAC,OAAAA,EACAC,IAAAA,CAAAA;AAEN,YAAA,CAAA,CAAA;AAEA;;;;AAIC,UACD,MAAME,SAAAA,GAAY,OAAO,EAAEH,OAAO,EAAO,GAAA;gBACvC,MAAMI,UAAAA,GAAajB,IAAI,MAAA,EAAQnC,cAAAA,CAAAA;gBAC/B,MAAMqD,WAAAA,GAAclB,IAAI,YAAA,EAAca,OAAAA,CAAAA;AAEtC,gBAAA,MAAMM,WAAAA,GAAc;AAAC,oBAAA,UAAA;AAAY,oBAAA,OAAA;AAAS,oBAAA;AAAe,iBAAA,CAAC3B,QAAQ,CAACL,IAAAA,CAAAA;gBACnE,MAAMiC,SAAAA,GAAY,CAACC,KAAAA,CAAMJ,UAAAA,CAAAA;AAEzB,gBAAA,MAAMK,iBAAiBL,UAAAA,KAAe,KAAA;AAEtC,gBAAA,IAAI,CAACE,WAAAA,IAAeC,SAAQ,KAAM,CAACE,cAAAA,EAAgB;oBACjD,IAAI;AACF,wBAAA,MAAMxD,MAAAA,CAAOyD,IAAI,CAACC,MAAM,CAACN,WAAAA,EAAaD,UAAAA,CAAAA;AACxC,oBAAA,CAAA,CAAE,OAAOQ,KAAAA,EAAO;AACd,wBAAA,MAAM,IAAIhE,cAAAA,EAAAA;AACZ,oBAAA;AACF,gBAAA;AACF,YAAA,CAAA;AAEA;;;AAGC,UACDqC,gBAAgBI,OAAO,GAAG,OAAOwB,MAAAA,EAAQd,MAAMC,OAAAA,EAASC,IAAAA,GAAAA;AACtD,gBAAA,MAAME,SAAAA,CAAU;AAAEH,oBAAAA;AAAQ,iBAAA,CAAA;;AAG1B,gBAAA,OAAOc,KAAAA,CAAMnB,gBAAAA,CAAAA,CAAmBkB,MAAAA,EAAQd,IAAAA,EAAMC,OAAAA,EAASC,IAAAA,CAAAA;AACzD,YAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA,CAAA;IAEA,OAAOtC,MAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAkB,GAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAYC,EAAAA,iBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,SAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAW,KAAA,UAAA,GAAaA,MAAO,CAAA;AAAEV,oBAAAA,MAAAA;AAAQW,2BAAAA,gBAAAA;AAAOH,oBAAAA;iBAAkBE,CAAAA,GAAAA,MAAAA;AAClF,aAAA;;AAGA,YAAA,OAAOT,OAAQW,CAAAA,MAAM,CAAC,CAACC,GAAKR,EAAAA,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAcJ,CAAAA,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAU,EAAA;oBAChCkB,GAAIlB,CAAAA,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAQ,CAAA,EAAA;oBACxBmB,GAAInB,CAAAA,KAAK,CAACY,IAAI,CAAIZ,GAAAA,KAAAA,CAAAA;AACpB;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAU,CAAA,EAAA;oBAC1Be,GAAIf,CAAAA,OAAO,CAACQ,IAAI,CAAIR,GAAAA,OAAAA,CAAAA;AACtB;;gBAGA,IAAI,OAAOF,cAAc,QAAU,EAAA;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,QAAMH,CAAAA,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC;;gBAGA,IAAI,OAAOC,oBAAoB,QAAU,EAAA;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,QAAMnB,CAAAA,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE;gBAEA,OAAOgB,GAAAA;aACNpB,EAAAA,eAAAA,EAAAA,CAAAA;AACL;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"extension.js","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAAA,GAAkB,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAAA,EAAYC,iBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAAA,KAAW,UAAA,GAAaA,MAAAA,CAAO;AAAEV,oBAAAA,MAAAA;AAAQW,2BAAAA,gBAAAA;AAAOH,oBAAAA;iBAAa,CAAA,GAAKE,MAAAA;AAClF,YAAA,CAAA;;AAGA,YAAA,OAAOT,OAAAA,CAAQW,MAAM,CAAC,CAACC,GAAAA,EAAKR,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAAA,CAAcJ,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAA,EAAU;oBAChCkB,GAAAA,CAAIlB,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAAA,CAAAA,EAAQ;oBACxBmB,GAAAA,CAAInB,KAAK,CAACY,IAAI,CAAA,GAAIZ,KAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAAA,CAAAA,EAAU;oBAC1Be,GAAAA,CAAIf,OAAO,CAACQ,IAAI,CAAA,GAAIR,OAAAA,CAAAA;AACtB,gBAAA;;gBAGA,IAAI,OAAOF,cAAc,QAAA,EAAU;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,QAAAA,CAAMH,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC,gBAAA;;gBAGA,IAAI,OAAOC,oBAAoB,QAAA,EAAU;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,QAAAA,CAAMnB,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE,gBAAA;gBAEA,OAAOgB,GAAAA;YACT,CAAA,EAAGpB,eAAAA,EAAAA,CAAAA;AACL,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"extension.mjs","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAkB,GAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAYC,EAAAA,uBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,SAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAW,KAAA,UAAA,GAAaA,MAAO,CAAA;AAAEV,oBAAAA,MAAAA;AAAQW,oBAAAA,KAAAA;AAAOH,oBAAAA;iBAAkBE,CAAAA,GAAAA,MAAAA;AAClF,aAAA;;AAGA,YAAA,OAAOT,OAAQW,CAAAA,MAAM,CAAC,CAACC,GAAKR,EAAAA,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAcJ,CAAAA,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAU,EAAA;oBAChCkB,GAAIlB,CAAAA,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAQ,CAAA,EAAA;oBACxBmB,GAAInB,CAAAA,KAAK,CAACY,IAAI,CAAIZ,GAAAA,KAAAA,CAAAA;AACpB;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAU,CAAA,EAAA;oBAC1Be,GAAIf,CAAAA,OAAO,CAACQ,IAAI,CAAIR,GAAAA,OAAAA,CAAAA;AACtB;;gBAGA,IAAI,OAAOF,cAAc,QAAU,EAAA;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,KAAMH,CAAAA,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC;;gBAGA,IAAI,OAAOC,oBAAoB,QAAU,EAAA;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,KAAMnB,CAAAA,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE;gBAEA,OAAOgB,GAAAA;aACNpB,EAAAA,eAAAA,EAAAA,CAAAA;AACL;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"extension.mjs","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAAA,GAAkB,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAAA,EAAYC,uBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAAA,KAAW,UAAA,GAAaA,MAAAA,CAAO;AAAEV,oBAAAA,MAAAA;AAAQW,oBAAAA,KAAAA;AAAOH,oBAAAA;iBAAa,CAAA,GAAKE,MAAAA;AAClF,YAAA,CAAA;;AAGA,YAAA,OAAOT,OAAAA,CAAQW,MAAM,CAAC,CAACC,GAAAA,EAAKR,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAAA,CAAcJ,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAA,EAAU;oBAChCkB,GAAAA,CAAIlB,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAAA,CAAAA,EAAQ;oBACxBmB,GAAAA,CAAInB,KAAK,CAACY,IAAI,CAAA,GAAIZ,KAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAAA,CAAAA,EAAU;oBAC1Be,GAAAA,CAAIf,OAAO,CAACQ,IAAI,CAAA,GAAIR,OAAAA,CAAAA;AACtB,gBAAA;;gBAGA,IAAI,OAAOF,cAAc,QAAA,EAAU;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,KAAAA,CAAMH,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC,gBAAA;;gBAGA,IAAI,OAAOC,oBAAoB,QAAA,EAAU;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,KAAAA,CAAMnB,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE,gBAAA;gBAEA,OAAOgB,GAAAA;YACT,CAAA,EAAGpB,eAAAA,EAAAA,CAAAA;AACL,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-crud-manager.js","sources":["../../../../server/src/services/extension/shadow-crud-manager.ts"],"sourcesContent":["export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n"],"names":["getDefaultContentTypeConfig","enabled","mutations","queries","disabledActions","fields","Map","getDefaultFieldConfig","input","output","filters","ALL_ACTIONS","configs","uid","has","set","isEnabled","get","isDisabled","areQueriesEnabled","areQueriesDisabled","areMutationsEnabled","areMutationsDisabled","isActionEnabled","action","matchingActions","every","includes","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":"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"}
1
+ {"version":3,"file":"shadow-crud-manager.js","sources":["../../../../server/src/services/extension/shadow-crud-manager.ts"],"sourcesContent":["export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n"],"names":["getDefaultContentTypeConfig","enabled","mutations","queries","disabledActions","fields","Map","getDefaultFieldConfig","input","output","filters","ALL_ACTIONS","configs","uid","has","set","isEnabled","get","isDisabled","areQueriesEnabled","areQueriesDisabled","areMutationsEnabled","areMutationsDisabled","isActionEnabled","action","matchingActions","every","includes","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-crud-manager.mjs","sources":["../../../../server/src/services/extension/shadow-crud-manager.ts"],"sourcesContent":["export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n"],"names":["getDefaultContentTypeConfig","enabled","mutations","queries","disabledActions","fields","Map","getDefaultFieldConfig","input","output","filters","ALL_ACTIONS","configs","uid","has","set","isEnabled","get","isDisabled","areQueriesEnabled","areQueriesDisabled","areMutationsEnabled","areMutationsDisabled","isActionEnabled","action","matchingActions","every","includes","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":"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"}
1
+ {"version":3,"file":"shadow-crud-manager.mjs","sources":["../../../../server/src/services/extension/shadow-crud-manager.ts"],"sourcesContent":["export type ContentTypeConfig = {\n enabled: boolean;\n\n mutations: boolean;\n queries: boolean;\n\n disabledActions: string[];\n fields: Map<string, FieldConfig>;\n};\n\nexport type FieldConfig = {\n enabled: boolean;\n\n input: boolean;\n output: boolean;\n\n filters: boolean;\n};\n\nconst getDefaultContentTypeConfig = (): ContentTypeConfig => ({\n enabled: true,\n\n mutations: true,\n queries: true,\n\n disabledActions: [],\n fields: new Map(),\n});\n\nconst getDefaultFieldConfig = (): FieldConfig => ({\n enabled: true,\n\n input: true,\n output: true,\n\n filters: true,\n});\n\nconst ALL_ACTIONS = '*';\n\nexport default () => {\n const configs = new Map<string, ContentTypeConfig>();\n\n return (uid: string) => {\n if (!configs.has(uid)) {\n configs.set(uid, getDefaultContentTypeConfig());\n }\n\n return {\n isEnabled() {\n return configs.get(uid)!.enabled;\n },\n\n isDisabled() {\n return !this.isEnabled();\n },\n\n areQueriesEnabled() {\n return configs.get(uid)!.queries;\n },\n\n areQueriesDisabled() {\n return !this.areQueriesEnabled();\n },\n\n areMutationsEnabled() {\n return configs.get(uid)!.mutations;\n },\n\n areMutationsDisabled() {\n return !this.areMutationsEnabled();\n },\n\n isActionEnabled(action: string) {\n const matchingActions = [action, ALL_ACTIONS];\n\n return configs\n .get(uid)!\n .disabledActions.every((action) => !matchingActions.includes(action));\n },\n\n isActionDisabled(action: string) {\n return !this.isActionEnabled(action);\n },\n\n disable() {\n configs.get(uid)!.enabled = false;\n\n return this;\n },\n\n disableQueries() {\n configs.get(uid)!.queries = false;\n\n return this;\n },\n\n disableMutations() {\n configs.get(uid)!.mutations = false;\n\n return this;\n },\n\n disableAction(action: string) {\n const config = configs.get(uid)!;\n\n if (!config.disabledActions.includes(action)) {\n config.disabledActions.push(action);\n }\n\n return this;\n },\n\n disableActions(actions = []) {\n actions.forEach((action) => this.disableAction(action));\n\n return this;\n },\n\n field(fieldName: string) {\n const { fields } = configs.get(uid)!;\n\n if (!fields.has(fieldName)) {\n fields.set(fieldName, getDefaultFieldConfig());\n }\n\n return {\n isEnabled() {\n return fields.get(fieldName)!.enabled;\n },\n\n hasInputEnabled() {\n return fields.get(fieldName)!.input;\n },\n\n hasOutputEnabled() {\n return fields.get(fieldName)!.output;\n },\n\n hasFiltersEnabeld() {\n return fields.get(fieldName)!.filters;\n },\n\n disable() {\n fields.set(fieldName, {\n enabled: false,\n\n output: false,\n input: false,\n\n filters: false,\n });\n\n return this;\n },\n\n disableOutput() {\n fields.get(fieldName)!.output = false;\n\n return this;\n },\n\n disableInput() {\n fields.get(fieldName)!.input = false;\n\n return this;\n },\n\n disableFilters() {\n fields.get(fieldName)!.filters = false;\n\n return this;\n },\n };\n },\n };\n };\n};\n"],"names":["getDefaultContentTypeConfig","enabled","mutations","queries","disabledActions","fields","Map","getDefaultFieldConfig","input","output","filters","ALL_ACTIONS","configs","uid","has","set","isEnabled","get","isDisabled","areQueriesEnabled","areQueriesDisabled","areMutationsEnabled","areMutationsDisabled","isActionEnabled","action","matchingActions","every","includes","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../server/src/services/format/index.ts"],"sourcesContent":["import returnTypes from './return-types';\n\nexport default () => ({\n returnTypes: returnTypes(),\n});\n"],"names":["returnTypes"],"mappings":";;;;AAEA,aAAe,CAAA,KAAO;QACpBA,WAAaA,EAAAA,WAAAA;AACf,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../server/src/services/format/index.ts"],"sourcesContent":["import returnTypes from './return-types';\n\nexport default () => ({\n returnTypes: returnTypes(),\n});\n"],"names":["returnTypes"],"mappings":";;;;AAEA,aAAe,CAAA,KAAO;QACpBA,WAAAA,EAAaA,WAAAA;AACf,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../server/src/services/format/index.ts"],"sourcesContent":["import returnTypes from './return-types';\n\nexport default () => ({\n returnTypes: returnTypes(),\n});\n"],"names":["returnTypes"],"mappings":";;AAEA,aAAe,CAAA,KAAO;QACpBA,WAAaA,EAAAA,WAAAA;AACf,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../server/src/services/format/index.ts"],"sourcesContent":["import returnTypes from './return-types';\n\nexport default () => ({\n returnTypes: returnTypes(),\n});\n"],"names":["returnTypes"],"mappings":";;AAEA,aAAe,CAAA,KAAO;QACpBA,WAAAA,EAAaA,WAAAA;AACf,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"return-types.js","sources":["../../../../server/src/services/format/return-types.ts"],"sourcesContent":["export type InfoType = {\n args?: unknown;\n resourceUID?: string;\n};\n\nexport default () => ({\n toEntityResponse(value: unknown, info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { value, info: { args, resourceUID } };\n },\n\n toEntityResponseCollection(nodes: unknown[], info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { nodes, info: { args, resourceUID } };\n },\n});\n"],"names":["toEntityResponse","value","info","args","resourceUID","toEntityResponseCollection","nodes"],"mappings":";;AAKA,kBAAe,CAAA,KAAO;AACpBA,QAAAA,gBAAAA,CAAAA,CAAiBC,KAAc,EAAEC,IAAiB,GAAA,EAAE,EAAA;AAClD,YAAA,MAAM,EAAEC,IAAO,GAAA,EAAE,EAAEC,WAAW,EAAE,GAAGF,IAAAA;YAEnC,OAAO;AAAED,gBAAAA,KAAAA;gBAAOC,IAAM,EAAA;AAAEC,oBAAAA,IAAAA;AAAMC,oBAAAA;AAAY;AAAE,aAAA;AAC9C,SAAA;AAEAC,QAAAA,0BAAAA,CAAAA,CAA2BC,KAAgB,EAAEJ,IAAiB,GAAA,EAAE,EAAA;AAC9D,YAAA,MAAM,EAAEC,IAAO,GAAA,EAAE,EAAEC,WAAW,EAAE,GAAGF,IAAAA;YAEnC,OAAO;AAAEI,gBAAAA,KAAAA;gBAAOJ,IAAM,EAAA;AAAEC,oBAAAA,IAAAA;AAAMC,oBAAAA;AAAY;AAAE,aAAA;AAC9C;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"return-types.js","sources":["../../../../server/src/services/format/return-types.ts"],"sourcesContent":["export type InfoType = {\n args?: unknown;\n resourceUID?: string;\n};\n\nexport default () => ({\n toEntityResponse(value: unknown, info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { value, info: { args, resourceUID } };\n },\n\n toEntityResponseCollection(nodes: unknown[], info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { nodes, info: { args, resourceUID } };\n },\n});\n"],"names":["toEntityResponse","value","info","args","resourceUID","toEntityResponseCollection","nodes"],"mappings":";;AAKA,kBAAe,CAAA,KAAO;AACpBA,QAAAA,gBAAAA,CAAAA,CAAiBC,KAAc,EAAEC,IAAAA,GAAiB,EAAE,EAAA;AAClD,YAAA,MAAM,EAAEC,IAAAA,GAAO,EAAE,EAAEC,WAAW,EAAE,GAAGF,IAAAA;YAEnC,OAAO;AAAED,gBAAAA,KAAAA;gBAAOC,IAAAA,EAAM;AAAEC,oBAAAA,IAAAA;AAAMC,oBAAAA;AAAY;AAAE,aAAA;AAC9C,QAAA,CAAA;AAEAC,QAAAA,0BAAAA,CAAAA,CAA2BC,KAAgB,EAAEJ,IAAAA,GAAiB,EAAE,EAAA;AAC9D,YAAA,MAAM,EAAEC,IAAAA,GAAO,EAAE,EAAEC,WAAW,EAAE,GAAGF,IAAAA;YAEnC,OAAO;AAAEI,gBAAAA,KAAAA;gBAAOJ,IAAAA,EAAM;AAAEC,oBAAAA,IAAAA;AAAMC,oBAAAA;AAAY;AAAE,aAAA;AAC9C,QAAA;AACF,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"return-types.mjs","sources":["../../../../server/src/services/format/return-types.ts"],"sourcesContent":["export type InfoType = {\n args?: unknown;\n resourceUID?: string;\n};\n\nexport default () => ({\n toEntityResponse(value: unknown, info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { value, info: { args, resourceUID } };\n },\n\n toEntityResponseCollection(nodes: unknown[], info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { nodes, info: { args, resourceUID } };\n },\n});\n"],"names":["toEntityResponse","value","info","args","resourceUID","toEntityResponseCollection","nodes"],"mappings":"AAKA,kBAAe,CAAA,KAAO;AACpBA,QAAAA,gBAAAA,CAAAA,CAAiBC,KAAc,EAAEC,IAAiB,GAAA,EAAE,EAAA;AAClD,YAAA,MAAM,EAAEC,IAAO,GAAA,EAAE,EAAEC,WAAW,EAAE,GAAGF,IAAAA;YAEnC,OAAO;AAAED,gBAAAA,KAAAA;gBAAOC,IAAM,EAAA;AAAEC,oBAAAA,IAAAA;AAAMC,oBAAAA;AAAY;AAAE,aAAA;AAC9C,SAAA;AAEAC,QAAAA,0BAAAA,CAAAA,CAA2BC,KAAgB,EAAEJ,IAAiB,GAAA,EAAE,EAAA;AAC9D,YAAA,MAAM,EAAEC,IAAO,GAAA,EAAE,EAAEC,WAAW,EAAE,GAAGF,IAAAA;YAEnC,OAAO;AAAEI,gBAAAA,KAAAA;gBAAOJ,IAAM,EAAA;AAAEC,oBAAAA,IAAAA;AAAMC,oBAAAA;AAAY;AAAE,aAAA;AAC9C;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"return-types.mjs","sources":["../../../../server/src/services/format/return-types.ts"],"sourcesContent":["export type InfoType = {\n args?: unknown;\n resourceUID?: string;\n};\n\nexport default () => ({\n toEntityResponse(value: unknown, info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { value, info: { args, resourceUID } };\n },\n\n toEntityResponseCollection(nodes: unknown[], info: InfoType = {}) {\n const { args = {}, resourceUID } = info;\n\n return { nodes, info: { args, resourceUID } };\n },\n});\n"],"names":["toEntityResponse","value","info","args","resourceUID","toEntityResponseCollection","nodes"],"mappings":"AAKA,kBAAe,CAAA,KAAO;AACpBA,QAAAA,gBAAAA,CAAAA,CAAiBC,KAAc,EAAEC,IAAAA,GAAiB,EAAE,EAAA;AAClD,YAAA,MAAM,EAAEC,IAAAA,GAAO,EAAE,EAAEC,WAAW,EAAE,GAAGF,IAAAA;YAEnC,OAAO;AAAED,gBAAAA,KAAAA;gBAAOC,IAAAA,EAAM;AAAEC,oBAAAA,IAAAA;AAAMC,oBAAAA;AAAY;AAAE,aAAA;AAC9C,QAAA,CAAA;AAEAC,QAAAA,0BAAAA,CAAAA,CAA2BC,KAAgB,EAAEJ,IAAAA,GAAiB,EAAE,EAAA;AAC9D,YAAA,MAAM,EAAEC,IAAAA,GAAO,EAAE,EAAEC,WAAW,EAAE,GAAGF,IAAAA;YAEnC,OAAO;AAAEI,gBAAAA,KAAAA;gBAAOJ,IAAAA,EAAM;AAAEC,oBAAAA,IAAAA;AAAMC,oBAAAA;AAAY;AAAE,aAAA;AAC9C,QAAA;AACF,KAAA,CAAC;;;;"}
@@ -1,23 +1,23 @@
1
1
  'use strict';
2
2
 
3
- var index$1 = require('./content-api/index.js');
3
+ var index$3 = require('./content-api/index.js');
4
4
  var typeRegistry = require('./type-registry.js');
5
- var index$4 = require('./utils/index.js');
5
+ var index = require('./utils/index.js');
6
6
  var constants = require('./constants.js');
7
- var index$3 = require('./internals/index.js');
8
- var index = require('./builders/index.js');
7
+ var index$1 = require('./internals/index.js');
8
+ var index$4 = require('./builders/index.js');
9
9
  var extension = require('./extension/extension.js');
10
10
  var index$2 = require('./format/index.js');
11
11
 
12
12
  const services = {
13
- builders: index,
14
- 'content-api': index$1,
13
+ builders: index$4,
14
+ 'content-api': index$3,
15
15
  constants,
16
16
  extension,
17
17
  format: index$2,
18
- internals: index$3,
18
+ internals: index$1,
19
19
  'type-registry': typeRegistry,
20
- utils: index$4
20
+ utils: index
21
21
  };
22
22
 
23
23
  exports.services = services;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import contentAPI from './content-api';\nimport typeRegistry from './type-registry';\nimport utils from './utils';\nimport constants from './constants';\nimport internals from './internals';\nimport builders from './builders';\nimport extension from './extension';\nimport format from './format';\n\nexport const services = {\n builders,\n 'content-api': contentAPI,\n constants,\n extension,\n format,\n internals,\n 'type-registry': typeRegistry,\n utils,\n};\n"],"names":["services","builders","contentAPI","constants","extension","format","internals","typeRegistry","utils"],"mappings":";;;;;;;;;;;MASaA,QAAW,GAAA;AACtBC,cAAAA,KAAAA;IACA,aAAeC,EAAAA,OAAAA;AACfC,IAAAA,SAAAA;AACAC,IAAAA,SAAAA;AACAC,YAAAA,OAAAA;AACAC,eAAAA,OAAAA;IACA,eAAiBC,EAAAA,YAAAA;AACjBC,WAAAA;AACF;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import contentAPI from './content-api';\nimport typeRegistry from './type-registry';\nimport utils from './utils';\nimport constants from './constants';\nimport internals from './internals';\nimport builders from './builders';\nimport extension from './extension';\nimport format from './format';\n\nexport const services = {\n builders,\n 'content-api': contentAPI,\n constants,\n extension,\n format,\n internals,\n 'type-registry': typeRegistry,\n utils,\n};\n"],"names":["services","builders","contentAPI","constants","extension","format","internals","typeRegistry","utils"],"mappings":";;;;;;;;;;;MASaA,QAAAA,GAAW;AACtBC,cAAAA,OAAAA;IACA,aAAA,EAAeC,OAAAA;AACfC,IAAAA,SAAAA;AACAC,IAAAA,SAAAA;AACAC,YAAAA,OAAAA;AACAC,eAAAA,OAAAA;IACA,eAAA,EAAiBC,YAAAA;AACjBC,WAAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import contentAPI from './content-api';\nimport typeRegistry from './type-registry';\nimport utils from './utils';\nimport constants from './constants';\nimport internals from './internals';\nimport builders from './builders';\nimport extension from './extension';\nimport format from './format';\n\nexport const services = {\n builders,\n 'content-api': contentAPI,\n constants,\n extension,\n format,\n internals,\n 'type-registry': typeRegistry,\n utils,\n};\n"],"names":["services","builders","contentAPI","constants","extension","format","internals","typeRegistry","utils"],"mappings":";;;;;;;;;MASaA,QAAW,GAAA;AACtBC,IAAAA,QAAAA;IACA,aAAeC,EAAAA,UAAAA;AACfC,IAAAA,SAAAA;AACAC,eAAAA,eAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,SAAAA;IACA,eAAiBC,EAAAA,YAAAA;AACjBC,IAAAA;AACF;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import contentAPI from './content-api';\nimport typeRegistry from './type-registry';\nimport utils from './utils';\nimport constants from './constants';\nimport internals from './internals';\nimport builders from './builders';\nimport extension from './extension';\nimport format from './format';\n\nexport const services = {\n builders,\n 'content-api': contentAPI,\n constants,\n extension,\n format,\n internals,\n 'type-registry': typeRegistry,\n utils,\n};\n"],"names":["services","builders","contentAPI","constants","extension","format","internals","typeRegistry","utils"],"mappings":";;;;;;;;;MASaA,QAAAA,GAAW;AACtBC,IAAAA,QAAAA;IACA,aAAA,EAAeC,UAAAA;AACfC,IAAAA,SAAAA;AACAC,eAAAA,eAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,SAAAA;IACA,eAAA,EAAiBC,YAAAA;AACjBC,IAAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../server/src/services/internals/args/index.ts"],"sourcesContent":["import SortArg from './sort';\nimport publicationStatus from './publication-status';\nimport hasPublishedVersion from './has-published-version';\nimport PaginationArg from './pagination';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n SortArg,\n PaginationArg,\n PublicationStatusArg: publicationStatus(context),\n HasPublishedVersionArg: hasPublishedVersion(),\n});\n"],"names":["context","SortArg","PaginationArg","PublicationStatusArg","publicationStatus","HasPublishedVersionArg","hasPublishedVersion"],"mappings":";;;;;;;AAMA,WAAe,CAAA,CAACA,OAAAA,IAAsB;AACpCC,iBAAAA,IAAAA;AACAC,uBAAAA,UAAAA;AACAC,QAAAA,oBAAAA,EAAsBC,iBAAkBJ,CAAAA,OAAAA,CAAAA;QACxCK,sBAAwBC,EAAAA,mBAAAA;AAC1B,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../server/src/services/internals/args/index.ts"],"sourcesContent":["import SortArg from './sort';\nimport publicationStatus from './publication-status';\nimport hasPublishedVersion from './has-published-version';\nimport PaginationArg from './pagination';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n SortArg,\n PaginationArg,\n PublicationStatusArg: publicationStatus(context),\n HasPublishedVersionArg: hasPublishedVersion(),\n});\n"],"names":["context","SortArg","PaginationArg","PublicationStatusArg","publicationStatus","HasPublishedVersionArg","hasPublishedVersion"],"mappings":";;;;;;;AAMA,WAAe,CAAA,CAACA,OAAAA,IAAsB;AACpCC,iBAAAA,IAAAA;AACAC,uBAAAA,UAAAA;AACAC,QAAAA,oBAAAA,EAAsBC,iBAAAA,CAAkBJ,OAAAA,CAAAA;QACxCK,sBAAAA,EAAwBC,mBAAAA;AAC1B,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../server/src/services/internals/args/index.ts"],"sourcesContent":["import SortArg from './sort';\nimport publicationStatus from './publication-status';\nimport hasPublishedVersion from './has-published-version';\nimport PaginationArg from './pagination';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n SortArg,\n PaginationArg,\n PublicationStatusArg: publicationStatus(context),\n HasPublishedVersionArg: hasPublishedVersion(),\n});\n"],"names":["context","SortArg","PaginationArg","PublicationStatusArg","publicationStatus","HasPublishedVersionArg","hasPublishedVersion"],"mappings":";;;;;AAMA,WAAe,CAAA,CAACA,OAAAA,IAAsB;AACpCC,QAAAA,OAAAA;AACAC,QAAAA,aAAAA;AACAC,QAAAA,oBAAAA,EAAsBC,iBAAkBJ,CAAAA,OAAAA,CAAAA;QACxCK,sBAAwBC,EAAAA,mBAAAA;AAC1B,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../server/src/services/internals/args/index.ts"],"sourcesContent":["import SortArg from './sort';\nimport publicationStatus from './publication-status';\nimport hasPublishedVersion from './has-published-version';\nimport PaginationArg from './pagination';\nimport type { Context } from '../../types';\n\nexport default (context: Context) => ({\n SortArg,\n PaginationArg,\n PublicationStatusArg: publicationStatus(context),\n HasPublishedVersionArg: hasPublishedVersion(),\n});\n"],"names":["context","SortArg","PaginationArg","PublicationStatusArg","publicationStatus","HasPublishedVersionArg","hasPublishedVersion"],"mappings":";;;;;AAMA,WAAe,CAAA,CAACA,OAAAA,IAAsB;AACpCC,QAAAA,OAAAA;AACAC,QAAAA,aAAAA;AACAC,QAAAA,oBAAAA,EAAsBC,iBAAAA,CAAkBJ,OAAAA,CAAAA;QACxCK,sBAAAA,EAAwBC,mBAAAA;AAC1B,KAAA,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sources":["../../../../../server/src/services/internals/args/pagination.ts"],"sourcesContent":["import { arg, inputObjectType } from 'nexus';\n\nconst PaginationInputType = inputObjectType({\n name: 'PaginationArg',\n\n definition(t) {\n t.int('page');\n t.int('pageSize');\n t.int('start');\n t.int('limit');\n },\n});\n\nexport default arg({\n type: PaginationInputType,\n default: {},\n});\n"],"names":["PaginationInputType","inputObjectType","name","definition","t","int","arg","type","default"],"mappings":";;;;AAEA,MAAMA,sBAAsBC,qBAAgB,CAAA;IAC1CC,IAAM,EAAA,eAAA;AAENC,IAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,QAAAA,CAAAA,CAAEC,GAAG,CAAC,MAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,UAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,OAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,OAAA,CAAA;AACR;AACF,CAAA,CAAA;AAEA,oBAAeC,SAAI,CAAA;IACjBC,IAAMP,EAAAA,mBAAAA;AACNQ,IAAAA,OAAAA,EAAS;AACX,CAAG,CAAA;;;;"}
1
+ {"version":3,"file":"pagination.js","sources":["../../../../../server/src/services/internals/args/pagination.ts"],"sourcesContent":["import { arg, inputObjectType } from 'nexus';\n\nconst PaginationInputType = inputObjectType({\n name: 'PaginationArg',\n\n definition(t) {\n t.int('page');\n t.int('pageSize');\n t.int('start');\n t.int('limit');\n },\n});\n\nexport default arg({\n type: PaginationInputType,\n default: {},\n});\n"],"names":["PaginationInputType","inputObjectType","name","definition","t","int","arg","type","default"],"mappings":";;;;AAEA,MAAMA,sBAAsBC,qBAAAA,CAAgB;IAC1CC,IAAAA,EAAM,eAAA;AAENC,IAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,QAAAA,CAAAA,CAAEC,GAAG,CAAC,MAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,UAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,OAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,OAAA,CAAA;AACR,IAAA;AACF,CAAA,CAAA;AAEA,oBAAeC,SAAAA,CAAI;IACjBC,IAAAA,EAAMP,mBAAAA;AACNQ,IAAAA,OAAAA,EAAS;AACX,CAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.mjs","sources":["../../../../../server/src/services/internals/args/pagination.ts"],"sourcesContent":["import { arg, inputObjectType } from 'nexus';\n\nconst PaginationInputType = inputObjectType({\n name: 'PaginationArg',\n\n definition(t) {\n t.int('page');\n t.int('pageSize');\n t.int('start');\n t.int('limit');\n },\n});\n\nexport default arg({\n type: PaginationInputType,\n default: {},\n});\n"],"names":["PaginationInputType","inputObjectType","name","definition","t","int","arg","type","default"],"mappings":";;AAEA,MAAMA,sBAAsBC,eAAgB,CAAA;IAC1CC,IAAM,EAAA,eAAA;AAENC,IAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,QAAAA,CAAAA,CAAEC,GAAG,CAAC,MAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,UAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,OAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,OAAA,CAAA;AACR;AACF,CAAA,CAAA;AAEA,oBAAeC,GAAI,CAAA;IACjBC,IAAMP,EAAAA,mBAAAA;AACNQ,IAAAA,OAAAA,EAAS;AACX,CAAG,CAAA;;;;"}
1
+ {"version":3,"file":"pagination.mjs","sources":["../../../../../server/src/services/internals/args/pagination.ts"],"sourcesContent":["import { arg, inputObjectType } from 'nexus';\n\nconst PaginationInputType = inputObjectType({\n name: 'PaginationArg',\n\n definition(t) {\n t.int('page');\n t.int('pageSize');\n t.int('start');\n t.int('limit');\n },\n});\n\nexport default arg({\n type: PaginationInputType,\n default: {},\n});\n"],"names":["PaginationInputType","inputObjectType","name","definition","t","int","arg","type","default"],"mappings":";;AAEA,MAAMA,sBAAsBC,eAAAA,CAAgB;IAC1CC,IAAAA,EAAM,eAAA;AAENC,IAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,QAAAA,CAAAA,CAAEC,GAAG,CAAC,MAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,UAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,OAAA,CAAA;AACND,QAAAA,CAAAA,CAAEC,GAAG,CAAC,OAAA,CAAA;AACR,IAAA;AACF,CAAA,CAAA;AAEA,oBAAeC,GAAAA,CAAI;IACjBC,IAAAA,EAAMP,mBAAAA;AACNQ,IAAAA,OAAAA,EAAS;AACX,CAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"publication-status.js","sources":["../../../../../server/src/services/internals/args/publication-status.ts"],"sourcesContent":["import { arg } from 'nexus';\nimport { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { PUBLICATION_STATUS_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return arg({\n type: PUBLICATION_STATUS_TYPE_NAME,\n default: 'published',\n });\n};\n"],"names":["strapi","PUBLICATION_STATUS_TYPE_NAME","plugin","service","arg","type","default"],"mappings":";;;;AAGA,wBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,4BAA4B,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,WAAA,CAAA;AAE1E,IAAA,OAAOC,SAAI,CAAA;QACTC,IAAMJ,EAAAA,4BAAAA;QACNK,OAAS,EAAA;AACX,KAAA,CAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"publication-status.js","sources":["../../../../../server/src/services/internals/args/publication-status.ts"],"sourcesContent":["import { arg } from 'nexus';\nimport { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { PUBLICATION_STATUS_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return arg({\n type: PUBLICATION_STATUS_TYPE_NAME,\n default: 'published',\n });\n};\n"],"names":["strapi","PUBLICATION_STATUS_TYPE_NAME","plugin","service","arg","type","default"],"mappings":";;;;AAGA,wBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,4BAA4B,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;AAE1E,IAAA,OAAOC,SAAAA,CAAI;QACTC,IAAAA,EAAMJ,4BAAAA;QACNK,OAAAA,EAAS;AACX,KAAA,CAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"publication-status.mjs","sources":["../../../../../server/src/services/internals/args/publication-status.ts"],"sourcesContent":["import { arg } from 'nexus';\nimport { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { PUBLICATION_STATUS_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return arg({\n type: PUBLICATION_STATUS_TYPE_NAME,\n default: 'published',\n });\n};\n"],"names":["strapi","PUBLICATION_STATUS_TYPE_NAME","plugin","service","arg","type","default"],"mappings":";;AAGA,wBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,4BAA4B,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAWC,CAAAA,CAAAA,OAAO,CAAC,WAAA,CAAA;AAE1E,IAAA,OAAOC,GAAI,CAAA;QACTC,IAAMJ,EAAAA,4BAAAA;QACNK,OAAS,EAAA;AACX,KAAA,CAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"publication-status.mjs","sources":["../../../../../server/src/services/internals/args/publication-status.ts"],"sourcesContent":["import { arg } from 'nexus';\nimport { Context } from '../../types';\n\nexport default ({ strapi }: Context) => {\n const { PUBLICATION_STATUS_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return arg({\n type: PUBLICATION_STATUS_TYPE_NAME,\n default: 'published',\n });\n};\n"],"names":["strapi","PUBLICATION_STATUS_TYPE_NAME","plugin","service","arg","type","default"],"mappings":";;AAGA,wBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,4BAA4B,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;AAE1E,IAAA,OAAOC,GAAAA,CAAI;QACTC,IAAAA,EAAMJ,4BAAAA;QACNK,OAAAA,EAAS;AACX,KAAA,CAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sort.js","sources":["../../../../../server/src/services/internals/args/sort.ts"],"sourcesContent":["import { arg, list } from 'nexus';\n\nconst SortArg = arg({\n type: list('String'),\n default: [],\n});\n\nexport default SortArg;\n"],"names":["SortArg","arg","type","list","default"],"mappings":";;;;AAEA,MAAMA,UAAUC,SAAI,CAAA;AAClBC,IAAAA,IAAAA,EAAMC,UAAK,CAAA,QAAA,CAAA;AACXC,IAAAA,OAAAA,EAAS;AACX,CAAA;;;;"}
1
+ {"version":3,"file":"sort.js","sources":["../../../../../server/src/services/internals/args/sort.ts"],"sourcesContent":["import { arg, list } from 'nexus';\n\nconst SortArg = arg({\n type: list('String'),\n default: [],\n});\n\nexport default SortArg;\n"],"names":["SortArg","arg","type","list","default"],"mappings":";;;;AAEA,MAAMA,UAAUC,SAAAA,CAAI;AAClBC,IAAAA,IAAAA,EAAMC,UAAAA,CAAK,QAAA,CAAA;AACXC,IAAAA,OAAAA,EAAS;AACX,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sort.mjs","sources":["../../../../../server/src/services/internals/args/sort.ts"],"sourcesContent":["import { arg, list } from 'nexus';\n\nconst SortArg = arg({\n type: list('String'),\n default: [],\n});\n\nexport default SortArg;\n"],"names":["SortArg","arg","type","list","default"],"mappings":";;AAEA,MAAMA,UAAUC,GAAI,CAAA;AAClBC,IAAAA,IAAAA,EAAMC,IAAK,CAAA,QAAA,CAAA;AACXC,IAAAA,OAAAA,EAAS;AACX,CAAA;;;;"}
1
+ {"version":3,"file":"sort.mjs","sources":["../../../../../server/src/services/internals/args/sort.ts"],"sourcesContent":["import { arg, list } from 'nexus';\n\nconst SortArg = arg({\n type: list('String'),\n default: [],\n});\n\nexport default SortArg;\n"],"names":["SortArg","arg","type","list","default"],"mappings":";;AAEA,MAAMA,UAAUC,GAAAA,CAAI;AAClBC,IAAAA,IAAAA,EAAMC,IAAAA,CAAK,QAAA,CAAA;AACXC,IAAAA,OAAAA,EAAS;AACX,CAAA;;;;"}