@strapi/plugin-graphql 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282 → 0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc

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 (217) hide show
  1. package/dist/admin/index.js +1 -1
  2. package/dist/admin/index.js.map +1 -1
  3. package/dist/admin/index.mjs +1 -1
  4. package/dist/admin/index.mjs.map +1 -1
  5. package/dist/admin/package.json.js +1 -2
  6. package/dist/admin/package.json.js.map +1 -1
  7. package/dist/admin/package.json.mjs +1 -2
  8. package/dist/admin/package.json.mjs.map +1 -1
  9. package/dist/admin/src/index.d.ts +2 -1
  10. package/dist/admin/translations/ko.json.js +10 -0
  11. package/dist/admin/translations/ko.json.js.map +1 -0
  12. package/dist/admin/translations/ko.json.mjs +8 -0
  13. package/dist/admin/translations/ko.json.mjs.map +1 -0
  14. package/dist/server/bootstrap.js +35 -10
  15. package/dist/server/bootstrap.js.map +1 -1
  16. package/dist/server/bootstrap.mjs +33 -9
  17. package/dist/server/bootstrap.mjs.map +1 -1
  18. package/dist/server/format-graphql-error.js +34 -8
  19. package/dist/server/format-graphql-error.js.map +1 -1
  20. package/dist/server/format-graphql-error.mjs +34 -8
  21. package/dist/server/format-graphql-error.mjs.map +1 -1
  22. package/dist/server/index.js.map +1 -1
  23. package/dist/server/index.mjs.map +1 -1
  24. package/dist/server/services/builders/dynamic-zones.js +3 -3
  25. package/dist/server/services/builders/dynamic-zones.js.map +1 -1
  26. package/dist/server/services/builders/dynamic-zones.mjs +3 -3
  27. package/dist/server/services/builders/dynamic-zones.mjs.map +1 -1
  28. package/dist/server/services/builders/entity.js +4 -4
  29. package/dist/server/services/builders/entity.js.map +1 -1
  30. package/dist/server/services/builders/entity.mjs +2 -2
  31. package/dist/server/services/builders/entity.mjs.map +1 -1
  32. package/dist/server/services/builders/enums.js +2 -2
  33. package/dist/server/services/builders/enums.js.map +1 -1
  34. package/dist/server/services/builders/enums.mjs +2 -2
  35. package/dist/server/services/builders/enums.mjs.map +1 -1
  36. package/dist/server/services/builders/filters/content-type.js +1 -0
  37. package/dist/server/services/builders/filters/content-type.js.map +1 -1
  38. package/dist/server/services/builders/filters/content-type.mjs +1 -0
  39. package/dist/server/services/builders/filters/content-type.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/index.js +3 -3
  43. package/dist/server/services/builders/filters/operators/index.js.map +1 -1
  44. package/dist/server/services/builders/filters/operators/index.mjs +3 -3
  45. package/dist/server/services/builders/filters/operators/index.mjs.map +1 -1
  46. package/dist/server/services/builders/filters/operators/not.js +1 -0
  47. package/dist/server/services/builders/filters/operators/not.js.map +1 -1
  48. package/dist/server/services/builders/filters/operators/not.mjs +1 -0
  49. package/dist/server/services/builders/filters/operators/not.mjs.map +1 -1
  50. package/dist/server/services/builders/generic-morph.js +1 -2
  51. package/dist/server/services/builders/generic-morph.js.map +1 -1
  52. package/dist/server/services/builders/generic-morph.mjs +1 -2
  53. package/dist/server/services/builders/generic-morph.mjs.map +1 -1
  54. package/dist/server/services/builders/index.js +2 -4
  55. package/dist/server/services/builders/index.js.map +1 -1
  56. package/dist/server/services/builders/index.mjs +2 -4
  57. package/dist/server/services/builders/index.mjs.map +1 -1
  58. package/dist/server/services/builders/input.js +1 -2
  59. package/dist/server/services/builders/input.js.map +1 -1
  60. package/dist/server/services/builders/input.mjs +1 -2
  61. package/dist/server/services/builders/input.mjs.map +1 -1
  62. package/dist/server/services/builders/queries/collection-type.js.map +1 -1
  63. package/dist/server/services/builders/queries/collection-type.mjs.map +1 -1
  64. package/dist/server/services/builders/queries/single-type.js.map +1 -1
  65. package/dist/server/services/builders/queries/single-type.mjs.map +1 -1
  66. package/dist/server/services/builders/relation-response-collection.js +3 -3
  67. package/dist/server/services/builders/relation-response-collection.js.map +1 -1
  68. package/dist/server/services/builders/relation-response-collection.mjs +3 -3
  69. package/dist/server/services/builders/relation-response-collection.mjs.map +1 -1
  70. package/dist/server/services/builders/resolvers/association.js +4 -3
  71. package/dist/server/services/builders/resolvers/association.js.map +1 -1
  72. package/dist/server/services/builders/resolvers/association.mjs +4 -3
  73. package/dist/server/services/builders/resolvers/association.mjs.map +1 -1
  74. package/dist/server/services/builders/resolvers/component.js +1 -0
  75. package/dist/server/services/builders/resolvers/component.js.map +1 -1
  76. package/dist/server/services/builders/resolvers/component.mjs +1 -0
  77. package/dist/server/services/builders/resolvers/component.mjs.map +1 -1
  78. package/dist/server/services/builders/resolvers/query.js +3 -3
  79. package/dist/server/services/builders/resolvers/query.js.map +1 -1
  80. package/dist/server/services/builders/resolvers/query.mjs +3 -3
  81. package/dist/server/services/builders/resolvers/query.mjs.map +1 -1
  82. package/dist/server/services/builders/response-collection.js +4 -4
  83. package/dist/server/services/builders/response-collection.js.map +1 -1
  84. package/dist/server/services/builders/response-collection.mjs +3 -3
  85. package/dist/server/services/builders/response-collection.mjs.map +1 -1
  86. package/dist/server/services/builders/response.js +1 -2
  87. package/dist/server/services/builders/response.js.map +1 -1
  88. package/dist/server/services/builders/response.mjs +1 -2
  89. package/dist/server/services/builders/response.mjs.map +1 -1
  90. package/dist/server/services/builders/type.js +4 -4
  91. package/dist/server/services/builders/type.js.map +1 -1
  92. package/dist/server/services/builders/type.mjs +3 -3
  93. package/dist/server/services/builders/type.mjs.map +1 -1
  94. package/dist/server/services/builders/utils.js +7 -6
  95. package/dist/server/services/builders/utils.js.map +1 -1
  96. package/dist/server/services/builders/utils.mjs +7 -6
  97. package/dist/server/services/builders/utils.mjs.map +1 -1
  98. package/dist/server/services/constants.js +3 -3
  99. package/dist/server/services/constants.js.map +1 -1
  100. package/dist/server/services/constants.mjs +3 -3
  101. package/dist/server/services/constants.mjs.map +1 -1
  102. package/dist/server/services/content-api/index.js +12 -10
  103. package/dist/server/services/content-api/index.js.map +1 -1
  104. package/dist/server/services/content-api/index.mjs +12 -10
  105. package/dist/server/services/content-api/index.mjs.map +1 -1
  106. package/dist/server/services/content-api/policy.js +2 -3
  107. package/dist/server/services/content-api/policy.js.map +1 -1
  108. package/dist/server/services/content-api/policy.mjs +2 -3
  109. package/dist/server/services/content-api/policy.mjs.map +1 -1
  110. package/dist/server/services/content-api/register-functions/internals.js +1 -3
  111. package/dist/server/services/content-api/register-functions/internals.js.map +1 -1
  112. package/dist/server/services/content-api/register-functions/internals.mjs +1 -3
  113. package/dist/server/services/content-api/register-functions/internals.mjs.map +1 -1
  114. package/dist/server/services/content-api/wrap-resolvers.js +13 -13
  115. package/dist/server/services/content-api/wrap-resolvers.js.map +1 -1
  116. package/dist/server/services/content-api/wrap-resolvers.mjs +13 -13
  117. package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -1
  118. package/dist/server/services/extension/extension.js +3 -3
  119. package/dist/server/services/extension/extension.js.map +1 -1
  120. package/dist/server/services/extension/extension.mjs +3 -3
  121. package/dist/server/services/extension/extension.mjs.map +1 -1
  122. package/dist/server/services/extension/shadow-crud-manager.js +3 -3
  123. package/dist/server/services/extension/shadow-crud-manager.js.map +1 -1
  124. package/dist/server/services/extension/shadow-crud-manager.mjs +3 -3
  125. package/dist/server/services/extension/shadow-crud-manager.mjs.map +1 -1
  126. package/dist/server/services/index.js.map +1 -1
  127. package/dist/server/services/index.mjs +2 -2
  128. package/dist/server/services/index.mjs.map +1 -1
  129. package/dist/server/services/internals/helpers/get-enabled-scalars.js +2 -2
  130. package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -1
  131. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs +1 -1
  132. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -1
  133. package/dist/server/services/internals/types/error.js +1 -2
  134. package/dist/server/services/internals/types/error.js.map +1 -1
  135. package/dist/server/services/internals/types/error.mjs +1 -2
  136. package/dist/server/services/internals/types/error.mjs.map +1 -1
  137. package/dist/server/services/internals/types/filters.js +3 -0
  138. package/dist/server/services/internals/types/filters.js.map +1 -1
  139. package/dist/server/services/internals/types/filters.mjs +3 -0
  140. package/dist/server/services/internals/types/filters.mjs.map +1 -1
  141. package/dist/server/services/type-registry.js +1 -2
  142. package/dist/server/services/type-registry.js.map +1 -1
  143. package/dist/server/services/type-registry.mjs +1 -2
  144. package/dist/server/services/type-registry.mjs.map +1 -1
  145. package/dist/server/services/utils/attributes.js +7 -6
  146. package/dist/server/services/utils/attributes.js.map +1 -1
  147. package/dist/server/services/utils/attributes.mjs +7 -6
  148. package/dist/server/services/utils/attributes.mjs.map +1 -1
  149. package/dist/server/services/utils/mappers/entity-to-response-entity.js +2 -2
  150. package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -1
  151. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +2 -2
  152. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -1
  153. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js +11 -10
  154. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -1
  155. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs +10 -9
  156. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -1
  157. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js +4 -3
  158. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -1
  159. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs +4 -3
  160. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -1
  161. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js +3 -3
  162. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -1
  163. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs +2 -2
  164. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -1
  165. package/dist/server/services/utils/naming.js +13 -10
  166. package/dist/server/services/utils/naming.js.map +1 -1
  167. package/dist/server/services/utils/naming.mjs +9 -6
  168. package/dist/server/services/utils/naming.mjs.map +1 -1
  169. package/dist/server/src/bootstrap.d.ts +5 -0
  170. package/dist/server/src/bootstrap.d.ts.map +1 -1
  171. package/dist/server/src/format-graphql-error.d.ts.map +1 -1
  172. package/dist/server/src/index.d.ts +170 -54
  173. package/dist/server/src/index.d.ts.map +1 -1
  174. package/dist/server/src/services/builders/dynamic-zones.d.ts +1 -1
  175. package/dist/server/src/services/builders/filters/content-type.d.ts.map +1 -1
  176. package/dist/server/src/services/builders/filters/index.d.ts +1 -1
  177. package/dist/server/src/services/builders/filters/operators/index.d.ts +112 -5
  178. package/dist/server/src/services/builders/filters/operators/index.d.ts.map +1 -1
  179. package/dist/server/src/services/builders/filters/operators/not.d.ts.map +1 -1
  180. package/dist/server/src/services/builders/generic-morph.d.ts.map +1 -1
  181. package/dist/server/src/services/builders/index.d.ts +120 -11
  182. package/dist/server/src/services/builders/index.d.ts.map +1 -1
  183. package/dist/server/src/services/builders/input.d.ts.map +1 -1
  184. package/dist/server/src/services/builders/mutations/index.d.ts +2 -2
  185. package/dist/server/src/services/builders/queries/collection-type.d.ts.map +1 -1
  186. package/dist/server/src/services/builders/queries/index.d.ts +2 -2
  187. package/dist/server/src/services/builders/resolvers/association.d.ts.map +1 -1
  188. package/dist/server/src/services/builders/resolvers/component.d.ts.map +1 -1
  189. package/dist/server/src/services/builders/resolvers/index.d.ts +7 -7
  190. package/dist/server/src/services/builders/resolvers/index.d.ts.map +1 -1
  191. package/dist/server/src/services/builders/resolvers/query.d.ts +3 -3
  192. package/dist/server/src/services/builders/response.d.ts.map +1 -1
  193. package/dist/server/src/services/builders/utils.d.ts +4 -2
  194. package/dist/server/src/services/builders/utils.d.ts.map +1 -1
  195. package/dist/server/src/services/constants.d.ts +4 -67
  196. package/dist/server/src/services/constants.d.ts.map +1 -1
  197. package/dist/server/src/services/content-api/index.d.ts.map +1 -1
  198. package/dist/server/src/services/content-api/policy.d.ts.map +1 -1
  199. package/dist/server/src/services/extension/shadow-crud-manager.d.ts.map +1 -1
  200. package/dist/server/src/services/index.d.ts +170 -54
  201. package/dist/server/src/services/index.d.ts.map +1 -1
  202. package/dist/server/src/services/internals/types/error.d.ts.map +1 -1
  203. package/dist/server/src/services/internals/types/filters.d.ts.map +1 -1
  204. package/dist/server/src/services/type-registry.d.ts.map +1 -1
  205. package/dist/server/src/services/utils/attributes.d.ts.map +1 -1
  206. package/dist/server/src/services/utils/index.d.ts +46 -40
  207. package/dist/server/src/services/utils/index.d.ts.map +1 -1
  208. package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts +14 -7
  209. package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts.map +1 -1
  210. package/dist/server/src/services/utils/mappers/graphql-filters-to-strapi-query.d.ts.map +1 -1
  211. package/dist/server/src/services/utils/mappers/index.d.ts +19 -13
  212. package/dist/server/src/services/utils/mappers/index.d.ts.map +1 -1
  213. package/dist/server/src/types/index.d.ts +64 -0
  214. package/dist/server/src/types/index.d.ts.map +1 -0
  215. package/dist/server/src/types/services.d.ts +97 -0
  216. package/dist/server/src/types/services.d.ts.map +1 -0
  217. package/package.json +32 -18
@@ -1,27 +1,27 @@
1
- import { get, getOr, first, isFunction, isNil } from 'lodash/fp';
1
+ import { property, get } from 'lodash';
2
2
  import { GraphQLObjectType } from 'graphql';
3
3
  import { errors } from '@strapi/utils';
4
4
  import { createPoliciesMiddleware } from './policy.mjs';
5
5
 
6
6
  const { ForbiddenError } = errors;
7
- const introspectionQueries = [
7
+ const introspectionQueries = new Set([
8
8
  '__Schema',
9
9
  '__Type',
10
10
  '__Field',
11
11
  '__InputValue',
12
12
  '__EnumValue',
13
13
  '__Directive'
14
- ];
14
+ ]);
15
15
  /**
16
16
  * Get & parse middlewares definitions from the resolver's config
17
17
  * @param {object} resolverConfig
18
18
  * @param {object} strapi
19
19
  * @return {function[]}
20
20
  */ const parseMiddlewares = (resolverConfig, strapi)=>{
21
- const resolverMiddlewares = getOr([], 'middlewares', resolverConfig);
21
+ const resolverMiddlewares = get(resolverConfig, 'middlewares', []);
22
22
  // TODO: [v4] to factorize with compose endpoints (routes)
23
23
  return resolverMiddlewares.map((middleware)=>{
24
- if (isFunction(middleware)) {
24
+ if (typeof middleware === 'function') {
25
25
  return middleware;
26
26
  }
27
27
  if (typeof middleware === 'string') {
@@ -52,16 +52,16 @@ const introspectionQueries = [
52
52
  const typeMap = schema.getTypeMap();
53
53
  Object.entries(typeMap).forEach(([type, definition])=>{
54
54
  const isGraphQLObjectType = definition instanceof GraphQLObjectType;
55
- const isIgnoredType = introspectionQueries.includes(type);
55
+ const isIgnoredType = introspectionQueries.has(type);
56
56
  if (!isGraphQLObjectType || isIgnoredType) {
57
57
  return;
58
58
  }
59
59
  const fields = definition.getFields();
60
60
  const fieldsToProcess = Object.entries(fields).filter(([field])=>isValidFieldName(field));
61
61
  for (const [fieldName, fieldDefinition] of fieldsToProcess){
62
- const defaultResolver = get(fieldName);
62
+ const defaultResolver = property(fieldName);
63
63
  const path = `${type}.${fieldName}`;
64
- const resolverConfig = getOr({}, path, resolversConfig);
64
+ const resolverConfig = get(resolversConfig, path, {});
65
65
  const { resolve: baseResolver = defaultResolver } = fieldDefinition;
66
66
  // Parse & initialize the middlewares
67
67
  const middlewares = parseMiddlewares(resolverConfig, strapi);
@@ -81,19 +81,19 @@ const introspectionQueries = [
81
81
  * @param {object} context
82
82
  * @return {Promise<void>}
83
83
  */ const authorize = async ({ context })=>{
84
- const authConfig = get('auth', resolverConfig);
85
- const authContext = get('state.auth', context);
84
+ const authConfig = resolverConfig?.auth;
85
+ const authContext = get(context, 'state.auth');
86
86
  const isValidType = [
87
87
  'Mutation',
88
88
  'Query',
89
89
  'Subscription'
90
90
  ].includes(type);
91
- const hasConfig = !isNil(authConfig);
91
+ const hasConfig = authConfig != null;
92
92
  const isAuthDisabled = authConfig === false;
93
93
  if ((isValidType || hasConfig) && !isAuthDisabled) {
94
94
  try {
95
95
  await strapi.auth.verify(authContext, authConfig);
96
- } catch (error) {
96
+ } catch {
97
97
  throw new ForbiddenError();
98
98
  }
99
99
  }
@@ -106,7 +106,7 @@ const introspectionQueries = [
106
106
  context
107
107
  });
108
108
  // Execute middlewares (including the policy middleware which will always be included)
109
- return first(boundMiddlewares)(parent, args, context, info);
109
+ return boundMiddlewares[0](parent, args, context, info);
110
110
  };
111
111
  }
112
112
  });
@@ -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, property } from 'lodash';\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 = new Set([\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 = get(resolverConfig, 'middlewares', []);\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 (typeof middleware === 'function') {\n return middleware;\n }\n\n if (typeof middleware === 'string') {\n return strapi.middleware(middleware) as Core.MiddlewareFactory;\n }\n\n if (typeof middleware === 'object') {\n const { name, options = {} } = middleware;\n\n return (strapi.middleware(name) as Core.MiddlewareFactory)(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.has(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 = property(fieldName);\n\n const path = `${type}.${fieldName}`;\n const resolverConfig = get(resolversConfig, path, {});\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 = resolverConfig?.auth;\n const authContext = get(context, 'state.auth');\n\n const isValidType = ['Mutation', 'Query', 'Subscription'].includes(type);\n const hasConfig = authConfig != null;\n\n const isAuthDisabled = authConfig === false;\n\n if ((isValidType || hasConfig) && !isAuthDisabled) {\n try {\n await strapi.auth.verify(authContext, authConfig);\n } catch {\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 boundMiddlewares[0]!(parent, args, context, info);\n };\n }\n });\n\n return schema;\n};\n\nexport { wrapResolvers };\n"],"names":["ForbiddenError","errors","introspectionQueries","Set","parseMiddlewares","resolverConfig","strapi","resolverMiddlewares","get","map","middleware","name","options","Error","wrapResolvers","schema","extension","resolversConfig","isValidFieldName","field","startsWith","typeMap","getTypeMap","Object","entries","forEach","type","definition","isGraphQLObjectType","GraphQLObjectType","isIgnoredType","has","fields","getFields","fieldsToProcess","filter","fieldName","fieldDefinition","defaultResolver","property","path","resolve","baseResolver","middlewares","policyMiddleware","createPoliciesMiddleware","push","boundMiddlewares","index","collection","parents","args","context","info","length","authorize","authConfig","auth","authContext","isValidType","includes","hasConfig","isAuthDisabled","verify","parent"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var nexus = require('nexus');
4
- var fp = require('lodash/fp');
4
+ var lodash = require('lodash');
5
5
  var shadowCrudManager = require('./shadow-crud-manager.js');
6
6
 
7
7
  function _interopNamespace(e) {
@@ -68,12 +68,12 @@ const createExtension = ({ strapi })=>{
68
68
  }
69
69
  // Register resolvers
70
70
  if (typeof resolvers === 'object') {
71
- acc.resolvers = fp.merge(acc.resolvers, resolvers);
71
+ acc.resolvers = lodash.merge({}, acc.resolvers, resolvers);
72
72
  }
73
73
  // Register resolvers configuration
74
74
  if (typeof resolversConfig === 'object') {
75
75
  // TODO: smarter merge for auth, middlewares & policies
76
- acc.resolversConfig = fp.merge(resolversConfig, acc.resolversConfig);
76
+ acc.resolversConfig = lodash.merge({}, resolversConfig, acc.resolversConfig);
77
77
  }
78
78
  return acc;
79
79
  }, getDefaultState());
@@ -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,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
+ {"version":3,"file":"extension.js","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash';\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,YAAAA,CAAM,EAAC,EAAGH,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AAC3C,gBAAA;;gBAGA,IAAI,OAAOC,oBAAoB,QAAA,EAAU;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,YAAAA,CAAM,EAAC,EAAGnB,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AACtE,gBAAA;gBAEA,OAAOgB,GAAAA;YACT,CAAA,EAAGpB,eAAAA,EAAAA,CAAAA;AACL,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as nexus from 'nexus';
2
- import { merge } from 'lodash/fp';
2
+ import { merge } from 'lodash';
3
3
  import createShadowCRUDManager from './shadow-crud-manager.mjs';
4
4
 
5
5
  const getDefaultState = ()=>({
@@ -46,12 +46,12 @@ const createExtension = ({ strapi })=>{
46
46
  }
47
47
  // Register resolvers
48
48
  if (typeof resolvers === 'object') {
49
- acc.resolvers = merge(acc.resolvers, resolvers);
49
+ acc.resolvers = merge({}, acc.resolvers, resolvers);
50
50
  }
51
51
  // Register resolvers configuration
52
52
  if (typeof resolversConfig === 'object') {
53
53
  // TODO: smarter merge for auth, middlewares & policies
54
- acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);
54
+ acc.resolversConfig = merge({}, resolversConfig, acc.resolversConfig);
55
55
  }
56
56
  return acc;
57
57
  }, getDefaultState());
@@ -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,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
+ {"version":3,"file":"extension.mjs","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash';\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,CAAM,EAAC,EAAGH,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AAC3C,gBAAA;;gBAGA,IAAI,OAAOC,oBAAoB,QAAA,EAAU;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,KAAAA,CAAM,EAAC,EAAGnB,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AACtE,gBAAA;gBAEA,OAAOgB,GAAAA;YACT,CAAA,EAAGpB,eAAAA,EAAAA,CAAAA;AACL,QAAA;AACF,KAAA;AACF;;;;"}
@@ -40,11 +40,11 @@ var createShadowCRUDManager = (()=>{
40
40
  return !this.areMutationsEnabled();
41
41
  },
42
42
  isActionEnabled (action) {
43
- const matchingActions = [
43
+ const matchingActions = new Set([
44
44
  action,
45
45
  ALL_ACTIONS
46
- ];
47
- return configs.get(uid).disabledActions.every((action)=>!matchingActions.includes(action));
46
+ ]);
47
+ return configs.get(uid).disabledActions.every((action)=>!matchingActions.has(action));
48
48
  },
49
49
  isActionDisabled (action) {
50
50
  return !this.isActionEnabled(action);
@@ -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 = new Set([action, ALL_ACTIONS]);\n\n return configs.get(uid)!.disabledActions.every((action) => !matchingActions.has(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","Set","every","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","includes","push","disableActions","actions","forEach","field","fieldName","hasInputEnabled","hasOutputEnabled","hasFiltersEnabeld","disableOutput","disableInput","disableFilters"],"mappings":"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"}
@@ -38,11 +38,11 @@ var createShadowCRUDManager = (()=>{
38
38
  return !this.areMutationsEnabled();
39
39
  },
40
40
  isActionEnabled (action) {
41
- const matchingActions = [
41
+ const matchingActions = new Set([
42
42
  action,
43
43
  ALL_ACTIONS
44
- ];
45
- return configs.get(uid).disabledActions.every((action)=>!matchingActions.includes(action));
44
+ ]);
45
+ return configs.get(uid).disabledActions.every((action)=>!matchingActions.has(action));
46
46
  },
47
47
  isActionDisabled (action) {
48
48
  return !this.isActionEnabled(action);
@@ -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 = new Set([action, ALL_ACTIONS]);\n\n return configs.get(uid)!.disabledActions.every((action) => !matchingActions.has(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","Set","every","isActionDisabled","disable","disableQueries","disableMutations","disableAction","config","includes","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/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
+ {"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type {} from '../types';\n\nimport 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\n/** Names of the registered GraphQL services. */\ntype RegisteredNames = keyof Core.RegisteredFor<\n Strapi.Registries.PackageServices,\n 'plugin::graphql'\n>;\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} satisfies Record<RegisteredNames, unknown>;\n"],"names":["services","builders","contentAPI","constants","extension","format","internals","typeRegistry","utils"],"mappings":";;;;;;;;;;;MAkBaA,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,7 +1,7 @@
1
1
  import contentAPI from './content-api/index.mjs';
2
2
  import typeRegistry from './type-registry.mjs';
3
3
  import utils from './utils/index.mjs';
4
- import constants from './constants.mjs';
4
+ import createConstants from './constants.mjs';
5
5
  import internals from './internals/index.mjs';
6
6
  import builders from './builders/index.mjs';
7
7
  import createExtension from './extension/extension.mjs';
@@ -10,7 +10,7 @@ import format from './format/index.mjs';
10
10
  const services = {
11
11
  builders,
12
12
  'content-api': contentAPI,
13
- constants,
13
+ constants: createConstants,
14
14
  extension: createExtension,
15
15
  format,
16
16
  internals,
@@ -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,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
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type {} from '../types';\n\nimport 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\n/** Names of the registered GraphQL services. */\ntype RegisteredNames = keyof Core.RegisteredFor<\n Strapi.Registries.PackageServices,\n 'plugin::graphql'\n>;\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} satisfies Record<RegisteredNames, unknown>;\n"],"names":["services","builders","contentAPI","constants","extension","format","internals","typeRegistry","utils"],"mappings":";;;;;;;;;MAkBaA,QAAAA,GAAW;AACtBC,IAAAA,QAAAA;IACA,aAAA,EAAeC,UAAAA;AACfC,eAAAA,eAAAA;AACAC,eAAAA,eAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,SAAAA;IACA,eAAA,EAAiBC,YAAAA;AACjBC,IAAAA;AACF;;;;"}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var lodash = require('lodash');
4
4
 
5
5
  var getEnabledScalars = (({ strapi })=>()=>{
6
6
  const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service('constants');
7
7
  return Object.entries(GRAPHQL_SCALAR_OPERATORS)// To be valid, a GraphQL scalar must have at least one operator enabled
8
8
  .filter(([, value])=>value.length > 0)// Only keep the key (the scalar name)
9
- .map(fp.first);
9
+ .map(lodash.first);
10
10
  });
11
11
 
12
12
  module.exports = getEnabledScalars;
@@ -1 +1 @@
1
- {"version":3,"file":"get-enabled-scalars.js","sources":["../../../../../server/src/services/internals/helpers/get-enabled-scalars.ts"],"sourcesContent":["import { first } from 'lodash/fp';\nimport type { Context } from '../../types';\nimport type { Constants } from '../../constants';\n\nexport default ({ strapi }: Context) =>\n () => {\n const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service<Constants>('constants');\n\n return (\n Object.entries(GRAPHQL_SCALAR_OPERATORS)\n // To be valid, a GraphQL scalar must have at least one operator enabled\n .filter(([, value]) => value.length > 0)\n // Only keep the key (the scalar name)\n .map(first)\n );\n };\n"],"names":["strapi","GRAPHQL_SCALAR_OPERATORS","plugin","service","Object","entries","filter","value","length","map","first"],"mappings":";;;;AAIA,wBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GACjC,IAAA;QACE,MAAM,EAAEC,wBAAwB,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAY,WAAA,CAAA;AAEjF,QAAA,OACEC,MAAAA,CAAOC,OAAO,CAACJ,wBAAAA,CACb;SACCK,MAAM,CAAC,CAAC,GAAGC,KAAAA,CAAM,GAAKA,KAAAA,CAAMC,MAAM,GAAG,CAAA,CACtC;AACCC,SAAAA,GAAG,CAACC,QAAAA,CAAAA;AAEX,IAAA,CAAA;;;;"}
1
+ {"version":3,"file":"get-enabled-scalars.js","sources":["../../../../../server/src/services/internals/helpers/get-enabled-scalars.ts"],"sourcesContent":["import { first } from 'lodash';\nimport type { Context } from '../../types';\nimport type { Constants } from '../../constants';\n\nexport default ({ strapi }: Context) =>\n () => {\n const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service<Constants>('constants');\n\n return (\n Object.entries(GRAPHQL_SCALAR_OPERATORS)\n // To be valid, a GraphQL scalar must have at least one operator enabled\n .filter(([, value]) => value.length > 0)\n // Only keep the key (the scalar name)\n .map(first)\n );\n };\n"],"names":["strapi","GRAPHQL_SCALAR_OPERATORS","plugin","service","Object","entries","filter","value","length","map","first"],"mappings":";;;;AAIA,wBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GACjC,IAAA;QACE,MAAM,EAAEC,wBAAwB,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAY,WAAA,CAAA;AAEjF,QAAA,OACEC,MAAAA,CAAOC,OAAO,CAACJ,wBAAAA,CACb;SACCK,MAAM,CAAC,CAAC,GAAGC,KAAAA,CAAM,GAAKA,KAAAA,CAAMC,MAAM,GAAG,CAAA,CACtC;AACCC,SAAAA,GAAG,CAACC,YAAAA,CAAAA;AAEX,IAAA,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { first } from 'lodash/fp';
1
+ import { first } from 'lodash';
2
2
 
3
3
  var getEnabledScalars = (({ strapi })=>()=>{
4
4
  const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service('constants');
@@ -1 +1 @@
1
- {"version":3,"file":"get-enabled-scalars.mjs","sources":["../../../../../server/src/services/internals/helpers/get-enabled-scalars.ts"],"sourcesContent":["import { first } from 'lodash/fp';\nimport type { Context } from '../../types';\nimport type { Constants } from '../../constants';\n\nexport default ({ strapi }: Context) =>\n () => {\n const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service<Constants>('constants');\n\n return (\n Object.entries(GRAPHQL_SCALAR_OPERATORS)\n // To be valid, a GraphQL scalar must have at least one operator enabled\n .filter(([, value]) => value.length > 0)\n // Only keep the key (the scalar name)\n .map(first)\n );\n };\n"],"names":["strapi","GRAPHQL_SCALAR_OPERATORS","plugin","service","Object","entries","filter","value","length","map","first"],"mappings":";;AAIA,wBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GACjC,IAAA;QACE,MAAM,EAAEC,wBAAwB,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAY,WAAA,CAAA;AAEjF,QAAA,OACEC,MAAAA,CAAOC,OAAO,CAACJ,wBAAAA,CACb;SACCK,MAAM,CAAC,CAAC,GAAGC,KAAAA,CAAM,GAAKA,KAAAA,CAAMC,MAAM,GAAG,CAAA,CACtC;AACCC,SAAAA,GAAG,CAACC,KAAAA,CAAAA;AAEX,IAAA,CAAA;;;;"}
1
+ {"version":3,"file":"get-enabled-scalars.mjs","sources":["../../../../../server/src/services/internals/helpers/get-enabled-scalars.ts"],"sourcesContent":["import { first } from 'lodash';\nimport type { Context } from '../../types';\nimport type { Constants } from '../../constants';\n\nexport default ({ strapi }: Context) =>\n () => {\n const { GRAPHQL_SCALAR_OPERATORS } = strapi.plugin('graphql').service<Constants>('constants');\n\n return (\n Object.entries(GRAPHQL_SCALAR_OPERATORS)\n // To be valid, a GraphQL scalar must have at least one operator enabled\n .filter(([, value]) => value.length > 0)\n // Only keep the key (the scalar name)\n .map(first)\n );\n };\n"],"names":["strapi","GRAPHQL_SCALAR_OPERATORS","plugin","service","Object","entries","filter","value","length","map","first"],"mappings":";;AAIA,wBAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GACjC,IAAA;QACE,MAAM,EAAEC,wBAAwB,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAY,WAAA,CAAA;AAEjF,QAAA,OACEC,MAAAA,CAAOC,OAAO,CAACJ,wBAAAA,CACb;SACCK,MAAM,CAAC,CAAC,GAAGC,KAAAA,CAAM,GAAKA,KAAAA,CAAMC,MAAM,GAAG,CAAA,CACtC;AACCC,SAAAA,GAAG,CAACC,KAAAA,CAAAA;AAEX,IAAA,CAAA;;;;"}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var nexus = require('nexus');
4
- var fp = require('lodash/fp');
5
4
  var utils = require('@strapi/utils');
6
5
 
7
6
  const { ValidationError } = utils.errors;
@@ -15,7 +14,7 @@ const { ValidationError } = utils.errors;
15
14
  definition (t) {
16
15
  t.nonNull.string('code', {
17
16
  resolve (parent) {
18
- const code = fp.get('code', parent);
17
+ const code = parent?.code;
19
18
  const isValidPlaceholderCode = Object.values(ERROR_CODES).includes(code);
20
19
  if (!isValidPlaceholderCode) {
21
20
  throw new ValidationError(`"${code}" is not a valid code value`);
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sources":["../../../../../server/src/services/internals/types/error.ts"],"sourcesContent":["import { objectType } from 'nexus';\nimport { get } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nimport type { Context } from '../../types';\n\nconst { ValidationError } = errors;\n\n/**\n * Build an Error object type\n * @return {Object<string, NexusObjectTypeDef>}\n */\nexport default ({ strapi }: Context) => {\n const { ERROR_CODES, ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return objectType({\n name: ERROR_TYPE_NAME,\n\n definition(t) {\n t.nonNull.string('code', {\n resolve(parent) {\n const code = get('code', parent);\n\n const isValidPlaceholderCode = Object.values(ERROR_CODES).includes(code);\n if (!isValidPlaceholderCode) {\n throw new ValidationError(`\"${code}\" is not a valid code value`);\n }\n\n return code;\n },\n });\n\n t.string('message');\n },\n });\n};\n"],"names":["ValidationError","errors","strapi","ERROR_CODES","ERROR_TYPE_NAME","plugin","service","objectType","name","definition","t","nonNull","string","resolve","parent","code","get","isValidPlaceholderCode","Object","values","includes"],"mappings":";;;;;;AAMA,MAAM,EAAEA,eAAe,EAAE,GAAGC,YAAAA;AAE5B;;;AAGC,IACD,YAAe,CAAA,CAAC,EAAEC,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;AAE1E,IAAA,OAAOC,gBAAAA,CAAW;QAChBC,IAAAA,EAAMJ,eAAAA;AAENK,QAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,YAAAA,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,MAAA,EAAQ;AACvBC,gBAAAA,OAAAA,CAAAA,CAAQC,MAAM,EAAA;oBACZ,MAAMC,IAAAA,GAAOC,OAAI,MAAA,EAAQF,MAAAA,CAAAA;AAEzB,oBAAA,MAAMG,yBAAyBC,MAAAA,CAAOC,MAAM,CAAChB,WAAAA,CAAAA,CAAaiB,QAAQ,CAACL,IAAAA,CAAAA;AACnE,oBAAA,IAAI,CAACE,sBAAAA,EAAwB;AAC3B,wBAAA,MAAM,IAAIjB,eAAAA,CAAgB,CAAC,CAAC,EAAEe,IAAAA,CAAK,2BAA2B,CAAC,CAAA;AACjE,oBAAA;oBAEA,OAAOA,IAAAA;AACT,gBAAA;AACF,aAAA,CAAA;AAEAL,YAAAA,CAAAA,CAAEE,MAAM,CAAC,SAAA,CAAA;AACX,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"error.js","sources":["../../../../../server/src/services/internals/types/error.ts"],"sourcesContent":["import { objectType } from 'nexus';\nimport { errors } from '@strapi/utils';\n\nimport type { Context } from '../../types';\n\nconst { ValidationError } = errors;\n\n/**\n * Build an Error object type\n * @return {Object<string, NexusObjectTypeDef>}\n */\nexport default ({ strapi }: Context) => {\n const { ERROR_CODES, ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return objectType({\n name: ERROR_TYPE_NAME,\n\n definition(t) {\n t.nonNull.string('code', {\n resolve(parent) {\n const code = parent?.code;\n\n const isValidPlaceholderCode = Object.values(ERROR_CODES).includes(code);\n if (!isValidPlaceholderCode) {\n throw new ValidationError(`\"${code}\" is not a valid code value`);\n }\n\n return code;\n },\n });\n\n t.string('message');\n },\n });\n};\n"],"names":["ValidationError","errors","strapi","ERROR_CODES","ERROR_TYPE_NAME","plugin","service","objectType","name","definition","t","nonNull","string","resolve","parent","code","isValidPlaceholderCode","Object","values","includes"],"mappings":";;;;;AAKA,MAAM,EAAEA,eAAe,EAAE,GAAGC,YAAAA;AAE5B;;;AAGC,IACD,YAAe,CAAA,CAAC,EAAEC,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;AAE1E,IAAA,OAAOC,gBAAAA,CAAW;QAChBC,IAAAA,EAAMJ,eAAAA;AAENK,QAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,YAAAA,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,MAAA,EAAQ;AACvBC,gBAAAA,OAAAA,CAAAA,CAAQC,MAAM,EAAA;AACZ,oBAAA,MAAMC,OAAOD,MAAAA,EAAQC,IAAAA;AAErB,oBAAA,MAAMC,yBAAyBC,MAAAA,CAAOC,MAAM,CAACf,WAAAA,CAAAA,CAAagB,QAAQ,CAACJ,IAAAA,CAAAA;AACnE,oBAAA,IAAI,CAACC,sBAAAA,EAAwB;AAC3B,wBAAA,MAAM,IAAIhB,eAAAA,CAAgB,CAAC,CAAC,EAAEe,IAAAA,CAAK,2BAA2B,CAAC,CAAA;AACjE,oBAAA;oBAEA,OAAOA,IAAAA;AACT,gBAAA;AACF,aAAA,CAAA;AAEAL,YAAAA,CAAAA,CAAEE,MAAM,CAAC,SAAA,CAAA;AACX,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
@@ -1,5 +1,4 @@
1
1
  import { objectType } from 'nexus';
2
- import { get } from 'lodash/fp';
3
2
  import { errors } from '@strapi/utils';
4
3
 
5
4
  const { ValidationError } = errors;
@@ -13,7 +12,7 @@ const { ValidationError } = errors;
13
12
  definition (t) {
14
13
  t.nonNull.string('code', {
15
14
  resolve (parent) {
16
- const code = get('code', parent);
15
+ const code = parent?.code;
17
16
  const isValidPlaceholderCode = Object.values(ERROR_CODES).includes(code);
18
17
  if (!isValidPlaceholderCode) {
19
18
  throw new ValidationError(`"${code}" is not a valid code value`);
@@ -1 +1 @@
1
- {"version":3,"file":"error.mjs","sources":["../../../../../server/src/services/internals/types/error.ts"],"sourcesContent":["import { objectType } from 'nexus';\nimport { get } from 'lodash/fp';\nimport { errors } from '@strapi/utils';\n\nimport type { Context } from '../../types';\n\nconst { ValidationError } = errors;\n\n/**\n * Build an Error object type\n * @return {Object<string, NexusObjectTypeDef>}\n */\nexport default ({ strapi }: Context) => {\n const { ERROR_CODES, ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return objectType({\n name: ERROR_TYPE_NAME,\n\n definition(t) {\n t.nonNull.string('code', {\n resolve(parent) {\n const code = get('code', parent);\n\n const isValidPlaceholderCode = Object.values(ERROR_CODES).includes(code);\n if (!isValidPlaceholderCode) {\n throw new ValidationError(`\"${code}\" is not a valid code value`);\n }\n\n return code;\n },\n });\n\n t.string('message');\n },\n });\n};\n"],"names":["ValidationError","errors","strapi","ERROR_CODES","ERROR_TYPE_NAME","plugin","service","objectType","name","definition","t","nonNull","string","resolve","parent","code","get","isValidPlaceholderCode","Object","values","includes"],"mappings":";;;;AAMA,MAAM,EAAEA,eAAe,EAAE,GAAGC,MAAAA;AAE5B;;;AAGC,IACD,YAAe,CAAA,CAAC,EAAEC,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;AAE1E,IAAA,OAAOC,UAAAA,CAAW;QAChBC,IAAAA,EAAMJ,eAAAA;AAENK,QAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,YAAAA,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,MAAA,EAAQ;AACvBC,gBAAAA,OAAAA,CAAAA,CAAQC,MAAM,EAAA;oBACZ,MAAMC,IAAAA,GAAOC,IAAI,MAAA,EAAQF,MAAAA,CAAAA;AAEzB,oBAAA,MAAMG,yBAAyBC,MAAAA,CAAOC,MAAM,CAAChB,WAAAA,CAAAA,CAAaiB,QAAQ,CAACL,IAAAA,CAAAA;AACnE,oBAAA,IAAI,CAACE,sBAAAA,EAAwB;AAC3B,wBAAA,MAAM,IAAIjB,eAAAA,CAAgB,CAAC,CAAC,EAAEe,IAAAA,CAAK,2BAA2B,CAAC,CAAA;AACjE,oBAAA;oBAEA,OAAOA,IAAAA;AACT,gBAAA;AACF,aAAA,CAAA;AAEAL,YAAAA,CAAAA,CAAEE,MAAM,CAAC,SAAA,CAAA;AACX,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"error.mjs","sources":["../../../../../server/src/services/internals/types/error.ts"],"sourcesContent":["import { objectType } from 'nexus';\nimport { errors } from '@strapi/utils';\n\nimport type { Context } from '../../types';\n\nconst { ValidationError } = errors;\n\n/**\n * Build an Error object type\n * @return {Object<string, NexusObjectTypeDef>}\n */\nexport default ({ strapi }: Context) => {\n const { ERROR_CODES, ERROR_TYPE_NAME } = strapi.plugin('graphql').service('constants');\n\n return objectType({\n name: ERROR_TYPE_NAME,\n\n definition(t) {\n t.nonNull.string('code', {\n resolve(parent) {\n const code = parent?.code;\n\n const isValidPlaceholderCode = Object.values(ERROR_CODES).includes(code);\n if (!isValidPlaceholderCode) {\n throw new ValidationError(`\"${code}\" is not a valid code value`);\n }\n\n return code;\n },\n });\n\n t.string('message');\n },\n });\n};\n"],"names":["ValidationError","errors","strapi","ERROR_CODES","ERROR_TYPE_NAME","plugin","service","objectType","name","definition","t","nonNull","string","resolve","parent","code","isValidPlaceholderCode","Object","values","includes"],"mappings":";;;AAKA,MAAM,EAAEA,eAAe,EAAE,GAAGC,MAAAA;AAE5B;;;AAGC,IACD,YAAe,CAAA,CAAC,EAAEC,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;AAE1E,IAAA,OAAOC,UAAAA,CAAW;QAChBC,IAAAA,EAAMJ,eAAAA;AAENK,QAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,YAAAA,CAAAA,CAAEC,OAAO,CAACC,MAAM,CAAC,MAAA,EAAQ;AACvBC,gBAAAA,OAAAA,CAAAA,CAAQC,MAAM,EAAA;AACZ,oBAAA,MAAMC,OAAOD,MAAAA,EAAQC,IAAAA;AAErB,oBAAA,MAAMC,yBAAyBC,MAAAA,CAAOC,MAAM,CAACf,WAAAA,CAAAA,CAAagB,QAAQ,CAACJ,IAAAA,CAAAA;AACnE,oBAAA,IAAI,CAACC,sBAAAA,EAAwB;AAC3B,wBAAA,MAAM,IAAIhB,eAAAA,CAAgB,CAAC,CAAC,EAAEe,IAAAA,CAAK,2BAA2B,CAAC,CAAA;AACjE,oBAAA;oBAEA,OAAOA,IAAAA;AACT,gBAAA;AACF,aAAA,CAAA;AAEAL,YAAAA,CAAAA,CAAEE,MAAM,CAAC,SAAA,CAAA;AACX,QAAA;AACF,KAAA,CAAA;AACF,CAAA;;;;"}
@@ -8,7 +8,9 @@ var nexus = require('nexus');
8
8
  */ const buildScalarFilters = ({ strapi })=>{
9
9
  const { naming, mappers } = strapi.plugin('graphql').service('utils');
10
10
  const { helpers } = strapi.plugin('graphql').service('internals');
11
+ // `getEnabledScalars` keeps develop's published element type; it returns scalar names.
11
12
  return helpers.getEnabledScalars().reduce((acc, type)=>{
13
+ // `graphqlScalarToOperators` keeps develop's published (wrong) `boolean` return type.
12
14
  const operators = mappers.graphqlScalarToOperators(type);
13
15
  const typeName = naming.getScalarFilterInputTypeName(type);
14
16
  if (!operators || operators.length === 0) {
@@ -20,6 +22,7 @@ var nexus = require('nexus');
20
22
  name: typeName,
21
23
  definition (t) {
22
24
  for (const operator of operators){
25
+ // Operators keep develop's published `ObjectDefinitionBlock` parameter; they only add fields.
23
26
  operator.add(t, type);
24
27
  }
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sources":["../../../../../server/src/services/internals/types/filters.ts"],"sourcesContent":["import { inputObjectType } from 'nexus';\nimport type { Context } from '../../types';\n\n/**\n * Build a map of filters type for every GraphQL scalars\n * @return {Object<string, NexusInputTypeDef>}\n */\nconst buildScalarFilters = ({ strapi }: Context) => {\n const { naming, mappers } = strapi.plugin('graphql').service('utils');\n const { helpers } = strapi.plugin('graphql').service('internals');\n\n return helpers.getEnabledScalars().reduce((acc: any, type: string) => {\n const operators = mappers.graphqlScalarToOperators(type);\n const typeName = naming.getScalarFilterInputTypeName(type);\n\n if (!operators || operators.length === 0) {\n return acc;\n }\n\n return {\n ...acc,\n\n [typeName]: inputObjectType({\n name: typeName,\n\n definition(t) {\n for (const operator of operators) {\n operator.add(t, type);\n }\n },\n }),\n };\n }, {});\n};\n\nexport default (context: Context) => ({\n scalars: buildScalarFilters(context),\n});\n"],"names":["buildScalarFilters","strapi","naming","mappers","plugin","service","helpers","getEnabledScalars","reduce","acc","type","operators","graphqlScalarToOperators","typeName","getScalarFilterInputTypeName","length","inputObjectType","name","definition","t","operator","add","context","scalars"],"mappings":";;;;AAGA;;;AAGC,IACD,MAAMA,kBAAAA,GAAqB,CAAC,EAAEC,MAAM,EAAW,GAAA;IAC7C,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAC7D,MAAM,EAAEC,OAAO,EAAE,GAAGL,OAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;AAErD,IAAA,OAAOC,QAAQC,iBAAiB,EAAA,CAAGC,MAAM,CAAC,CAACC,GAAAA,EAAUC,IAAAA,GAAAA;QACnD,MAAMC,SAAAA,GAAYR,OAAAA,CAAQS,wBAAwB,CAACF,IAAAA,CAAAA;QACnD,MAAMG,QAAAA,GAAWX,MAAAA,CAAOY,4BAA4B,CAACJ,IAAAA,CAAAA;AAErD,QAAA,IAAI,CAACC,SAAAA,IAAaA,SAAAA,CAAUI,MAAM,KAAK,CAAA,EAAG;YACxC,OAAON,GAAAA;AACT,QAAA;QAEA,OAAO;AACL,YAAA,GAAGA,GAAG;YAEN,CAACI,QAAAA,GAAWG,qBAAAA,CAAgB;gBAC1BC,IAAAA,EAAMJ,QAAAA;AAENK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;oBACV,KAAK,MAAMC,YAAYT,SAAAA,CAAW;wBAChCS,QAAAA,CAASC,GAAG,CAACF,CAAAA,EAAGT,IAAAA,CAAAA;AAClB,oBAAA;AACF,gBAAA;AACF,aAAA;AACF,SAAA;AACF,IAAA,CAAA,EAAG,EAAC,CAAA;AACN,CAAA;AAEA,cAAe,CAAA,CAACY,OAAAA,IAAsB;AACpCC,QAAAA,OAAAA,EAASvB,kBAAAA,CAAmBsB,OAAAA;AAC9B,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"filters.js","sources":["../../../../../server/src/services/internals/types/filters.ts"],"sourcesContent":["import { inputObjectType } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Context } from '../../types';\n\n/**\n * Build a map of filters type for every GraphQL scalars\n * @return {Object<string, NexusInputTypeDef>}\n */\nconst buildScalarFilters = ({ strapi }: Context) => {\n const { naming, mappers } = strapi.plugin('graphql').service('utils');\n const { helpers } = strapi.plugin('graphql').service('internals');\n\n // `getEnabledScalars` keeps develop's published element type; it returns scalar names.\n return (helpers.getEnabledScalars() as string[]).reduce((acc: any, type: string) => {\n // `graphqlScalarToOperators` keeps develop's published (wrong) `boolean` return type.\n const operators = mappers.graphqlScalarToOperators(type) as unknown as\n { add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string): void }[] | undefined;\n const typeName = naming.getScalarFilterInputTypeName(type);\n\n if (!operators || operators.length === 0) {\n return acc;\n }\n\n return {\n ...acc,\n\n [typeName]: inputObjectType({\n name: typeName,\n\n definition(t) {\n for (const operator of operators) {\n // Operators keep develop's published `ObjectDefinitionBlock` parameter; they only add fields.\n operator.add(t as unknown as Nexus.blocks.ObjectDefinitionBlock<string>, type);\n }\n },\n }),\n };\n }, {});\n};\n\nexport default (context: Context) => ({\n scalars: buildScalarFilters(context),\n});\n"],"names":["buildScalarFilters","strapi","naming","mappers","plugin","service","helpers","getEnabledScalars","reduce","acc","type","operators","graphqlScalarToOperators","typeName","getScalarFilterInputTypeName","length","inputObjectType","name","definition","t","operator","add","context","scalars"],"mappings":";;;;AAIA;;;AAGC,IACD,MAAMA,kBAAAA,GAAqB,CAAC,EAAEC,MAAM,EAAW,GAAA;IAC7C,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAC7D,MAAM,EAAEC,OAAO,EAAE,GAAGL,OAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;;AAGrD,IAAA,OAAO,OAACC,CAAQC,iBAAiB,GAAgBC,MAAM,CAAC,CAACC,GAAAA,EAAUC,IAAAA,GAAAA;;QAEjE,MAAMC,SAAAA,GAAYR,OAAAA,CAAQS,wBAAwB,CAACF,IAAAA,CAAAA;QAEnD,MAAMG,QAAAA,GAAWX,MAAAA,CAAOY,4BAA4B,CAACJ,IAAAA,CAAAA;AAErD,QAAA,IAAI,CAACC,SAAAA,IAAaA,SAAAA,CAAUI,MAAM,KAAK,CAAA,EAAG;YACxC,OAAON,GAAAA;AACT,QAAA;QAEA,OAAO;AACL,YAAA,GAAGA,GAAG;YAEN,CAACI,QAAAA,GAAWG,qBAAAA,CAAgB;gBAC1BC,IAAAA,EAAMJ,QAAAA;AAENK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;oBACV,KAAK,MAAMC,YAAYT,SAAAA,CAAW;;wBAEhCS,QAAAA,CAASC,GAAG,CAACF,CAAAA,EAA4DT,IAAAA,CAAAA;AAC3E,oBAAA;AACF,gBAAA;AACF,aAAA;AACF,SAAA;AACF,IAAA,CAAA,EAAG,EAAC,CAAA;AACN,CAAA;AAEA,cAAe,CAAA,CAACY,OAAAA,IAAsB;AACpCC,QAAAA,OAAAA,EAASvB,kBAAAA,CAAmBsB,OAAAA;AAC9B,KAAA,CAAC;;;;"}
@@ -6,7 +6,9 @@ import { inputObjectType } from 'nexus';
6
6
  */ const buildScalarFilters = ({ strapi })=>{
7
7
  const { naming, mappers } = strapi.plugin('graphql').service('utils');
8
8
  const { helpers } = strapi.plugin('graphql').service('internals');
9
+ // `getEnabledScalars` keeps develop's published element type; it returns scalar names.
9
10
  return helpers.getEnabledScalars().reduce((acc, type)=>{
11
+ // `graphqlScalarToOperators` keeps develop's published (wrong) `boolean` return type.
10
12
  const operators = mappers.graphqlScalarToOperators(type);
11
13
  const typeName = naming.getScalarFilterInputTypeName(type);
12
14
  if (!operators || operators.length === 0) {
@@ -18,6 +20,7 @@ import { inputObjectType } from 'nexus';
18
20
  name: typeName,
19
21
  definition (t) {
20
22
  for (const operator of operators){
23
+ // Operators keep develop's published `ObjectDefinitionBlock` parameter; they only add fields.
21
24
  operator.add(t, type);
22
25
  }
23
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filters.mjs","sources":["../../../../../server/src/services/internals/types/filters.ts"],"sourcesContent":["import { inputObjectType } from 'nexus';\nimport type { Context } from '../../types';\n\n/**\n * Build a map of filters type for every GraphQL scalars\n * @return {Object<string, NexusInputTypeDef>}\n */\nconst buildScalarFilters = ({ strapi }: Context) => {\n const { naming, mappers } = strapi.plugin('graphql').service('utils');\n const { helpers } = strapi.plugin('graphql').service('internals');\n\n return helpers.getEnabledScalars().reduce((acc: any, type: string) => {\n const operators = mappers.graphqlScalarToOperators(type);\n const typeName = naming.getScalarFilterInputTypeName(type);\n\n if (!operators || operators.length === 0) {\n return acc;\n }\n\n return {\n ...acc,\n\n [typeName]: inputObjectType({\n name: typeName,\n\n definition(t) {\n for (const operator of operators) {\n operator.add(t, type);\n }\n },\n }),\n };\n }, {});\n};\n\nexport default (context: Context) => ({\n scalars: buildScalarFilters(context),\n});\n"],"names":["buildScalarFilters","strapi","naming","mappers","plugin","service","helpers","getEnabledScalars","reduce","acc","type","operators","graphqlScalarToOperators","typeName","getScalarFilterInputTypeName","length","inputObjectType","name","definition","t","operator","add","context","scalars"],"mappings":";;AAGA;;;AAGC,IACD,MAAMA,kBAAAA,GAAqB,CAAC,EAAEC,MAAM,EAAW,GAAA;IAC7C,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAC7D,MAAM,EAAEC,OAAO,EAAE,GAAGL,OAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;AAErD,IAAA,OAAOC,QAAQC,iBAAiB,EAAA,CAAGC,MAAM,CAAC,CAACC,GAAAA,EAAUC,IAAAA,GAAAA;QACnD,MAAMC,SAAAA,GAAYR,OAAAA,CAAQS,wBAAwB,CAACF,IAAAA,CAAAA;QACnD,MAAMG,QAAAA,GAAWX,MAAAA,CAAOY,4BAA4B,CAACJ,IAAAA,CAAAA;AAErD,QAAA,IAAI,CAACC,SAAAA,IAAaA,SAAAA,CAAUI,MAAM,KAAK,CAAA,EAAG;YACxC,OAAON,GAAAA;AACT,QAAA;QAEA,OAAO;AACL,YAAA,GAAGA,GAAG;YAEN,CAACI,QAAAA,GAAWG,eAAAA,CAAgB;gBAC1BC,IAAAA,EAAMJ,QAAAA;AAENK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;oBACV,KAAK,MAAMC,YAAYT,SAAAA,CAAW;wBAChCS,QAAAA,CAASC,GAAG,CAACF,CAAAA,EAAGT,IAAAA,CAAAA;AAClB,oBAAA;AACF,gBAAA;AACF,aAAA;AACF,SAAA;AACF,IAAA,CAAA,EAAG,EAAC,CAAA;AACN,CAAA;AAEA,cAAe,CAAA,CAACY,OAAAA,IAAsB;AACpCC,QAAAA,OAAAA,EAASvB,kBAAAA,CAAmBsB,OAAAA;AAC9B,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"filters.mjs","sources":["../../../../../server/src/services/internals/types/filters.ts"],"sourcesContent":["import { inputObjectType } from 'nexus';\nimport type * as Nexus from 'nexus';\nimport type { Context } from '../../types';\n\n/**\n * Build a map of filters type for every GraphQL scalars\n * @return {Object<string, NexusInputTypeDef>}\n */\nconst buildScalarFilters = ({ strapi }: Context) => {\n const { naming, mappers } = strapi.plugin('graphql').service('utils');\n const { helpers } = strapi.plugin('graphql').service('internals');\n\n // `getEnabledScalars` keeps develop's published element type; it returns scalar names.\n return (helpers.getEnabledScalars() as string[]).reduce((acc: any, type: string) => {\n // `graphqlScalarToOperators` keeps develop's published (wrong) `boolean` return type.\n const operators = mappers.graphqlScalarToOperators(type) as unknown as\n { add(t: Nexus.blocks.ObjectDefinitionBlock<string>, type: string): void }[] | undefined;\n const typeName = naming.getScalarFilterInputTypeName(type);\n\n if (!operators || operators.length === 0) {\n return acc;\n }\n\n return {\n ...acc,\n\n [typeName]: inputObjectType({\n name: typeName,\n\n definition(t) {\n for (const operator of operators) {\n // Operators keep develop's published `ObjectDefinitionBlock` parameter; they only add fields.\n operator.add(t as unknown as Nexus.blocks.ObjectDefinitionBlock<string>, type);\n }\n },\n }),\n };\n }, {});\n};\n\nexport default (context: Context) => ({\n scalars: buildScalarFilters(context),\n});\n"],"names":["buildScalarFilters","strapi","naming","mappers","plugin","service","helpers","getEnabledScalars","reduce","acc","type","operators","graphqlScalarToOperators","typeName","getScalarFilterInputTypeName","length","inputObjectType","name","definition","t","operator","add","context","scalars"],"mappings":";;AAIA;;;AAGC,IACD,MAAMA,kBAAAA,GAAqB,CAAC,EAAEC,MAAM,EAAW,GAAA;IAC7C,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAC7D,MAAM,EAAEC,OAAO,EAAE,GAAGL,OAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;;AAGrD,IAAA,OAAO,OAACC,CAAQC,iBAAiB,GAAgBC,MAAM,CAAC,CAACC,GAAAA,EAAUC,IAAAA,GAAAA;;QAEjE,MAAMC,SAAAA,GAAYR,OAAAA,CAAQS,wBAAwB,CAACF,IAAAA,CAAAA;QAEnD,MAAMG,QAAAA,GAAWX,MAAAA,CAAOY,4BAA4B,CAACJ,IAAAA,CAAAA;AAErD,QAAA,IAAI,CAACC,SAAAA,IAAaA,SAAAA,CAAUI,MAAM,KAAK,CAAA,EAAG;YACxC,OAAON,GAAAA;AACT,QAAA;QAEA,OAAO;AACL,YAAA,GAAGA,GAAG;YAEN,CAACI,QAAAA,GAAWG,eAAAA,CAAgB;gBAC1BC,IAAAA,EAAMJ,QAAAA;AAENK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;oBACV,KAAK,MAAMC,YAAYT,SAAAA,CAAW;;wBAEhCS,QAAAA,CAASC,GAAG,CAACF,CAAAA,EAA4DT,IAAAA,CAAAA;AAC3E,oBAAA;AACF,gBAAA;AACF,aAAA;AACF,SAAA;AACF,IAAA,CAAA,EAAG,EAAC,CAAA;AACN,CAAA;AAEA,cAAe,CAAA,CAACY,OAAAA,IAAsB;AACpCC,QAAAA,OAAAA,EAASvB,kBAAAA,CAAmBsB,OAAAA;AAC9B,KAAA,CAAC;;;;"}