@webiny/api-headless-cms 5.40.6-beta.3 → 5.41.0-beta.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 (86) hide show
  1. package/constants.d.ts +1 -1
  2. package/crud/AccessControl/AccessControl.d.ts +2 -2
  3. package/crud/contentEntry/abstractions/IListEntries.d.ts +2 -2
  4. package/crud/contentEntry/abstractions/IListEntries.js.map +1 -1
  5. package/crud/contentEntry/afterDelete.js +7 -1
  6. package/crud/contentEntry/afterDelete.js.map +1 -1
  7. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +1 -1
  8. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +1 -1
  9. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +1 -1
  10. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +1 -1
  11. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +1 -1
  12. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +1 -1
  13. package/crud/contentEntry/entryDataValidation.d.ts +1 -1
  14. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js +0 -8
  15. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js.map +1 -1
  16. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js +0 -8
  17. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js.map +1 -1
  18. package/crud/contentEntry.crud.js.map +1 -1
  19. package/crud/contentModel/validation.d.ts +50 -50
  20. package/crud/contentModel.crud.js.map +1 -1
  21. package/export/crud/sanitize.d.ts +1 -1
  22. package/export/crud/sanitize.js.map +1 -1
  23. package/export/types.d.ts +3 -3
  24. package/graphql/createExecutableSchema.js +14 -7
  25. package/graphql/createExecutableSchema.js.map +1 -1
  26. package/graphql/getSchema.js +6 -5
  27. package/graphql/getSchema.js.map +1 -1
  28. package/graphql/index.d.ts +1 -1
  29. package/graphql/schema/contentEntries.js.map +1 -1
  30. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  31. package/graphql/schema/createFieldResolvers.js +1 -3
  32. package/graphql/schema/createFieldResolvers.js.map +1 -1
  33. package/graphql/schema/createSingularSDL.js +4 -0
  34. package/graphql/schema/createSingularSDL.js.map +1 -1
  35. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +1 -1
  36. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +1 -1
  37. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +1 -1
  38. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +1 -1
  39. package/graphql/schema/resolvers/manage/resolveGet.d.ts +1 -1
  40. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +1 -1
  41. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +1 -1
  42. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +1 -1
  43. package/graphql/schema/resolvers/manage/resolveList.d.ts +1 -1
  44. package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +1 -1
  45. package/graphql/schema/resolvers/manage/resolveMove.d.ts +1 -1
  46. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -1
  47. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +1 -1
  48. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +1 -1
  49. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +1 -1
  50. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +1 -1
  51. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +1 -1
  52. package/graphql/schema/resolvers/preview/resolveGet.d.ts +1 -1
  53. package/graphql/schema/resolvers/preview/resolveList.d.ts +1 -1
  54. package/graphql/schema/resolvers/read/resolveGet.d.ts +1 -1
  55. package/graphql/schema/resolvers/read/resolveList.d.ts +1 -1
  56. package/graphql/schema/resolvers/singular/resolveGet.d.ts +1 -1
  57. package/graphql/schema/resolvers/singular/resolveUpdate.d.ts +1 -1
  58. package/index.d.ts +4 -2
  59. package/index.js +24 -0
  60. package/index.js.map +1 -1
  61. package/package.json +26 -24
  62. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +2 -2
  63. package/plugins/CmsModelPlugin.d.ts +1 -1
  64. package/plugins/CmsModelPlugin.js +1 -1
  65. package/plugins/CmsModelPlugin.js.map +1 -1
  66. package/plugins/CmsParametersPlugin.d.ts +2 -2
  67. package/types/context.d.ts +7 -7
  68. package/types/context.js.map +1 -1
  69. package/types/modelAst.d.ts +4 -4
  70. package/types/modelField.d.ts +3 -2
  71. package/types/modelField.js.map +1 -1
  72. package/types/types.d.ts +25 -17
  73. package/types/types.js.map +1 -1
  74. package/utils/contentEntryTraverser/ContentEntryTraverser.d.ts +4 -1
  75. package/utils/contentEntryTraverser/ContentEntryTraverser.js.map +1 -1
  76. package/utils/contentModelAst/CmsModelToAstConverter.d.ts +1 -1
  77. package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -1
  78. package/utils/index.d.ts +1 -0
  79. package/utils/index.js +11 -0
  80. package/utils/index.js.map +1 -1
  81. package/utils/modelFieldTraverser/ModelFieldTraverser.d.ts +16 -0
  82. package/utils/modelFieldTraverser/ModelFieldTraverser.js +41 -0
  83. package/utils/modelFieldTraverser/ModelFieldTraverser.js.map +1 -0
  84. package/utils/modelFieldTraverser/index.d.ts +1 -0
  85. package/utils/modelFieldTraverser/index.js +18 -0
  86. package/utils/modelFieldTraverser/index.js.map +1 -0
@@ -5,25 +5,32 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createExecutableSchema = void 0;
7
7
  var _schema = require("@graphql-tools/schema");
8
+ var _merge = require("@graphql-tools/merge");
9
+ var _handlerGraphql = require("@webiny/handler-graphql");
8
10
  const createExecutableSchema = params => {
9
11
  const {
10
12
  plugins
11
13
  } = params;
12
- /**
13
- * Really hard to type this to satisfy the makeExecutableSchema
14
- */
15
- // TODO @ts-refactor
16
14
  const typeDefs = [];
17
15
  const resolvers = [];
16
+ const resolverDecoration = new _handlerGraphql.ResolverDecoration();
18
17
 
19
18
  // Get schema definitions from plugins
20
19
  for (const plugin of plugins) {
21
- typeDefs.push(plugin.schema.typeDefs);
22
- resolvers.push(plugin.schema.resolvers);
20
+ const schema = plugin.schema;
21
+ if (schema.typeDefs) {
22
+ typeDefs.push(schema.typeDefs);
23
+ }
24
+ if (schema.resolvers) {
25
+ resolvers.push(schema.resolvers);
26
+ }
27
+ if (schema.resolverDecorators) {
28
+ resolverDecoration.addDecorators(schema.resolverDecorators);
29
+ }
23
30
  }
24
31
  return (0, _schema.makeExecutableSchema)({
25
32
  typeDefs,
26
- resolvers
33
+ resolvers: resolverDecoration.decorateResolvers((0, _merge.mergeResolvers)(resolvers))
27
34
  });
28
35
  };
29
36
  exports.createExecutableSchema = createExecutableSchema;
@@ -1 +1 @@
1
- {"version":3,"names":["_schema","require","createExecutableSchema","params","plugins","typeDefs","resolvers","plugin","push","schema","makeExecutableSchema","exports"],"sources":["createExecutableSchema.ts"],"sourcesContent":["import { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { ICmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n plugins: ICmsGraphQLSchemaPlugin[];\n}\n\nexport const createExecutableSchema = (params: Params) => {\n const { plugins } = params;\n /**\n * Really hard to type this to satisfy the makeExecutableSchema\n */\n // TODO @ts-refactor\n const typeDefs: any = [];\n const resolvers: any = [];\n\n // Get schema definitions from plugins\n for (const plugin of plugins) {\n typeDefs.push(plugin.schema.typeDefs);\n resolvers.push(plugin.schema.resolvers);\n }\n\n return makeExecutableSchema({\n typeDefs,\n resolvers\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAOO,MAAMC,sBAAsB,GAAIC,MAAc,IAAK;EACtD,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;EAC1B;AACJ;AACA;EACI;EACA,MAAME,QAAa,GAAG,EAAE;EACxB,MAAMC,SAAc,GAAG,EAAE;;EAEzB;EACA,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;IAC1BC,QAAQ,CAACG,IAAI,CAACD,MAAM,CAACE,MAAM,CAACJ,QAAQ,CAAC;IACrCC,SAAS,CAACE,IAAI,CAACD,MAAM,CAACE,MAAM,CAACH,SAAS,CAAC;EAC3C;EAEA,OAAO,IAAAI,4BAAoB,EAAC;IACxBL,QAAQ;IACRC;EACJ,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAT,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_schema","require","_merge","_handlerGraphql","createExecutableSchema","params","plugins","typeDefs","resolvers","resolverDecoration","ResolverDecoration","plugin","schema","push","resolverDecorators","addDecorators","makeExecutableSchema","decorateResolvers","mergeResolvers","exports"],"sources":["createExecutableSchema.ts"],"sourcesContent":["import { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { mergeResolvers } from \"@graphql-tools/merge\";\nimport { ResolverDecoration } from \"@webiny/handler-graphql\";\nimport { Resolvers, TypeDefs } from \"@webiny/handler-graphql/types\";\nimport { ICmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n plugins: ICmsGraphQLSchemaPlugin[];\n}\n\nexport const createExecutableSchema = (params: Params) => {\n const { plugins } = params;\n\n const typeDefs: TypeDefs[] = [];\n const resolvers: Resolvers<any>[] = [];\n\n const resolverDecoration = new ResolverDecoration();\n\n // Get schema definitions from plugins\n for (const plugin of plugins) {\n const schema = plugin.schema;\n if (schema.typeDefs) {\n typeDefs.push(schema.typeDefs);\n }\n if (schema.resolvers) {\n resolvers.push(schema.resolvers);\n }\n if (schema.resolverDecorators) {\n resolverDecoration.addDecorators(schema.resolverDecorators);\n }\n }\n\n return makeExecutableSchema({\n typeDefs,\n resolvers: resolverDecoration.decorateResolvers(mergeResolvers(resolvers))\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAQO,MAAMG,sBAAsB,GAAIC,MAAc,IAAK;EACtD,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;EAE1B,MAAME,QAAoB,GAAG,EAAE;EAC/B,MAAMC,SAA2B,GAAG,EAAE;EAEtC,MAAMC,kBAAkB,GAAG,IAAIC,kCAAkB,CAAC,CAAC;;EAEnD;EACA,KAAK,MAAMC,MAAM,IAAIL,OAAO,EAAE;IAC1B,MAAMM,MAAM,GAAGD,MAAM,CAACC,MAAM;IAC5B,IAAIA,MAAM,CAACL,QAAQ,EAAE;MACjBA,QAAQ,CAACM,IAAI,CAACD,MAAM,CAACL,QAAQ,CAAC;IAClC;IACA,IAAIK,MAAM,CAACJ,SAAS,EAAE;MAClBA,SAAS,CAACK,IAAI,CAACD,MAAM,CAACJ,SAAS,CAAC;IACpC;IACA,IAAII,MAAM,CAACE,kBAAkB,EAAE;MAC3BL,kBAAkB,CAACM,aAAa,CAACH,MAAM,CAACE,kBAAkB,CAAC;IAC/D;EACJ;EAEA,OAAO,IAAAE,4BAAoB,EAAC;IACxBT,QAAQ;IACRC,SAAS,EAAEC,kBAAkB,CAACQ,iBAAiB,CAAC,IAAAC,qBAAc,EAACV,SAAS,CAAC;EAC7E,CAAC,CAAC;AACN,CAAC;AAACW,OAAA,CAAAf,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getSchema = void 0;
8
- var _codeFrame = _interopRequireDefault(require("code-frame"));
8
+ var _codeFrame = require("@babel/code-frame");
9
9
  var _error = _interopRequireDefault(require("@webiny/error"));
10
10
  var _generateSchema = require("./generateSchema");
11
11
  var _generateCacheId = require("./getSchema/generateCacheId");
12
12
  var _generateCacheKey = require("./getSchema/generateCacheKey");
13
- // @ts-expect-error `code-frame` has no types
14
-
15
13
  const schemaList = new Map();
16
14
 
17
15
  /**
@@ -67,8 +65,11 @@ const getSchema = async params => {
67
65
  code: "INVALID_GRAPHQL_SCHEMA",
68
66
  message: err.message,
69
67
  data: {
70
- invalidSegment: (0, _codeFrame.default)(err.source.body, location.line, location.column, {
71
- frameSize: 15
68
+ invalidSegment: (0, _codeFrame.codeFrameColumns)(err.source.body, {
69
+ start: {
70
+ line: location.line,
71
+ column: location.column
72
+ }
72
73
  })
73
74
  }
74
75
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_codeFrame","_interopRequireDefault","require","_error","_generateSchema","_generateCacheId","_generateCacheKey","schemaList","Map","getSchema","params","context","models","security","withoutAuthorization","cms","listModels","filter","model","isPrivate","cacheId","generateCacheId","cacheKey","generateCacheKey","cachedSchema","get","key","schema","generateSchema","set","err","Array","isArray","locations","WebinyError","message","code","data","endpoint","type","location","invalidSegment","codeFrame","source","body","line","column","frameSize","exports"],"sources":["getSchema.ts"],"sourcesContent":["// @ts-expect-error `code-frame` has no types\nimport codeFrame from \"code-frame\";\nimport WebinyError from \"@webiny/error\";\nimport { generateSchema } from \"./generateSchema\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { GraphQLSchema } from \"graphql\";\nimport { generateCacheId } from \"./getSchema/generateCacheId\";\nimport { generateCacheKey } from \"./getSchema/generateCacheKey\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\n\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n}\n\nconst schemaList = new Map<string, SchemaCache>();\n\n/**\n * Gets an existing schema or rewrites existing one or creates a completely new one\n * depending on the schemaId created from type and locale parameters\n */\nexport const getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context } = params;\n\n /**\n * We need all the API models.\n * Private models are hidden in the GraphQL, so filter them out.\n */\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n return model.isPrivate !== true;\n });\n });\n\n const cacheId = generateCacheId(params);\n\n const cacheKey = await generateCacheKey({ ...params, models });\n const cachedSchema = schemaList.get(cacheId);\n if (cachedSchema?.key === cacheKey) {\n return cachedSchema.schema;\n }\n\n try {\n const schema = await generateSchema({\n ...params,\n models\n });\n schemaList.set(cacheId, {\n key: cacheKey,\n schema\n });\n return schema;\n } catch (err) {\n if (!Array.isArray(err.locations)) {\n throw new WebinyError({\n message: err.message,\n code: err.code || \"INVALID_GRAPHQL_SCHEMA_LOCATIONS\",\n data: {\n ...(err.data || {}),\n endpoint: context.cms.type\n }\n });\n }\n const [location] = err.locations;\n\n throw new WebinyError({\n code: \"INVALID_GRAPHQL_SCHEMA\",\n message: err.message,\n data: {\n invalidSegment: codeFrame(err.source.body, location.line, location.column, {\n frameSize: 15\n })\n }\n });\n }\n};\n"],"mappings":";;;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAKA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AATA;;AAuBA,MAAMK,UAAU,GAAG,IAAIC,GAAG,CAAsB,CAAC;;AAEjD;AACA;AACA;AACA;AACO,MAAMC,SAAS,GAAG,MAAOC,MAAuB,IAA6B;EAChF,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;;EAE1B;AACJ;AACA;AACA;EACI,MAAME,MAAM,GAAG,MAAMD,OAAO,CAACE,QAAQ,CAACC,oBAAoB,CAAC,YAAY;IACnE,OAAO,CAAC,MAAMH,OAAO,CAACI,GAAG,CAACC,UAAU,CAAC,CAAC,EAAEC,MAAM,CAACC,KAAK,IAAI;MACpD,OAAOA,KAAK,CAACC,SAAS,KAAK,IAAI;IACnC,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAG,IAAAC,gCAAe,EAACX,MAAM,CAAC;EAEvC,MAAMY,QAAQ,GAAG,MAAM,IAAAC,kCAAgB,EAAC;IAAE,GAAGb,MAAM;IAAEE;EAAO,CAAC,CAAC;EAC9D,MAAMY,YAAY,GAAGjB,UAAU,CAACkB,GAAG,CAACL,OAAO,CAAC;EAC5C,IAAII,YAAY,EAAEE,GAAG,KAAKJ,QAAQ,EAAE;IAChC,OAAOE,YAAY,CAACG,MAAM;EAC9B;EAEA,IAAI;IACA,MAAMA,MAAM,GAAG,MAAM,IAAAC,8BAAc,EAAC;MAChC,GAAGlB,MAAM;MACTE;IACJ,CAAC,CAAC;IACFL,UAAU,CAACsB,GAAG,CAACT,OAAO,EAAE;MACpBM,GAAG,EAAEJ,QAAQ;MACbK;IACJ,CAAC,CAAC;IACF,OAAOA,MAAM;EACjB,CAAC,CAAC,OAAOG,GAAG,EAAE;IACV,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,GAAG,CAACG,SAAS,CAAC,EAAE;MAC/B,MAAM,IAAIC,cAAW,CAAC;QAClBC,OAAO,EAAEL,GAAG,CAACK,OAAO;QACpBC,IAAI,EAAEN,GAAG,CAACM,IAAI,IAAI,kCAAkC;QACpDC,IAAI,EAAE;UACF,IAAIP,GAAG,CAACO,IAAI,IAAI,CAAC,CAAC,CAAC;UACnBC,QAAQ,EAAE3B,OAAO,CAACI,GAAG,CAACwB;QAC1B;MACJ,CAAC,CAAC;IACN;IACA,MAAM,CAACC,QAAQ,CAAC,GAAGV,GAAG,CAACG,SAAS;IAEhC,MAAM,IAAIC,cAAW,CAAC;MAClBE,IAAI,EAAE,wBAAwB;MAC9BD,OAAO,EAAEL,GAAG,CAACK,OAAO;MACpBE,IAAI,EAAE;QACFI,cAAc,EAAE,IAAAC,kBAAS,EAACZ,GAAG,CAACa,MAAM,CAACC,IAAI,EAAEJ,QAAQ,CAACK,IAAI,EAAEL,QAAQ,CAACM,MAAM,EAAE;UACvEC,SAAS,EAAE;QACf,CAAC;MACL;IACJ,CAAC,CAAC;EACN;AACJ,CAAC;AAACC,OAAA,CAAAvC,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["_codeFrame","require","_error","_interopRequireDefault","_generateSchema","_generateCacheId","_generateCacheKey","schemaList","Map","getSchema","params","context","models","security","withoutAuthorization","cms","listModels","filter","model","isPrivate","cacheId","generateCacheId","cacheKey","generateCacheKey","cachedSchema","get","key","schema","generateSchema","set","err","Array","isArray","locations","WebinyError","message","code","data","endpoint","type","location","invalidSegment","codeFrameColumns","source","body","start","line","column","exports"],"sources":["getSchema.ts"],"sourcesContent":["import { codeFrameColumns } from \"@babel/code-frame\";\nimport WebinyError from \"@webiny/error\";\nimport { generateSchema } from \"./generateSchema\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { GraphQLSchema } from \"graphql\";\nimport { generateCacheId } from \"./getSchema/generateCacheId\";\nimport { generateCacheKey } from \"./getSchema/generateCacheKey\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\n\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n}\n\nconst schemaList = new Map<string, SchemaCache>();\n\n/**\n * Gets an existing schema or rewrites existing one or creates a completely new one\n * depending on the schemaId created from type and locale parameters\n */\nexport const getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context } = params;\n\n /**\n * We need all the API models.\n * Private models are hidden in the GraphQL, so filter them out.\n */\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n return model.isPrivate !== true;\n });\n });\n\n const cacheId = generateCacheId(params);\n\n const cacheKey = await generateCacheKey({ ...params, models });\n const cachedSchema = schemaList.get(cacheId);\n if (cachedSchema?.key === cacheKey) {\n return cachedSchema.schema;\n }\n\n try {\n const schema = await generateSchema({\n ...params,\n models\n });\n schemaList.set(cacheId, {\n key: cacheKey,\n schema\n });\n return schema;\n } catch (err) {\n if (!Array.isArray(err.locations)) {\n throw new WebinyError({\n message: err.message,\n code: err.code || \"INVALID_GRAPHQL_SCHEMA_LOCATIONS\",\n data: {\n ...(err.data || {}),\n endpoint: context.cms.type\n }\n });\n }\n const [location] = err.locations;\n\n throw new WebinyError({\n code: \"INVALID_GRAPHQL_SCHEMA\",\n message: err.message,\n data: {\n invalidSegment: codeFrameColumns(err.source.body, {\n start: {\n line: location.line,\n column: location.column\n }\n })\n }\n });\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAKA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAcA,MAAMM,UAAU,GAAG,IAAIC,GAAG,CAAsB,CAAC;;AAEjD;AACA;AACA;AACA;AACO,MAAMC,SAAS,GAAG,MAAOC,MAAuB,IAA6B;EAChF,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;;EAE1B;AACJ;AACA;AACA;EACI,MAAME,MAAM,GAAG,MAAMD,OAAO,CAACE,QAAQ,CAACC,oBAAoB,CAAC,YAAY;IACnE,OAAO,CAAC,MAAMH,OAAO,CAACI,GAAG,CAACC,UAAU,CAAC,CAAC,EAAEC,MAAM,CAACC,KAAK,IAAI;MACpD,OAAOA,KAAK,CAACC,SAAS,KAAK,IAAI;IACnC,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAG,IAAAC,gCAAe,EAACX,MAAM,CAAC;EAEvC,MAAMY,QAAQ,GAAG,MAAM,IAAAC,kCAAgB,EAAC;IAAE,GAAGb,MAAM;IAAEE;EAAO,CAAC,CAAC;EAC9D,MAAMY,YAAY,GAAGjB,UAAU,CAACkB,GAAG,CAACL,OAAO,CAAC;EAC5C,IAAII,YAAY,EAAEE,GAAG,KAAKJ,QAAQ,EAAE;IAChC,OAAOE,YAAY,CAACG,MAAM;EAC9B;EAEA,IAAI;IACA,MAAMA,MAAM,GAAG,MAAM,IAAAC,8BAAc,EAAC;MAChC,GAAGlB,MAAM;MACTE;IACJ,CAAC,CAAC;IACFL,UAAU,CAACsB,GAAG,CAACT,OAAO,EAAE;MACpBM,GAAG,EAAEJ,QAAQ;MACbK;IACJ,CAAC,CAAC;IACF,OAAOA,MAAM;EACjB,CAAC,CAAC,OAAOG,GAAG,EAAE;IACV,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,GAAG,CAACG,SAAS,CAAC,EAAE;MAC/B,MAAM,IAAIC,cAAW,CAAC;QAClBC,OAAO,EAAEL,GAAG,CAACK,OAAO;QACpBC,IAAI,EAAEN,GAAG,CAACM,IAAI,IAAI,kCAAkC;QACpDC,IAAI,EAAE;UACF,IAAIP,GAAG,CAACO,IAAI,IAAI,CAAC,CAAC,CAAC;UACnBC,QAAQ,EAAE3B,OAAO,CAACI,GAAG,CAACwB;QAC1B;MACJ,CAAC,CAAC;IACN;IACA,MAAM,CAACC,QAAQ,CAAC,GAAGV,GAAG,CAACG,SAAS;IAEhC,MAAM,IAAIC,cAAW,CAAC;MAClBE,IAAI,EAAE,wBAAwB;MAC9BD,OAAO,EAAEL,GAAG,CAACK,OAAO;MACpBE,IAAI,EAAE;QACFI,cAAc,EAAE,IAAAC,2BAAgB,EAACZ,GAAG,CAACa,MAAM,CAACC,IAAI,EAAE;UAC9CC,KAAK,EAAE;YACHC,IAAI,EAAEN,QAAQ,CAACM,IAAI;YACnBC,MAAM,EAAEP,QAAQ,CAACO;UACrB;QACJ,CAAC;MACL;IACJ,CAAC,CAAC;EACN;AACJ,CAAC;AAACC,OAAA,CAAAvC,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  import { GraphQLHandlerFactoryParams } from "./graphQLHandlerFactory";
2
- export declare type CreateGraphQLParams = GraphQLHandlerFactoryParams;
2
+ export type CreateGraphQLParams = GraphQLHandlerFactoryParams;
3
3
  export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("../types").CmsContext> | import("@webiny/plugins/types").PluginCollection | import("@webiny/api").ContextPlugin<import("@webiny/api/types").Context>)[];
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_apiSecurity","_getEntryTitle","_plugins","_getEntryDescription","_getEntryImage","_entryStorage","_constants","createDate","date","Date","createCmsEntryRecord","model","entry","id","entryId","modelId","name","status","title","getEntryTitle","description","getEntryDescription","image","getEntryImage","createdOn","modifiedOn","savedOn","createdBy","savedBy","modifiedBy","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","revisionCreatedOn","revisionSavedOn","revisionModifiedOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","revisionFirstPublishedOn","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","wbyAco_location","folderId","location","getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","argsEntries","entries","entriesByModel","ref","includes","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","filter","Boolean","ex","ErrorResponse","getContentEntry","find","m","NotAuthorizedResponse","data","result","shift","createResolveDescription","parent","_","field","fields","f","fieldId","descriptionFieldId","value","entryFieldFromStorageTransform","createContentEntriesSchema","MANAGE","plugin","createCmsGraphQLSchemaPlugin","typeDefs","resolvers","onByMetaFields","ENTRY_META_FIELDS","fieldType","isDateTimeEntryMetaField","join","CmsContentEntry","getPublishedEntriesByIds","CmsPublishedContentEntry","Query","searchContentEntries","modelIds","query","limit","modelManager","getEntryManager","where","listLatest","search","undefined","then","sort","a","b","getTime","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries","exports"],"sources":["contentEntries.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsEntry, CmsEntryListWhere, CmsIdentity, CmsModel } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport { createCmsGraphQLSchemaPlugin, ICmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { getEntryDescription } from \"~/utils/getEntryDescription\";\nimport { getEntryImage } from \"~/utils/getEntryImage\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\nconst createDate = (date: string | null): Date | null => {\n if (!date) {\n return null;\n }\n\n try {\n return new Date(date);\n } catch {\n return new Date();\n }\n};\n\ninterface CmsEntryRecord {\n id: string;\n entryId: string;\n model: {\n modelId: string;\n name: string;\n };\n status: string;\n title: string;\n description?: string | null;\n image?: string | null;\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: Date;\n modifiedOn: Date | null;\n savedOn: Date;\n createdBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n savedBy: CmsIdentity;\n firstPublishedOn: Date | null;\n lastPublishedOn: Date | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: Date;\n revisionModifiedOn: Date | null;\n revisionSavedOn: Date;\n revisionCreatedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionSavedBy: CmsIdentity;\n revisionFirstPublishedOn: Date | null;\n revisionLastPublishedOn: Date | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n wbyAco_location?: {\n folderId?: string | null;\n };\n}\n\nconst createCmsEntryRecord = (model: CmsModel, entry: CmsEntry): CmsEntryRecord => {\n return {\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry),\n description: getEntryDescription(model, entry),\n image: getEntryImage(model, entry),\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: createDate(entry.createdOn)!,\n modifiedOn: createDate(entry.modifiedOn),\n savedOn: createDate(entry.savedOn)!,\n createdBy: entry.createdBy,\n savedBy: entry.savedBy,\n modifiedBy: entry.modifiedBy,\n firstPublishedOn: createDate(entry.firstPublishedOn),\n lastPublishedOn: createDate(entry.lastPublishedOn),\n firstPublishedBy: entry.firstPublishedBy,\n lastPublishedBy: entry.lastPublishedBy,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: createDate(entry.revisionCreatedOn)!,\n revisionSavedOn: createDate(entry.revisionSavedOn)!,\n revisionModifiedOn: createDate(entry.revisionModifiedOn),\n revisionCreatedBy: entry.revisionCreatedBy,\n revisionModifiedBy: entry.revisionModifiedBy,\n revisionSavedBy: entry.revisionSavedBy,\n revisionFirstPublishedOn: createDate(entry.revisionFirstPublishedOn),\n revisionLastPublishedOn: createDate(entry.revisionLastPublishedOn),\n revisionFirstPublishedBy: entry.revisionFirstPublishedBy,\n revisionLastPublishedBy: entry.revisionLastPublishedBy,\n\n wbyAco_location: {\n folderId: entry.location?.folderId || null\n }\n };\n};\n\ninterface FetchMethod {\n (model: CmsModel, ids: string[]): Promise<CmsEntry[]>;\n}\n\nconst getFetchMethod = (type: GetContentEntryType, context: CmsContext): FetchMethod => {\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntries method \"${type}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type\n }\n );\n }\n const methodName = getContentEntriesMethods[type] as GetContentEntryMethods;\n if (!context.cms[methodName]) {\n throw new WebinyError(\n `Unknown context.cms method \"${methodName}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type,\n methodName\n }\n );\n }\n\n return context.cms[methodName];\n};\n\n/**\n * Function to get the list of content entries depending on latest, published or exact GraphQL queries.\n */\ninterface GetContentEntriesParams {\n args: {\n entries: Pick<CmsEntry, \"id\" | \"modelId\">[];\n };\n context: CmsContext;\n type: GetContentEntryType;\n}\n\nenum GetContentEntryMethods {\n getLatestEntriesByIds = \"getLatestEntriesByIds\",\n getPublishedEntriesByIds = \"getPublishedEntriesByIds\",\n getEntriesByIds = \"getEntriesByIds\"\n}\n\nconst getContentEntriesMethods = {\n latest: \"getLatestEntriesByIds\",\n published: \"getPublishedEntriesByIds\",\n exact: \"getEntriesByIds\"\n};\nconst getContentEntries = async (\n params: GetContentEntriesParams\n): Promise<Response | ErrorResponse> => {\n const { args, context, type } = params;\n\n const method = getFetchMethod(type, context);\n\n const models = await context.cms.listModels();\n\n const modelsMap = models.reduce((collection, model) => {\n collection[model.modelId] = model;\n return collection;\n }, {} as Record<string, CmsModel>);\n\n const argsEntries = args.entries as Pick<CmsEntry, \"id\" | \"modelId\">[];\n\n const entriesByModel = argsEntries.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.id)) {\n return collection;\n }\n collection[ref.modelId].push(ref.id);\n return collection;\n }, {} as EntriesByModel);\n\n const getters: Promise<CmsEntry[]>[] = Object.keys(entriesByModel).map(async modelId => {\n return method(modelsMap[modelId], entriesByModel[modelId]);\n });\n\n if (getters.length === 0) {\n return new Response([]);\n }\n\n try {\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce<CmsEntryRecord[]>((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return createCmsEntryRecord(model, item);\n })\n );\n }, [])\n .filter(Boolean);\n\n return new Response(entries);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\n/**\n * Function to fetch a single content entry depending on latest, published or exact GraphQL query.\n */\ninterface GetContentEntryParams {\n args: {\n entry: Pick<CmsEntry, \"id\" | \"modelId\">;\n };\n context: CmsContext;\n type: \"latest\" | \"published\" | \"exact\";\n}\n\nconst getContentEntry = async (\n params: GetContentEntryParams\n): Promise<Response<CmsEntryRecord | null> | NotAuthorizedResponse> => {\n const { args, context, type } = params;\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntry method \"${type}\". Could not fetch content entry.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n args,\n type\n }\n );\n }\n\n const method = getFetchMethod(type, context);\n\n const { modelId, id } = args.entry;\n const models = await context.cms.listModels();\n const model = models.find(m => m.modelId === modelId);\n\n if (!model) {\n return new NotAuthorizedResponse({\n data: {\n modelId\n }\n });\n }\n\n const result = await method(model, [id]);\n\n const entry = result.shift();\n if (!entry) {\n return new Response(null);\n }\n\n return new Response(createCmsEntryRecord(model, entry));\n};\n/**\n * As we support description field, we need to transform the value from storage.\n */\nconst createResolveDescription = (): Resolvers<CmsContext> => {\n return async (parent, _, context) => {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return null;\n }\n const value = parent.description || parent[field.fieldId];\n if (!value) {\n return null;\n }\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value\n });\n };\n};\n\ninterface Params {\n context: CmsContext;\n}\n\nexport const createContentEntriesSchema = ({\n context\n}: Params): ICmsGraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n const plugin = createCmsGraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.empty`;\n return plugin;\n }\n\n const onByMetaFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const plugin = createCmsGraphQLSchemaPlugin({\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n typeDefs: `\n type CmsModelMeta {\n modelId: String!\n name: String!\n }\n\n type CmsPublishedContentEntry {\n id: ID!\n entryId: String!\n title: String\n description: String\n image: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta!\n status: String!\n published: CmsPublishedContentEntry\n title: String!\n description: String\n image: String\n \n ${onByMetaFields}\n \n wbyAco_location: WbyAcoLocation\n }\n\n type CmsContentEntriesResponse {\n data: [CmsContentEntry!]\n error: CmsError\n }\n\n type CmsContentEntryResponse {\n data: CmsContentEntry\n error: CmsError\n }\n\n input CmsModelEntryInput {\n modelId: ID!\n id: ID!\n }\n\n extend type Query {\n # Search content entries for given content models using the query string.\n searchContentEntries(\n modelIds: [ID!]!\n query: String\n fields: [String!]\n limit: Int\n ): CmsContentEntriesResponse!\n\n # Get content entry meta data\n getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n\n getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n\n # Get content entries meta data\n getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!\n getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!\n getPublishedContentEntries(\n entries: [CmsModelEntryInput!]!\n ): CmsContentEntriesResponse!\n }\n `,\n resolvers: {\n CmsContentEntry: {\n published: async (parent, _, context) => {\n try {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const [entry] = await context.cms.getPublishedEntriesByIds(model, [\n parent.id\n ]);\n if (!entry) {\n return null;\n }\n return createCmsEntryRecord(model, entry);\n } catch (ex) {\n return null;\n }\n },\n description: createResolveDescription()\n },\n CmsPublishedContentEntry: {\n description: createResolveDescription()\n },\n Query: {\n async searchContentEntries(_, args: any, context) {\n const { modelIds, fields, query, limit = 10 } = args;\n const models = await context.cms.listModels();\n\n const getters = models\n .filter(model => modelIds.includes(model.modelId))\n .map(async model => {\n const modelManager = await context.cms.getEntryManager(model.modelId);\n const where: CmsEntryListWhere = {};\n\n const [items] = await modelManager.listLatest({\n limit,\n where,\n search: !!query ? query : undefined,\n fields: fields || []\n });\n\n return items.map((entry: CmsEntry) => {\n return createCmsEntryRecord(model, entry);\n });\n });\n\n try {\n const entries = await Promise.all(getters).then(results =>\n results.reduce((result, item) => result.concat(item), [])\n );\n\n return new Response(\n entries\n .sort((a, b) => b.savedOn.getTime() - a.savedOn.getTime())\n .slice(0, limit)\n );\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n },\n async getContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"published\"\n });\n },\n async getContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"published\"\n });\n }\n }\n }\n });\n\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-entries`;\n\n return plugin;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_apiSecurity","_getEntryTitle","_plugins","_getEntryDescription","_getEntryImage","_entryStorage","_constants","createDate","date","Date","createCmsEntryRecord","model","entry","id","entryId","modelId","name","status","title","getEntryTitle","description","getEntryDescription","image","getEntryImage","createdOn","modifiedOn","savedOn","createdBy","savedBy","modifiedBy","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","revisionCreatedOn","revisionSavedOn","revisionModifiedOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","revisionFirstPublishedOn","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","wbyAco_location","folderId","location","getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","argsEntries","entries","entriesByModel","ref","includes","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","filter","Boolean","ex","ErrorResponse","getContentEntry","find","m","NotAuthorizedResponse","data","result","shift","createResolveDescription","parent","_","field","fields","f","fieldId","descriptionFieldId","value","entryFieldFromStorageTransform","createContentEntriesSchema","MANAGE","plugin","createCmsGraphQLSchemaPlugin","typeDefs","resolvers","onByMetaFields","ENTRY_META_FIELDS","fieldType","isDateTimeEntryMetaField","join","CmsContentEntry","getPublishedEntriesByIds","CmsPublishedContentEntry","Query","searchContentEntries","modelIds","query","limit","modelManager","getEntryManager","where","listLatest","search","undefined","then","sort","a","b","getTime","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries","exports"],"sources":["contentEntries.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsEntry, CmsEntryListWhere, CmsIdentity, CmsModel } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport { createCmsGraphQLSchemaPlugin, ICmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { getEntryDescription } from \"~/utils/getEntryDescription\";\nimport { getEntryImage } from \"~/utils/getEntryImage\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { GraphQLFieldResolver } from \"@webiny/handler-graphql/types\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\nconst createDate = (date: string | null): Date | null => {\n if (!date) {\n return null;\n }\n\n try {\n return new Date(date);\n } catch {\n return new Date();\n }\n};\n\ninterface CmsEntryRecord {\n id: string;\n entryId: string;\n model: {\n modelId: string;\n name: string;\n };\n status: string;\n title: string;\n description?: string | null;\n image?: string | null;\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: Date;\n modifiedOn: Date | null;\n savedOn: Date;\n createdBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n savedBy: CmsIdentity;\n firstPublishedOn: Date | null;\n lastPublishedOn: Date | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: Date;\n revisionModifiedOn: Date | null;\n revisionSavedOn: Date;\n revisionCreatedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionSavedBy: CmsIdentity;\n revisionFirstPublishedOn: Date | null;\n revisionLastPublishedOn: Date | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n wbyAco_location?: {\n folderId?: string | null;\n };\n}\n\nconst createCmsEntryRecord = (model: CmsModel, entry: CmsEntry): CmsEntryRecord => {\n return {\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry),\n description: getEntryDescription(model, entry),\n image: getEntryImage(model, entry),\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: createDate(entry.createdOn)!,\n modifiedOn: createDate(entry.modifiedOn),\n savedOn: createDate(entry.savedOn)!,\n createdBy: entry.createdBy,\n savedBy: entry.savedBy,\n modifiedBy: entry.modifiedBy,\n firstPublishedOn: createDate(entry.firstPublishedOn),\n lastPublishedOn: createDate(entry.lastPublishedOn),\n firstPublishedBy: entry.firstPublishedBy,\n lastPublishedBy: entry.lastPublishedBy,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: createDate(entry.revisionCreatedOn)!,\n revisionSavedOn: createDate(entry.revisionSavedOn)!,\n revisionModifiedOn: createDate(entry.revisionModifiedOn),\n revisionCreatedBy: entry.revisionCreatedBy,\n revisionModifiedBy: entry.revisionModifiedBy,\n revisionSavedBy: entry.revisionSavedBy,\n revisionFirstPublishedOn: createDate(entry.revisionFirstPublishedOn),\n revisionLastPublishedOn: createDate(entry.revisionLastPublishedOn),\n revisionFirstPublishedBy: entry.revisionFirstPublishedBy,\n revisionLastPublishedBy: entry.revisionLastPublishedBy,\n\n wbyAco_location: {\n folderId: entry.location?.folderId || null\n }\n };\n};\n\ninterface FetchMethod {\n (model: CmsModel, ids: string[]): Promise<CmsEntry[]>;\n}\n\nconst getFetchMethod = (type: GetContentEntryType, context: CmsContext): FetchMethod => {\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntries method \"${type}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type\n }\n );\n }\n const methodName = getContentEntriesMethods[type] as GetContentEntryMethods;\n if (!context.cms[methodName]) {\n throw new WebinyError(\n `Unknown context.cms method \"${methodName}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type,\n methodName\n }\n );\n }\n\n return context.cms[methodName];\n};\n\n/**\n * Function to get the list of content entries depending on latest, published or exact GraphQL queries.\n */\ninterface GetContentEntriesParams {\n args: {\n entries: Pick<CmsEntry, \"id\" | \"modelId\">[];\n };\n context: CmsContext;\n type: GetContentEntryType;\n}\n\nenum GetContentEntryMethods {\n getLatestEntriesByIds = \"getLatestEntriesByIds\",\n getPublishedEntriesByIds = \"getPublishedEntriesByIds\",\n getEntriesByIds = \"getEntriesByIds\"\n}\n\nconst getContentEntriesMethods = {\n latest: \"getLatestEntriesByIds\",\n published: \"getPublishedEntriesByIds\",\n exact: \"getEntriesByIds\"\n};\nconst getContentEntries = async (\n params: GetContentEntriesParams\n): Promise<Response | ErrorResponse> => {\n const { args, context, type } = params;\n\n const method = getFetchMethod(type, context);\n\n const models = await context.cms.listModels();\n\n const modelsMap = models.reduce((collection, model) => {\n collection[model.modelId] = model;\n return collection;\n }, {} as Record<string, CmsModel>);\n\n const argsEntries = args.entries as Pick<CmsEntry, \"id\" | \"modelId\">[];\n\n const entriesByModel = argsEntries.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.id)) {\n return collection;\n }\n collection[ref.modelId].push(ref.id);\n return collection;\n }, {} as EntriesByModel);\n\n const getters: Promise<CmsEntry[]>[] = Object.keys(entriesByModel).map(async modelId => {\n return method(modelsMap[modelId], entriesByModel[modelId]);\n });\n\n if (getters.length === 0) {\n return new Response([]);\n }\n\n try {\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce<CmsEntryRecord[]>((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return createCmsEntryRecord(model, item);\n })\n );\n }, [])\n .filter(Boolean);\n\n return new Response(entries);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\n/**\n * Function to fetch a single content entry depending on latest, published or exact GraphQL query.\n */\ninterface GetContentEntryParams {\n args: {\n entry: Pick<CmsEntry, \"id\" | \"modelId\">;\n };\n context: CmsContext;\n type: \"latest\" | \"published\" | \"exact\";\n}\n\nconst getContentEntry = async (\n params: GetContentEntryParams\n): Promise<Response<CmsEntryRecord | null> | NotAuthorizedResponse> => {\n const { args, context, type } = params;\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntry method \"${type}\". Could not fetch content entry.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n args,\n type\n }\n );\n }\n\n const method = getFetchMethod(type, context);\n\n const { modelId, id } = args.entry;\n const models = await context.cms.listModels();\n const model = models.find(m => m.modelId === modelId);\n\n if (!model) {\n return new NotAuthorizedResponse({\n data: {\n modelId\n }\n });\n }\n\n const result = await method(model, [id]);\n\n const entry = result.shift();\n if (!entry) {\n return new Response(null);\n }\n\n return new Response(createCmsEntryRecord(model, entry));\n};\n/**\n * As we support description field, we need to transform the value from storage.\n */\nconst createResolveDescription = (): GraphQLFieldResolver<any, any, CmsContext> => {\n return async (parent, _, context) => {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return null;\n }\n const value = parent.description || parent[field.fieldId];\n if (!value) {\n return null;\n }\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value\n });\n };\n};\n\ninterface Params {\n context: CmsContext;\n}\n\nexport const createContentEntriesSchema = ({\n context\n}: Params): ICmsGraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n const plugin = createCmsGraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.empty`;\n return plugin;\n }\n\n const onByMetaFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const plugin = createCmsGraphQLSchemaPlugin({\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n typeDefs: `\n type CmsModelMeta {\n modelId: String!\n name: String!\n }\n\n type CmsPublishedContentEntry {\n id: ID!\n entryId: String!\n title: String\n description: String\n image: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta!\n status: String!\n published: CmsPublishedContentEntry\n title: String!\n description: String\n image: String\n \n ${onByMetaFields}\n \n wbyAco_location: WbyAcoLocation\n }\n\n type CmsContentEntriesResponse {\n data: [CmsContentEntry!]\n error: CmsError\n }\n\n type CmsContentEntryResponse {\n data: CmsContentEntry\n error: CmsError\n }\n\n input CmsModelEntryInput {\n modelId: ID!\n id: ID!\n }\n\n extend type Query {\n # Search content entries for given content models using the query string.\n searchContentEntries(\n modelIds: [ID!]!\n query: String\n fields: [String!]\n limit: Int\n ): CmsContentEntriesResponse!\n\n # Get content entry meta data\n getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n\n getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n\n # Get content entries meta data\n getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!\n getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!\n getPublishedContentEntries(\n entries: [CmsModelEntryInput!]!\n ): CmsContentEntriesResponse!\n }\n `,\n resolvers: {\n CmsContentEntry: {\n published: async (parent, _, context) => {\n try {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const [entry] = await context.cms.getPublishedEntriesByIds(model, [\n parent.id\n ]);\n if (!entry) {\n return null;\n }\n return createCmsEntryRecord(model, entry);\n } catch (ex) {\n return null;\n }\n },\n description: createResolveDescription()\n },\n CmsPublishedContentEntry: {\n description: createResolveDescription()\n },\n Query: {\n async searchContentEntries(_, args: any, context) {\n const { modelIds, fields, query, limit = 10 } = args;\n const models = await context.cms.listModels();\n\n const getters = models\n .filter(model => modelIds.includes(model.modelId))\n .map(async model => {\n const modelManager = await context.cms.getEntryManager(model.modelId);\n const where: CmsEntryListWhere = {};\n\n const [items] = await modelManager.listLatest({\n limit,\n where,\n search: !!query ? query : undefined,\n fields: fields || []\n });\n\n return items.map((entry: CmsEntry) => {\n return createCmsEntryRecord(model, entry);\n });\n });\n\n try {\n const entries = await Promise.all(getters).then(results =>\n results.reduce((result, item) => result.concat(item), [])\n );\n\n return new Response(\n entries\n .sort((a, b) => b.savedOn.getTime() - a.savedOn.getTime())\n .slice(0, limit)\n );\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n },\n async getContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"published\"\n });\n },\n async getContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"published\"\n });\n }\n }\n }\n });\n\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-entries`;\n\n return plugin;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { ApiEndpoint, CmsFieldTypePlugins, CmsModel, CmsModelField } from "../../types";
2
1
  import { Resolvers } from "@webiny/handler-graphql/types";
2
+ import { ApiEndpoint, CmsFieldTypePlugins, CmsModel, CmsModelField } from "../../types";
3
3
  interface CreateFieldResolvers {
4
4
  graphQLType: string;
5
5
  fields: CmsModelField[];
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.createFieldResolversFactory = void 0;
8
8
  var _set = _interopRequireDefault(require("lodash/set"));
9
- var _entryStorage = require("../../utils/entryStorage");
10
9
  var _error = _interopRequireDefault(require("@webiny/error"));
10
+ var _entryStorage = require("../../utils/entryStorage");
11
11
  var _getBaseFieldType = require("../../utils/getBaseFieldType");
12
12
  /**
13
13
  * We use a factory to avoid passing the parameters for recursive invocations.
@@ -70,8 +70,6 @@ const createFieldResolversFactory = factoryParams => {
70
70
  const {
71
71
  fieldId
72
72
  } = field;
73
- // TODO @ts-refactor figure out types for parameters
74
- // @ts-expect-error
75
73
  fieldResolvers[fieldId] = async (parent, args, context, info) => {
76
74
  /**
77
75
  * This is required because due to ref field can be requested without the populated data.
@@ -1 +1 @@
1
- {"version":3,"names":["_set","_interopRequireDefault","require","_entryStorage","_error","_getBaseFieldType","createFieldResolversFactory","factoryParams","endpointType","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","field","plugin","getBaseFieldType","fieldId","WebinyError","createResolver","resolver","fieldResolver","Object","assign","parent","args","context","info","value","values","undefined","transformedValue","entryFieldFromStorageTransform","set","exports"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport { ApiEndpoint, CmsContext, CmsFieldTypePlugins, CmsModel, CmsModelField } from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope, and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldTypePlugins } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers = { ...extraResolvers };\n const typeResolvers = {};\n\n for (const field of fields) {\n const plugin = fieldTypePlugins[getBaseFieldType(field)];\n if (!plugin) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const createResolver = plugin[endpointType]?.createResolver || null;\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({\n graphQLType,\n models,\n model,\n field,\n createFieldResolvers,\n fieldTypePlugins\n })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n // TODO @ts-refactor figure out types for parameters\n // @ts-expect-error\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n /**\n * This is required because due to ref field can be requested without the populated data.\n * At that point there is no .values no fieldId property on the parent\n */\n const value =\n parent?.values?.[fieldId] === undefined\n ? parent?.[fieldId]\n : parent?.values?.[fieldId];\n if (value === undefined) {\n return undefined;\n }\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: isRoot ? parent.values?.[fieldId] : parent[fieldId]\n });\n\n set(isRoot ? parent.values : parent, fieldId, transformedValue);\n\n if (!resolver) {\n return isRoot ? parent.values[fieldId] : parent[fieldId];\n }\n\n return await resolver(isRoot ? parent.values : parent, args, context, info);\n };\n }\n\n return { [graphQLType]: fieldResolvers, ...typeResolvers };\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_set","_interopRequireDefault","require","_error","_entryStorage","_getBaseFieldType","createFieldResolversFactory","factoryParams","endpointType","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","field","plugin","getBaseFieldType","fieldId","WebinyError","createResolver","resolver","fieldResolver","Object","assign","parent","args","context","info","value","values","undefined","transformedValue","entryFieldFromStorageTransform","set","exports"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ApiEndpoint, CmsContext, CmsFieldTypePlugins, CmsModel, CmsModelField } from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope, and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldTypePlugins } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers = { ...extraResolvers };\n const typeResolvers = {};\n\n for (const field of fields) {\n const plugin = fieldTypePlugins[getBaseFieldType(field)];\n if (!plugin) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const createResolver = plugin[endpointType]?.createResolver || null;\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({\n graphQLType,\n models,\n model,\n field,\n createFieldResolvers,\n fieldTypePlugins\n })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n /**\n * This is required because due to ref field can be requested without the populated data.\n * At that point there is no .values no fieldId property on the parent\n */\n const value =\n parent?.values?.[fieldId] === undefined\n ? parent?.[fieldId]\n : parent?.values?.[fieldId];\n if (value === undefined) {\n return undefined;\n }\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: isRoot ? parent.values?.[fieldId] : parent[fieldId]\n });\n\n set(isRoot ? parent.values : parent, fieldId, transformedValue);\n\n if (!resolver) {\n return isRoot ? parent.values[fieldId] : parent[fieldId];\n }\n\n return await resolver(isRoot ? parent.values : parent, args, context, info);\n };\n }\n\n return { [graphQLType]: fieldResolvers, ...typeResolvers };\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -57,6 +57,10 @@ const createSingularSDL = ({
57
57
  }
58
58
 
59
59
  ${fields.map(f => f.typeDefs).join("\n")}
60
+
61
+ input ${singularName}ListWhereInput {
62
+ id: String
63
+ }
60
64
 
61
65
  type ${singularName}Response {
62
66
  data: ${singularName}
@@ -1 +1 @@
1
- {"version":3,"names":["_renderInputFields","require","_renderFields","_constants","createSingularSDL","models","model","fieldTypePlugins","type","inputFields","renderInputFields","fields","length","renderFields","singularApiName","singularName","inputGqlFields","map","f","join","onByMetaInputGqlFields","ENTRY_META_FIELDS","field","fieldType","isDateTimeEntryMetaField","onByMetaGqlFields","read","description","typeDefs","exports"],"sources":["createSingularSDL.ts"],"sourcesContent":["import { ApiEndpoint, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface CreateSingularSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n type: ApiEndpoint;\n}\n\ninterface CreateSingularSDL {\n (params: CreateSingularSDLParams): string;\n}\n\nexport const createSingularSDL: CreateSingularSDL = ({\n models,\n model,\n fieldTypePlugins,\n type\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n if (inputFields.length === 0) {\n return \"\";\n }\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type,\n fieldTypePlugins\n });\n\n const { singularApiName: singularName } = model;\n\n const inputGqlFields = inputFields.map(f => f.fields).join(\"\\n\");\n\n const onByMetaInputGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentityInput\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n const read = `\n \"\"\"${model.description || singularName}\"\"\"\n type ${singularName} {\n id: ID!\n entryId: String!\n \n ${onByMetaGqlFields}\n\n ownedBy: CmsIdentity @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'createdBy' field.\")\n \n ${fields.map(f => f.fields).join(\"\\n\")}\n }\n\n ${fields.map(f => f.typeDefs).join(\"\\n\")}\n\n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n extend type Query {\n get${singularName}: ${singularName}Response\n }\n\n `;\n if (type !== \"manage\") {\n return read;\n }\n return `\n ${read}\n \n ${inputFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}Input {\n ${onByMetaInputGqlFields}\n ${inputGqlFields}\n }\n \n extend type Mutation {\n update${singularName}(data: ${singularName}Input!, options: UpdateCmsEntryOptionsInput): ${singularName}Response\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAaO,MAAMG,iBAAoC,GAAGA,CAAC;EACjDC,MAAM;EACNC,KAAK;EACLC,gBAAgB;EAChBC;AACJ,CAAC,KAAa;EACV,MAAMC,WAAW,GAAG,IAAAC,oCAAiB,EAAC;IAClCL,MAAM;IACNC,KAAK;IACLK,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBJ;EACJ,CAAC,CAAC;EACF,IAAIE,WAAW,CAACG,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAO,EAAE;EACb;EAEA,MAAMD,MAAM,GAAG,IAAAE,0BAAY,EAAC;IACxBR,MAAM;IACNC,KAAK;IACLK,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBH,IAAI;IACJD;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEO,eAAe,EAAEC;EAAa,CAAC,GAAGT,KAAK;EAE/C,MAAMU,cAAc,GAAGP,WAAW,CAACQ,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACP,MAAM,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAEhE,MAAMC,sBAAsB,GAAGC,4BAAiB,CAACJ,GAAG,CAACK,KAAK,IAAI;IAC1D,MAAMC,SAAS,GAAG,IAAAC,mCAAwB,EAACF,KAAK,CAAC,GAAG,UAAU,GAAG,kBAAkB;IAEnF,OAAQ,GAAEA,KAAM,KAAIC,SAAU,EAAC;EACnC,CAAC,CAAC,CAACJ,IAAI,CAAC,IAAI,CAAC;EAEb,MAAMM,iBAAiB,GAAGJ,4BAAiB,CAACJ,GAAG,CAACK,KAAK,IAAI;IACrD,MAAMC,SAAS,GAAG,IAAAC,mCAAwB,EAACF,KAAK,CAAC,GAAG,UAAU,GAAG,aAAa;IAE9E,OAAQ,GAAEA,KAAM,KAAIC,SAAU,EAAC;EACnC,CAAC,CAAC,CAACJ,IAAI,CAAC,IAAI,CAAC;;EAEb;EACA,MAAMO,IAAI,GAAI;AAClB,aAAapB,KAAK,CAACqB,WAAW,IAAIZ,YAAa;AAC/C,eAAeA,YAAa;AAC5B;AACA;AACA;AACA,cAAcU,iBAAkB;AAChC;AACA;AACA;AACA,cAAcd,MAAM,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACP,MAAM,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAE;AACnD;AACA;AACA,UAAUR,MAAM,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACU,QAAQ,CAAC,CAACT,IAAI,CAAC,IAAI,CAAE;AACjD;AACA,eAAeJ,YAAa;AAC5B,oBAAoBA,YAAa;AACjC;AACA;AACA;AACA;AACA,iBAAiBA,YAAa,KAAIA,YAAa;AAC/C;AACA;AACA,KAAK;EACD,IAAIP,IAAI,KAAK,QAAQ,EAAE;IACnB,OAAOkB,IAAI;EACf;EACA,OAAQ;AACZ,UAAUA,IAAK;AACf;AACA,UAAUjB,WAAW,CAACQ,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACU,QAAQ,CAAC,CAACT,IAAI,CAAC,IAAI,CAAE;AACtD;AACA,gBAAgBJ,YAAa;AAC7B,cAAcK,sBAAuB;AACrC,cAAcJ,cAAe;AAC7B;AACA;AACA;AACA,oBAAoBD,YAAa,UAASA,YAAa,iDAAgDA,YAAa;AACpH;AACA,KAAK;AACL,CAAC;AAACc,OAAA,CAAAzB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_renderInputFields","require","_renderFields","_constants","createSingularSDL","models","model","fieldTypePlugins","type","inputFields","renderInputFields","fields","length","renderFields","singularApiName","singularName","inputGqlFields","map","f","join","onByMetaInputGqlFields","ENTRY_META_FIELDS","field","fieldType","isDateTimeEntryMetaField","onByMetaGqlFields","read","description","typeDefs","exports"],"sources":["createSingularSDL.ts"],"sourcesContent":["import { ApiEndpoint, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface CreateSingularSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n type: ApiEndpoint;\n}\n\ninterface CreateSingularSDL {\n (params: CreateSingularSDLParams): string;\n}\n\nexport const createSingularSDL: CreateSingularSDL = ({\n models,\n model,\n fieldTypePlugins,\n type\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n if (inputFields.length === 0) {\n return \"\";\n }\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type,\n fieldTypePlugins\n });\n\n const { singularApiName: singularName } = model;\n\n const inputGqlFields = inputFields.map(f => f.fields).join(\"\\n\");\n\n const onByMetaInputGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentityInput\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n const read = `\n \"\"\"${model.description || singularName}\"\"\"\n type ${singularName} {\n id: ID!\n entryId: String!\n \n ${onByMetaGqlFields}\n\n ownedBy: CmsIdentity @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'createdBy' field.\")\n \n ${fields.map(f => f.fields).join(\"\\n\")}\n }\n\n ${fields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}ListWhereInput {\n id: String\n }\n\n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n extend type Query {\n get${singularName}: ${singularName}Response\n }\n\n `;\n if (type !== \"manage\") {\n return read;\n }\n return `\n ${read}\n \n ${inputFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}Input {\n ${onByMetaInputGqlFields}\n ${inputGqlFields}\n }\n \n extend type Mutation {\n update${singularName}(data: ${singularName}Input!, options: UpdateCmsEntryOptionsInput): ${singularName}Response\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAaO,MAAMG,iBAAoC,GAAGA,CAAC;EACjDC,MAAM;EACNC,KAAK;EACLC,gBAAgB;EAChBC;AACJ,CAAC,KAAa;EACV,MAAMC,WAAW,GAAG,IAAAC,oCAAiB,EAAC;IAClCL,MAAM;IACNC,KAAK;IACLK,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBJ;EACJ,CAAC,CAAC;EACF,IAAIE,WAAW,CAACG,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAO,EAAE;EACb;EAEA,MAAMD,MAAM,GAAG,IAAAE,0BAAY,EAAC;IACxBR,MAAM;IACNC,KAAK;IACLK,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBH,IAAI;IACJD;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEO,eAAe,EAAEC;EAAa,CAAC,GAAGT,KAAK;EAE/C,MAAMU,cAAc,GAAGP,WAAW,CAACQ,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACP,MAAM,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAEhE,MAAMC,sBAAsB,GAAGC,4BAAiB,CAACJ,GAAG,CAACK,KAAK,IAAI;IAC1D,MAAMC,SAAS,GAAG,IAAAC,mCAAwB,EAACF,KAAK,CAAC,GAAG,UAAU,GAAG,kBAAkB;IAEnF,OAAQ,GAAEA,KAAM,KAAIC,SAAU,EAAC;EACnC,CAAC,CAAC,CAACJ,IAAI,CAAC,IAAI,CAAC;EAEb,MAAMM,iBAAiB,GAAGJ,4BAAiB,CAACJ,GAAG,CAACK,KAAK,IAAI;IACrD,MAAMC,SAAS,GAAG,IAAAC,mCAAwB,EAACF,KAAK,CAAC,GAAG,UAAU,GAAG,aAAa;IAE9E,OAAQ,GAAEA,KAAM,KAAIC,SAAU,EAAC;EACnC,CAAC,CAAC,CAACJ,IAAI,CAAC,IAAI,CAAC;;EAEb;EACA,MAAMO,IAAI,GAAI;AAClB,aAAapB,KAAK,CAACqB,WAAW,IAAIZ,YAAa;AAC/C,eAAeA,YAAa;AAC5B;AACA;AACA;AACA,cAAcU,iBAAkB;AAChC;AACA;AACA;AACA,cAAcd,MAAM,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACP,MAAM,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAE;AACnD;AACA;AACA,UAAUR,MAAM,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACU,QAAQ,CAAC,CAACT,IAAI,CAAC,IAAI,CAAE;AACjD;AACA,gBAAgBJ,YAAa;AAC7B;AACA;AACA;AACA,eAAeA,YAAa;AAC5B,oBAAoBA,YAAa;AACjC;AACA;AACA;AACA;AACA,iBAAiBA,YAAa,KAAIA,YAAa;AAC/C;AACA;AACA,KAAK;EACD,IAAIP,IAAI,KAAK,QAAQ,EAAE;IACnB,OAAOkB,IAAI;EACf;EACA,OAAQ;AACZ,UAAUA,IAAK;AACf;AACA,UAAUjB,WAAW,CAACQ,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACU,QAAQ,CAAC,CAACT,IAAI,CAAC,IAAI,CAAE;AACtD;AACA,gBAAgBJ,YAAa;AAC7B,cAAcK,sBAAuB;AACrC,cAAcJ,cAAe;AAC7B;AACA;AACA;AACA,oBAAoBD,YAAa,UAASA,YAAa,iDAAgDA,YAAa;AACpH;AACA,KAAK;AACL,CAAC;AAACc,OAAA,CAAAzB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -3,6 +3,6 @@ interface ResolveCreateArgs {
3
3
  data: CreateCmsEntryInput;
4
4
  options?: CreateCmsEntryOptionsInput;
5
5
  }
6
- declare type ResolveCreate = ResolverFactory<any, ResolveCreateArgs>;
6
+ type ResolveCreate = ResolverFactory<any, ResolveCreateArgs>;
7
7
  export declare const resolveCreate: ResolveCreate;
8
8
  export {};
@@ -4,6 +4,6 @@ interface ResolveCreateFromArgs {
4
4
  data: CreateFromCmsEntryInput;
5
5
  options?: CreateRevisionCmsEntryOptionsInput;
6
6
  }
7
- declare type ResolveCreateFrom = ResolverFactory<any, ResolveCreateFromArgs>;
7
+ type ResolveCreateFrom = ResolverFactory<any, ResolveCreateFromArgs>;
8
8
  export declare const resolveCreateFrom: ResolveCreateFrom;
9
9
  export {};
@@ -3,6 +3,6 @@ interface ResolveDeleteArgs {
3
3
  revision: string;
4
4
  options?: CmsDeleteEntryOptions;
5
5
  }
6
- declare type ResolveDelete = ResolverFactory<any, ResolveDeleteArgs>;
6
+ type ResolveDelete = ResolverFactory<any, ResolveDeleteArgs>;
7
7
  export declare const resolveDelete: ResolveDelete;
8
8
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolveDeleteArgs {
3
3
  revision: string;
4
4
  }
5
- declare type ResolveDelete = ResolverFactory<any, ResolveDeleteArgs>;
5
+ type ResolveDelete = ResolverFactory<any, ResolveDeleteArgs>;
6
6
  export declare const resolveDeleteMultiple: ResolveDelete;
7
7
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolveGetArgs {
3
3
  revision: string;
4
4
  }
5
- declare type ResolveGet = ResolverFactory<any, ResolveGetArgs>;
5
+ type ResolveGet = ResolverFactory<any, ResolveGetArgs>;
6
6
  export declare const resolveGet: ResolveGet;
7
7
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolveGetByIdsArgs {
3
3
  revisions: string[];
4
4
  }
5
- declare type ResolveGetByIds = ResolverFactory<any, ResolveGetByIdsArgs>;
5
+ type ResolveGetByIds = ResolverFactory<any, ResolveGetByIdsArgs>;
6
6
  export declare const resolveGetByIds: ResolveGetByIds;
7
7
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolveGetRevisionsArgs {
3
3
  id: string;
4
4
  }
5
- declare type ResolveGetRevisions = ResolverFactory<any, ResolveGetRevisionsArgs>;
5
+ type ResolveGetRevisions = ResolverFactory<any, ResolveGetRevisionsArgs>;
6
6
  export declare const resolveGetRevisions: ResolveGetRevisions;
7
7
  export {};
@@ -1,4 +1,4 @@
1
1
  import { CmsEntryListParams, CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
- declare type ResolveGetUniqueFieldValuesList = ResolverFactory<any, CmsEntryListParams>;
2
+ type ResolveGetUniqueFieldValuesList = ResolverFactory<any, CmsEntryListParams>;
3
3
  export declare const resolveGetUniqueFieldValues: ResolveGetUniqueFieldValuesList;
4
4
  export {};
@@ -1,4 +1,4 @@
1
1
  import { CmsEntryResolverFactory as ResolverFactory, CmsEntryListParams } from "../../../../types";
2
- declare type ResolveList = ResolverFactory<any, CmsEntryListParams>;
2
+ type ResolveList = ResolverFactory<any, CmsEntryListParams>;
3
3
  export declare const resolveList: ResolveList;
4
4
  export {};
@@ -1,4 +1,4 @@
1
1
  import { CmsEntryResolverFactory as ResolverFactory, CmsEntryListParams } from "../../../../types";
2
- declare type ResolveListDeleted = ResolverFactory<any, CmsEntryListParams>;
2
+ type ResolveListDeleted = ResolverFactory<any, CmsEntryListParams>;
3
3
  export declare const resolveListDeleted: ResolveListDeleted;
4
4
  export {};
@@ -3,6 +3,6 @@ interface ResolveMoveArgs {
3
3
  revision: string;
4
4
  folderId: string;
5
5
  }
6
- declare type ResolveMove = ResolverFactory<any, ResolveMoveArgs>;
6
+ type ResolveMove = ResolverFactory<any, ResolveMoveArgs>;
7
7
  export declare const resolveMove: ResolveMove;
8
8
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolvePublishArgs {
3
3
  revision: string;
4
4
  }
5
- declare type ResolvePublish = ResolverFactory<any, ResolvePublishArgs>;
5
+ type ResolvePublish = ResolverFactory<any, ResolvePublishArgs>;
6
6
  export declare const resolvePublish: ResolvePublish;
7
7
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolveRepublishArgs {
3
3
  revision: string;
4
4
  }
5
- declare type ResolveRepublish = ResolverFactory<any, ResolveRepublishArgs>;
5
+ type ResolveRepublish = ResolverFactory<any, ResolveRepublishArgs>;
6
6
  export declare const resolveRepublish: ResolveRepublish;
7
7
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolveRestoreFromBinArgs {
3
3
  revision: string;
4
4
  }
5
- declare type ResolveRestoreFromBin = ResolverFactory<any, ResolveRestoreFromBinArgs>;
5
+ type ResolveRestoreFromBin = ResolverFactory<any, ResolveRestoreFromBinArgs>;
6
6
  export declare const resolveRestoreFromBin: ResolveRestoreFromBin;
7
7
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolveUnpublishArgs {
3
3
  revision: string;
4
4
  }
5
- declare type ResolveUnpublish = ResolverFactory<any, ResolveUnpublishArgs>;
5
+ type ResolveUnpublish = ResolverFactory<any, ResolveUnpublishArgs>;
6
6
  export declare const resolveUnpublish: ResolveUnpublish;
7
7
  export {};
@@ -4,6 +4,6 @@ interface ResolveUpdateArgs {
4
4
  data: UpdateCmsEntryInput;
5
5
  options?: UpdateCmsEntryOptionsInput;
6
6
  }
7
- declare type ResolveUpdate = ResolverFactory<any, ResolveUpdateArgs>;
7
+ type ResolveUpdate = ResolverFactory<any, ResolveUpdateArgs>;
8
8
  export declare const resolveUpdate: ResolveUpdate;
9
9
  export {};
@@ -3,6 +3,6 @@ interface ResolveUpdateArgs {
3
3
  revision?: string;
4
4
  data: UpdateCmsEntryInput;
5
5
  }
6
- declare type ResolveValidate = ResolverFactory<any, ResolveUpdateArgs>;
6
+ type ResolveValidate = ResolverFactory<any, ResolveUpdateArgs>;
7
7
  export declare const resolveValidate: ResolveValidate;
8
8
  export {};
@@ -1,4 +1,4 @@
1
1
  import { CmsEntryListParams, CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
- declare type ResolveGet = ResolverFactory<any, CmsEntryListParams>;
2
+ type ResolveGet = ResolverFactory<any, CmsEntryListParams>;
3
3
  export declare const resolveGet: ResolveGet;
4
4
  export {};
@@ -1,4 +1,4 @@
1
1
  import { CmsEntryResolverFactory as ResolverFactory, CmsEntryListParams } from "../../../../types";
2
- declare type ResolveList = ResolverFactory<any, CmsEntryListParams>;
2
+ type ResolveList = ResolverFactory<any, CmsEntryListParams>;
3
3
  export declare const resolveList: ResolveList;
4
4
  export {};
@@ -1,4 +1,4 @@
1
1
  import { CmsEntryListParams, CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
- declare type ResolveGet = ResolverFactory<any, CmsEntryListParams>;
2
+ type ResolveGet = ResolverFactory<any, CmsEntryListParams>;
3
3
  export declare const resolveGet: ResolveGet;
4
4
  export {};
@@ -1,4 +1,4 @@
1
1
  import { CmsEntryResolverFactory as ResolverFactory, CmsEntryListParams } from "../../../../types";
2
- declare type ResolveList = ResolverFactory<any, CmsEntryListParams>;
2
+ type ResolveList = ResolverFactory<any, CmsEntryListParams>;
3
3
  export declare const resolveList: ResolveList;
4
4
  export {};
@@ -2,6 +2,6 @@ import { CmsEntryResolverFactory as ResolverFactory } from "../../../../types";
2
2
  interface ResolveGetArgs {
3
3
  revision: string;
4
4
  }
5
- declare type ResolveGet = ResolverFactory<any, ResolveGetArgs>;
5
+ type ResolveGet = ResolverFactory<any, ResolveGetArgs>;
6
6
  export declare const resolveGet: ResolveGet;
7
7
  export {};
@@ -3,6 +3,6 @@ interface ResolveUpdateArgs {
3
3
  data: UpdateCmsEntryInput;
4
4
  options?: UpdateCmsEntryOptionsInput;
5
5
  }
6
- declare type ResolveUpdate = ResolverFactory<any, ResolveUpdateArgs>;
6
+ type ResolveUpdate = ResolverFactory<any, ResolveUpdateArgs>;
7
7
  export declare const resolveUpdate: ResolveUpdate;
8
8
  export {};
package/index.d.ts CHANGED
@@ -4,13 +4,15 @@ import { entryFieldFromStorageTransform, entryFromStorageTransform, entryToStora
4
4
  export * from "./utils/isHeadlessCmsReady";
5
5
  export * from "./utils/createModelField";
6
6
  export * from "./graphql/schema/resolvers/manage/normalizeGraphQlInput";
7
- export declare type CreateHeadlessCmsGraphQLParams = CreateGraphQLParams;
7
+ export type CreateHeadlessCmsGraphQLParams = CreateGraphQLParams;
8
8
  export declare const createHeadlessCmsGraphQL: (params?: CreateHeadlessCmsGraphQLParams) => (import("./plugins").CmsParametersPlugin | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("./types").CmsContext> | import("@webiny/plugins/types").PluginCollection | import("@webiny/api").ContextPlugin<import("@webiny/api/types").Context> | import("./plugins").CmsRichTextRendererPlugin<string | undefined>)[];
9
- export declare type ContentContextParams = CrudParams;
9
+ export type ContentContextParams = CrudParams;
10
10
  export declare const createHeadlessCmsContext: (params: ContentContextParams) => (import("./types").ModelManagerPlugin | import("./plugins").StorageTransformPlugin<any, any, import("./types").CmsModelField> | import("@webiny/api").ContextPlugin<import("./types").CmsContext> | import("./types").CmsModelFieldToGraphQLPlugin<any>[] | (import("./types").CmsModelFieldValidatorPlugin | import("./types").CmsModelFieldPatternValidatorPlugin[])[] | (import("./fieldConverters/CmsModelObjectFieldConverterPlugin").CmsModelObjectFieldConverterPlugin | import("./fieldConverters/CmsModelDefaultFieldConverterPlugin").CmsModelDefaultFieldConverterPlugin | import("./fieldConverters/CmsModelDynamicZoneFieldConverterPlugin").CmsModelDynamicZoneFieldConverterPlugin)[])[];
11
11
  export * from "./graphqlFields";
12
12
  export * from "./plugins";
13
13
  export * from "./utils/incrementEntryIdVersion";
14
14
  export * from "./utils/RichTextRenderer";
15
15
  export * from "./graphql/handleRequest";
16
+ export * from "./utils/contentEntryTraverser/ContentEntryTraverser";
17
+ export * from "./utils/contentModelAst";
16
18
  export { entryToStorageTransform, entryFieldFromStorageTransform, entryFromStorageTransform };