@strapi/plugin-graphql 5.55.1 → 5.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/server/bootstrap.js +10 -10
  2. package/dist/server/bootstrap.js.map +1 -1
  3. package/dist/server/bootstrap.mjs +8 -8
  4. package/dist/server/bootstrap.mjs.map +1 -1
  5. package/dist/server/format-graphql-error.js +5 -5
  6. package/dist/server/format-graphql-error.js.map +1 -1
  7. package/dist/server/format-graphql-error.mjs +4 -4
  8. package/dist/server/format-graphql-error.mjs.map +1 -1
  9. package/dist/server/services/builders/dynamic-zones.js +3 -3
  10. package/dist/server/services/builders/dynamic-zones.js.map +1 -1
  11. package/dist/server/services/builders/dynamic-zones.mjs +3 -3
  12. package/dist/server/services/builders/dynamic-zones.mjs.map +1 -1
  13. package/dist/server/services/builders/entity.js +4 -4
  14. package/dist/server/services/builders/entity.js.map +1 -1
  15. package/dist/server/services/builders/entity.mjs +2 -2
  16. package/dist/server/services/builders/entity.mjs.map +1 -1
  17. package/dist/server/services/builders/enums.js +2 -2
  18. package/dist/server/services/builders/enums.js.map +1 -1
  19. package/dist/server/services/builders/enums.mjs +2 -2
  20. package/dist/server/services/builders/enums.mjs.map +1 -1
  21. package/dist/server/services/builders/filters/operators/index.js +3 -3
  22. package/dist/server/services/builders/filters/operators/index.js.map +1 -1
  23. package/dist/server/services/builders/filters/operators/index.mjs +3 -3
  24. package/dist/server/services/builders/filters/operators/index.mjs.map +1 -1
  25. package/dist/server/services/builders/generic-morph.js +1 -2
  26. package/dist/server/services/builders/generic-morph.js.map +1 -1
  27. package/dist/server/services/builders/generic-morph.mjs +1 -2
  28. package/dist/server/services/builders/generic-morph.mjs.map +1 -1
  29. package/dist/server/services/builders/index.js +2 -4
  30. package/dist/server/services/builders/index.js.map +1 -1
  31. package/dist/server/services/builders/index.mjs +2 -4
  32. package/dist/server/services/builders/index.mjs.map +1 -1
  33. package/dist/server/services/builders/relation-response-collection.js +3 -3
  34. package/dist/server/services/builders/relation-response-collection.js.map +1 -1
  35. package/dist/server/services/builders/relation-response-collection.mjs +3 -3
  36. package/dist/server/services/builders/relation-response-collection.mjs.map +1 -1
  37. package/dist/server/services/builders/resolvers/association.js +3 -3
  38. package/dist/server/services/builders/resolvers/association.js.map +1 -1
  39. package/dist/server/services/builders/resolvers/association.mjs +3 -3
  40. package/dist/server/services/builders/resolvers/association.mjs.map +1 -1
  41. package/dist/server/services/builders/resolvers/query.js +3 -3
  42. package/dist/server/services/builders/resolvers/query.js.map +1 -1
  43. package/dist/server/services/builders/resolvers/query.mjs +3 -3
  44. package/dist/server/services/builders/resolvers/query.mjs.map +1 -1
  45. package/dist/server/services/builders/response-collection.js +4 -4
  46. package/dist/server/services/builders/response-collection.js.map +1 -1
  47. package/dist/server/services/builders/response-collection.mjs +3 -3
  48. package/dist/server/services/builders/response-collection.mjs.map +1 -1
  49. package/dist/server/services/builders/response.js +1 -2
  50. package/dist/server/services/builders/response.js.map +1 -1
  51. package/dist/server/services/builders/response.mjs +1 -2
  52. package/dist/server/services/builders/response.mjs.map +1 -1
  53. package/dist/server/services/builders/type.js +4 -4
  54. package/dist/server/services/builders/type.js.map +1 -1
  55. package/dist/server/services/builders/type.mjs +3 -3
  56. package/dist/server/services/builders/type.mjs.map +1 -1
  57. package/dist/server/services/builders/utils.js +6 -6
  58. package/dist/server/services/builders/utils.js.map +1 -1
  59. package/dist/server/services/builders/utils.mjs +6 -6
  60. package/dist/server/services/builders/utils.mjs.map +1 -1
  61. package/dist/server/services/content-api/index.js +1 -2
  62. package/dist/server/services/content-api/index.js.map +1 -1
  63. package/dist/server/services/content-api/index.mjs +1 -2
  64. package/dist/server/services/content-api/index.mjs.map +1 -1
  65. package/dist/server/services/content-api/policy.js +2 -3
  66. package/dist/server/services/content-api/policy.js.map +1 -1
  67. package/dist/server/services/content-api/policy.mjs +2 -3
  68. package/dist/server/services/content-api/policy.mjs.map +1 -1
  69. package/dist/server/services/content-api/wrap-resolvers.js +9 -9
  70. package/dist/server/services/content-api/wrap-resolvers.js.map +1 -1
  71. package/dist/server/services/content-api/wrap-resolvers.mjs +9 -9
  72. package/dist/server/services/content-api/wrap-resolvers.mjs.map +1 -1
  73. package/dist/server/services/extension/extension.js +3 -3
  74. package/dist/server/services/extension/extension.js.map +1 -1
  75. package/dist/server/services/extension/extension.mjs +3 -3
  76. package/dist/server/services/extension/extension.mjs.map +1 -1
  77. package/dist/server/services/internals/helpers/get-enabled-scalars.js +2 -2
  78. package/dist/server/services/internals/helpers/get-enabled-scalars.js.map +1 -1
  79. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs +1 -1
  80. package/dist/server/services/internals/helpers/get-enabled-scalars.mjs.map +1 -1
  81. package/dist/server/services/internals/types/error.js +1 -2
  82. package/dist/server/services/internals/types/error.js.map +1 -1
  83. package/dist/server/services/internals/types/error.mjs +1 -2
  84. package/dist/server/services/internals/types/error.mjs.map +1 -1
  85. package/dist/server/services/type-registry.js +1 -2
  86. package/dist/server/services/type-registry.js.map +1 -1
  87. package/dist/server/services/type-registry.mjs +1 -2
  88. package/dist/server/services/type-registry.mjs.map +1 -1
  89. package/dist/server/services/utils/attributes.js +6 -6
  90. package/dist/server/services/utils/attributes.js.map +1 -1
  91. package/dist/server/services/utils/attributes.mjs +6 -6
  92. package/dist/server/services/utils/attributes.mjs.map +1 -1
  93. package/dist/server/services/utils/mappers/entity-to-response-entity.js +2 -2
  94. package/dist/server/services/utils/mappers/entity-to-response-entity.js.map +1 -1
  95. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs +2 -2
  96. package/dist/server/services/utils/mappers/entity-to-response-entity.mjs.map +1 -1
  97. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js +5 -5
  98. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.js.map +1 -1
  99. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs +4 -4
  100. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.mjs.map +1 -1
  101. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js +3 -3
  102. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.js.map +1 -1
  103. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs +3 -3
  104. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.mjs.map +1 -1
  105. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js +3 -3
  106. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js.map +1 -1
  107. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs +2 -2
  108. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.mjs.map +1 -1
  109. package/dist/server/services/utils/naming.js +13 -10
  110. package/dist/server/services/utils/naming.js.map +1 -1
  111. package/dist/server/services/utils/naming.mjs +9 -6
  112. package/dist/server/services/utils/naming.mjs.map +1 -1
  113. package/dist/server/src/bootstrap.d.ts.map +1 -1
  114. package/dist/server/src/index.d.ts +128 -13
  115. package/dist/server/src/index.d.ts.map +1 -1
  116. package/dist/server/src/services/builders/filters/operators/index.d.ts +112 -5
  117. package/dist/server/src/services/builders/filters/operators/index.d.ts.map +1 -1
  118. package/dist/server/src/services/builders/generic-morph.d.ts.map +1 -1
  119. package/dist/server/src/services/builders/index.d.ts +116 -7
  120. package/dist/server/src/services/builders/index.d.ts.map +1 -1
  121. package/dist/server/src/services/builders/resolvers/index.d.ts.map +1 -1
  122. package/dist/server/src/services/builders/response.d.ts.map +1 -1
  123. package/dist/server/src/services/builders/utils.d.ts +3 -1
  124. package/dist/server/src/services/builders/utils.d.ts.map +1 -1
  125. package/dist/server/src/services/content-api/index.d.ts.map +1 -1
  126. package/dist/server/src/services/content-api/policy.d.ts.map +1 -1
  127. package/dist/server/src/services/index.d.ts +128 -13
  128. package/dist/server/src/services/index.d.ts.map +1 -1
  129. package/dist/server/src/services/internals/types/error.d.ts.map +1 -1
  130. package/dist/server/src/services/type-registry.d.ts.map +1 -1
  131. package/dist/server/src/services/utils/index.d.ts +12 -6
  132. package/dist/server/src/services/utils/index.d.ts.map +1 -1
  133. package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts +14 -7
  134. package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts.map +1 -1
  135. package/dist/server/src/services/utils/mappers/graphql-scalar-to-operators.d.ts.map +1 -1
  136. package/dist/server/src/services/utils/mappers/index.d.ts +12 -6
  137. package/dist/server/src/services/utils/mappers/index.d.ts.map +1 -1
  138. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sources":["../../../../server/src/services/builders/enums.ts"],"sourcesContent":["import { enumType } from 'nexus';\nimport { set } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\n\ninterface Definition {\n enum: string[];\n}\n\n/**\n * Build a Nexus enum type from a Strapi enum attribute\n * @param {object} definition - The definition of the enum\n * @param {string[]} definition.enum - The params of the enum\n * @param {string} name - The name of the enum\n * @return {NexusEnumTypeDef}\n */\nconst buildEnumTypeDefinition = (definition: Definition, name: string) => {\n return enumType({\n name,\n members: definition.enum.reduce(\n (acc, value) => set(strings.toRegressedEnumValue(value), value, acc),\n {}\n ),\n });\n};\n\nexport default () => ({\n buildEnumTypeDefinition,\n});\n"],"names":["buildEnumTypeDefinition","definition","name","enumType","members","enum","reduce","acc","value","set","strings","toRegressedEnumValue"],"mappings":";;;;;;AAQA;;;;;;IAOA,MAAMA,uBAAAA,GAA0B,CAACC,UAAAA,EAAwBC,IAAAA,GAAAA;AACvD,IAAA,OAAOC,cAAAA,CAAS;AACdD,QAAAA,IAAAA;AACAE,QAAAA,OAAAA,EAASH,UAAAA,CAAWI,IAAI,CAACC,MAAM,CAC7B,CAACC,GAAAA,EAAKC,KAAAA,GAAUC,MAAAA,CAAIC,cAAQC,oBAAoB,CAACH,KAAAA,CAAAA,EAAQA,KAAAA,EAAOD,MAChE,EAAC;AAEL,KAAA,CAAA;AACF,CAAA;AAEA,YAAe,CAAA,KAAO;AACpBP,QAAAA;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"enums.js","sources":["../../../../server/src/services/builders/enums.ts"],"sourcesContent":["import { enumType } from 'nexus';\nimport { set } from 'lodash';\nimport { strings } from '@strapi/utils';\n\ninterface Definition {\n enum: string[];\n}\n\n/**\n * Build a Nexus enum type from a Strapi enum attribute\n * @param {object} definition - The definition of the enum\n * @param {string[]} definition.enum - The params of the enum\n * @param {string} name - The name of the enum\n * @return {NexusEnumTypeDef}\n */\nconst buildEnumTypeDefinition = (definition: Definition, name: string) => {\n return enumType({\n name,\n members: definition.enum.reduce(\n (acc, value) => set(acc, strings.toRegressedEnumValue(value), value),\n {}\n ),\n });\n};\n\nexport default () => ({\n buildEnumTypeDefinition,\n});\n"],"names":["buildEnumTypeDefinition","definition","name","enumType","members","enum","reduce","acc","value","set","strings","toRegressedEnumValue"],"mappings":";;;;;;AAQA;;;;;;IAOA,MAAMA,uBAAAA,GAA0B,CAACC,UAAAA,EAAwBC,IAAAA,GAAAA;AACvD,IAAA,OAAOC,cAAAA,CAAS;AACdD,QAAAA,IAAAA;AACAE,QAAAA,OAAAA,EAASH,UAAAA,CAAWI,IAAI,CAACC,MAAM,CAC7B,CAACC,GAAAA,EAAKC,KAAAA,GAAUC,UAAAA,CAAIF,KAAKG,aAAAA,CAAQC,oBAAoB,CAACH,KAAAA,CAAAA,EAAQA,QAC9D,EAAC;AAEL,KAAA,CAAA;AACF,CAAA;AAEA,YAAe,CAAA,KAAO;AACpBR,QAAAA;AACF,KAAA,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { enumType } from 'nexus';
2
- import { set } from 'lodash/fp';
2
+ import { set } from 'lodash';
3
3
  import { strings } from '@strapi/utils';
4
4
 
5
5
  /**
@@ -11,7 +11,7 @@ import { strings } from '@strapi/utils';
11
11
  */ const buildEnumTypeDefinition = (definition, name)=>{
12
12
  return enumType({
13
13
  name,
14
- members: definition.enum.reduce((acc, value)=>set(strings.toRegressedEnumValue(value), value, acc), {})
14
+ members: definition.enum.reduce((acc, value)=>set(acc, strings.toRegressedEnumValue(value), value), {})
15
15
  });
16
16
  };
17
17
  var enums = (()=>({
@@ -1 +1 @@
1
- {"version":3,"file":"enums.mjs","sources":["../../../../server/src/services/builders/enums.ts"],"sourcesContent":["import { enumType } from 'nexus';\nimport { set } from 'lodash/fp';\nimport { strings } from '@strapi/utils';\n\ninterface Definition {\n enum: string[];\n}\n\n/**\n * Build a Nexus enum type from a Strapi enum attribute\n * @param {object} definition - The definition of the enum\n * @param {string[]} definition.enum - The params of the enum\n * @param {string} name - The name of the enum\n * @return {NexusEnumTypeDef}\n */\nconst buildEnumTypeDefinition = (definition: Definition, name: string) => {\n return enumType({\n name,\n members: definition.enum.reduce(\n (acc, value) => set(strings.toRegressedEnumValue(value), value, acc),\n {}\n ),\n });\n};\n\nexport default () => ({\n buildEnumTypeDefinition,\n});\n"],"names":["buildEnumTypeDefinition","definition","name","enumType","members","enum","reduce","acc","value","set","strings","toRegressedEnumValue"],"mappings":";;;;AAQA;;;;;;IAOA,MAAMA,uBAAAA,GAA0B,CAACC,UAAAA,EAAwBC,IAAAA,GAAAA;AACvD,IAAA,OAAOC,QAAAA,CAAS;AACdD,QAAAA,IAAAA;AACAE,QAAAA,OAAAA,EAASH,UAAAA,CAAWI,IAAI,CAACC,MAAM,CAC7B,CAACC,GAAAA,EAAKC,KAAAA,GAAUC,GAAAA,CAAIC,QAAQC,oBAAoB,CAACH,KAAAA,CAAAA,EAAQA,KAAAA,EAAOD,MAChE,EAAC;AAEL,KAAA,CAAA;AACF,CAAA;AAEA,YAAe,CAAA,KAAO;AACpBP,QAAAA;AACF,KAAA,CAAC;;;;"}
1
+ {"version":3,"file":"enums.mjs","sources":["../../../../server/src/services/builders/enums.ts"],"sourcesContent":["import { enumType } from 'nexus';\nimport { set } from 'lodash';\nimport { strings } from '@strapi/utils';\n\ninterface Definition {\n enum: string[];\n}\n\n/**\n * Build a Nexus enum type from a Strapi enum attribute\n * @param {object} definition - The definition of the enum\n * @param {string[]} definition.enum - The params of the enum\n * @param {string} name - The name of the enum\n * @return {NexusEnumTypeDef}\n */\nconst buildEnumTypeDefinition = (definition: Definition, name: string) => {\n return enumType({\n name,\n members: definition.enum.reduce(\n (acc, value) => set(acc, strings.toRegressedEnumValue(value), value),\n {}\n ),\n });\n};\n\nexport default () => ({\n buildEnumTypeDefinition,\n});\n"],"names":["buildEnumTypeDefinition","definition","name","enumType","members","enum","reduce","acc","value","set","strings","toRegressedEnumValue"],"mappings":";;;;AAQA;;;;;;IAOA,MAAMA,uBAAAA,GAA0B,CAACC,UAAAA,EAAwBC,IAAAA,GAAAA;AACvD,IAAA,OAAOC,QAAAA,CAAS;AACdD,QAAAA,IAAAA;AACAE,QAAAA,OAAAA,EAASH,UAAAA,CAAWI,IAAI,CAACC,MAAM,CAC7B,CAACC,GAAAA,EAAKC,KAAAA,GAAUC,GAAAA,CAAIF,KAAKG,OAAAA,CAAQC,oBAAoB,CAACH,KAAAA,CAAAA,EAAQA,QAC9D,EAAC;AAEL,KAAA,CAAA;AACF,CAAA;AAEA,YAAe,CAAA,KAAO;AACpBR,QAAAA;AACF,KAAA,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var lodash = require('lodash');
4
4
  var and = require('./and.js');
5
5
  var or = require('./or.js');
6
6
  var not = require('./not.js');
@@ -49,9 +49,9 @@ const operators = {
49
49
  between: between
50
50
  };
51
51
  // Instantiate every operator with the Strapi instance
52
- var operators$1 = (({ strapi })=>fp.mapValues((opCtor)=>opCtor({
52
+ var operators$1 = (({ strapi })=>lodash.mapValues(operators, (opCtor)=>opCtor({
53
53
  strapi
54
- }), operators));
54
+ })));
55
55
 
56
56
  module.exports = operators$1;
57
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../server/src/services/builders/filters/operators/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { mapValues } from 'lodash/fp';\nimport andOperator from './and';\nimport orOperator from './or';\nimport notOperator from './not';\nimport eqOperator from './eq';\nimport eqiOperator from './eqi';\nimport neOperator from './ne';\nimport neiOperator from './nei';\nimport startsWithOperator from './starts-with';\nimport endsWithOperator from './ends-with';\nimport containsOperator from './contains';\nimport notContainsOperator from './not-contains';\nimport containsiOperator from './containsi';\nimport notContainsiOperator from './not-containsi';\nimport gtOperator from './gt';\nimport gteOperator from './gte';\nimport ltOperator from './lt';\nimport lteOperator from './lte';\nimport nullOperator from './null';\nimport notNullOperator from './not-null';\nimport inOperator from './in';\nimport notInOperator from './not-in';\nimport betweenOperator from './between';\n\nconst operators = {\n and: andOperator,\n or: orOperator,\n not: notOperator,\n eq: eqOperator,\n eqi: eqiOperator,\n ne: neOperator,\n nei: neiOperator,\n startsWith: startsWithOperator,\n endsWith: endsWithOperator,\n contains: containsOperator,\n notContains: notContainsOperator,\n containsi: containsiOperator,\n notContainsi: notContainsiOperator,\n gt: gtOperator,\n gte: gteOperator,\n lt: ltOperator,\n lte: lteOperator,\n null: nullOperator,\n notNull: notNullOperator,\n in: inOperator,\n notIn: notInOperator,\n between: betweenOperator,\n};\n\n// Instantiate every operator with the Strapi instance\nexport default ({ strapi }: { strapi: Core.Strapi }) =>\n mapValues((opCtor) => opCtor({ strapi }), operators);\n"],"names":["operators","and","andOperator","or","orOperator","not","notOperator","eq","eqOperator","eqi","eqiOperator","ne","neOperator","nei","neiOperator","startsWith","startsWithOperator","endsWith","endsWithOperator","contains","containsOperator","notContains","notContainsOperator","containsi","containsiOperator","notContainsi","notContainsiOperator","gt","gtOperator","gte","gteOperator","lt","ltOperator","lte","lteOperator","null","nullOperator","notNull","notNullOperator","in","inOperator","notIn","notInOperator","between","betweenOperator","strapi","mapValues","opCtor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,SAAAA,GAAY;IAChBC,GAAAA,EAAKC,GAAAA;IACLC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,UAAAA,EAAYC,UAAAA;IACZC,QAAAA,EAAUC,QAAAA;IACVC,QAAAA,EAAUC,QAAAA;IACVC,WAAAA,EAAaC,WAAAA;IACbC,SAAAA,EAAWC,SAAAA;IACXC,YAAAA,EAAcC,YAAAA;IACdC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,IAAAA,EAAMC,KAAAA;IACNC,OAAAA,EAASC,OAAAA;IACTC,EAAAA,EAAIC,GAAAA;IACJC,KAAAA,EAAOC,KAAAA;IACPC,OAAAA,EAASC;AACX,CAAA;AAEA;AACA,kBAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GACjDC,YAAAA,CAAU,CAACC,MAAAA,GAAWA,MAAAA,CAAO;AAAEF,YAAAA;AAAO,SAAA,CAAA,EAAI7C,UAAS;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../server/src/services/builders/filters/operators/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { mapValues } from 'lodash';\nimport andOperator from './and';\nimport orOperator from './or';\nimport notOperator from './not';\nimport eqOperator from './eq';\nimport eqiOperator from './eqi';\nimport neOperator from './ne';\nimport neiOperator from './nei';\nimport startsWithOperator from './starts-with';\nimport endsWithOperator from './ends-with';\nimport containsOperator from './contains';\nimport notContainsOperator from './not-contains';\nimport containsiOperator from './containsi';\nimport notContainsiOperator from './not-containsi';\nimport gtOperator from './gt';\nimport gteOperator from './gte';\nimport ltOperator from './lt';\nimport lteOperator from './lte';\nimport nullOperator from './null';\nimport notNullOperator from './not-null';\nimport inOperator from './in';\nimport notInOperator from './not-in';\nimport betweenOperator from './between';\n\nconst operators = {\n and: andOperator,\n or: orOperator,\n not: notOperator,\n eq: eqOperator,\n eqi: eqiOperator,\n ne: neOperator,\n nei: neiOperator,\n startsWith: startsWithOperator,\n endsWith: endsWithOperator,\n contains: containsOperator,\n notContains: notContainsOperator,\n containsi: containsiOperator,\n notContainsi: notContainsiOperator,\n gt: gtOperator,\n gte: gteOperator,\n lt: ltOperator,\n lte: lteOperator,\n null: nullOperator,\n notNull: notNullOperator,\n in: inOperator,\n notIn: notInOperator,\n between: betweenOperator,\n};\n\n// Instantiate every operator with the Strapi instance\nexport default ({ strapi }: { strapi: Core.Strapi }) =>\n mapValues(operators, (opCtor) => opCtor({ strapi }));\n"],"names":["operators","and","andOperator","or","orOperator","not","notOperator","eq","eqOperator","eqi","eqiOperator","ne","neOperator","nei","neiOperator","startsWith","startsWithOperator","endsWith","endsWithOperator","contains","containsOperator","notContains","notContainsOperator","containsi","containsiOperator","notContainsi","notContainsiOperator","gt","gtOperator","gte","gteOperator","lt","ltOperator","lte","lteOperator","null","nullOperator","notNull","notNullOperator","in","inOperator","notIn","notInOperator","between","betweenOperator","strapi","mapValues","opCtor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,SAAAA,GAAY;IAChBC,GAAAA,EAAKC,GAAAA;IACLC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,UAAAA,EAAYC,UAAAA;IACZC,QAAAA,EAAUC,QAAAA;IACVC,QAAAA,EAAUC,QAAAA;IACVC,WAAAA,EAAaC,WAAAA;IACbC,SAAAA,EAAWC,SAAAA;IACXC,YAAAA,EAAcC,YAAAA;IACdC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,EAAAA,EAAIC,EAAAA;IACJC,GAAAA,EAAKC,GAAAA;IACLC,IAAAA,EAAMC,KAAAA;IACNC,OAAAA,EAASC,OAAAA;IACTC,EAAAA,EAAIC,GAAAA;IACJC,KAAAA,EAAOC,KAAAA;IACPC,OAAAA,EAASC;AACX,CAAA;AAEA;AACA,kBAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GACjDC,gBAAAA,CAAU9C,SAAAA,EAAW,CAAC+C,MAAAA,GAAWA,MAAAA,CAAO;AAAEF,YAAAA;AAAO,SAAA,CAAA,CAAE;;;;"}
@@ -1,4 +1,4 @@
1
- import { mapValues } from 'lodash/fp';
1
+ import { mapValues } from 'lodash';
2
2
  import andOperator from './and.mjs';
3
3
  import orOperator from './or.mjs';
4
4
  import notOperator from './not.mjs';
@@ -47,9 +47,9 @@ const operators$1 = {
47
47
  between: betweenOperator
48
48
  };
49
49
  // Instantiate every operator with the Strapi instance
50
- var operators = (({ strapi })=>mapValues((opCtor)=>opCtor({
50
+ var operators = (({ strapi })=>mapValues(operators$1, (opCtor)=>opCtor({
51
51
  strapi
52
- }), operators$1));
52
+ })));
53
53
 
54
54
  export { operators as default };
55
55
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../server/src/services/builders/filters/operators/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { mapValues } from 'lodash/fp';\nimport andOperator from './and';\nimport orOperator from './or';\nimport notOperator from './not';\nimport eqOperator from './eq';\nimport eqiOperator from './eqi';\nimport neOperator from './ne';\nimport neiOperator from './nei';\nimport startsWithOperator from './starts-with';\nimport endsWithOperator from './ends-with';\nimport containsOperator from './contains';\nimport notContainsOperator from './not-contains';\nimport containsiOperator from './containsi';\nimport notContainsiOperator from './not-containsi';\nimport gtOperator from './gt';\nimport gteOperator from './gte';\nimport ltOperator from './lt';\nimport lteOperator from './lte';\nimport nullOperator from './null';\nimport notNullOperator from './not-null';\nimport inOperator from './in';\nimport notInOperator from './not-in';\nimport betweenOperator from './between';\n\nconst operators = {\n and: andOperator,\n or: orOperator,\n not: notOperator,\n eq: eqOperator,\n eqi: eqiOperator,\n ne: neOperator,\n nei: neiOperator,\n startsWith: startsWithOperator,\n endsWith: endsWithOperator,\n contains: containsOperator,\n notContains: notContainsOperator,\n containsi: containsiOperator,\n notContainsi: notContainsiOperator,\n gt: gtOperator,\n gte: gteOperator,\n lt: ltOperator,\n lte: lteOperator,\n null: nullOperator,\n notNull: notNullOperator,\n in: inOperator,\n notIn: notInOperator,\n between: betweenOperator,\n};\n\n// Instantiate every operator with the Strapi instance\nexport default ({ strapi }: { strapi: Core.Strapi }) =>\n mapValues((opCtor) => opCtor({ strapi }), operators);\n"],"names":["operators","and","andOperator","or","orOperator","not","notOperator","eq","eqOperator","eqi","eqiOperator","ne","neOperator","nei","neiOperator","startsWith","startsWithOperator","endsWith","endsWithOperator","contains","containsOperator","notContains","notContainsOperator","containsi","containsiOperator","notContainsi","notContainsiOperator","gt","gtOperator","gte","gteOperator","lt","ltOperator","lte","lteOperator","null","nullOperator","notNull","notNullOperator","in","inOperator","notIn","notInOperator","between","betweenOperator","strapi","mapValues","opCtor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,WAAAA,GAAY;IAChBC,GAAAA,EAAKC,WAAAA;IACLC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,UAAAA,EAAYC,kBAAAA;IACZC,QAAAA,EAAUC,gBAAAA;IACVC,QAAAA,EAAUC,gBAAAA;IACVC,WAAAA,EAAaC,mBAAAA;IACbC,SAAAA,EAAWC,iBAAAA;IACXC,YAAAA,EAAcC,oBAAAA;IACdC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,IAAAA,EAAMC,YAAAA;IACNC,OAAAA,EAASC,eAAAA;IACTC,EAAAA,EAAIC,UAAAA;IACJC,KAAAA,EAAOC,aAAAA;IACPC,OAAAA,EAASC;AACX,CAAA;AAEA;AACA,gBAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GACjDC,SAAAA,CAAU,CAACC,MAAAA,GAAWA,MAAAA,CAAO;AAAEF,YAAAA;AAAO,SAAA,CAAA,EAAI7C,YAAS;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../server/src/services/builders/filters/operators/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { mapValues } from 'lodash';\nimport andOperator from './and';\nimport orOperator from './or';\nimport notOperator from './not';\nimport eqOperator from './eq';\nimport eqiOperator from './eqi';\nimport neOperator from './ne';\nimport neiOperator from './nei';\nimport startsWithOperator from './starts-with';\nimport endsWithOperator from './ends-with';\nimport containsOperator from './contains';\nimport notContainsOperator from './not-contains';\nimport containsiOperator from './containsi';\nimport notContainsiOperator from './not-containsi';\nimport gtOperator from './gt';\nimport gteOperator from './gte';\nimport ltOperator from './lt';\nimport lteOperator from './lte';\nimport nullOperator from './null';\nimport notNullOperator from './not-null';\nimport inOperator from './in';\nimport notInOperator from './not-in';\nimport betweenOperator from './between';\n\nconst operators = {\n and: andOperator,\n or: orOperator,\n not: notOperator,\n eq: eqOperator,\n eqi: eqiOperator,\n ne: neOperator,\n nei: neiOperator,\n startsWith: startsWithOperator,\n endsWith: endsWithOperator,\n contains: containsOperator,\n notContains: notContainsOperator,\n containsi: containsiOperator,\n notContainsi: notContainsiOperator,\n gt: gtOperator,\n gte: gteOperator,\n lt: ltOperator,\n lte: lteOperator,\n null: nullOperator,\n notNull: notNullOperator,\n in: inOperator,\n notIn: notInOperator,\n between: betweenOperator,\n};\n\n// Instantiate every operator with the Strapi instance\nexport default ({ strapi }: { strapi: Core.Strapi }) =>\n mapValues(operators, (opCtor) => opCtor({ strapi }));\n"],"names":["operators","and","andOperator","or","orOperator","not","notOperator","eq","eqOperator","eqi","eqiOperator","ne","neOperator","nei","neiOperator","startsWith","startsWithOperator","endsWith","endsWithOperator","contains","containsOperator","notContains","notContainsOperator","containsi","containsiOperator","notContainsi","notContainsiOperator","gt","gtOperator","gte","gteOperator","lt","ltOperator","lte","lteOperator","null","nullOperator","notNull","notNullOperator","in","inOperator","notIn","notInOperator","between","betweenOperator","strapi","mapValues","opCtor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,WAAAA,GAAY;IAChBC,GAAAA,EAAKC,WAAAA;IACLC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,UAAAA,EAAYC,kBAAAA;IACZC,QAAAA,EAAUC,gBAAAA;IACVC,QAAAA,EAAUC,gBAAAA;IACVC,WAAAA,EAAaC,mBAAAA;IACbC,SAAAA,EAAWC,iBAAAA;IACXC,YAAAA,EAAcC,oBAAAA;IACdC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,EAAAA,EAAIC,UAAAA;IACJC,GAAAA,EAAKC,WAAAA;IACLC,IAAAA,EAAMC,YAAAA;IACNC,OAAAA,EAASC,eAAAA;IACTC,EAAAA,EAAIC,UAAAA;IACJC,KAAAA,EAAOC,aAAAA;IACPC,OAAAA,EAASC;AACX,CAAA;AAEA;AACA,gBAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GACjDC,SAAAA,CAAU9C,WAAAA,EAAW,CAAC+C,MAAAA,GAAWA,MAAAA,CAAO;AAAEF,YAAAA;AAAO,SAAA,CAAA,CAAE;;;;"}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var nexus = require('nexus');
4
- var fp = require('lodash/fp');
5
4
 
6
5
  var genericMorph = (({ strapi, registry })=>{
7
6
  const { naming } = strapi.plugin('graphql').service('utils');
@@ -26,7 +25,7 @@ var genericMorph = (({ strapi, registry })=>{
26
25
  KINDS.type,
27
26
  KINDS.component
28
27
  ].includes(config.kind))// Only keep their name (the type's id)
29
- .map(fp.prop('name'));
28
+ .map((entry)=>entry?.name);
30
29
  t.members(...members);
31
30
  }
32
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generic-morph.js","sources":["../../../../server/src/services/builders/generic-morph.ts"],"sourcesContent":["import { unionType } from 'nexus';\nimport { prop } from 'lodash/fp';\n\nimport type { Context } from '../types';\n\nexport default ({ strapi, registry }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n const { KINDS, GENERIC_MORPH_TYPENAME } = strapi.plugin('graphql').service('constants');\n\n return {\n buildGenericMorphDefinition() {\n return unionType({\n name: GENERIC_MORPH_TYPENAME,\n\n resolveType(obj: any) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t: any) {\n const members = registry\n // Resolve every content-type or component\n .where(({ config }) => [KINDS.type, KINDS.component].includes(config.kind))\n // Only keep their name (the type's id)\n .map(prop('name'));\n\n t.members(...members);\n },\n });\n },\n };\n};\n"],"names":["strapi","registry","naming","plugin","service","KINDS","GENERIC_MORPH_TYPENAME","buildGenericMorphDefinition","unionType","name","resolveType","obj","contentType","getModel","__type","modelType","getComponentName","getTypeName","definition","t","members","where","config","type","component","includes","kind","map","prop"],"mappings":";;;;;AAKA,mBAAe,CAAA,CAAC,EAAEA,MAAM,EAAEC,QAAQ,EAAW,GAAA;IAC3C,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IACpD,MAAM,EAAEC,KAAK,EAAEC,sBAAsB,EAAE,GAAGN,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;IAE3E,OAAO;AACLG,QAAAA,2BAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,eAAAA,CAAU;gBACfC,IAAAA,EAAMH,sBAAAA;AAENI,gBAAAA,WAAAA,CAAAA,CAAYC,GAAQ,EAAA;AAClB,oBAAA,MAAMC,WAAAA,GAAcZ,MAAAA,CAAOa,QAAQ,CAACF,IAAIG,MAAM,CAAA;AAE9C,oBAAA,IAAI,CAACF,WAAAA,EAAa;wBAChB,OAAO,IAAA;AACT,oBAAA;oBAEA,IAAIA,WAAAA,CAAYG,SAAS,KAAK,WAAA,EAAa;wBACzC,OAAOb,MAAAA,CAAOc,gBAAgB,CAACJ,WAAAA,CAAAA;AACjC,oBAAA;oBAEA,OAAOV,MAAAA,CAAOe,WAAW,CAACL,WAAAA,CAAAA;AAC5B,gBAAA,CAAA;AAEAM,gBAAAA,UAAAA,CAAAA,CAAWC,CAAM,EAAA;oBACf,MAAMC,OAAAA,GAAUnB,QACd;AACCoB,qBAAAA,KAAK,CAAC,CAAC,EAAEC,MAAM,EAAE,GAAK;AAACjB,4BAAAA,KAAAA,CAAMkB,IAAI;AAAElB,4BAAAA,KAAAA,CAAMmB;AAAU,yBAAA,CAACC,QAAQ,CAACH,MAAAA,CAAOI,IAAI,EACzE;AACCC,qBAAAA,GAAG,CAACC,OAAAA,CAAK,MAAA,CAAA,CAAA;AAEZT,oBAAAA,CAAAA,CAAEC,OAAO,CAAA,GAAIA,OAAAA,CAAAA;AACf,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"generic-morph.js","sources":["../../../../server/src/services/builders/generic-morph.ts"],"sourcesContent":["import { unionType } from 'nexus';\n\nimport type { Context } from '../types';\n\nexport default ({ strapi, registry }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n const { KINDS, GENERIC_MORPH_TYPENAME } = strapi.plugin('graphql').service('constants');\n\n return {\n buildGenericMorphDefinition() {\n return unionType({\n name: GENERIC_MORPH_TYPENAME,\n\n resolveType(obj: any) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t: any) {\n const members = registry\n // Resolve every content-type or component\n .where(({ config }) => [KINDS.type, KINDS.component].includes(config.kind))\n // Only keep their name (the type's id)\n .map((entry) => entry?.name);\n\n t.members(...members);\n },\n });\n },\n };\n};\n"],"names":["strapi","registry","naming","plugin","service","KINDS","GENERIC_MORPH_TYPENAME","buildGenericMorphDefinition","unionType","name","resolveType","obj","contentType","getModel","__type","modelType","getComponentName","getTypeName","definition","t","members","where","config","type","component","includes","kind","map","entry"],"mappings":";;;;AAIA,mBAAe,CAAA,CAAC,EAAEA,MAAM,EAAEC,QAAQ,EAAW,GAAA;IAC3C,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IACpD,MAAM,EAAEC,KAAK,EAAEC,sBAAsB,EAAE,GAAGN,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;IAE3E,OAAO;AACLG,QAAAA,2BAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,eAAAA,CAAU;gBACfC,IAAAA,EAAMH,sBAAAA;AAENI,gBAAAA,WAAAA,CAAAA,CAAYC,GAAQ,EAAA;AAClB,oBAAA,MAAMC,WAAAA,GAAcZ,MAAAA,CAAOa,QAAQ,CAACF,IAAIG,MAAM,CAAA;AAE9C,oBAAA,IAAI,CAACF,WAAAA,EAAa;wBAChB,OAAO,IAAA;AACT,oBAAA;oBAEA,IAAIA,WAAAA,CAAYG,SAAS,KAAK,WAAA,EAAa;wBACzC,OAAOb,MAAAA,CAAOc,gBAAgB,CAACJ,WAAAA,CAAAA;AACjC,oBAAA;oBAEA,OAAOV,MAAAA,CAAOe,WAAW,CAACL,WAAAA,CAAAA;AAC5B,gBAAA,CAAA;AAEAM,gBAAAA,UAAAA,CAAAA,CAAWC,CAAM,EAAA;oBACf,MAAMC,OAAAA,GAAUnB,QACd;AACCoB,qBAAAA,KAAK,CAAC,CAAC,EAAEC,MAAM,EAAE,GAAK;AAACjB,4BAAAA,KAAAA,CAAMkB,IAAI;AAAElB,4BAAAA,KAAAA,CAAMmB;AAAU,yBAAA,CAACC,QAAQ,CAACH,MAAAA,CAAOI,IAAI,EACzE;qBACCC,GAAG,CAAC,CAACC,KAAAA,GAAUA,KAAAA,EAAOnB,IAAAA,CAAAA;AAEzBU,oBAAAA,CAAAA,CAAEC,OAAO,CAAA,GAAIA,OAAAA,CAAAA;AACf,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
@@ -1,5 +1,4 @@
1
1
  import { unionType } from 'nexus';
2
- import { prop } from 'lodash/fp';
3
2
 
4
3
  var genericMorph = (({ strapi, registry })=>{
5
4
  const { naming } = strapi.plugin('graphql').service('utils');
@@ -24,7 +23,7 @@ var genericMorph = (({ strapi, registry })=>{
24
23
  KINDS.type,
25
24
  KINDS.component
26
25
  ].includes(config.kind))// Only keep their name (the type's id)
27
- .map(prop('name'));
26
+ .map((entry)=>entry?.name);
28
27
  t.members(...members);
29
28
  }
30
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generic-morph.mjs","sources":["../../../../server/src/services/builders/generic-morph.ts"],"sourcesContent":["import { unionType } from 'nexus';\nimport { prop } from 'lodash/fp';\n\nimport type { Context } from '../types';\n\nexport default ({ strapi, registry }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n const { KINDS, GENERIC_MORPH_TYPENAME } = strapi.plugin('graphql').service('constants');\n\n return {\n buildGenericMorphDefinition() {\n return unionType({\n name: GENERIC_MORPH_TYPENAME,\n\n resolveType(obj: any) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t: any) {\n const members = registry\n // Resolve every content-type or component\n .where(({ config }) => [KINDS.type, KINDS.component].includes(config.kind))\n // Only keep their name (the type's id)\n .map(prop('name'));\n\n t.members(...members);\n },\n });\n },\n };\n};\n"],"names":["strapi","registry","naming","plugin","service","KINDS","GENERIC_MORPH_TYPENAME","buildGenericMorphDefinition","unionType","name","resolveType","obj","contentType","getModel","__type","modelType","getComponentName","getTypeName","definition","t","members","where","config","type","component","includes","kind","map","prop"],"mappings":";;;AAKA,mBAAe,CAAA,CAAC,EAAEA,MAAM,EAAEC,QAAQ,EAAW,GAAA;IAC3C,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IACpD,MAAM,EAAEC,KAAK,EAAEC,sBAAsB,EAAE,GAAGN,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;IAE3E,OAAO;AACLG,QAAAA,2BAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,SAAAA,CAAU;gBACfC,IAAAA,EAAMH,sBAAAA;AAENI,gBAAAA,WAAAA,CAAAA,CAAYC,GAAQ,EAAA;AAClB,oBAAA,MAAMC,WAAAA,GAAcZ,MAAAA,CAAOa,QAAQ,CAACF,IAAIG,MAAM,CAAA;AAE9C,oBAAA,IAAI,CAACF,WAAAA,EAAa;wBAChB,OAAO,IAAA;AACT,oBAAA;oBAEA,IAAIA,WAAAA,CAAYG,SAAS,KAAK,WAAA,EAAa;wBACzC,OAAOb,MAAAA,CAAOc,gBAAgB,CAACJ,WAAAA,CAAAA;AACjC,oBAAA;oBAEA,OAAOV,MAAAA,CAAOe,WAAW,CAACL,WAAAA,CAAAA;AAC5B,gBAAA,CAAA;AAEAM,gBAAAA,UAAAA,CAAAA,CAAWC,CAAM,EAAA;oBACf,MAAMC,OAAAA,GAAUnB,QACd;AACCoB,qBAAAA,KAAK,CAAC,CAAC,EAAEC,MAAM,EAAE,GAAK;AAACjB,4BAAAA,KAAAA,CAAMkB,IAAI;AAAElB,4BAAAA,KAAAA,CAAMmB;AAAU,yBAAA,CAACC,QAAQ,CAACH,MAAAA,CAAOI,IAAI,EACzE;AACCC,qBAAAA,GAAG,CAACC,IAAAA,CAAK,MAAA,CAAA,CAAA;AAEZT,oBAAAA,CAAAA,CAAEC,OAAO,CAAA,GAAIA,OAAAA,CAAAA;AACf,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"generic-morph.mjs","sources":["../../../../server/src/services/builders/generic-morph.ts"],"sourcesContent":["import { unionType } from 'nexus';\n\nimport type { Context } from '../types';\n\nexport default ({ strapi, registry }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n const { KINDS, GENERIC_MORPH_TYPENAME } = strapi.plugin('graphql').service('constants');\n\n return {\n buildGenericMorphDefinition() {\n return unionType({\n name: GENERIC_MORPH_TYPENAME,\n\n resolveType(obj: any) {\n const contentType = strapi.getModel(obj.__type);\n\n if (!contentType) {\n return null;\n }\n\n if (contentType.modelType === 'component') {\n return naming.getComponentName(contentType);\n }\n\n return naming.getTypeName(contentType);\n },\n\n definition(t: any) {\n const members = registry\n // Resolve every content-type or component\n .where(({ config }) => [KINDS.type, KINDS.component].includes(config.kind))\n // Only keep their name (the type's id)\n .map((entry) => entry?.name);\n\n t.members(...members);\n },\n });\n },\n };\n};\n"],"names":["strapi","registry","naming","plugin","service","KINDS","GENERIC_MORPH_TYPENAME","buildGenericMorphDefinition","unionType","name","resolveType","obj","contentType","getModel","__type","modelType","getComponentName","getTypeName","definition","t","members","where","config","type","component","includes","kind","map","entry"],"mappings":";;AAIA,mBAAe,CAAA,CAAC,EAAEA,MAAM,EAAEC,QAAQ,EAAW,GAAA;IAC3C,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IACpD,MAAM,EAAEC,KAAK,EAAEC,sBAAsB,EAAE,GAAGN,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,WAAA,CAAA;IAE3E,OAAO;AACLG,QAAAA,2BAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,SAAAA,CAAU;gBACfC,IAAAA,EAAMH,sBAAAA;AAENI,gBAAAA,WAAAA,CAAAA,CAAYC,GAAQ,EAAA;AAClB,oBAAA,MAAMC,WAAAA,GAAcZ,MAAAA,CAAOa,QAAQ,CAACF,IAAIG,MAAM,CAAA;AAE9C,oBAAA,IAAI,CAACF,WAAAA,EAAa;wBAChB,OAAO,IAAA;AACT,oBAAA;oBAEA,IAAIA,WAAAA,CAAYG,SAAS,KAAK,WAAA,EAAa;wBACzC,OAAOb,MAAAA,CAAOc,gBAAgB,CAACJ,WAAAA,CAAAA;AACjC,oBAAA;oBAEA,OAAOV,MAAAA,CAAOe,WAAW,CAACL,WAAAA,CAAAA;AAC5B,gBAAA,CAAA;AAEAM,gBAAAA,UAAAA,CAAAA,CAAWC,CAAM,EAAA;oBACf,MAAMC,OAAAA,GAAUnB,QACd;AACCoB,qBAAAA,KAAK,CAAC,CAAC,EAAEC,MAAM,EAAE,GAAK;AAACjB,4BAAAA,KAAAA,CAAMkB,IAAI;AAAElB,4BAAAA,KAAAA,CAAMmB;AAAU,yBAAA,CAACC,QAAQ,CAACH,MAAAA,CAAOI,IAAI,EACzE;qBACCC,GAAG,CAAC,CAACC,KAAAA,GAAUA,KAAAA,EAAOnB,IAAAA,CAAAA;AAEzBU,oBAAAA,CAAAA,CAAEC,OAAO,CAAA,GAAIA,OAAAA,CAAAA;AACf,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var lodash = require('lodash');
4
4
  var enums = require('./enums.js');
5
5
  var dynamicZones = require('./dynamic-zones.js');
6
6
  var entity = require('./entity.js');
@@ -42,9 +42,7 @@ var builders = (({ strapi })=>{
42
42
  strapi,
43
43
  registry
44
44
  };
45
- const builders = fp.pipe(// Create a new instance of every builders
46
- fp.map((factory)=>factory(context)), // Merge every builder into the same object
47
- fp.reduce(fp.merge, {})).call(null, buildersFactories);
45
+ const builders = buildersFactories.reduce((acc, factory)=>lodash.merge(acc, factory(context)), {});
48
46
  buildersMap.set(name, builders);
49
47
  return builders;
50
48
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../server/src/services/builders/index.ts"],"sourcesContent":["import { merge, map, pipe, reduce } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\n// Builders Factories\n\nimport enums from './enums';\nimport dynamicZone from './dynamic-zones';\nimport entity from './entity';\nimport typeBuilder from './type';\nimport response from './response';\nimport responseCollection from './response-collection';\nimport relationResponseCollection from './relation-response-collection';\nimport queries from './queries';\nimport mutations from './mutations';\nimport filters from './filters';\nimport inputs from './input';\nimport genericMorph from './generic-morph';\nimport resolvers from './resolvers';\n\n// Misc\n\nimport operators from './filters/operators';\nimport utils from './utils';\nimport type { TypeRegistry } from '../type-registry';\n\nconst buildersFactories = [\n enums,\n dynamicZone,\n entity,\n typeBuilder,\n response,\n responseCollection,\n relationResponseCollection,\n queries,\n mutations,\n filters,\n inputs,\n genericMorph,\n resolvers,\n];\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const buildersMap = new Map();\n\n return {\n /**\n * Instantiate every builder with a strapi instance & a type registry\n */\n new(name: string, registry: TypeRegistry) {\n const context = { strapi, registry };\n\n const builders = pipe(\n // Create a new instance of every builders\n map((factory: any) => factory(context)),\n // Merge every builder into the same object\n reduce(merge, {})\n ).call(null, buildersFactories);\n\n buildersMap.set(name, builders);\n\n return builders;\n },\n\n /**\n * Delete a set of builders instances from\n * the builders map for a given name\n */\n delete(name: string) {\n buildersMap.delete(name);\n },\n\n /**\n * Retrieve a set of builders instances from\n * the builders map for a given name\n */\n get(name: string) {\n return buildersMap.get(name);\n },\n\n filters: {\n operators: operators({ strapi }),\n },\n\n utils: utils({ strapi }),\n };\n};\n"],"names":["buildersFactories","enums","dynamicZone","entity","typeBuilder","response","responseCollection","relationResponseCollection","queries","mutations","filters","inputs","genericMorph","resolvers","strapi","buildersMap","Map","new","name","registry","context","builders","pipe","map","factory","reduce","merge","call","set","delete","get","operators","utils"],"mappings":";;;;;;;;;;;;;;;;;;;AAyBA,MAAMA,iBAAAA,GAAoB;AACxBC,IAAAA,KAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,kBAAAA;AACAC,IAAAA,0BAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACD,CAAA;AAED,eAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACjD,IAAA,MAAMC,cAAc,IAAIC,GAAAA,EAAAA;IAExB,OAAO;AACL;;QAGAC,GAAAA,CAAAA,CAAIC,IAAY,EAAEC,QAAsB,EAAA;AACtC,YAAA,MAAMC,OAAAA,GAAU;AAAEN,gBAAAA,MAAAA;AAAQK,gBAAAA;AAAS,aAAA;YAEnC,MAAME,QAAAA,GAAWC;AAEfC,YAAAA,MAAAA,CAAI,CAACC,OAAAA,GAAiBA,OAAAA,CAAQJ,OAAAA,CAAAA,CAAAA;AAE9BK,YAAAA,SAAAA,CAAOC,QAAAA,EAAO,EAAC,CAAA,CAAA,CACfC,IAAI,CAAC,IAAA,EAAM3B,iBAAAA,CAAAA;YAEbe,WAAAA,CAAYa,GAAG,CAACV,IAAAA,EAAMG,QAAAA,CAAAA;YAEtB,OAAOA,QAAAA;AACT,QAAA,CAAA;AAEA;;;AAGC,QACDQ,QAAOX,IAAY,EAAA;AACjBH,YAAAA,WAAAA,CAAYc,MAAM,CAACX,IAAAA,CAAAA;AACrB,QAAA,CAAA;AAEA;;;AAGC,QACDY,KAAIZ,IAAY,EAAA;YACd,OAAOH,WAAAA,CAAYe,GAAG,CAACZ,IAAAA,CAAAA;AACzB,QAAA,CAAA;QAEAR,OAAAA,EAAS;AACPqB,YAAAA,SAAAA,EAAWA,KAAAA,CAAU;AAAEjB,gBAAAA;AAAO,aAAA;AAChC,SAAA;AAEAkB,QAAAA,KAAAA,EAAOA,KAAAA,CAAM;AAAElB,YAAAA;AAAO,SAAA;AACxB,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../server/src/services/builders/index.ts"],"sourcesContent":["import { merge } from 'lodash';\nimport type { Core } from '@strapi/types';\n\n// Builders Factories\n\nimport enums from './enums';\nimport dynamicZone from './dynamic-zones';\nimport entity from './entity';\nimport typeBuilder from './type';\nimport response from './response';\nimport responseCollection from './response-collection';\nimport relationResponseCollection from './relation-response-collection';\nimport queries from './queries';\nimport mutations from './mutations';\nimport filters from './filters';\nimport inputs from './input';\nimport genericMorph from './generic-morph';\nimport resolvers from './resolvers';\n\n// Misc\n\nimport operators from './filters/operators';\nimport utils from './utils';\nimport type { TypeRegistry } from '../type-registry';\n\nconst buildersFactories = [\n enums,\n dynamicZone,\n entity,\n typeBuilder,\n response,\n responseCollection,\n relationResponseCollection,\n queries,\n mutations,\n filters,\n inputs,\n genericMorph,\n resolvers,\n];\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const buildersMap = new Map();\n\n return {\n /**\n * Instantiate every builder with a strapi instance & a type registry\n */\n new(name: string, registry: TypeRegistry) {\n const context = { strapi, registry };\n\n const builders = buildersFactories.reduce((acc, factory) => merge(acc, factory(context)), {});\n\n buildersMap.set(name, builders);\n\n return builders;\n },\n\n /**\n * Delete a set of builders instances from\n * the builders map for a given name\n */\n delete(name: string) {\n buildersMap.delete(name);\n },\n\n /**\n * Retrieve a set of builders instances from\n * the builders map for a given name\n */\n get(name: string) {\n return buildersMap.get(name);\n },\n\n filters: {\n operators: operators({ strapi }),\n },\n\n utils: utils({ strapi }),\n };\n};\n"],"names":["buildersFactories","enums","dynamicZone","entity","typeBuilder","response","responseCollection","relationResponseCollection","queries","mutations","filters","inputs","genericMorph","resolvers","strapi","buildersMap","Map","new","name","registry","context","builders","reduce","acc","factory","merge","set","delete","get","operators","utils"],"mappings":";;;;;;;;;;;;;;;;;;;AAyBA,MAAMA,iBAAAA,GAAoB;AACxBC,IAAAA,KAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,kBAAAA;AACAC,IAAAA,0BAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACD,CAAA;AAED,eAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACjD,IAAA,MAAMC,cAAc,IAAIC,GAAAA,EAAAA;IAExB,OAAO;AACL;;QAGAC,GAAAA,CAAAA,CAAIC,IAAY,EAAEC,QAAsB,EAAA;AACtC,YAAA,MAAMC,OAAAA,GAAU;AAAEN,gBAAAA,MAAAA;AAAQK,gBAAAA;AAAS,aAAA;YAEnC,MAAME,QAAAA,GAAWrB,iBAAAA,CAAkBsB,MAAM,CAAC,CAACC,GAAAA,EAAKC,OAAAA,GAAYC,YAAAA,CAAMF,GAAAA,EAAKC,OAAAA,CAAQJ,OAAAA,CAAAA,CAAAA,EAAW,EAAC,CAAA;YAE3FL,WAAAA,CAAYW,GAAG,CAACR,IAAAA,EAAMG,QAAAA,CAAAA;YAEtB,OAAOA,QAAAA;AACT,QAAA,CAAA;AAEA;;;AAGC,QACDM,QAAOT,IAAY,EAAA;AACjBH,YAAAA,WAAAA,CAAYY,MAAM,CAACT,IAAAA,CAAAA;AACrB,QAAA,CAAA;AAEA;;;AAGC,QACDU,KAAIV,IAAY,EAAA;YACd,OAAOH,WAAAA,CAAYa,GAAG,CAACV,IAAAA,CAAAA;AACzB,QAAA,CAAA;QAEAR,OAAAA,EAAS;AACPmB,YAAAA,SAAAA,EAAWA,KAAAA,CAAU;AAAEf,gBAAAA;AAAO,aAAA;AAChC,SAAA;AAEAgB,QAAAA,KAAAA,EAAOA,KAAAA,CAAM;AAAEhB,YAAAA;AAAO,SAAA;AACxB,KAAA;AACF,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { pipe, map, reduce, merge } from 'lodash/fp';
1
+ import { merge } from 'lodash';
2
2
  import enums from './enums.mjs';
3
3
  import dynamicZone from './dynamic-zones.mjs';
4
4
  import entity from './entity.mjs';
@@ -40,9 +40,7 @@ var builders = (({ strapi })=>{
40
40
  strapi,
41
41
  registry
42
42
  };
43
- const builders = pipe(// Create a new instance of every builders
44
- map((factory)=>factory(context)), // Merge every builder into the same object
45
- reduce(merge, {})).call(null, buildersFactories);
43
+ const builders = buildersFactories.reduce((acc, factory)=>merge(acc, factory(context)), {});
46
44
  buildersMap.set(name, builders);
47
45
  return builders;
48
46
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../server/src/services/builders/index.ts"],"sourcesContent":["import { merge, map, pipe, reduce } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\n// Builders Factories\n\nimport enums from './enums';\nimport dynamicZone from './dynamic-zones';\nimport entity from './entity';\nimport typeBuilder from './type';\nimport response from './response';\nimport responseCollection from './response-collection';\nimport relationResponseCollection from './relation-response-collection';\nimport queries from './queries';\nimport mutations from './mutations';\nimport filters from './filters';\nimport inputs from './input';\nimport genericMorph from './generic-morph';\nimport resolvers from './resolvers';\n\n// Misc\n\nimport operators from './filters/operators';\nimport utils from './utils';\nimport type { TypeRegistry } from '../type-registry';\n\nconst buildersFactories = [\n enums,\n dynamicZone,\n entity,\n typeBuilder,\n response,\n responseCollection,\n relationResponseCollection,\n queries,\n mutations,\n filters,\n inputs,\n genericMorph,\n resolvers,\n];\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const buildersMap = new Map();\n\n return {\n /**\n * Instantiate every builder with a strapi instance & a type registry\n */\n new(name: string, registry: TypeRegistry) {\n const context = { strapi, registry };\n\n const builders = pipe(\n // Create a new instance of every builders\n map((factory: any) => factory(context)),\n // Merge every builder into the same object\n reduce(merge, {})\n ).call(null, buildersFactories);\n\n buildersMap.set(name, builders);\n\n return builders;\n },\n\n /**\n * Delete a set of builders instances from\n * the builders map for a given name\n */\n delete(name: string) {\n buildersMap.delete(name);\n },\n\n /**\n * Retrieve a set of builders instances from\n * the builders map for a given name\n */\n get(name: string) {\n return buildersMap.get(name);\n },\n\n filters: {\n operators: operators({ strapi }),\n },\n\n utils: utils({ strapi }),\n };\n};\n"],"names":["buildersFactories","enums","dynamicZone","entity","typeBuilder","response","responseCollection","relationResponseCollection","queries","mutations","filters","inputs","genericMorph","resolvers","strapi","buildersMap","Map","new","name","registry","context","builders","pipe","map","factory","reduce","merge","call","set","delete","get","operators","utils"],"mappings":";;;;;;;;;;;;;;;;;AAyBA,MAAMA,iBAAAA,GAAoB;AACxBC,IAAAA,KAAAA;AACAC,IAAAA,WAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,WAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,kBAAAA;AACAC,IAAAA,0BAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACD,CAAA;AAED,eAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACjD,IAAA,MAAMC,cAAc,IAAIC,GAAAA,EAAAA;IAExB,OAAO;AACL;;QAGAC,GAAAA,CAAAA,CAAIC,IAAY,EAAEC,QAAsB,EAAA;AACtC,YAAA,MAAMC,OAAAA,GAAU;AAAEN,gBAAAA,MAAAA;AAAQK,gBAAAA;AAAS,aAAA;YAEnC,MAAME,QAAAA,GAAWC;AAEfC,YAAAA,GAAAA,CAAI,CAACC,OAAAA,GAAiBA,OAAAA,CAAQJ,OAAAA,CAAAA,CAAAA;AAE9BK,YAAAA,MAAAA,CAAOC,KAAAA,EAAO,EAAC,CAAA,CAAA,CACfC,IAAI,CAAC,IAAA,EAAM3B,iBAAAA,CAAAA;YAEbe,WAAAA,CAAYa,GAAG,CAACV,IAAAA,EAAMG,QAAAA,CAAAA;YAEtB,OAAOA,QAAAA;AACT,QAAA,CAAA;AAEA;;;AAGC,QACDQ,QAAOX,IAAY,EAAA;AACjBH,YAAAA,WAAAA,CAAYc,MAAM,CAACX,IAAAA,CAAAA;AACrB,QAAA,CAAA;AAEA;;;AAGC,QACDY,KAAIZ,IAAY,EAAA;YACd,OAAOH,WAAAA,CAAYe,GAAG,CAACZ,IAAAA,CAAAA;AACzB,QAAA,CAAA;QAEAR,OAAAA,EAAS;AACPqB,YAAAA,SAAAA,EAAWA,SAAAA,CAAU;AAAEjB,gBAAAA;AAAO,aAAA;AAChC,SAAA;AAEAkB,QAAAA,KAAAA,EAAOA,KAAAA,CAAM;AAAElB,YAAAA;AAAO,SAAA;AACxB,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../server/src/services/builders/index.ts"],"sourcesContent":["import { merge } from 'lodash';\nimport type { Core } from '@strapi/types';\n\n// Builders Factories\n\nimport enums from './enums';\nimport dynamicZone from './dynamic-zones';\nimport entity from './entity';\nimport typeBuilder from './type';\nimport response from './response';\nimport responseCollection from './response-collection';\nimport relationResponseCollection from './relation-response-collection';\nimport queries from './queries';\nimport mutations from './mutations';\nimport filters from './filters';\nimport inputs from './input';\nimport genericMorph from './generic-morph';\nimport resolvers from './resolvers';\n\n// Misc\n\nimport operators from './filters/operators';\nimport utils from './utils';\nimport type { TypeRegistry } from '../type-registry';\n\nconst buildersFactories = [\n enums,\n dynamicZone,\n entity,\n typeBuilder,\n response,\n responseCollection,\n relationResponseCollection,\n queries,\n mutations,\n filters,\n inputs,\n genericMorph,\n resolvers,\n];\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const buildersMap = new Map();\n\n return {\n /**\n * Instantiate every builder with a strapi instance & a type registry\n */\n new(name: string, registry: TypeRegistry) {\n const context = { strapi, registry };\n\n const builders = buildersFactories.reduce((acc, factory) => merge(acc, factory(context)), {});\n\n buildersMap.set(name, builders);\n\n return builders;\n },\n\n /**\n * Delete a set of builders instances from\n * the builders map for a given name\n */\n delete(name: string) {\n buildersMap.delete(name);\n },\n\n /**\n * Retrieve a set of builders instances from\n * the builders map for a given name\n */\n get(name: string) {\n return buildersMap.get(name);\n },\n\n filters: {\n operators: operators({ strapi }),\n },\n\n utils: utils({ strapi }),\n };\n};\n"],"names":["buildersFactories","enums","dynamicZone","entity","typeBuilder","response","responseCollection","relationResponseCollection","queries","mutations","filters","inputs","genericMorph","resolvers","strapi","buildersMap","Map","new","name","registry","context","builders","reduce","acc","factory","merge","set","delete","get","operators","utils"],"mappings":";;;;;;;;;;;;;;;;;AAyBA,MAAMA,iBAAAA,GAAoB;AACxBC,IAAAA,KAAAA;AACAC,IAAAA,WAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,WAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,kBAAAA;AACAC,IAAAA,0BAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,OAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACD,CAAA;AAED,eAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACjD,IAAA,MAAMC,cAAc,IAAIC,GAAAA,EAAAA;IAExB,OAAO;AACL;;QAGAC,GAAAA,CAAAA,CAAIC,IAAY,EAAEC,QAAsB,EAAA;AACtC,YAAA,MAAMC,OAAAA,GAAU;AAAEN,gBAAAA,MAAAA;AAAQK,gBAAAA;AAAS,aAAA;YAEnC,MAAME,QAAAA,GAAWrB,iBAAAA,CAAkBsB,MAAM,CAAC,CAACC,GAAAA,EAAKC,OAAAA,GAAYC,KAAAA,CAAMF,GAAAA,EAAKC,OAAAA,CAAQJ,OAAAA,CAAAA,CAAAA,EAAW,EAAC,CAAA;YAE3FL,WAAAA,CAAYW,GAAG,CAACR,IAAAA,EAAMG,QAAAA,CAAAA;YAEtB,OAAOA,QAAAA;AACT,QAAA,CAAA;AAEA;;;AAGC,QACDM,QAAOT,IAAY,EAAA;AACjBH,YAAAA,WAAAA,CAAYY,MAAM,CAACT,IAAAA,CAAAA;AACrB,QAAA,CAAA;AAEA;;;AAGC,QACDU,KAAIV,IAAY,EAAA;YACd,OAAOH,WAAAA,CAAYa,GAAG,CAACV,IAAAA,CAAAA;AACzB,QAAA,CAAA;QAEAR,OAAAA,EAAS;AACPmB,YAAAA,SAAAA,EAAWA,SAAAA,CAAU;AAAEf,gBAAAA;AAAO,aAAA;AAChC,SAAA;AAEAgB,QAAAA,KAAAA,EAAOA,KAAAA,CAAM;AAAEhB,YAAAA;AAAO,SAAA;AACxB,KAAA;AACF,CAAA;;;;"}
@@ -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
 
6
6
  var relationResponseCollection = (({ strapi })=>{
7
7
  const { naming } = strapi.plugin('graphql').service('utils');
@@ -16,13 +16,13 @@ var relationResponseCollection = (({ strapi })=>{
16
16
  definition (t) {
17
17
  t.nonNull.list.field('nodes', {
18
18
  type: nexus.nonNull(typeName),
19
- resolve: fp.pipe(fp.prop('nodes'), fp.defaultTo([]))
19
+ resolve: (parent)=>lodash.defaultTo(parent?.nodes, [])
20
20
  });
21
21
  if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {
22
22
  t.nonNull.list.field('data', {
23
23
  deprecation: 'Use `nodes` field instead',
24
24
  type: nexus.nonNull(typeName),
25
- resolve: fp.pipe(fp.prop('nodes'), fp.defaultTo([]))
25
+ resolve: (parent)=>lodash.defaultTo(parent?.nodes, [])
26
26
  });
27
27
  }
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relation-response-collection.js","sources":["../../../../server/src/services/builders/relation-response-collection.ts"],"sourcesContent":["import { objectType, nonNull } from 'nexus';\nimport { defaultTo, prop, pipe } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildRelationResponseCollectionDefinition","contentType","name","getRelationResponseCollectionName","typeName","getTypeName","objectType","definition","t","nonNull","list","field","type","resolve","pipe","prop","defaultTo","config","deprecation"],"mappings":";;;;;AAKA,iCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;AAEC,QACDC,2CAA0CC,WAA+B,EAAA;YACvE,MAAMC,IAAAA,GAAOL,MAAAA,CAAOM,iCAAiC,CAACF,WAAAA,CAAAA;YACtD,MAAMG,QAAAA,GAAWP,MAAAA,CAAOQ,WAAW,CAACJ,WAAAA,CAAAA;AAEpC,YAAA,OAAOK,gBAAAA,CAAW;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,oBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,OAAA,EAAS;AAC5BC,wBAAAA,IAAAA,EAAMH,aAAAA,CAAQL,QAAAA,CAAAA;AAEdS,wBAAAA,OAAAA,EAASC,OAAAA,CAAKC,OAAAA,CAAK,OAAA,CAAA,EAAUC,YAAAA,CAAU,EAAE,CAAA;AAC3C,qBAAA,CAAA;AAEA,oBAAA,IAAIpB,OAAOE,MAAM,CAAC,WAAWmB,MAAM,CAAC,uBAAuB,KAAA,CAAA,EAAQ;AACjET,wBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,MAAA,EAAQ;4BAC3BO,WAAAA,EAAa,2BAAA;AACbN,4BAAAA,IAAAA,EAAMH,aAAAA,CAAQL,QAAAA,CAAAA;AACdS,4BAAAA,OAAAA,EAASC,OAAAA,CAAKC,OAAAA,CAAK,OAAA,CAAA,EAAUC,YAAAA,CAAU,EAAE,CAAA;AAC3C,yBAAA,CAAA;AACF,oBAAA;AACF,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"relation-response-collection.js","sources":["../../../../server/src/services/builders/relation-response-collection.ts"],"sourcesContent":["import { objectType, nonNull } from 'nexus';\nimport { defaultTo } from 'lodash';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: (parent) => defaultTo(parent?.nodes, []),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: (parent) => defaultTo(parent?.nodes, []),\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildRelationResponseCollectionDefinition","contentType","name","getRelationResponseCollectionName","typeName","getTypeName","objectType","definition","t","nonNull","list","field","type","resolve","parent","defaultTo","nodes","config","deprecation"],"mappings":";;;;;AAKA,iCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;AAEC,QACDC,2CAA0CC,WAA+B,EAAA;YACvE,MAAMC,IAAAA,GAAOL,MAAAA,CAAOM,iCAAiC,CAACF,WAAAA,CAAAA;YACtD,MAAMG,QAAAA,GAAWP,MAAAA,CAAOQ,WAAW,CAACJ,WAAAA,CAAAA;AAEpC,YAAA,OAAOK,gBAAAA,CAAW;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,oBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,OAAA,EAAS;AAC5BC,wBAAAA,IAAAA,EAAMH,aAAAA,CAAQL,QAAAA,CAAAA;AAEdS,wBAAAA,OAAAA,EAAS,CAACC,MAAAA,GAAWC,gBAAAA,CAAUD,MAAAA,EAAQE,OAAO,EAAE;AAClD,qBAAA,CAAA;AAEA,oBAAA,IAAIpB,OAAOE,MAAM,CAAC,WAAWmB,MAAM,CAAC,uBAAuB,KAAA,CAAA,EAAQ;AACjET,wBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,MAAA,EAAQ;4BAC3BO,WAAAA,EAAa,2BAAA;AACbN,4BAAAA,IAAAA,EAAMH,aAAAA,CAAQL,QAAAA,CAAAA;AACdS,4BAAAA,OAAAA,EAAS,CAACC,MAAAA,GAAWC,gBAAAA,CAAUD,MAAAA,EAAQE,OAAO,EAAE;AAClD,yBAAA,CAAA;AACF,oBAAA;AACF,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { objectType, nonNull } from 'nexus';
2
- import { pipe, prop, defaultTo } from 'lodash/fp';
2
+ import { defaultTo } from 'lodash';
3
3
 
4
4
  var relationResponseCollection = (({ strapi })=>{
5
5
  const { naming } = strapi.plugin('graphql').service('utils');
@@ -14,13 +14,13 @@ var relationResponseCollection = (({ strapi })=>{
14
14
  definition (t) {
15
15
  t.nonNull.list.field('nodes', {
16
16
  type: nonNull(typeName),
17
- resolve: pipe(prop('nodes'), defaultTo([]))
17
+ resolve: (parent)=>defaultTo(parent?.nodes, [])
18
18
  });
19
19
  if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {
20
20
  t.nonNull.list.field('data', {
21
21
  deprecation: 'Use `nodes` field instead',
22
22
  type: nonNull(typeName),
23
- resolve: pipe(prop('nodes'), defaultTo([]))
23
+ resolve: (parent)=>defaultTo(parent?.nodes, [])
24
24
  });
25
25
  }
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relation-response-collection.mjs","sources":["../../../../server/src/services/builders/relation-response-collection.ts"],"sourcesContent":["import { objectType, nonNull } from 'nexus';\nimport { defaultTo, prop, pipe } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: pipe(prop('nodes'), defaultTo([])),\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildRelationResponseCollectionDefinition","contentType","name","getRelationResponseCollectionName","typeName","getTypeName","objectType","definition","t","nonNull","list","field","type","resolve","pipe","prop","defaultTo","config","deprecation"],"mappings":";;;AAKA,iCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;AAEC,QACDC,2CAA0CC,WAA+B,EAAA;YACvE,MAAMC,IAAAA,GAAOL,MAAAA,CAAOM,iCAAiC,CAACF,WAAAA,CAAAA;YACtD,MAAMG,QAAAA,GAAWP,MAAAA,CAAOQ,WAAW,CAACJ,WAAAA,CAAAA;AAEpC,YAAA,OAAOK,UAAAA,CAAW;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,oBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,OAAA,EAAS;AAC5BC,wBAAAA,IAAAA,EAAMH,OAAAA,CAAQL,QAAAA,CAAAA;AAEdS,wBAAAA,OAAAA,EAASC,IAAAA,CAAKC,IAAAA,CAAK,OAAA,CAAA,EAAUC,SAAAA,CAAU,EAAE,CAAA;AAC3C,qBAAA,CAAA;AAEA,oBAAA,IAAIpB,OAAOE,MAAM,CAAC,WAAWmB,MAAM,CAAC,uBAAuB,KAAA,CAAA,EAAQ;AACjET,wBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,MAAA,EAAQ;4BAC3BO,WAAAA,EAAa,2BAAA;AACbN,4BAAAA,IAAAA,EAAMH,OAAAA,CAAQL,QAAAA,CAAAA;AACdS,4BAAAA,OAAAA,EAASC,IAAAA,CAAKC,IAAAA,CAAK,OAAA,CAAA,EAAUC,SAAAA,CAAU,EAAE,CAAA;AAC3C,yBAAA,CAAA;AACF,oBAAA;AACF,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"relation-response-collection.mjs","sources":["../../../../server/src/services/builders/relation-response-collection.ts"],"sourcesContent":["import { objectType, nonNull } from 'nexus';\nimport { defaultTo } from 'lodash';\nimport type { Schema } from '@strapi/types';\nimport type { Context } from '../types';\n\nexport default ({ strapi }: Context) => {\n const { naming } = strapi.plugin('graphql').service('utils');\n\n return {\n /**\n * Build a type definition for a content API relation's collection response for a given content type\n */\n buildRelationResponseCollectionDefinition(contentType: Schema.ContentType) {\n const name = naming.getRelationResponseCollectionName(contentType);\n const typeName = naming.getTypeName(contentType);\n\n return objectType({\n name,\n\n definition(t) {\n t.nonNull.list.field('nodes', {\n type: nonNull(typeName),\n\n resolve: (parent) => defaultTo(parent?.nodes, []),\n });\n\n if (strapi.plugin('graphql').config('v4CompatibilityMode', false)) {\n t.nonNull.list.field('data', {\n deprecation: 'Use `nodes` field instead',\n type: nonNull(typeName),\n resolve: (parent) => defaultTo(parent?.nodes, []),\n });\n }\n },\n });\n },\n };\n};\n"],"names":["strapi","naming","plugin","service","buildRelationResponseCollectionDefinition","contentType","name","getRelationResponseCollectionName","typeName","getTypeName","objectType","definition","t","nonNull","list","field","type","resolve","parent","defaultTo","nodes","config","deprecation"],"mappings":";;;AAKA,iCAAe,CAAA,CAAC,EAAEA,MAAM,EAAW,GAAA;IACjC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAOE,MAAM,CAAC,SAAA,CAAA,CAAWC,OAAO,CAAC,OAAA,CAAA;IAEpD,OAAO;AACL;;AAEC,QACDC,2CAA0CC,WAA+B,EAAA;YACvE,MAAMC,IAAAA,GAAOL,MAAAA,CAAOM,iCAAiC,CAACF,WAAAA,CAAAA;YACtD,MAAMG,QAAAA,GAAWP,MAAAA,CAAOQ,WAAW,CAACJ,WAAAA,CAAAA;AAEpC,YAAA,OAAOK,UAAAA,CAAW;AAChBJ,gBAAAA,IAAAA;AAEAK,gBAAAA,UAAAA,CAAAA,CAAWC,CAAC,EAAA;AACVA,oBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,OAAA,EAAS;AAC5BC,wBAAAA,IAAAA,EAAMH,OAAAA,CAAQL,QAAAA,CAAAA;AAEdS,wBAAAA,OAAAA,EAAS,CAACC,MAAAA,GAAWC,SAAAA,CAAUD,MAAAA,EAAQE,OAAO,EAAE;AAClD,qBAAA,CAAA;AAEA,oBAAA,IAAIpB,OAAOE,MAAM,CAAC,WAAWmB,MAAM,CAAC,uBAAuB,KAAA,CAAA,EAAQ;AACjET,wBAAAA,CAAAA,CAAEC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,MAAA,EAAQ;4BAC3BO,WAAAA,EAAa,2BAAA;AACbN,4BAAAA,IAAAA,EAAMH,OAAAA,CAAQL,QAAAA,CAAAA;AACdS,4BAAAA,OAAAA,EAAS,CAACC,MAAAA,GAAWC,SAAAA,CAAUD,MAAAA,EAAQE,OAAO,EAAE;AAClD,yBAAA,CAAA;AACF,oBAAA;AACF,gBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA;AACF,CAAA;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var lodash = require('lodash');
4
4
  var utils = require('@strapi/utils');
5
5
 
6
6
  const { ApplicationError } = utils.errors;
@@ -87,7 +87,7 @@ var associationResolvers = (({ strapi })=>{
87
87
  }
88
88
  }
89
89
  }
90
- const dbQuery = fp.merge(fp.merge(defaultFilters, publicationFilterWhere), transformedQuery);
90
+ const dbQuery = lodash.merge({}, defaultFilters, publicationFilterWhere, transformedQuery);
91
91
  // Sign media URLs if upload plugin is available and using private provider
92
92
  const data = await (async ()=>{
93
93
  const rawData = await strapi.db.query(contentTypeUID).load(parent, attributeName, dbQuery);
@@ -119,7 +119,7 @@ var associationResolvers = (({ strapi })=>{
119
119
  auth
120
120
  });
121
121
  };
122
- const unwrapData = fp.get(attributeName);
122
+ const unwrapData = lodash.property(attributeName);
123
123
  // Sanitizer definition
124
124
  const sanitizeMorphAttribute = utils.async.pipe(wrapData, sanitizeData, unwrapData);
125
125
  return sanitizeMorphAttribute(data);
@@ -1 +1 @@
1
- {"version":3,"file":"association.js","sources":["../../../../../server/src/services/builders/resolvers/association.ts"],"sourcesContent":["import { get, merge } from 'lodash/fp';\nimport {\n async,\n contentTypes,\n errors,\n buildPublicationFilterWhere,\n parsePublicationFilter,\n} from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any, context: any, info: any) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n const transformedQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const isTargetDraftAndPublishContentType =\n contentTypes.hasDraftAndPublish(targetContentType);\n\n // Helper to check if a field is from built-in queries (not custom resolvers)\n // Use the precomputed lookup populated by the content-api service at schema build time.\n const isBuiltInQueryField = (fieldName: string) => {\n const graphqlService = strapi.plugin('graphql').service('content-api');\n return graphqlService.isBuiltInQueryField(fieldName);\n };\n\n // Walk back to the root of info.path so we pick up the args of *our* query branch\n let rootPath = info?.path;\n while (rootPath?.prev) {\n rootPath = rootPath.prev;\n }\n const rootQueryArgs = rootPath ? context.rootQueryArgsByPath?.get(rootPath.key) : undefined;\n\n const shouldInheritRootQueryStatus =\n rootQueryArgs?._originField && isBuiltInQueryField(rootQueryArgs._originField);\n\n // Only inherit status from built-in queries to avoid conflicts with custom resolvers.\n // Built-in root queries default to published results; draft/preview queries pass `status`.\n // Nested relations should match that parent query.\n const inheritedStatus = shouldInheritRootQueryStatus\n ? rootQueryArgs.status || 'published'\n : null;\n\n const statusToApply = args.status || inheritedStatus;\n\n const defaultFilters =\n isTargetDraftAndPublishContentType && statusToApply\n ? {\n where: {\n publishedAt: statusToApply === 'published' ? { $notNull: true } : { $null: true },\n },\n }\n : {};\n\n const inheritedPublicationFilter =\n rootQueryArgs?.publicationFilter !== undefined &&\n rootQueryArgs?._originField &&\n isBuiltInQueryField(rootQueryArgs._originField)\n ? rootQueryArgs.publicationFilter\n : undefined;\n\n const inheritedHasPublishedVersion =\n rootQueryArgs?.hasPublishedVersion !== undefined &&\n rootQueryArgs?._originField &&\n isBuiltInQueryField(rootQueryArgs._originField)\n ? rootQueryArgs.hasPublishedVersion\n : undefined;\n\n let effectivePublicationFilter: string | undefined = inheritedPublicationFilter;\n if (\n effectivePublicationFilter === undefined &&\n inheritedHasPublishedVersion !== undefined\n ) {\n effectivePublicationFilter = inheritedHasPublishedVersion\n ? 'has-published-version-document'\n : 'never-published-document';\n }\n\n let publicationFilterWhere: Record<string, any> = {};\n if (isTargetDraftAndPublishContentType && effectivePublicationFilter !== undefined) {\n let mode;\n try {\n mode = parsePublicationFilter(effectivePublicationFilter);\n } catch {\n mode = undefined;\n }\n if (mode !== undefined) {\n const meta = strapi.db.metadata.get(targetUID);\n const st = statusToApply === 'published' ? 'published' : 'draft';\n const cond = buildPublicationFilterWhere(\n strapi.db.connection,\n meta,\n targetContentType,\n mode,\n st\n );\n if (cond && Object.keys(cond).length > 0) {\n publicationFilterWhere = { where: cond };\n }\n }\n }\n\n const dbQuery = merge(merge(defaultFilters, publicationFilterWhere), transformedQuery);\n\n // Sign media URLs if upload plugin is available and using private provider\n const data = await (async () => {\n const rawData = await strapi.db\n .query(contentTypeUID)\n .load(parent, attributeName, dbQuery);\n if (isMediaAttribute && strapi.plugin('upload')) {\n const { signFileUrls } = strapi.plugin('upload').service('file');\n\n if (Array.isArray(rawData)) {\n return async.map(rawData, (item: any) => signFileUrls(item));\n }\n\n if (rawData) {\n return signFileUrls(rawData);\n }\n }\n\n return rawData;\n })();\n\n const sanitizeInfo = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = get(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, sanitizeInfo);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, sanitizeInfo);\n };\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","service","getGraphQLService","plugin","isMorphRelation","isMedia","attributes","transformArgs","utils","toEntityResponse","toEntityResponseCollection","returnTypes","buildAssociationResolver","contentTypeUID","attributeName","contentType","getModel","attribute","isMediaAttribute","isMorphAttribute","targetUID","target","isToMany","multiple","relation","endsWith","targetContentType","parent","args","context","info","auth","state","transformedArgs","usePagination","contentAPI","validate","query","sanitizedQuery","sanitize","transformedQuery","get","transform","isTargetDraftAndPublishContentType","contentTypes","hasDraftAndPublish","isBuiltInQueryField","fieldName","graphqlService","rootPath","path","prev","rootQueryArgs","rootQueryArgsByPath","key","undefined","shouldInheritRootQueryStatus","_originField","inheritedStatus","status","statusToApply","defaultFilters","where","publishedAt","$notNull","$null","inheritedPublicationFilter","publicationFilter","inheritedHasPublishedVersion","hasPublishedVersion","effectivePublicationFilter","publicationFilterWhere","mode","parsePublicationFilter","meta","db","metadata","st","cond","buildPublicationFilterWhere","connection","Object","keys","length","dbQuery","merge","data","rawData","load","signFileUrls","Array","isArray","async","map","item","sanitizeInfo","resourceUID","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","sanitizeMorphAttribute","pipe"],"mappings":"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"}
1
+ {"version":3,"file":"association.js","sources":["../../../../../server/src/services/builders/resolvers/association.ts"],"sourcesContent":["import { merge, property } from 'lodash';\nimport {\n async,\n contentTypes,\n errors,\n buildPublicationFilterWhere,\n parsePublicationFilter,\n} from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any, context: any, info: any) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n const transformedQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const isTargetDraftAndPublishContentType =\n contentTypes.hasDraftAndPublish(targetContentType);\n\n // Helper to check if a field is from built-in queries (not custom resolvers)\n // Use the precomputed lookup populated by the content-api service at schema build time.\n const isBuiltInQueryField = (fieldName: string) => {\n const graphqlService = strapi.plugin('graphql').service('content-api');\n return graphqlService.isBuiltInQueryField(fieldName);\n };\n\n // Walk back to the root of info.path so we pick up the args of *our* query branch\n let rootPath = info?.path;\n while (rootPath?.prev) {\n rootPath = rootPath.prev;\n }\n const rootQueryArgs = rootPath ? context.rootQueryArgsByPath?.get(rootPath.key) : undefined;\n\n const shouldInheritRootQueryStatus =\n rootQueryArgs?._originField && isBuiltInQueryField(rootQueryArgs._originField);\n\n // Only inherit status from built-in queries to avoid conflicts with custom resolvers.\n // Built-in root queries default to published results; draft/preview queries pass `status`.\n // Nested relations should match that parent query.\n const inheritedStatus = shouldInheritRootQueryStatus\n ? rootQueryArgs.status || 'published'\n : null;\n\n const statusToApply = args.status || inheritedStatus;\n\n const defaultFilters =\n isTargetDraftAndPublishContentType && statusToApply\n ? {\n where: {\n publishedAt: statusToApply === 'published' ? { $notNull: true } : { $null: true },\n },\n }\n : {};\n\n const inheritedPublicationFilter =\n rootQueryArgs?.publicationFilter !== undefined &&\n rootQueryArgs?._originField &&\n isBuiltInQueryField(rootQueryArgs._originField)\n ? rootQueryArgs.publicationFilter\n : undefined;\n\n const inheritedHasPublishedVersion =\n rootQueryArgs?.hasPublishedVersion !== undefined &&\n rootQueryArgs?._originField &&\n isBuiltInQueryField(rootQueryArgs._originField)\n ? rootQueryArgs.hasPublishedVersion\n : undefined;\n\n let effectivePublicationFilter: string | undefined = inheritedPublicationFilter;\n if (\n effectivePublicationFilter === undefined &&\n inheritedHasPublishedVersion !== undefined\n ) {\n effectivePublicationFilter = inheritedHasPublishedVersion\n ? 'has-published-version-document'\n : 'never-published-document';\n }\n\n let publicationFilterWhere: Record<string, any> = {};\n if (isTargetDraftAndPublishContentType && effectivePublicationFilter !== undefined) {\n let mode;\n try {\n mode = parsePublicationFilter(effectivePublicationFilter);\n } catch {\n mode = undefined;\n }\n if (mode !== undefined) {\n const meta = strapi.db.metadata.get(targetUID);\n const st = statusToApply === 'published' ? 'published' : 'draft';\n const cond = buildPublicationFilterWhere(\n strapi.db.connection,\n meta,\n targetContentType,\n mode,\n st\n );\n if (cond && Object.keys(cond).length > 0) {\n publicationFilterWhere = { where: cond };\n }\n }\n }\n\n const dbQuery = merge({}, defaultFilters, publicationFilterWhere, transformedQuery);\n\n // Sign media URLs if upload plugin is available and using private provider\n const data = await (async () => {\n const rawData = await strapi.db\n .query(contentTypeUID)\n .load(parent, attributeName, dbQuery);\n if (isMediaAttribute && strapi.plugin('upload')) {\n const { signFileUrls } = strapi.plugin('upload').service('file');\n\n if (Array.isArray(rawData)) {\n return async.map(rawData, (item: any) => signFileUrls(item));\n }\n\n if (rawData) {\n return signFileUrls(rawData);\n }\n }\n\n return rawData;\n })();\n\n const sanitizeInfo = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = property(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, sanitizeInfo);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, sanitizeInfo);\n };\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","service","getGraphQLService","plugin","isMorphRelation","isMedia","attributes","transformArgs","utils","toEntityResponse","toEntityResponseCollection","returnTypes","buildAssociationResolver","contentTypeUID","attributeName","contentType","getModel","attribute","isMediaAttribute","isMorphAttribute","targetUID","target","isToMany","multiple","relation","endsWith","targetContentType","parent","args","context","info","auth","state","transformedArgs","usePagination","contentAPI","validate","query","sanitizedQuery","sanitize","transformedQuery","get","transform","isTargetDraftAndPublishContentType","contentTypes","hasDraftAndPublish","isBuiltInQueryField","fieldName","graphqlService","rootPath","path","prev","rootQueryArgs","rootQueryArgsByPath","key","undefined","shouldInheritRootQueryStatus","_originField","inheritedStatus","status","statusToApply","defaultFilters","where","publishedAt","$notNull","$null","inheritedPublicationFilter","publicationFilter","inheritedHasPublishedVersion","hasPublishedVersion","effectivePublicationFilter","publicationFilterWhere","mode","parsePublicationFilter","meta","db","metadata","st","cond","buildPublicationFilterWhere","connection","Object","keys","length","dbQuery","merge","data","rawData","load","signFileUrls","Array","isArray","async","map","item","sanitizeInfo","resourceUID","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","property","sanitizeMorphAttribute","pipe"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { merge, get } from 'lodash/fp';
1
+ import { merge, property } from 'lodash';
2
2
  import { errors, contentTypes, parsePublicationFilter, buildPublicationFilterWhere, async } from '@strapi/utils';
3
3
 
4
4
  const { ApplicationError } = errors;
@@ -85,7 +85,7 @@ var associationResolvers = (({ strapi })=>{
85
85
  }
86
86
  }
87
87
  }
88
- const dbQuery = merge(merge(defaultFilters, publicationFilterWhere), transformedQuery);
88
+ const dbQuery = merge({}, defaultFilters, publicationFilterWhere, transformedQuery);
89
89
  // Sign media URLs if upload plugin is available and using private provider
90
90
  const data = await (async ()=>{
91
91
  const rawData = await strapi.db.query(contentTypeUID).load(parent, attributeName, dbQuery);
@@ -117,7 +117,7 @@ var associationResolvers = (({ strapi })=>{
117
117
  auth
118
118
  });
119
119
  };
120
- const unwrapData = get(attributeName);
120
+ const unwrapData = property(attributeName);
121
121
  // Sanitizer definition
122
122
  const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);
123
123
  return sanitizeMorphAttribute(data);
@@ -1 +1 @@
1
- {"version":3,"file":"association.mjs","sources":["../../../../../server/src/services/builders/resolvers/association.ts"],"sourcesContent":["import { get, merge } from 'lodash/fp';\nimport {\n async,\n contentTypes,\n errors,\n buildPublicationFilterWhere,\n parsePublicationFilter,\n} from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any, context: any, info: any) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n const transformedQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const isTargetDraftAndPublishContentType =\n contentTypes.hasDraftAndPublish(targetContentType);\n\n // Helper to check if a field is from built-in queries (not custom resolvers)\n // Use the precomputed lookup populated by the content-api service at schema build time.\n const isBuiltInQueryField = (fieldName: string) => {\n const graphqlService = strapi.plugin('graphql').service('content-api');\n return graphqlService.isBuiltInQueryField(fieldName);\n };\n\n // Walk back to the root of info.path so we pick up the args of *our* query branch\n let rootPath = info?.path;\n while (rootPath?.prev) {\n rootPath = rootPath.prev;\n }\n const rootQueryArgs = rootPath ? context.rootQueryArgsByPath?.get(rootPath.key) : undefined;\n\n const shouldInheritRootQueryStatus =\n rootQueryArgs?._originField && isBuiltInQueryField(rootQueryArgs._originField);\n\n // Only inherit status from built-in queries to avoid conflicts with custom resolvers.\n // Built-in root queries default to published results; draft/preview queries pass `status`.\n // Nested relations should match that parent query.\n const inheritedStatus = shouldInheritRootQueryStatus\n ? rootQueryArgs.status || 'published'\n : null;\n\n const statusToApply = args.status || inheritedStatus;\n\n const defaultFilters =\n isTargetDraftAndPublishContentType && statusToApply\n ? {\n where: {\n publishedAt: statusToApply === 'published' ? { $notNull: true } : { $null: true },\n },\n }\n : {};\n\n const inheritedPublicationFilter =\n rootQueryArgs?.publicationFilter !== undefined &&\n rootQueryArgs?._originField &&\n isBuiltInQueryField(rootQueryArgs._originField)\n ? rootQueryArgs.publicationFilter\n : undefined;\n\n const inheritedHasPublishedVersion =\n rootQueryArgs?.hasPublishedVersion !== undefined &&\n rootQueryArgs?._originField &&\n isBuiltInQueryField(rootQueryArgs._originField)\n ? rootQueryArgs.hasPublishedVersion\n : undefined;\n\n let effectivePublicationFilter: string | undefined = inheritedPublicationFilter;\n if (\n effectivePublicationFilter === undefined &&\n inheritedHasPublishedVersion !== undefined\n ) {\n effectivePublicationFilter = inheritedHasPublishedVersion\n ? 'has-published-version-document'\n : 'never-published-document';\n }\n\n let publicationFilterWhere: Record<string, any> = {};\n if (isTargetDraftAndPublishContentType && effectivePublicationFilter !== undefined) {\n let mode;\n try {\n mode = parsePublicationFilter(effectivePublicationFilter);\n } catch {\n mode = undefined;\n }\n if (mode !== undefined) {\n const meta = strapi.db.metadata.get(targetUID);\n const st = statusToApply === 'published' ? 'published' : 'draft';\n const cond = buildPublicationFilterWhere(\n strapi.db.connection,\n meta,\n targetContentType,\n mode,\n st\n );\n if (cond && Object.keys(cond).length > 0) {\n publicationFilterWhere = { where: cond };\n }\n }\n }\n\n const dbQuery = merge(merge(defaultFilters, publicationFilterWhere), transformedQuery);\n\n // Sign media URLs if upload plugin is available and using private provider\n const data = await (async () => {\n const rawData = await strapi.db\n .query(contentTypeUID)\n .load(parent, attributeName, dbQuery);\n if (isMediaAttribute && strapi.plugin('upload')) {\n const { signFileUrls } = strapi.plugin('upload').service('file');\n\n if (Array.isArray(rawData)) {\n return async.map(rawData, (item: any) => signFileUrls(item));\n }\n\n if (rawData) {\n return signFileUrls(rawData);\n }\n }\n\n return rawData;\n })();\n\n const sanitizeInfo = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = get(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, sanitizeInfo);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, sanitizeInfo);\n };\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","service","getGraphQLService","plugin","isMorphRelation","isMedia","attributes","transformArgs","utils","toEntityResponse","toEntityResponseCollection","returnTypes","buildAssociationResolver","contentTypeUID","attributeName","contentType","getModel","attribute","isMediaAttribute","isMorphAttribute","targetUID","target","isToMany","multiple","relation","endsWith","targetContentType","parent","args","context","info","auth","state","transformedArgs","usePagination","contentAPI","validate","query","sanitizedQuery","sanitize","transformedQuery","get","transform","isTargetDraftAndPublishContentType","contentTypes","hasDraftAndPublish","isBuiltInQueryField","fieldName","graphqlService","rootPath","path","prev","rootQueryArgs","rootQueryArgsByPath","key","undefined","shouldInheritRootQueryStatus","_originField","inheritedStatus","status","statusToApply","defaultFilters","where","publishedAt","$notNull","$null","inheritedPublicationFilter","publicationFilter","inheritedHasPublishedVersion","hasPublishedVersion","effectivePublicationFilter","publicationFilterWhere","mode","parsePublicationFilter","meta","db","metadata","st","cond","buildPublicationFilterWhere","connection","Object","keys","length","dbQuery","merge","data","rawData","load","signFileUrls","Array","isArray","async","map","item","sanitizeInfo","resourceUID","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","sanitizeMorphAttribute","pipe"],"mappings":"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"}
1
+ {"version":3,"file":"association.mjs","sources":["../../../../../server/src/services/builders/resolvers/association.ts"],"sourcesContent":["import { merge, property } from 'lodash';\nimport {\n async,\n contentTypes,\n errors,\n buildPublicationFilterWhere,\n parsePublicationFilter,\n} from '@strapi/utils';\nimport type { Internal } from '@strapi/types';\n\nimport type { Context } from '../../types';\n\nconst { ApplicationError } = errors;\n\nexport default ({ strapi }: Context) => {\n const { service: getGraphQLService } = strapi.plugin('graphql');\n\n const { isMorphRelation, isMedia } = getGraphQLService('utils').attributes;\n const { transformArgs } = getGraphQLService('builders').utils;\n const { toEntityResponse, toEntityResponseCollection } = getGraphQLService('format').returnTypes;\n\n return {\n buildAssociationResolver({\n contentTypeUID,\n attributeName,\n }: {\n contentTypeUID: Internal.UID.ContentType;\n attributeName: string;\n }) {\n const contentType = strapi.getModel(contentTypeUID);\n const attribute: any = contentType.attributes[attributeName];\n\n if (!attribute) {\n throw new ApplicationError(\n `Failed to build an association resolver for ${contentTypeUID}::${attributeName}`\n );\n }\n\n const isMediaAttribute = isMedia(attribute);\n const isMorphAttribute = isMorphRelation(attribute);\n\n const targetUID = isMediaAttribute ? 'plugin::upload.file' : attribute.target;\n const isToMany = isMediaAttribute ? attribute.multiple : attribute.relation.endsWith('Many');\n\n const targetContentType = strapi.getModel(targetUID);\n\n return async (parent: any, args: any, context: any, info: any) => {\n const { auth } = context.state;\n\n const transformedArgs = transformArgs(args, {\n contentType: targetContentType,\n usePagination: true,\n });\n\n await strapi.contentAPI.validate.query(transformedArgs, targetContentType, {\n auth,\n });\n\n const sanitizedQuery = await strapi.contentAPI.sanitize.query(\n transformedArgs,\n targetContentType,\n {\n auth,\n }\n );\n const transformedQuery = strapi.get('query-params').transform(targetUID, sanitizedQuery);\n\n const isTargetDraftAndPublishContentType =\n contentTypes.hasDraftAndPublish(targetContentType);\n\n // Helper to check if a field is from built-in queries (not custom resolvers)\n // Use the precomputed lookup populated by the content-api service at schema build time.\n const isBuiltInQueryField = (fieldName: string) => {\n const graphqlService = strapi.plugin('graphql').service('content-api');\n return graphqlService.isBuiltInQueryField(fieldName);\n };\n\n // Walk back to the root of info.path so we pick up the args of *our* query branch\n let rootPath = info?.path;\n while (rootPath?.prev) {\n rootPath = rootPath.prev;\n }\n const rootQueryArgs = rootPath ? context.rootQueryArgsByPath?.get(rootPath.key) : undefined;\n\n const shouldInheritRootQueryStatus =\n rootQueryArgs?._originField && isBuiltInQueryField(rootQueryArgs._originField);\n\n // Only inherit status from built-in queries to avoid conflicts with custom resolvers.\n // Built-in root queries default to published results; draft/preview queries pass `status`.\n // Nested relations should match that parent query.\n const inheritedStatus = shouldInheritRootQueryStatus\n ? rootQueryArgs.status || 'published'\n : null;\n\n const statusToApply = args.status || inheritedStatus;\n\n const defaultFilters =\n isTargetDraftAndPublishContentType && statusToApply\n ? {\n where: {\n publishedAt: statusToApply === 'published' ? { $notNull: true } : { $null: true },\n },\n }\n : {};\n\n const inheritedPublicationFilter =\n rootQueryArgs?.publicationFilter !== undefined &&\n rootQueryArgs?._originField &&\n isBuiltInQueryField(rootQueryArgs._originField)\n ? rootQueryArgs.publicationFilter\n : undefined;\n\n const inheritedHasPublishedVersion =\n rootQueryArgs?.hasPublishedVersion !== undefined &&\n rootQueryArgs?._originField &&\n isBuiltInQueryField(rootQueryArgs._originField)\n ? rootQueryArgs.hasPublishedVersion\n : undefined;\n\n let effectivePublicationFilter: string | undefined = inheritedPublicationFilter;\n if (\n effectivePublicationFilter === undefined &&\n inheritedHasPublishedVersion !== undefined\n ) {\n effectivePublicationFilter = inheritedHasPublishedVersion\n ? 'has-published-version-document'\n : 'never-published-document';\n }\n\n let publicationFilterWhere: Record<string, any> = {};\n if (isTargetDraftAndPublishContentType && effectivePublicationFilter !== undefined) {\n let mode;\n try {\n mode = parsePublicationFilter(effectivePublicationFilter);\n } catch {\n mode = undefined;\n }\n if (mode !== undefined) {\n const meta = strapi.db.metadata.get(targetUID);\n const st = statusToApply === 'published' ? 'published' : 'draft';\n const cond = buildPublicationFilterWhere(\n strapi.db.connection,\n meta,\n targetContentType,\n mode,\n st\n );\n if (cond && Object.keys(cond).length > 0) {\n publicationFilterWhere = { where: cond };\n }\n }\n }\n\n const dbQuery = merge({}, defaultFilters, publicationFilterWhere, transformedQuery);\n\n // Sign media URLs if upload plugin is available and using private provider\n const data = await (async () => {\n const rawData = await strapi.db\n .query(contentTypeUID)\n .load(parent, attributeName, dbQuery);\n if (isMediaAttribute && strapi.plugin('upload')) {\n const { signFileUrls } = strapi.plugin('upload').service('file');\n\n if (Array.isArray(rawData)) {\n return async.map(rawData, (item: any) => signFileUrls(item));\n }\n\n if (rawData) {\n return signFileUrls(rawData);\n }\n }\n\n return rawData;\n })();\n\n const sanitizeInfo = {\n args: sanitizedQuery,\n resourceUID: targetUID,\n };\n\n // If this a polymorphic association, it sanitizes & returns the raw data\n // Note: The value needs to be wrapped in a fake object that represents its parent\n // so that the sanitize util can work properly.\n if (isMorphAttribute) {\n // Helpers used for the data cleanup\n const wrapData = (dataToWrap: any) => ({ [attributeName]: dataToWrap });\n const sanitizeData = (dataToSanitize: any) => {\n return strapi.contentAPI.sanitize.output(dataToSanitize, contentType, { auth });\n };\n const unwrapData = property(attributeName);\n\n // Sanitizer definition\n const sanitizeMorphAttribute = async.pipe(wrapData, sanitizeData, unwrapData);\n\n return sanitizeMorphAttribute(data);\n }\n\n // If this is a to-many relation, it returns an object that\n // matches what the entity-response-collection's resolvers expect\n if (isToMany) {\n return toEntityResponseCollection(data, sanitizeInfo);\n }\n\n // Else, it returns an object that matches\n // what the entity-response's resolvers expect\n return toEntityResponse(data, sanitizeInfo);\n };\n },\n };\n};\n"],"names":["ApplicationError","errors","strapi","service","getGraphQLService","plugin","isMorphRelation","isMedia","attributes","transformArgs","utils","toEntityResponse","toEntityResponseCollection","returnTypes","buildAssociationResolver","contentTypeUID","attributeName","contentType","getModel","attribute","isMediaAttribute","isMorphAttribute","targetUID","target","isToMany","multiple","relation","endsWith","targetContentType","parent","args","context","info","auth","state","transformedArgs","usePagination","contentAPI","validate","query","sanitizedQuery","sanitize","transformedQuery","get","transform","isTargetDraftAndPublishContentType","contentTypes","hasDraftAndPublish","isBuiltInQueryField","fieldName","graphqlService","rootPath","path","prev","rootQueryArgs","rootQueryArgsByPath","key","undefined","shouldInheritRootQueryStatus","_originField","inheritedStatus","status","statusToApply","defaultFilters","where","publishedAt","$notNull","$null","inheritedPublicationFilter","publicationFilter","inheritedHasPublishedVersion","hasPublishedVersion","effectivePublicationFilter","publicationFilterWhere","mode","parsePublicationFilter","meta","db","metadata","st","cond","buildPublicationFilterWhere","connection","Object","keys","length","dbQuery","merge","data","rawData","load","signFileUrls","Array","isArray","async","map","item","sanitizeInfo","resourceUID","wrapData","dataToWrap","sanitizeData","dataToSanitize","output","unwrapData","property","sanitizeMorphAttribute","pipe"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var lodash = require('lodash');
4
4
  var mergePublicationArgs = require('./merge-publication-args.js');
5
5
 
6
6
  /** Merge sanitized query with resolver args so GraphQL-coerced publication args are not dropped. */ const mergeDocumentListParams = (sanitizedQuery, args)=>{
@@ -45,10 +45,10 @@ var queriesResolvers = (({ strapi })=>({
45
45
  const sanitizedQuery = await strapi.contentAPI.sanitize.query(args, contentType, {
46
46
  auth: ctx?.state?.auth
47
47
  });
48
- const merged = mergeDocumentListParams(fp.omit([
48
+ const merged = mergeDocumentListParams(lodash.omit(sanitizedQuery, [
49
49
  'id',
50
50
  'documentId'
51
- ], sanitizedQuery), args);
51
+ ]), args);
52
52
  return strapi.documents(uid).findOne({
53
53
  ...merged,
54
54
  documentId